@rovula/ui 0.0.19 → 0.0.21
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 +3220 -1382
- package/dist/cjs/bundle.js +3 -3
- package/dist/cjs/bundle.js.map +1 -1
- package/dist/cjs/types/components/ActionButton/ActionButton.stories.d.ts +4 -4
- package/dist/cjs/types/components/ActionButton/ActionButton.styles copy.d.ts +6 -0
- package/dist/cjs/types/components/Button/Button.styles copy.d.ts +7 -0
- package/dist/cjs/types/components/Button/Button.styles.d.ts +1 -0
- package/dist/cjs/types/components/Button/Buttons.stories.d.ts +12 -4
- package/dist/cjs/types/components/Calendar/Calendar.d.ts +0 -1
- package/dist/cjs/types/components/Calendar/Calendar.stories.d.ts +7 -7
- package/dist/cjs/types/components/Checkbox/Checkbox.stories.d.ts +6 -6
- package/dist/cjs/types/components/DatePicker/DatePicker.d.ts +2 -0
- package/dist/cjs/types/components/DatePicker/DatePicker.stories.d.ts +2 -0
- package/dist/cjs/types/components/Dropdown/Dropdown.stories.d.ts +8 -6
- package/dist/cjs/types/components/Input/Input.stories.d.ts +12 -12
- package/dist/cjs/types/components/Label/Label.stories.d.ts +6 -6
- package/dist/cjs/types/components/Loading/Loading.d.ts +14 -0
- package/dist/cjs/types/components/Loading/Loading.stories.d.ts +35 -0
- package/dist/cjs/types/components/ProgressBar/ProgressBar.d.ts +13 -0
- package/dist/cjs/types/components/ProgressBar/ProgressBar.stories.d.ts +37 -0
- package/dist/cjs/types/components/RadioGroup/RadioGroup.stories.d.ts +5 -5
- package/dist/cjs/types/components/Search/Search.d.ts +22 -1
- package/dist/cjs/types/components/Search/Search.stories.d.ts +338 -7
- package/dist/cjs/types/components/Table/Table.stories.d.ts +4 -4
- package/dist/cjs/types/components/Text/Text.d.ts +1 -1
- package/dist/cjs/types/components/Text/Text.stories.d.ts +1 -1
- package/dist/cjs/types/components/TextInput/TextInput.d.ts +4 -0
- package/dist/cjs/types/components/TextInput/TextInput.stories.d.ts +11 -6
- package/dist/cjs/types/components/TextInput/TextInput.styles.d.ts +8 -0
- package/dist/cjs/types/index.d.ts +3 -0
- package/dist/cjs/types/stories/ColorGroupPreview.d.ts +1 -0
- package/dist/cjs/types/stories/ColorPreview.d.ts +5 -0
- package/dist/components/ActionButton/ActionButton.js +1 -1
- package/dist/components/ActionButton/ActionButton.stories.js +1 -1
- package/dist/components/ActionButton/ActionButton.styles copy.js +90 -0
- package/dist/components/ActionButton/ActionButton.styles.js +54 -15
- package/dist/components/AlertDialog/AlertDialog.js +2 -2
- package/dist/components/Avatar/Avatar.styles.js +1 -1
- package/dist/components/Button/Button.js +3 -2
- package/dist/components/Button/Button.styles copy.js +210 -0
- package/dist/components/Button/Button.styles.js +203 -43
- package/dist/components/Button/Buttons.stories.js +9 -1
- package/dist/components/Calendar/Calendar.js +39 -2
- package/dist/components/Checkbox/Checkbox.js +1 -1
- package/dist/components/Collapsible/Collapsible.styles.js +6 -3
- package/dist/components/DatePicker/DatePicker.js +13 -2
- package/dist/components/Dialog/Dialog.js +4 -4
- package/dist/components/Dropdown/Dropdown.js +9 -7
- package/dist/components/Dropdown/Dropdown.styles.js +1 -1
- package/dist/components/Input/Input.js +8 -1
- package/dist/components/Input/Input.stories.js +3 -2
- package/dist/components/Input/Input.styles.js +13 -5
- package/dist/components/Loading/Loading.js +23 -0
- package/dist/components/Loading/Loading.stories.js +37 -0
- package/dist/components/Popover/Popover.js +1 -1
- package/dist/components/ProgressBar/ProgressBar.js +22 -0
- package/dist/components/ProgressBar/ProgressBar.stories.js +52 -0
- package/dist/components/RadioGroup/RadioGroup.js +2 -2
- package/dist/components/Search/Search.js +6 -7
- package/dist/components/Search/Search.stories.js +8 -5
- package/dist/components/Text/Text.js +17 -2
- package/dist/components/Text/Text.stories.js +5 -1
- package/dist/components/TextInput/TextInput.js +14 -5
- package/dist/components/TextInput/TextInput.stories.js +3 -2
- package/dist/components/TextInput/TextInput.styles.js +120 -18
- package/dist/esm/bundle.css +3220 -1382
- package/dist/esm/bundle.js +3 -3
- package/dist/esm/bundle.js.map +1 -1
- package/dist/esm/types/components/ActionButton/ActionButton.stories.d.ts +4 -4
- package/dist/esm/types/components/ActionButton/ActionButton.styles copy.d.ts +6 -0
- package/dist/esm/types/components/Button/Button.styles copy.d.ts +7 -0
- package/dist/esm/types/components/Button/Button.styles.d.ts +1 -0
- package/dist/esm/types/components/Button/Buttons.stories.d.ts +12 -4
- package/dist/esm/types/components/Calendar/Calendar.d.ts +0 -1
- package/dist/esm/types/components/Calendar/Calendar.stories.d.ts +7 -7
- package/dist/esm/types/components/Checkbox/Checkbox.stories.d.ts +6 -6
- package/dist/esm/types/components/DatePicker/DatePicker.d.ts +2 -0
- package/dist/esm/types/components/DatePicker/DatePicker.stories.d.ts +2 -0
- package/dist/esm/types/components/Dropdown/Dropdown.stories.d.ts +8 -6
- package/dist/esm/types/components/Input/Input.stories.d.ts +12 -12
- package/dist/esm/types/components/Label/Label.stories.d.ts +6 -6
- package/dist/esm/types/components/Loading/Loading.d.ts +14 -0
- package/dist/esm/types/components/Loading/Loading.stories.d.ts +35 -0
- package/dist/esm/types/components/ProgressBar/ProgressBar.d.ts +13 -0
- package/dist/esm/types/components/ProgressBar/ProgressBar.stories.d.ts +37 -0
- package/dist/esm/types/components/RadioGroup/RadioGroup.stories.d.ts +5 -5
- package/dist/esm/types/components/Search/Search.d.ts +22 -1
- package/dist/esm/types/components/Search/Search.stories.d.ts +338 -7
- package/dist/esm/types/components/Table/Table.stories.d.ts +4 -4
- package/dist/esm/types/components/Text/Text.d.ts +1 -1
- package/dist/esm/types/components/Text/Text.stories.d.ts +1 -1
- package/dist/esm/types/components/TextInput/TextInput.d.ts +4 -0
- package/dist/esm/types/components/TextInput/TextInput.stories.d.ts +11 -6
- package/dist/esm/types/components/TextInput/TextInput.styles.d.ts +8 -0
- package/dist/esm/types/index.d.ts +3 -0
- package/dist/esm/types/stories/ColorGroupPreview.d.ts +1 -0
- package/dist/esm/types/stories/ColorPreview.d.ts +5 -0
- package/dist/index.d.ts +53 -2
- package/dist/index.js +3 -0
- package/dist/src/theme/global.css +5078 -918
- package/dist/stories/ColorGroupPreview.js +478 -0
- package/dist/stories/ColorPreview.js +8 -0
- package/dist/theme/global.css +7 -227
- package/dist/theme/main-preset.js +131 -67
- package/dist/theme/plugins/utilities/typography.js +12 -0
- package/dist/theme/presets/colors.js +101 -220
- package/dist/theme/theme.d.ts +69 -0
- package/dist/theme/themes/xspector/baseline.css +7 -0
- package/dist/theme/themes/xspector/color.css +67 -0
- package/dist/theme/themes/xspector/components/action-button.css +98 -0
- package/dist/theme/themes/xspector/components/loading.css +11 -0
- package/dist/theme/themes/xspector/palette.css +122 -0
- package/dist/theme/themes/xspector/state.css +89 -0
- package/dist/theme/themes/xspector/transparent.css +68 -0
- package/dist/theme/themes/xspector/typography.css +27 -0
- package/dist/theme/tokens/baseline.css +10 -0
- package/dist/theme/tokens/color.css +63 -0
- package/dist/theme/tokens/components/action-button.css +127 -0
- package/dist/theme/tokens/components/button.css +512 -0
- package/dist/theme/tokens/components/loading.css +11 -0
- package/dist/theme/tokens/components/navbar.css +8 -0
- package/dist/theme/tokens/components/progress-bar.css +8 -0
- package/dist/theme/tokens/palette.css +122 -0
- package/dist/theme/tokens/state.css +82 -0
- package/dist/theme/tokens/transparent.css +68 -0
- package/dist/theme/tokens/typography.css +178 -0
- package/dist/theme/tokens/variables.css +28 -0
- package/dist/theme/utils.js +98 -0
- package/package.json +1 -1
- package/src/_theme/global copy.css +761 -0
- package/src/_theme/global.css +39 -0
- package/src/_theme/main-preset.js +239 -0
- package/src/_theme/plugins/utilities/typography.js +81 -0
- package/src/_theme/presets/colors copy 2.js +319 -0
- package/src/_theme/presets/colors copy.js +229 -0
- package/src/_theme/presets/colors.js +94 -0
- package/src/_theme/theme.d.ts +69 -0
- package/src/_theme/variables/base/button.css +334 -0
- package/src/_theme/variables/base/components copy.css +19 -0
- package/src/_theme/variables/default/colors.css +292 -0
- package/src/_theme/variables/default/typography.css +178 -0
- package/src/_theme/variables/xspector/colors.css +468 -0
- package/src/_theme/variables/xspector/typography.css +178 -0
- package/src/components/ActionButton/ActionButton.stories.tsx +1 -1
- package/src/components/ActionButton/ActionButton.styles copy.ts +95 -0
- package/src/components/ActionButton/ActionButton.styles.ts +54 -19
- package/src/components/ActionButton/ActionButton.tsx +1 -1
- package/src/components/AlertDialog/AlertDialog.tsx +2 -2
- package/src/components/Avatar/Avatar.styles.ts +1 -1
- package/src/components/Button/Button.styles copy.ts +214 -0
- package/src/components/Button/Button.styles.ts +203 -47
- package/src/components/Button/Button.tsx +4 -0
- package/src/components/Button/Buttons.stories.tsx +9 -1
- package/src/components/Calendar/Calendar.tsx +49 -7
- package/src/components/Checkbox/Checkbox.tsx +1 -1
- package/src/components/Collapsible/Collapsible.styles.ts +6 -3
- package/src/components/DatePicker/DatePicker.tsx +8 -2
- package/src/components/Dialog/Dialog.tsx +5 -5
- package/src/components/Dropdown/Dropdown.styles.ts +1 -1
- package/src/components/Dropdown/Dropdown.tsx +14 -12
- package/src/components/Input/Input.stories.tsx +3 -2
- package/src/components/Input/Input.styles.tsx +13 -6
- package/src/components/Input/Input.tsx +8 -1
- package/src/components/Loading/Loading.stories.tsx +43 -0
- package/src/components/Loading/Loading.tsx +72 -0
- package/src/components/Popover/Popover.tsx +1 -1
- package/src/components/ProgressBar/ProgressBar.stories.tsx +78 -0
- package/src/components/ProgressBar/ProgressBar.tsx +62 -0
- package/src/components/RadioGroup/RadioGroup.tsx +2 -2
- package/src/components/Search/Search.stories.tsx +13 -13
- package/src/components/Search/Search.tsx +14 -19
- package/src/components/Text/Text.stories.tsx +6 -4
- package/src/components/Text/Text.tsx +27 -3
- package/src/components/TextInput/TextInput.stories.tsx +3 -2
- package/src/components/TextInput/TextInput.styles.ts +124 -19
- package/src/components/TextInput/TextInput.tsx +34 -4
- package/src/index.ts +3 -0
- package/src/stories/ColorGroupPreview.tsx +494 -0
- package/src/stories/ColorPreview.tsx +45 -0
- package/src/stories/Colors.mdx +14 -0
- package/src/stories/Typography.mdx +7 -151
- package/src/theme/global.css +7 -227
- package/src/theme/main-preset.js +131 -67
- package/src/theme/plugins/utilities/typography.js +12 -0
- package/src/theme/presets/colors.js +101 -220
- package/src/theme/theme.d.ts +69 -0
- package/src/theme/themes/xspector/baseline.css +7 -0
- package/src/theme/themes/xspector/color.css +67 -0
- package/src/theme/themes/xspector/components/action-button.css +98 -0
- package/src/theme/themes/xspector/components/loading.css +11 -0
- package/src/theme/themes/xspector/palette.css +122 -0
- package/src/theme/themes/xspector/state.css +89 -0
- package/src/theme/themes/xspector/transparent.css +68 -0
- package/src/theme/themes/xspector/typography.css +27 -0
- package/src/theme/tokens/baseline.css +10 -0
- package/src/theme/tokens/color.css +63 -0
- package/src/theme/tokens/components/action-button.css +127 -0
- package/src/theme/tokens/components/button.css +512 -0
- package/src/theme/tokens/components/loading.css +11 -0
- package/src/theme/tokens/components/navbar.css +8 -0
- package/src/theme/tokens/components/progress-bar.css +8 -0
- package/src/theme/tokens/palette.css +122 -0
- package/src/theme/tokens/state.css +82 -0
- package/src/theme/tokens/transparent.css +68 -0
- package/src/theme/tokens/typography.css +178 -0
- package/src/theme/tokens/variables.css +28 -0
- package/src/theme/utils.js +98 -0
|
@@ -4,7 +4,7 @@ export const inputVariant = cva(
|
|
|
4
4
|
[
|
|
5
5
|
"border-0 outline-none",
|
|
6
6
|
"p-1 flex w-auto box-border",
|
|
7
|
-
"peer text-
|
|
7
|
+
"peer text-input-filled-text placeholder:text-transparent bg-transparent caret-primary",
|
|
8
8
|
],
|
|
9
9
|
{
|
|
10
10
|
variants: {
|
|
@@ -15,28 +15,40 @@ export const inputVariant = cva(
|
|
|
15
15
|
},
|
|
16
16
|
rounded: {
|
|
17
17
|
none: "rounded-none",
|
|
18
|
-
normal: "rounded-
|
|
18
|
+
normal: "rounded-md",
|
|
19
19
|
full: "rounded-full",
|
|
20
20
|
},
|
|
21
21
|
variant: {
|
|
22
22
|
flat: "",
|
|
23
|
-
outline:
|
|
24
|
-
"ring-1 ring-inset ring-input-
|
|
23
|
+
outline: [
|
|
24
|
+
"ring-1 ring-inset ring-input-default-stroke",
|
|
25
|
+
"hover:ring-input-active-stroke",
|
|
26
|
+
"focus:ring-1 focus:ring-inset focus:ring-input-active-stroke",
|
|
27
|
+
],
|
|
25
28
|
underline:
|
|
26
|
-
"border-b-2 border-input-stroke transition-colors hover:border-input-stroke
|
|
29
|
+
"border-b-2 border-input-default-stroke transition-colors hover:border-input-active-stroke focus:border-input-stroke",
|
|
27
30
|
},
|
|
28
31
|
fullwidth: {
|
|
29
32
|
true: "w-full",
|
|
30
33
|
},
|
|
31
34
|
disabled: {
|
|
32
|
-
true:
|
|
35
|
+
true: [
|
|
36
|
+
"bg-input-disable-bg text-input-disable-text ring-input-disable-stroke placeholder:text-input-disable-text",
|
|
37
|
+
"hover:ring-input-disable-stroke",
|
|
38
|
+
],
|
|
33
39
|
},
|
|
34
40
|
error: {
|
|
35
|
-
true: "ring-error focus:ring-error",
|
|
41
|
+
true: "ring-input-error focus:ring-input-error",
|
|
36
42
|
},
|
|
37
43
|
hasClearIcon: {
|
|
38
44
|
true: "",
|
|
39
45
|
},
|
|
46
|
+
hasSearchIcon: {
|
|
47
|
+
false: "",
|
|
48
|
+
},
|
|
49
|
+
leftSectionIcon: {
|
|
50
|
+
false: "",
|
|
51
|
+
},
|
|
40
52
|
rightSectionIcon: {
|
|
41
53
|
false: "",
|
|
42
54
|
},
|
|
@@ -61,6 +73,36 @@ export const inputVariant = cva(
|
|
|
61
73
|
size: "lg",
|
|
62
74
|
class: "focus:pe-10",
|
|
63
75
|
},
|
|
76
|
+
{
|
|
77
|
+
hasSearchIcon: true,
|
|
78
|
+
size: "sm",
|
|
79
|
+
class: "ps-6",
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
hasSearchIcon: true,
|
|
83
|
+
size: "md",
|
|
84
|
+
class: "ps-9",
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
hasSearchIcon: true,
|
|
88
|
+
size: "lg",
|
|
89
|
+
class: "ps-11",
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
leftSectionIcon: true,
|
|
93
|
+
size: "sm",
|
|
94
|
+
class: "ps-[38px]",
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
leftSectionIcon: true,
|
|
98
|
+
size: "md",
|
|
99
|
+
class: "ps-[46px]",
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
leftSectionIcon: true,
|
|
103
|
+
size: "lg",
|
|
104
|
+
class: "ps-[72px]",
|
|
105
|
+
},
|
|
64
106
|
{
|
|
65
107
|
rightSectionIcon: true,
|
|
66
108
|
size: "sm",
|
|
@@ -85,6 +127,8 @@ export const inputVariant = cva(
|
|
|
85
127
|
disabled: false,
|
|
86
128
|
error: false,
|
|
87
129
|
hasClearIcon: false,
|
|
130
|
+
hasSearchIcon: false,
|
|
131
|
+
leftSectionIcon: false, // TODO function style
|
|
88
132
|
rightSectionIcon: false,
|
|
89
133
|
},
|
|
90
134
|
}
|
|
@@ -92,38 +136,72 @@ export const inputVariant = cva(
|
|
|
92
136
|
|
|
93
137
|
export const labelVariant = cva(
|
|
94
138
|
[
|
|
95
|
-
"absolute block duration-450 transition-all px-[2px] text-input-
|
|
139
|
+
"absolute block duration-450 transition-all px-[2px] text-input-default-text",
|
|
140
|
+
"peer-focus:text-input-filled-text peer-focus:bg-input-label-bg", // TODO bg
|
|
96
141
|
],
|
|
97
142
|
{
|
|
98
143
|
variants: {
|
|
99
144
|
size: {
|
|
100
145
|
sm: [
|
|
101
|
-
"left-3 -top-1.5 typography-label2 bg-input-label-
|
|
146
|
+
"left-3 -top-1.5 typography-label2 bg-input-label-bg",
|
|
102
147
|
"peer-placeholder-shown:top-2 peer-placeholder-shown:typography-small1 peer-placeholder-shown:bg-transparent",
|
|
103
148
|
"peer-focus:-top-1.5 peer-focus:typography-label2",
|
|
104
149
|
],
|
|
105
150
|
md: [
|
|
106
|
-
"left-3 -top-1.5 typography-label1 bg-input-label-
|
|
151
|
+
"left-3 -top-1.5 typography-label1 bg-input-label-bg",
|
|
107
152
|
"peer-placeholder-shown:top-2 peer-placeholder-shown:typography-subtitile4 peer-placeholder-shown:bg-transparent",
|
|
108
153
|
"peer-focus:-top-1.5 peer-focus:typography-label1",
|
|
109
154
|
],
|
|
110
155
|
lg: [
|
|
111
|
-
"left-4 -top-1.5 typography-label1 bg-input-label-
|
|
156
|
+
"left-4 -top-1.5 typography-label1 bg-input-label-bg",
|
|
112
157
|
"peer-placeholder-shown:top-4 peer-placeholder-shown:typography-subtitile1 peer-placeholder-shown:bg-transparent",
|
|
113
158
|
"peer-focus:-top-1.5 peer-focus:typography-label1",
|
|
114
159
|
],
|
|
115
160
|
},
|
|
116
161
|
disabled: {
|
|
117
|
-
true: "text-input-text
|
|
162
|
+
true: "text-input-default-text placeholder:text-input-default-text",
|
|
118
163
|
},
|
|
119
164
|
error: {
|
|
120
165
|
true: "ring-error",
|
|
121
166
|
},
|
|
167
|
+
hasSearchIcon: {
|
|
168
|
+
false: "",
|
|
169
|
+
},
|
|
122
170
|
},
|
|
171
|
+
compoundVariants: [
|
|
172
|
+
{
|
|
173
|
+
hasSearchIcon: true,
|
|
174
|
+
size: "sm",
|
|
175
|
+
className: [
|
|
176
|
+
"left-6 -top-1.5 typography-label2 bg-input-label-bg",
|
|
177
|
+
"peer-placeholder-shown:top-2 peer-placeholder-shown:typography-small1 peer-placeholder-shown:bg-transparent",
|
|
178
|
+
"peer-focus:-top-1.5 peer-focus:typography-label2",
|
|
179
|
+
],
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
hasSearchIcon: true,
|
|
183
|
+
size: "md",
|
|
184
|
+
className: [
|
|
185
|
+
"left-9 -top-1.5 typography-label1 bg-input-label-bg",
|
|
186
|
+
"peer-placeholder-shown:top-2 peer-placeholder-shown:typography-subtitile4 peer-placeholder-shown:bg-transparent",
|
|
187
|
+
"peer-focus:-top-1.5 peer-focus:typography-label1",
|
|
188
|
+
],
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
hasSearchIcon: true,
|
|
192
|
+
size: "lg",
|
|
193
|
+
className: [
|
|
194
|
+
"left-11 -top-1.5 typography-label1 bg-input-label-bg",
|
|
195
|
+
"peer-placeholder-shown:top-4 peer-placeholder-shown:typography-subtitile1 peer-placeholder-shown:bg-transparent",
|
|
196
|
+
"peer-focus:-top-1.5 peer-focus:typography-label1",
|
|
197
|
+
],
|
|
198
|
+
},
|
|
199
|
+
],
|
|
123
200
|
defaultVariants: {
|
|
124
201
|
size: "md",
|
|
125
202
|
disabled: false,
|
|
126
203
|
error: false,
|
|
204
|
+
hasSearchIcon: false,
|
|
127
205
|
},
|
|
128
206
|
}
|
|
129
207
|
);
|
|
@@ -138,11 +216,11 @@ export const helperTextVariant = cva(
|
|
|
138
216
|
lg: "mt-[6px]",
|
|
139
217
|
},
|
|
140
218
|
disabled: {
|
|
141
|
-
true: "text-input-text
|
|
219
|
+
true: "text-input-disable-text",
|
|
142
220
|
},
|
|
143
221
|
error: {
|
|
144
|
-
true: "text-error",
|
|
145
|
-
false: "text-input-text",
|
|
222
|
+
true: "text-input-error",
|
|
223
|
+
false: "text-input-filled-text",
|
|
146
224
|
},
|
|
147
225
|
},
|
|
148
226
|
defaultVariants: {
|
|
@@ -171,8 +249,26 @@ export const iconWrapperVariant = cva(
|
|
|
171
249
|
}
|
|
172
250
|
);
|
|
173
251
|
|
|
252
|
+
export const iconSearchWrapperVariant = cva(
|
|
253
|
+
["absolute inset-y-0 left-0 items-center justify-center flex"],
|
|
254
|
+
{
|
|
255
|
+
variants: {
|
|
256
|
+
size: {
|
|
257
|
+
sm: "ml-2",
|
|
258
|
+
md: "ml-3",
|
|
259
|
+
lg: "ml-4",
|
|
260
|
+
},
|
|
261
|
+
},
|
|
262
|
+
defaultVariants: {
|
|
263
|
+
size: "md",
|
|
264
|
+
},
|
|
265
|
+
}
|
|
266
|
+
);
|
|
267
|
+
|
|
174
268
|
export const iconVariant = cva(
|
|
175
|
-
[
|
|
269
|
+
[
|
|
270
|
+
"cursor-pointer z-50 fill-input-active-stroke hover:fill-input-default-text",
|
|
271
|
+
],
|
|
176
272
|
{
|
|
177
273
|
variants: {
|
|
178
274
|
size: {
|
|
@@ -189,9 +285,9 @@ export const iconVariant = cva(
|
|
|
189
285
|
|
|
190
286
|
export const sectionIconWrapperVariant = cva(
|
|
191
287
|
[
|
|
192
|
-
"absolute
|
|
193
|
-
"border-l border-l-input-stroke peer-hover:border-l-input-active peer-focus:border-l-input-stroke
|
|
194
|
-
"fill-input-text peer-hover:fill-input-text
|
|
288
|
+
"absolute items-center justify-center flex",
|
|
289
|
+
"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",
|
|
290
|
+
"fill-input-default-text peer-hover:fill-input-filled-text peer-focus:fill-input-filled-text peer-disabled:fill-input-disable-stroke",
|
|
195
291
|
],
|
|
196
292
|
{
|
|
197
293
|
variants: {
|
|
@@ -205,10 +301,19 @@ export const sectionIconWrapperVariant = cva(
|
|
|
205
301
|
normal: "rounded-r-xl",
|
|
206
302
|
full: "rounded-r-full",
|
|
207
303
|
},
|
|
304
|
+
error: {
|
|
305
|
+
true: "border-l-input-error",
|
|
306
|
+
},
|
|
307
|
+
position: {
|
|
308
|
+
start: "inset-y-0 left-0 ",
|
|
309
|
+
end: "inset-y-0 right-0 ",
|
|
310
|
+
},
|
|
208
311
|
},
|
|
209
312
|
defaultVariants: {
|
|
210
313
|
size: "md",
|
|
211
314
|
rounded: "normal",
|
|
315
|
+
error: false,
|
|
316
|
+
position: "end",
|
|
212
317
|
},
|
|
213
318
|
}
|
|
214
319
|
);
|
|
@@ -7,13 +7,18 @@ import React, {
|
|
|
7
7
|
} from "react";
|
|
8
8
|
import {
|
|
9
9
|
helperTextVariant,
|
|
10
|
+
iconSearchWrapperVariant,
|
|
10
11
|
iconVariant,
|
|
11
12
|
iconWrapperVariant,
|
|
12
13
|
inputVariant,
|
|
13
14
|
labelVariant,
|
|
14
15
|
sectionIconWrapperVariant,
|
|
15
16
|
} from "./TextInput.styles";
|
|
16
|
-
import {
|
|
17
|
+
import {
|
|
18
|
+
XCircleIcon,
|
|
19
|
+
ExclamationCircleIcon,
|
|
20
|
+
MagnifyingGlassIcon,
|
|
21
|
+
} from "@heroicons/react/16/solid";
|
|
17
22
|
import { cn } from "@/utils/cn";
|
|
18
23
|
|
|
19
24
|
export type InputProps = {
|
|
@@ -30,6 +35,8 @@ export type InputProps = {
|
|
|
30
35
|
error?: boolean;
|
|
31
36
|
required?: boolean;
|
|
32
37
|
hasClearIcon?: boolean;
|
|
38
|
+
hasSearchIcon?: boolean;
|
|
39
|
+
startIcon?: ReactNode;
|
|
33
40
|
endIcon?: ReactNode;
|
|
34
41
|
className?: string;
|
|
35
42
|
labelClassName?: string;
|
|
@@ -51,6 +58,8 @@ export const TextInput = forwardRef<HTMLInputElement, InputProps>(
|
|
|
51
58
|
error = false,
|
|
52
59
|
required = true,
|
|
53
60
|
hasClearIcon = true,
|
|
61
|
+
hasSearchIcon = false,
|
|
62
|
+
startIcon,
|
|
54
63
|
endIcon,
|
|
55
64
|
labelClassName,
|
|
56
65
|
...props
|
|
@@ -59,6 +68,7 @@ export const TextInput = forwardRef<HTMLInputElement, InputProps>(
|
|
|
59
68
|
) => {
|
|
60
69
|
const inputRef = useRef<HTMLInputElement>(null);
|
|
61
70
|
const _id = id || `${type}-${label}-input`;
|
|
71
|
+
const hasLeftSectionIcon = !!startIcon;
|
|
62
72
|
const hasRightSectionIcon = !!endIcon;
|
|
63
73
|
const inputClassname = inputVariant({
|
|
64
74
|
size,
|
|
@@ -67,20 +77,26 @@ export const TextInput = forwardRef<HTMLInputElement, InputProps>(
|
|
|
67
77
|
fullwidth,
|
|
68
78
|
disabled,
|
|
69
79
|
error,
|
|
80
|
+
hasSearchIcon,
|
|
70
81
|
hasClearIcon: hasRightSectionIcon ? false : hasClearIcon,
|
|
82
|
+
leftSectionIcon: hasLeftSectionIcon,
|
|
71
83
|
rightSectionIcon: hasRightSectionIcon,
|
|
72
84
|
});
|
|
73
85
|
const labelClassname = labelVariant({
|
|
74
86
|
size,
|
|
75
87
|
disabled,
|
|
76
88
|
error,
|
|
89
|
+
hasSearchIcon,
|
|
77
90
|
});
|
|
78
91
|
const helperTextClassname = helperTextVariant({ size, error, disabled });
|
|
79
92
|
const iconWrapperClassname = iconWrapperVariant({ size });
|
|
93
|
+
const iconSearchWrapperClassname = iconSearchWrapperVariant({ size });
|
|
80
94
|
const iconClassname = iconVariant({ size });
|
|
81
|
-
|
|
95
|
+
// TODO startIcon
|
|
96
|
+
const endIconWrapperClassname = sectionIconWrapperVariant({
|
|
82
97
|
size,
|
|
83
98
|
rounded,
|
|
99
|
+
error,
|
|
84
100
|
});
|
|
85
101
|
|
|
86
102
|
useImperativeHandle(ref, () => inputRef?.current as HTMLInputElement);
|
|
@@ -94,6 +110,11 @@ export const TextInput = forwardRef<HTMLInputElement, InputProps>(
|
|
|
94
110
|
return (
|
|
95
111
|
<div className={`inline-flex flex-col ${fullwidth ? "w-full" : ""}`}>
|
|
96
112
|
<div className="relative">
|
|
113
|
+
{hasSearchIcon && (
|
|
114
|
+
<div className={iconSearchWrapperClassname}>
|
|
115
|
+
<MagnifyingGlassIcon className={iconClassname} />
|
|
116
|
+
</div>
|
|
117
|
+
)}
|
|
97
118
|
<input
|
|
98
119
|
{...props}
|
|
99
120
|
placeholder=" "
|
|
@@ -113,11 +134,20 @@ export const TextInput = forwardRef<HTMLInputElement, InputProps>(
|
|
|
113
134
|
</div>
|
|
114
135
|
)}
|
|
115
136
|
{hasRightSectionIcon && (
|
|
116
|
-
<div className={
|
|
137
|
+
<div className={endIconWrapperClassname}>{endIcon}</div>
|
|
117
138
|
)}
|
|
118
139
|
|
|
119
140
|
<label htmlFor={_id} className={cn(labelClassname, labelClassName)}>
|
|
120
|
-
{label}
|
|
141
|
+
{label}{" "}
|
|
142
|
+
{required && (
|
|
143
|
+
<span
|
|
144
|
+
className={cn("text-error", {
|
|
145
|
+
"text-input-disable-text": disabled,
|
|
146
|
+
})}
|
|
147
|
+
>
|
|
148
|
+
*
|
|
149
|
+
</span>
|
|
150
|
+
)}
|
|
121
151
|
</label>
|
|
122
152
|
</div>
|
|
123
153
|
{(errorMessage || helperText) && (
|
package/src/index.ts
CHANGED
|
@@ -20,10 +20,13 @@ export {
|
|
|
20
20
|
PopoverTrigger,
|
|
21
21
|
PopoverContent,
|
|
22
22
|
} from "./components/Popover/Popover";
|
|
23
|
+
export { default as Loading } from "./components/Loading/Loading";
|
|
24
|
+
export { default as ProgressBar } from "./components/ProgressBar/ProgressBar";
|
|
23
25
|
export * from "./components/Table/Table";
|
|
24
26
|
export * from "./components/DataTable/DataTable";
|
|
25
27
|
export * from "./components/Dialog/Dialog";
|
|
26
28
|
export * from "./components/AlertDialog/AlertDialog";
|
|
29
|
+
export * from "./components/Search/Search";
|
|
27
30
|
|
|
28
31
|
// Export component types
|
|
29
32
|
export type { ButtonProps } from "./components/Button/Button";
|