@xqmsg/ui-core 0.23.1-rc.0 → 0.23.1-rc.2

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 (200) hide show
  1. package/CHANGELOG.md +456 -0
  2. package/LICENSE +20 -20
  3. package/README.md +40 -40
  4. package/dist/{89793640b494d7ea.svg → 78c9d6fd7766410f.svg} +9 -9
  5. package/dist/components/input/StackedInput/StackedInput.d.ts +1 -0
  6. package/dist/components/input/StackedPilledInput/index.d.ts +1 -0
  7. package/dist/components/input/StackedTextarea/StackedTextarea.d.ts +1 -0
  8. package/dist/theme/components/button.d.ts +0 -3
  9. package/dist/theme/components/checkbox.d.ts +5 -4
  10. package/dist/theme/components/input.d.ts +12 -1
  11. package/dist/theme/components/select.d.ts +12 -1
  12. package/dist/theme/components/textarea.d.ts +15 -3
  13. package/dist/ui-core.cjs.development.js +85 -78
  14. package/dist/ui-core.cjs.development.js.map +1 -1
  15. package/dist/ui-core.cjs.production.min.js +1 -1
  16. package/dist/ui-core.cjs.production.min.js.map +1 -1
  17. package/dist/ui-core.esm.js +85 -78
  18. package/dist/ui-core.esm.js.map +1 -1
  19. package/package.json +118 -118
  20. package/src/components/banner/Banner.stories.tsx +100 -100
  21. package/src/components/banner/index.tsx +73 -73
  22. package/src/components/breadcrumbs/Breadcrumbs.stories.tsx +66 -66
  23. package/src/components/breadcrumbs/components/icon/index.tsx +38 -38
  24. package/src/components/breadcrumbs/components/label/index.tsx +20 -20
  25. package/src/components/breadcrumbs/index.tsx +48 -48
  26. package/src/components/button/Button.stories.tsx +140 -140
  27. package/src/components/button/google/GoogleButton.stories.tsx +23 -23
  28. package/src/components/button/google/index.tsx +29 -29
  29. package/src/components/button/index.tsx +51 -51
  30. package/src/components/button/microsoft/MicrosoftButton.stories.tsx +25 -25
  31. package/src/components/button/microsoft/index.tsx +29 -29
  32. package/src/components/button/spinner/SpinnerButton.stories.tsx +60 -60
  33. package/src/components/button/spinner/index.tsx +36 -36
  34. package/src/components/card/Card.stories.tsx +56 -56
  35. package/src/components/card/index.tsx +78 -78
  36. package/src/components/form/Form.stories.tsx +62 -62
  37. package/src/components/form/FormTypes.ts +20 -20
  38. package/src/components/form/hooks/useFormHandler.tsx +74 -74
  39. package/src/components/form/index.tsx +25 -25
  40. package/src/components/form/section/FormSection.stories.tsx +109 -109
  41. package/src/components/form/section/index.tsx +87 -87
  42. package/src/components/form/utils/formErrors.ts +34 -34
  43. package/src/components/icons/checkmark/checkmark.svg +3 -3
  44. package/src/components/icons/checkmark/index.tsx +13 -13
  45. package/src/components/icons/chevron/down/chevron-down.svg +3 -3
  46. package/src/components/icons/chevron/down/index.tsx +14 -14
  47. package/src/components/icons/chevron/right/chevron-right.svg +3 -3
  48. package/src/components/icons/chevron/right/index.tsx +13 -13
  49. package/src/components/icons/clock/clock.svg +3 -3
  50. package/src/components/icons/clock/index.tsx +13 -13
  51. package/src/components/icons/close/close.svg +3 -3
  52. package/src/components/icons/close/index.tsx +21 -21
  53. package/src/components/icons/dropdown/dropdown.svg +3 -3
  54. package/src/components/icons/dropdown/index.tsx +16 -16
  55. package/src/components/icons/error/error.svg +3 -3
  56. package/src/components/icons/error/index.tsx +13 -13
  57. package/src/components/icons/file/fill/file-fill.svg +4 -4
  58. package/src/components/icons/file/fill/index.tsx +13 -13
  59. package/src/components/icons/file/outline/file-outline.svg +3 -3
  60. package/src/components/icons/file/outline/index.tsx +13 -13
  61. package/src/components/icons/folder/add/fill/folder-add-fill.svg +3 -3
  62. package/src/components/icons/folder/add/fill/index.tsx +13 -13
  63. package/src/components/icons/folder/add/outline/folder-add-outline.svg +3 -3
  64. package/src/components/icons/folder/add/outline/index.tsx +15 -15
  65. package/src/components/icons/folder/fill/folder-fill-gradient.svg +33 -33
  66. package/src/components/icons/folder/fill/folder-fill.svg +4 -4
  67. package/src/components/icons/folder/fill/index.tsx +21 -21
  68. package/src/components/icons/folder/outline/folder-outline.svg +3 -3
  69. package/src/components/icons/folder/outline/index.tsx +13 -13
  70. package/src/components/icons/gear/GearIcon.tsx +36 -36
  71. package/src/components/icons/google/drive/index.tsx +13 -13
  72. package/src/components/icons/google/google.svg +13 -13
  73. package/src/components/icons/google/index.tsx +13 -13
  74. package/src/components/icons/group/group.svg +3 -3
  75. package/src/components/icons/group/index.tsx +13 -13
  76. package/src/components/icons/home/home.svg +3 -3
  77. package/src/components/icons/home/index.tsx +13 -13
  78. package/src/components/icons/image/image.svg +3 -3
  79. package/src/components/icons/image/index.tsx +13 -13
  80. package/src/components/icons/index.tsx +101 -101
  81. package/src/components/icons/link/index.tsx +13 -13
  82. package/src/components/icons/link/link.svg +4 -4
  83. package/src/components/icons/menu/index.tsx +13 -13
  84. package/src/components/icons/menu/menu.svg +3 -3
  85. package/src/components/icons/microsoft/index.tsx +13 -13
  86. package/src/components/icons/microsoft/microsoft.svg +9 -9
  87. package/src/components/icons/microsoft/onedrive/index.tsx +16 -16
  88. package/src/components/icons/neutral/index.tsx +14 -14
  89. package/src/components/icons/neutral/neutral.svg +3 -3
  90. package/src/components/icons/page/index.tsx +13 -13
  91. package/src/components/icons/page/page.svg +3 -3
  92. package/src/components/icons/positive/index.tsx +13 -13
  93. package/src/components/icons/positive/positive.svg +3 -3
  94. package/src/components/icons/question/index.tsx +13 -13
  95. package/src/components/icons/question/question.svg +3 -3
  96. package/src/components/icons/search/index.tsx +13 -13
  97. package/src/components/icons/search/search.svg +3 -3
  98. package/src/components/icons/services/index.tsx +13 -13
  99. package/src/components/icons/services/services.svg +3 -3
  100. package/src/components/icons/settings/index.tsx +14 -14
  101. package/src/components/icons/settings/settings.svg +6 -6
  102. package/src/components/icons/table/fill/index.tsx +13 -13
  103. package/src/components/icons/table/fill/table-fill.svg +3 -3
  104. package/src/components/icons/table/outline/index.tsx +13 -13
  105. package/src/components/icons/table/outline/table-outline.svg +3 -3
  106. package/src/components/icons/task/index.tsx +10 -10
  107. package/src/components/icons/task/task.svg +11 -11
  108. package/src/components/icons/trash/index.tsx +13 -13
  109. package/src/components/icons/trash/trash.svg +3 -3
  110. package/src/components/icons/vault/index.tsx +14 -14
  111. package/src/components/icons/video/index.tsx +13 -13
  112. package/src/components/icons/video/video.svg +3 -3
  113. package/src/components/icons/warning/index.tsx +13 -13
  114. package/src/components/icons/warning/warning.svg +3 -3
  115. package/src/components/icons/workspace/index.tsx +14 -14
  116. package/src/components/input/Input.stories.tsx +287 -286
  117. package/src/components/input/InputTypes.ts +77 -77
  118. package/src/components/input/StackedCheckbox/StackedCheckbox.tsx +44 -44
  119. package/src/components/input/StackedInput/StackedInput.tsx +60 -55
  120. package/src/components/input/StackedMultiSelect/index.tsx +349 -349
  121. package/src/components/input/StackedPilledInput/index.tsx +386 -362
  122. package/src/components/input/StackedRadio/StackedRadioGroup.tsx +38 -38
  123. package/src/components/input/StackedSelect/index.tsx +232 -232
  124. package/src/components/input/StackedSwitch/index.tsx +33 -33
  125. package/src/components/input/StackedTextarea/StackedTextarea.tsx +55 -53
  126. package/src/components/input/components/dropdown/index.tsx +111 -111
  127. package/src/components/input/components/label/index.tsx +35 -35
  128. package/src/components/input/components/token/Token.stories.tsx +25 -25
  129. package/src/components/input/components/token/index.tsx +45 -45
  130. package/src/components/input/index.tsx +298 -295
  131. package/src/components/layout/BorderedBox/index.tsx +30 -30
  132. package/src/components/layout/Layout.stories.tsx +40 -40
  133. package/src/components/layout/index.tsx +100 -100
  134. package/src/components/link/Link.stories.tsx +23 -23
  135. package/src/components/link/index.tsx +34 -34
  136. package/src/components/loading/LoadingIndicator.stories.tsx +45 -45
  137. package/src/components/loading/index.tsx +45 -45
  138. package/src/components/modal/Modal.stories.tsx +36 -36
  139. package/src/components/modal/components/action/index.tsx +37 -37
  140. package/src/components/modal/index.tsx +41 -41
  141. package/src/components/navigation/NavigationMenu.stories.tsx +85 -85
  142. package/src/components/navigation/components/header/index.tsx +27 -27
  143. package/src/components/navigation/components/items/index.tsx +76 -76
  144. package/src/components/navigation/index.tsx +87 -87
  145. package/src/components/select/index.tsx +140 -184
  146. package/src/components/table/Table.stories.tsx +63 -63
  147. package/src/components/table/TableTypes.ts +15 -15
  148. package/src/components/table/components/loading/index.tsx +45 -45
  149. package/src/components/table/components/text/index.tsx +23 -23
  150. package/src/components/table/empty/index.tsx +47 -47
  151. package/src/components/table/index.tsx +84 -84
  152. package/src/components/table/utils/generateTableColumns.ts +9 -9
  153. package/src/components/tabs/TabsWrapper.stories.tsx +85 -85
  154. package/src/components/tabs/index.tsx +39 -39
  155. package/src/components/text/Text.stories.tsx +59 -59
  156. package/src/components/text/index.tsx +16 -16
  157. package/src/components/toast/Toast.stories.tsx +52 -52
  158. package/src/components/toast/index.tsx +78 -78
  159. package/src/components/toolbar/Toolbar.stories.tsx +59 -59
  160. package/src/components/toolbar/components/actions/add/index.tsx +18 -18
  161. package/src/components/toolbar/components/actions/search/index.tsx +38 -38
  162. package/src/components/toolbar/components/actions/sort/index.tsx +49 -49
  163. package/src/components/toolbar/components/breadcrumbs/index.tsx +63 -63
  164. package/src/components/toolbar/components/breadcrumbs/item/index.tsx +72 -72
  165. package/src/components/toolbar/components/dropdown/index.tsx +107 -107
  166. package/src/components/toolbar/components/navigation/components/button/left/index.tsx +28 -28
  167. package/src/components/toolbar/components/navigation/components/button/left/left-arrow.svg +3 -3
  168. package/src/components/toolbar/components/navigation/components/button/right/index.tsx +27 -27
  169. package/src/components/toolbar/components/navigation/components/button/right/right-arrow.svg +3 -3
  170. package/src/components/toolbar/components/navigation/index.tsx +36 -36
  171. package/src/components/toolbar/index.tsx +55 -55
  172. package/src/hooks/useDeepEffect.tsx +22 -22
  173. package/src/hooks/useDidMountEffect.tsx +13 -13
  174. package/src/hooks/useOnOutsideClick.tsx +31 -31
  175. package/src/hooks/useToast.tsx +16 -16
  176. package/src/index.tsx +78 -78
  177. package/src/theme/components/alert.ts +60 -60
  178. package/src/theme/components/badge.ts +59 -59
  179. package/src/theme/components/button.ts +163 -163
  180. package/src/theme/components/checkbox.ts +28 -25
  181. package/src/theme/components/code.ts +16 -16
  182. package/src/theme/components/form-error.ts +31 -31
  183. package/src/theme/components/form-label.ts +17 -17
  184. package/src/theme/components/form.ts +29 -29
  185. package/src/theme/components/input.ts +65 -57
  186. package/src/theme/components/link.ts +118 -118
  187. package/src/theme/components/modal.ts +45 -45
  188. package/src/theme/components/select.ts +36 -36
  189. package/src/theme/components/switch.ts +89 -89
  190. package/src/theme/components/table.ts +42 -42
  191. package/src/theme/components/tabs.ts +255 -255
  192. package/src/theme/components/text.ts +93 -93
  193. package/src/theme/components/textarea.ts +42 -41
  194. package/src/theme/customXQChakraTheme.ts +54 -54
  195. package/src/theme/foundations/breakpoints.ts +18 -18
  196. package/src/theme/foundations/colors.ts +165 -165
  197. package/src/theme/foundations/shadows.ts +23 -23
  198. package/src/theme/foundations/typography.ts +62 -62
  199. package/src/theme/provider/index.tsx +21 -21
  200. package/src/theme/styles.ts +19 -19
@@ -1,14 +1,14 @@
1
- import React from 'react';
2
- import { Image } from '@chakra-ui/react';
3
- import path from './workspace.png';
4
-
5
- export interface WorkspaceProps {
6
- boxSize: number | string;
7
- }
8
-
9
- /**
10
- * A functional React component utilized to render the `Workspace` icon component
11
- */
12
- export const Workspace: React.FC<WorkspaceProps> = ({ boxSize }) => {
13
- return <Image src={path} boxSize={boxSize} />;
14
- };
1
+ import React from 'react';
2
+ import { Image } from '@chakra-ui/react';
3
+ import path from './workspace.png';
4
+
5
+ export interface WorkspaceProps {
6
+ boxSize: number | string;
7
+ }
8
+
9
+ /**
10
+ * A functional React component utilized to render the `Workspace` icon component
11
+ */
12
+ export const Workspace: React.FC<WorkspaceProps> = ({ boxSize }) => {
13
+ return <Image src={path} boxSize={boxSize} />;
14
+ };
@@ -1,286 +1,287 @@
1
- import React from 'react';
2
- import { Meta, Story } from '@storybook/react';
3
-
4
- import { Input, InputProps } from '.';
5
- import { useFormHandler } from '../form/hooks/useFormHandler';
6
- import * as Yup from 'yup';
7
- import { Form } from '../form';
8
- import { SelectNative } from '../select';
9
-
10
- const meta: Meta<InputProps<StoryFormSchema>> = {
11
- title: 'Input example',
12
- component: Input,
13
- argTypes: {
14
- label: {
15
- control: {
16
- type: 'text',
17
- },
18
- description: 'The label for the input',
19
- },
20
- inputType: {
21
- description: 'The type of the input',
22
- },
23
- options: {
24
- control: 'array',
25
- description: 'The options for select/radio fields',
26
- },
27
- maxLength: {
28
- control: {
29
- type: 'number',
30
- },
31
- description: 'The max length for the input value',
32
- },
33
- helperText: {
34
- control: {
35
- type: 'text',
36
- },
37
- description: 'The helper text for the input',
38
- },
39
- errorText: {
40
- control: {
41
- type: 'text',
42
- },
43
- description: 'The error message for the input',
44
- },
45
- isInvalid: {
46
- control: 'boolean',
47
- description: 'The flag for whether the input value is valid or not',
48
- },
49
- isRequired: {
50
- control: 'boolean',
51
- description: 'The flag for whether the input field is required or not',
52
- },
53
- },
54
- parameters: {
55
- controls: { expanded: true },
56
- },
57
- };
58
-
59
- interface StoryFormSchema {
60
- prop?: string;
61
- prop2?: string;
62
- prop3?: string;
63
- prop4?: string;
64
- prop5?: string;
65
- prop6?: boolean;
66
- }
67
-
68
- const onStubbedSubmit = () => null;
69
-
70
- const storyFormDefaultValues: StoryFormSchema = {
71
- prop: '',
72
- prop2: '',
73
- prop3: '',
74
- prop4: '',
75
- prop5: '',
76
- prop6: true,
77
- };
78
-
79
- const storyFormSchema: Yup.SchemaOf<StoryFormSchema> = Yup.object().shape({
80
- prop: Yup.string(),
81
- prop2: Yup.string(),
82
- prop3: Yup.string(),
83
- prop4: Yup.string(),
84
- prop5: Yup.string(),
85
- prop6: Yup.boolean(),
86
- });
87
-
88
- export default meta;
89
- const Template: Story<InputProps<StoryFormSchema>> = args => {
90
- const formHandler = useFormHandler<StoryFormSchema>(
91
- onStubbedSubmit,
92
- storyFormDefaultValues,
93
- storyFormSchema,
94
- false,
95
- 'all'
96
- );
97
-
98
- const { form } = formHandler;
99
-
100
- return (
101
- <Form formHandler={formHandler}>
102
- <Input
103
- {...args}
104
- inputType="multi-select"
105
- setValue={form.setValue}
106
- setError={form.setError}
107
- clearErrors={form.clearErrors}
108
- isInvalid={!!form.formState.errors['prop5']?.message}
109
- errorText={form.formState.errors['prop5']?.message}
110
- name="prop5"
111
- />
112
- <Input
113
- {...args}
114
- inputType="multi-select"
115
- variant="mobile"
116
- setValue={form.setValue}
117
- setError={form.setError}
118
- clearErrors={form.clearErrors}
119
- isInvalid={!!form.formState.errors['prop5']?.message}
120
- errorText={form.formState.errors['prop5']?.message}
121
- name="prop5"
122
- />
123
- <Input
124
- {...args}
125
- inputType="text"
126
- name="prop3"
127
- onChange={e => form.setValue('prop3', e.target.value)}
128
- />
129
- <Input
130
- {...args}
131
- inputType="text"
132
- variant="mobile"
133
- name="prop3"
134
- onChange={e => form.setValue('prop3', e.target.value)}
135
- />
136
- <Input
137
- {...args}
138
- inputType="textarea"
139
- name="prop2"
140
- onChange={e => form.setValue('prop2', e.target.value)}
141
- />
142
- <Input
143
- {...args}
144
- inputType="textarea"
145
- variant="mobile"
146
- name="prop2"
147
- onChange={e => form.setValue('prop2', e.target.value)}
148
- />
149
- <Input
150
- {...args}
151
- name="prop"
152
- inputType="pilled-text"
153
- setValue={form.setValue}
154
- setError={form.setError}
155
- clearErrors={form.clearErrors}
156
- isInvalid={!!form.formState.errors['prop']?.message}
157
- errorText={form.formState.errors['prop']?.message}
158
- />
159
- <Input
160
- {...args}
161
- name="prop"
162
- variant="mobile"
163
- inputType="pilled-text"
164
- setValue={form.setValue}
165
- setError={form.setError}
166
- clearErrors={form.clearErrors}
167
- isInvalid={!!form.formState.errors['prop']?.message}
168
- errorText={form.formState.errors['prop']?.message}
169
- />
170
- <Input
171
- {...args}
172
- inputType="select"
173
- setValue={form.setValue}
174
- name="prop4"
175
- defaultValue={'value1'}
176
- />
177
- <SelectNative
178
- {...args}
179
- setValue={form.setValue}
180
- name="prop4"
181
- setError={form.setError}
182
- clearErrors={form.clearErrors}
183
- isInvalid={!!form.formState.errors['prop']?.message}
184
- errorText={form.formState.errors['prop']?.message}
185
- disabled={false}
186
- isRequired
187
- control={form.control}
188
- ariaLabel="expires in input"
189
- defaultValue={'value1'}
190
- />
191
- <Input
192
- {...args}
193
- name="prop6"
194
- inputType="switch"
195
- setValue={form.setValue}
196
- />
197
- <Input
198
- {...args}
199
- name="prop6"
200
- variant="mobile"
201
- inputType="switch"
202
- setValue={form.setValue}
203
- />
204
- <Input
205
- {...args}
206
- name="prop6"
207
- inputType="checkbox"
208
- setValue={form.setValue}
209
- />
210
- <Input
211
- {...args}
212
- name="prop6"
213
- inputType="checkbox"
214
- variant="mobile"
215
- setValue={form.setValue}
216
- />
217
- </Form>
218
- );
219
- };
220
-
221
- export const Default = Template.bind({});
222
- Default.args = {
223
- label: 'Input Label',
224
- inputType: 'text',
225
- options: [
226
- { value: 'section_header', label: 'Section 1', sortValue: 0 },
227
- {
228
- value: 'value1',
229
- label: 'Value 1',
230
- sortValue: 1,
231
- },
232
- {
233
- value: 'value2',
234
- label: 'Value 2',
235
- sortValue: 2,
236
- },
237
- {
238
- value: 'value3',
239
- label: 'Value 3',
240
- sortValue: 3,
241
- },
242
- {
243
- value: 'value4',
244
- label: 'Value 4 Which is very long',
245
- sortValue: 4,
246
- },
247
- { value: 'section_header', label: 'Section 2', sortValue: 5 },
248
- {
249
- value: 'value5',
250
- label: 'Value 5',
251
- sortValue: 6,
252
- },
253
- {
254
- value: 'value6',
255
- label: 'Value 6',
256
- sortValue: 7,
257
- },
258
- {
259
- value: 'value7',
260
- label: 'Value 7',
261
- sortValue: 8,
262
- },
263
- {
264
- value: 'value8',
265
- label: 'Value 8',
266
- sortValue: 9,
267
- },
268
- {
269
- value: 'value9',
270
- label: 'Value 9',
271
- sortValue: 10,
272
- },
273
- {
274
- value: 'value10',
275
- label: 'Balue 10',
276
- sortValue: 11,
277
- },
278
- {
279
- value: 'value11',
280
- label: 'C 11',
281
- sortValue: 12,
282
- },
283
- ],
284
- isRequired: true,
285
- isInvalid: false,
286
- };
1
+ import React from 'react';
2
+ import { Meta, Story } from '@storybook/react';
3
+
4
+ import { Input, InputProps } from '.';
5
+ import { useFormHandler } from '../form/hooks/useFormHandler';
6
+ import * as Yup from 'yup';
7
+ import { Form } from '../form';
8
+ import { SelectNative } from '../select';
9
+
10
+ const meta: Meta<InputProps<StoryFormSchema>> = {
11
+ title: 'Input example',
12
+ component: Input,
13
+ argTypes: {
14
+ label: {
15
+ control: {
16
+ type: 'text',
17
+ },
18
+ description: 'The label for the input',
19
+ },
20
+ inputType: {
21
+ description: 'The type of the input',
22
+ },
23
+ options: {
24
+ control: 'array',
25
+ description: 'The options for select/radio fields',
26
+ },
27
+ maxLength: {
28
+ control: {
29
+ type: 'number',
30
+ },
31
+ description: 'The max length for the input value',
32
+ },
33
+ helperText: {
34
+ control: {
35
+ type: 'text',
36
+ },
37
+ description: 'The helper text for the input',
38
+ },
39
+ errorText: {
40
+ control: {
41
+ type: 'text',
42
+ },
43
+ description: 'The error message for the input',
44
+ },
45
+ isInvalid: {
46
+ control: 'boolean',
47
+ description: 'The flag for whether the input value is valid or not',
48
+ },
49
+ isRequired: {
50
+ control: 'boolean',
51
+ description: 'The flag for whether the input field is required or not',
52
+ },
53
+ },
54
+ parameters: {
55
+ controls: { expanded: true },
56
+ },
57
+ };
58
+
59
+ interface StoryFormSchema {
60
+ prop?: string;
61
+ prop2?: string;
62
+ prop3?: string;
63
+ prop4?: string;
64
+ prop5?: string;
65
+ prop6?: boolean;
66
+ }
67
+
68
+ const onStubbedSubmit = () => null;
69
+
70
+ const storyFormDefaultValues: StoryFormSchema = {
71
+ prop: '',
72
+ prop2: '',
73
+ prop3: '',
74
+ prop4: '',
75
+ prop5: '',
76
+ prop6: true,
77
+ };
78
+
79
+ const storyFormSchema: Yup.SchemaOf<StoryFormSchema> = Yup.object().shape({
80
+ prop: Yup.string(),
81
+ prop2: Yup.string(),
82
+ prop3: Yup.string(),
83
+ prop4: Yup.string(),
84
+ prop5: Yup.string(),
85
+ prop6: Yup.boolean(),
86
+ });
87
+
88
+ export default meta;
89
+ const Template: Story<InputProps<StoryFormSchema>> = args => {
90
+ const formHandler = useFormHandler<StoryFormSchema>(
91
+ onStubbedSubmit,
92
+ storyFormDefaultValues,
93
+ storyFormSchema,
94
+ false,
95
+ 'all'
96
+ );
97
+
98
+ const { form } = formHandler;
99
+
100
+ return (
101
+ <Form formHandler={formHandler}>
102
+ <Input
103
+ {...args}
104
+ inputType="multi-select"
105
+ setValue={form.setValue}
106
+ setError={form.setError}
107
+ clearErrors={form.clearErrors}
108
+ isInvalid={!!form.formState.errors['prop5']?.message}
109
+ errorText={form.formState.errors['prop5']?.message}
110
+ name="prop5"
111
+ />
112
+ <Input
113
+ {...args}
114
+ inputType="multi-select"
115
+ variant="mobile"
116
+ setValue={form.setValue}
117
+ setError={form.setError}
118
+ clearErrors={form.clearErrors}
119
+ isInvalid={!!form.formState.errors['prop5']?.message}
120
+ errorText={form.formState.errors['prop5']?.message}
121
+ name="prop5"
122
+ />
123
+ <Input
124
+ {...args}
125
+ inputType="text"
126
+ name="prop3"
127
+ onChange={e => form.setValue('prop3', e.target.value)}
128
+ />
129
+ <Input
130
+ {...args}
131
+ inputType="text"
132
+ variant="mobile"
133
+ name="prop3"
134
+ onChange={e => form.setValue('prop3', e.target.value)}
135
+ />
136
+ <Input
137
+ {...args}
138
+ inputType="textarea"
139
+ name="prop2"
140
+ onChange={e => form.setValue('prop2', e.target.value)}
141
+ />
142
+ <Input
143
+ {...args}
144
+ inputType="textarea"
145
+ variant="mobile"
146
+ name="prop2"
147
+ onChange={e => form.setValue('prop2', e.target.value)}
148
+ />
149
+ <Input
150
+ {...args}
151
+ name="prop"
152
+ inputType="pilled-text"
153
+ setValue={form.setValue}
154
+ setError={form.setError}
155
+ clearErrors={form.clearErrors}
156
+ isInvalid={!!form.formState.errors['prop']?.message}
157
+ errorText={form.formState.errors['prop']?.message}
158
+ />
159
+ <Input
160
+ {...args}
161
+ name="prop"
162
+ variant="mobile"
163
+ inputType="pilled-text"
164
+ setValue={form.setValue}
165
+ setError={form.setError}
166
+ clearErrors={form.clearErrors}
167
+ isInvalid={!!form.formState.errors['prop']?.message}
168
+ errorText={form.formState.errors['prop']?.message}
169
+ />
170
+ <Input
171
+ {...args}
172
+ inputType="select"
173
+ setValue={form.setValue}
174
+ name="prop4"
175
+ defaultValue={'value1'}
176
+ />
177
+ <SelectNative
178
+ {...args}
179
+ setValue={form.setValue}
180
+ name="prop4"
181
+ setError={form.setError}
182
+ clearErrors={form.clearErrors}
183
+ isInvalid={!!form.formState.errors['prop']?.message}
184
+ errorText={form.formState.errors['prop']?.message}
185
+ disabled={false}
186
+ isRequired
187
+ control={form.control}
188
+ ariaLabel="expires in input"
189
+ defaultValue={'value1'}
190
+ variant="mobile"
191
+ />
192
+ <Input
193
+ {...args}
194
+ name="prop6"
195
+ inputType="switch"
196
+ setValue={form.setValue}
197
+ />
198
+ <Input
199
+ {...args}
200
+ name="prop6"
201
+ variant="mobile"
202
+ inputType="switch"
203
+ setValue={form.setValue}
204
+ />
205
+ <Input
206
+ {...args}
207
+ name="prop6"
208
+ inputType="checkbox"
209
+ setValue={form.setValue}
210
+ />
211
+ <Input
212
+ {...args}
213
+ name="prop6"
214
+ inputType="checkbox"
215
+ variant="mobile"
216
+ setValue={form.setValue}
217
+ />
218
+ </Form>
219
+ );
220
+ };
221
+
222
+ export const Default = Template.bind({});
223
+ Default.args = {
224
+ label: 'Input Label',
225
+ inputType: 'text',
226
+ options: [
227
+ { value: 'section_header', label: 'Section 1', sortValue: 0 },
228
+ {
229
+ value: 'value1',
230
+ label: 'Value 1',
231
+ sortValue: 1,
232
+ },
233
+ {
234
+ value: 'value2',
235
+ label: 'Value 2',
236
+ sortValue: 2,
237
+ },
238
+ {
239
+ value: 'value3',
240
+ label: 'Value 3',
241
+ sortValue: 3,
242
+ },
243
+ {
244
+ value: 'value4',
245
+ label: 'Value 4 Which is very long',
246
+ sortValue: 4,
247
+ },
248
+ { value: 'section_header', label: 'Section 2', sortValue: 5 },
249
+ {
250
+ value: 'value5',
251
+ label: 'Value 5',
252
+ sortValue: 6,
253
+ },
254
+ {
255
+ value: 'value6',
256
+ label: 'Value 6',
257
+ sortValue: 7,
258
+ },
259
+ {
260
+ value: 'value7',
261
+ label: 'Value 7',
262
+ sortValue: 8,
263
+ },
264
+ {
265
+ value: 'value8',
266
+ label: 'Value 8',
267
+ sortValue: 9,
268
+ },
269
+ {
270
+ value: 'value9',
271
+ label: 'Value 9',
272
+ sortValue: 10,
273
+ },
274
+ {
275
+ value: 'value10',
276
+ label: 'Balue 10',
277
+ sortValue: 11,
278
+ },
279
+ {
280
+ value: 'value11',
281
+ label: 'C 11',
282
+ sortValue: 12,
283
+ },
284
+ ],
285
+ isRequired: true,
286
+ isInvalid: false,
287
+ };