@pie-lib/config-ui 12.1.1-next.2 → 12.1.1-next.4

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 (115) hide show
  1. package/lib/__tests__/alert-dialog.test.js +1 -6
  2. package/lib/__tests__/checkbox.test.js +1 -1
  3. package/lib/__tests__/choice-utils.test.js +1 -3
  4. package/lib/__tests__/form-section.test.js +1 -1
  5. package/lib/__tests__/help.test.js +1 -9
  6. package/lib/__tests__/input.test.js +1 -1
  7. package/lib/__tests__/langs.test.js +1 -11
  8. package/lib/__tests__/number-text-field-custom.test.js +1 -3
  9. package/lib/__tests__/number-text-field.test.js +1 -1
  10. package/lib/__tests__/radio-with-label.test.js +1 -1
  11. package/lib/__tests__/settings-panel.test.js +1 -11
  12. package/lib/__tests__/settings.test.js +1 -1
  13. package/lib/__tests__/tabs.test.js +1 -1
  14. package/lib/__tests__/with-stateful-model.test.js +1 -12
  15. package/lib/alert-dialog.js +1 -2
  16. package/lib/alert-dialog.js.map +1 -1
  17. package/lib/checkbox.js +1 -11
  18. package/lib/checkbox.js.map +1 -1
  19. package/lib/choice-configuration/__tests__/feedback-menu.test.js +1 -1
  20. package/lib/choice-configuration/__tests__/index.test.js +1 -11
  21. package/lib/choice-configuration/feedback-menu.js +1 -6
  22. package/lib/choice-configuration/feedback-menu.js.map +1 -1
  23. package/lib/choice-configuration/index.js +1 -13
  24. package/lib/choice-configuration/index.js.map +1 -1
  25. package/lib/choice-utils.js +3 -14
  26. package/lib/choice-utils.js.map +1 -1
  27. package/lib/feedback-config/__tests__/feedback-config.test.js +1 -11
  28. package/lib/feedback-config/feedback-selector.js +1 -15
  29. package/lib/feedback-config/feedback-selector.js.map +1 -1
  30. package/lib/feedback-config/group.js +1 -6
  31. package/lib/feedback-config/group.js.map +1 -1
  32. package/lib/feedback-config/index.js +3 -20
  33. package/lib/feedback-config/index.js.map +1 -1
  34. package/lib/form-section.js +1 -2
  35. package/lib/form-section.js.map +1 -1
  36. package/lib/help.js +1 -3
  37. package/lib/help.js.map +1 -1
  38. package/lib/index.js +1 -8
  39. package/lib/index.js.map +1 -1
  40. package/lib/input.js +1 -9
  41. package/lib/input.js.map +1 -1
  42. package/lib/inputs.js +1 -11
  43. package/lib/inputs.js.map +1 -1
  44. package/lib/langs.js +1 -6
  45. package/lib/langs.js.map +1 -1
  46. package/lib/layout/config-layout.js +1 -10
  47. package/lib/layout/config-layout.js.map +1 -1
  48. package/lib/layout/index.js +1 -2
  49. package/lib/layout/index.js.map +1 -1
  50. package/lib/layout/layout-contents.js +1 -12
  51. package/lib/layout/layout-contents.js.map +1 -1
  52. package/lib/layout/settings-box.js +1 -3
  53. package/lib/layout/settings-box.js.map +1 -1
  54. package/lib/mui-box/index.js +1 -2
  55. package/lib/mui-box/index.js.map +1 -1
  56. package/lib/number-text-field-custom.js +9 -26
  57. package/lib/number-text-field-custom.js.map +1 -1
  58. package/lib/number-text-field.js +8 -16
  59. package/lib/number-text-field.js.map +1 -1
  60. package/lib/radio-with-label.js +1 -2
  61. package/lib/radio-with-label.js.map +1 -1
  62. package/lib/settings/display-size.js +1 -11
  63. package/lib/settings/display-size.js.map +1 -1
  64. package/lib/settings/index.js +1 -13
  65. package/lib/settings/index.js.map +1 -1
  66. package/lib/settings/panel.js +6 -22
  67. package/lib/settings/panel.js.map +1 -1
  68. package/lib/settings/settings-radio-label.js +1 -2
  69. package/lib/settings/settings-radio-label.js.map +1 -1
  70. package/lib/settings/toggle.js +1 -2
  71. package/lib/settings/toggle.js.map +1 -1
  72. package/lib/tabs/index.js +1 -5
  73. package/lib/tabs/index.js.map +1 -1
  74. package/lib/tags-input/__tests__/index.test.js +1 -1
  75. package/lib/tags-input/index.js +3 -11
  76. package/lib/tags-input/index.js.map +1 -1
  77. package/lib/two-choice.js +1 -14
  78. package/lib/two-choice.js.map +1 -1
  79. package/lib/with-stateful-model.js +1 -3
  80. package/lib/with-stateful-model.js.map +1 -1
  81. package/package.json +6 -6
  82. package/src/__tests__/alert-dialog.test.jsx +13 -113
  83. package/src/__tests__/checkbox.test.jsx +17 -114
  84. package/src/__tests__/form-section.test.jsx +2 -8
  85. package/src/__tests__/help.test.jsx +18 -18
  86. package/src/__tests__/input.test.jsx +22 -58
  87. package/src/__tests__/langs.test.jsx +15 -96
  88. package/src/__tests__/number-text-field-custom.test.jsx +34 -217
  89. package/src/__tests__/number-text-field.test.jsx +21 -99
  90. package/src/__tests__/radio-with-label.test.jsx +19 -123
  91. package/src/__tests__/settings-panel.test.js +1 -1
  92. package/src/__tests__/settings.test.jsx +17 -80
  93. package/src/__tests__/tabs.test.jsx +2 -7
  94. package/src/__tests__/with-stateful-model.test.jsx +3 -9
  95. package/src/alert-dialog.jsx +19 -2
  96. package/src/checkbox.jsx +1 -9
  97. package/src/choice-configuration/__tests__/feedback-menu.test.jsx +6 -18
  98. package/src/choice-configuration/feedback-menu.jsx +7 -1
  99. package/src/choice-utils.js +1 -1
  100. package/src/feedback-config/__tests__/feedback-config.test.jsx +2 -2
  101. package/src/feedback-config/index.jsx +2 -1
  102. package/src/index.js +2 -2
  103. package/src/inputs.jsx +3 -16
  104. package/src/langs.jsx +9 -4
  105. package/src/layout/config-layout.jsx +2 -3
  106. package/src/number-text-field-custom.jsx +5 -3
  107. package/src/number-text-field.jsx +3 -2
  108. package/src/radio-with-label.jsx +1 -5
  109. package/src/settings/display-size.jsx +1 -1
  110. package/src/settings/index.js +1 -1
  111. package/src/settings/panel.jsx +4 -5
  112. package/src/settings/settings-radio-label.jsx +1 -5
  113. package/src/settings/toggle.jsx +1 -5
  114. package/src/tags-input/__tests__/index.test.jsx +1 -1
  115. package/src/tags-input/index.jsx +1 -1
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { render, screen, waitFor, fireEvent } from '@testing-library/react';
2
+ import { fireEvent, render, screen, waitFor } from '@testing-library/react';
3
3
  import userEvent from '@testing-library/user-event';
4
4
  import { NumberTextField } from '../number-text-field';
5
5
 
@@ -29,16 +29,12 @@ describe('NumberTextField', () => {
29
29
  });
30
30
 
31
31
  it('renders with suffix', () => {
32
- const { container } = render(
33
- <NumberTextField {...defaultProps} suffix="px" />,
34
- );
32
+ const { container } = render(<NumberTextField {...defaultProps} suffix="px" />);
35
33
  expect(screen.getByText('px')).toBeInTheDocument();
36
34
  });
37
35
 
38
36
  it('renders without suffix when not provided', () => {
39
- const { container } = render(
40
- <NumberTextField {...defaultProps} />,
41
- );
37
+ const { container } = render(<NumberTextField {...defaultProps} />);
42
38
  const input = screen.getByRole('spinbutton');
43
39
  expect(input).toBeInTheDocument();
44
40
  });
@@ -56,30 +52,22 @@ describe('NumberTextField', () => {
56
52
  });
57
53
 
58
54
  it('renders with custom variant', () => {
59
- const { container } = render(
60
- <NumberTextField {...defaultProps} variant="outlined" />,
61
- );
55
+ const { container } = render(<NumberTextField {...defaultProps} variant="outlined" />);
62
56
  expect(container.querySelector('input')).toBeInTheDocument();
63
57
  });
64
58
 
65
59
  it('renders with disableUnderline variant', () => {
66
- const { container } = render(
67
- <NumberTextField {...defaultProps} disableUnderline={true} />,
68
- );
60
+ const { container } = render(<NumberTextField {...defaultProps} disableUnderline={true} />);
69
61
  expect(container.querySelector('input')).toBeInTheDocument();
70
62
  });
71
63
 
72
64
  it('renders with custom className', () => {
73
- const { container } = render(
74
- <NumberTextField {...defaultProps} className="custom-class" />,
75
- );
65
+ const { container } = render(<NumberTextField {...defaultProps} className="custom-class" />);
76
66
  expect(container.querySelector('.custom-class')).toBeInTheDocument();
77
67
  });
78
68
 
79
69
  it('renders with custom inputClassName', () => {
80
- const { container } = render(
81
- <NumberTextField {...defaultProps} inputClassName="input-class" />,
82
- );
70
+ const { container } = render(<NumberTextField {...defaultProps} inputClassName="input-class" />);
83
71
  expect(container.querySelector('.input-class')).toBeInTheDocument();
84
72
  });
85
73
 
@@ -89,9 +77,7 @@ describe('NumberTextField', () => {
89
77
  });
90
78
 
91
79
  it('renders with margin normal', () => {
92
- const { container } = render(
93
- <NumberTextField {...defaultProps} />,
94
- );
80
+ const { container } = render(<NumberTextField {...defaultProps} />);
95
81
  expect(container.querySelector('input')).toBeInTheDocument();
96
82
  });
97
83
  });
@@ -153,13 +139,7 @@ describe('NumberTextField', () => {
153
139
  describe('range constraints', () => {
154
140
  it('handles only min constraint', async () => {
155
141
  const user = userEvent.setup();
156
- const { container } = render(
157
- <NumberTextField
158
- value={5}
159
- min={3}
160
- onChange={jest.fn()}
161
- />,
162
- );
142
+ const { container } = render(<NumberTextField value={5} min={3} onChange={jest.fn()} />);
163
143
 
164
144
  const input = screen.getByRole('spinbutton');
165
145
  expect(input).toHaveValue(5);
@@ -167,25 +147,14 @@ describe('NumberTextField', () => {
167
147
 
168
148
  it('handles only max constraint', async () => {
169
149
  const user = userEvent.setup();
170
- const { container } = render(
171
- <NumberTextField
172
- value={5}
173
- max={10}
174
- onChange={jest.fn()}
175
- />,
176
- );
150
+ const { container } = render(<NumberTextField value={5} max={10} onChange={jest.fn()} />);
177
151
 
178
152
  const input = screen.getByRole('spinbutton');
179
153
  expect(input).toHaveValue(5);
180
154
  });
181
155
 
182
156
  it('handles no constraints', () => {
183
- const { container } = render(
184
- <NumberTextField
185
- value={100}
186
- onChange={jest.fn()}
187
- />,
188
- );
157
+ const { container } = render(<NumberTextField value={100} onChange={jest.fn()} />);
189
158
 
190
159
  const input = screen.getByRole('spinbutton');
191
160
  expect(input).toHaveValue(100);
@@ -230,9 +199,7 @@ describe('NumberTextField', () => {
230
199
 
231
200
  describe('props updates', () => {
232
201
  it('updates value when prop changes', () => {
233
- const { rerender } = render(
234
- <NumberTextField {...defaultProps} value={5} />,
235
- );
202
+ const { rerender } = render(<NumberTextField {...defaultProps} value={5} />);
236
203
 
237
204
  let input = screen.getByRole('spinbutton');
238
205
  expect(input).toHaveValue(5);
@@ -246,23 +213,9 @@ describe('NumberTextField', () => {
246
213
  it('updates constraints when min/max props change', async () => {
247
214
  const user = userEvent.setup();
248
215
  const onChange = jest.fn();
249
- const { rerender } = render(
250
- <NumberTextField
251
- value={5}
252
- min={1}
253
- max={10}
254
- onChange={onChange}
255
- />,
256
- );
257
-
258
- rerender(
259
- <NumberTextField
260
- value={5}
261
- min={1}
262
- max={8}
263
- onChange={onChange}
264
- />,
265
- );
216
+ const { rerender } = render(<NumberTextField value={5} min={1} max={10} onChange={onChange} />);
217
+
218
+ rerender(<NumberTextField value={5} min={1} max={8} onChange={onChange} />);
266
219
 
267
220
  const input = screen.getByRole('spinbutton');
268
221
  await user.clear(input);
@@ -276,23 +229,9 @@ describe('NumberTextField', () => {
276
229
 
277
230
  it('re-clamps value when constraints become more restrictive', () => {
278
231
  const onChange = jest.fn();
279
- const { rerender } = render(
280
- <NumberTextField
281
- value={8}
282
- min={1}
283
- max={10}
284
- onChange={onChange}
285
- />,
286
- );
287
-
288
- rerender(
289
- <NumberTextField
290
- value={8}
291
- min={1}
292
- max={5}
293
- onChange={onChange}
294
- />,
295
- );
232
+ const { rerender } = render(<NumberTextField value={8} min={1} max={10} onChange={onChange} />);
233
+
234
+ rerender(<NumberTextField value={8} min={1} max={5} onChange={onChange} />);
296
235
 
297
236
  // Component should re-clamp the value
298
237
  expect(screen.getByRole('spinbutton')).toBeInTheDocument();
@@ -301,38 +240,21 @@ describe('NumberTextField', () => {
301
240
 
302
241
  describe('fallback number logic', () => {
303
242
  it('defaults to 0 when no min or max is provided', () => {
304
- render(
305
- <NumberTextField
306
- value={undefined}
307
- onChange={jest.fn()}
308
- />,
309
- );
243
+ render(<NumberTextField value={undefined} onChange={jest.fn()} />);
310
244
 
311
245
  const input = screen.getByRole('spinbutton');
312
246
  expect(input).toHaveValue(0);
313
247
  });
314
248
 
315
249
  it('defaults to max when only max is provided', () => {
316
- render(
317
- <NumberTextField
318
- value={undefined}
319
- max={15}
320
- onChange={jest.fn()}
321
- />,
322
- );
250
+ render(<NumberTextField value={undefined} max={15} onChange={jest.fn()} />);
323
251
 
324
252
  const input = screen.getByRole('spinbutton');
325
253
  expect(input).toHaveValue(15);
326
254
  });
327
255
 
328
256
  it('defaults to min when only min is provided', () => {
329
- render(
330
- <NumberTextField
331
- value={undefined}
332
- min={5}
333
- onChange={jest.fn()}
334
- />,
335
- );
257
+ render(<NumberTextField value={undefined} min={5} onChange={jest.fn()} />);
336
258
 
337
259
  const input = screen.getByRole('spinbutton');
338
260
  expect(input).toHaveValue(5);
@@ -12,41 +12,20 @@ describe('RadioWithLabel Component', () => {
12
12
 
13
13
  describe('Rendering', () => {
14
14
  it('should render radio button with label', () => {
15
- render(
16
- <RadioWithLabel
17
- label="Option 1"
18
- value="option1"
19
- checked={false}
20
- onChange={onChange}
21
- />,
22
- );
15
+ render(<RadioWithLabel label="Option 1" value="option1" checked={false} onChange={onChange} />);
23
16
 
24
17
  expect(screen.getByText('Option 1')).toBeInTheDocument();
25
18
  expect(screen.getByRole('radio')).toBeInTheDocument();
26
19
  });
27
20
 
28
21
  it('should render checked radio button', () => {
29
- render(
30
- <RadioWithLabel
31
- label="Selected"
32
- value="selected"
33
- checked={true}
34
- onChange={onChange}
35
- />,
36
- );
22
+ render(<RadioWithLabel label="Selected" value="selected" checked={true} onChange={onChange} />);
37
23
 
38
24
  expect(screen.getByRole('radio')).toBeChecked();
39
25
  });
40
26
 
41
27
  it('should render unchecked radio button', () => {
42
- render(
43
- <RadioWithLabel
44
- label="Unselected"
45
- value="unselected"
46
- checked={false}
47
- onChange={onChange}
48
- />,
49
- );
28
+ render(<RadioWithLabel label="Unselected" value="unselected" checked={false} onChange={onChange} />);
50
29
 
51
30
  expect(screen.getByRole('radio')).not.toBeChecked();
52
31
  });
@@ -55,14 +34,7 @@ describe('RadioWithLabel Component', () => {
55
34
  describe('User interaction', () => {
56
35
  it('should call onChange when radio button is clicked', async () => {
57
36
  const user = userEvent.setup();
58
- render(
59
- <RadioWithLabel
60
- label="Option"
61
- value="option"
62
- checked={false}
63
- onChange={onChange}
64
- />,
65
- );
37
+ render(<RadioWithLabel label="Option" value="option" checked={false} onChange={onChange} />);
66
38
 
67
39
  const radio = screen.getByRole('radio');
68
40
  await user.click(radio);
@@ -72,14 +44,7 @@ describe('RadioWithLabel Component', () => {
72
44
 
73
45
  it('should call onChange when label is clicked', async () => {
74
46
  const user = userEvent.setup();
75
- render(
76
- <RadioWithLabel
77
- label="Click me"
78
- value="test"
79
- checked={false}
80
- onChange={onChange}
81
- />,
82
- );
47
+ render(<RadioWithLabel label="Click me" value="test" checked={false} onChange={onChange} />);
83
48
 
84
49
  const label = screen.getByText('Click me');
85
50
  await user.click(label);
@@ -91,21 +56,11 @@ describe('RadioWithLabel Component', () => {
91
56
  describe('Props', () => {
92
57
  it('should accept different value types', () => {
93
58
  const { container: stringContainer } = render(
94
- <RadioWithLabel
95
- label="String value"
96
- value="string"
97
- checked={false}
98
- onChange={onChange}
99
- />,
59
+ <RadioWithLabel label="String value" value="string" checked={false} onChange={onChange} />,
100
60
  );
101
61
 
102
62
  const { container: numberContainer } = render(
103
- <RadioWithLabel
104
- label="Number value"
105
- value={123}
106
- checked={false}
107
- onChange={onChange}
108
- />,
63
+ <RadioWithLabel label="Number value" value={123} checked={false} onChange={onChange} />,
109
64
  );
110
65
 
111
66
  expect(stringContainer.querySelector('input[type="radio"]')).toBeInTheDocument();
@@ -115,18 +70,8 @@ describe('RadioWithLabel Component', () => {
115
70
  it('should display different labels', () => {
116
71
  render(
117
72
  <>
118
- <RadioWithLabel
119
- label="Label A"
120
- value="a"
121
- checked={false}
122
- onChange={onChange}
123
- />
124
- <RadioWithLabel
125
- label="Label B"
126
- value="b"
127
- checked={false}
128
- onChange={onChange}
129
- />
73
+ <RadioWithLabel label="Label A" value="a" checked={false} onChange={onChange} />
74
+ <RadioWithLabel label="Label B" value="b" checked={false} onChange={onChange} />
130
75
  </>,
131
76
  );
132
77
 
@@ -139,24 +84,9 @@ describe('RadioWithLabel Component', () => {
139
84
  it('should allow multiple radio buttons to be rendered', () => {
140
85
  render(
141
86
  <>
142
- <RadioWithLabel
143
- label="Option 1"
144
- value="opt1"
145
- checked={true}
146
- onChange={onChange}
147
- />
148
- <RadioWithLabel
149
- label="Option 2"
150
- value="opt2"
151
- checked={false}
152
- onChange={onChange}
153
- />
154
- <RadioWithLabel
155
- label="Option 3"
156
- value="opt3"
157
- checked={false}
158
- onChange={onChange}
159
- />
87
+ <RadioWithLabel label="Option 1" value="opt1" checked={true} onChange={onChange} />
88
+ <RadioWithLabel label="Option 2" value="opt2" checked={false} onChange={onChange} />
89
+ <RadioWithLabel label="Option 3" value="opt3" checked={false} onChange={onChange} />
160
90
  </>,
161
91
  );
162
92
 
@@ -175,29 +105,14 @@ describe('RadioWithLabel Component', () => {
175
105
 
176
106
  render(
177
107
  <>
178
- <RadioWithLabel
179
- label="Option 1"
180
- value="opt1"
181
- checked={true}
182
- onChange={onChange1}
183
- />
184
- <RadioWithLabel
185
- label="Option 2"
186
- value="opt2"
187
- checked={false}
188
- onChange={onChange2}
189
- />
190
- <RadioWithLabel
191
- label="Option 3"
192
- value="opt3"
193
- checked={false}
194
- onChange={onChange3}
195
- />
108
+ <RadioWithLabel label="Option 1" value="opt1" checked={true} onChange={onChange1} />
109
+ <RadioWithLabel label="Option 2" value="opt2" checked={false} onChange={onChange2} />
110
+ <RadioWithLabel label="Option 3" value="opt3" checked={false} onChange={onChange3} />
196
111
  </>,
197
112
  );
198
113
 
199
114
  const radios = screen.getAllByRole('radio');
200
-
115
+
201
116
  await user.click(radios[1]);
202
117
  expect(onChange2).toHaveBeenCalled();
203
118
  expect(onChange1).not.toHaveBeenCalled();
@@ -215,12 +130,7 @@ describe('RadioWithLabel Component', () => {
215
130
  describe('Styling', () => {
216
131
  it('should render with correct styling classes', () => {
217
132
  const { container } = render(
218
- <RadioWithLabel
219
- label="Styled"
220
- value="styled"
221
- checked={false}
222
- onChange={onChange}
223
- />,
133
+ <RadioWithLabel label="Styled" value="styled" checked={false} onChange={onChange} />,
224
134
  );
225
135
 
226
136
  expect(container.querySelector('[class*="MuiFormControlLabel"]')).toBeInTheDocument();
@@ -230,28 +140,14 @@ describe('RadioWithLabel Component', () => {
230
140
 
231
141
  describe('Edge cases', () => {
232
142
  it('should handle empty string label', () => {
233
- render(
234
- <RadioWithLabel
235
- label=""
236
- value="empty"
237
- checked={false}
238
- onChange={onChange}
239
- />,
240
- );
143
+ render(<RadioWithLabel label="" value="empty" checked={false} onChange={onChange} />);
241
144
 
242
145
  expect(screen.getByRole('radio')).toBeInTheDocument();
243
146
  });
244
147
 
245
148
  it('should handle long labels', () => {
246
149
  const longLabel = 'This is a very long label that should wrap properly and not break the layout';
247
- render(
248
- <RadioWithLabel
249
- label={longLabel}
250
- value="long"
251
- checked={false}
252
- onChange={onChange}
253
- />,
254
- );
150
+ render(<RadioWithLabel label={longLabel} value="long" checked={false} onChange={onChange} />);
255
151
 
256
152
  expect(screen.getByText(longLabel)).toBeInTheDocument();
257
153
  });
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { render, screen } from '@testing-library/react';
3
3
  import { Panel } from '../settings/panel';
4
- import { toggle, radio, dropdown, numberField, numberFields } from '../settings';
4
+ import { dropdown, numberField, numberFields, radio, toggle } from '../settings';
5
5
 
6
6
  describe('Settings Panel', () => {
7
7
  let onChange;
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { render, screen, fireEvent } from '@testing-library/react';
2
+ import { fireEvent, render, screen } from '@testing-library/react';
3
3
  import userEvent from '@testing-library/user-event';
4
4
  import Toggle from '../settings/toggle';
5
5
  import DisplaySize from '../settings/display-size';
@@ -121,9 +121,7 @@ describe('Settings Components', () => {
121
121
  let widthInput = screen.getByLabelText('Width');
122
122
  expect(widthInput).toHaveValue(500);
123
123
 
124
- rerender(
125
- <DisplaySize {...defaultProps} size={{ width: 800, height: 600 }} />
126
- );
124
+ rerender(<DisplaySize {...defaultProps} size={{ width: 800, height: 600 }} />);
127
125
 
128
126
  widthInput = screen.getByLabelText('Width');
129
127
  expect(widthInput).toHaveValue(800);
@@ -232,13 +230,7 @@ describe('Settings Components', () => {
232
230
  });
233
231
 
234
232
  it('displays custom label text', () => {
235
- render(
236
- <DisplaySize
237
- size={{ width: 500, height: 400 }}
238
- label="Custom Size Settings"
239
- onChange={jest.fn()}
240
- />
241
- );
233
+ render(<DisplaySize size={{ width: 500, height: 400 }} label="Custom Size Settings" onChange={jest.fn()} />);
242
234
 
243
235
  expect(screen.getByText('Custom Size Settings')).toBeInTheDocument();
244
236
  });
@@ -254,14 +246,7 @@ describe('Settings Components', () => {
254
246
  describe('SettingsRadioLabel', () => {
255
247
  it('renders radio label', () => {
256
248
  const onChange = jest.fn();
257
- render(
258
- <SettingsRadioLabel
259
- label="Option 1"
260
- value="option1"
261
- checked={false}
262
- onChange={onChange}
263
- />
264
- );
249
+ render(<SettingsRadioLabel label="Option 1" value="option1" checked={false} onChange={onChange} />);
265
250
 
266
251
  expect(screen.getByText('Option 1')).toBeInTheDocument();
267
252
  expect(screen.getByRole('radio')).toBeInTheDocument();
@@ -269,14 +254,7 @@ describe('Settings Components', () => {
269
254
 
270
255
  it('renders checked state', () => {
271
256
  const onChange = jest.fn();
272
- render(
273
- <SettingsRadioLabel
274
- label="Option 1"
275
- value="option1"
276
- checked={true}
277
- onChange={onChange}
278
- />
279
- );
257
+ render(<SettingsRadioLabel label="Option 1" value="option1" checked={true} onChange={onChange} />);
280
258
 
281
259
  const radio = screen.getByRole('radio');
282
260
  expect(radio).toBeChecked();
@@ -284,14 +262,7 @@ describe('Settings Components', () => {
284
262
 
285
263
  it('renders unchecked state', () => {
286
264
  const onChange = jest.fn();
287
- render(
288
- <SettingsRadioLabel
289
- label="Option 1"
290
- value="option1"
291
- checked={false}
292
- onChange={onChange}
293
- />
294
- );
265
+ render(<SettingsRadioLabel label="Option 1" value="option1" checked={false} onChange={onChange} />);
295
266
 
296
267
  const radio = screen.getByRole('radio');
297
268
  expect(radio).not.toBeChecked();
@@ -300,14 +271,7 @@ describe('Settings Components', () => {
300
271
  it('calls onChange when radio is clicked', async () => {
301
272
  const user = userEvent.setup();
302
273
  const onChange = jest.fn();
303
- render(
304
- <SettingsRadioLabel
305
- label="Option 1"
306
- value="option1"
307
- checked={false}
308
- onChange={onChange}
309
- />
310
- );
274
+ render(<SettingsRadioLabel label="Option 1" value="option1" checked={false} onChange={onChange} />);
311
275
 
312
276
  const radio = screen.getByRole('radio');
313
277
  await user.click(radio);
@@ -318,14 +282,7 @@ describe('Settings Components', () => {
318
282
  it('displays label text correctly', () => {
319
283
  const onChange = jest.fn();
320
284
  const labelText = 'Custom Option Label';
321
- render(
322
- <SettingsRadioLabel
323
- label={labelText}
324
- value="custom"
325
- checked={false}
326
- onChange={onChange}
327
- />
328
- );
285
+ render(<SettingsRadioLabel label={labelText} value="custom" checked={false} onChange={onChange} />);
329
286
 
330
287
  expect(screen.getByText(labelText)).toBeInTheDocument();
331
288
  });
@@ -357,34 +314,19 @@ describe('Settings Components', () => {
357
314
  });
358
315
 
359
316
  it('renders empty when groups is undefined', () => {
360
- const { container } = render(
361
- <Panel
362
- {...defaultProps}
363
- groups={undefined}
364
- />
365
- );
317
+ const { container } = render(<Panel {...defaultProps} groups={undefined} />);
366
318
  expect(container.firstChild.children.length).toBe(0);
367
319
  });
368
320
 
369
321
  it('renders empty when groups is empty', () => {
370
- const { container } = render(
371
- <Panel
372
- {...defaultProps}
373
- groups={{}}
374
- />
375
- );
322
+ const { container } = render(<Panel {...defaultProps} groups={{}} />);
376
323
  expect(container.firstChild.children.length).toBe(0);
377
324
  });
378
325
 
379
326
  it('calls onChangeModel when model changes', async () => {
380
327
  const user = userEvent.setup();
381
328
  const onChangeModel = jest.fn();
382
- const { container } = render(
383
- <Panel
384
- {...defaultProps}
385
- onChangeModel={onChangeModel}
386
- />
387
- );
329
+ const { container } = render(<Panel {...defaultProps} onChangeModel={onChangeModel} />);
388
330
 
389
331
  const switchElement = container.querySelector('input[type="checkbox"]');
390
332
  await user.click(switchElement);
@@ -408,7 +350,7 @@ describe('Settings Components', () => {
408
350
  },
409
351
  }}
410
352
  onChangeConfiguration={onChangeConfiguration}
411
- />
353
+ />,
412
354
  );
413
355
 
414
356
  const switchElement = container.querySelector('input[type="checkbox"]');
@@ -419,12 +361,7 @@ describe('Settings Components', () => {
419
361
 
420
362
  it('renders with modal when provided', () => {
421
363
  const modal = <div data-testid="test-modal">Modal Content</div>;
422
- render(
423
- <Panel
424
- {...defaultProps}
425
- modal={modal}
426
- />
427
- );
364
+ render(<Panel {...defaultProps} modal={modal} />);
428
365
 
429
366
  expect(screen.getByTestId('test-modal')).toBeInTheDocument();
430
367
  expect(screen.getByText('Modal Content')).toBeInTheDocument();
@@ -449,7 +386,7 @@ describe('Settings Components', () => {
449
386
  },
450
387
  }}
451
388
  model={{ setting1: true, setting2: false }}
452
- />
389
+ />,
453
390
  );
454
391
 
455
392
  expect(screen.getByText('Group One')).toBeInTheDocument();
@@ -465,7 +402,7 @@ describe('Settings Components', () => {
465
402
  test: { type: 'toggle', label: 'Test' },
466
403
  },
467
404
  }}
468
- />
405
+ />,
469
406
  );
470
407
 
471
408
  expect(container.firstChild).toBeInTheDocument();
@@ -485,7 +422,7 @@ describe('Settings Components', () => {
485
422
  },
486
423
  }}
487
424
  model={{ toggleSetting: true }}
488
- />
425
+ />,
489
426
  );
490
427
 
491
428
  expect(screen.getByText('General Settings')).toBeInTheDocument();
@@ -506,7 +443,7 @@ describe('Settings Components', () => {
506
443
  },
507
444
  }}
508
445
  onChangeModel={jest.fn()}
509
- />
446
+ />,
510
447
  );
511
448
 
512
449
  expect(screen.getByText('General Settings')).toBeInTheDocument();
@@ -81,7 +81,6 @@ describe('Tabs Component', () => {
81
81
  expect(rootDiv).toBeInTheDocument();
82
82
  });
83
83
 
84
-
85
84
  it('handles tabs without title prop gracefully', () => {
86
85
  render(
87
86
  <Tabs>
@@ -178,16 +177,12 @@ describe('Tabs Component', () => {
178
177
  it('handles long tab titles', () => {
179
178
  render(
180
179
  <Tabs>
181
- <div title="This is a very long tab title that should still render correctly">
182
- Content 1
183
- </div>
180
+ <div title="This is a very long tab title that should still render correctly">Content 1</div>
184
181
  <div title="Short">Content 2</div>
185
182
  </Tabs>,
186
183
  );
187
184
 
188
- expect(
189
- screen.getByText('This is a very long tab title that should still render correctly'),
190
- ).toBeInTheDocument();
185
+ expect(screen.getByText('This is a very long tab title that should still render correctly')).toBeInTheDocument();
191
186
  expect(screen.getByText('Short')).toBeInTheDocument();
192
187
  });
193
188
  });