next-helios-fe 1.6.25 → 1.6.26

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 (34) hide show
  1. package/dist/components/form/input/color.d.ts +2 -1
  2. package/dist/components/form/input/date.d.ts +1 -0
  3. package/dist/components/form/input/email.d.ts +2 -1
  4. package/dist/components/form/input/file.d.ts +2 -1
  5. package/dist/components/form/input/number.d.ts +2 -1
  6. package/dist/components/form/input/password.d.ts +2 -1
  7. package/dist/components/form/input/range.d.ts +3 -2
  8. package/dist/components/form/input/text.d.ts +2 -1
  9. package/dist/components/form/input/time.d.ts +2 -1
  10. package/dist/components/form/other/autocomplete.d.ts +6 -5
  11. package/dist/components/form/other/multipleSelect.d.ts +6 -5
  12. package/dist/components/form/other/phoneNumber.d.ts +2 -1
  13. package/dist/components/form/other/pin.d.ts +2 -1
  14. package/dist/components/form/other/secret.d.ts +2 -1
  15. package/dist/components/form/other/select.d.ts +6 -5
  16. package/dist/components/form/other/textarea.d.ts +2 -1
  17. package/dist/index.js +1 -1
  18. package/package.json +1 -1
  19. package/src/components/form/input/color.tsx +20 -10
  20. package/src/components/form/input/date.tsx +24 -11
  21. package/src/components/form/input/email.tsx +33 -11
  22. package/src/components/form/input/file.tsx +34 -11
  23. package/src/components/form/input/number.tsx +33 -11
  24. package/src/components/form/input/password.tsx +27 -10
  25. package/src/components/form/input/range.tsx +34 -16
  26. package/src/components/form/input/text.tsx +33 -11
  27. package/src/components/form/input/time.tsx +25 -12
  28. package/src/components/form/other/autocomplete.tsx +27 -17
  29. package/src/components/form/other/multipleSelect.tsx +26 -16
  30. package/src/components/form/other/phoneNumber.tsx +21 -10
  31. package/src/components/form/other/pin.tsx +21 -10
  32. package/src/components/form/other/secret.tsx +20 -10
  33. package/src/components/form/other/select.tsx +24 -15
  34. package/src/components/form/other/textarea.tsx +28 -10
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "next-helios-fe",
3
- "version": "1.6.25",
3
+ "version": "1.6.26",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -4,17 +4,19 @@ import { Icon } from "@iconify/react";
4
4
 
5
5
  export interface ColorProps
6
6
  extends React.InputHTMLAttributes<HTMLInputElement> {
7
+ label?: string;
8
+ description?: string;
7
9
  options?: {
8
10
  width?: "full" | "fit";
9
11
  height?: "short" | "medium" | "high";
10
12
  };
11
- label?: string;
12
13
  onClipboardClick?: (value: string) => void;
13
14
  }
14
15
 
15
16
  export const Color: React.FC<ColorProps> = ({
16
17
  options,
17
18
  label,
19
+ description,
18
20
  onClipboardClick,
19
21
  ...rest
20
22
  }) => {
@@ -47,15 +49,23 @@ export const Color: React.FC<ColorProps> = ({
47
49
 
48
50
  return (
49
51
  <label className={`grid gap-2 ${width}`}>
50
- {label && (
51
- <span
52
- className={`text-sm select-none ${
53
- rest.required && "after:content-['*'] after:ml-1 after:text-danger"
54
- }`}
55
- >
56
- {label}
57
- </span>
58
- )}
52
+ <div className="flex justify-between items-center">
53
+ {label && (
54
+ <span
55
+ className={`text-sm select-none ${
56
+ rest.required &&
57
+ "after:content-['*'] after:ml-1 after:text-danger"
58
+ }`}
59
+ >
60
+ {label}
61
+ </span>
62
+ )}
63
+ {description && (
64
+ <span title={description} className="text-sm text-primary-dark">
65
+ <Icon icon="octicon:info-16" />
66
+ </span>
67
+ )}
68
+ </div>
59
69
  <div className="flex gap-4">
60
70
  <div className="relative flex flex-col">
61
71
  <button
@@ -6,6 +6,7 @@ import dayjs from "dayjs";
6
6
 
7
7
  export interface DateProps extends React.InputHTMLAttributes<HTMLInputElement> {
8
8
  label?: string;
9
+ description?: string;
9
10
  options?: {
10
11
  enableSelectRange?: boolean;
11
12
  width?: "full" | "fit";
@@ -13,7 +14,12 @@ export interface DateProps extends React.InputHTMLAttributes<HTMLInputElement> {
13
14
  };
14
15
  }
15
16
 
16
- export const Date: React.FC<DateProps> = ({ options, label, ...rest }) => {
17
+ export const Date: React.FC<DateProps> = ({
18
+ options,
19
+ label,
20
+ description,
21
+ ...rest
22
+ }) => {
17
23
  const [tempValue, setTempValue] = useState<any>([
18
24
  dayjs().startOf("day"),
19
25
  dayjs().endOf("day"),
@@ -40,16 +46,23 @@ export const Date: React.FC<DateProps> = ({ options, label, ...rest }) => {
40
46
  return (
41
47
  <div className="flex items-end">
42
48
  <label className={`grid gap-2 ${width}`}>
43
- {label && (
44
- <span
45
- className={`text-sm select-none ${
46
- rest.required &&
47
- "after:content-['*'] after:ml-1 after:text-danger"
48
- }`}
49
- >
50
- {label}
51
- </span>
52
- )}
49
+ <div className="flex justify-between items-center">
50
+ {label && (
51
+ <span
52
+ className={`text-sm select-none ${
53
+ rest.required &&
54
+ "after:content-['*'] after:ml-1 after:text-danger"
55
+ }`}
56
+ >
57
+ {label}
58
+ </span>
59
+ )}
60
+ {description && (
61
+ <span title={description} className="text-sm text-primary-dark">
62
+ <Icon icon="octicon:info-16" />
63
+ </span>
64
+ )}
65
+ </div>
53
66
  <div className="relative flex items-center">
54
67
  <input
55
68
  type="text"
@@ -1,16 +1,23 @@
1
1
  "use client";
2
2
  import React from "react";
3
+ import { Icon } from "@iconify/react";
3
4
 
4
5
  export interface EmailProps
5
6
  extends React.InputHTMLAttributes<HTMLInputElement> {
7
+ label?: string;
8
+ description?: string;
6
9
  options?: {
7
10
  width?: "full" | "fit";
8
11
  height?: "short" | "medium" | "high";
9
12
  };
10
- label?: string;
11
13
  }
12
14
 
13
- export const Email: React.FC<EmailProps> = ({ options, label, ...rest }) => {
15
+ export const Email: React.FC<EmailProps> = ({
16
+ options,
17
+ label,
18
+ description,
19
+ ...rest
20
+ }) => {
14
21
  const width = options?.width === "fit" ? "w-fit" : "w-full";
15
22
  const height =
16
23
  options?.height === "short"
@@ -21,15 +28,30 @@ export const Email: React.FC<EmailProps> = ({ options, label, ...rest }) => {
21
28
 
22
29
  return (
23
30
  <label className={`grid gap-2 ${width}`}>
24
- {label && (
25
- <span
26
- className={`text-sm select-none ${
27
- rest.required && "after:content-['*'] after:ml-1 after:text-danger"
28
- }`}
29
- >
30
- {label}
31
- </span>
32
- )}
31
+ <div className="flex justify-between">
32
+ {label && (
33
+ <span
34
+ className={`text-sm select-none ${
35
+ rest.required &&
36
+ "after:content-['*'] after:ml-1 after:text-danger"
37
+ }`}
38
+ >
39
+ {label}
40
+ </span>
41
+ )}
42
+ <div className="flex items-center gap-2">
43
+ {(rest.minLength || rest.maxLength) && (
44
+ <span className="text-sm select-none">
45
+ {rest.minLength || 0}/{rest.maxLength || "∞"}
46
+ </span>
47
+ )}
48
+ {description && (
49
+ <span title={description} className="text-sm text-primary-dark">
50
+ <Icon icon="octicon:info-16" />
51
+ </span>
52
+ )}
53
+ </div>
54
+ </div>
33
55
  <input
34
56
  type="email"
35
57
  className={`w-full px-4 border-default border rounded-md bg-secondary-bg placeholder:duration-300 placeholder:translate-x-0 focus:placeholder:translate-x-1 placeholder:text-slate-300 focus:outline-none focus:ring-1 focus:ring-primary focus:shadow focus:shadow-primary focus:border-primary-dark disabled:bg-secondary-light disabled:text-slate-400 ${height}`}
@@ -3,6 +3,8 @@ import React, { useState, useEffect, useRef } from "react";
3
3
  import { Icon } from "@iconify/react";
4
4
 
5
5
  export interface FileProps extends React.InputHTMLAttributes<HTMLInputElement> {
6
+ label?: string;
7
+ description?: string;
6
8
  options?: {
7
9
  variant?: "basic" | "drag&drop";
8
10
  buttonVariant?: "basic" | "button";
@@ -11,14 +13,14 @@ export interface FileProps extends React.InputHTMLAttributes<HTMLInputElement> {
11
13
  width?: "full" | "fit";
12
14
  height?: "short" | "medium" | "high";
13
15
  };
14
- label?: string;
15
16
  defaultValue?: any[];
16
17
  value?: any[];
17
18
  }
18
19
 
19
20
  export const File: React.FC<FileProps> = ({
20
- options,
21
21
  label,
22
+ description,
23
+ options,
22
24
  defaultValue,
23
25
  value,
24
26
  ...rest
@@ -54,16 +56,37 @@ export const File: React.FC<FileProps> = ({
54
56
 
55
57
  return (
56
58
  <label className={`grid gap-2 ${width}`}>
57
- {label && (
58
- <span
59
- className={`text-sm select-none ${
60
- rest.required && "after:content-['*'] after:ml-1 after:text-danger"
61
- }`}
62
- >
63
- {label}
64
- </span>
59
+ {!options?.buttonOnly && (
60
+ <div className="flex justify-between">
61
+ {label && (
62
+ <span
63
+ className={`text-sm select-none ${
64
+ rest.required &&
65
+ "after:content-['*'] after:ml-1 after:text-danger"
66
+ }`}
67
+ >
68
+ {label}
69
+ </span>
70
+ )}
71
+ <div className="flex items-center gap-2">
72
+ {options?.variant !== "drag&drop" && options?.maxSizeInMb && (
73
+ <span className="text-sm select-none">
74
+ {options?.maxSizeInMb} MB
75
+ </span>
76
+ )}
77
+ {description && (
78
+ <span title={description} className="text-sm text-primary-dark">
79
+ <Icon icon="octicon:info-16" />
80
+ </span>
81
+ )}
82
+ </div>
83
+ </div>
65
84
  )}
66
- <div className="flex flex-row-reverse items-center gap-4">
85
+ <div
86
+ className={`flex items-center gap-4 ${
87
+ !options?.buttonOnly && "flex-row-reverse"
88
+ }`}
89
+ >
67
90
  {options?.variant !== "drag&drop" ? (
68
91
  <div
69
92
  className={`relative flex-1 items-center ${
@@ -4,14 +4,20 @@ import { Icon } from "@iconify/react";
4
4
 
5
5
  export interface NumberProps
6
6
  extends React.InputHTMLAttributes<HTMLInputElement> {
7
+ label?: string;
8
+ description?: string;
7
9
  options?: {
8
10
  width?: "full" | "fit";
9
11
  height?: "short" | "medium" | "high";
10
12
  };
11
- label?: string;
12
13
  }
13
14
 
14
- export const Number: React.FC<NumberProps> = ({ options, label, ...rest }) => {
15
+ export const Number: React.FC<NumberProps> = ({
16
+ options,
17
+ label,
18
+ description,
19
+ ...rest
20
+ }) => {
15
21
  const inputRef = useRef<HTMLInputElement>(null);
16
22
  const width = options?.width === "fit" ? "w-fit" : "w-full";
17
23
  const height =
@@ -23,15 +29,31 @@ export const Number: React.FC<NumberProps> = ({ options, label, ...rest }) => {
23
29
 
24
30
  return (
25
31
  <label className={`grid gap-2 ${width}`}>
26
- {label && (
27
- <span
28
- className={`text-sm select-none ${
29
- rest.required && "after:content-['*'] after:ml-1 after:text-danger"
30
- }`}
31
- >
32
- {label}
33
- </span>
34
- )}
32
+ <div className="flex justify-between">
33
+ {label && (
34
+ <span
35
+ className={`text-sm select-none ${
36
+ rest.required &&
37
+ "after:content-['*'] after:ml-1 after:text-danger"
38
+ }`}
39
+ >
40
+ {label}
41
+ </span>
42
+ )}
43
+ <div className="flex items-center gap-2">
44
+ {(rest.min || rest.max) && (
45
+ <span className="text-sm select-none">
46
+ {rest.min || rest.min === 0 ? rest.min : "∞"}/
47
+ {rest.max || rest.max === 0 ? rest.max : "∞"}
48
+ </span>
49
+ )}
50
+ {description && (
51
+ <span title={description} className="text-sm text-primary-dark">
52
+ <Icon icon="octicon:info-16" />
53
+ </span>
54
+ )}
55
+ </div>
56
+ </div>
35
57
  <div className="relative flex items-center">
36
58
  <input
37
59
  ref={inputRef}
@@ -4,16 +4,18 @@ import { Icon } from "@iconify/react";
4
4
 
5
5
  export interface PasswordProps
6
6
  extends React.InputHTMLAttributes<HTMLInputElement> {
7
+ label?: string;
8
+ description?: string;
7
9
  options?: {
8
10
  width?: "full" | "fit";
9
11
  height?: "short" | "medium" | "high";
10
12
  };
11
- label?: string;
12
13
  }
13
14
 
14
15
  export const Password: React.FC<PasswordProps> = ({
15
16
  options,
16
17
  label,
18
+ description,
17
19
  ...rest
18
20
  }) => {
19
21
  const [show, setShow] = useState(false);
@@ -27,15 +29,30 @@ export const Password: React.FC<PasswordProps> = ({
27
29
 
28
30
  return (
29
31
  <label className={`grid gap-2 ${width}`}>
30
- {label && (
31
- <span
32
- className={`text-sm select-none ${
33
- rest.required && "after:content-['*'] after:ml-1 after:text-danger"
34
- }`}
35
- >
36
- {label}
37
- </span>
38
- )}
32
+ <div className="flex justify-between">
33
+ {label && (
34
+ <span
35
+ className={`text-sm select-none ${
36
+ rest.required &&
37
+ "after:content-['*'] after:ml-1 after:text-danger"
38
+ }`}
39
+ >
40
+ {label}
41
+ </span>
42
+ )}
43
+ <div className="flex items-center gap-2">
44
+ {(rest.minLength || rest.maxLength) && (
45
+ <span className="text-sm select-none">
46
+ {rest.minLength || 0}/{rest.maxLength || "∞"}
47
+ </span>
48
+ )}
49
+ {description && (
50
+ <span title={description} className="text-sm text-primary-dark">
51
+ <Icon icon="octicon:info-16" />
52
+ </span>
53
+ )}
54
+ </div>
55
+ </div>
39
56
  <div className="relative flex items-center">
40
57
  <input
41
58
  type={show ? "text" : "password"}
@@ -1,36 +1,56 @@
1
1
  "use client";
2
- import React from "react";
2
+ import React, { useRef } from "react";
3
+ import { Icon } from "@iconify/react";
3
4
 
4
5
  export interface RangeProps
5
6
  extends React.InputHTMLAttributes<HTMLInputElement> {
7
+ label?: string;
8
+ description?: string;
9
+ theme?: string;
6
10
  options?: {
7
11
  width?: "full" | "fit";
8
12
  };
9
- label?: string;
10
- theme?: string;
11
13
  }
12
14
 
13
15
  export const Range: React.FC<RangeProps> = ({
14
16
  options,
15
17
  label,
18
+ description,
16
19
  theme,
17
20
  ...rest
18
21
  }) => {
22
+ const inputRef = useRef<HTMLInputElement>(null);
19
23
  const width = options?.width === "fit" ? "w-fit" : "w-full";
20
24
 
21
25
  return (
22
26
  <label className={`grid gap-2 ${width}`}>
23
- {label && (
24
- <span
25
- className={`text-sm select-none ${
26
- rest.required && "after:content-['*'] after:ml-1 after:text-danger"
27
- }`}
28
- >
29
- {label}
30
- </span>
31
- )}
27
+ <div className="flex justify-between">
28
+ {label && (
29
+ <span
30
+ className={`text-sm select-none ${
31
+ rest.required &&
32
+ "after:content-['*'] after:ml-1 after:text-danger"
33
+ }`}
34
+ >
35
+ {label}
36
+ </span>
37
+ )}
38
+ <div className="flex items-center gap-2">
39
+ {(rest.min || rest.max) && (
40
+ <span className="text-sm select-none">
41
+ {rest.min || 0}/{rest.max || 100}
42
+ </span>
43
+ )}
44
+ {description && (
45
+ <span title={description} className="text-sm text-primary-dark">
46
+ <Icon icon="octicon:info-16" />
47
+ </span>
48
+ )}
49
+ </div>
50
+ </div>
32
51
  <div className="flex gap-2">
33
52
  <input
53
+ ref={inputRef}
34
54
  type="range"
35
55
  className={`flex-1 border-default border cursor-pointer accent-primary focus:outline-none focus:ring-0 focus:ring-offset-0 disabled:accent-secondary-dark disabled:cursor-default ${
36
56
  theme && "border-0"
@@ -38,10 +58,8 @@ export const Range: React.FC<RangeProps> = ({
38
58
  style={{ accentColor: theme }}
39
59
  {...rest}
40
60
  />
41
- {(rest.value || rest.defaultValue) && (
42
- <span className="w-7 text-right">
43
- {rest.value || rest.defaultValue}
44
- </span>
61
+ {inputRef.current?.value && (
62
+ <span className="w-7 text-right">{inputRef.current?.value}</span>
45
63
  )}
46
64
  </div>
47
65
  </label>
@@ -1,15 +1,22 @@
1
1
  "use client";
2
2
  import React from "react";
3
+ import { Icon } from "@iconify/react";
3
4
 
4
5
  export interface TextProps extends React.InputHTMLAttributes<HTMLInputElement> {
6
+ label?: string;
7
+ description?: string;
5
8
  options?: {
6
9
  width?: "full" | "fit";
7
10
  height?: "short" | "medium" | "high";
8
11
  };
9
- label?: string;
10
12
  }
11
13
 
12
- export const Text: React.FC<TextProps> = ({ options, label, ...rest }) => {
14
+ export const Text: React.FC<TextProps> = ({
15
+ options,
16
+ label,
17
+ description,
18
+ ...rest
19
+ }) => {
13
20
  const width = options?.width === "fit" ? "w-fit" : "w-full";
14
21
  const height =
15
22
  options?.height === "short"
@@ -20,15 +27,30 @@ export const Text: React.FC<TextProps> = ({ options, label, ...rest }) => {
20
27
 
21
28
  return (
22
29
  <label className={`grid gap-2 ${width}`}>
23
- {label && (
24
- <span
25
- className={`text-sm select-none ${
26
- rest.required && "after:content-['*'] after:ml-1 after:text-danger"
27
- }`}
28
- >
29
- {label}
30
- </span>
31
- )}
30
+ <div className="flex justify-between">
31
+ {label && (
32
+ <span
33
+ className={`text-sm select-none ${
34
+ rest.required &&
35
+ "after:content-['*'] after:ml-1 after:text-danger"
36
+ }`}
37
+ >
38
+ {label}
39
+ </span>
40
+ )}
41
+ <div className="flex items-center gap-2">
42
+ {(rest.minLength || rest.maxLength) && (
43
+ <span className="text-sm select-none">
44
+ {rest.minLength || 0}/{rest.maxLength || "∞"}
45
+ </span>
46
+ )}
47
+ {description && (
48
+ <span title={description} className="text-sm text-primary-dark">
49
+ <Icon icon="octicon:info-16" />
50
+ </span>
51
+ )}
52
+ </div>
53
+ </div>
32
54
  <input
33
55
  type="text"
34
56
  className={`w-full px-4 border-default border rounded-md bg-secondary-bg placeholder:duration-300 placeholder:translate-x-0 focus:placeholder:translate-x-1 placeholder:text-slate-300 focus:outline-none focus:ring-1 focus:ring-primary focus:shadow focus:shadow-primary focus:border-primary-dark disabled:bg-secondary-light disabled:text-slate-400 ${height}`}
@@ -5,14 +5,20 @@ import { Icon } from "@iconify/react";
5
5
  import dayjs from "dayjs";
6
6
 
7
7
  export interface TimeProps extends React.InputHTMLAttributes<HTMLInputElement> {
8
+ label?: string;
9
+ description?: string;
8
10
  options?: {
9
11
  width?: "full" | "fit";
10
12
  height?: "short" | "medium" | "high";
11
13
  };
12
- label?: string;
13
14
  }
14
15
 
15
- export const Time: React.FC<TimeProps> = ({ options, label, ...rest }) => {
16
+ export const Time: React.FC<TimeProps> = ({
17
+ options,
18
+ label,
19
+ description,
20
+ ...rest
21
+ }) => {
16
22
  const [tempValue, setTempValue] = useState(dayjs().format("hh:mm a"));
17
23
  const dropdownRef = useRef<HTMLButtonElement>(null);
18
24
  const hoursRef = useRef<HTMLDivElement>(null);
@@ -145,16 +151,23 @@ export const Time: React.FC<TimeProps> = ({ options, label, ...rest }) => {
145
151
  return (
146
152
  <div className="flex items-end">
147
153
  <label className={`grid gap-2 ${width}`}>
148
- {label && (
149
- <span
150
- className={`text-sm select-none ${
151
- rest.required &&
152
- "after:content-['*'] after:ml-1 after:text-danger"
153
- }`}
154
- >
155
- {label}
156
- </span>
157
- )}
154
+ <div className="flex justify-between items-center">
155
+ {label && (
156
+ <span
157
+ className={`text-sm select-none ${
158
+ rest.required &&
159
+ "after:content-['*'] after:ml-1 after:text-danger"
160
+ }`}
161
+ >
162
+ {label}
163
+ </span>
164
+ )}
165
+ {description && (
166
+ <span title={description} className="text-sm text-primary-dark">
167
+ <Icon icon="octicon:info-16" />
168
+ </span>
169
+ )}
170
+ </div>
158
171
  <div className="relative flex items-center">
159
172
  <input
160
173
  type="text"
@@ -1,28 +1,30 @@
1
1
  "use client";
2
2
  import React, { useState, useEffect, useRef } from "react";
3
- import { Icon } from "@iconify/react";
4
3
  import { createPortal } from "react-dom";
4
+ import { Icon } from "@iconify/react";
5
5
 
6
6
  export interface AutocompleteProps
7
7
  extends React.SelectHTMLAttributes<HTMLSelectElement> {
8
- options?: {
9
- width?: "full" | "fit";
10
- height?: "short" | "medium" | "high";
11
- };
12
- label?: string;
13
8
  menus: {
14
9
  label: string;
15
10
  value: string;
16
11
  [key: string]: any;
17
12
  }[];
13
+ label?: string;
18
14
  placeholder?: string;
15
+ description?: string;
16
+ options?: {
17
+ width?: "full" | "fit";
18
+ height?: "short" | "medium" | "high";
19
+ };
19
20
  }
20
21
 
21
22
  export const Autocomplete: React.FC<AutocompleteProps> = ({
22
- options,
23
- label,
24
23
  menus,
24
+ label,
25
25
  placeholder,
26
+ description,
27
+ options,
26
28
  ...rest
27
29
  }) => {
28
30
  const [tempValue, setTempValue] = useState("");
@@ -116,15 +118,23 @@ export const Autocomplete: React.FC<AutocompleteProps> = ({
116
118
 
117
119
  return (
118
120
  <label className={`grid gap-2 ${width}`}>
119
- {label && (
120
- <span
121
- className={`text-sm select-none ${
122
- rest.required && "after:content-['*'] after:ml-1 after:text-danger"
123
- }`}
124
- >
125
- {label}
126
- </span>
127
- )}
121
+ <div className="flex justify-between items-center">
122
+ {label && (
123
+ <span
124
+ className={`text-sm select-none ${
125
+ rest.required &&
126
+ "after:content-['*'] after:ml-1 after:text-danger"
127
+ }`}
128
+ >
129
+ {label}
130
+ </span>
131
+ )}
132
+ {description && (
133
+ <span title={description} className="text-sm text-primary-dark">
134
+ <Icon icon="octicon:info-16" />
135
+ </span>
136
+ )}
137
+ </div>
128
138
  <div className="relative" ref={triggerRef}>
129
139
  <div
130
140
  className="relative flex items-center cursor-pointer"