@rovula/ui 0.0.17 → 0.0.19

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 (57) hide show
  1. package/dist/cjs/bundle.css +424 -9
  2. package/dist/cjs/bundle.js +3 -3
  3. package/dist/cjs/bundle.js.map +1 -1
  4. package/dist/cjs/types/components/AlertDialog/Alert.stories.d.ts +1 -1
  5. package/dist/cjs/types/components/Calendar/Calendar.d.ts +9 -0
  6. package/dist/cjs/types/components/Calendar/Calendar.stories.d.ts +724 -0
  7. package/dist/cjs/types/components/Calendar/index.d.ts +1 -0
  8. package/dist/cjs/types/components/DatePicker/DatePicker.d.ts +8 -0
  9. package/dist/cjs/types/components/DatePicker/DatePicker.stories.d.ts +21 -0
  10. package/dist/cjs/types/components/Popover/Popover.d.ts +6 -0
  11. package/dist/cjs/types/components/Popover/Popover.stories.d.ts +21 -0
  12. package/dist/cjs/types/components/TextInput/TextInput.stories.d.ts +7 -0
  13. package/dist/cjs/types/components/TextInput/TextInput.styles.d.ts +5 -0
  14. package/dist/cjs/types/index.d.ts +3 -0
  15. package/dist/components/Calendar/Calendar.js +34 -0
  16. package/dist/components/Calendar/Calendar.stories.js +38 -0
  17. package/dist/components/Calendar/index.js +1 -0
  18. package/dist/components/DatePicker/DatePicker.js +21 -0
  19. package/dist/components/DatePicker/DatePicker.stories.js +36 -0
  20. package/dist/components/Popover/Popover.js +35 -0
  21. package/dist/components/Popover/Popover.stories.js +33 -0
  22. package/dist/components/TextInput/TextInput.js +9 -3
  23. package/dist/components/TextInput/TextInput.stories.js +13 -1
  24. package/dist/components/TextInput/TextInput.styles.js +42 -1
  25. package/dist/esm/bundle.css +424 -9
  26. package/dist/esm/bundle.js +3 -3
  27. package/dist/esm/bundle.js.map +1 -1
  28. package/dist/esm/types/components/AlertDialog/Alert.stories.d.ts +1 -1
  29. package/dist/esm/types/components/Calendar/Calendar.d.ts +9 -0
  30. package/dist/esm/types/components/Calendar/Calendar.stories.d.ts +724 -0
  31. package/dist/esm/types/components/Calendar/index.d.ts +1 -0
  32. package/dist/esm/types/components/DatePicker/DatePicker.d.ts +8 -0
  33. package/dist/esm/types/components/DatePicker/DatePicker.stories.d.ts +21 -0
  34. package/dist/esm/types/components/Popover/Popover.d.ts +6 -0
  35. package/dist/esm/types/components/Popover/Popover.stories.d.ts +21 -0
  36. package/dist/esm/types/components/TextInput/TextInput.stories.d.ts +7 -0
  37. package/dist/esm/types/components/TextInput/TextInput.styles.d.ts +5 -0
  38. package/dist/esm/types/index.d.ts +3 -0
  39. package/dist/index.d.ts +19 -1
  40. package/dist/index.js +3 -0
  41. package/dist/src/theme/global.css +146 -8
  42. package/dist/theme/global.css +8 -4
  43. package/dist/theme/presets/colors.js +2 -2
  44. package/package.json +5 -2
  45. package/src/components/Calendar/Calendar.stories.tsx +49 -0
  46. package/src/components/Calendar/Calendar.tsx +49 -0
  47. package/src/components/Calendar/index.ts +1 -0
  48. package/src/components/DatePicker/DatePicker.stories.tsx +40 -0
  49. package/src/components/DatePicker/DatePicker.tsx +57 -0
  50. package/src/components/Popover/Popover.stories.tsx +40 -0
  51. package/src/components/Popover/Popover.tsx +31 -0
  52. package/src/components/TextInput/TextInput.stories.tsx +37 -1
  53. package/src/components/TextInput/TextInput.styles.ts +46 -1
  54. package/src/components/TextInput/TextInput.tsx +13 -3
  55. package/src/index.ts +7 -0
  56. package/src/theme/global.css +8 -4
  57. package/src/theme/presets/colors.js +2 -2
@@ -0,0 +1 @@
1
+ export { default as Calendar } from "./Calendar";
@@ -0,0 +1,8 @@
1
+ import React, { FC } from "react";
2
+ import { Modifiers } from "react-day-picker";
3
+ type DatePickerProps = {
4
+ date: Date | undefined;
5
+ onSelect: (selected: Date | undefined, triggerDate: Date, modifiers: Modifiers, e: React.MouseEvent | React.KeyboardEvent) => void | undefined;
6
+ };
7
+ declare const DatePicker: FC<DatePickerProps>;
8
+ export default DatePicker;
@@ -0,0 +1,21 @@
1
+ import React from "react";
2
+ declare const meta: {
3
+ title: string;
4
+ component: React.FC<{
5
+ date: Date | undefined;
6
+ onSelect: (selected: Date | undefined, triggerDate: Date, modifiers: import("react-day-picker").Modifiers, e: React.MouseEvent<Element, MouseEvent> | React.KeyboardEvent<Element>) => void | undefined;
7
+ }>;
8
+ tags: string[];
9
+ parameters: {
10
+ layout: string;
11
+ };
12
+ decorators: ((Story: import("@storybook/types").PartialStoryFn<import("@storybook/react").ReactRenderer, {
13
+ date: Date | undefined;
14
+ onSelect: (selected: Date | undefined, triggerDate: Date, modifiers: import("react-day-picker").Modifiers, e: React.MouseEvent<Element, MouseEvent> | React.KeyboardEvent<Element>) => void | undefined;
15
+ }>) => import("react/jsx-runtime").JSX.Element)[];
16
+ };
17
+ export default meta;
18
+ export declare const Default: {
19
+ args: {};
20
+ render: (args: {}) => import("react/jsx-runtime").JSX.Element;
21
+ };
@@ -0,0 +1,6 @@
1
+ import * as React from "react";
2
+ import * as PopoverPrimitive from "@radix-ui/react-popover";
3
+ declare const Popover: React.FC<PopoverPrimitive.PopoverProps>;
4
+ declare const PopoverTrigger: React.ForwardRefExoticComponent<PopoverPrimitive.PopoverTriggerProps & React.RefAttributes<HTMLButtonElement>>;
5
+ declare const PopoverContent: React.ForwardRefExoticComponent<Omit<PopoverPrimitive.PopoverContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
6
+ export { Popover, PopoverTrigger, PopoverContent };
@@ -0,0 +1,21 @@
1
+ import React from "react";
2
+ declare const meta: {
3
+ title: string;
4
+ component: React.FC<import("@radix-ui/react-popover").PopoverProps>;
5
+ tags: string[];
6
+ parameters: {
7
+ layout: string;
8
+ };
9
+ decorators: ((Story: import("@storybook/types").PartialStoryFn<import("@storybook/react").ReactRenderer, {
10
+ children?: React.ReactNode;
11
+ open?: boolean | undefined;
12
+ defaultOpen?: boolean | undefined;
13
+ onOpenChange?: ((open: boolean) => void) | undefined;
14
+ modal?: boolean | undefined;
15
+ }>) => import("react/jsx-runtime").JSX.Element)[];
16
+ };
17
+ export default meta;
18
+ export declare const Default: {
19
+ args: {};
20
+ render: (args: {}) => import("react/jsx-runtime").JSX.Element;
21
+ };
@@ -349,3 +349,10 @@ export declare const CustomLabel: {
349
349
  };
350
350
  render: (args: {}) => import("react/jsx-runtime").JSX.Element;
351
351
  };
352
+ export declare const FuctionInput: {
353
+ args: {
354
+ label: string;
355
+ disabled: boolean;
356
+ };
357
+ render: (args: {}) => import("react/jsx-runtime").JSX.Element;
358
+ };
@@ -6,6 +6,7 @@ export declare const inputVariant: (props?: ({
6
6
  disabled?: boolean | null | undefined;
7
7
  error?: boolean | null | undefined;
8
8
  hasClearIcon?: boolean | null | undefined;
9
+ rightSectionIcon?: boolean | null | undefined;
9
10
  } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
10
11
  export declare const labelVariant: (props?: ({
11
12
  size?: "sm" | "md" | "lg" | null | undefined;
@@ -23,3 +24,7 @@ export declare const iconWrapperVariant: (props?: ({
23
24
  export declare const iconVariant: (props?: ({
24
25
  size?: "sm" | "md" | "lg" | null | undefined;
25
26
  } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
27
+ export declare const sectionIconWrapperVariant: (props?: ({
28
+ size?: "sm" | "md" | "lg" | null | undefined;
29
+ rounded?: "none" | "normal" | "full" | null | undefined;
30
+ } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
@@ -11,6 +11,9 @@ export { Navbar } from "./components/Navbar";
11
11
  export { default as ActionButton } from "./components/ActionButton/ActionButton";
12
12
  export { Avatar, AvatarGroup } from "./components/Avatar";
13
13
  export { Collapsible } from "./components/Collapsible";
14
+ export { Calendar } from "./components/Calendar";
15
+ export { default as DatePicker } from "./components/DatePicker/DatePicker";
16
+ export { Popover, PopoverTrigger, PopoverContent, } from "./components/Popover/Popover";
14
17
  export * from "./components/Table/Table";
15
18
  export * from "./components/DataTable/DataTable";
16
19
  export * from "./components/Dialog/Dialog";
@@ -0,0 +1,34 @@
1
+ "use client";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __rest = (this && this.__rest) || function (s, e) {
14
+ var t = {};
15
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16
+ t[p] = s[p];
17
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
18
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
20
+ t[p[i]] = s[p[i]];
21
+ }
22
+ return t;
23
+ };
24
+ import { jsx as _jsx } from "react/jsx-runtime";
25
+ import { DayPicker, getDefaultClassNames } from "react-day-picker";
26
+ import "react-day-picker/dist/style.css";
27
+ import { cn } from "@/utils/cn";
28
+ function Calendar(_a) {
29
+ var className = _a.className, classNames = _a.classNames, _b = _a.showOutsideDays, showOutsideDays = _b === void 0 ? true : _b, props = __rest(_a, ["className", "classNames", "showOutsideDays"]);
30
+ var defaultClassNames = getDefaultClassNames();
31
+ return (_jsx(DayPicker, __assign({ showOutsideDays: showOutsideDays, captionLayout: "dropdown-years" }, props, { className: cn("bg-[rgb(var(--card))] text-[rgb(var(--card-foreground))] border-[rgb(var(--card))]", className), classNames: __assign(__assign(__assign({}, defaultClassNames), { day_button: cn(defaultClassNames.day_button, "size-9 "), day: "typography-subtitile1 ", today: "text-bold rounded-full [&_button]:!border-primary [&_button]:!border [&_button]:!border-solid", selected: "bg-primary text-primary-foreground rounded-full ", weekdays: "text-gray-400", month_caption: cn(defaultClassNames.month_caption, "h-[54px]"), outside: "text-gray-400", nav: cn(defaultClassNames.nav, "gap-6"), chevron: "fill-primary", root: cn(defaultClassNames.root, "px-6 py-4 "), caption_label: cn(defaultClassNames.caption_label, "gap-2") }), classNames) })));
32
+ }
33
+ Calendar.displayName = "Calendar";
34
+ export default Calendar;
@@ -0,0 +1,38 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
+ import React from "react";
14
+ import Calendar from "./Calendar";
15
+ import ThemeToggle from "../ThemeToggle";
16
+ import Button from "../Button/Button";
17
+ // import { Popover, PopoverTrigger, PopoverContent } from "./Popover";
18
+ var meta = {
19
+ title: "Components/Calendar",
20
+ component: Calendar,
21
+ tags: ["autodocs"],
22
+ parameters: {
23
+ layout: "fullscreen",
24
+ },
25
+ decorators: [
26
+ function (Story) { return (_jsx("div", { className: "p-5 flex w-full", children: _jsx(Story, {}) })); },
27
+ ],
28
+ };
29
+ export default meta;
30
+ export var Default = {
31
+ args: {},
32
+ render: function (args) {
33
+ console.log("args ", args);
34
+ var props = __assign({}, args);
35
+ var _a = React.useState(new Date()), date = _a[0], setDate = _a[1];
36
+ return (_jsxs("div", { className: "flex flex-row gap-4 w-full", children: [_jsx(ThemeToggle, {}), _jsx(Button, { children: "Text" }), _jsx(Calendar, { mode: "single", selected: date, onSelect: setDate, className: "rounded-md border" })] }));
37
+ },
38
+ };
@@ -0,0 +1 @@
1
+ export { default as Calendar } from "./Calendar";
@@ -0,0 +1,21 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useState } from "react";
4
+ import { CalendarIcon } from "@heroicons/react/16/solid";
5
+ import { Calendar } from "../Calendar";
6
+ import { Popover, PopoverContent, PopoverTrigger } from "../Popover/Popover";
7
+ import { TextInput } from "../TextInput/TextInput";
8
+ import { format } from "date-fns/format";
9
+ var DatePicker = function (_a) {
10
+ var date = _a.date, onSelect = _a.onSelect;
11
+ var _b = useState(false), isOpen = _b[0], setIsOpen = _b[1];
12
+ return (_jsx("div", { children: _jsxs(Popover, { open: isOpen, onOpenChange: setIsOpen, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsx("div", { className: "flex", children: _jsx(TextInput, { fullwidth: true, id: "2", readOnly: true, label: "Date", size: "md", value: date ? format(date, "dd MMM yyyy") : isOpen ? " " : "", hasClearIcon: false, endIcon: _jsx(CalendarIcon, { fill: "inherit" }) }) }) }), _jsx(PopoverContent, { className: "w-auto p-0", children: _jsx(Calendar, { mode: "single", selected: date, onSelect: function () {
13
+ var value = [];
14
+ for (var _i = 0; _i < arguments.length; _i++) {
15
+ value[_i] = arguments[_i];
16
+ }
17
+ onSelect === null || onSelect === void 0 ? void 0 : onSelect.apply(void 0, value);
18
+ setIsOpen(false);
19
+ } }) })] }) }));
20
+ };
21
+ export default DatePicker;
@@ -0,0 +1,36 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ import React from "react";
14
+ import DatePicker from "./DatePicker";
15
+ // import { Popover, PopoverTrigger, PopoverContent } from "./Popover";
16
+ var meta = {
17
+ title: "Components/DatePicker",
18
+ component: DatePicker,
19
+ tags: ["autodocs"],
20
+ parameters: {
21
+ layout: "fullscreen",
22
+ },
23
+ decorators: [
24
+ function (Story) { return (_jsx("div", { className: "p-5 flex w-full", children: _jsx(Story, {}) })); },
25
+ ],
26
+ };
27
+ export default meta;
28
+ export var Default = {
29
+ args: {},
30
+ render: function (args) {
31
+ console.log("args ", args);
32
+ var props = __assign({}, args);
33
+ var _a = React.useState(undefined), date = _a[0], setDate = _a[1];
34
+ return (_jsx("div", { className: "flex flex-row gap-4 w-full", children: _jsx(DatePicker, { date: date, onSelect: setDate }) }));
35
+ },
36
+ };
@@ -0,0 +1,35 @@
1
+ "use client";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __rest = (this && this.__rest) || function (s, e) {
14
+ var t = {};
15
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16
+ t[p] = s[p];
17
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
18
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
20
+ t[p[i]] = s[p[i]];
21
+ }
22
+ return t;
23
+ };
24
+ import { jsx as _jsx } from "react/jsx-runtime";
25
+ import * as React from "react";
26
+ import * as PopoverPrimitive from "@radix-ui/react-popover";
27
+ import { cn } from "@/utils/cn";
28
+ var Popover = PopoverPrimitive.Root;
29
+ var PopoverTrigger = PopoverPrimitive.Trigger;
30
+ var PopoverContent = React.forwardRef(function (_a, ref) {
31
+ var className = _a.className, _b = _a.align, align = _b === void 0 ? "center" : _b, _c = _a.sideOffset, sideOffset = _c === void 0 ? 4 : _c, props = __rest(_a, ["className", "align", "sideOffset"]);
32
+ return (_jsx(PopoverPrimitive.Portal, { children: _jsx(PopoverPrimitive.Content, __assign({ ref: ref, align: align, sideOffset: sideOffset, className: cn("z-50 min-w-72 rounded-md border bg-popup-background border-none overflow-hidden p-0 text-popover-foreground shadow-md outline-none 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", className) }, props)) }));
33
+ });
34
+ PopoverContent.displayName = PopoverPrimitive.Content.displayName;
35
+ export { Popover, PopoverTrigger, PopoverContent };
@@ -0,0 +1,33 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
+ import { Popover, PopoverTrigger, PopoverContent } from "./Popover";
14
+ var meta = {
15
+ title: "Components/Popver",
16
+ component: Popover,
17
+ tags: ["autodocs"],
18
+ parameters: {
19
+ layout: "fullscreen",
20
+ },
21
+ decorators: [
22
+ function (Story) { return (_jsx("div", { className: "p-5 flex w-full", children: _jsx(Story, {}) })); },
23
+ ],
24
+ };
25
+ export default meta;
26
+ export var Default = {
27
+ args: {},
28
+ render: function (args) {
29
+ console.log("args ", args);
30
+ var props = __assign({}, args);
31
+ return (_jsx("div", { className: "flex flex-row gap-4 w-full", children: _jsxs(Popover, { children: [_jsx(PopoverTrigger, { children: "Open" }), _jsx(PopoverContent, { children: "Place content for the popover here." })] }) }));
32
+ },
33
+ };
@@ -22,13 +22,14 @@ var __rest = (this && this.__rest) || function (s, e) {
22
22
  };
23
23
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
24
24
  import { forwardRef, useImperativeHandle, useRef, } from "react";
25
- import { helperTextVariant, iconVariant, iconWrapperVariant, inputVariant, labelVariant, } from "./TextInput.styles";
25
+ import { helperTextVariant, iconVariant, iconWrapperVariant, inputVariant, labelVariant, sectionIconWrapperVariant, } from "./TextInput.styles";
26
26
  import { XCircleIcon, ExclamationCircleIcon } from "@heroicons/react/16/solid";
27
27
  import { cn } from "@/utils/cn";
28
28
  export var TextInput = forwardRef(function (_a, ref) {
29
29
  var id = _a.id, label = _a.label, _b = _a.size, size = _b === void 0 ? "md" : _b, _c = _a.rounded, rounded = _c === void 0 ? "normal" : _c, _d = _a.variant, variant = _d === void 0 ? "outline" : _d, _e = _a.type, type = _e === void 0 ? "text" : _e, helperText = _a.helperText, errorMessage = _a.errorMessage, _f = _a.fullwidth, fullwidth = _f === void 0 ? true : _f, _g = _a.disabled, disabled = _g === void 0 ? false : _g, _h = _a.error, error = _h === void 0 ? false : _h, _j = _a.required, required = _j === void 0 ? true : _j, _k = _a.hasClearIcon, hasClearIcon = _k === void 0 ? true : _k, endIcon = _a.endIcon, labelClassName = _a.labelClassName, props = __rest(_a, ["id", "label", "size", "rounded", "variant", "type", "helperText", "errorMessage", "fullwidth", "disabled", "error", "required", "hasClearIcon", "endIcon", "labelClassName"]);
30
30
  var inputRef = useRef(null);
31
31
  var _id = id || "".concat(type, "-").concat(label, "-input");
32
+ var hasRightSectionIcon = !!endIcon;
32
33
  var inputClassname = inputVariant({
33
34
  size: size,
34
35
  rounded: rounded,
@@ -36,7 +37,8 @@ export var TextInput = forwardRef(function (_a, ref) {
36
37
  fullwidth: fullwidth,
37
38
  disabled: disabled,
38
39
  error: error,
39
- hasClearIcon: hasClearIcon,
40
+ hasClearIcon: hasRightSectionIcon ? false : hasClearIcon,
41
+ rightSectionIcon: hasRightSectionIcon,
40
42
  });
41
43
  var labelClassname = labelVariant({
42
44
  size: size,
@@ -46,12 +48,16 @@ export var TextInput = forwardRef(function (_a, ref) {
46
48
  var helperTextClassname = helperTextVariant({ size: size, error: error, disabled: disabled });
47
49
  var iconWrapperClassname = iconWrapperVariant({ size: size });
48
50
  var iconClassname = iconVariant({ size: size });
51
+ var sectionIconWrapperClassname = sectionIconWrapperVariant({
52
+ size: size,
53
+ rounded: rounded,
54
+ });
49
55
  useImperativeHandle(ref, function () { return inputRef === null || inputRef === void 0 ? void 0 : inputRef.current; });
50
56
  var handleClearInput = function () {
51
57
  if (inputRef.current) {
52
58
  inputRef.current.value = "";
53
59
  }
54
60
  };
55
- return (_jsxs("div", { className: "inline-flex flex-col ".concat(fullwidth ? "w-full" : ""), children: [_jsxs("div", { className: "relative", children: [_jsx("input", __assign({}, props, { placeholder: " ", ref: inputRef, type: type, id: _id, disabled: disabled, className: cn(inputClassname, props.className) })), hasClearIcon && (_jsx("div", { className: iconWrapperClassname, children: _jsx(XCircleIcon, { type: "button", className: iconClassname, onMouseDown: handleClearInput }) })), endIcon, _jsxs("label", { htmlFor: _id, className: cn(labelClassname, labelClassName), children: [label, " ", required && _jsx("span", { className: "text-error", children: "*" })] })] }), (errorMessage || helperText) && (_jsxs("span", { className: helperTextClassname, children: [_jsx(ExclamationCircleIcon, { width: 16, height: 16, className: error ? "fill-error" : "" }), " ", errorMessage || helperText] }))] }));
61
+ return (_jsxs("div", { className: "inline-flex flex-col ".concat(fullwidth ? "w-full" : ""), children: [_jsxs("div", { className: "relative", children: [_jsx("input", __assign({}, props, { placeholder: " ", ref: inputRef, type: type, id: _id, disabled: disabled, className: cn(inputClassname, props.className) })), hasClearIcon && !hasRightSectionIcon && (_jsx("div", { className: iconWrapperClassname, children: _jsx(XCircleIcon, { type: "button", className: iconClassname, onMouseDown: handleClearInput }) })), hasRightSectionIcon && (_jsx("div", { className: sectionIconWrapperClassname, children: endIcon })), _jsxs("label", { htmlFor: _id, className: cn(labelClassname, labelClassName), children: [label, " ", required && _jsx("span", { className: "text-error", children: "*" })] })] }), (errorMessage || helperText) && (_jsxs("span", { className: helperTextClassname, children: [_jsx(ExclamationCircleIcon, { width: 16, height: 16, className: error ? "fill-error" : "" }), " ", errorMessage || helperText] }))] }));
56
62
  });
57
63
  export default TextInput;
@@ -12,6 +12,7 @@ var __assign = (this && this.__assign) || function () {
12
12
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
13
  import { useRef } from "react";
14
14
  import TextInput from "./TextInput";
15
+ import { CalendarIcon } from "@heroicons/react/16/solid";
15
16
  // More on how to set up stories at: https://storybook.js.org/docs/7.0/react/writing-stories/introduction
16
17
  var meta = {
17
18
  title: "Components/TextInput",
@@ -22,7 +23,7 @@ var meta = {
22
23
  layout: "fullscreen",
23
24
  },
24
25
  decorators: [
25
- function (Story) { return (_jsx("div", { className: "p-5 flex w-full", children: _jsx(Story, {}) })); },
26
+ function (Story) { return (_jsx("div", { className: "p-5 flex w-full bg-[rgb(var(--other-bg-2))]", children: _jsx(Story, {}) })); },
26
27
  ],
27
28
  };
28
29
  export default meta;
@@ -59,3 +60,14 @@ export var CustomLabel = {
59
60
  return (_jsxs("div", { className: "flex flex-row gap-4 w-full", children: [_jsx(TextInput, __assign({ id: "1", size: "lg" }, args, { labelClassName: "peer-focus:bg-red-500" })), _jsx(InputWithRef, __assign({ id: "2", size: "md" }, args)), _jsx(TextInput, __assign({ id: "3", size: "sm" }, args))] }));
60
61
  },
61
62
  };
63
+ export var FuctionInput = {
64
+ args: {
65
+ label: "Placeholder Text",
66
+ disabled: false,
67
+ },
68
+ render: function (args) {
69
+ console.log("args ", args);
70
+ var props = __assign({}, args);
71
+ return (_jsxs("div", { className: "flex flex-row gap-4 w-full", children: [_jsx(TextInput, __assign({ id: "1", size: "lg" }, args, { endIcon: _jsx(CalendarIcon, { className: "size-full", fill: "inherit" }) })), _jsx(TextInput, __assign({ id: "2", size: "md" }, args, { endIcon: _jsx(CalendarIcon, { className: "size-full", fill: "inherit" }) })), _jsx(TextInput, __assign({ id: "3", size: "sm" }, args, { endIcon: _jsx(CalendarIcon, { className: "size-full", fill: "inherit" }) }))] }));
72
+ },
73
+ };
@@ -2,7 +2,7 @@ import { cva } from "class-variance-authority";
2
2
  export var inputVariant = cva([
3
3
  "border-0 outline-none",
4
4
  "p-1 flex w-auto box-border",
5
- "peer text-black placeholder:text-transparent",
5
+ "peer text-black placeholder:text-transparent bg-transparent caret-primary",
6
6
  ], {
7
7
  variants: {
8
8
  size: {
@@ -32,6 +32,9 @@ export var inputVariant = cva([
32
32
  hasClearIcon: {
33
33
  true: "",
34
34
  },
35
+ rightSectionIcon: {
36
+ false: "",
37
+ },
35
38
  },
36
39
  compoundVariants: [
37
40
  {
@@ -53,6 +56,21 @@ export var inputVariant = cva([
53
56
  size: "lg",
54
57
  class: "focus:pe-10",
55
58
  },
59
+ {
60
+ rightSectionIcon: true,
61
+ size: "sm",
62
+ class: "pe-[38px]",
63
+ },
64
+ {
65
+ rightSectionIcon: true,
66
+ size: "md",
67
+ class: "pe-[46px]",
68
+ },
69
+ {
70
+ rightSectionIcon: true,
71
+ size: "lg",
72
+ class: "pe-[72px]",
73
+ },
56
74
  ],
57
75
  defaultVariants: {
58
76
  size: "md",
@@ -62,6 +80,7 @@ export var inputVariant = cva([
62
80
  disabled: false,
63
81
  error: false,
64
82
  hasClearIcon: false,
83
+ rightSectionIcon: false,
65
84
  },
66
85
  });
67
86
  export var labelVariant = cva([
@@ -145,3 +164,25 @@ export var iconVariant = cva(["cursor-pointer z-50 fill-input-stroke-active hove
145
164
  size: "md",
146
165
  },
147
166
  });
167
+ export var sectionIconWrapperVariant = cva([
168
+ "absolute inset-y-0 right-0 items-center justify-center flex",
169
+ "border-l border-l-input-stroke peer-hover:border-l-input-active peer-focus:border-l-input-stroke-active peer-disabled:border-l-input-stroke-disabled",
170
+ "fill-input-text peer-hover:fill-input-text-active peer-focus:fill-input-text-active",
171
+ ], {
172
+ variants: {
173
+ size: {
174
+ sm: "p-1 size-[30px]",
175
+ md: "p-2 size-[38px]",
176
+ lg: "p-3 size-14",
177
+ },
178
+ rounded: {
179
+ none: "rounded-r-none",
180
+ normal: "rounded-r-xl",
181
+ full: "rounded-r-full",
182
+ },
183
+ },
184
+ defaultVariants: {
185
+ size: "md",
186
+ rounded: "normal",
187
+ },
188
+ });