@rovula/ui 0.0.67 → 0.0.69
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.
- package/dist/cjs/bundle.css +44 -0
- package/dist/cjs/bundle.js +3 -3
- package/dist/cjs/bundle.js.map +1 -1
- package/dist/cjs/types/components/Dropdown/Dropdown.stories.d.ts +2 -0
- package/dist/cjs/types/components/InputFilter/InputFilter.stories.d.ts +2 -0
- package/dist/cjs/types/components/Search/Search.stories.d.ts +2 -0
- package/dist/cjs/types/components/TextInput/TextInput.d.ts +4 -0
- package/dist/cjs/types/components/TextInput/TextInput.stories.d.ts +11 -0
- package/dist/cjs/types/components/TextInput/TextInput.styles.d.ts +1 -0
- package/dist/cjs/types/components/Toast/useToast.d.ts +3 -0
- package/dist/components/TextInput/TextInput.js +66 -14
- package/dist/components/TextInput/TextInput.stories.js +15 -0
- package/dist/components/TextInput/TextInput.styles.js +116 -7
- package/dist/components/Toast/Toast.js +1 -1
- package/dist/components/Toast/Toaster.js +2 -2
- package/dist/esm/bundle.css +44 -0
- package/dist/esm/bundle.js +2 -2
- package/dist/esm/bundle.js.map +1 -1
- package/dist/esm/types/components/Dropdown/Dropdown.stories.d.ts +2 -0
- package/dist/esm/types/components/InputFilter/InputFilter.stories.d.ts +2 -0
- package/dist/esm/types/components/Search/Search.stories.d.ts +2 -0
- package/dist/esm/types/components/TextInput/TextInput.d.ts +4 -0
- package/dist/esm/types/components/TextInput/TextInput.stories.d.ts +11 -0
- package/dist/esm/types/components/TextInput/TextInput.styles.d.ts +1 -0
- package/dist/esm/types/components/Toast/useToast.d.ts +3 -0
- package/dist/index.d.ts +6 -0
- package/dist/src/theme/global.css +56 -0
- package/package.json +1 -1
- package/src/components/TextInput/TextInput.stories.tsx +83 -0
- package/src/components/TextInput/TextInput.styles.ts +117 -7
- package/src/components/TextInput/TextInput.tsx +115 -21
- package/src/components/Toast/Toast.tsx +1 -1
- package/src/components/Toast/Toaster.tsx +12 -1
- package/src/components/Toast/useToast.ts +3 -0
|
@@ -359,10 +359,12 @@ declare const meta: {
|
|
|
359
359
|
placeholder?: string | undefined | undefined;
|
|
360
360
|
readOnly?: boolean | undefined | undefined;
|
|
361
361
|
src?: string | undefined | undefined;
|
|
362
|
+
iconMode?: "flat" | "solid" | undefined;
|
|
362
363
|
keepCloseIconOnValue?: boolean | undefined;
|
|
363
364
|
labelClassName?: string | undefined;
|
|
364
365
|
onClickStartIcon?: (() => void) | undefined;
|
|
365
366
|
onClickEndIcon?: (() => void) | undefined;
|
|
367
|
+
renderStartIcon?: (() => React.ReactNode) | undefined;
|
|
366
368
|
renderEndIcon?: (() => React.ReactNode) | undefined;
|
|
367
369
|
ref?: React.LegacyRef<HTMLInputElement> | undefined;
|
|
368
370
|
key?: React.Key | null | undefined;
|
|
@@ -349,10 +349,12 @@ declare const meta: {
|
|
|
349
349
|
placeholder?: string | undefined | undefined;
|
|
350
350
|
readOnly?: boolean | undefined | undefined;
|
|
351
351
|
src?: string | undefined | undefined;
|
|
352
|
+
iconMode?: "flat" | "solid" | undefined;
|
|
352
353
|
keepCloseIconOnValue?: boolean | undefined;
|
|
353
354
|
labelClassName?: string | undefined;
|
|
354
355
|
onClickStartIcon?: (() => void) | undefined;
|
|
355
356
|
onClickEndIcon?: (() => void) | undefined;
|
|
357
|
+
renderStartIcon?: (() => React.ReactNode) | undefined;
|
|
356
358
|
renderEndIcon?: (() => React.ReactNode) | undefined;
|
|
357
359
|
ref?: React.LegacyRef<HTMLInputElement> | undefined;
|
|
358
360
|
key?: React.Key | null | undefined;
|
|
@@ -310,11 +310,13 @@ declare const meta: {
|
|
|
310
310
|
required?: boolean | undefined;
|
|
311
311
|
src?: string | undefined | undefined;
|
|
312
312
|
label?: string | undefined;
|
|
313
|
+
iconMode?: "flat" | "solid" | undefined;
|
|
313
314
|
helperText?: string | undefined;
|
|
314
315
|
errorMessage?: string | undefined;
|
|
315
316
|
labelClassName?: string | undefined;
|
|
316
317
|
onClickStartIcon?: (() => void) | undefined;
|
|
317
318
|
onClickEndIcon?: (() => void) | undefined;
|
|
319
|
+
renderStartIcon?: (() => React.ReactNode) | undefined;
|
|
318
320
|
renderEndIcon?: (() => React.ReactNode) | undefined;
|
|
319
321
|
modal?: boolean | undefined;
|
|
320
322
|
optionContainerClassName?: string | undefined;
|
|
@@ -5,6 +5,7 @@ export type InputProps = {
|
|
|
5
5
|
size?: "sm" | "md" | "lg";
|
|
6
6
|
rounded?: "none" | "normal" | "full";
|
|
7
7
|
variant?: "flat" | "outline" | "underline";
|
|
8
|
+
iconMode?: "flat" | "solid";
|
|
8
9
|
type?: React.HTMLInputTypeAttribute;
|
|
9
10
|
helperText?: string;
|
|
10
11
|
errorMessage?: string;
|
|
@@ -22,6 +23,7 @@ export type InputProps = {
|
|
|
22
23
|
labelClassName?: string;
|
|
23
24
|
onClickStartIcon?: () => void;
|
|
24
25
|
onClickEndIcon?: () => void;
|
|
26
|
+
renderStartIcon?: () => ReactNode;
|
|
25
27
|
renderEndIcon?: () => ReactNode;
|
|
26
28
|
} & Omit<React.InputHTMLAttributes<HTMLInputElement>, "size">;
|
|
27
29
|
export declare const TextInput: React.ForwardRefExoticComponent<{
|
|
@@ -30,6 +32,7 @@ export declare const TextInput: React.ForwardRefExoticComponent<{
|
|
|
30
32
|
size?: "sm" | "md" | "lg";
|
|
31
33
|
rounded?: "none" | "normal" | "full";
|
|
32
34
|
variant?: "flat" | "outline" | "underline";
|
|
35
|
+
iconMode?: "flat" | "solid";
|
|
33
36
|
type?: React.HTMLInputTypeAttribute;
|
|
34
37
|
helperText?: string;
|
|
35
38
|
errorMessage?: string;
|
|
@@ -47,6 +50,7 @@ export declare const TextInput: React.ForwardRefExoticComponent<{
|
|
|
47
50
|
labelClassName?: string;
|
|
48
51
|
onClickStartIcon?: () => void;
|
|
49
52
|
onClickEndIcon?: () => void;
|
|
53
|
+
renderStartIcon?: () => ReactNode;
|
|
50
54
|
renderEndIcon?: () => ReactNode;
|
|
51
55
|
} & Omit<React.InputHTMLAttributes<HTMLInputElement>, "size"> & React.RefAttributes<HTMLInputElement>>;
|
|
52
56
|
export default TextInput;
|
|
@@ -7,6 +7,7 @@ declare const meta: {
|
|
|
7
7
|
size?: "sm" | "md" | "lg";
|
|
8
8
|
rounded?: "none" | "normal" | "full";
|
|
9
9
|
variant?: "flat" | "outline" | "underline";
|
|
10
|
+
iconMode?: "flat" | "solid";
|
|
10
11
|
type?: React.HTMLInputTypeAttribute;
|
|
11
12
|
helperText?: string;
|
|
12
13
|
errorMessage?: string;
|
|
@@ -24,6 +25,7 @@ declare const meta: {
|
|
|
24
25
|
labelClassName?: string;
|
|
25
26
|
onClickStartIcon?: () => void;
|
|
26
27
|
onClickEndIcon?: () => void;
|
|
28
|
+
renderStartIcon?: () => React.ReactNode;
|
|
27
29
|
renderEndIcon?: () => React.ReactNode;
|
|
28
30
|
} & Omit<React.InputHTMLAttributes<HTMLInputElement>, "size"> & React.RefAttributes<HTMLInputElement>>;
|
|
29
31
|
tags: string[];
|
|
@@ -36,6 +38,7 @@ declare const meta: {
|
|
|
36
38
|
size?: "sm" | "md" | "lg" | undefined;
|
|
37
39
|
rounded?: "none" | "normal" | "full" | undefined;
|
|
38
40
|
variant?: "flat" | "outline" | "underline" | undefined;
|
|
41
|
+
iconMode?: "flat" | "solid" | undefined;
|
|
39
42
|
type?: React.HTMLInputTypeAttribute | undefined;
|
|
40
43
|
helperText?: string | undefined;
|
|
41
44
|
errorMessage?: string | undefined;
|
|
@@ -53,6 +56,7 @@ declare const meta: {
|
|
|
53
56
|
labelClassName?: string | undefined;
|
|
54
57
|
onClickStartIcon?: (() => void) | undefined;
|
|
55
58
|
onClickEndIcon?: (() => void) | undefined;
|
|
59
|
+
renderStartIcon?: (() => React.ReactNode) | undefined;
|
|
56
60
|
renderEndIcon?: (() => React.ReactNode) | undefined;
|
|
57
61
|
suppressHydrationWarning?: boolean | undefined | undefined;
|
|
58
62
|
color?: string | undefined | undefined;
|
|
@@ -371,3 +375,10 @@ export declare const FuctionInput: {
|
|
|
371
375
|
};
|
|
372
376
|
render: (args: {}) => import("react/jsx-runtime").JSX.Element;
|
|
373
377
|
};
|
|
378
|
+
export declare const CustomIcon: {
|
|
379
|
+
args: {
|
|
380
|
+
label: string;
|
|
381
|
+
disabled: boolean;
|
|
382
|
+
};
|
|
383
|
+
render: (args: {}) => import("react/jsx-runtime").JSX.Element;
|
|
384
|
+
};
|
|
@@ -15,6 +15,7 @@ export declare const labelVariant: (props?: ({
|
|
|
15
15
|
disabled?: boolean | null | undefined;
|
|
16
16
|
error?: boolean | null | undefined;
|
|
17
17
|
hasSearchIcon?: boolean | null | undefined;
|
|
18
|
+
hasLeftSectionIcon?: boolean | null | undefined;
|
|
18
19
|
isFloatingLabel?: boolean | null | undefined;
|
|
19
20
|
} & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
|
|
20
21
|
export declare const helperTextVariant: (props?: ({
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import { ToastActionElement, ToastProps } from "./Toast";
|
|
3
|
+
import { IconProps } from "../Icon/Icon";
|
|
3
4
|
type ToasterToast = ToastProps & {
|
|
4
5
|
id: string;
|
|
5
6
|
title?: React.ReactNode;
|
|
@@ -7,6 +8,8 @@ type ToasterToast = ToastProps & {
|
|
|
7
8
|
action?: ToastActionElement;
|
|
8
9
|
contentMode?: "vertical" | "horizontal";
|
|
9
10
|
onClose?: () => void;
|
|
11
|
+
iconProps?: IconProps;
|
|
12
|
+
renderIcon?: () => React.ReactElement;
|
|
10
13
|
};
|
|
11
14
|
type ToasterPosition = "top-center" | "top-left" | "top-right" | "bottom-center" | "bottom-left" | "bottom-right" | undefined;
|
|
12
15
|
declare const actionTypes: {
|
package/dist/index.d.ts
CHANGED
|
@@ -49,6 +49,7 @@ type InputProps = {
|
|
|
49
49
|
size?: "sm" | "md" | "lg";
|
|
50
50
|
rounded?: "none" | "normal" | "full";
|
|
51
51
|
variant?: "flat" | "outline" | "underline";
|
|
52
|
+
iconMode?: "flat" | "solid";
|
|
52
53
|
type?: React__default.HTMLInputTypeAttribute;
|
|
53
54
|
helperText?: string;
|
|
54
55
|
errorMessage?: string;
|
|
@@ -66,6 +67,7 @@ type InputProps = {
|
|
|
66
67
|
labelClassName?: string;
|
|
67
68
|
onClickStartIcon?: () => void;
|
|
68
69
|
onClickEndIcon?: () => void;
|
|
70
|
+
renderStartIcon?: () => ReactNode;
|
|
69
71
|
renderEndIcon?: () => ReactNode;
|
|
70
72
|
} & Omit<React__default.InputHTMLAttributes<HTMLInputElement>, "size">;
|
|
71
73
|
declare const TextInput: React__default.ForwardRefExoticComponent<{
|
|
@@ -74,6 +76,7 @@ declare const TextInput: React__default.ForwardRefExoticComponent<{
|
|
|
74
76
|
size?: "sm" | "md" | "lg";
|
|
75
77
|
rounded?: "none" | "normal" | "full";
|
|
76
78
|
variant?: "flat" | "outline" | "underline";
|
|
79
|
+
iconMode?: "flat" | "solid";
|
|
77
80
|
type?: React__default.HTMLInputTypeAttribute;
|
|
78
81
|
helperText?: string;
|
|
79
82
|
errorMessage?: string;
|
|
@@ -91,6 +94,7 @@ declare const TextInput: React__default.ForwardRefExoticComponent<{
|
|
|
91
94
|
labelClassName?: string;
|
|
92
95
|
onClickStartIcon?: () => void;
|
|
93
96
|
onClickEndIcon?: () => void;
|
|
97
|
+
renderStartIcon?: () => ReactNode;
|
|
94
98
|
renderEndIcon?: () => ReactNode;
|
|
95
99
|
} & Omit<React__default.InputHTMLAttributes<HTMLInputElement>, "size"> & React__default.RefAttributes<HTMLInputElement>>;
|
|
96
100
|
|
|
@@ -581,6 +585,8 @@ type ToasterToast = ToastProps & {
|
|
|
581
585
|
action?: ToastActionElement;
|
|
582
586
|
contentMode?: "vertical" | "horizontal";
|
|
583
587
|
onClose?: () => void;
|
|
588
|
+
iconProps?: IconProps;
|
|
589
|
+
renderIcon?: () => React.ReactElement;
|
|
584
590
|
};
|
|
585
591
|
type ToasterPosition = "top-center" | "top-left" | "top-right" | "bottom-center" | "bottom-left" | "bottom-right" | undefined;
|
|
586
592
|
declare const actionTypes: {
|
|
@@ -2284,10 +2284,22 @@ input[type=number] {
|
|
|
2284
2284
|
left: 2.25rem;
|
|
2285
2285
|
}
|
|
2286
2286
|
|
|
2287
|
+
.left-\[38px\] {
|
|
2288
|
+
left: 38px;
|
|
2289
|
+
}
|
|
2290
|
+
|
|
2291
|
+
.left-\[46px\] {
|
|
2292
|
+
left: 46px;
|
|
2293
|
+
}
|
|
2294
|
+
|
|
2287
2295
|
.left-\[50\%\] {
|
|
2288
2296
|
left: 50%;
|
|
2289
2297
|
}
|
|
2290
2298
|
|
|
2299
|
+
.left-\[72px\] {
|
|
2300
|
+
left: 72px;
|
|
2301
|
+
}
|
|
2302
|
+
|
|
2291
2303
|
.right-0 {
|
|
2292
2304
|
right: 0px;
|
|
2293
2305
|
}
|
|
@@ -3047,6 +3059,21 @@ input[type=number] {
|
|
|
3047
3059
|
border-radius: var(--radius-radius-xs);
|
|
3048
3060
|
}
|
|
3049
3061
|
|
|
3062
|
+
.rounded-l-full {
|
|
3063
|
+
border-top-left-radius: 9999px;
|
|
3064
|
+
border-bottom-left-radius: 9999px;
|
|
3065
|
+
}
|
|
3066
|
+
|
|
3067
|
+
.rounded-l-none {
|
|
3068
|
+
border-top-left-radius: 0px;
|
|
3069
|
+
border-bottom-left-radius: 0px;
|
|
3070
|
+
}
|
|
3071
|
+
|
|
3072
|
+
.rounded-l-xl {
|
|
3073
|
+
border-top-left-radius: var(--radius-radius-xl);
|
|
3074
|
+
border-bottom-left-radius: var(--radius-radius-xl);
|
|
3075
|
+
}
|
|
3076
|
+
|
|
3050
3077
|
.rounded-r-full {
|
|
3051
3078
|
border-top-right-radius: 9999px;
|
|
3052
3079
|
border-bottom-right-radius: 9999px;
|
|
@@ -3094,6 +3121,10 @@ input[type=number] {
|
|
|
3094
3121
|
border-left-width: 1px;
|
|
3095
3122
|
}
|
|
3096
3123
|
|
|
3124
|
+
.border-r {
|
|
3125
|
+
border-right-width: 1px;
|
|
3126
|
+
}
|
|
3127
|
+
|
|
3097
3128
|
.border-t {
|
|
3098
3129
|
border-top-width: 1px;
|
|
3099
3130
|
}
|
|
@@ -3359,6 +3390,16 @@ input[type=number] {
|
|
|
3359
3390
|
border-left-color: color-mix(in srgb, var(--input-color-error) calc(100% * var(--tw-border-opacity, 1)), transparent);
|
|
3360
3391
|
}
|
|
3361
3392
|
|
|
3393
|
+
.border-r-input-default-stroke {
|
|
3394
|
+
--tw-border-opacity: 1;
|
|
3395
|
+
border-right-color: color-mix(in srgb, var(--input-color-default-stroke) calc(100% * var(--tw-border-opacity, 1)), transparent);
|
|
3396
|
+
}
|
|
3397
|
+
|
|
3398
|
+
.border-r-input-error {
|
|
3399
|
+
--tw-border-opacity: 1;
|
|
3400
|
+
border-right-color: color-mix(in srgb, var(--input-color-error) calc(100% * var(--tw-border-opacity, 1)), transparent);
|
|
3401
|
+
}
|
|
3402
|
+
|
|
3362
3403
|
.border-t-secondary {
|
|
3363
3404
|
--tw-border-opacity: 1;
|
|
3364
3405
|
border-top-color: color-mix(in srgb, var(--state-color-secondary-default) calc(100% * var(--tw-border-opacity, 1)), transparent);
|
|
@@ -7977,6 +8018,11 @@ input[type=number] {
|
|
|
7977
8018
|
border-left-color: color-mix(in srgb, var(--input-color-active-stroke) calc(100% * var(--tw-border-opacity, 1)), transparent);
|
|
7978
8019
|
}
|
|
7979
8020
|
|
|
8021
|
+
.peer:hover ~ .peer-hover\:border-r-input-active-stroke {
|
|
8022
|
+
--tw-border-opacity: 1;
|
|
8023
|
+
border-right-color: color-mix(in srgb, var(--input-color-active-stroke) calc(100% * var(--tw-border-opacity, 1)), transparent);
|
|
8024
|
+
}
|
|
8025
|
+
|
|
7980
8026
|
.peer:hover ~ .peer-hover\:fill-input-filled-text {
|
|
7981
8027
|
fill: color-mix(in srgb, var(--input-color-filled-text) calc(100% * 1), transparent);
|
|
7982
8028
|
}
|
|
@@ -8006,6 +8052,11 @@ input[type=number] {
|
|
|
8006
8052
|
border-left-color: color-mix(in srgb, var(--input-color-active-stroke) calc(100% * var(--tw-border-opacity, 1)), transparent);
|
|
8007
8053
|
}
|
|
8008
8054
|
|
|
8055
|
+
.peer:focus ~ .peer-focus\:border-r-input-active-stroke {
|
|
8056
|
+
--tw-border-opacity: 1;
|
|
8057
|
+
border-right-color: color-mix(in srgb, var(--input-color-active-stroke) calc(100% * var(--tw-border-opacity, 1)), transparent);
|
|
8058
|
+
}
|
|
8059
|
+
|
|
8009
8060
|
.peer:focus ~ .peer-focus\:bg-input-label-bg {
|
|
8010
8061
|
--tw-bg-opacity: 1;
|
|
8011
8062
|
background-color: color-mix(in srgb, var(--input-color-label-bg) calc(100% * var(--tw-bg-opacity, 1)), transparent);
|
|
@@ -8062,6 +8113,11 @@ input[type=number] {
|
|
|
8062
8113
|
border-left-color: color-mix(in srgb, var(--input-color-disable-stroke) calc(100% * var(--tw-border-opacity, 1)), transparent);
|
|
8063
8114
|
}
|
|
8064
8115
|
|
|
8116
|
+
.peer:disabled ~ .peer-disabled\:border-r-input-disable-stroke {
|
|
8117
|
+
--tw-border-opacity: 1;
|
|
8118
|
+
border-right-color: color-mix(in srgb, var(--input-color-disable-stroke) calc(100% * var(--tw-border-opacity, 1)), transparent);
|
|
8119
|
+
}
|
|
8120
|
+
|
|
8065
8121
|
.peer:disabled ~ .peer-disabled\:fill-input-disable-stroke {
|
|
8066
8122
|
fill: color-mix(in srgb, var(--input-color-disable-stroke) calc(100% * 1), transparent);
|
|
8067
8123
|
}
|
package/package.json
CHANGED
|
@@ -2,6 +2,7 @@ import React, { useRef } from "react";
|
|
|
2
2
|
import type { Meta, StoryObj } from "@storybook/react";
|
|
3
3
|
import TextInput from "./TextInput";
|
|
4
4
|
import { CalendarIcon } from "@heroicons/react/16/solid";
|
|
5
|
+
import Icon from "../Icon/Icon";
|
|
5
6
|
|
|
6
7
|
// More on how to set up stories at: https://storybook.js.org/docs/7.0/react/writing-stories/introduction
|
|
7
8
|
const meta = {
|
|
@@ -124,3 +125,85 @@ export const FuctionInput = {
|
|
|
124
125
|
);
|
|
125
126
|
},
|
|
126
127
|
} satisfies StoryObj;
|
|
128
|
+
|
|
129
|
+
export const CustomIcon = {
|
|
130
|
+
args: {
|
|
131
|
+
label: "Placeholder Text",
|
|
132
|
+
// value: "",
|
|
133
|
+
disabled: true,
|
|
134
|
+
},
|
|
135
|
+
render: (args) => {
|
|
136
|
+
console.log("args ", args);
|
|
137
|
+
const props: typeof args = {
|
|
138
|
+
...args,
|
|
139
|
+
};
|
|
140
|
+
return (
|
|
141
|
+
<div className="flex flex-col gap-4 w-full">
|
|
142
|
+
<div>
|
|
143
|
+
<h4>Icon mode: solid:</h4>
|
|
144
|
+
</div>
|
|
145
|
+
<div className="flex flex-row gap-4 w-full">
|
|
146
|
+
<TextInput
|
|
147
|
+
id="1"
|
|
148
|
+
size="lg"
|
|
149
|
+
{...args}
|
|
150
|
+
startIcon={<CalendarIcon className="size-full" fill="inherit" />}
|
|
151
|
+
endIcon={<CalendarIcon className="size-full" fill="inherit" />}
|
|
152
|
+
/>
|
|
153
|
+
<TextInput
|
|
154
|
+
id="2"
|
|
155
|
+
size="md"
|
|
156
|
+
{...args}
|
|
157
|
+
startIcon={<CalendarIcon className="size-full" fill="inherit" />}
|
|
158
|
+
endIcon={<CalendarIcon className="size-full" fill="inherit" />}
|
|
159
|
+
/>
|
|
160
|
+
<TextInput
|
|
161
|
+
id="3"
|
|
162
|
+
size="sm"
|
|
163
|
+
{...args}
|
|
164
|
+
startIcon={<CalendarIcon className="size-full" fill="inherit" />}
|
|
165
|
+
endIcon={<CalendarIcon className="size-full" fill="inherit" />}
|
|
166
|
+
/>
|
|
167
|
+
</div>
|
|
168
|
+
<div>
|
|
169
|
+
<h4>Icon mode: flat:</h4>
|
|
170
|
+
</div>
|
|
171
|
+
<div className="flex flex-row gap-4 w-full">
|
|
172
|
+
<TextInput
|
|
173
|
+
id="1"
|
|
174
|
+
size="lg"
|
|
175
|
+
{...args}
|
|
176
|
+
iconMode="flat"
|
|
177
|
+
startIcon={<CalendarIcon className="size-full" fill="inherit" />}
|
|
178
|
+
endIcon={<CalendarIcon className="size-full" fill="inherit" />}
|
|
179
|
+
/>
|
|
180
|
+
<TextInput
|
|
181
|
+
id="2"
|
|
182
|
+
size="md"
|
|
183
|
+
{...args}
|
|
184
|
+
iconMode="flat"
|
|
185
|
+
startIcon={<CalendarIcon className="size-full" fill="inherit" />}
|
|
186
|
+
endIcon={<CalendarIcon className="size-full" fill="inherit" />}
|
|
187
|
+
/>
|
|
188
|
+
<TextInput
|
|
189
|
+
id="3"
|
|
190
|
+
size="sm"
|
|
191
|
+
{...args}
|
|
192
|
+
iconMode="flat"
|
|
193
|
+
startIcon={<CalendarIcon className="size-full" fill="inherit" />}
|
|
194
|
+
endIcon={<CalendarIcon className="size-full" fill="inherit" />}
|
|
195
|
+
/>
|
|
196
|
+
</div>
|
|
197
|
+
<TextInput
|
|
198
|
+
id="1"
|
|
199
|
+
size="lg"
|
|
200
|
+
{...args}
|
|
201
|
+
iconMode="flat"
|
|
202
|
+
startIcon={<Icon name="magnifying-glass" fill="inherit" />}
|
|
203
|
+
// <MagnifyingGlassIcon className="size-full" fill="inherit" />
|
|
204
|
+
hasClearIcon
|
|
205
|
+
/>
|
|
206
|
+
</div>
|
|
207
|
+
);
|
|
208
|
+
},
|
|
209
|
+
} satisfies StoryObj;
|
|
@@ -156,6 +156,9 @@ export const labelVariant = cva(
|
|
|
156
156
|
hasSearchIcon: {
|
|
157
157
|
false: "",
|
|
158
158
|
},
|
|
159
|
+
hasLeftSectionIcon: {
|
|
160
|
+
false: "",
|
|
161
|
+
},
|
|
159
162
|
isFloatingLabel: {
|
|
160
163
|
false: "hidden peer-placeholder-shown:block peer-focus:bg-transparent",
|
|
161
164
|
},
|
|
@@ -268,12 +271,70 @@ export const labelVariant = cva(
|
|
|
268
271
|
"left-11 peer-placeholder-shown:top-4 peer-placeholder-shown:typography-subtitile1",
|
|
269
272
|
],
|
|
270
273
|
},
|
|
274
|
+
|
|
275
|
+
// -------- hasLeftSectionIcon ------
|
|
276
|
+
{
|
|
277
|
+
isFloatingLabel: true,
|
|
278
|
+
hasLeftSectionIcon: true,
|
|
279
|
+
size: "sm",
|
|
280
|
+
className: [
|
|
281
|
+
"left-[38px] -top-1.5 typography-label2 bg-input-label-bg",
|
|
282
|
+
"peer-placeholder-shown:top-2 peer-placeholder-shown:typography-small1 peer-placeholder-shown:bg-transparent",
|
|
283
|
+
"peer-focus:-top-1.5 peer-focus:typography-label2",
|
|
284
|
+
],
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
isFloatingLabel: true,
|
|
288
|
+
hasLeftSectionIcon: true,
|
|
289
|
+
size: "md",
|
|
290
|
+
className: [
|
|
291
|
+
"left-[46px] -top-1.5 typography-label1 bg-input-label-bg",
|
|
292
|
+
"peer-placeholder-shown:top-2 peer-placeholder-shown:typography-subtitile4 peer-placeholder-shown:bg-transparent",
|
|
293
|
+
"peer-focus:-top-1.5 peer-focus:typography-label1",
|
|
294
|
+
],
|
|
295
|
+
},
|
|
296
|
+
{
|
|
297
|
+
isFloatingLabel: true,
|
|
298
|
+
hasLeftSectionIcon: true,
|
|
299
|
+
size: "lg",
|
|
300
|
+
className: [
|
|
301
|
+
"left-[72px] -top-1.5 typography-label1 bg-input-label-bg",
|
|
302
|
+
"peer-placeholder-shown:top-4 peer-placeholder-shown:typography-subtitile1 peer-placeholder-shown:bg-transparent",
|
|
303
|
+
"peer-focus:-top-1.5 peer-focus:typography-label1",
|
|
304
|
+
],
|
|
305
|
+
},
|
|
306
|
+
// floating = false and has search icon
|
|
307
|
+
{
|
|
308
|
+
isFloatingLabel: false,
|
|
309
|
+
hasLeftSectionIcon: true,
|
|
310
|
+
size: "sm",
|
|
311
|
+
className: [
|
|
312
|
+
"left-[38px] peer-placeholder-shown:top-2 peer-placeholder-shown:typography-small1",
|
|
313
|
+
],
|
|
314
|
+
},
|
|
315
|
+
{
|
|
316
|
+
isFloatingLabel: false,
|
|
317
|
+
hasLeftSectionIcon: true,
|
|
318
|
+
size: "md",
|
|
319
|
+
className: [
|
|
320
|
+
"left-[46px] peer-placeholder-shown:top-2 peer-placeholder-shown:typography-subtitile4",
|
|
321
|
+
],
|
|
322
|
+
},
|
|
323
|
+
{
|
|
324
|
+
isFloatingLabel: false,
|
|
325
|
+
hasLeftSectionIcon: true,
|
|
326
|
+
size: "lg",
|
|
327
|
+
className: [
|
|
328
|
+
"left-[72px] peer-placeholder-shown:top-4 peer-placeholder-shown:typography-subtitile1",
|
|
329
|
+
],
|
|
330
|
+
},
|
|
271
331
|
],
|
|
272
332
|
defaultVariants: {
|
|
273
333
|
size: "md",
|
|
274
334
|
disabled: false,
|
|
275
335
|
error: false,
|
|
276
336
|
hasSearchIcon: false,
|
|
337
|
+
hasLeftSectionIcon: false,
|
|
277
338
|
isFloatingLabel: true,
|
|
278
339
|
},
|
|
279
340
|
}
|
|
@@ -360,7 +421,6 @@ export const sectionIconWrapperVariant = cva(
|
|
|
360
421
|
[
|
|
361
422
|
"cursor-pointer",
|
|
362
423
|
"absolute items-center justify-center flex",
|
|
363
|
-
"border-l border-l-input-default-stroke peer-hover:border-l-input-active-stroke peer-focus:border-l-input-active-stroke peer-disabled:border-l-input-disable-stroke",
|
|
364
424
|
"fill-input-default-text peer-hover:fill-input-filled-text peer-focus:fill-input-filled-text peer-disabled:fill-input-disable-stroke",
|
|
365
425
|
],
|
|
366
426
|
{
|
|
@@ -371,18 +431,68 @@ export const sectionIconWrapperVariant = cva(
|
|
|
371
431
|
lg: "p-3 size-14",
|
|
372
432
|
},
|
|
373
433
|
rounded: {
|
|
374
|
-
none: "
|
|
375
|
-
normal: "
|
|
376
|
-
full: "
|
|
434
|
+
none: "",
|
|
435
|
+
normal: "",
|
|
436
|
+
full: "",
|
|
377
437
|
},
|
|
378
438
|
error: {
|
|
379
|
-
|
|
439
|
+
false: "",
|
|
380
440
|
},
|
|
381
441
|
position: {
|
|
382
|
-
start:
|
|
383
|
-
|
|
442
|
+
start: [
|
|
443
|
+
"inset-y-0 left-0 ",
|
|
444
|
+
"border-r border-r-input-default-stroke peer-hover:border-r-input-active-stroke peer-focus:border-r-input-active-stroke peer-disabled:border-r-input-disable-stroke",
|
|
445
|
+
],
|
|
446
|
+
end: [
|
|
447
|
+
"inset-y-0 right-0 ",
|
|
448
|
+
"border-l border-l-input-default-stroke peer-hover:border-l-input-active-stroke peer-focus:border-l-input-active-stroke peer-disabled:border-l-input-disable-stroke",
|
|
449
|
+
],
|
|
384
450
|
},
|
|
385
451
|
},
|
|
452
|
+
compoundVariants: [
|
|
453
|
+
// --- start rounded ---
|
|
454
|
+
{
|
|
455
|
+
position: "start",
|
|
456
|
+
rounded: "none",
|
|
457
|
+
className: "rounded-l-none",
|
|
458
|
+
},
|
|
459
|
+
{
|
|
460
|
+
position: "start",
|
|
461
|
+
rounded: "normal",
|
|
462
|
+
className: "rounded-l-xl",
|
|
463
|
+
},
|
|
464
|
+
{
|
|
465
|
+
position: "start",
|
|
466
|
+
rounded: "full",
|
|
467
|
+
className: "rounded-l-full",
|
|
468
|
+
},
|
|
469
|
+
{
|
|
470
|
+
position: "end",
|
|
471
|
+
rounded: "none",
|
|
472
|
+
className: "rounded-r-none",
|
|
473
|
+
},
|
|
474
|
+
{
|
|
475
|
+
position: "end",
|
|
476
|
+
rounded: "normal",
|
|
477
|
+
className: "rounded-r-xl",
|
|
478
|
+
},
|
|
479
|
+
{
|
|
480
|
+
position: "end",
|
|
481
|
+
rounded: "full",
|
|
482
|
+
className: "rounded-r-full",
|
|
483
|
+
},
|
|
484
|
+
// --- Error start ---
|
|
485
|
+
{
|
|
486
|
+
position: "start",
|
|
487
|
+
error: true,
|
|
488
|
+
className: "border-r-input-error",
|
|
489
|
+
},
|
|
490
|
+
{
|
|
491
|
+
position: "end",
|
|
492
|
+
error: true,
|
|
493
|
+
className: "border-l-input-error",
|
|
494
|
+
},
|
|
495
|
+
],
|
|
386
496
|
defaultVariants: {
|
|
387
497
|
size: "md",
|
|
388
498
|
rounded: "normal",
|