@mdigital_ui/ui 0.1.0

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 (205) hide show
  1. package/README.md +296 -0
  2. package/dist/accordion/index.js +5 -0
  3. package/dist/accordion/index.js.map +1 -0
  4. package/dist/badge/index.js +5 -0
  5. package/dist/badge/index.js.map +1 -0
  6. package/dist/button/index.js +6 -0
  7. package/dist/button/index.js.map +1 -0
  8. package/dist/card/index.js +4 -0
  9. package/dist/card/index.js.map +1 -0
  10. package/dist/carousel/index.js +3 -0
  11. package/dist/carousel/index.js.map +1 -0
  12. package/dist/cascader/index.js +4 -0
  13. package/dist/cascader/index.js.map +1 -0
  14. package/dist/chart/index.js +4 -0
  15. package/dist/chart/index.js.map +1 -0
  16. package/dist/checkbox/index.js +5 -0
  17. package/dist/checkbox/index.js.map +1 -0
  18. package/dist/checkbox-group/index.js +4 -0
  19. package/dist/checkbox-group/index.js.map +1 -0
  20. package/dist/chunk-2JGAYDZR.js +181 -0
  21. package/dist/chunk-2JGAYDZR.js.map +1 -0
  22. package/dist/chunk-3PFA3YG6.js +228 -0
  23. package/dist/chunk-3PFA3YG6.js.map +1 -0
  24. package/dist/chunk-4OMLQCUV.js +96 -0
  25. package/dist/chunk-4OMLQCUV.js.map +1 -0
  26. package/dist/chunk-4P5EMRFI.js +298 -0
  27. package/dist/chunk-4P5EMRFI.js.map +1 -0
  28. package/dist/chunk-5UEWVFF6.js +212 -0
  29. package/dist/chunk-5UEWVFF6.js.map +1 -0
  30. package/dist/chunk-5VCGW53O.js +332 -0
  31. package/dist/chunk-5VCGW53O.js.map +1 -0
  32. package/dist/chunk-75XESYGN.js +49 -0
  33. package/dist/chunk-75XESYGN.js.map +1 -0
  34. package/dist/chunk-7AEGBABZ.js +1102 -0
  35. package/dist/chunk-7AEGBABZ.js.map +1 -0
  36. package/dist/chunk-AOITJRSV.js +134 -0
  37. package/dist/chunk-AOITJRSV.js.map +1 -0
  38. package/dist/chunk-AWPKZYHT.js +152 -0
  39. package/dist/chunk-AWPKZYHT.js.map +1 -0
  40. package/dist/chunk-BNILRB4T.js +37 -0
  41. package/dist/chunk-BNILRB4T.js.map +1 -0
  42. package/dist/chunk-BP434VYV.js +448 -0
  43. package/dist/chunk-BP434VYV.js.map +1 -0
  44. package/dist/chunk-C7SXY3ZV.js +65 -0
  45. package/dist/chunk-C7SXY3ZV.js.map +1 -0
  46. package/dist/chunk-CLLQDCDR.js +560 -0
  47. package/dist/chunk-CLLQDCDR.js.map +1 -0
  48. package/dist/chunk-CWHFK7ZC.js +128 -0
  49. package/dist/chunk-CWHFK7ZC.js.map +1 -0
  50. package/dist/chunk-D3JWPGCA.js +123 -0
  51. package/dist/chunk-D3JWPGCA.js.map +1 -0
  52. package/dist/chunk-DOKTHDG3.js +55 -0
  53. package/dist/chunk-DOKTHDG3.js.map +1 -0
  54. package/dist/chunk-DPOSWW22.js +126 -0
  55. package/dist/chunk-DPOSWW22.js.map +1 -0
  56. package/dist/chunk-E2CYDDYC.js +39 -0
  57. package/dist/chunk-E2CYDDYC.js.map +1 -0
  58. package/dist/chunk-EYTOKUBM.js +401 -0
  59. package/dist/chunk-EYTOKUBM.js.map +1 -0
  60. package/dist/chunk-FGWSUPVW.js +356 -0
  61. package/dist/chunk-FGWSUPVW.js.map +1 -0
  62. package/dist/chunk-FPOXTCYV.js +166 -0
  63. package/dist/chunk-FPOXTCYV.js.map +1 -0
  64. package/dist/chunk-FTJOSVTY.js +104 -0
  65. package/dist/chunk-FTJOSVTY.js.map +1 -0
  66. package/dist/chunk-FYHQDFKE.js +164 -0
  67. package/dist/chunk-FYHQDFKE.js.map +1 -0
  68. package/dist/chunk-H2HIBD5Y.js +158 -0
  69. package/dist/chunk-H2HIBD5Y.js.map +1 -0
  70. package/dist/chunk-J3G5WWGR.js +53 -0
  71. package/dist/chunk-J3G5WWGR.js.map +1 -0
  72. package/dist/chunk-JZCHZ4B3.js +487 -0
  73. package/dist/chunk-JZCHZ4B3.js.map +1 -0
  74. package/dist/chunk-KBCBVH7B.js +51 -0
  75. package/dist/chunk-KBCBVH7B.js.map +1 -0
  76. package/dist/chunk-KNQ7UQ2W.js +143 -0
  77. package/dist/chunk-KNQ7UQ2W.js.map +1 -0
  78. package/dist/chunk-KTBPIEP2.js +102 -0
  79. package/dist/chunk-KTBPIEP2.js.map +1 -0
  80. package/dist/chunk-L3SP7GHC.js +1023 -0
  81. package/dist/chunk-L3SP7GHC.js.map +1 -0
  82. package/dist/chunk-LBJG2UWT.js +100 -0
  83. package/dist/chunk-LBJG2UWT.js.map +1 -0
  84. package/dist/chunk-MLDX3Z67.js +470 -0
  85. package/dist/chunk-MLDX3Z67.js.map +1 -0
  86. package/dist/chunk-NNSS366W.js +331 -0
  87. package/dist/chunk-NNSS366W.js.map +1 -0
  88. package/dist/chunk-OQANRZPV.js +197 -0
  89. package/dist/chunk-OQANRZPV.js.map +1 -0
  90. package/dist/chunk-OW5A5IIF.js +175 -0
  91. package/dist/chunk-OW5A5IIF.js.map +1 -0
  92. package/dist/chunk-R225A5II.js +187 -0
  93. package/dist/chunk-R225A5II.js.map +1 -0
  94. package/dist/chunk-ROR4E6IE.js +119 -0
  95. package/dist/chunk-ROR4E6IE.js.map +1 -0
  96. package/dist/chunk-RPAQAZTI.js +54 -0
  97. package/dist/chunk-RPAQAZTI.js.map +1 -0
  98. package/dist/chunk-RQBXZKTH.js +452 -0
  99. package/dist/chunk-RQBXZKTH.js.map +1 -0
  100. package/dist/chunk-S5XJXU52.js +178 -0
  101. package/dist/chunk-S5XJXU52.js.map +1 -0
  102. package/dist/chunk-SAVE5ACL.js +324 -0
  103. package/dist/chunk-SAVE5ACL.js.map +1 -0
  104. package/dist/chunk-SERJ3TZE.js +640 -0
  105. package/dist/chunk-SERJ3TZE.js.map +1 -0
  106. package/dist/chunk-SK5ECBBK.js +175 -0
  107. package/dist/chunk-SK5ECBBK.js.map +1 -0
  108. package/dist/chunk-SOV4PE3P.js +218 -0
  109. package/dist/chunk-SOV4PE3P.js.map +1 -0
  110. package/dist/chunk-W7BQYIXF.js +687 -0
  111. package/dist/chunk-W7BQYIXF.js.map +1 -0
  112. package/dist/chunk-XMAH5PDW.js +59 -0
  113. package/dist/chunk-XMAH5PDW.js.map +1 -0
  114. package/dist/chunk-XOBGEMQY.js +94 -0
  115. package/dist/chunk-XOBGEMQY.js.map +1 -0
  116. package/dist/chunk-YNNAOXU5.js +57 -0
  117. package/dist/chunk-YNNAOXU5.js.map +1 -0
  118. package/dist/chunk-YZVSDRJD.js +253 -0
  119. package/dist/chunk-YZVSDRJD.js.map +1 -0
  120. package/dist/collapse/index.js +4 -0
  121. package/dist/collapse/index.js.map +1 -0
  122. package/dist/command/index.js +5 -0
  123. package/dist/command/index.js.map +1 -0
  124. package/dist/date-picker/index.js +5 -0
  125. package/dist/date-picker/index.js.map +1 -0
  126. package/dist/descriptions/index.js +4 -0
  127. package/dist/descriptions/index.js.map +1 -0
  128. package/dist/drawer/index.js +4 -0
  129. package/dist/drawer/index.js.map +1 -0
  130. package/dist/dropdown/index.js +5 -0
  131. package/dist/dropdown/index.js.map +1 -0
  132. package/dist/empty/index.js +4 -0
  133. package/dist/empty/index.js.map +1 -0
  134. package/dist/fetching-overlay/index.js +5 -0
  135. package/dist/fetching-overlay/index.js.map +1 -0
  136. package/dist/image/index.js +4 -0
  137. package/dist/image/index.js.map +1 -0
  138. package/dist/index.d.ts +2672 -0
  139. package/dist/index.js +976 -0
  140. package/dist/index.js.map +1 -0
  141. package/dist/input/index.js +5 -0
  142. package/dist/input/index.js.map +1 -0
  143. package/dist/input-group/index.js +4 -0
  144. package/dist/input-group/index.js.map +1 -0
  145. package/dist/input-otp/index.js +4 -0
  146. package/dist/input-otp/index.js.map +1 -0
  147. package/dist/input-password/index.js +6 -0
  148. package/dist/input-password/index.js.map +1 -0
  149. package/dist/kbd/index.js +4 -0
  150. package/dist/kbd/index.js.map +1 -0
  151. package/dist/modal/index.js +4 -0
  152. package/dist/modal/index.js.map +1 -0
  153. package/dist/multi-select/index.js +5 -0
  154. package/dist/multi-select/index.js.map +1 -0
  155. package/dist/notification/index.js +4 -0
  156. package/dist/notification/index.js.map +1 -0
  157. package/dist/pagination/index.js +4 -0
  158. package/dist/pagination/index.js.map +1 -0
  159. package/dist/popover/index.js +4 -0
  160. package/dist/popover/index.js.map +1 -0
  161. package/dist/progress/index.js +4 -0
  162. package/dist/progress/index.js.map +1 -0
  163. package/dist/radio/index.js +4 -0
  164. package/dist/radio/index.js.map +1 -0
  165. package/dist/radio-group/index.js +4 -0
  166. package/dist/radio-group/index.js.map +1 -0
  167. package/dist/rating/index.js +4 -0
  168. package/dist/rating/index.js.map +1 -0
  169. package/dist/ribbon/index.js +4 -0
  170. package/dist/ribbon/index.js.map +1 -0
  171. package/dist/select/index.js +6 -0
  172. package/dist/select/index.js.map +1 -0
  173. package/dist/skeleton/index.js +4 -0
  174. package/dist/skeleton/index.js.map +1 -0
  175. package/dist/slider/index.js +4 -0
  176. package/dist/slider/index.js.map +1 -0
  177. package/dist/spinner/index.js +4 -0
  178. package/dist/spinner/index.js.map +1 -0
  179. package/dist/stepper/index.js +4 -0
  180. package/dist/stepper/index.js.map +1 -0
  181. package/dist/styles/base.css +161 -0
  182. package/dist/styles/global.css +633 -0
  183. package/dist/styles/themes/dark.css +84 -0
  184. package/dist/styles/themes/light.css +84 -0
  185. package/dist/switch/index.js +4 -0
  186. package/dist/switch/index.js.map +1 -0
  187. package/dist/table/index.js +12 -0
  188. package/dist/table/index.js.map +1 -0
  189. package/dist/tabs/index.js +5 -0
  190. package/dist/tabs/index.js.map +1 -0
  191. package/dist/textarea/index.js +4 -0
  192. package/dist/textarea/index.js.map +1 -0
  193. package/dist/toggle/index.js +4 -0
  194. package/dist/toggle/index.js.map +1 -0
  195. package/dist/toggle-group/index.js +4 -0
  196. package/dist/toggle-group/index.js.map +1 -0
  197. package/dist/tooltip/index.js +4 -0
  198. package/dist/tooltip/index.js.map +1 -0
  199. package/dist/transfer/index.js +6 -0
  200. package/dist/transfer/index.js.map +1 -0
  201. package/dist/tree/index.js +4 -0
  202. package/dist/tree/index.js.map +1 -0
  203. package/dist/tree-select/index.js +6 -0
  204. package/dist/tree-select/index.js.map +1 -0
  205. package/package.json +107 -0
@@ -0,0 +1,128 @@
1
+ import { getAccordionColorClass } from './chunk-5UEWVFF6.js';
2
+ import { cn, iconSizes } from './chunk-YNNAOXU5.js';
3
+ import { cva } from 'class-variance-authority';
4
+ import { ChevronDown } from 'lucide-react';
5
+ import React, { useState } from 'react';
6
+ import { jsx, jsxs } from 'react/jsx-runtime';
7
+
8
+ var accordionHeaderVariants = cva(
9
+ "flex items-center justify-between w-full text-left font-medium transition-all cursor-pointer",
10
+ {
11
+ variants: {
12
+ size: {
13
+ xs: "px-3 py-2 text-xs",
14
+ sm: "px-4 py-2.5 text-sm",
15
+ md: "px-5 py-3 text-base",
16
+ lg: "px-6 py-4 text-lg"
17
+ }
18
+ },
19
+ defaultVariants: {
20
+ size: "md"
21
+ }
22
+ }
23
+ );
24
+ var accordionContentVariants = cva("overflow-hidden transition-all", {
25
+ variants: {
26
+ size: {
27
+ xs: "px-3 pb-2 text-xs",
28
+ sm: "px-4 pb-2.5 text-sm",
29
+ md: "px-5 pb-3 text-base",
30
+ lg: "px-6 pb-4 text-lg"
31
+ }
32
+ },
33
+ defaultVariants: {
34
+ size: "md"
35
+ }
36
+ });
37
+ var Accordion = React.memo(
38
+ ({
39
+ items,
40
+ color = "default",
41
+ size = "md",
42
+ variant = "default",
43
+ defaultActiveKey,
44
+ activeKey: controlledActiveKey,
45
+ onChange,
46
+ multiple = false,
47
+ className
48
+ }) => {
49
+ const [internalActiveKey, setInternalActiveKey] = useState(defaultActiveKey || (multiple ? [] : ""));
50
+ const activeKey = controlledActiveKey !== void 0 ? controlledActiveKey : internalActiveKey;
51
+ const isActive = (key) => {
52
+ if (Array.isArray(activeKey)) {
53
+ return activeKey.includes(key);
54
+ }
55
+ return activeKey === key;
56
+ };
57
+ const handleToggle = (key) => {
58
+ let newActiveKey;
59
+ if (multiple) {
60
+ const currentKeys = Array.isArray(activeKey) ? activeKey : [];
61
+ newActiveKey = currentKeys.includes(key) ? currentKeys.filter((k) => k !== key) : [...currentKeys, key];
62
+ } else {
63
+ newActiveKey = activeKey === key ? "" : key;
64
+ }
65
+ if (controlledActiveKey === void 0) {
66
+ setInternalActiveKey(newActiveKey);
67
+ }
68
+ onChange?.(newActiveKey);
69
+ };
70
+ return /* @__PURE__ */ jsx("div", { className: cn("w-full space-y-2", className), children: items.map((item) => {
71
+ const active = isActive(item.key);
72
+ return /* @__PURE__ */ jsxs(
73
+ "div",
74
+ {
75
+ className: cn(
76
+ getAccordionColorClass(color, variant),
77
+ "rounded-lg border transition-all",
78
+ item.disabled && "opacity-50 cursor-not-allowed"
79
+ ),
80
+ children: [
81
+ /* @__PURE__ */ jsxs(
82
+ "button",
83
+ {
84
+ type: "button",
85
+ onClick: () => !item.disabled && handleToggle(item.key),
86
+ disabled: item.disabled,
87
+ className: cn(
88
+ accordionHeaderVariants({ size }),
89
+ item.disabled && "cursor-not-allowed"
90
+ ),
91
+ children: [
92
+ /* @__PURE__ */ jsx("span", { children: item.title }),
93
+ /* @__PURE__ */ jsx(
94
+ ChevronDown,
95
+ {
96
+ className: cn(
97
+ "transition-transform duration-300 ease-out",
98
+ active && "rotate-180",
99
+ iconSizes[size]
100
+ )
101
+ }
102
+ )
103
+ ]
104
+ }
105
+ ),
106
+ /* @__PURE__ */ jsx(
107
+ "div",
108
+ {
109
+ className: cn(
110
+ "grid transition-[grid-template-rows] duration-300 ease-out",
111
+ active ? "grid-rows-[1fr]" : "grid-rows-[0fr]"
112
+ ),
113
+ children: /* @__PURE__ */ jsx("div", { className: "overflow-hidden", children: /* @__PURE__ */ jsx("div", { className: cn(accordionContentVariants({ size })), children: item.content }) })
114
+ }
115
+ )
116
+ ]
117
+ },
118
+ item.key
119
+ );
120
+ }) });
121
+ }
122
+ );
123
+ Accordion.displayName = "Accordion";
124
+ var accordion_default = Accordion;
125
+
126
+ export { accordion_default };
127
+ //# sourceMappingURL=chunk-CWHFK7ZC.js.map
128
+ //# sourceMappingURL=chunk-CWHFK7ZC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/accordion/index.tsx"],"names":[],"mappings":"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","file":"chunk-CWHFK7ZC.js","sourcesContent":["import { cva } from 'class-variance-authority'\nimport { ChevronDown } from 'lucide-react'\nimport React, { useState } from 'react'\n\nimport { cn, iconSizes } from '../utils'\nimport { getAccordionColorClass } from '../variants'\nimport type { AccordionProps } from './types'\n\nconst accordionHeaderVariants = cva(\n 'flex items-center justify-between w-full text-left font-medium transition-all cursor-pointer',\n {\n variants: {\n size: {\n xs: 'px-3 py-2 text-xs',\n sm: 'px-4 py-2.5 text-sm',\n md: 'px-5 py-3 text-base',\n lg: 'px-6 py-4 text-lg',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\nconst accordionContentVariants = cva('overflow-hidden transition-all', {\n variants: {\n size: {\n xs: 'px-3 pb-2 text-xs',\n sm: 'px-4 pb-2.5 text-sm',\n md: 'px-5 pb-3 text-base',\n lg: 'px-6 pb-4 text-lg',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n})\n\nconst Accordion = React.memo<AccordionProps>(\n ({\n items,\n color = 'default',\n size = 'md',\n variant = 'default',\n defaultActiveKey,\n activeKey: controlledActiveKey,\n onChange,\n multiple = false,\n className,\n }) => {\n const [internalActiveKey, setInternalActiveKey] = useState<\n string | string[]\n >(defaultActiveKey || (multiple ? [] : ''))\n\n const activeKey =\n controlledActiveKey !== undefined\n ? controlledActiveKey\n : internalActiveKey\n\n const isActive = (key: string) => {\n if (Array.isArray(activeKey)) {\n return activeKey.includes(key)\n }\n return activeKey === key\n }\n\n const handleToggle = (key: string) => {\n let newActiveKey: string | string[]\n\n if (multiple) {\n const currentKeys = Array.isArray(activeKey) ? activeKey : []\n newActiveKey = currentKeys.includes(key)\n ? currentKeys.filter((k) => k !== key)\n : [...currentKeys, key]\n } else {\n newActiveKey = activeKey === key ? '' : key\n }\n\n if (controlledActiveKey === undefined) {\n setInternalActiveKey(newActiveKey)\n }\n onChange?.(newActiveKey)\n }\n\n return (\n <div className={cn('w-full space-y-2', className)}>\n {items.map((item) => {\n const active = isActive(item.key)\n\n return (\n <div\n key={item.key}\n className={cn(\n getAccordionColorClass(color, variant),\n 'rounded-lg border transition-all',\n item.disabled && 'opacity-50 cursor-not-allowed',\n )}\n >\n <button\n type=\"button\"\n onClick={() => !item.disabled && handleToggle(item.key)}\n disabled={item.disabled}\n className={cn(\n accordionHeaderVariants({ size }),\n item.disabled && 'cursor-not-allowed',\n )}\n >\n <span>{item.title}</span>\n <ChevronDown\n className={cn(\n 'transition-transform duration-300 ease-out',\n active && 'rotate-180',\n iconSizes[size],\n )}\n />\n </button>\n <div\n className={cn(\n 'grid transition-[grid-template-rows] duration-300 ease-out',\n active ? 'grid-rows-[1fr]' : 'grid-rows-[0fr]',\n )}\n >\n <div className=\"overflow-hidden\">\n <div className={cn(accordionContentVariants({ size }))}>\n {item.content}\n </div>\n </div>\n </div>\n </div>\n )\n })}\n </div>\n )\n },\n)\n\nAccordion.displayName = 'Accordion'\n\nexport type * from './types'\nexport default Accordion\n"]}
@@ -0,0 +1,123 @@
1
+ import { cn } from './chunk-YNNAOXU5.js';
2
+ import * as TooltipPrimitive from '@radix-ui/react-tooltip';
3
+ import { cva } from 'class-variance-authority';
4
+ import React from 'react';
5
+ import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
6
+
7
+ var tooltipContentVariants = cva(
8
+ "z-50 overflow-hidden rounded px-3 py-1.5 text-sm animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
9
+ {
10
+ variants: {
11
+ size: {
12
+ xs: "text-xs px-2 py-1",
13
+ sm: "text-sm px-2.5 py-1",
14
+ md: "text-base px-3 py-1.5",
15
+ lg: "text-lg px-4 py-2"
16
+ },
17
+ color: {
18
+ default: "bg-text-primary text-background",
19
+ primary: "bg-primary text-primary-text",
20
+ secondary: "bg-secondary text-secondary-text",
21
+ accent: "bg-accent text-accent-text",
22
+ success: "bg-success text-success-text",
23
+ error: "bg-error text-error-text",
24
+ warning: "bg-warning text-warning-text",
25
+ info: "bg-info text-info-text"
26
+ },
27
+ variant: {
28
+ solid: "",
29
+ soft: "border"
30
+ }
31
+ },
32
+ compoundVariants: [
33
+ {
34
+ variant: "soft",
35
+ color: "default",
36
+ className: "bg-surface text-text-primary border-border"
37
+ },
38
+ {
39
+ variant: "soft",
40
+ color: "primary",
41
+ className: "bg-primary/20 text-primary border-primary/30"
42
+ },
43
+ {
44
+ variant: "soft",
45
+ color: "secondary",
46
+ className: "bg-secondary/20 text-secondary border-secondary/30"
47
+ },
48
+ {
49
+ variant: "soft",
50
+ color: "accent",
51
+ className: "bg-accent/20 text-accent border-accent/30"
52
+ },
53
+ {
54
+ variant: "soft",
55
+ color: "success",
56
+ className: "bg-success/20 text-success border-success/30"
57
+ },
58
+ {
59
+ variant: "soft",
60
+ color: "error",
61
+ className: "bg-error/20 text-error border-error/30"
62
+ },
63
+ {
64
+ variant: "soft",
65
+ color: "warning",
66
+ className: "bg-warning/20 text-warning border-warning/30"
67
+ },
68
+ {
69
+ variant: "soft",
70
+ color: "info",
71
+ className: "bg-info/20 text-info border-info/30"
72
+ }
73
+ ],
74
+ defaultVariants: {
75
+ size: "sm",
76
+ color: "default",
77
+ variant: "solid"
78
+ }
79
+ }
80
+ );
81
+ var TooltipProvider = TooltipPrimitive.Provider;
82
+ var Tooltip = React.memo(
83
+ ({
84
+ content,
85
+ children,
86
+ color = "default",
87
+ size = "sm",
88
+ variant = "solid",
89
+ side = "top",
90
+ align = "center",
91
+ delayDuration = 200,
92
+ disabled = false,
93
+ className,
94
+ ...props
95
+ }) => {
96
+ if (disabled) {
97
+ return /* @__PURE__ */ jsx(Fragment, { children });
98
+ }
99
+ return /* @__PURE__ */ jsxs(TooltipPrimitive.Root, { delayDuration, children: [
100
+ /* @__PURE__ */ jsx(TooltipPrimitive.Trigger, { asChild: true, children }),
101
+ /* @__PURE__ */ jsx(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsx(
102
+ TooltipPrimitive.Content,
103
+ {
104
+ side,
105
+ align,
106
+ className: cn(
107
+ tooltipContentVariants({ size, color, variant }),
108
+ className
109
+ ),
110
+ sideOffset: 4,
111
+ ...props,
112
+ children: content
113
+ }
114
+ ) })
115
+ ] });
116
+ }
117
+ );
118
+ Tooltip.displayName = "Tooltip";
119
+ var tooltip_default = Tooltip;
120
+
121
+ export { TooltipProvider, tooltip_default };
122
+ //# sourceMappingURL=chunk-D3JWPGCA.js.map
123
+ //# sourceMappingURL=chunk-D3JWPGCA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/tooltip/index.tsx"],"names":[],"mappings":"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","file":"chunk-D3JWPGCA.js","sourcesContent":["import * as TooltipPrimitive from '@radix-ui/react-tooltip'\nimport { cva } from 'class-variance-authority'\nimport React from 'react'\n\nimport { cn } from '../utils'\nimport type { TooltipProps } from './types'\n\nconst tooltipContentVariants = cva(\n 'z-50 overflow-hidden rounded px-3 py-1.5 text-sm animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n {\n variants: {\n size: {\n xs: 'text-xs px-2 py-1',\n sm: 'text-sm px-2.5 py-1',\n md: 'text-base px-3 py-1.5',\n lg: 'text-lg px-4 py-2',\n },\n color: {\n default: 'bg-text-primary text-background',\n primary: 'bg-primary text-primary-text',\n secondary: 'bg-secondary text-secondary-text',\n accent: 'bg-accent text-accent-text',\n success: 'bg-success text-success-text',\n error: 'bg-error text-error-text',\n warning: 'bg-warning text-warning-text',\n info: 'bg-info text-info-text',\n },\n variant: {\n solid: '',\n soft: 'border',\n },\n },\n compoundVariants: [\n {\n variant: 'soft',\n color: 'default',\n className: 'bg-surface text-text-primary border-border',\n },\n {\n variant: 'soft',\n color: 'primary',\n className: 'bg-primary/20 text-primary border-primary/30',\n },\n {\n variant: 'soft',\n color: 'secondary',\n className: 'bg-secondary/20 text-secondary border-secondary/30',\n },\n {\n variant: 'soft',\n color: 'accent',\n className: 'bg-accent/20 text-accent border-accent/30',\n },\n {\n variant: 'soft',\n color: 'success',\n className: 'bg-success/20 text-success border-success/30',\n },\n {\n variant: 'soft',\n color: 'error',\n className: 'bg-error/20 text-error border-error/30',\n },\n {\n variant: 'soft',\n color: 'warning',\n className: 'bg-warning/20 text-warning border-warning/30',\n },\n {\n variant: 'soft',\n color: 'info',\n className: 'bg-info/20 text-info border-info/30',\n },\n ],\n defaultVariants: {\n size: 'sm',\n color: 'default',\n variant: 'solid',\n },\n },\n)\n\nexport const TooltipProvider = TooltipPrimitive.Provider\n\nexport type {\n TooltipProps,\n TooltipProviderProps,\n TooltipColor,\n TooltipSize,\n TooltipVariant,\n} from './types'\n\nconst Tooltip = React.memo<TooltipProps>(\n ({\n content,\n children,\n color = 'default',\n size = 'sm',\n variant = 'solid',\n side = 'top',\n align = 'center',\n delayDuration = 200,\n disabled = false,\n className,\n ...props\n }) => {\n if (disabled) {\n return <>{children}</>\n }\n\n return (\n <TooltipPrimitive.Root delayDuration={delayDuration}>\n <TooltipPrimitive.Trigger asChild>{children}</TooltipPrimitive.Trigger>\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n side={side}\n align={align}\n className={cn(\n tooltipContentVariants({ size, color, variant }),\n className,\n )}\n sideOffset={4}\n {...props}\n >\n {content}\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n </TooltipPrimitive.Root>\n )\n },\n)\n\nTooltip.displayName = 'Tooltip'\n\nexport type * from './types'\nexport default Tooltip\n"]}
@@ -0,0 +1,55 @@
1
+ import { cn } from './chunk-YNNAOXU5.js';
2
+ import React from 'react';
3
+ import { jsxs, jsx } from 'react/jsx-runtime';
4
+
5
+ var RadioGroup = React.memo(
6
+ ({
7
+ label,
8
+ helperText,
9
+ error,
10
+ orientation = "vertical",
11
+ className,
12
+ children,
13
+ ref,
14
+ ...props
15
+ }) => {
16
+ return /* @__PURE__ */ jsxs(
17
+ "div",
18
+ {
19
+ ref,
20
+ className: cn("w-full", className),
21
+ role: "radiogroup",
22
+ ...props,
23
+ children: [
24
+ label && /* @__PURE__ */ jsx("div", { className: "mb-2", children: /* @__PURE__ */ jsx("span", { className: "text-sm font-medium text-text-secondary", children: label }) }),
25
+ /* @__PURE__ */ jsx(
26
+ "div",
27
+ {
28
+ className: cn(
29
+ "flex",
30
+ orientation === "vertical" ? "flex-col gap-2" : "flex-row flex-wrap gap-4"
31
+ ),
32
+ children
33
+ }
34
+ ),
35
+ (helperText || error) && /* @__PURE__ */ jsx(
36
+ "p",
37
+ {
38
+ className: cn(
39
+ "mt-2 text-xs",
40
+ error ? "text-error" : "text-text-secondary"
41
+ ),
42
+ children: error || helperText
43
+ }
44
+ )
45
+ ]
46
+ }
47
+ );
48
+ }
49
+ );
50
+ RadioGroup.displayName = "RadioGroup";
51
+ var radio_group_default = RadioGroup;
52
+
53
+ export { RadioGroup, radio_group_default };
54
+ //# sourceMappingURL=chunk-DOKTHDG3.js.map
55
+ //# sourceMappingURL=chunk-DOKTHDG3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/radio-group/index.tsx"],"names":[],"mappings":";;;;AAKO,IAAM,aAAa,KAAA,CAAM,IAAA;AAAA,EAC9B,CAAC;AAAA,IACC,KAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,WAAA,GAAc,UAAA;AAAA,IACd,SAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAA;AAAA,IACA,GAAG;AAAA,GACL,KAAM;AACJ,IAAA,uBACE,IAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,EAAA,CAAG,QAAA,EAAU,SAAS,CAAA;AAAA,QACjC,IAAA,EAAK,YAAA;AAAA,QACJ,GAAG,KAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAA,KAAA,oBACC,GAAA,CAAC,SAAI,SAAA,EAAU,MAAA,EACb,8BAAC,MAAA,EAAA,EAAK,SAAA,EAAU,yCAAA,EACb,QAAA,EAAA,KAAA,EACH,CAAA,EACF,CAAA;AAAA,0BAEF,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,MAAA;AAAA,gBACA,WAAA,KAAgB,aACZ,gBAAA,GACA;AAAA,eACN;AAAA,cAEC;AAAA;AAAA,WACH;AAAA,UAAA,CACE,cAAc,KAAA,qBACd,GAAA;AAAA,YAAC,GAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,cAAA;AAAA,gBACA,QAAQ,YAAA,GAAe;AAAA,eACzB;AAAA,cAEC,QAAA,EAAA,KAAA,IAAS;AAAA;AAAA;AACZ;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF;AAEA,UAAA,CAAW,WAAA,GAAc,YAAA;AAGzB,IAAO,mBAAA,GAAQ","file":"chunk-DOKTHDG3.js","sourcesContent":["import React from 'react'\n\nimport { cn } from '../utils'\nimport type { RadioGroupProps } from './types'\n\nexport const RadioGroup = React.memo<RadioGroupProps>(\n ({\n label,\n helperText,\n error,\n orientation = 'vertical',\n className,\n children,\n ref,\n ...props\n }) => {\n return (\n <div\n ref={ref}\n className={cn('w-full', className)}\n role=\"radiogroup\"\n {...props}\n >\n {label && (\n <div className=\"mb-2\">\n <span className=\"text-sm font-medium text-text-secondary\">\n {label}\n </span>\n </div>\n )}\n <div\n className={cn(\n 'flex',\n orientation === 'vertical'\n ? 'flex-col gap-2'\n : 'flex-row flex-wrap gap-4',\n )}\n >\n {children}\n </div>\n {(helperText || error) && (\n <p\n className={cn(\n 'mt-2 text-xs',\n error ? 'text-error' : 'text-text-secondary',\n )}\n >\n {error || helperText}\n </p>\n )}\n </div>\n )\n },\n)\n\nRadioGroup.displayName = 'RadioGroup'\n\nexport type * from './types'\nexport default RadioGroup\n"]}
@@ -0,0 +1,126 @@
1
+ import { cn } from './chunk-YNNAOXU5.js';
2
+ import { cva } from 'class-variance-authority';
3
+ import React, { useState } from 'react';
4
+ import { jsxs } from 'react/jsx-runtime';
5
+
6
+ var inactiveHoverClasses = {
7
+ default: "text-text-secondary hover:text-text-primary hover:bg-surface",
8
+ primary: "text-text-secondary hover:text-primary hover:bg-primary/10",
9
+ secondary: "text-text-secondary hover:text-secondary hover:bg-secondary/10",
10
+ accent: "text-text-secondary hover:text-accent hover:bg-accent/10",
11
+ success: "text-text-secondary hover:text-success hover:bg-success/10",
12
+ error: "text-text-secondary hover:text-error hover:bg-error/10",
13
+ warning: "text-text-secondary hover:text-warning hover:bg-warning/10",
14
+ info: "text-text-secondary hover:text-info hover:bg-info/10"
15
+ };
16
+ var activeSolidClasses = {
17
+ default: "bg-border text-text-primary",
18
+ primary: "bg-primary text-background",
19
+ secondary: "bg-secondary text-background",
20
+ accent: "bg-accent text-background",
21
+ success: "bg-success text-background",
22
+ error: "bg-error text-background",
23
+ warning: "bg-warning text-background",
24
+ info: "bg-info text-background"
25
+ };
26
+ var activeSoftClasses = {
27
+ default: "bg-border/20 text-text-primary",
28
+ primary: "bg-primary/20 text-primary",
29
+ secondary: "bg-secondary/20 text-secondary",
30
+ accent: "bg-accent/20 text-accent",
31
+ success: "bg-success/20 text-success",
32
+ error: "bg-error/20 text-error",
33
+ warning: "bg-warning/20 text-warning",
34
+ info: "bg-info/20 text-info"
35
+ };
36
+ var activeDefaultClasses = {
37
+ default: "bg-surface text-text-primary",
38
+ primary: "border-primary bg-primary/10 text-primary",
39
+ secondary: "border-secondary bg-secondary/10 text-secondary",
40
+ accent: "border-accent bg-accent/10 text-accent",
41
+ success: "border-success bg-success/10 text-success",
42
+ error: "border-error bg-error/10 text-error",
43
+ warning: "border-warning bg-warning/10 text-warning",
44
+ info: "border-info bg-info/10 text-info"
45
+ };
46
+ var getToggleClasses = (color, variant, isActive) => {
47
+ const toggleColor = color;
48
+ if (!isActive) {
49
+ return inactiveHoverClasses[toggleColor] || inactiveHoverClasses.default;
50
+ }
51
+ if (variant === "solid") {
52
+ return activeSolidClasses[toggleColor] || activeSolidClasses.default;
53
+ }
54
+ if (variant === "soft") {
55
+ return activeSoftClasses[toggleColor] || activeSoftClasses.default;
56
+ }
57
+ return activeDefaultClasses[toggleColor] || activeDefaultClasses.default;
58
+ };
59
+ var singleToggleVariants = cva(
60
+ "inline-flex items-center gap-2 font-medium transition-colors cursor-pointer border rounded-md",
61
+ {
62
+ variants: {
63
+ size: {
64
+ xs: "text-xs px-2 py-1",
65
+ sm: "text-sm px-3 py-1.5",
66
+ md: "text-base px-4 py-2",
67
+ lg: "text-lg px-5 py-2.5"
68
+ }
69
+ },
70
+ defaultVariants: {
71
+ size: "md"
72
+ }
73
+ }
74
+ );
75
+ var getSingleToggleClasses = (color, variant, isPressed) => {
76
+ return getToggleClasses(color, variant, isPressed);
77
+ };
78
+ var Toggle = React.memo(
79
+ ({
80
+ pressed: controlledPressed,
81
+ defaultPressed = false,
82
+ color = "primary",
83
+ size = "md",
84
+ variant = "default",
85
+ onChange,
86
+ disabled = false,
87
+ icon,
88
+ children,
89
+ className
90
+ }) => {
91
+ const [internalPressed, setInternalPressed] = useState(defaultPressed);
92
+ const pressed = controlledPressed !== void 0 ? controlledPressed : internalPressed;
93
+ const handleClick = () => {
94
+ if (disabled) return;
95
+ const newPressed = !pressed;
96
+ if (controlledPressed === void 0) {
97
+ setInternalPressed(newPressed);
98
+ }
99
+ onChange?.(newPressed);
100
+ };
101
+ return /* @__PURE__ */ jsxs(
102
+ "button",
103
+ {
104
+ className: cn(
105
+ singleToggleVariants({ size }),
106
+ getSingleToggleClasses(color, variant, pressed),
107
+ "border",
108
+ disabled && "opacity-50 cursor-not-allowed",
109
+ className
110
+ ),
111
+ onClick: handleClick,
112
+ disabled,
113
+ children: [
114
+ icon,
115
+ children
116
+ ]
117
+ }
118
+ );
119
+ }
120
+ );
121
+ Toggle.displayName = "Toggle";
122
+ var toggle_default = Toggle;
123
+
124
+ export { toggle_default };
125
+ //# sourceMappingURL=chunk-DPOSWW22.js.map
126
+ //# sourceMappingURL=chunk-DPOSWW22.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/toggle/index.tsx"],"names":[],"mappings":"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","file":"chunk-DPOSWW22.js","sourcesContent":["import { cva } from 'class-variance-authority'\nimport React, { useState } from 'react'\n\nimport { cn } from '../utils'\nimport type { SingleToggleProps } from './types'\n\n// Inactive hover states for each color\nconst inactiveHoverClasses = {\n default: 'text-text-secondary hover:text-text-primary hover:bg-surface',\n primary: 'text-text-secondary hover:text-primary hover:bg-primary/10',\n secondary: 'text-text-secondary hover:text-secondary hover:bg-secondary/10',\n accent: 'text-text-secondary hover:text-accent hover:bg-accent/10',\n success: 'text-text-secondary hover:text-success hover:bg-success/10',\n error: 'text-text-secondary hover:text-error hover:bg-error/10',\n warning: 'text-text-secondary hover:text-warning hover:bg-warning/10',\n info: 'text-text-secondary hover:text-info hover:bg-info/10',\n} as const\n\n// Active solid variant classes\nconst activeSolidClasses = {\n default: 'bg-border text-text-primary',\n primary: 'bg-primary text-background',\n secondary: 'bg-secondary text-background',\n accent: 'bg-accent text-background',\n success: 'bg-success text-background',\n error: 'bg-error text-background',\n warning: 'bg-warning text-background',\n info: 'bg-info text-background',\n} as const\n\n// Active soft variant classes\nconst activeSoftClasses = {\n default: 'bg-border/20 text-text-primary',\n primary: 'bg-primary/20 text-primary',\n secondary: 'bg-secondary/20 text-secondary',\n accent: 'bg-accent/20 text-accent',\n success: 'bg-success/20 text-success',\n error: 'bg-error/20 text-error',\n warning: 'bg-warning/20 text-warning',\n info: 'bg-info/20 text-info',\n} as const\n\n// Active default variant classes\nconst activeDefaultClasses = {\n default: 'bg-surface text-text-primary',\n primary: 'border-primary bg-primary/10 text-primary',\n secondary: 'border-secondary bg-secondary/10 text-secondary',\n accent: 'border-accent bg-accent/10 text-accent',\n success: 'border-success bg-success/10 text-success',\n error: 'border-error bg-error/10 text-error',\n warning: 'border-warning bg-warning/10 text-warning',\n info: 'border-info bg-info/10 text-info',\n} as const\n\ntype ToggleColor = keyof typeof inactiveHoverClasses\n\nconst getToggleClasses = (\n color: string,\n variant: string,\n isActive: boolean,\n) => {\n const toggleColor = color as ToggleColor\n\n if (!isActive) {\n return inactiveHoverClasses[toggleColor] || inactiveHoverClasses.default\n }\n\n // Active state\n if (variant === 'solid') {\n return activeSolidClasses[toggleColor] || activeSolidClasses.default\n }\n if (variant === 'soft') {\n return activeSoftClasses[toggleColor] || activeSoftClasses.default\n }\n return activeDefaultClasses[toggleColor] || activeDefaultClasses.default\n}\n\nconst singleToggleVariants = cva(\n 'inline-flex items-center gap-2 font-medium transition-colors cursor-pointer border rounded-md',\n {\n variants: {\n size: {\n xs: 'text-xs px-2 py-1',\n sm: 'text-sm px-3 py-1.5',\n md: 'text-base px-4 py-2',\n lg: 'text-lg px-5 py-2.5',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\n// Single toggle uses the same class logic as toggle group\nconst getSingleToggleClasses = (\n color: string,\n variant: string,\n isPressed: boolean,\n) => {\n return getToggleClasses(color, variant, isPressed)\n}\n\nconst Toggle = React.memo<SingleToggleProps>(\n ({\n pressed: controlledPressed,\n defaultPressed = false,\n color = 'primary',\n size = 'md',\n variant = 'default',\n onChange,\n disabled = false,\n icon,\n children,\n className,\n }) => {\n const [internalPressed, setInternalPressed] = useState(defaultPressed)\n\n const pressed =\n controlledPressed !== undefined ? controlledPressed : internalPressed\n\n const handleClick = () => {\n if (disabled) return\n\n const newPressed = !pressed\n if (controlledPressed === undefined) {\n setInternalPressed(newPressed)\n }\n onChange?.(newPressed)\n }\n\n return (\n <button\n className={cn(\n singleToggleVariants({ size }),\n getSingleToggleClasses(color, variant, pressed),\n 'border',\n disabled && 'opacity-50 cursor-not-allowed',\n className,\n )}\n onClick={handleClick}\n disabled={disabled}\n >\n {icon}\n {children}\n </button>\n )\n },\n)\n\nToggle.displayName = 'Toggle'\n\nexport type * from './types'\nexport default Toggle\n"]}
@@ -0,0 +1,39 @@
1
+ import { input_default } from './chunk-2JGAYDZR.js';
2
+ import { iconSizes } from './chunk-YNNAOXU5.js';
3
+ import { Eye, EyeOff } from 'lucide-react';
4
+ import React from 'react';
5
+ import { jsx } from 'react/jsx-runtime';
6
+
7
+ var PasswordInput = React.memo(
8
+ ({ visibilityToggle = true, size = "md", ref, ...props }) => {
9
+ const [showPassword, setShowPassword] = React.useState(false);
10
+ const toggleVisibility = React.useCallback(() => {
11
+ setShowPassword((prev) => !prev);
12
+ }, []);
13
+ return /* @__PURE__ */ jsx(
14
+ input_default,
15
+ {
16
+ ...props,
17
+ size,
18
+ ref,
19
+ type: showPassword ? "text" : "password",
20
+ rightIcon: visibilityToggle ? /* @__PURE__ */ jsx(
21
+ "button",
22
+ {
23
+ type: "button",
24
+ onClick: toggleVisibility,
25
+ className: "cursor-pointer hover:text-text-primary",
26
+ "aria-label": showPassword ? "Hide password" : "Show password",
27
+ children: showPassword ? /* @__PURE__ */ jsx(Eye, { className: iconSizes[size] }) : /* @__PURE__ */ jsx(EyeOff, { className: iconSizes[size] })
28
+ }
29
+ ) : void 0
30
+ }
31
+ );
32
+ }
33
+ );
34
+ PasswordInput.displayName = "PasswordInput";
35
+ var input_password_default = input_default;
36
+
37
+ export { PasswordInput, input_password_default };
38
+ //# sourceMappingURL=chunk-E2CYDDYC.js.map
39
+ //# sourceMappingURL=chunk-E2CYDDYC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/input-password/index.tsx"],"names":[],"mappings":";;;;;;AAOO,IAAM,gBAAgB,KAAA,CAAM,IAAA;AAAA,EACjC,CAAC,EAAE,gBAAA,GAAmB,IAAA,EAAM,OAAO,IAAA,EAAM,GAAA,EAAK,GAAG,KAAA,EAAM,KAAM;AAC3D,IAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,KAAA,CAAM,SAAS,KAAK,CAAA;AAE5D,IAAA,MAAM,gBAAA,GAAmB,KAAA,CAAM,WAAA,CAAY,MAAM;AAC/C,MAAA,eAAA,CAAgB,CAAC,IAAA,KAAS,CAAC,IAAI,CAAA;AAAA,IACjC,CAAA,EAAG,EAAE,CAAA;AAEL,IAAA,uBACE,GAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACE,GAAG,KAAA;AAAA,QACJ,IAAA;AAAA,QACA,GAAA;AAAA,QACA,IAAA,EAAM,eAAe,MAAA,GAAS,UAAA;AAAA,QAC9B,WACE,gBAAA,mBACE,GAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,OAAA,EAAS,gBAAA;AAAA,YACT,SAAA,EAAU,wCAAA;AAAA,YACV,YAAA,EAAY,eAAe,eAAA,GAAkB,eAAA;AAAA,YAG5C,QAAA,EAAA,YAAA,mBACC,GAAA,CAAC,GAAA,EAAA,EAAI,SAAA,EAAW,SAAA,CAAU,IAAI,CAAA,EAAG,CAAA,mBAEjC,GAAA,CAAC,MAAA,EAAA,EAAO,SAAA,EAAW,SAAA,CAAU,IAAI,CAAA,EAAG;AAAA;AAAA,SAExC,GACE;AAAA;AAAA,KAER;AAAA,EAEJ;AACF;AAEA,aAAA,CAAc,WAAA,GAAc,eAAA;AAG5B,IAAO,sBAAA,GAAQ","file":"chunk-E2CYDDYC.js","sourcesContent":["import { Eye, EyeOff } from 'lucide-react'\nimport React from 'react'\n\nimport Input from '../input'\nimport { iconSizes } from '../utils'\nimport type { PasswordInputProps } from './types'\n\nexport const PasswordInput = React.memo<PasswordInputProps>(\n ({ visibilityToggle = true, size = 'md', ref, ...props }) => {\n const [showPassword, setShowPassword] = React.useState(false)\n\n const toggleVisibility = React.useCallback(() => {\n setShowPassword((prev) => !prev)\n }, [])\n\n return (\n <Input\n {...props}\n size={size}\n ref={ref}\n type={showPassword ? 'text' : 'password'}\n rightIcon={\n visibilityToggle ? (\n <button\n type=\"button\"\n onClick={toggleVisibility}\n className=\"cursor-pointer hover:text-text-primary\"\n aria-label={showPassword ? 'Hide password' : 'Show password'}\n // tabIndex={-1}\n >\n {showPassword ? (\n <Eye className={iconSizes[size]} />\n ) : (\n <EyeOff className={iconSizes[size]} />\n )}\n </button>\n ) : undefined\n }\n />\n )\n },\n)\n\nPasswordInput.displayName = 'PasswordInput'\n\nexport type * from './types'\nexport default Input\n"]}