@salutejs/plasma-new-hope 0.153.0-dev.0 → 0.154.0-canary.1421.11039037651.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (199) hide show
  1. package/cjs/components/Button/Button.js +0 -1
  2. package/cjs/components/Button/Button.js.map +1 -1
  3. package/cjs/components/DatePicker/RangeDate/RangeDate.js +42 -2
  4. package/cjs/components/DatePicker/RangeDate/RangeDate.js.map +1 -1
  5. package/cjs/components/DatePicker/SingleDate/SingleDate.js +31 -3
  6. package/cjs/components/DatePicker/SingleDate/SingleDate.js.map +1 -1
  7. package/cjs/components/DatePicker/hooks/useDatePicker.js +34 -1
  8. package/cjs/components/DatePicker/hooks/useDatePicker.js.map +1 -1
  9. package/cjs/components/DatePicker/utils/setInitValue.js +12 -0
  10. package/cjs/components/DatePicker/utils/setInitValue.js.map +1 -0
  11. package/cjs/components/Slider/Slider.js +20 -6
  12. package/cjs/components/Slider/Slider.js.map +1 -1
  13. package/cjs/components/Slider/components/Double/Double.js +40 -2
  14. package/cjs/components/Slider/components/Double/Double.js.map +1 -1
  15. package/cjs/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.js +100 -0
  16. package/cjs/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.js.map +1 -0
  17. package/cjs/components/Slider/components/Single/Single.js +51 -13
  18. package/cjs/components/Slider/components/Single/Single.js.map +1 -1
  19. package/cjs/components/Slider/utils/index.js +6 -0
  20. package/cjs/components/Slider/utils/index.js.map +1 -1
  21. package/cjs/components/TextArea/TextArea.js +3 -2
  22. package/cjs/components/TextArea/TextArea.js.map +1 -1
  23. package/cjs/hooks/useForm.js +131 -0
  24. package/cjs/hooks/useForm.js.map +1 -0
  25. package/cjs/index.js +5 -0
  26. package/cjs/index.js.map +1 -1
  27. package/cjs/utils/index.js.map +1 -1
  28. package/cjs/utils/inputHidden.js +12 -0
  29. package/cjs/utils/inputHidden.js.map +1 -0
  30. package/cjs/utils/setRefList.js +28 -0
  31. package/cjs/utils/setRefList.js.map +1 -0
  32. package/emotion/cjs/components/Button/Button.js +0 -1
  33. package/emotion/cjs/components/DatePicker/RangeDate/RangeDate.js +42 -2
  34. package/emotion/cjs/components/DatePicker/SingleDate/SingleDate.js +31 -3
  35. package/emotion/cjs/components/DatePicker/hooks/useDatePicker.js +34 -1
  36. package/emotion/cjs/components/DatePicker/utils/setInitValue.js +11 -0
  37. package/emotion/cjs/components/Slider/Slider.js +15 -6
  38. package/emotion/cjs/components/Slider/components/Double/Double.js +40 -2
  39. package/emotion/cjs/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.js +103 -0
  40. package/emotion/cjs/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.types.js +5 -0
  41. package/emotion/cjs/components/Slider/components/Single/Single.js +46 -8
  42. package/emotion/cjs/components/Slider/components/index.js +11 -0
  43. package/emotion/cjs/components/Slider/utils/index.js +6 -1
  44. package/emotion/cjs/components/TextArea/TextArea.js +3 -3
  45. package/emotion/cjs/examples/plasma_b2c/components/Form/Form.stories.tsx +256 -0
  46. package/emotion/cjs/examples/plasma_web/components/Form/Form.stories.tsx +237 -0
  47. package/emotion/cjs/hooks/index.js +8 -1
  48. package/emotion/cjs/hooks/useForm.js +137 -0
  49. package/emotion/cjs/types/FormType.js +5 -0
  50. package/emotion/cjs/utils/index.js +15 -0
  51. package/emotion/cjs/utils/inputHidden.js +11 -0
  52. package/emotion/cjs/utils/setRefList.js +27 -0
  53. package/emotion/es/components/Button/Button.js +0 -1
  54. package/emotion/es/components/DatePicker/RangeDate/RangeDate.js +42 -2
  55. package/emotion/es/components/DatePicker/SingleDate/SingleDate.js +31 -3
  56. package/emotion/es/components/DatePicker/hooks/useDatePicker.js +34 -1
  57. package/emotion/es/components/DatePicker/utils/setInitValue.js +5 -0
  58. package/emotion/es/components/Slider/Slider.js +16 -6
  59. package/emotion/es/components/Slider/components/Double/Double.js +41 -3
  60. package/emotion/es/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.js +94 -0
  61. package/emotion/es/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.types.js +1 -0
  62. package/emotion/es/components/Slider/components/Single/Single.js +47 -9
  63. package/emotion/es/components/Slider/components/index.js +1 -0
  64. package/emotion/es/components/Slider/utils/index.js +5 -0
  65. package/emotion/es/components/TextArea/TextArea.js +4 -4
  66. package/emotion/es/examples/plasma_b2c/components/Form/Form.stories.tsx +256 -0
  67. package/emotion/es/examples/plasma_web/components/Form/Form.stories.tsx +237 -0
  68. package/emotion/es/hooks/index.js +2 -1
  69. package/emotion/es/hooks/useForm.js +128 -0
  70. package/emotion/es/types/FormType.js +1 -0
  71. package/emotion/es/utils/index.js +1 -0
  72. package/emotion/es/utils/inputHidden.js +4 -0
  73. package/emotion/es/utils/setRefList.js +20 -0
  74. package/es/components/Button/Button.js +0 -1
  75. package/es/components/Button/Button.js.map +1 -1
  76. package/es/components/DatePicker/RangeDate/RangeDate.js +42 -2
  77. package/es/components/DatePicker/RangeDate/RangeDate.js.map +1 -1
  78. package/es/components/DatePicker/SingleDate/SingleDate.js +31 -3
  79. package/es/components/DatePicker/SingleDate/SingleDate.js.map +1 -1
  80. package/es/components/DatePicker/hooks/useDatePicker.js +34 -1
  81. package/es/components/DatePicker/hooks/useDatePicker.js.map +1 -1
  82. package/es/components/DatePicker/utils/setInitValue.js +8 -0
  83. package/es/components/DatePicker/utils/setInitValue.js.map +1 -0
  84. package/es/components/Slider/Slider.js +21 -7
  85. package/es/components/Slider/Slider.js.map +1 -1
  86. package/es/components/Slider/components/Double/Double.js +41 -3
  87. package/es/components/Slider/components/Double/Double.js.map +1 -1
  88. package/es/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.js +96 -0
  89. package/es/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.js.map +1 -0
  90. package/es/components/Slider/components/Single/Single.js +47 -9
  91. package/es/components/Slider/components/Single/Single.js.map +1 -1
  92. package/es/components/Slider/utils/index.js +6 -1
  93. package/es/components/Slider/utils/index.js.map +1 -1
  94. package/es/components/TextArea/TextArea.js +3 -2
  95. package/es/components/TextArea/TextArea.js.map +1 -1
  96. package/es/hooks/useForm.js +127 -0
  97. package/es/hooks/useForm.js.map +1 -0
  98. package/es/index.js +2 -0
  99. package/es/index.js.map +1 -1
  100. package/es/utils/index.js.map +1 -1
  101. package/es/utils/inputHidden.js +8 -0
  102. package/es/utils/inputHidden.js.map +1 -0
  103. package/es/utils/setRefList.js +23 -0
  104. package/es/utils/setRefList.js.map +1 -0
  105. package/package.json +3 -2
  106. package/styled-components/cjs/components/Button/Button.js +0 -1
  107. package/styled-components/cjs/components/DatePicker/RangeDate/RangeDate.js +42 -2
  108. package/styled-components/cjs/components/DatePicker/SingleDate/SingleDate.js +31 -3
  109. package/styled-components/cjs/components/DatePicker/hooks/useDatePicker.js +34 -1
  110. package/styled-components/cjs/components/DatePicker/utils/setInitValue.js +11 -0
  111. package/styled-components/cjs/components/Slider/Slider.js +15 -6
  112. package/styled-components/cjs/components/Slider/components/Double/Double.js +40 -2
  113. package/styled-components/cjs/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.js +103 -0
  114. package/styled-components/cjs/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.types.js +5 -0
  115. package/styled-components/cjs/components/Slider/components/Single/Single.js +46 -8
  116. package/styled-components/cjs/components/Slider/components/index.js +11 -0
  117. package/styled-components/cjs/components/Slider/utils/index.js +6 -1
  118. package/styled-components/cjs/components/TextArea/TextArea.js +2 -2
  119. package/styled-components/cjs/examples/plasma_b2c/components/Form/Form.stories.tsx +256 -0
  120. package/styled-components/cjs/examples/plasma_web/components/Form/Form.stories.tsx +237 -0
  121. package/styled-components/cjs/hooks/index.js +8 -1
  122. package/styled-components/cjs/hooks/useForm.js +137 -0
  123. package/styled-components/cjs/types/FormType.js +5 -0
  124. package/styled-components/cjs/utils/index.js +15 -0
  125. package/styled-components/cjs/utils/inputHidden.js +11 -0
  126. package/styled-components/cjs/utils/setRefList.js +27 -0
  127. package/styled-components/es/components/Button/Button.js +0 -1
  128. package/styled-components/es/components/DatePicker/RangeDate/RangeDate.js +42 -2
  129. package/styled-components/es/components/DatePicker/SingleDate/SingleDate.js +31 -3
  130. package/styled-components/es/components/DatePicker/hooks/useDatePicker.js +34 -1
  131. package/styled-components/es/components/DatePicker/utils/setInitValue.js +5 -0
  132. package/styled-components/es/components/Slider/Slider.js +16 -6
  133. package/styled-components/es/components/Slider/components/Double/Double.js +41 -3
  134. package/styled-components/es/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.js +94 -0
  135. package/styled-components/es/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.types.js +1 -0
  136. package/styled-components/es/components/Slider/components/Single/Single.js +47 -9
  137. package/styled-components/es/components/Slider/components/index.js +1 -0
  138. package/styled-components/es/components/Slider/utils/index.js +5 -0
  139. package/styled-components/es/components/TextArea/TextArea.js +3 -3
  140. package/styled-components/es/examples/plasma_b2c/components/Form/Form.stories.tsx +256 -0
  141. package/styled-components/es/examples/plasma_web/components/Form/Form.stories.tsx +237 -0
  142. package/styled-components/es/hooks/index.js +2 -1
  143. package/styled-components/es/hooks/useForm.js +128 -0
  144. package/styled-components/es/types/FormType.js +1 -0
  145. package/styled-components/es/utils/index.js +1 -0
  146. package/styled-components/es/utils/inputHidden.js +4 -0
  147. package/styled-components/es/utils/setRefList.js +20 -0
  148. package/types/components/Button/Button.d.ts.map +1 -1
  149. package/types/components/DatePicker/DatePickerBase.types.d.ts +7 -0
  150. package/types/components/DatePicker/DatePickerBase.types.d.ts.map +1 -1
  151. package/types/components/DatePicker/RangeDate/RangeDate.d.ts +2 -0
  152. package/types/components/DatePicker/RangeDate/RangeDate.d.ts.map +1 -1
  153. package/types/components/DatePicker/RangeDate/RangeDate.types.d.ts +4 -0
  154. package/types/components/DatePicker/RangeDate/RangeDate.types.d.ts.map +1 -1
  155. package/types/components/DatePicker/SingleDate/SingleDate.d.ts.map +1 -1
  156. package/types/components/DatePicker/SingleDate/SingleDate.types.d.ts +10 -0
  157. package/types/components/DatePicker/SingleDate/SingleDate.types.d.ts.map +1 -1
  158. package/types/components/DatePicker/hooks/useDatePicker.d.ts +1 -1
  159. package/types/components/DatePicker/hooks/useDatePicker.d.ts.map +1 -1
  160. package/types/components/DatePicker/utils/setInitValue.d.ts +2 -0
  161. package/types/components/DatePicker/utils/setInitValue.d.ts.map +1 -0
  162. package/types/components/Slider/Slider.d.ts.map +1 -1
  163. package/types/components/Slider/Slider.types.d.ts +2 -2
  164. package/types/components/Slider/Slider.types.d.ts.map +1 -1
  165. package/types/components/Slider/components/Double/Double.d.ts.map +1 -1
  166. package/types/components/Slider/components/Double/Double.types.d.ts +2 -0
  167. package/types/components/Slider/components/Double/Double.types.d.ts.map +1 -1
  168. package/types/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.d.ts +4 -0
  169. package/types/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.d.ts.map +1 -0
  170. package/types/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.types.d.ts +40 -0
  171. package/types/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.types.d.ts.map +1 -0
  172. package/types/components/Slider/components/Single/Single.d.ts.map +1 -1
  173. package/types/components/Slider/components/Single/Single.types.d.ts +35 -5
  174. package/types/components/Slider/components/Single/Single.types.d.ts.map +1 -1
  175. package/types/components/Slider/components/index.d.ts +2 -0
  176. package/types/components/Slider/components/index.d.ts.map +1 -1
  177. package/types/components/Slider/utils/index.d.ts +1 -0
  178. package/types/components/Slider/utils/index.d.ts.map +1 -1
  179. package/types/components/TextArea/TextArea.d.ts.map +1 -1
  180. package/types/examples/plasma_b2c/components/DatePicker/DatePicker.d.ts +1 -0
  181. package/types/examples/plasma_b2c/components/DatePicker/DatePicker.d.ts.map +1 -1
  182. package/types/examples/plasma_b2c/components/Slider/Slider.d.ts +47 -1
  183. package/types/examples/plasma_b2c/components/Slider/Slider.d.ts.map +1 -1
  184. package/types/examples/plasma_web/components/DatePicker/DatePicker.d.ts +1 -0
  185. package/types/examples/plasma_web/components/DatePicker/DatePicker.d.ts.map +1 -1
  186. package/types/examples/plasma_web/components/Slider/Slider.d.ts +47 -1
  187. package/types/examples/plasma_web/components/Slider/Slider.d.ts.map +1 -1
  188. package/types/hooks/index.d.ts +1 -0
  189. package/types/hooks/index.d.ts.map +1 -1
  190. package/types/hooks/useForm.d.ts +10 -0
  191. package/types/hooks/useForm.d.ts.map +1 -0
  192. package/types/types/FormType.d.ts +13 -0
  193. package/types/types/FormType.d.ts.map +1 -0
  194. package/types/utils/index.d.ts +1 -0
  195. package/types/utils/index.d.ts.map +1 -1
  196. package/types/utils/inputHidden.d.ts +2 -0
  197. package/types/utils/inputHidden.d.ts.map +1 -0
  198. package/types/utils/setRefList.d.ts +6 -0
  199. package/types/utils/setRefList.d.ts.map +1 -0
@@ -0,0 +1,237 @@
1
+ import { useForm as useReactHookForm, Controller } from 'react-hook-form';
2
+ import React from 'react';
3
+ import type { Meta, StoryObj } from '@storybook/react';
4
+
5
+ import { WithTheme } from '../../../_helpers';
6
+ import { Button } from '../Button/Button';
7
+ import { TextField } from '../TextField/TextField';
8
+ import { TextArea } from '../TextArea/TextArea';
9
+ import { Checkbox } from '../Checkbox/Checkbox';
10
+ import { Switch } from '../Switch/Switch';
11
+ import { Radiobox } from '../Radiobox/Radiobox';
12
+ import { RadioGroup } from '../../../../components/Radiobox';
13
+ import { Slider } from '../Slider/Slider';
14
+ import { useForm } from '../../../../hooks';
15
+ import { DatePicker, DatePickerRange } from '../DatePicker/DatePicker';
16
+
17
+ type StoryDropdownProps = {};
18
+
19
+ const langName = 'language';
20
+ const itemsRadiobox = [
21
+ { langName, value: 'c', label: 'C', disabled: false },
22
+ { langName, value: 'cpp', label: 'C++', disabled: false },
23
+ { langName, value: 'assembly', label: 'Assembly', disabled: false },
24
+ ];
25
+
26
+ const PlasmaForm = () => {
27
+ const onSubmit = (data) => {
28
+ console.log(data);
29
+ };
30
+
31
+ const { formRef, formData } = useForm(onSubmit, {
32
+ textfield: 'textfield',
33
+ textarea: 'textarea',
34
+ checkbox: 'checkobox',
35
+ switch: true,
36
+ radiobox: 'c',
37
+ slider: 10,
38
+ sliderd: [10, 20],
39
+ datepicker: '12.09.2024',
40
+ datepickerRange: ['09.09.2024', '12.09.2024'],
41
+ });
42
+
43
+ return (
44
+ <form onSubmit={formData} style={{ display: 'flex', flexDirection: 'column', gap: '20px' }} ref={formRef}>
45
+ <TextField name="textfield" placeholder="Textfield" required={false} />
46
+ <TextArea name="textarea" autoResize placeholder="Textarea" />
47
+ <Checkbox name="checkbox" label="Checkbox" />
48
+ <Switch name="switch" label="Switch" labelPosition="after" />
49
+ <RadioGroup aria-labelledby="radiogroup-title-id">
50
+ <div id="radiogroup-title-id" style={{ margin: '1rem 0', fontWeight: '600' }}>
51
+ Выберите язык программирования для изучения.
52
+ </div>
53
+ {itemsRadiobox.map((item) => (
54
+ <Radiobox
55
+ name="radiobox"
56
+ key={item.value}
57
+ value={item.value}
58
+ label={item.label}
59
+ disabled={item.disabled}
60
+ />
61
+ ))}
62
+ </RadioGroup>
63
+ <Slider name="slider" label="Slider" type="single" min={0} max={100} />
64
+ <Slider name="sliderd" label="Slider" type="double" min={0} max={100} />
65
+ <DatePicker label="DatePicker" name="datepicker" />
66
+ <DatePickerRange label="DatePicker" name="datepickerRange" />
67
+ <Button type="submit">Отправить</Button>
68
+ </form>
69
+ );
70
+ };
71
+
72
+ const meta: Meta<StoryDropdownProps> = {
73
+ title: 'plasma_web/Form',
74
+ decorators: [WithTheme],
75
+ component: PlasmaForm,
76
+ };
77
+
78
+ export default meta;
79
+
80
+ const StoryPlasmaForm = () => {
81
+ return <PlasmaForm />;
82
+ };
83
+
84
+ export const DefaultPlasmaForm: StoryObj<StoryDropdownProps> = {
85
+ render: () => <StoryPlasmaForm />,
86
+ };
87
+
88
+ const DefaultForm = () => {
89
+ const onSubmit = (event) => {
90
+ event.preventDefault();
91
+
92
+ const fData = new FormData(event.target);
93
+
94
+ for (const p of fData) {
95
+ const name = p[0];
96
+ const value = p[1];
97
+
98
+ console.log(name, value);
99
+ }
100
+ };
101
+ return (
102
+ <form onSubmit={onSubmit} style={{ display: 'flex', flexDirection: 'column', gap: '20px' }}>
103
+ <TextField name="textfield" placeholder="Textfield" required={false} />
104
+ <TextArea name="textarea" autoResize placeholder="Textarea" />
105
+ <Checkbox name="checkbox" label="Checkbox" />
106
+ <Switch name="switch" label="Switch" labelPosition="after" />
107
+ <RadioGroup aria-labelledby="radiogroup-title-id">
108
+ <div id="radiogroup-title-id" style={{ margin: '1rem 0', fontWeight: '600' }}>
109
+ Выберите язык программирования для изучения.
110
+ </div>
111
+ {itemsRadiobox.map((item) => (
112
+ <Radiobox
113
+ name="radiobox"
114
+ key={item.value}
115
+ value={item.value}
116
+ label={item.label}
117
+ disabled={item.disabled}
118
+ />
119
+ ))}
120
+ </RadioGroup>
121
+ <Slider name="slider" label="Slider" type="single" min={0} max={100} />
122
+ <DatePicker label="DatePicker" name="datepicker" />
123
+ <Button type="submit">Отправить</Button>
124
+ </form>
125
+ );
126
+ };
127
+
128
+ const StoryDefaultForm = () => {
129
+ return <DefaultForm />;
130
+ };
131
+
132
+ export const FormDefault: StoryObj<StoryDropdownProps> = {
133
+ render: () => <StoryDefaultForm />,
134
+ };
135
+
136
+ const DefaultUseForm = () => {
137
+ const { register, handleSubmit } = useReactHookForm();
138
+ const onSubmit = (data) => {
139
+ console.log(data);
140
+ };
141
+
142
+ return (
143
+ <form onSubmit={handleSubmit(onSubmit)} style={{ display: 'flex', flexDirection: 'column', gap: '20px' }}>
144
+ <TextField {...register('textfield')} placeholder="Textfield" required={false} />
145
+ <TextArea {...register('textarea')} autoResize placeholder="Textarea" />
146
+ <Checkbox {...register('checkbox')} label="Checkbox" />
147
+ <Switch {...register('switch')} label="Switch" labelPosition="after" />
148
+ <RadioGroup aria-labelledby="radiogroup-title-id">
149
+ <div id="radiogroup-title-id" style={{ margin: '1rem 0', fontWeight: '600' }}>
150
+ Выберите язык программирования для изучения.
151
+ </div>
152
+ {itemsRadiobox.map((item) => (
153
+ <Radiobox
154
+ {...register('radiobox')}
155
+ key={item.value}
156
+ value={item.value}
157
+ label={item.label}
158
+ disabled={item.disabled}
159
+ />
160
+ ))}
161
+ </RadioGroup>
162
+ <Slider {...register('slider')} label="Slider" type="single" min={0} max={100} />
163
+ <Slider {...register('sliderDouble')} label="Slider" type="double" min={0} max={100} />
164
+ <DatePicker {...register('datePicker')} label="DatePicker" />
165
+ <Button type="submit">Отправить</Button>
166
+ </form>
167
+ );
168
+ };
169
+
170
+ const StoryHookForm = () => {
171
+ return <DefaultUseForm />;
172
+ };
173
+
174
+ export const UseHookForm: StoryObj<StoryDropdownProps> = {
175
+ render: () => <StoryHookForm />,
176
+ };
177
+
178
+ const DefaultUseFormController = () => {
179
+ const { control, handleSubmit } = useReactHookForm({
180
+ defaultValues: {
181
+ textfield: 'John Doe',
182
+ textarea: 'Default description',
183
+ checkbox: true,
184
+ switch: true,
185
+ radiobox: 'c',
186
+ slider: 10,
187
+ sliderd: [10, 20],
188
+ },
189
+ });
190
+ const onSubmit = (data) => {
191
+ console.log(data);
192
+ };
193
+
194
+ return (
195
+ <form onSubmit={handleSubmit(onSubmit)} style={{ display: 'flex', flexDirection: 'column', gap: '20px' }}>
196
+ <Controller
197
+ name="textfield"
198
+ control={control}
199
+ render={({ field }) => <TextField {...field} label="TextField" />}
200
+ />
201
+ <Controller
202
+ name="textarea"
203
+ control={control}
204
+ render={({ field }) => <TextArea {...field} label="TextArea" />}
205
+ />
206
+ <Controller
207
+ name="checkbox"
208
+ control={control}
209
+ render={({ field }) => <Checkbox {...field} checked={field.value} label="Checkbox" />}
210
+ />
211
+ <Controller
212
+ name="switch"
213
+ control={control}
214
+ render={({ field }) => <Switch {...field} checked={field.value} labelPosition="after" label="Switch" />}
215
+ />
216
+ <Controller
217
+ name="slider"
218
+ control={control}
219
+ render={({ field }) => <Slider {...field} type="single" label="Slider" min={0} max={100} />}
220
+ />
221
+ <Controller
222
+ name="sliderd"
223
+ control={control}
224
+ render={({ field }) => <Slider {...field} type="double" label="Slider" min={0} max={100} />}
225
+ />
226
+ <Button type="submit">Отправить</Button>
227
+ </form>
228
+ );
229
+ };
230
+
231
+ const StoryHookFormController = () => {
232
+ return <DefaultUseFormController />;
233
+ };
234
+
235
+ export const UseHookFormController: StoryObj<StoryDropdownProps> = {
236
+ render: () => <StoryHookFormController />,
237
+ };
@@ -4,4 +4,5 @@ export { usePreviousValue } from './usePreviousValue';
4
4
  export { useForceUpdate } from './useForceUpdate';
5
5
  export { useDidMountEffect } from './useDidMountEffect';
6
6
  export { useOutsideClick } from './useOutsideClick';
7
- export { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';
7
+ export { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';
8
+ export { useForm } from './useForm';
@@ -0,0 +1,128 @@
1
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
2
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
5
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
6
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
7
+ import React, { useEffect } from 'react';
8
+ var initData = function initData(ref, defaultValues) {
9
+ if (!ref.current) {
10
+ return;
11
+ }
12
+ var form = ref.current;
13
+ var items = form.elements;
14
+ for (var i = 0; i < items.length; i++) {
15
+ var item = items[i];
16
+ var _name = item.name,
17
+ value = item.value,
18
+ type = item.type;
19
+ if ((type === 'text' || type === 'textarea') && defaultValues[_name]) {
20
+ item.value = String(defaultValues[_name]);
21
+ }
22
+ if (type === 'checkbox' && defaultValues[_name]) {
23
+ item.checked = Boolean(defaultValues[_name]);
24
+ }
25
+ if (type === 'radio' && defaultValues[_name]) {
26
+ item.checked = defaultValues[_name] === value;
27
+ }
28
+ if (type === 'number' && defaultValues[_name]) {
29
+ var sliderType = item.getAttribute('datatype');
30
+ if (sliderType === 'slider-single') {
31
+ item.setAttribute('defaultValue', String(defaultValues[_name]));
32
+ var event = new Event('setInitValue');
33
+ item.dispatchEvent(event);
34
+ }
35
+ if (sliderType === 'slider-double') {
36
+ var isMax = item.getAttribute('data-slidertype') === 'max' ? 1 : 0;
37
+ var _data = defaultValues[_name];
38
+ item.setAttribute('defaultValue', String(_data[isMax]));
39
+ var _event = new Event('setInitValue');
40
+ item.dispatchEvent(_event);
41
+ }
42
+ }
43
+ if (type === 'hidden') {
44
+ var datepickerType = item.getAttribute('datatype');
45
+ if (datepickerType === 'datepicker-single') {
46
+ item.setAttribute('defaultValue', String(defaultValues[_name]));
47
+ var _event2 = new Event('setInitValue');
48
+ item.dispatchEvent(_event2);
49
+ }
50
+ if (datepickerType === 'datepicker-double') {
51
+ var isTo = item.getAttribute('data-datepicker') === 'to' ? 1 : 0;
52
+ var _data2 = defaultValues[_name];
53
+ item.setAttribute('defaultValue', String(_data2[isTo]));
54
+ var _event3 = new Event('setInitValue');
55
+ item.dispatchEvent(_event3);
56
+ }
57
+ }
58
+ }
59
+ };
60
+ var valideParams = function valideParams(name) {
61
+ return name && name !== '';
62
+ };
63
+ export var useForm = function useForm(onSubmit, defaultValues) {
64
+ var formRef = /*#__PURE__*/React.createRef();
65
+ useEffect(function () {
66
+ initData(formRef, defaultValues);
67
+ }, []);
68
+ var formData = function formData(event) {
69
+ event.preventDefault();
70
+ var result = {};
71
+ var form = event.target;
72
+ var items = form.elements;
73
+ for (var i = 0; i < items.length; i++) {
74
+ var item = items[i];
75
+ var _name2 = item.name,
76
+ value = item.value,
77
+ type = item.type;
78
+ if ((type === 'text' || type === 'textarea') && valideParams(_name2)) {
79
+ result[_name2] = value;
80
+ }
81
+ if (type === 'checkbox' && valideParams(_name2)) {
82
+ result[_name2] = item.checked;
83
+ }
84
+ if (type === 'radio' && valideParams(_name2)) {
85
+ if (item.checked) {
86
+ result[_name2] = value;
87
+ } else if (!(_name2 in result)) {
88
+ result[_name2] = null;
89
+ }
90
+ }
91
+ if (type === 'number' && valideParams(_name2)) {
92
+ var sliderType = item.getAttribute('datatype');
93
+ if (sliderType === 'slider-single') {
94
+ result[_name2] = value;
95
+ }
96
+ if (sliderType === 'slider-double') {
97
+ var isMin = item.getAttribute('data-slidertype') === 'min';
98
+ if (isMin) {
99
+ result[_name2] = [Number(value)];
100
+ }
101
+ if (!isMin && Array.isArray(result[_name2])) {
102
+ result[_name2] = [].concat(_toConsumableArray(result[_name2]), [Number(value)]);
103
+ }
104
+ }
105
+ }
106
+ if (type === 'hidden' && valideParams(_name2)) {
107
+ var _sliderType = item.getAttribute('datatype');
108
+ if (_sliderType === 'datepicker-single') {
109
+ result[_name2] = value;
110
+ }
111
+ if (_sliderType === 'datepicker-double') {
112
+ var _isMin = item.getAttribute('data-datepicker') === 'from';
113
+ if (_isMin) {
114
+ result[_name2] = [String(value)];
115
+ }
116
+ if (!_isMin && Array.isArray(result[_name2])) {
117
+ result[_name2] = [].concat(_toConsumableArray(result[_name2]), [String(value)]);
118
+ }
119
+ }
120
+ }
121
+ }
122
+ onSubmit(result);
123
+ };
124
+ return {
125
+ formRef: formRef,
126
+ formData: formData
127
+ };
128
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -3,6 +3,7 @@ export { extractTextFrom } from './extractTextFrom';
3
3
  export { getSizeValueFromProp } from './getSizeValueFromProp';
4
4
  export { IS_REACT_18, safeUseId } from './react';
5
5
  export { isNumber } from './isNumber';
6
+ export { mergeRefs, setRefList } from './setRefList';
6
7
  export { isEmpty } from './isEmpty';
7
8
  import * as _constants from './constants';
8
9
  export { _constants as constants };
@@ -0,0 +1,4 @@
1
+ var _templateObject;
2
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
3
+ import styled from 'styled-components';
4
+ export var InputHidden = /*#__PURE__*/styled.input(_templateObject || (_templateObject = /*#__PURE__*/_taggedTemplateLiteral(["\n visibility: hidden;\n width: 0;\n height: 0;\n opacity: 0;\n margin: 0;\n padding: 0;\n border: none;\n"])));
@@ -0,0 +1,20 @@
1
+ export function mergeRefs() {
2
+ for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {
3
+ refs[_key] = arguments[_key];
4
+ }
5
+ return function (val) {
6
+ setRefList.apply(void 0, [val].concat(refs));
7
+ };
8
+ }
9
+ export function setRefList(val) {
10
+ for (var _len2 = arguments.length, refs = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
11
+ refs[_key2 - 1] = arguments[_key2];
12
+ }
13
+ refs.forEach(function (ref) {
14
+ if (typeof ref === 'function') {
15
+ ref(val);
16
+ } else if (ref != null) {
17
+ ref.current = val;
18
+ }
19
+ });
20
+ }
@@ -57,7 +57,6 @@ var buttonRoot = function buttonRoot(Root) {
57
57
  value: value,
58
58
  disabled: disabled,
59
59
  focused: focused || outlined,
60
- contentPlacing: contentPlacing,
61
60
  className: cx(squareClass, stretchingClass, classes.buttonItem, isLoadingClass, className),
62
61
  style: _objectSpread2(_objectSpread2({}, style), {}, {
63
62
  '--plasma_computed-btn-br': buttonBorderRadius,
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sources":["../../../src/components/Button/Button.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport type { CSSProperties } from 'react';\n\nimport type { RootProps } from '../../engines';\nimport { convertRoundnessMatrix } from '../../utils/roundness';\nimport { cx } from '../../utils';\n\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\nimport { base as focusedCSS } from './variations/_focused/base';\nimport { base as stretchingCSS } from './variations/_stretching/base';\nimport { base as blurredCSS } from './variations/_blurred/base';\nimport type { ButtonProps, ContentPlacementMapper } from './Button.types';\nimport {\n base,\n ButtonText,\n ButtonValue,\n Loader,\n LoadWrap,\n StyledContentLeft,\n StyledContentRight,\n StyledSpinner,\n} from './Button.styles';\nimport { classes, tokens } from './Button.tokens';\n\nexport const buttonRoot = (Root: RootProps<HTMLButtonElement, ButtonProps>) =>\n forwardRef<HTMLButtonElement, ButtonProps>((props, ref) => {\n const {\n children,\n view,\n size,\n text,\n value,\n contentLeft,\n contentRight,\n contentPlacing = 'default',\n isLoading,\n loader,\n stretch,\n square,\n pin,\n disabled,\n focused,\n outlined,\n className,\n blur,\n style,\n stretching = 'auto',\n ...rest\n } = props;\n\n const txt = typeof children === 'string' ? children : text;\n\n const stretchingClass = stretch\n ? classes.filledStretching\n : classes[`${stretching}Stretching` as keyof typeof classes];\n const contentRelaxedClass = contentPlacing === 'relaxed' ? classes.contentRelaxed : undefined;\n const squareClass = square ? classes.buttonSquare : undefined;\n const isLoadingClass = isLoading ? classes.buttonLoading : undefined;\n const buttonBorderRadius = pin\n ? convertRoundnessMatrix(pin, `var(${tokens.buttonRadius})`, `var(${tokens.buttonHeight})`)\n : `var(${tokens.buttonRadius}, calc(var(${tokens.buttonHeight}) / 4))`;\n\n const contentPlacingMapper: ContentPlacementMapper = {\n default: 'center',\n relaxed: 'space-between',\n };\n\n const contentPlacementValue = contentPlacing ? contentPlacingMapper[contentPlacing] : 'center';\n\n return (\n <Root\n type=\"button\"\n ref={ref}\n view={view}\n size={size}\n value={value}\n disabled={disabled}\n focused={focused || outlined}\n contentPlacing={contentPlacing}\n className={cx(squareClass, stretchingClass, classes.buttonItem, isLoadingClass, className)}\n style={\n {\n ...style,\n '--plasma_computed-btn-br': buttonBorderRadius,\n '--plasma_private-blur': blur,\n } as CSSProperties\n }\n {...rest}\n >\n <LoadWrap contentPlacing={contentPlacementValue} isLoading={isLoading}>\n {contentLeft && <StyledContentLeft>{contentLeft}</StyledContentLeft>}\n {txt ? <ButtonText className={contentRelaxedClass}>{txt}</ButtonText> : children}\n {value && <ButtonValue>{value}</ButtonValue>}\n {contentRight && <StyledContentRight>{contentRight}</StyledContentRight>}\n </LoadWrap>\n {isLoading && <Loader>{loader || <StyledSpinner />}</Loader>}\n </Root>\n );\n });\n\nexport const buttonConfig = {\n name: 'Button',\n tag: 'button',\n layout: buttonRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n focused: {\n css: focusedCSS,\n // TODO: isLoading => disabled\n },\n blurred: {\n css: blurredCSS,\n },\n stretching: {\n css: stretchingCSS,\n },\n },\n defaults: {\n view: 'secondary',\n size: 'm',\n stretching: 'auto',\n },\n};\n"],"names":["buttonRoot","Root","forwardRef","props","ref","children","view","size","text","value","contentLeft","contentRight","_props$contentPlacing","contentPlacing","isLoading","loader","stretch","square","pin","disabled","focused","outlined","className","blur","style","_props$stretching","stretching","rest","_objectWithoutProperties","_excluded","txt","stretchingClass","classes","filledStretching","concat","contentRelaxedClass","contentRelaxed","undefined","squareClass","buttonSquare","isLoadingClass","buttonLoading","buttonBorderRadius","convertRoundnessMatrix","tokens","buttonRadius","buttonHeight","contentPlacingMapper","relaxed","contentPlacementValue","React","createElement","_extends","type","cx","buttonItem","_objectSpread","LoadWrap","StyledContentLeft","ButtonText","ButtonValue","StyledContentRight","Loader","_StyledSpinner","StyledSpinner","buttonConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","disabledCSS","attrs","focusedCSS","blurred","blurredCSS","stretchingCSS","defaults"],"mappings":";;;;;;;;;;;;;;;IA0BaA,UAAU,GAAG,SAAbA,UAAUA,CAAIC,IAA+C,EAAA;AAAA,EAAA,oBACtEC,UAAU,CAAiC,UAACC,KAAK,EAAEC,GAAG,EAAK;AACvD,IAAA,IACIC,QAAQ,GAqBRF,KAAK,CArBLE,QAAQ;MACRC,IAAI,GAoBJH,KAAK,CApBLG,IAAI;MACJC,IAAI,GAmBJJ,KAAK,CAnBLI,IAAI;MACJC,IAAI,GAkBJL,KAAK,CAlBLK,IAAI;MACJC,KAAK,GAiBLN,KAAK,CAjBLM,KAAK;MACLC,WAAW,GAgBXP,KAAK,CAhBLO,WAAW;MACXC,YAAY,GAeZR,KAAK,CAfLQ,YAAY;MAAAC,qBAAA,GAeZT,KAAK,CAdLU,cAAc;AAAdA,MAAAA,cAAc,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,SAAS,GAAAA,qBAAA;MAC1BE,SAAS,GAaTX,KAAK,CAbLW,SAAS;MACTC,MAAM,GAYNZ,KAAK,CAZLY,MAAM;MACNC,OAAO,GAWPb,KAAK,CAXLa,OAAO;MACPC,MAAM,GAUNd,KAAK,CAVLc,MAAM;MACNC,GAAG,GASHf,KAAK,CATLe,GAAG;MACHC,QAAQ,GAQRhB,KAAK,CARLgB,QAAQ;MACRC,OAAO,GAOPjB,KAAK,CAPLiB,OAAO;MACPC,QAAQ,GAMRlB,KAAK,CANLkB,QAAQ;MACRC,SAAS,GAKTnB,KAAK,CALLmB,SAAS;MACTC,IAAI,GAIJpB,KAAK,CAJLoB,IAAI;MACJC,KAAK,GAGLrB,KAAK,CAHLqB,KAAK;MAAAC,iBAAA,GAGLtB,KAAK,CAFLuB,UAAU;AAAVA,MAAAA,UAAU,GAAAD,iBAAA,KAAG,KAAA,CAAA,GAAA,MAAM,GAAAA,iBAAA;AAChBE,MAAAA,IAAI,GAAAC,wBAAA,CACPzB,KAAK,EAAA0B,SAAA,CAAA,CAAA;IAET,IAAMC,GAAG,GAAG,OAAOzB,QAAQ,KAAK,QAAQ,GAAGA,QAAQ,GAAGG,IAAI,CAAA;AAE1D,IAAA,IAAMuB,eAAe,GAAGf,OAAO,GACzBgB,OAAO,CAACC,gBAAgB,GACxBD,OAAO,CAAA,EAAA,CAAAE,MAAA,CAAIR,UAAU,EAAqC,YAAA,CAAA,CAAA,CAAA;IAChE,IAAMS,mBAAmB,GAAGtB,cAAc,KAAK,SAAS,GAAGmB,OAAO,CAACI,cAAc,GAAGC,SAAS,CAAA;IAC7F,IAAMC,WAAW,GAAGrB,MAAM,GAAGe,OAAO,CAACO,YAAY,GAAGF,SAAS,CAAA;IAC7D,IAAMG,cAAc,GAAG1B,SAAS,GAAGkB,OAAO,CAACS,aAAa,GAAGJ,SAAS,CAAA;AACpE,IAAA,IAAMK,kBAAkB,GAAGxB,GAAG,GACxByB,sBAAsB,CAACzB,GAAG,EAAAgB,MAAAA,CAAAA,MAAA,CAASU,MAAM,CAACC,YAAY,eAAAX,MAAA,CAAYU,MAAM,CAACE,YAAY,EAAA,GAAA,CAAG,CAAC,GAAA,MAAA,CAAAZ,MAAA,CAClFU,MAAM,CAACC,YAAY,iBAAAX,MAAA,CAAcU,MAAM,CAACE,YAAY,EAAS,SAAA,CAAA,CAAA;AAE1E,IAAA,IAAMC,oBAA4C,GAAG;AACjD,MAAA,SAAA,EAAS,QAAQ;AACjBC,MAAAA,OAAO,EAAE,eAAA;KACZ,CAAA;IAED,IAAMC,qBAAqB,GAAGpC,cAAc,GAAGkC,oBAAoB,CAAClC,cAAc,CAAC,GAAG,QAAQ,CAAA;AAE9F,IAAA,oBACIqC,KAAA,CAAAC,aAAA,CAAClD,IAAI,EAAAmD,QAAA,CAAA;AACDC,MAAAA,IAAI,EAAC,QAAQ;AACbjD,MAAAA,GAAG,EAAEA,GAAI;AACTE,MAAAA,IAAI,EAAEA,IAAK;AACXC,MAAAA,IAAI,EAAEA,IAAK;AACXE,MAAAA,KAAK,EAAEA,KAAM;AACbU,MAAAA,QAAQ,EAAEA,QAAS;MACnBC,OAAO,EAAEA,OAAO,IAAIC,QAAS;AAC7BR,MAAAA,cAAc,EAAEA,cAAe;AAC/BS,MAAAA,SAAS,EAAEgC,EAAE,CAAChB,WAAW,EAAEP,eAAe,EAAEC,OAAO,CAACuB,UAAU,EAAEf,cAAc,EAAElB,SAAS,CAAE;AAC3FE,MAAAA,KAAK,EAAAgC,cAAA,CAAAA,cAAA,KAEMhC,KAAK,CAAA,EAAA,EAAA,EAAA;AACR,QAAA,0BAA0B,EAAEkB,kBAAkB;AAC9C,QAAA,uBAAuB,EAAEnB,IAAAA;AAAI,OAAA,CAAA;AAEpC,KAAA,EACGI,IAAI,CAERuB,eAAAA,KAAA,CAAAC,aAAA,CAACM,QAAQ,EAAA;AAAC5C,MAAAA,cAAc,EAAEoC,qBAAsB;AAACnC,MAAAA,SAAS,EAAEA,SAAAA;AAAU,KAAA,EACjEJ,WAAW,iBAAIwC,KAAA,CAAAC,aAAA,CAACO,iBAAiB,EAAA,IAAA,EAAEhD,WAA+B,CAAC,EACnEoB,GAAG,gBAAGoB,KAAA,CAAAC,aAAA,CAACQ,UAAU,EAAA;AAACrC,MAAAA,SAAS,EAAEa,mBAAAA;KAAsBL,EAAAA,GAAgB,CAAC,GAAGzB,QAAQ,EAC/EI,KAAK,iBAAIyC,KAAA,CAAAC,aAAA,CAACS,WAAW,EAAEnD,IAAAA,EAAAA,KAAmB,CAAC,EAC3CE,YAAY,iBAAIuC,KAAA,CAAAC,aAAA,CAACU,kBAAkB,EAAElD,IAAAA,EAAAA,YAAiC,CACjE,CAAC,EACVG,SAAS,iBAAIoC,KAAA,CAAAC,aAAA,CAACW,MAAM,EAAE/C,IAAAA,EAAAA,MAAM,IAAAgD,cAAA,KAAAA,cAAA,gBAAIb,KAAA,CAAAC,aAAA,CAACa,aAAa,EAAE,IAAA,CAAC,CAAS,CACzD,CAAC,CAAA;AAEf,GAAC,CAAC,CAAA;AAAA,EAAA;AAEC,IAAMC,YAAY,GAAG;AACxBC,EAAAA,IAAI,EAAE,QAAQ;AACdC,EAAAA,GAAG,EAAE,QAAQ;AACbC,EAAAA,MAAM,EAAEpE,UAAU;AAClBqE,EAAAA,IAAI,EAAJA,IAAI;AACJC,EAAAA,UAAU,EAAE;AACRhE,IAAAA,IAAI,EAAE;AACFiE,MAAAA,GAAG,EAAEC,MAAAA;KACR;AACDjE,IAAAA,IAAI,EAAE;AACFgE,MAAAA,GAAG,EAAEE,MAAAA;KACR;AACDtD,IAAAA,QAAQ,EAAE;AACNoD,MAAAA,GAAG,EAAEG,MAAW;AAChBC,MAAAA,KAAK,EAAE,IAAA;KACV;AACDvD,IAAAA,OAAO,EAAE;AACLmD,MAAAA,GAAG,EAAEK,MAAAA;AACL;KACH;AACDC,IAAAA,OAAO,EAAE;AACLN,MAAAA,GAAG,EAAEO,MAAAA;KACR;AACDpD,IAAAA,UAAU,EAAE;AACR6C,MAAAA,GAAG,EAAEQ,MAAAA;AACT,KAAA;GACH;AACDC,EAAAA,QAAQ,EAAE;AACN1E,IAAAA,IAAI,EAAE,WAAW;AACjBC,IAAAA,IAAI,EAAE,GAAG;AACTmB,IAAAA,UAAU,EAAE,MAAA;AAChB,GAAA;AACJ;;;;"}
1
+ {"version":3,"file":"Button.js","sources":["../../../src/components/Button/Button.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport type { CSSProperties } from 'react';\n\nimport type { RootProps } from '../../engines';\nimport { convertRoundnessMatrix } from '../../utils/roundness';\nimport { cx } from '../../utils';\n\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\nimport { base as focusedCSS } from './variations/_focused/base';\nimport { base as stretchingCSS } from './variations/_stretching/base';\nimport { base as blurredCSS } from './variations/_blurred/base';\nimport type { ButtonProps, ContentPlacementMapper } from './Button.types';\nimport {\n base,\n ButtonText,\n ButtonValue,\n Loader,\n LoadWrap,\n StyledContentLeft,\n StyledContentRight,\n StyledSpinner,\n} from './Button.styles';\nimport { classes, tokens } from './Button.tokens';\n\nexport const buttonRoot = (Root: RootProps<HTMLButtonElement, ButtonProps>) =>\n forwardRef<HTMLButtonElement, ButtonProps>((props, ref) => {\n const {\n children,\n view,\n size,\n text,\n value,\n contentLeft,\n contentRight,\n contentPlacing = 'default',\n isLoading,\n loader,\n stretch,\n square,\n pin,\n disabled,\n focused,\n outlined,\n className,\n blur,\n style,\n stretching = 'auto',\n ...rest\n } = props;\n\n const txt = typeof children === 'string' ? children : text;\n\n const stretchingClass = stretch\n ? classes.filledStretching\n : classes[`${stretching}Stretching` as keyof typeof classes];\n const contentRelaxedClass = contentPlacing === 'relaxed' ? classes.contentRelaxed : undefined;\n const squareClass = square ? classes.buttonSquare : undefined;\n const isLoadingClass = isLoading ? classes.buttonLoading : undefined;\n const buttonBorderRadius = pin\n ? convertRoundnessMatrix(pin, `var(${tokens.buttonRadius})`, `var(${tokens.buttonHeight})`)\n : `var(${tokens.buttonRadius}, calc(var(${tokens.buttonHeight}) / 4))`;\n\n const contentPlacingMapper: ContentPlacementMapper = {\n default: 'center',\n relaxed: 'space-between',\n };\n\n const contentPlacementValue = contentPlacing ? contentPlacingMapper[contentPlacing] : 'center';\n\n return (\n <Root\n type=\"button\"\n ref={ref}\n view={view}\n size={size}\n value={value}\n disabled={disabled}\n focused={focused || outlined}\n className={cx(squareClass, stretchingClass, classes.buttonItem, isLoadingClass, className)}\n style={\n {\n ...style,\n '--plasma_computed-btn-br': buttonBorderRadius,\n '--plasma_private-blur': blur,\n } as CSSProperties\n }\n {...rest}\n >\n <LoadWrap contentPlacing={contentPlacementValue} isLoading={isLoading}>\n {contentLeft && <StyledContentLeft>{contentLeft}</StyledContentLeft>}\n {txt ? <ButtonText className={contentRelaxedClass}>{txt}</ButtonText> : children}\n {value && <ButtonValue>{value}</ButtonValue>}\n {contentRight && <StyledContentRight>{contentRight}</StyledContentRight>}\n </LoadWrap>\n {isLoading && <Loader>{loader || <StyledSpinner />}</Loader>}\n </Root>\n );\n });\n\nexport const buttonConfig = {\n name: 'Button',\n tag: 'button',\n layout: buttonRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n focused: {\n css: focusedCSS,\n // TODO: isLoading => disabled\n },\n blurred: {\n css: blurredCSS,\n },\n stretching: {\n css: stretchingCSS,\n },\n },\n defaults: {\n view: 'secondary',\n size: 'm',\n stretching: 'auto',\n },\n};\n"],"names":["buttonRoot","Root","forwardRef","props","ref","children","view","size","text","value","contentLeft","contentRight","_props$contentPlacing","contentPlacing","isLoading","loader","stretch","square","pin","disabled","focused","outlined","className","blur","style","_props$stretching","stretching","rest","_objectWithoutProperties","_excluded","txt","stretchingClass","classes","filledStretching","concat","contentRelaxedClass","contentRelaxed","undefined","squareClass","buttonSquare","isLoadingClass","buttonLoading","buttonBorderRadius","convertRoundnessMatrix","tokens","buttonRadius","buttonHeight","contentPlacingMapper","relaxed","contentPlacementValue","React","createElement","_extends","type","cx","buttonItem","_objectSpread","LoadWrap","StyledContentLeft","ButtonText","ButtonValue","StyledContentRight","Loader","_StyledSpinner","StyledSpinner","buttonConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","disabledCSS","attrs","focusedCSS","blurred","blurredCSS","stretchingCSS","defaults"],"mappings":"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"}
@@ -5,6 +5,8 @@ import { formatCalendarValue, formatInputValue, getDateFormatDelimiter } from '.
5
5
  import { useDatePicker } from '../hooks/useDatePicker.js';
6
6
  import { classes } from '../DatePicker.tokens.js';
7
7
  import { useKeyNavigation } from '../hooks/useKeyboardNavigation.js';
8
+ import { setInitValue } from '../utils/setInitValue.js';
9
+ import { InputHidden } from '../../../utils/inputHidden.js';
8
10
  import { base as base$2 } from './variations/_size/base.js';
9
11
  import { base as base$1 } from './variations/_view/base.js';
10
12
  import { base as base$3 } from './variations/_disabled/base.js';
@@ -12,7 +14,7 @@ import { base as base$4 } from './variations/_readonly/base.js';
12
14
  import { StyledLabel, LeftHelper, base, StyledRange } from './RangeDate.styles.js';
13
15
  import { RangeDatePopover } from './RangeDatePopover/RangeDatePopover.js';
14
16
 
15
- var _excluded = ["className", "isDoubleCalendar", "opened", "label", "leftHelper", "contentLeft", "contentRight", "view", "size", "readOnly", "disabled", "dividerVariant", "dividerIcon", "defaultFirstDate", "defaultSecondDate", "firstValueError", "secondValueError", "firstValueSuccess", "secondValueSuccess", "firstPlaceholder", "secondPlaceholder", "firstTextfieldContentLeft", "firstTextfieldContentRight", "secondTextfieldContentLeft", "secondTextfieldContentRight", "firstTextfieldTextBefore", "secondTextfieldTextBefore", "firstTextfieldTextAfter", "secondTextfieldTextAfter", "format", "lang", "maskWithFormat", "min", "max", "includeEdgeDates", "eventList", "disabledList", "eventMonthList", "disabledMonthList", "eventQuarterList", "disabledQuarterList", "eventYearList", "disabledYearList", "type", "placement", "closeOnOverlayClick", "closeOnEsc", "offset", "onToggle", "onChangeFirstValue", "onChangeSecondValue", "onCommitFirstDate", "onCommitSecondDate", "onFocusFirstTextfield", "onFocusSecondTextfield", "onBlurFirstTextfield", "onBlurSecondTextfield"];
17
+ var _excluded = ["className", "isDoubleCalendar", "opened", "label", "leftHelper", "contentLeft", "contentRight", "view", "size", "readOnly", "disabled", "name", "dividerVariant", "dividerIcon", "defaultFirstDate", "defaultSecondDate", "firstValueError", "secondValueError", "firstValueSuccess", "secondValueSuccess", "firstPlaceholder", "secondPlaceholder", "firstTextfieldContentLeft", "firstTextfieldContentRight", "secondTextfieldContentLeft", "secondTextfieldContentRight", "firstTextfieldTextBefore", "secondTextfieldTextBefore", "firstTextfieldTextAfter", "secondTextfieldTextAfter", "format", "lang", "maskWithFormat", "min", "max", "includeEdgeDates", "eventList", "disabledList", "eventMonthList", "disabledMonthList", "eventQuarterList", "disabledQuarterList", "eventYearList", "disabledYearList", "type", "placement", "closeOnOverlayClick", "closeOnEsc", "offset", "onToggle", "onChangeFirstValue", "onChangeSecondValue", "onCommitFirstDate", "onCommitSecondDate", "onFocusFirstTextfield", "onFocusSecondTextfield", "onBlurFirstTextfield", "onBlurSecondTextfield"];
16
18
  var datePickerRangeRoot = function datePickerRangeRoot(Root) {
17
19
  return /*#__PURE__*/forwardRef(function (_ref, ref) {
18
20
  var _rangeRef$current, _rangeRef$current2;
@@ -31,6 +33,7 @@ var datePickerRangeRoot = function datePickerRangeRoot(Root) {
31
33
  readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
32
34
  _ref$disabled = _ref.disabled,
33
35
  disabled = _ref$disabled === void 0 ? false : _ref$disabled,
36
+ name = _ref.name,
34
37
  _ref$dividerVariant = _ref.dividerVariant,
35
38
  dividerVariant = _ref$dividerVariant === void 0 ? 'dash' : _ref$dividerVariant,
36
39
  dividerIcon = _ref.dividerIcon,
@@ -90,6 +93,8 @@ var datePickerRangeRoot = function datePickerRangeRoot(Root) {
90
93
  rest = _objectWithoutProperties(_ref, _excluded);
91
94
  var rangeRef = ref && 'current' in ref ? ref : /*#__PURE__*/createRef();
92
95
  var rootRef = useRef(null);
96
+ var innerRefFirst = useRef(null);
97
+ var innerRefSecond = useRef(null);
93
98
  var _useState = useState(rangeRef === null || rangeRef === void 0 || (_rangeRef$current = rangeRef.current) === null || _rangeRef$current === void 0 ? void 0 : _rangeRef$current.firstTextField()),
94
99
  _useState2 = _slicedToArray(_useState, 2),
95
100
  firstInputRef = _useState2[0],
@@ -143,6 +148,7 @@ var datePickerRangeRoot = function datePickerRangeRoot(Root) {
143
148
  valueError: firstValueError,
144
149
  valueSuccess: firstValueSuccess,
145
150
  inputRef: firstInputRef,
151
+ name: name,
146
152
  onChangeValue: onChangeFirstValue,
147
153
  onCommitDate: onCommitFirstDate
148
154
  }),
@@ -183,6 +189,23 @@ var datePickerRangeRoot = function datePickerRangeRoot(Root) {
183
189
  onToggle: handleToggle
184
190
  }),
185
191
  onKeyDown = _useKeyNavigation.onKeyDown;
192
+ var setValue = function setValue(e) {
193
+ var firstElement = innerRefFirst.current;
194
+ var firstValueInit = String(firstElement.getAttribute('defaultValue'));
195
+ var secondValueInit = setInitValue(e);
196
+ handleCommitFirstDate(firstValueInit, true, false);
197
+ handleCommitSecondDate(secondValueInit, true, false);
198
+ };
199
+ useEffect(function () {
200
+ if (innerRefSecond.current) {
201
+ innerRefSecond.current.addEventListener('setInitValue', setValue);
202
+ }
203
+ return function () {
204
+ if (innerRefSecond.current) {
205
+ innerRefSecond.current.removeEventListener('setInitValue', setValue);
206
+ }
207
+ };
208
+ }, [innerRefSecond]);
186
209
  var RangeComponent = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(StyledRange, {
187
210
  ref: rangeRef,
188
211
  dividerIcon: dividerIcon,
@@ -209,6 +232,7 @@ var datePickerRangeRoot = function datePickerRangeRoot(Root) {
209
232
  secondValueSuccess: secondValueSuccess,
210
233
  onChangeFirstValue: handleChangeFirstValue,
211
234
  onChangeSecondValue: handleChangeSecondValue,
235
+ name: name,
212
236
  onSearchFirstValue: function onSearchFirstValue(_, date) {
213
237
  handleCommitFirstDate(String(date), true, false);
214
238
  if (!calendarSecondValue || secondValueError) {
@@ -312,7 +336,23 @@ var datePickerRangeRoot = function datePickerRangeRoot(Root) {
312
336
  setIsInnerOpen(false);
313
337
  }
314
338
  }
315
- }), leftHelper && /*#__PURE__*/React.createElement(LeftHelper, null, leftHelper));
339
+ }), leftHelper && /*#__PURE__*/React.createElement(LeftHelper, null, leftHelper), /*#__PURE__*/React.createElement(InputHidden, {
340
+ name: name,
341
+ type: "hidden",
342
+ datatype: "datepicker-double",
343
+ "data-datepicker": "from",
344
+ value: inputFirstValue,
345
+ ref: innerRefFirst,
346
+ onChange: function onChange() {}
347
+ }), /*#__PURE__*/React.createElement(InputHidden, {
348
+ name: name,
349
+ type: "hidden",
350
+ datatype: "datepicker-double",
351
+ "data-datepicker": "to",
352
+ value: inputSecondValue,
353
+ ref: innerRefSecond,
354
+ onChange: function onChange() {}
355
+ }));
316
356
  });
317
357
  };
318
358
  var datePickerRangeConfig = {