pixel-react 1.1.1 → 1.1.3

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 (99) hide show
  1. package/.yarn/install-state.gz +0 -0
  2. package/lib/components/Charts/DashboardDonutChart/DashboardDonutChart.d.ts +5 -0
  3. package/lib/components/Charts/DashboardDonutChart/DashboardDonutChart.stories.d.ts +7 -0
  4. package/lib/components/Charts/DashboardDonutChart/index.d.ts +1 -0
  5. package/lib/components/Charts/DashboardDonutChart/types.d.ts +21 -0
  6. package/lib/components/Charts/PieChart/PieChart.d.ts +5 -0
  7. package/lib/components/Charts/PieChart/PieChart.stories.d.ts +7 -0
  8. package/lib/components/Charts/PieChart/index.d.ts +1 -0
  9. package/lib/components/Charts/PieChart/types.d.ts +27 -0
  10. package/lib/components/MultiSelect/MultiSelect.d.ts +1 -1
  11. package/lib/components/MultiSelect/MultiSelectTypes.d.ts +1 -1
  12. package/lib/components/NLPInput/NlpInput.d.ts +4 -0
  13. package/lib/components/NLPInput/NlpInput.stories.d.ts +7 -0
  14. package/lib/components/NLPInput/components/NlpDropDown/NlpDropDownType.d.ts +19 -0
  15. package/lib/components/NLPInput/components/NlpDropDown/NlpDropdown.d.ts +4 -0
  16. package/lib/components/NLPInput/index.d.ts +1 -0
  17. package/lib/components/NLPInput/type.d.ts +70 -0
  18. package/lib/components/Paper/Paper.d.ts +4 -0
  19. package/lib/components/Paper/Paper.stories.d.ts +11 -0
  20. package/lib/components/Paper/index.d.ts +1 -0
  21. package/lib/components/Paper/types.d.ts +15 -0
  22. package/lib/components/Table/Table.d.ts +1 -1
  23. package/lib/components/VariableInput/VariableInput.d.ts +4 -0
  24. package/lib/components/VariableInput/VariableInput.stories.d.ts +6 -0
  25. package/lib/components/VariableInput/index.d.ts +1 -0
  26. package/lib/components/VariableInput/types.d.ts +53 -0
  27. package/lib/index.css +404 -0
  28. package/lib/index.d.ts +187 -18
  29. package/lib/index.esm.css +404 -0
  30. package/lib/index.esm.js +7040 -762
  31. package/lib/index.esm.js.map +1 -1
  32. package/lib/index.js +7052 -761
  33. package/lib/index.js.map +1 -1
  34. package/lib/tsconfig.tsbuildinfo +1 -1
  35. package/lib/utils/ffID/ffID.stories.d.ts +1 -1
  36. package/lib/utils/ffID/ffid.d.ts +1 -2
  37. package/lib/utils/findAndInsert/findAndInsert.d.ts +7 -0
  38. package/lib/utils/findAndInsert/findAndInsert.stories.d.ts +7 -0
  39. package/lib/utils/getEncryptedData/getEncryptedData.d.ts +1 -0
  40. package/lib/utils/getEncryptedData/getEncryptedData.stories.d.ts +6 -0
  41. package/package.json +2 -1
  42. package/rollup.config.mjs +8 -2
  43. package/src/StyleGuide/ColorPalette/ColorPalette.tsx +2 -4
  44. package/src/StyleGuide/ColorPalette/colorPaletteList.ts +95 -20
  45. package/src/assets/Themes/BaseTheme.scss +4 -3
  46. package/src/assets/Themes/DarkTheme.scss +11 -8
  47. package/src/assets/icons/wswb_delete_icon.svg +4 -0
  48. package/src/assets/icons/wswb_plus_icon.svg +5 -0
  49. package/src/components/AllProjectsDropdown/AllProjectsDropdown.tsx +1 -1
  50. package/src/components/Button/index.ts +1 -1
  51. package/src/components/Charts/DashboardDonutChart/DashboardDonutChart.scss +145 -0
  52. package/src/components/Charts/DashboardDonutChart/DashboardDonutChart.stories.tsx +52 -0
  53. package/src/components/Charts/DashboardDonutChart/DashboardDonutChart.tsx +335 -0
  54. package/src/components/Charts/DashboardDonutChart/index.ts +1 -0
  55. package/src/components/Charts/DashboardDonutChart/types.ts +33 -0
  56. package/src/components/Charts/PieChart/PieChart.scss +39 -0
  57. package/src/components/Charts/PieChart/PieChart.stories.tsx +46 -0
  58. package/src/components/Charts/PieChart/PieChart.tsx +193 -0
  59. package/src/components/Charts/PieChart/index.ts +1 -0
  60. package/src/components/Charts/PieChart/types.ts +28 -0
  61. package/src/components/Icon/iconList.ts +6 -0
  62. package/src/components/Modal/modal.scss +1 -1
  63. package/src/components/MultiSelect/MultiSelect.stories.tsx +2 -3
  64. package/src/components/MultiSelect/MultiSelect.tsx +35 -23
  65. package/src/components/MultiSelect/MultiSelectTypes.ts +1 -1
  66. package/src/components/NLPInput/NLPInput.scss +246 -0
  67. package/src/components/NLPInput/NlpInput.stories.tsx +136 -0
  68. package/src/components/NLPInput/NlpInput.tsx +374 -0
  69. package/src/components/NLPInput/components/NlpDropDown/NlpDropDownType.ts +60 -0
  70. package/src/components/NLPInput/components/NlpDropDown/NlpDropdown.scss +83 -0
  71. package/src/components/NLPInput/components/NlpDropDown/NlpDropdown.tsx +180 -0
  72. package/src/components/NLPInput/index.ts +1 -0
  73. package/src/components/NLPInput/type.tsx +124 -0
  74. package/src/components/Paper/Paper.scss +13 -0
  75. package/src/components/Paper/Paper.stories.tsx +77 -0
  76. package/src/components/Paper/Paper.tsx +14 -0
  77. package/src/components/Paper/index.ts +1 -0
  78. package/src/components/Paper/types.ts +19 -0
  79. package/src/components/Select/components/Dropdown/Dropdown.tsx +1 -1
  80. package/src/components/Table/Table.scss +5 -0
  81. package/src/components/Table/Table.stories.tsx +12 -0
  82. package/src/components/Table/Table.tsx +25 -14
  83. package/src/components/TextArea/Textarea.scss +1 -1
  84. package/src/components/VariableInput/VariableInput.scss +128 -0
  85. package/src/components/VariableInput/VariableInput.stories.tsx +32 -0
  86. package/src/components/VariableInput/VariableInput.tsx +352 -0
  87. package/src/components/VariableInput/index.ts +1 -0
  88. package/src/components/VariableInput/types.ts +56 -0
  89. package/src/index.ts +32 -2
  90. package/src/utils/ffID/ffID.stories.tsx +1 -1
  91. package/src/utils/ffID/ffid.ts +1 -3
  92. package/src/utils/getEncryptedData/getEncryptedData.stories.tsx +55 -0
  93. package/src/utils/getEncryptedData/getEncryptedData.ts +8 -0
  94. package/lib/components/AddButton/AddButton.d.ts +0 -5
  95. package/lib/components/AddButton/AddButton.stories.d.ts +0 -6
  96. package/lib/components/AddButton/index.d.ts +0 -1
  97. package/lib/components/AddButton/types.d.ts +0 -4
  98. /package/src/utils/{find → findAndInsert}/findAndInsert.stories.tsx +0 -0
  99. /package/src/utils/{find → findAndInsert}/findAndInsert.ts +0 -0
@@ -0,0 +1,124 @@
1
+ import { ReactNode } from 'react';
2
+
3
+ export interface SelectProps {
4
+ /*
5
+ * Label for the NLP NLP select dropdown
6
+ */
7
+ label?: string;
8
+
9
+ /*
10
+ * If true, the NLP select dropdown will have a label
11
+ */
12
+ showLabel?: boolean;
13
+
14
+ /*
15
+ * Options for the NLP select dropdown
16
+ */
17
+ optionsList: any[];
18
+
19
+ /*
20
+ * Selected option for the NLP select dropdown
21
+ */
22
+ selectedOption?: Option;
23
+
24
+ /*
25
+ * onChange callback function for handling selected option changes
26
+ */
27
+ onChange: (option: Option) => void;
28
+
29
+ /*
30
+ * If error is true, this message will be displayed
31
+ */
32
+ errorMsg?: string;
33
+
34
+ /*
35
+ * provide the className for the NLP select dropdown
36
+ */
37
+ className?: string;
38
+
39
+ /*
40
+ * Providing the z-index for dropdown and select
41
+ */
42
+ optionZIndex?: number;
43
+
44
+ /*
45
+ * Provide disable prop for the disabling the select component
46
+ */
47
+ disabled?: boolean;
48
+
49
+ /*
50
+ * Provide disable prop for the providing border radius at right side
51
+ */
52
+ borderRadius?: boolean;
53
+
54
+ /*
55
+ * Provide boolean value to show border or not
56
+ */
57
+ showBorder?: boolean;
58
+
59
+ /*
60
+ * Provide the boolean value if the select component is required or not
61
+ */
62
+ required?: boolean;
63
+ }
64
+
65
+ export interface DrowdownPosition {
66
+ positionX: number;
67
+ positionY: number;
68
+ width: number;
69
+ fromBottom: number;
70
+ }
71
+
72
+ export interface SelectState {
73
+ isInputFocused: boolean;
74
+ iconColor: string;
75
+ isIconClick: boolean;
76
+ showOptions: boolean;
77
+ options: any[];
78
+ option: string;
79
+ dropdownPosition: DrowdownPosition;
80
+ }
81
+
82
+ export type SelectAction =
83
+ | { type: 'FOCUS_INPUT' }
84
+ | {
85
+ type: 'BLUR_INPUT';
86
+ payload: {
87
+ optionsList: Option[];
88
+ option: Option['projectId'];
89
+ };
90
+ }
91
+ | { type: 'MOUSE_ENTER' }
92
+ | { type: 'MOUSE_LEAVE' }
93
+ | {
94
+ type: 'UPDATE_DROPDOWN_POSITION';
95
+ payload: {
96
+ positionX: number;
97
+ positionY: number;
98
+ width: number;
99
+ fromBottom: number;
100
+ };
101
+ }
102
+ | {
103
+ type: 'UPDATE_OPTION';
104
+ payload: string;
105
+ }
106
+ | {
107
+ type: 'UPDATE_OPTION_LIST';
108
+ payload: any[];
109
+ }
110
+ | {
111
+ type: 'SHOW_ERROR';
112
+ payload: {
113
+ optionsList: any[];
114
+ option: Option['projectId'];
115
+ };
116
+ };
117
+
118
+ export interface Option {
119
+ displayName: string | ReactNode;
120
+ projectId: string;
121
+ nlpType: string;
122
+ platform:string;
123
+ disabled?: boolean;
124
+ }
@@ -0,0 +1,13 @@
1
+ // Rounded corners
2
+ .ff_rounded_lg {
3
+ border-radius: 8px;
4
+ }
5
+
6
+ .ff_paper_basic_style {
7
+ padding: 20px;
8
+ background-color: var(--ff-paper-dark-background-color);
9
+ }
10
+ .ff_paper_default_style {
11
+ padding: 20px;
12
+ background-color: var(--ff-paper-background-color);
13
+ }
@@ -0,0 +1,77 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import Paper from './Paper';
3
+ import { Children } from 'react';
4
+ import Typography from '../Typography';
5
+ import './Paper.scss';
6
+
7
+ const meta: Meta<typeof Paper> = {
8
+ title: 'Components/Paper',
9
+ component: Paper,
10
+ parameters: {
11
+ layout: 'centered',
12
+ },
13
+ tags: ['autodocs'],
14
+ };
15
+
16
+ type Story = StoryObj<typeof Paper>;
17
+
18
+ const defaultArgs = {
19
+ Children,
20
+ className: '',
21
+ rounded: false,
22
+ };
23
+
24
+ export const Default: Story = {
25
+ args: {
26
+ ...defaultArgs,
27
+ children: <p>This is a simple Paper component with default styles.</p>,
28
+ className: 'ff_paper_default_style',
29
+ },
30
+ };
31
+
32
+ export const PrimaryPaper: Story = {
33
+ render: () => {
34
+ return (
35
+ <Paper className="ff_paper_default_style">
36
+ <Typography>
37
+ This Paper component has custom background color and padding.
38
+ </Typography>
39
+ </Paper>
40
+ );
41
+ },
42
+ };
43
+
44
+ export const PaperWithLowShadow: Story = {
45
+ render: () => {
46
+ return (
47
+ <Paper className="ff_paper_default_style">
48
+ <Typography>This Paper component has a shadow depth of 6.</Typography>
49
+ </Paper>
50
+ );
51
+ },
52
+ };
53
+
54
+ export const PaperWithHighShadow: Story = {
55
+ render: () => {
56
+ return (
57
+ <Paper className="ff_paper_basic_style" rounded>
58
+ <Typography>
59
+ This Paper component combines custom styles, shadow depth of 10, and
60
+ rounded corners.
61
+ </Typography>
62
+ </Paper>
63
+ );
64
+ },
65
+ };
66
+
67
+ export const PaperWithRounded: Story = {
68
+ render: () => {
69
+ return (
70
+ <Paper rounded className="ff_paper_default_style">
71
+ <Typography>This Paper component has Rounded Corners.</Typography>
72
+ </Paper>
73
+ );
74
+ },
75
+ };
76
+
77
+ export default meta;
@@ -0,0 +1,14 @@
1
+ import classNames from 'classnames';
2
+ import './Paper.scss';
3
+ import { PaperProps } from './types';
4
+
5
+ const Paper = ({ children, className = '', rounded = false }: PaperProps) => {
6
+ const dynamicClassName = classNames(
7
+ { ['ff_rounded_lg']: rounded },
8
+ className
9
+ );
10
+
11
+ return <div className={dynamicClassName}>{children}</div>;
12
+ };
13
+
14
+ export default Paper;
@@ -0,0 +1 @@
1
+ export {default} from './Paper'
@@ -0,0 +1,19 @@
1
+ export interface PaperProps {
2
+ /**
3
+ * The content of the component.
4
+ */
5
+ children?: React.ReactNode;
6
+ /**
7
+ * Override or extend the styles applied to the component.
8
+ */
9
+ className?: string;
10
+ /**
11
+ * If `true`, rounded corners are Enabled.
12
+ * @default false
13
+ */
14
+ rounded?: boolean;
15
+ }
16
+
17
+
18
+
19
+
@@ -4,7 +4,7 @@ import useClickOutside from '../../../../hooks/useClickOutside';
4
4
  import { checkEmpty } from '../../../../utils/checkEmpty/checkEmpty';
5
5
  import './Dropdown.scss';
6
6
  import Typography from '../../../Typography';
7
- import ffid from '../../../../utils/ffID/ffid';
7
+ import { ffid } from '../../../../utils/ffID/ffid';
8
8
  import { ThemeContext } from '../../../ThemeProvider/ThemeProvider';
9
9
  import classNames from 'classnames';
10
10
 
@@ -99,3 +99,8 @@
99
99
  justify-content: center;
100
100
  align-items: center;
101
101
  }
102
+
103
+ tbody tr.disabled-row {
104
+ opacity: 0.5;
105
+ cursor: not-allowed;
106
+ }
@@ -26,6 +26,7 @@ const sampleData = [
26
26
  type: 'Web',
27
27
  status: 'Open',
28
28
  checked: false,
29
+ disabled:true
29
30
  },
30
31
  },
31
32
  {
@@ -36,6 +37,7 @@ const sampleData = [
36
37
  type: 'Mobile',
37
38
  status: 'Close',
38
39
  checked: true,
40
+ disabled:true
39
41
  },
40
42
  },
41
43
  {
@@ -46,6 +48,7 @@ const sampleData = [
46
48
  type: 'Web',
47
49
  status: 'Close',
48
50
  checked: true,
51
+ disabled:true
49
52
  },
50
53
  },
51
54
  {
@@ -56,6 +59,7 @@ const sampleData = [
56
59
  type: 'Web & Mobile',
57
60
  status: 'Open',
58
61
  checked: false,
62
+ disabled:false
59
63
  },
60
64
  },
61
65
  {
@@ -66,6 +70,7 @@ const sampleData = [
66
70
  type: 'Web',
67
71
  status: 'Open',
68
72
  checked: false,
73
+ disabled:true
69
74
  },
70
75
  },
71
76
  {
@@ -76,6 +81,7 @@ const sampleData = [
76
81
  type: 'Mobile',
77
82
  status: 'Close',
78
83
  checked: true,
84
+ disabled:true
79
85
  },
80
86
  },
81
87
  {
@@ -86,6 +92,7 @@ const sampleData = [
86
92
  type: 'Web',
87
93
  status: 'Close',
88
94
  checked: true,
95
+ disabled:true
89
96
  },
90
97
  },
91
98
  {
@@ -96,6 +103,7 @@ const sampleData = [
96
103
  type: 'Web & Mobile',
97
104
  status: 'Open',
98
105
  checked: false,
106
+ disabled:false
99
107
  },
100
108
  },
101
109
  {
@@ -106,6 +114,7 @@ const sampleData = [
106
114
  type: 'Web',
107
115
  status: 'Open',
108
116
  checked: false,
117
+ disabled:false
109
118
  },
110
119
  },
111
120
  {
@@ -116,6 +125,7 @@ const sampleData = [
116
125
  type: 'Mobile',
117
126
  status: 'Close',
118
127
  checked: true,
128
+ disabled:false
119
129
  },
120
130
  },
121
131
  {
@@ -126,6 +136,7 @@ const sampleData = [
126
136
  type: 'Web',
127
137
  status: 'Close',
128
138
  checked: true,
139
+ disabled:false
129
140
  },
130
141
  },
131
142
  {
@@ -136,6 +147,7 @@ const sampleData = [
136
147
  type: 'Web & Mobile',
137
148
  status: 'Open',
138
149
  checked: false,
150
+ disabled:false
139
151
  },
140
152
  },
141
153
  ];
@@ -2,8 +2,10 @@ import './Table.scss';
2
2
  // import Checkbox from '../Checkbox';
3
3
  import { isFunction } from '../../assets/utils/functionUtils';
4
4
  import classNames from 'classnames';
5
- import { ColumnsProps, DataProps, TableProps } from './Types';
5
+ import { ColumnsProps, DataProps, TableProps ,SelectedItemProps} from './Types';
6
6
  import { prepareData } from '../../utils/TableCell/TableCell';
7
+ import Checkbox from '../Checkbox';
8
+ import { checkEmpty } from '../../utils/checkEmpty/checkEmpty';
7
9
 
8
10
  // import NoData from '../NoData/NoData';
9
11
 
@@ -11,13 +13,13 @@ const Table = ({
11
13
  data = [],
12
14
  columns = [],
13
15
  headerType,
14
- // withCheckbox,
15
- // onSelect,
16
- // allSelected,
17
- // partialSelected = false,
16
+ withCheckbox,
17
+ onSelect,
18
+ allSelected,
19
+ partialSelected = false,
18
20
  withFixedHeader = true,
19
21
  borderWithRadius = false,
20
- // headerCheckboxDisabled = false,
22
+ headerCheckboxDisabled = false,
21
23
  // noDataContent,
22
24
  // noDataImage,
23
25
  // noDataImageSize,
@@ -30,7 +32,13 @@ const Table = ({
30
32
  onClick(accessor, row);
31
33
  }
32
34
  };
33
- if (!(data.length >= 0)) return null;
35
+ const onSelectClick = (e: object, item: SelectedItemProps) => {
36
+ if (onSelect) {
37
+ onSelect(e, item);
38
+ }
39
+ };
40
+ if (checkEmpty(data)) return null;
41
+
34
42
  return (
35
43
  <div
36
44
  style={{ height: height }}
@@ -45,16 +53,16 @@ const Table = ({
45
53
  'ff-fixed-header': withFixedHeader,
46
54
  })}
47
55
  >
48
- <tr>
56
+ <tr >
49
57
  {/* columns.map((column, index) */}
50
- {columns.map((column) => (
58
+ {columns.map((column, index) => (
51
59
  <th
52
60
  className={headerType && `${headerType}-bg`}
53
61
  key={column.header}
54
62
  style={{ width: column?.width }}
55
63
  >
56
64
  <div>
57
- {/* {index === 0 && withCheckbox && (
65
+ {index === 0 && withCheckbox && (
58
66
  <span className="ff-table-checkbox">
59
67
  <Checkbox
60
68
  onChange={(e) => {
@@ -67,7 +75,7 @@ const Table = ({
67
75
  disabled={headerCheckboxDisabled}
68
76
  />
69
77
  </span>
70
- )} */}
78
+ )}
71
79
 
72
80
  {column.header}
73
81
  </div>
@@ -78,7 +86,10 @@ const Table = ({
78
86
  <tbody>
79
87
  {data.length > 0 &&
80
88
  data.map((row: any, index: number) => (
81
- <tr key={row.id || index}>
89
+ <tr key={row.id || index} className={classNames(className,{
90
+ 'disabled-row': row.disabled
91
+ })}
92
+ >
82
93
  {columns.map((column, i) => {
83
94
  return (
84
95
  <td
@@ -89,7 +100,7 @@ const Table = ({
89
100
  })}
90
101
  >
91
102
  <div>
92
- {/* {i === 0 && withCheckbox && (
103
+ {i === 0 && withCheckbox && (
93
104
  <span className="ff-table-checkbox">
94
105
  <Checkbox
95
106
  onChange={(e) => {
@@ -99,7 +110,7 @@ const Table = ({
99
110
  disabled={!!row.disabled}
100
111
  />
101
112
  </span>
102
- )} */}
113
+ )}
103
114
  {prepareData(row, column)}
104
115
  </div>
105
116
  </td>
@@ -14,7 +14,7 @@
14
14
  }
15
15
  .ff-textarea {
16
16
  padding: 8px;
17
- min-width: 428px;
17
+ width: 100%;
18
18
  min-height: 80px;
19
19
  gap: 0px;
20
20
  border: 1px solid var(--default-icon-color);
@@ -0,0 +1,128 @@
1
+ .ff_variable_input_container {
2
+ .ff_label_container {
3
+ display: flex;
4
+ align-items: center;
5
+ margin-bottom: 4px;
6
+
7
+ &.ff_danger_label {
8
+ .ff_input_label {
9
+ color: var(--error);
10
+ }
11
+
12
+ .ff_required_asterisk {
13
+ color: var(--error);
14
+ }
15
+ }
16
+ }
17
+
18
+ .ff_required_asterisk {
19
+ color: var(--input-error-text-color);
20
+ font-size: 1.1em;
21
+ margin-right: 4px;
22
+ }
23
+
24
+ .ff_input_label {
25
+ font-size: 14px;
26
+ font-weight: 500;
27
+ color: var(--text-color);
28
+
29
+ &.ff_no_hover {
30
+ color: var(--toggle-disable-icon-color);
31
+ }
32
+
33
+ &.ff_disabled_label {
34
+ color: var(--toggle-disable-icon-color);
35
+ cursor: not-allowed;
36
+ }
37
+
38
+ &.ff_danger_label {
39
+ color: var(--error);
40
+ }
41
+ }
42
+
43
+ .ff_content_editable {
44
+ min-width: 8rem;
45
+ border: 1px solid var(--input-default-border-color);
46
+ padding: 8px;
47
+ min-height: 30px;
48
+ border-radius: 4px;
49
+ font-family: Arial, sans-serif;
50
+ font-size: 14px;
51
+ line-height: 20px;
52
+ transition: border-color 0.2s ease;
53
+ position: relative;
54
+ text-align: left;
55
+ display: flex;
56
+ align-items: center;
57
+ overflow: auto;
58
+
59
+ .ff_var_red {
60
+ color: var(--status-rejected-text-color);
61
+ }
62
+
63
+ .ff_var_def_color {
64
+ color: var(--text-color);
65
+ }
66
+
67
+ .ff_var_green {
68
+ color: var(--status-success-text-color);
69
+ }
70
+
71
+ &::after {
72
+ content: '*';
73
+ color: var(--input-error-text-color);
74
+ font-size: 1.2em;
75
+ position: absolute;
76
+ top: 2px;
77
+ right: 2px;
78
+ display: none;
79
+ }
80
+
81
+ &.ff_required::after {
82
+ display: inline;
83
+ }
84
+
85
+ &.ff_required_empty:focus-within,
86
+ &.ff_required_empty:focus {
87
+ border-color: var(--input-error-text-color);
88
+ }
89
+
90
+ &:empty::before {
91
+ content: attr(data-placeholder);
92
+ color: var(--ff-search-filed-placeholder-text);
93
+ position: absolute;
94
+ user-select: none;
95
+ pointer-events: none;
96
+ font-size: medium;
97
+ }
98
+
99
+ &.ff_disabled {
100
+ pointer-events: none;
101
+ opacity: 0.5;
102
+ background-color: var(--input-default-border-color);
103
+ }
104
+
105
+ &.ff_invalid_input {
106
+ border: 1px solid var(--input-error-text-color);
107
+ }
108
+ }
109
+
110
+ .ff_suggestions {
111
+ border: 1px solid var(--input-default-border-color);
112
+ margin-top: 4px;
113
+ padding: 4px;
114
+ border-radius: 4px;
115
+ list-style-type: none;
116
+ background-color: var(--ff-select-background-color);
117
+ max-height: 150px;
118
+ overflow-y: auto;
119
+ }
120
+
121
+ .ff_suggestion_item {
122
+ padding: 4px;
123
+ cursor: pointer;
124
+ &:hover {
125
+ background-color: var(--ff-select-background-color);
126
+ }
127
+ }
128
+ }
@@ -0,0 +1,32 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import VariableInput from './VariableInput';
3
+
4
+ const meta: Meta<typeof VariableInput> = {
5
+ title: 'Components/VariableInput',
6
+ component: VariableInput,
7
+ parameters: {
8
+ layout: 'centered',
9
+ },
10
+ tags: ['autodocs'],
11
+ };
12
+
13
+ type Story = StoryObj<typeof VariableInput>;
14
+
15
+ const defaultArgs = {
16
+ name: 'input',
17
+ label: '',
18
+ disabled: false,
19
+ placeholder: 'Enter URL',
20
+ value: '',
21
+ type: 'url',
22
+ list:['name','urlName','passwork','emailId','default','errorVar']
23
+ };
24
+
25
+ export const Default: Story = {
26
+ args: {
27
+ ...defaultArgs,
28
+ label: 'Enter URL',
29
+ type: 'url',
30
+ },
31
+ };
32
+ export default meta;