@oneplatformdev/ui 0.1.99-beta.27 → 0.1.99-beta.270

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 (252) hide show
  1. package/Accordion/Accordion.d.ts +1 -1
  2. package/Accordion/Accordion.d.ts.map +1 -1
  3. package/Accordion/Accordion.js +48 -26
  4. package/Accordion/Accordion.js.map +1 -1
  5. package/AlertDialog/AlertDialog.stories.js +66 -23
  6. package/AlertDialog/AlertDialog.stories.js.map +1 -1
  7. package/AlertDialog/AlertDialogRoot.d.ts.map +1 -1
  8. package/AlertDialog/AlertDialogRoot.js +19 -18
  9. package/AlertDialog/AlertDialogRoot.js.map +1 -1
  10. package/Button/Button.d.ts.map +1 -1
  11. package/Button/Button.js +40 -40
  12. package/Button/Button.js.map +1 -1
  13. package/Button/Button.stories.js +15 -12
  14. package/Button/Button.stories.js.map +1 -1
  15. package/Button/Button.utils.d.ts +3 -0
  16. package/Button/Button.utils.d.ts.map +1 -0
  17. package/Button/Button.utils.js +14 -0
  18. package/Button/Button.utils.js.map +1 -0
  19. package/Button/buttonVariants.d.ts +2 -2
  20. package/Button/buttonVariants.d.ts.map +1 -1
  21. package/Button/buttonVariants.js +38 -6
  22. package/Button/buttonVariants.js.map +1 -1
  23. package/Button/index.d.ts +1 -0
  24. package/Button/index.d.ts.map +1 -1
  25. package/Button/index.js +8 -6
  26. package/Button/index.js.map +1 -1
  27. package/ButtonIcon/ButtonIcon.d.ts.map +1 -1
  28. package/ButtonIcon/ButtonIcon.js +47 -47
  29. package/ButtonIcon/ButtonIcon.js.map +1 -1
  30. package/ButtonIcon/ButtonIcon.stories.js +35 -33
  31. package/ButtonIcon/ButtonIcon.stories.js.map +1 -1
  32. package/ButtonIcon/buttonIconVariants.d.ts +1 -1
  33. package/ButtonIcon/buttonIconVariants.d.ts.map +1 -1
  34. package/ButtonIcon/buttonIconVariants.js +3 -2
  35. package/ButtonIcon/buttonIconVariants.js.map +1 -1
  36. package/CHANGELOG.md +1527 -0
  37. package/Card/Card.d.ts.map +1 -1
  38. package/Card/Card.js +22 -21
  39. package/Card/Card.js.map +1 -1
  40. package/Checkbox/Checkbox.d.ts.map +1 -1
  41. package/Checkbox/Checkbox.js +35 -33
  42. package/Checkbox/Checkbox.js.map +1 -1
  43. package/Checkbox/Checkbox.stories.js +108 -0
  44. package/Checkbox/Checkbox.stories.js.map +1 -0
  45. package/Checkbox/Checkbox.types.d.ts +2 -1
  46. package/Checkbox/Checkbox.types.d.ts.map +1 -1
  47. package/Combobox/Combobox.d.ts +4 -2
  48. package/Combobox/Combobox.d.ts.map +1 -1
  49. package/Combobox/Combobox.js +222 -192
  50. package/Combobox/Combobox.js.map +1 -1
  51. package/Combobox/Combobox.stories.js +231 -85
  52. package/Combobox/Combobox.stories.js.map +1 -1
  53. package/Combobox/Combobox.types.d.ts +88 -24
  54. package/Combobox/Combobox.types.d.ts.map +1 -1
  55. package/Combobox/Combobox.types.js +4 -1
  56. package/Combobox/Combobox.types.js.map +1 -1
  57. package/Combobox/ComboboxOptionItem.d.ts +5 -3
  58. package/Combobox/ComboboxOptionItem.d.ts.map +1 -1
  59. package/Combobox/ComboboxOptionItem.js +80 -23
  60. package/Combobox/ComboboxOptionItem.js.map +1 -1
  61. package/Combobox/ComboboxRenderContent.d.ts +28 -0
  62. package/Combobox/ComboboxRenderContent.d.ts.map +1 -0
  63. package/Combobox/ComboboxRenderContent.js +142 -0
  64. package/Combobox/ComboboxRenderContent.js.map +1 -0
  65. package/Combobox/ComboboxRenderOptions.d.ts +4 -0
  66. package/Combobox/ComboboxRenderOptions.d.ts.map +1 -0
  67. package/Combobox/ComboboxRenderOptions.js +53 -0
  68. package/Combobox/ComboboxRenderOptions.js.map +1 -0
  69. package/Combobox/ComboboxRenderTrigger.d.ts +18 -0
  70. package/Combobox/ComboboxRenderTrigger.d.ts.map +1 -0
  71. package/Combobox/ComboboxRenderTrigger.js +118 -0
  72. package/Combobox/ComboboxRenderTrigger.js.map +1 -0
  73. package/Command/Command.d.ts +6 -1
  74. package/Command/Command.d.ts.map +1 -1
  75. package/Command/Command.js +66 -48
  76. package/Command/Command.js.map +1 -1
  77. package/ContextPopover/ContextDropdownMenu.d.ts +12 -0
  78. package/ContextPopover/ContextDropdownMenu.d.ts.map +1 -0
  79. package/ContextPopover/ContextDropdownMenu.js +41 -0
  80. package/ContextPopover/ContextDropdownMenu.js.map +1 -0
  81. package/ContextPopover/ContextPopover.d.ts +12 -0
  82. package/ContextPopover/ContextPopover.d.ts.map +1 -0
  83. package/ContextPopover/ContextPopover.js +34 -0
  84. package/ContextPopover/ContextPopover.js.map +1 -0
  85. package/ContextPopover/index.d.ts +4 -0
  86. package/ContextPopover/index.d.ts.map +1 -0
  87. package/ContextPopover/index.js +9 -0
  88. package/ContextPopover/index.js.map +1 -0
  89. package/ContextPopover/useContextPopoverHandler.d.ts +14 -0
  90. package/ContextPopover/useContextPopoverHandler.d.ts.map +1 -0
  91. package/ContextPopover/useContextPopoverHandler.js +21 -0
  92. package/ContextPopover/useContextPopoverHandler.js.map +1 -0
  93. package/DataTable/DataTable.js +6 -6
  94. package/DataTable/useDataTable.d.ts +1 -1
  95. package/Dialog/Dialog.d.ts +4 -1
  96. package/Dialog/Dialog.d.ts.map +1 -1
  97. package/Dialog/Dialog.js +82 -40
  98. package/Dialog/Dialog.js.map +1 -1
  99. package/Dialog/Dialog.stories.js +108 -0
  100. package/Dialog/Dialog.stories.js.map +1 -0
  101. package/Dialog/Dialog.types.d.ts +4 -0
  102. package/Dialog/Dialog.types.d.ts.map +1 -0
  103. package/Dialog/Dialog.types.js +2 -0
  104. package/Dialog/Dialog.types.js.map +1 -0
  105. package/Dialog/index.d.ts +1 -0
  106. package/Dialog/index.d.ts.map +1 -1
  107. package/Dialog/useDialogClosePosition.d.ts +11 -0
  108. package/Dialog/useDialogClosePosition.d.ts.map +1 -0
  109. package/Dialog/useDialogClosePosition.js +50 -0
  110. package/Dialog/useDialogClosePosition.js.map +1 -0
  111. package/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  112. package/DropdownMenu/DropdownMenu.js +33 -20
  113. package/DropdownMenu/DropdownMenu.js.map +1 -1
  114. package/Dropzone/Dropzone.d.ts.map +1 -1
  115. package/Dropzone/Dropzone.js +340 -141
  116. package/Dropzone/Dropzone.js.map +1 -1
  117. package/Dropzone/Dropzone.stories.js +308 -0
  118. package/Dropzone/Dropzone.stories.js.map +1 -0
  119. package/Dropzone/Dropzone.types.d.ts +17 -1
  120. package/Dropzone/Dropzone.types.d.ts.map +1 -1
  121. package/Dropzone/Dropzone.types.js +19 -8
  122. package/Dropzone/Dropzone.types.js.map +1 -1
  123. package/Dropzone/DropzoneFilePreview.d.ts.map +1 -1
  124. package/Dropzone/DropzoneFilePreview.js +46 -26
  125. package/Dropzone/DropzoneFilePreview.js.map +1 -1
  126. package/Dropzone/DropzoneSinglePickPreview.d.ts +5 -2
  127. package/Dropzone/DropzoneSinglePickPreview.d.ts.map +1 -1
  128. package/Dropzone/DropzoneSinglePickPreview.js +119 -22
  129. package/Dropzone/DropzoneSinglePickPreview.js.map +1 -1
  130. package/Dropzone/index.js +7 -5
  131. package/Form/FormRenderControl.d.ts +1 -1
  132. package/Form/FormRenderControl.d.ts.map +1 -1
  133. package/Form/FormRenderControl.js +51 -24
  134. package/Form/FormRenderControl.js.map +1 -1
  135. package/Form/FormRenderControl.types.d.ts +4 -1
  136. package/Form/FormRenderControl.types.d.ts.map +1 -1
  137. package/FormCombobox/FormCombobox.d.ts +4 -2
  138. package/FormCombobox/FormCombobox.d.ts.map +1 -1
  139. package/FormCombobox/FormCombobox.js +30 -17
  140. package/FormCombobox/FormCombobox.js.map +1 -1
  141. package/FormCombobox/FormCombobox.types.d.ts +6 -2
  142. package/FormCombobox/FormCombobox.types.d.ts.map +1 -1
  143. package/FormDatePicker/FormDatePicker.d.ts.map +1 -1
  144. package/FormDatePicker/FormDatePicker.js +18 -16
  145. package/FormDatePicker/FormDatePicker.js.map +1 -1
  146. package/FormDropzone/FormDropzone.d.ts.map +1 -1
  147. package/FormDropzone/FormDropzone.js +11 -9
  148. package/FormDropzone/FormDropzone.js.map +1 -1
  149. package/FormInput/FormInput.d.ts.map +1 -1
  150. package/FormInput/FormInput.js +47 -28
  151. package/FormInput/FormInput.js.map +1 -1
  152. package/FormInput/FormInput.stories.js +61 -0
  153. package/FormInput/FormInput.stories.js.map +1 -0
  154. package/FormInput/FormInput.types.d.ts +1 -0
  155. package/FormInput/FormInput.types.d.ts.map +1 -1
  156. package/FormSelect/FormSelect.d.ts.map +1 -1
  157. package/FormSelect/FormSelect.js +33 -29
  158. package/FormSelect/FormSelect.js.map +1 -1
  159. package/FormTextarea/FormTextarea.d.ts.map +1 -1
  160. package/FormTextarea/FormTextarea.js +15 -12
  161. package/FormTextarea/FormTextarea.js.map +1 -1
  162. package/InfoBlock/InfoBlock.d.ts +7 -0
  163. package/InfoBlock/InfoBlock.d.ts.map +1 -0
  164. package/InfoBlock/InfoBlock.js +28 -0
  165. package/InfoBlock/InfoBlock.js.map +1 -0
  166. package/InfoBlock/InfoBlock.stories.js +50 -0
  167. package/InfoBlock/InfoBlock.stories.js.map +1 -0
  168. package/InfoBlock/InfoBlock.types.d.ts +9 -0
  169. package/InfoBlock/InfoBlock.types.d.ts.map +1 -0
  170. package/InfoBlock/InfoBlock.types.js +2 -0
  171. package/InfoBlock/InfoBlock.types.js.map +1 -0
  172. package/InfoBlock/index.d.ts +3 -0
  173. package/InfoBlock/index.d.ts.map +1 -0
  174. package/InfoBlock/index.js +5 -0
  175. package/InfoBlock/index.js.map +1 -0
  176. package/InfoBlock/infoBlockVariants.d.ts +6 -0
  177. package/InfoBlock/infoBlockVariants.d.ts.map +1 -0
  178. package/InfoBlock/infoBlockVariants.js +27 -0
  179. package/InfoBlock/infoBlockVariants.js.map +1 -0
  180. package/Input/Input.d.ts.map +1 -1
  181. package/Input/Input.js +104 -53
  182. package/Input/Input.js.map +1 -1
  183. package/Input/Input.stories.js +225 -0
  184. package/Input/Input.stories.js.map +1 -0
  185. package/Input/Input.types.d.ts +5 -0
  186. package/Input/Input.types.d.ts.map +1 -1
  187. package/LoadingMask/LoadingMask.d.ts +1 -2
  188. package/LoadingMask/LoadingMask.d.ts.map +1 -1
  189. package/LoadingMask/LoadingMask.js +8 -8
  190. package/LoadingMask/LoadingMask.js.map +1 -1
  191. package/LoadingMask/LoadingMask.types.d.ts +1 -0
  192. package/LoadingMask/LoadingMask.types.d.ts.map +1 -1
  193. package/Popover/Popover.d.ts +3 -1
  194. package/Popover/Popover.d.ts.map +1 -1
  195. package/Popover/Popover.js +15 -10
  196. package/Popover/Popover.js.map +1 -1
  197. package/ScrollArea/ScrollArea.d.ts +5 -1
  198. package/ScrollArea/ScrollArea.d.ts.map +1 -1
  199. package/ScrollArea/ScrollArea.js +23 -17
  200. package/ScrollArea/ScrollArea.js.map +1 -1
  201. package/Search/Search.d.ts.map +1 -1
  202. package/Search/Search.js +40 -31
  203. package/Search/Search.js.map +1 -1
  204. package/Select/Select.d.ts.map +1 -1
  205. package/Select/Select.js +53 -48
  206. package/Select/Select.js.map +1 -1
  207. package/Select/Select.types.d.ts +4 -0
  208. package/Select/Select.types.d.ts.map +1 -1
  209. package/Select/SelectRoot.d.ts.map +1 -1
  210. package/Select/SelectRoot.js +81 -68
  211. package/Select/SelectRoot.js.map +1 -1
  212. package/Switch/Switch.d.ts +1 -1
  213. package/Switch/Switch.d.ts.map +1 -1
  214. package/Switch/Switch.js +19 -9
  215. package/Switch/Switch.js.map +1 -1
  216. package/Switch/Switch.stories.js +62 -0
  217. package/Switch/Switch.stories.js.map +1 -0
  218. package/Textarea/Textarea.d.ts.map +1 -1
  219. package/Textarea/Textarea.js +50 -45
  220. package/Textarea/Textarea.js.map +1 -1
  221. package/Textarea/Textarea.types.d.ts +3 -1
  222. package/Textarea/Textarea.types.d.ts.map +1 -1
  223. package/Toast/Toast.d.ts +1 -1
  224. package/Toast/toastVariants.d.ts +1 -1
  225. package/Tooltip/QuestionMarkIcon.svg.js +6 -0
  226. package/Tooltip/QuestionMarkIcon.svg.js.map +1 -0
  227. package/Tooltip/Tooltip.d.ts.map +1 -1
  228. package/Tooltip/Tooltip.js +52 -32
  229. package/Tooltip/Tooltip.js.map +1 -1
  230. package/Tooltip/Tooltip.types.d.ts +10 -0
  231. package/Tooltip/Tooltip.types.d.ts.map +1 -1
  232. package/Tooltip/tooltipVariants.d.ts +4 -0
  233. package/Tooltip/tooltipVariants.d.ts.map +1 -0
  234. package/Tooltip/tooltipVariants.js +23 -0
  235. package/Tooltip/tooltipVariants.js.map +1 -0
  236. package/index.d.ts +2 -0
  237. package/index.d.ts.map +1 -1
  238. package/index.js +352 -340
  239. package/index.js.map +1 -1
  240. package/package.json +10 -6
  241. package/styles.css +1 -0
  242. package/vite-env.d.js +2 -0
  243. package/vite-env.d.js.map +1 -0
  244. package/vite-env.d.ts +7 -0
  245. package/Combobox/ComboboxOptions.d.ts +0 -4
  246. package/Combobox/ComboboxOptions.d.ts.map +0 -1
  247. package/Combobox/ComboboxOptions.js +0 -64
  248. package/Combobox/ComboboxOptions.js.map +0 -1
  249. package/Form/FormTooltipButton.d.ts +0 -6
  250. package/Form/FormTooltipButton.d.ts.map +0 -1
  251. package/Form/FormTooltipButton.js +0 -33
  252. package/Form/FormTooltipButton.js.map +0 -1
package/Input/Input.js CHANGED
@@ -1,86 +1,137 @@
1
- import { jsxs as w, jsx as s } from "react/jsx-runtime";
2
- import u, { useState as v } from "react";
3
- import { Eye as h, EyeOff as P } from "lucide-react";
4
- import { inputVariants as x } from "./inputVariants.js";
5
- import { cn as p } from "@oneplatformdev/utils";
6
- const m = u.forwardRef(
7
- (t, a) => {
1
+ import { jsxs as b, jsx as t } from "react/jsx-runtime";
2
+ import g, { useRef as H, useImperativeHandle as L, useState as E } from "react";
3
+ import { X as M, Eye as _, EyeOff as A } from "lucide-react";
4
+ import { inputVariants as U } from "./inputVariants.js";
5
+ import { cn as s } from "@oneplatformdev/utils";
6
+ const X = (e) => {
7
+ if (!e) return;
8
+ Object.getOwnPropertyDescriptor(
9
+ HTMLInputElement.prototype,
10
+ "value"
11
+ )?.set?.call(e, ""), e.dispatchEvent(new Event("input", { bubbles: !0 })), e.dispatchEvent(new Event("change", { bubbles: !0 }));
12
+ }, v = g.forwardRef(
13
+ (e, r) => {
8
14
  const {
9
- className: e,
15
+ className: a,
10
16
  variant: o,
11
- type: n,
12
- slotProps: { input: l, wrapper: c } = {},
13
- onChange: f,
14
- onTransform: d,
17
+ type: i,
18
+ slotProps: { input: u, wrapper: y } = {},
19
+ onChange: h,
20
+ onTransform: w,
21
+ counter: S = !1,
22
+ maxLength: c,
15
23
  fullSize: N = !1,
16
- ...g
17
- } = t, {
18
- startAdornment: i,
19
- className: I,
20
- ...b
21
- } = l || {};
22
- return /* @__PURE__ */ w(
24
+ value: p,
25
+ defaultValue: d,
26
+ disabled: x,
27
+ readOnly: I,
28
+ clearable: C = !1,
29
+ onClear: j,
30
+ ...z
31
+ } = e, {
32
+ startAdornment: f,
33
+ className: B,
34
+ ...O
35
+ } = u || {}, l = H(null);
36
+ L(r, () => l.current);
37
+ const m = p !== void 0, [D, V] = E(
38
+ d !== void 0 ? String(d) : ""
39
+ ), P = m ? String(p ?? "") : D, T = C && !x && !I && P.length > 0, k = () => {
40
+ X(l.current), m || V(""), l.current?.focus(), j?.();
41
+ };
42
+ return /* @__PURE__ */ b(
23
43
  "div",
24
44
  {
25
- ...c || {},
26
- className: p(
45
+ ...y || {},
46
+ className: s(
27
47
  "relative",
28
48
  N && "w-full",
29
- c?.className
49
+ y?.className
30
50
  ),
31
51
  children: [
32
- !!i && /* @__PURE__ */ s("span", { className: "absolute left-[10px] top-1/2 -translate-y-1/2", children: i }),
33
- /* @__PURE__ */ s(
52
+ !!f && /* @__PURE__ */ t("span", { className: "absolute left-[10px] top-1/2 -translate-y-1/2", children: f }),
53
+ /* @__PURE__ */ t(
34
54
  "input",
35
55
  {
36
- type: n,
37
- className: p(
38
- x({ variant: o, className: e }),
39
- !!i && "pl-10",
40
- I,
56
+ type: i,
57
+ className: s(
58
+ U({ variant: o, className: a }),
59
+ !!f && "pl-10",
60
+ C && "pr-8",
61
+ B,
41
62
  N && "min-w-auto"
42
63
  ),
43
- ref: a,
44
- ...b,
45
- ...g,
46
- onChange: (r) => {
47
- typeof d?.(r.target.value, r) == "string" && (r.target.value = d(r.target.value, r)), f && f(r);
64
+ ref: l,
65
+ maxLength: c,
66
+ value: p,
67
+ defaultValue: d,
68
+ disabled: x,
69
+ readOnly: I,
70
+ ...O,
71
+ ...z,
72
+ onChange: (n) => {
73
+ typeof w?.(n.target.value, n) == "string" && (n.target.value = w(n.target.value, n)), m || V(n.target.value), h && h(n);
48
74
  }
49
75
  }
50
- )
76
+ ),
77
+ T && /* @__PURE__ */ t(
78
+ "button",
79
+ {
80
+ type: "button",
81
+ tabIndex: -1,
82
+ "aria-label": "Clear input",
83
+ onMouseDown: (n) => n.preventDefault(),
84
+ onClick: k,
85
+ className: s(
86
+ "absolute top-1/2 right-3 -translate-y-1/2",
87
+ "text-muted-foreground hover:text-foreground",
88
+ "inline-flex items-center justify-center"
89
+ ),
90
+ children: /* @__PURE__ */ t(M, { size: 16 })
91
+ }
92
+ ),
93
+ S && typeof c == "number" && /* @__PURE__ */ b("div", { className: s(
94
+ "w-full text-right inline-flex items-center justify-end",
95
+ "text-xs font-medium leading-[1.2] text-muted-foreground",
96
+ "peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
97
+ ), children: [
98
+ P.length,
99
+ "/",
100
+ c
101
+ ] })
51
102
  ]
52
103
  }
53
104
  );
54
105
  }
55
106
  );
56
- m.displayName = "Input";
57
- const y = u.forwardRef(
58
- (t, a) => {
59
- const [e, o] = v(!1), n = e ? "text" : "password", l = () => {
60
- o(!e);
107
+ v.displayName = "Input";
108
+ const R = g.forwardRef(
109
+ (e, r) => {
110
+ const [a, o] = E(!1), i = a ? "text" : "password", u = () => {
111
+ o(!a);
61
112
  };
62
- return /* @__PURE__ */ w("div", { ...t?.slotProps?.wrapper || {}, className: p("relative", t?.slotProps?.wrapper?.className), children: [
63
- /* @__PURE__ */ s(m, { ...t, type: n, className: "pr-8", ref: a }),
64
- /* @__PURE__ */ s(V, { isVisible: e, onClick: l })
113
+ return /* @__PURE__ */ b("div", { ...e?.slotProps?.wrapper || {}, className: s("relative", e?.slotProps?.wrapper?.className), children: [
114
+ /* @__PURE__ */ t(v, { ...e, type: i, className: "pr-8", ref: r }),
115
+ /* @__PURE__ */ t(q, { isVisible: a, onClick: u })
65
116
  ] });
66
117
  }
67
118
  );
68
- y.displayName = "PasswordInput";
69
- const V = ({ isVisible: t, onClick: a }) => /* @__PURE__ */ s(
119
+ R.displayName = "PasswordInput";
120
+ const q = ({ isVisible: e, onClick: r }) => /* @__PURE__ */ t(
70
121
  "button",
71
122
  {
72
123
  type: "button",
73
- onClick: a,
124
+ onClick: r,
74
125
  className: "absolute top-1/2 right-3 transform -translate-y-1/2",
75
- children: t ? /* @__PURE__ */ s(h, { size: 16 }) : /* @__PURE__ */ s(P, { size: 16 })
126
+ children: e ? /* @__PURE__ */ t(_, { size: 16 }) : /* @__PURE__ */ t(A, { size: 16 })
76
127
  }
77
- ), B = u.forwardRef(
78
- ({ type: t, ...a }, e) => t === "password" ? /* @__PURE__ */ s(y, { type: t, ...a, ref: e }) : /* @__PURE__ */ s(m, { type: t, ...a, ref: e })
128
+ ), F = g.forwardRef(
129
+ ({ type: e, ...r }, a) => e === "password" ? /* @__PURE__ */ t(R, { type: e, ...r, ref: a }) : /* @__PURE__ */ t(v, { type: e, ...r, ref: a })
79
130
  );
80
- B.displayName = "Input";
131
+ F.displayName = "Input";
81
132
  export {
82
- m as BaseInput,
83
- B as Input,
84
- y as PasswordInput
133
+ v as BaseInput,
134
+ F as Input,
135
+ R as PasswordInput
85
136
  };
86
137
  //# sourceMappingURL=Input.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Input.js","sources":["../../src/Input/Input.tsx"],"sourcesContent":["import React, { useState } from 'react';\r\nimport { Eye, EyeOff } from 'lucide-react';\r\nimport { inputVariants } from './inputVariants';\r\n\r\nimport { cn } from '@oneplatformdev/utils';\r\nimport { InputProps } from './Input.types';\r\n\r\nexport const BaseInput = React.forwardRef<HTMLInputElement, InputProps>(\r\n (props, ref) => {\r\n const {\r\n className,\r\n variant,\r\n type,\r\n slotProps: { input, wrapper } = {},\r\n onChange,\r\n onTransform,\r\n fullSize = false,\r\n ...rest\r\n } = props;\r\n const {\r\n startAdornment,\r\n className: classNameInputSlotProps,\r\n ...restInputSlotProps\r\n } = input || {};\r\n return (\r\n <div\r\n {...(wrapper || {})}\r\n className={cn(\r\n 'relative',\r\n fullSize && 'w-full',\r\n wrapper?.className\r\n )}>\r\n {Boolean(startAdornment) && (\r\n <span className=\"absolute left-[10px] top-1/2 -translate-y-1/2\">\r\n {startAdornment}\r\n </span>\r\n )}\r\n <input\r\n type={type}\r\n className={cn(\r\n inputVariants({ variant, className }),\r\n Boolean(startAdornment) && 'pl-10',\r\n classNameInputSlotProps,\r\n fullSize && 'min-w-auto',\r\n )}\r\n ref={ref}\r\n {...restInputSlotProps}\r\n {...rest}\r\n onChange={(e) => {\r\n if (typeof onTransform?.(e.target.value, e) === 'string') {\r\n e.target.value = onTransform(e.target.value, e);\r\n }\r\n if (onChange) onChange(e);\r\n }}\r\n />\r\n </div>\r\n );\r\n }\r\n);\r\nBaseInput.displayName = 'Input';\r\n\r\nexport const PasswordInput = React.forwardRef<HTMLInputElement, InputProps>(\r\n (props, ref) => {\r\n const [isVisible, setIsVisible] = useState<boolean>(false);\r\n\r\n const inputType = isVisible ? 'text' : 'password';\r\n\r\n const toggleVisibility = () => {\r\n setIsVisible(!isVisible);\r\n };\r\n\r\n return (\r\n <div {...(props?.slotProps?.wrapper || {})} className={cn('relative', props?.slotProps?.wrapper?.className)}>\r\n <BaseInput {...props} type={inputType} className=\"pr-8\" ref={ref} />\r\n <VisibilityButton isVisible={isVisible} onClick={toggleVisibility} />\r\n </div>\r\n );\r\n }\r\n);\r\nPasswordInput.displayName = 'PasswordInput';\r\n\r\ntype VisibilityButtonProps = {\r\n isVisible: boolean\r\n onClick: () => void\r\n}\r\n\r\nconst VisibilityButton = ({ isVisible, onClick }:VisibilityButtonProps) => (\r\n <button\r\n type=\"button\"\r\n onClick={onClick}\r\n className=\"absolute top-1/2 right-3 transform -translate-y-1/2\"\r\n >\r\n {isVisible ? <Eye size={16} /> : <EyeOff size={16} />}\r\n </button>\r\n);\r\n\r\nexport const Input = React.forwardRef<HTMLInputElement, InputProps>(\r\n ({ type, ...props }, ref) => {\r\n if (type === 'password') return <PasswordInput type={type} {...props} ref={ref} />;\r\n return <BaseInput type={type} {...props} ref={ref} />;\r\n }\r\n);\r\nInput.displayName = 'Input';\r\n"],"names":["BaseInput","React","props","ref","className","variant","type","input","wrapper","onChange","onTransform","fullSize","rest","startAdornment","classNameInputSlotProps","restInputSlotProps","jsxs","cn","jsx","inputVariants","e","PasswordInput","isVisible","setIsVisible","useState","inputType","toggleVisibility","VisibilityButton","onClick","Eye","EyeOff","Input"],"mappings":";;;;;AAOO,MAAMA,IAAYC,EAAM;AAAA,EAC7B,CAACC,GAAOC,MAAQ;AACd,UAAM;AAAA,MACJ,WAAAC;AAAA,MACA,SAAAC;AAAA,MACA,MAAAC;AAAA,MACA,WAAW,EAAE,OAAAC,GAAO,SAAAC,EAAA,IAAY,CAAA;AAAA,MAChC,UAAAC;AAAA,MACA,aAAAC;AAAA,MACA,UAAAC,IAAW;AAAA,MACX,GAAGC;AAAA,IAAA,IACDV,GACE;AAAA,MACJ,gBAAAW;AAAA,MACA,WAAWC;AAAA,MACX,GAAGC;AAAA,IAAA,IACDR,KAAS,CAAA;AACb,WACE,gBAAAS;AAAA,MAAC;AAAA,MAAA;AAAA,QACE,GAAIR,KAAW,CAAA;AAAA,QAChB,WAAWS;AAAA,UACT;AAAA,UACAN,KAAY;AAAA,UACZH,GAAS;AAAA,QAAA;AAAA,QAEV,UAAA;AAAA,UAAA,EAAQK,KACP,gBAAAK,EAAC,QAAA,EAAK,WAAU,iDACb,UAAAL,GACH;AAAA,UAEF,gBAAAK;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,MAAAZ;AAAA,cACA,WAAWW;AAAA,gBACTE,EAAc,EAAE,SAAAd,GAAS,WAAAD,GAAW;AAAA,gBACpC,EAAQS,KAAmB;AAAA,gBAC3BC;AAAA,gBACAH,KAAY;AAAA,cAAA;AAAA,cAEd,KAAAR;AAAA,cACC,GAAGY;AAAA,cACH,GAAGH;AAAA,cACJ,UAAU,CAACQ,MAAM;AACf,gBAAI,OAAOV,IAAcU,EAAE,OAAO,OAAOA,CAAC,KAAM,aAC9CA,EAAE,OAAO,QAAQV,EAAYU,EAAE,OAAO,OAAOA,CAAC,IAE5CX,OAAmBW,CAAC;AAAA,cAC1B;AAAA,YAAA;AAAA,UAAA;AAAA,QACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;AACApB,EAAU,cAAc;AAEjB,MAAMqB,IAAgBpB,EAAM;AAAA,EACjC,CAACC,GAAOC,MAAQ;AACd,UAAM,CAACmB,GAAWC,CAAY,IAAIC,EAAkB,EAAK,GAEnDC,IAAYH,IAAY,SAAS,YAEjCI,IAAmB,MAAM;AAC7B,MAAAH,EAAa,CAACD,CAAS;AAAA,IACzB;AAEA,WACE,gBAAAN,EAAC,OAAA,EAAK,GAAId,GAAO,WAAW,WAAW,CAAA,GAAK,WAAWe,EAAG,YAAYf,GAAO,WAAW,SAAS,SAAS,GACxG,UAAA;AAAA,MAAA,gBAAAgB,EAAClB,KAAW,GAAGE,GAAO,MAAMuB,GAAW,WAAU,QAAO,KAAAtB,GAAU;AAAA,MAClE,gBAAAe,EAACS,GAAA,EAAiB,WAAAL,GAAsB,SAASI,EAAA,CAAkB;AAAA,IAAA,GACrE;AAAA,EAEJ;AACF;AACAL,EAAc,cAAc;AAO5B,MAAMM,IAAmB,CAAC,EAAE,WAAAL,GAAW,SAAAM,QACrC,gBAAAV;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,MAAK;AAAA,IACL,SAAAU;AAAA,IACA,WAAU;AAAA,IAET,UAAAN,sBAAaO,GAAA,EAAI,MAAM,IAAI,IAAK,gBAAAX,EAACY,GAAA,EAAO,MAAM,GAAA,CAAI;AAAA,EAAA;AACrD,GAGWC,IAAQ9B,EAAM;AAAA,EACzB,CAAC,EAAE,MAAAK,GAAM,GAAGJ,EAAA,GAASC,MACfG,MAAS,aAAmB,gBAAAY,EAACG,KAAc,MAAAf,GAAa,GAAGJ,GAAO,KAAAC,GAAU,IACzE,gBAAAe,EAAClB,GAAA,EAAU,MAAAM,GAAa,GAAGJ,GAAO,KAAAC,GAAU;AAEvD;AACA4B,EAAM,cAAc;"}
1
+ {"version":3,"file":"Input.js","sources":["../../src/Input/Input.tsx"],"sourcesContent":["import React, { useImperativeHandle, useRef, useState } from 'react';\r\nimport { Eye, EyeOff, X } from 'lucide-react';\r\nimport { inputVariants } from './inputVariants';\r\n\r\nimport { cn } from '@oneplatformdev/utils';\r\nimport { InputProps } from './Input.types';\r\n\r\nconst clearInputNatively = (input: HTMLInputElement | null) => {\r\n if (!input) return;\r\n const setter = Object.getOwnPropertyDescriptor(\r\n HTMLInputElement.prototype,\r\n 'value',\r\n )?.set;\r\n setter?.call(input, '');\r\n input.dispatchEvent(new Event('input', { bubbles: true }));\r\n input.dispatchEvent(new Event('change', { bubbles: true }));\r\n};\r\n\r\nexport const BaseInput = React.forwardRef<HTMLInputElement, InputProps>(\r\n (props, ref) => {\r\n const {\r\n className,\r\n variant,\r\n type,\r\n slotProps: { input, wrapper } = {},\r\n onChange,\r\n onTransform,\r\n counter = false,\r\n maxLength,\r\n fullSize = false,\r\n value,\r\n defaultValue,\r\n disabled,\r\n readOnly,\r\n clearable = false,\r\n onClear,\r\n ...rest\r\n } = props;\r\n const {\r\n startAdornment,\r\n className: classNameInputSlotProps,\r\n ...restInputSlotProps\r\n } = input || {};\r\n\r\n const innerRef = useRef<HTMLInputElement>(null);\r\n useImperativeHandle(ref, () => innerRef.current as HTMLInputElement);\r\n\r\n const isControlled = value !== undefined;\r\n const [uncontrolledValue, setUncontrolledValue] = useState<string>(\r\n defaultValue !== undefined ? String(defaultValue) : '',\r\n );\r\n const currentValue = isControlled ? String(value ?? '') : uncontrolledValue;\r\n\r\n const showClear =\r\n clearable && !disabled && !readOnly && currentValue.length > 0;\r\n\r\n const handleClear = () => {\r\n clearInputNatively(innerRef.current);\r\n if (!isControlled) setUncontrolledValue('');\r\n innerRef.current?.focus();\r\n onClear?.();\r\n };\r\n\r\n return (\r\n <div\r\n {...(wrapper || {})}\r\n className={cn(\r\n 'relative',\r\n fullSize && 'w-full',\r\n wrapper?.className\r\n )}>\r\n {Boolean(startAdornment) && (\r\n <span className=\"absolute left-[10px] top-1/2 -translate-y-1/2\">\r\n {startAdornment}\r\n </span>\r\n )}\r\n <input\r\n type={type}\r\n className={cn(\r\n inputVariants({ variant, className }),\r\n Boolean(startAdornment) && 'pl-10',\r\n clearable && 'pr-8',\r\n classNameInputSlotProps,\r\n fullSize && 'min-w-auto',\r\n )}\r\n ref={innerRef}\r\n maxLength={maxLength}\r\n value={value}\r\n defaultValue={defaultValue}\r\n disabled={disabled}\r\n readOnly={readOnly}\r\n {...restInputSlotProps}\r\n {...rest}\r\n onChange={(e) => {\r\n if (typeof onTransform?.(e.target.value, e) === 'string') {\r\n e.target.value = onTransform(e.target.value, e);\r\n }\r\n if (!isControlled) setUncontrolledValue(e.target.value);\r\n if (onChange) onChange(e);\r\n }}\r\n />\r\n {showClear && (\r\n <button\r\n type=\"button\"\r\n tabIndex={-1}\r\n aria-label=\"Clear input\"\r\n onMouseDown={(e) => e.preventDefault()}\r\n onClick={handleClear}\r\n className={cn(\r\n 'absolute top-1/2 right-3 -translate-y-1/2',\r\n 'text-muted-foreground hover:text-foreground',\r\n 'inline-flex items-center justify-center',\r\n )}\r\n >\r\n <X size={16} />\r\n </button>\r\n )}\r\n {counter && typeof maxLength === 'number' && (\r\n <div className={cn(\r\n 'w-full text-right inline-flex items-center justify-end',\r\n 'text-xs font-medium leading-[1.2] text-muted-foreground',\r\n 'peer-disabled:cursor-not-allowed peer-disabled:opacity-70'\r\n )}>\r\n {currentValue.length}/{maxLength}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n }\r\n);\r\nBaseInput.displayName = 'Input';\r\n\r\nexport const PasswordInput = React.forwardRef<HTMLInputElement, InputProps>(\r\n (props, ref) => {\r\n const [isVisible, setIsVisible] = useState<boolean>(false);\r\n\r\n const inputType = isVisible ? 'text' : 'password';\r\n\r\n const toggleVisibility = () => {\r\n setIsVisible(!isVisible);\r\n };\r\n\r\n return (\r\n <div {...(props?.slotProps?.wrapper || {})} className={cn('relative', props?.slotProps?.wrapper?.className)}>\r\n <BaseInput {...props} type={inputType} className=\"pr-8\" ref={ref} />\r\n <VisibilityButton isVisible={isVisible} onClick={toggleVisibility} />\r\n </div>\r\n );\r\n }\r\n);\r\nPasswordInput.displayName = 'PasswordInput';\r\n\r\ntype VisibilityButtonProps = {\r\n isVisible: boolean\r\n onClick: () => void\r\n}\r\n\r\nconst VisibilityButton = ({ isVisible, onClick }:VisibilityButtonProps) => (\r\n <button\r\n type=\"button\"\r\n onClick={onClick}\r\n className=\"absolute top-1/2 right-3 transform -translate-y-1/2\"\r\n >\r\n {isVisible ? <Eye size={16} /> : <EyeOff size={16} />}\r\n </button>\r\n);\r\n\r\nexport const Input = React.forwardRef<HTMLInputElement, InputProps>(\r\n ({ type, ...props }, ref) => {\r\n if (type === 'password') return <PasswordInput type={type} {...props} ref={ref} />;\r\n return <BaseInput type={type} {...props} ref={ref} />;\r\n }\r\n);\r\nInput.displayName = 'Input';\r\n"],"names":["clearInputNatively","input","BaseInput","React","props","ref","className","variant","type","wrapper","onChange","onTransform","counter","maxLength","fullSize","value","defaultValue","disabled","readOnly","clearable","onClear","rest","startAdornment","classNameInputSlotProps","restInputSlotProps","innerRef","useRef","useImperativeHandle","isControlled","uncontrolledValue","setUncontrolledValue","useState","currentValue","showClear","handleClear","jsxs","cn","jsx","inputVariants","e","X","PasswordInput","isVisible","setIsVisible","inputType","toggleVisibility","VisibilityButton","onClick","Eye","EyeOff","Input"],"mappings":"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"}
@@ -0,0 +1,225 @@
1
+ import { jsx as e } from "react/jsx-runtime";
2
+ import { useState as o } from "react";
3
+ import { Search as c, Mail as s } from "lucide-react";
4
+ import { Input as n } from "./Input.js";
5
+ const h = {
6
+ title: "Input/Input",
7
+ component: n,
8
+ tags: ["autodocs"],
9
+ parameters: {
10
+ layout: "centered"
11
+ },
12
+ args: {
13
+ placeholder: "Enter text...",
14
+ variant: "default",
15
+ fullSize: !1,
16
+ counter: !1,
17
+ disabled: !1,
18
+ clearable: !1
19
+ },
20
+ argTypes: {
21
+ clearable: {
22
+ control: "boolean"
23
+ },
24
+ variant: {
25
+ control: "select",
26
+ options: ["default", "grey"]
27
+ },
28
+ type: {
29
+ control: "select",
30
+ options: ["text", "password", "email", "search", "number"]
31
+ },
32
+ fullSize: {
33
+ control: "boolean"
34
+ },
35
+ counter: {
36
+ control: "boolean"
37
+ },
38
+ disabled: {
39
+ control: "boolean"
40
+ },
41
+ maxLength: {
42
+ control: "number"
43
+ },
44
+ onChange: { action: "changed" },
45
+ onBlur: { action: "blurred" },
46
+ onFocus: { action: "focused" }
47
+ }
48
+ }, m = {
49
+ args: {
50
+ type: "text",
51
+ placeholder: "Default input"
52
+ }
53
+ }, g = {
54
+ args: {
55
+ variant: "grey",
56
+ type: "text",
57
+ placeholder: "Grey input"
58
+ }
59
+ }, v = {
60
+ args: {
61
+ placeholder: "Search...",
62
+ slotProps: {
63
+ input: {
64
+ startAdornment: /* @__PURE__ */ e(c, { size: 16 })
65
+ }
66
+ }
67
+ }
68
+ }, b = {
69
+ args: {
70
+ type: "email",
71
+ placeholder: "Email address",
72
+ slotProps: {
73
+ input: {
74
+ startAdornment: /* @__PURE__ */ e(s, { size: 16 })
75
+ }
76
+ }
77
+ }
78
+ }, f = {
79
+ args: {
80
+ type: "password",
81
+ placeholder: "Password"
82
+ }
83
+ }, x = {
84
+ render: (a) => {
85
+ const [t, l] = o("");
86
+ return /* @__PURE__ */ e("div", { className: "w-[320px]", children: /* @__PURE__ */ e(
87
+ n,
88
+ {
89
+ ...a,
90
+ value: t,
91
+ onChange: (r) => l(r.target.value)
92
+ }
93
+ ) });
94
+ },
95
+ args: {
96
+ placeholder: "Type something...",
97
+ counter: !0,
98
+ maxLength: 50
99
+ }
100
+ }, y = {
101
+ render: (a) => /* @__PURE__ */ e("div", { className: "w-[480px]", children: /* @__PURE__ */ e(n, { ...a }) }),
102
+ args: {
103
+ placeholder: "Full width input",
104
+ fullSize: !0
105
+ }
106
+ }, w = {
107
+ args: {
108
+ placeholder: "Disabled input",
109
+ disabled: !0,
110
+ value: "Disabled value"
111
+ }
112
+ }, C = {
113
+ render: (a) => {
114
+ const [t, l] = o("");
115
+ return /* @__PURE__ */ e("div", { className: "w-[320px]", children: /* @__PURE__ */ e(
116
+ n,
117
+ {
118
+ ...a,
119
+ value: t,
120
+ onTransform: (r) => r.replace(/\D/g, ""),
121
+ onChange: (r) => l(r.target.value)
122
+ }
123
+ ) });
124
+ },
125
+ args: {
126
+ placeholder: "Only numbers allowed"
127
+ }
128
+ }, S = {
129
+ render: (a) => {
130
+ const [t, l] = o("Clear me");
131
+ return /* @__PURE__ */ e("div", { className: "w-[320px]", children: /* @__PURE__ */ e(
132
+ n,
133
+ {
134
+ ...a,
135
+ value: t,
136
+ onChange: (r) => l(r.target.value),
137
+ onClear: () => console.log("cleared")
138
+ }
139
+ ) });
140
+ },
141
+ args: {
142
+ placeholder: "Type something...",
143
+ clearable: !0
144
+ }
145
+ }, N = {
146
+ render: (a) => /* @__PURE__ */ e("div", { className: "w-[320px]", children: /* @__PURE__ */ e(n, { ...a, defaultValue: "Uncontrolled value" }) }),
147
+ args: {
148
+ placeholder: "Type something...",
149
+ clearable: !0
150
+ }
151
+ }, V = {
152
+ render: (a) => {
153
+ const [t, l] = o("john@example.com");
154
+ return /* @__PURE__ */ e("div", { className: "w-[320px]", children: /* @__PURE__ */ e(
155
+ n,
156
+ {
157
+ ...a,
158
+ value: t,
159
+ onChange: (r) => l(r.target.value)
160
+ }
161
+ ) });
162
+ },
163
+ args: {
164
+ type: "email",
165
+ placeholder: "Email address",
166
+ clearable: !0,
167
+ slotProps: {
168
+ input: {
169
+ startAdornment: /* @__PURE__ */ e(s, { size: 16 })
170
+ }
171
+ }
172
+ }
173
+ }, P = {
174
+ render: (a) => {
175
+ const [t, l] = o("Some text");
176
+ return /* @__PURE__ */ e("div", { className: "w-[320px]", children: /* @__PURE__ */ e(
177
+ n,
178
+ {
179
+ ...a,
180
+ value: t,
181
+ onChange: (r) => l(r.target.value)
182
+ }
183
+ ) });
184
+ },
185
+ args: {
186
+ placeholder: "Type something...",
187
+ clearable: !0,
188
+ counter: !0,
189
+ maxLength: 50
190
+ }
191
+ }, T = {
192
+ render: (a) => {
193
+ const [t, l] = o("");
194
+ return /* @__PURE__ */ e("div", { className: "w-[360px]", children: /* @__PURE__ */ e(
195
+ n,
196
+ {
197
+ ...a,
198
+ value: t,
199
+ onChange: (r) => l(r.target.value)
200
+ }
201
+ ) });
202
+ },
203
+ args: {
204
+ placeholder: "Play with controls",
205
+ maxLength: 100
206
+ }
207
+ };
208
+ export {
209
+ S as Clearable,
210
+ N as ClearableUncontrolled,
211
+ P as ClearableWithCounter,
212
+ V as ClearableWithStartAdornment,
213
+ m as Default,
214
+ w as Disabled,
215
+ b as Email,
216
+ y as FullWidth,
217
+ g as GreyVariant,
218
+ f as Password,
219
+ T as Playground,
220
+ x as WithCounter,
221
+ v as WithStartAdornment,
222
+ C as WithTransform,
223
+ h as default
224
+ };
225
+ //# sourceMappingURL=Input.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Input.stories.js","sources":["../../src/Input/Input.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from '@storybook/react';\r\nimport React, { useState } from 'react';\r\nimport { Mail, Search } from 'lucide-react';\r\n\r\nimport { Input } from './Input';\r\n\r\nconst meta = {\r\n title: 'Input/Input',\r\n component: Input,\r\n tags: ['autodocs'],\r\n parameters: {\r\n layout: 'centered',\r\n },\r\n args: {\r\n placeholder: 'Enter text...',\r\n variant: 'default',\r\n fullSize: false,\r\n counter: false,\r\n disabled: false,\r\n clearable: false,\r\n },\r\n argTypes: {\r\n clearable: {\r\n control: 'boolean',\r\n },\r\n variant: {\r\n control: 'select',\r\n options: ['default', 'grey'],\r\n },\r\n type: {\r\n control: 'select',\r\n options: ['text', 'password', 'email', 'search', 'number'],\r\n },\r\n fullSize: {\r\n control: 'boolean',\r\n },\r\n counter: {\r\n control: 'boolean',\r\n },\r\n disabled: {\r\n control: 'boolean',\r\n },\r\n maxLength: {\r\n control: 'number',\r\n },\r\n onChange: { action: 'changed' },\r\n onBlur: { action: 'blurred' },\r\n onFocus: { action: 'focused' },\r\n },\r\n} satisfies Meta<typeof Input>;\r\n\r\nexport default meta;\r\ntype Story = StoryObj<typeof meta>;\r\n\r\nexport const Default: Story = {\r\n args: {\r\n type: 'text',\r\n placeholder: 'Default input',\r\n },\r\n};\r\n\r\nexport const GreyVariant: Story = {\r\n args: {\r\n variant: 'grey',\r\n type: 'text',\r\n placeholder: 'Grey input',\r\n },\r\n};\r\n\r\nexport const WithStartAdornment: Story = {\r\n args: {\r\n placeholder: 'Search...',\r\n slotProps: {\r\n input: {\r\n startAdornment: <Search size={16} />,\r\n },\r\n },\r\n },\r\n};\r\n\r\nexport const Email: Story = {\r\n args: {\r\n type: 'email',\r\n placeholder: 'Email address',\r\n slotProps: {\r\n input: {\r\n startAdornment: <Mail size={16} />,\r\n },\r\n },\r\n },\r\n};\r\n\r\nexport const Password: Story = {\r\n args: {\r\n type: 'password',\r\n placeholder: 'Password',\r\n },\r\n};\r\n\r\nexport const WithCounter: Story = {\r\n render: (args) => {\r\n const [value, setValue] = useState('');\r\n\r\n return (\r\n <div className=\"w-[320px]\">\r\n <Input\r\n {...args}\r\n value={value}\r\n onChange={(e) => setValue(e.target.value)}\r\n />\r\n </div>\r\n );\r\n },\r\n args: {\r\n placeholder: 'Type something...',\r\n counter: true,\r\n maxLength: 50,\r\n },\r\n};\r\n\r\nexport const FullWidth: Story = {\r\n render: (args) => (\r\n <div className=\"w-[480px]\">\r\n <Input {...args} />\r\n </div>\r\n ),\r\n args: {\r\n placeholder: 'Full width input',\r\n fullSize: true,\r\n },\r\n};\r\n\r\nexport const Disabled: Story = {\r\n args: {\r\n placeholder: 'Disabled input',\r\n disabled: true,\r\n value: 'Disabled value',\r\n },\r\n};\r\n\r\nexport const WithTransform: Story = {\r\n render: (args) => {\r\n const [value, setValue] = useState('');\r\n\r\n return (\r\n <div className=\"w-[320px]\">\r\n <Input\r\n {...args}\r\n value={value}\r\n onTransform={(next) => next.replace(/\\D/g, '')}\r\n onChange={(e) => setValue(e.target.value)}\r\n />\r\n </div>\r\n );\r\n },\r\n args: {\r\n placeholder: 'Only numbers allowed',\r\n },\r\n};\r\n\r\nexport const Clearable: Story = {\r\n render: (args) => {\r\n const [value, setValue] = useState('Clear me');\r\n\r\n return (\r\n <div className=\"w-[320px]\">\r\n <Input\r\n {...args}\r\n value={value}\r\n onChange={(e) => setValue(e.target.value)}\r\n onClear={() => console.log('cleared')}\r\n />\r\n </div>\r\n );\r\n },\r\n args: {\r\n placeholder: 'Type something...',\r\n clearable: true,\r\n },\r\n};\r\n\r\nexport const ClearableUncontrolled: Story = {\r\n render: (args) => (\r\n <div className=\"w-[320px]\">\r\n <Input {...args} defaultValue=\"Uncontrolled value\" />\r\n </div>\r\n ),\r\n args: {\r\n placeholder: 'Type something...',\r\n clearable: true,\r\n },\r\n};\r\n\r\nexport const ClearableWithStartAdornment: Story = {\r\n render: (args) => {\r\n const [value, setValue] = useState('john@example.com');\r\n\r\n return (\r\n <div className=\"w-[320px]\">\r\n <Input\r\n {...args}\r\n value={value}\r\n onChange={(e) => setValue(e.target.value)}\r\n />\r\n </div>\r\n );\r\n },\r\n args: {\r\n type: 'email',\r\n placeholder: 'Email address',\r\n clearable: true,\r\n slotProps: {\r\n input: {\r\n startAdornment: <Mail size={16} />,\r\n },\r\n },\r\n },\r\n};\r\n\r\nexport const ClearableWithCounter: Story = {\r\n render: (args) => {\r\n const [value, setValue] = useState('Some text');\r\n\r\n return (\r\n <div className=\"w-[320px]\">\r\n <Input\r\n {...args}\r\n value={value}\r\n onChange={(e) => setValue(e.target.value)}\r\n />\r\n </div>\r\n );\r\n },\r\n args: {\r\n placeholder: 'Type something...',\r\n clearable: true,\r\n counter: true,\r\n maxLength: 50,\r\n },\r\n};\r\n\r\nexport const Playground: Story = {\r\n render: (args) => {\r\n const [value, setValue] = useState('');\r\n\r\n return (\r\n <div className=\"w-[360px]\">\r\n <Input\r\n {...args}\r\n value={value}\r\n onChange={(e) => setValue(e.target.value)}\r\n />\r\n </div>\r\n );\r\n },\r\n args: {\r\n placeholder: 'Play with controls',\r\n maxLength: 100,\r\n },\r\n};\r\n"],"names":["meta","Input","Default","GreyVariant","WithStartAdornment","jsx","Search","Email","Mail","Password","WithCounter","args","value","setValue","useState","e","FullWidth","Disabled","WithTransform","next","Clearable","ClearableUncontrolled","ClearableWithStartAdornment","ClearableWithCounter","Playground"],"mappings":"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"}
@@ -16,5 +16,10 @@ export interface InputProps extends React.InputHTMLAttributes<HTMLInputElement>,
16
16
  /** func transform pasted value before set to input */
17
17
  onPastePrepare?: (value: string, event: React.ClipboardEvent<HTMLInputElement>) => string;
18
18
  fullSize?: boolean;
19
+ counter?: boolean;
20
+ /** Show a clear (X) button inside the input that empties the value and emulates a native input/change event */
21
+ clearable?: boolean;
22
+ /** Optional callback fired after the input has been cleared */
23
+ onClear?: () => void;
19
24
  }
20
25
  //# sourceMappingURL=Input.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Input.types.d.ts","sourceRoot":"","sources":["../../src/Input/Input.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,WAAW,EACX,wBAAwB,EACxB,cAAc,EACd,SAAS,EACV,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,MAAM,WAAW,mBACf,SAAQ,wBAAwB,CAAC,OAAO,SAAS,CAAC;IAClD,cAAc,CAAC,EAAE,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAC5B,OAAO,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,UACf,SAAQ,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,YAAY,CAAC,OAAO,aAAa,CAAC;IACvF,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,kEAAkE;IAClE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAAK,MAAM,CAAC;IAC9E,sDAAsD;IACtD,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,KAAK,MAAM,CAAC;IAC1F,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB"}
1
+ {"version":3,"file":"Input.types.d.ts","sourceRoot":"","sources":["../../src/Input/Input.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,WAAW,EACX,wBAAwB,EACxB,cAAc,EACd,SAAS,EACV,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,MAAM,WAAW,mBACf,SAAQ,wBAAwB,CAAC,OAAO,SAAS,CAAC;IAClD,cAAc,CAAC,EAAE,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAC5B,OAAO,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,UACf,SAAQ,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,YAAY,CAAC,OAAO,aAAa,CAAC;IACvF,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,kEAAkE;IAClE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAAK,MAAM,CAAC;IAC9E,sDAAsD;IACtD,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,KAAK,MAAM,CAAC;IAC1F,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+GAA+G;IAC/G,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB"}
@@ -1,4 +1,3 @@
1
- import { FC } from 'react';
2
1
  import { ILoadingMaskProps } from './LoadingMask.types';
3
- export declare const LoadingMask: FC<ILoadingMaskProps>;
2
+ export declare const LoadingMask: (props: ILoadingMaskProps) => import("react/jsx-runtime").JSX.Element | null;
4
3
  //# sourceMappingURL=LoadingMask.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LoadingMask.d.ts","sourceRoot":"","sources":["../../src/LoadingMask/LoadingMask.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAC3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAIxD,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,iBAAiB,CAe7C,CAAC"}
1
+ {"version":3,"file":"LoadingMask.d.ts","sourceRoot":"","sources":["../../src/LoadingMask/LoadingMask.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAIxD,eAAO,MAAM,WAAW,GAAI,OAAO,iBAAiB,mDAgBnD,CAAC"}
@@ -1,22 +1,22 @@
1
1
  import { jsx as e } from "react/jsx-runtime";
2
2
  import { RenderLoadingMask as r } from "./RenderLoadingMask.js";
3
- import { cn as o } from "@oneplatformdev/utils";
4
- const f = (t) => {
5
- const { fullWidth: s = !1, className: i, ...n } = t;
6
- return s ? /* @__PURE__ */ e(
3
+ import { cn as a } from "@oneplatformdev/utils";
4
+ const c = (t) => {
5
+ const { loading: n = !0, fullWidth: s = !1, className: i, ...o } = t;
6
+ return n ? s ? /* @__PURE__ */ e(
7
7
  "div",
8
8
  {
9
- ...n,
10
- className: o(
9
+ ...o,
10
+ className: a(
11
11
  "absolute inset-0",
12
12
  "flex items-center justify-center",
13
13
  i
14
14
  ),
15
15
  children: /* @__PURE__ */ e(r, {})
16
16
  }
17
- ) : /* @__PURE__ */ e(r, {});
17
+ ) : /* @__PURE__ */ e(r, {}) : null;
18
18
  };
19
19
  export {
20
- f as LoadingMask
20
+ c as LoadingMask
21
21
  };
22
22
  //# sourceMappingURL=LoadingMask.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LoadingMask.js","sources":["../../src/LoadingMask/LoadingMask.tsx"],"sourcesContent":["import { FC } from 'react';\r\nimport { ILoadingMaskProps } from './LoadingMask.types';\r\nimport { RenderLoadingMask } from './RenderLoadingMask';\r\nimport { cn } from '@oneplatformdev/utils';\r\n\r\nexport const LoadingMask: FC<ILoadingMaskProps> = (props) => {\r\n const { fullWidth = false, className, ...rest } = props;\r\n if (!fullWidth) return <RenderLoadingMask />;\r\n return (\r\n <div\r\n {...rest}\r\n className={cn(\r\n 'absolute inset-0',\r\n 'flex items-center justify-center',\r\n className\r\n )}\r\n >\r\n <RenderLoadingMask />\r\n </div>\r\n );\r\n};\r\n"],"names":["LoadingMask","props","fullWidth","className","rest","jsx","cn","RenderLoadingMask"],"mappings":";;;AAKO,MAAMA,IAAqC,CAACC,MAAU;AAC3D,QAAM,EAAE,WAAAC,IAAY,IAAO,WAAAC,GAAW,GAAGC,MAASH;AAClD,SAAKC,IAEH,gBAAAG;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAGD;AAAA,MACJ,WAAWE;AAAA,QACT;AAAA,QACA;AAAA,QACAH;AAAA,MAAA;AAAA,MAGF,4BAACI,GAAA,CAAA,CAAkB;AAAA,IAAA;AAAA,EAAA,IAVA,gBAAAF,EAACE,GAAA,CAAA,CAAkB;AAa5C;"}
1
+ {"version":3,"file":"LoadingMask.js","sources":["../../src/LoadingMask/LoadingMask.tsx"],"sourcesContent":["import { ILoadingMaskProps } from './LoadingMask.types';\r\nimport { RenderLoadingMask } from './RenderLoadingMask';\r\nimport { cn } from '@oneplatformdev/utils';\r\n\r\nexport const LoadingMask = (props: ILoadingMaskProps) => {\r\n const { loading = true, fullWidth = false, className, ...rest } = props;\r\n if(!loading) return null;\r\n if (!fullWidth) return <RenderLoadingMask />;\r\n return (\r\n <div\r\n {...rest}\r\n className={cn(\r\n 'absolute inset-0',\r\n 'flex items-center justify-center',\r\n className\r\n )}\r\n >\r\n <RenderLoadingMask />\r\n </div>\r\n );\r\n};\r\n"],"names":["LoadingMask","props","loading","fullWidth","className","rest","jsx","cn","RenderLoadingMask"],"mappings":";;;AAIO,MAAMA,IAAc,CAACC,MAA6B;AACvD,QAAM,EAAE,SAAAC,IAAU,IAAM,WAAAC,IAAY,IAAO,WAAAC,GAAW,GAAGC,MAASJ;AAClE,SAAIC,IACCC,IAEH,gBAAAG;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAGD;AAAA,MACJ,WAAWE;AAAA,QACT;AAAA,QACA;AAAA,QACAH;AAAA,MAAA;AAAA,MAGF,4BAACI,GAAA,CAAA,CAAkB;AAAA,IAAA;AAAA,EAAA,IAVA,gBAAAF,EAACE,GAAA,CAAA,CAAkB,IADtB;AActB;"}
@@ -1,5 +1,6 @@
1
1
  import { HTMLAttributes } from 'react';
2
2
  export interface ILoadingMaskProps extends HTMLAttributes<HTMLDivElement> {
3
3
  fullWidth?: boolean;
4
+ loading?: boolean;
4
5
  }
5
6
  //# sourceMappingURL=LoadingMask.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LoadingMask.types.d.ts","sourceRoot":"","sources":["../../src/LoadingMask/LoadingMask.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,iBAAkB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACvE,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB"}
1
+ {"version":3,"file":"LoadingMask.types.d.ts","sourceRoot":"","sources":["../../src/LoadingMask/LoadingMask.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,iBAAkB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACvE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB"}
@@ -2,7 +2,9 @@ import * as React from "react";
2
2
  import * as PopoverPrimitive from "@radix-ui/react-popover";
3
3
  declare function Popover({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
4
  declare function PopoverTrigger({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
5
- declare function PopoverContent(props: React.ComponentProps<typeof PopoverPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
5
+ declare function PopoverContent(props: React.ComponentProps<typeof PopoverPrimitive.Content> & {
6
+ container?: HTMLElement | null;
7
+ }): import("react/jsx-runtime").JSX.Element;
6
8
  declare function PopoverAnchor({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Anchor>): import("react/jsx-runtime").JSX.Element;
7
9
  export { Popover, PopoverTrigger, PopoverContent, PopoverAnchor, PopoverPrimitive };
8
10
  //# sourceMappingURL=Popover.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Popover.d.ts","sourceRoot":"","sources":["../../src/Popover/Popover.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,gBAAgB,MAAM,yBAAyB,CAAA;AAI3D,iBAAS,OAAO,CAAC,EACE,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC,2CAErE;AAED,iBAAS,cAAc,CAAC,EACE,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,OAAO,CAAC,2CAE/E;AAED,iBAAS,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,OAAO,CAAC,2CA0BnF;AAED,iBAAS,aAAa,CAAC,EACE,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,MAAM,CAAC,2CAE7E;AAED,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAA"}
1
+ {"version":3,"file":"Popover.d.ts","sourceRoot":"","sources":["../../src/Popover/Popover.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,gBAAgB,MAAM,yBAAyB,CAAA;AAI3D,iBAAS,OAAO,CAAC,EACE,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC,2CAErE;AAED,iBAAS,cAAc,CAAC,EACE,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,OAAO,CAAC,2CAE/E;AAED,iBAAS,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,OAAO,CAAC,GAAG;IACrF,SAAS,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CAChC,2CA+BA;AAED,iBAAS,aAAa,CAAC,EACE,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,MAAM,CAAC,2CAE7E;AAED,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as t } from "react/jsx-runtime";
2
2
  import * as e from "@radix-ui/react-popover";
3
- import { cn as s } from "@oneplatformdev/utils";
4
- function l({
3
+ import { cn as p } from "@oneplatformdev/utils";
4
+ function c({
5
5
  ...o
6
6
  }) {
7
7
  return /* @__PURE__ */ t(e.Root, { "data-slot": "popover", ...o });
@@ -11,23 +11,28 @@ function f({
11
11
  }) {
12
12
  return /* @__PURE__ */ t(e.Trigger, { "data-slot": "popover-trigger", ...o });
13
13
  }
14
- function c(o) {
14
+ function g(o) {
15
15
  const {
16
16
  className: r,
17
17
  align: a = "center",
18
18
  sideOffset: n = 4,
19
19
  style: i,
20
- ...d
20
+ container: d,
21
+ ...s
21
22
  } = o;
22
- return /* @__PURE__ */ t(e.Portal, { children: /* @__PURE__ */ t(
23
+ return /* @__PURE__ */ t(e.Portal, { container: d, children: /* @__PURE__ */ t(
23
24
  e.Content,
24
25
  {
25
26
  "data-slot": "popover-content",
26
27
  align: a,
27
28
  sideOffset: n,
28
- ...d,
29
- className: s(
30
- "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-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 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",
29
+ ...s,
30
+ className: p(
31
+ "text-popover-foreground",
32
+ "w-72 origin-(--radix-popover-content-transform-origin) outline-hidden",
33
+ "border p-4 bg-popover rounded-lg",
34
+ "shadow-[1px_1px_10px_rgba(6,8,13,0.06)]",
35
+ "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-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 z-50",
31
36
  r
32
37
  ),
33
38
  style: {
@@ -43,9 +48,9 @@ function u({
43
48
  return /* @__PURE__ */ t(e.Anchor, { "data-slot": "popover-anchor", ...o });
44
49
  }
45
50
  export {
46
- l as Popover,
51
+ c as Popover,
47
52
  u as PopoverAnchor,
48
- c as PopoverContent,
53
+ g as PopoverContent,
49
54
  e as PopoverPrimitive,
50
55
  f as PopoverTrigger
51
56
  };