@sakura-ui/sakura-ui 0.1.0 → 0.1.1

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 (57) hide show
  1. package/README.md +36 -5
  2. package/package.json +3 -3
  3. package/packages/forms/coverage/clover.xml +60 -60
  4. package/packages/forms/coverage/coverage-final.json +17 -17
  5. package/packages/forms/coverage/lcov-report/index.html +23 -23
  6. package/packages/forms/coverage/lcov-report/src/components/Checkbox.tsx.html +8 -8
  7. package/packages/forms/coverage/lcov-report/src/components/FieldsetControl.tsx.html +4 -4
  8. package/packages/forms/coverage/lcov-report/src/components/LabelControl.tsx.html +60 -60
  9. package/packages/forms/coverage/lcov-report/src/components/Radio.tsx.html +3 -3
  10. package/packages/forms/coverage/lcov-report/src/components/Select.tsx.html +37 -31
  11. package/packages/forms/coverage/lcov-report/src/components/Text.tsx.html +16 -13
  12. package/packages/forms/coverage/lcov-report/src/components/Textarea.tsx.html +30 -27
  13. package/packages/forms/coverage/lcov-report/src/components/context.ts.html +5 -2
  14. package/packages/forms/coverage/lcov-report/src/components/controlled/CheckboxGroup.tsx.html +3 -3
  15. package/packages/forms/coverage/lcov-report/src/components/controlled/RadioGroup.tsx.html +3 -3
  16. package/packages/forms/coverage/lcov-report/src/components/controlled/SelectControl.tsx.html +3 -3
  17. package/packages/forms/coverage/lcov-report/src/components/controlled/TextControl.tsx.html +3 -3
  18. package/packages/forms/coverage/lcov-report/src/components/controlled/TextareaControl.tsx.html +3 -3
  19. package/packages/forms/coverage/lcov-report/src/components/controlled/index.html +1 -1
  20. package/packages/forms/coverage/lcov-report/src/components/controlled/index.ts.html +1 -1
  21. package/packages/forms/coverage/lcov-report/src/components/index.html +37 -37
  22. package/packages/forms/coverage/lcov-report/src/components/index.ts.html +9 -9
  23. package/packages/forms/coverage/lcov-report/src/index.html +5 -5
  24. package/packages/forms/coverage/lcov-report/src/index.ts.html +9 -9
  25. package/packages/forms/coverage/lcov-report/src/utils/index.html +1 -1
  26. package/packages/forms/coverage/lcov-report/src/utils/index.ts.html +2 -2
  27. package/packages/forms/coverage/lcov.info +91 -83
  28. package/packages/forms/dist/index.cjs.js +21 -22
  29. package/packages/forms/dist/index.cjs.js.map +1 -1
  30. package/packages/forms/dist/index.es.js +441 -466
  31. package/packages/forms/dist/index.es.js.map +1 -1
  32. package/packages/forms/node_modules/.bin/autoprefixer +2 -2
  33. package/packages/forms/node_modules/.bin/browserslist +17 -0
  34. package/packages/forms/node_modules/.bin/jest +4 -4
  35. package/packages/forms/node_modules/.bin/npm-run-all +2 -2
  36. package/packages/forms/node_modules/.bin/run-p +2 -2
  37. package/packages/forms/node_modules/.bin/run-s +2 -2
  38. package/packages/forms/node_modules/.bin/tailwind +4 -4
  39. package/packages/forms/node_modules/.bin/tailwindcss +4 -4
  40. package/packages/forms/node_modules/.bin/ts-jest +4 -4
  41. package/packages/forms/node_modules/.bin/ts-node +4 -4
  42. package/packages/forms/node_modules/.bin/ts-node-cwd +4 -4
  43. package/packages/forms/node_modules/.bin/ts-node-esm +4 -4
  44. package/packages/forms/node_modules/.bin/ts-node-script +4 -4
  45. package/packages/forms/node_modules/.bin/ts-node-transpile-only +4 -4
  46. package/packages/forms/node_modules/.bin/ts-script +4 -4
  47. package/packages/forms/node_modules/.bin/tsc +2 -2
  48. package/packages/forms/node_modules/.bin/tsc-alias +2 -2
  49. package/packages/forms/node_modules/.bin/tsserver +2 -2
  50. package/packages/forms/node_modules/.bin/vite +2 -2
  51. package/packages/forms/package.json +1 -1
  52. package/packages/forms/src/components/LabelControl.tsx +54 -51
  53. package/packages/forms/src/components/Select.tsx +4 -3
  54. package/packages/forms/src/components/Text.tsx +1 -0
  55. package/packages/forms/src/components/Textarea.tsx +1 -0
  56. package/packages/forms/src/components/context.ts +1 -0
  57. package/packages/forms/tests/LabelControl.test.tsx +67 -1
@@ -32,7 +32,7 @@
32
32
  <div class='fl pad1y space-right2'>
33
33
  <span class="strong">100% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>14/14</span>
35
+ <span class='fraction'>16/16</span>
36
36
  </div>
37
37
 
38
38
 
@@ -146,9 +146,9 @@
146
146
  <span class="cline-any cline-neutral">&nbsp;</span>
147
147
  <span class="cline-any cline-yes">4x</span>
148
148
  <span class="cline-any cline-neutral">&nbsp;</span>
149
- <span class="cline-any cline-yes">11x</span>
150
149
  <span class="cline-any cline-neutral">&nbsp;</span>
151
150
  <span class="cline-any cline-neutral">&nbsp;</span>
151
+ <span class="cline-any cline-yes">17x</span>
152
152
  <span class="cline-any cline-neutral">&nbsp;</span>
153
153
  <span class="cline-any cline-neutral">&nbsp;</span>
154
154
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -156,19 +156,19 @@
156
156
  <span class="cline-any cline-neutral">&nbsp;</span>
157
157
  <span class="cline-any cline-neutral">&nbsp;</span>
158
158
  <span class="cline-any cline-neutral">&nbsp;</span>
159
- <span class="cline-any cline-yes">11x</span>
160
159
  <span class="cline-any cline-neutral">&nbsp;</span>
161
- <span class="cline-any cline-yes">11x</span>
162
160
  <span class="cline-any cline-neutral">&nbsp;</span>
161
+ <span class="cline-any cline-yes">17x</span>
163
162
  <span class="cline-any cline-neutral">&nbsp;</span>
163
+ <span class="cline-any cline-yes">17x</span>
164
164
  <span class="cline-any cline-neutral">&nbsp;</span>
165
165
  <span class="cline-any cline-neutral">&nbsp;</span>
166
166
  <span class="cline-any cline-neutral">&nbsp;</span>
167
167
  <span class="cline-any cline-neutral">&nbsp;</span>
168
- <span class="cline-any cline-yes">11x</span>
169
168
  <span class="cline-any cline-neutral">&nbsp;</span>
170
169
  <span class="cline-any cline-neutral">&nbsp;</span>
171
170
  <span class="cline-any cline-neutral">&nbsp;</span>
171
+ <span class="cline-any cline-yes">17x</span>
172
172
  <span class="cline-any cline-neutral">&nbsp;</span>
173
173
  <span class="cline-any cline-neutral">&nbsp;</span>
174
174
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -204,7 +204,7 @@ import { cx } from '../utils'
204
204
  import { ControllerContext } from './context'
205
205
  &nbsp;
206
206
  export interface LabelControlProps
207
- extends React.ComponentPropsWithoutRef&lt;'div'&gt; {
207
+ extends React.ComponentPropsWithoutRef&lt;'label'&gt; {
208
208
  labelText: string
209
209
  helperText?: string
210
210
  errorMessage?: string
@@ -212,61 +212,61 @@ export interface LabelControlProps
212
212
  isRequired?: boolean
213
213
  }
214
214
  &nbsp;
215
- export const LabelControl = React.forwardRef&lt;HTMLDivElement, LabelControlProps&gt;(
216
- (props, ref) =&gt; {
217
- const id = React.useId()
218
- const {
219
- labelText,
220
- className,
221
- helperText,
222
- errorMessage,
223
- isInvalid,
224
- isRequired,
225
- children,
226
- ...newProps
227
- } = props
215
+ export const LabelControl = React.forwardRef&lt;
216
+ HTMLLabelElement,
217
+ LabelControlProps
218
+ &gt;((props, ref) =&gt; {
219
+ const id = React.useId()
220
+ const {
221
+ labelText,
222
+ className,
223
+ helperText,
224
+ errorMessage,
225
+ isInvalid,
226
+ isRequired,
227
+ children,
228
+ ...restProps
229
+ } = props
228
230
  &nbsp;
229
- const context = {
230
- helperTextId: `helper-text-${id}`,
231
- errorMessageId: `error-message-${id}`,
232
- isInvalid: isInvalid ?? false,
233
- isRequired: isRequired ?? false
234
- }
235
- &nbsp;
236
- return (
237
- &lt;ControllerContext.Provider value={context}&gt;
238
- &lt;div className={cx('mb-4', className)} ref={ref} {...newProps}&gt;
239
- &lt;label&gt;
240
- &lt;p className={cx('block mb-2', isInvalid &amp;&amp; 'text-sun-800')}&gt;
241
- {labelText}
242
- {isRequired &amp;&amp; &lt;span className="text-sun-800"&gt;&amp;nbsp;*&lt;/span&gt;}
243
- &lt;/p&gt;
244
- {children}
245
- {helperText &amp;&amp; (
246
- &lt;p
247
- id={context.helperTextId}
248
- className="text-sm text-sumi-700 mt-2"
249
- &gt;
250
- {helperText}
251
- &lt;/p&gt;
252
- )}
253
- {isInvalid &amp;&amp; (
254
- &lt;p
255
- id={context.errorMessageId}
256
- className={cx(
257
- 'text-sm text-sun-800',
258
- helperText ? 'mt-1' : 'mt-2'
259
- )}
260
- &gt;
261
- {errorMessage}
262
- &lt;/p&gt;
263
- )}
264
- &lt;/label&gt;
265
- &lt;/div&gt;
266
- &lt;/ControllerContext.Provider&gt;
267
- )
231
+ const context = {
232
+ id: props.htmlFor ?? `input-${id}`,
233
+ helperTextId: `helper-text-${id}`,
234
+ errorMessageId: `error-message-${id}`,
235
+ isInvalid: isInvalid ?? false,
236
+ isRequired: isRequired ?? false
268
237
  }
269
- )
238
+ &nbsp;
239
+ return (
240
+ &lt;ControllerContext.Provider value={context}&gt;
241
+ &lt;div className={cx('mb-4', className)}&gt;
242
+ &lt;label
243
+ className={cx('block mb-2', isInvalid &amp;&amp; 'text-sun-800')}
244
+ htmlFor={context.id}
245
+ ref={ref}
246
+ {...restProps}
247
+ &gt;
248
+ {labelText}
249
+ {isRequired &amp;&amp; &lt;span className="text-sun-800"&gt;&amp;nbsp;*&lt;/span&gt;}
250
+ &lt;/label&gt;
251
+ {children}
252
+ &nbsp;
253
+ {helperText &amp;&amp; (
254
+ &lt;p id={context.helperTextId} className="text-sm text-sumi-700 mt-2"&gt;
255
+ {helperText}
256
+ &lt;/p&gt;
257
+ )}
258
+ {isInvalid &amp;&amp; (
259
+ &lt;p
260
+ id={context.errorMessageId}
261
+ className={cx('text-sm text-sun-800', helperText ? 'mt-1' : 'mt-2')}
262
+ &gt;
263
+ {errorMessage}
264
+ &lt;/p&gt;
265
+ )}
266
+ &lt;/div&gt;
267
+ &lt;/ControllerContext.Provider&gt;
268
+ )
269
+ })
270
270
  &nbsp;</pre></td></tr></table></pre>
271
271
 
272
272
  <div class='push'></div><!-- for sticky footer -->
@@ -274,7 +274,7 @@ export const LabelControl = React.forwardRef&lt;HTMLDivElement, LabelControlProp
274
274
  <div class='footer quiet pad2 space-top1 center small'>
275
275
  Code coverage generated by
276
276
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
277
- at 2023-03-27T00:09:49.121Z
277
+ at 2023-03-30T13:17:37.839Z
278
278
  </div>
279
279
  <script src="../../prettify.js"></script>
280
280
  <script>
@@ -224,7 +224,7 @@ export const Radio = React.forwardRef&lt;HTMLInputElement, Props&gt;((props, ref
224
224
  `
225
225
  return (
226
226
  &lt;label htmlFor={newProps.id} className={cx(style, className)}&gt;
227
- &lt;div className="flex items-center"&gt;
227
+ &lt;span className="flex items-center"&gt;
228
228
  &lt;input
229
229
  className={styleInput}
230
230
  type="radio"
@@ -236,7 +236,7 @@ export const Radio = React.forwardRef&lt;HTMLInputElement, Props&gt;((props, ref
236
236
  /&gt;
237
237
  &lt;span className={styleRadio}&gt;&lt;/span&gt;
238
238
  {children}
239
- &lt;/div&gt;
239
+ &lt;/span&gt;
240
240
  &lt;/label&gt;
241
241
  )
242
242
  })
@@ -247,7 +247,7 @@ export const Radio = React.forwardRef&lt;HTMLInputElement, Props&gt;((props, ref
247
247
  <div class='footer quiet pad2 space-top1 center small'>
248
248
  Code coverage generated by
249
249
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
250
- at 2023-03-27T00:09:49.121Z
250
+ at 2023-03-30T13:17:37.839Z
251
251
  </div>
252
252
  <script src="../../prettify.js"></script>
253
253
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">36.36% </span>
26
+ <span class="strong">90.9% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>4/11</span>
28
+ <span class='fraction'>10/11</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">0% </span>
33
+ <span class="strong">57.14% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/5</span>
35
+ <span class='fraction'>4/7</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">0% </span>
40
+ <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/1</span>
42
+ <span class='fraction'>1/1</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">36.36% </span>
47
+ <span class="strong">90.9% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>4/11</span>
49
+ <span class='fraction'>10/11</span>
50
50
  </div>
51
51
 
52
52
 
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
  </template>
63
63
  </div>
64
- <div class='status-line low'></div>
64
+ <div class='status-line high'></div>
65
65
  <pre><table class="coverage">
66
66
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
67
  <a name='L2'></a><a href='#L2'>2</a>
@@ -119,7 +119,9 @@
119
119
  <a name='L54'></a><a href='#L54'>54</a>
120
120
  <a name='L55'></a><a href='#L55'>55</a>
121
121
  <a name='L56'></a><a href='#L56'>56</a>
122
- <a name='L57'></a><a href='#L57'>57</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">4x</span>
122
+ <a name='L57'></a><a href='#L57'>57</a>
123
+ <a name='L58'></a><a href='#L58'>58</a>
124
+ <a name='L59'></a><a href='#L59'>59</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">4x</span>
123
125
  <span class="cline-any cline-yes">4x</span>
124
126
  <span class="cline-any cline-yes">4x</span>
125
127
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -127,15 +129,15 @@
127
129
  <span class="cline-any cline-neutral">&nbsp;</span>
128
130
  <span class="cline-any cline-yes">4x</span>
129
131
  <span class="cline-any cline-neutral">&nbsp;</span>
130
- <span class="cline-any cline-no">&nbsp;</span>
131
- <span class="cline-any cline-no">&nbsp;</span>
132
- <span class="cline-any cline-no">&nbsp;</span>
132
+ <span class="cline-any cline-yes">2x</span>
133
+ <span class="cline-any cline-yes">2x</span>
134
+ <span class="cline-any cline-yes">2x</span>
133
135
  <span class="cline-any cline-no">&nbsp;</span>
134
136
  <span class="cline-any cline-neutral">&nbsp;</span>
135
137
  <span class="cline-any cline-neutral">&nbsp;</span>
136
- <span class="cline-any cline-no">&nbsp;</span>
138
+ <span class="cline-any cline-yes">2x</span>
137
139
  <span class="cline-any cline-neutral">&nbsp;</span>
138
- <span class="cline-any cline-no">&nbsp;</span>
140
+ <span class="cline-any cline-yes">2x</span>
139
141
  <span class="cline-any cline-neutral">&nbsp;</span>
140
142
  <span class="cline-any cline-neutral">&nbsp;</span>
141
143
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -149,7 +151,9 @@
149
151
  <span class="cline-any cline-neutral">&nbsp;</span>
150
152
  <span class="cline-any cline-neutral">&nbsp;</span>
151
153
  <span class="cline-any cline-neutral">&nbsp;</span>
152
- <span class="cline-any cline-no">&nbsp;</span>
154
+ <span class="cline-any cline-neutral">&nbsp;</span>
155
+ <span class="cline-any cline-yes">2x</span>
156
+ <span class="cline-any cline-neutral">&nbsp;</span>
153
157
  <span class="cline-any cline-neutral">&nbsp;</span>
154
158
  <span class="cline-any cline-neutral">&nbsp;</span>
155
159
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -182,16 +186,17 @@ import { ControllerContext } from './context'
182
186
  export interface SelectProps extends React.ComponentPropsWithoutRef&lt;'select'&gt; {}
183
187
  &nbsp;
184
188
  export const Select = React.forwardRef&lt;HTMLSelectElement, SelectProps&gt;(
185
- <span class="fstat-no" title="function not covered" > (p</span>rops, ref) =&gt; {
186
- const { className, children, ...newProps } = <span class="cstat-no" title="statement not covered" >props</span>
187
- const ctx = <span class="cstat-no" title="statement not covered" >React.useContext(ControllerContext)</span>
188
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (ctx.isRequired) {</span>
189
- <span class="cstat-no" title="statement not covered" > newProps.required = true</span>
189
+ (props, ref) =&gt; {
190
+ const { className, children, ...restProps } = props
191
+ const ctx = React.useContext(ControllerContext)
192
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (ctx.isRequired) {
193
+ <span class="cstat-no" title="statement not covered" > restProps.required = true</span>
190
194
  }
191
195
  &nbsp;
192
- const invalidStyle = <span class="cstat-no" title="statement not covered" >ctx.isInvalid ? 'border-sun-800' : 'border-sumi-900'</span>
196
+ const invalidStyle = ctx.isInvalid ? <span class="branch-0 cbranch-no" title="branch not covered" >'border-sun-800' </span>: 'border-sumi-900'
193
197
  &nbsp;
194
- const style = <span class="cstat-no" title="statement not covered" >`</span>
198
+ const style = `
199
+ cursor-pointer
195
200
  appearance-none
196
201
  text-base
197
202
  w-full
@@ -205,19 +210,20 @@ export const Select = React.forwardRef&lt;HTMLSelectElement, SelectProps&gt;(
205
210
  focus:outline-wood-500
206
211
  `
207
212
  &nbsp;
208
- <span class="cstat-no" title="statement not covered" > return (</span>
209
- &lt;div className="inline-block relative"&gt;
213
+ return (
214
+ &lt;span className="inline-block relative"&gt;
210
215
  &lt;select
216
+ id={restProps.id ?? ctx.id}
211
217
  className={cx(style, invalidStyle, props.className)}
212
218
  aria-describedby={ctx.helperTextId}
213
219
  aria-errormessage={ctx.errorMessageId}
214
- aria-invalid={ctx.isInvalid ?? false}
215
- {...newProps}
220
+ aria-invalid={ctx.isInvalid ?? <span class="branch-1 cbranch-no" title="branch not covered" >false}</span>
221
+ {...restProps}
216
222
  ref={ref}
217
223
  &gt;
218
224
  {children}
219
225
  &lt;/select&gt;
220
- &lt;div className="pointer-events-none absolute inset-y-0 right-0 flex items-center px-2"&gt;
226
+ &lt;span className="flex items-center absolute inset-y-0 right-0 px-2 pointer-events-none"&gt;
221
227
  &lt;svg
222
228
  xmlns="http://www.w3.org/2000/svg"
223
229
  className="fill-sumi-900"
@@ -226,8 +232,8 @@ export const Select = React.forwardRef&lt;HTMLSelectElement, SelectProps&gt;(
226
232
  &gt;
227
233
  &lt;path d="M12 15.05 6.35 9.4 7.4 8.35l4.6 4.6 4.6-4.6 1.05 1.05Z" /&gt;
228
234
  &lt;/svg&gt;
229
- &lt;/div&gt;
230
- &lt;/div&gt;
235
+ &lt;/span&gt;
236
+ &lt;/span&gt;
231
237
  )
232
238
  }
233
239
  )
@@ -238,7 +244,7 @@ export const Select = React.forwardRef&lt;HTMLSelectElement, SelectProps&gt;(
238
244
  <div class='footer quiet pad2 space-top1 center small'>
239
245
  Code coverage generated by
240
246
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
241
- at 2023-03-27T00:09:49.121Z
247
+ at 2023-03-30T13:17:37.839Z
242
248
  </div>
243
249
  <script src="../../prettify.js"></script>
244
250
  <script>
@@ -30,9 +30,9 @@
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">80% </span>
33
+ <span class="strong">85.71% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>4/5</span>
35
+ <span class='fraction'>6/7</span>
36
36
  </div>
37
37
 
38
38
 
@@ -107,7 +107,8 @@
107
107
  <a name='L42'></a><a href='#L42'>42</a>
108
108
  <a name='L43'></a><a href='#L43'>43</a>
109
109
  <a name='L44'></a><a href='#L44'>44</a>
110
- <a name='L45'></a><a href='#L45'>45</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">4x</span>
110
+ <a name='L45'></a><a href='#L45'>45</a>
111
+ <a name='L46'></a><a href='#L46'>46</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">4x</span>
111
112
  <span class="cline-any cline-yes">4x</span>
112
113
  <span class="cline-any cline-yes">4x</span>
113
114
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -115,15 +116,15 @@
115
116
  <span class="cline-any cline-neutral">&nbsp;</span>
116
117
  <span class="cline-any cline-yes">4x</span>
117
118
  <span class="cline-any cline-neutral">&nbsp;</span>
118
- <span class="cline-any cline-yes">6x</span>
119
- <span class="cline-any cline-yes">6x</span>
120
- <span class="cline-any cline-yes">6x</span>
119
+ <span class="cline-any cline-yes">8x</span>
120
+ <span class="cline-any cline-yes">8x</span>
121
+ <span class="cline-any cline-yes">8x</span>
121
122
  <span class="cline-any cline-yes">2x</span>
122
123
  <span class="cline-any cline-neutral">&nbsp;</span>
123
124
  <span class="cline-any cline-neutral">&nbsp;</span>
124
- <span class="cline-any cline-yes">6x</span>
125
+ <span class="cline-any cline-yes">8x</span>
125
126
  <span class="cline-any cline-neutral">&nbsp;</span>
126
- <span class="cline-any cline-yes">6x</span>
127
+ <span class="cline-any cline-yes">8x</span>
127
128
  <span class="cline-any cline-neutral">&nbsp;</span>
128
129
  <span class="cline-any cline-neutral">&nbsp;</span>
129
130
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -138,7 +139,8 @@
138
139
  <span class="cline-any cline-neutral">&nbsp;</span>
139
140
  <span class="cline-any cline-neutral">&nbsp;</span>
140
141
  <span class="cline-any cline-neutral">&nbsp;</span>
141
- <span class="cline-any cline-yes">6x</span>
142
+ <span class="cline-any cline-yes">8x</span>
143
+ <span class="cline-any cline-neutral">&nbsp;</span>
142
144
  <span class="cline-any cline-neutral">&nbsp;</span>
143
145
  <span class="cline-any cline-neutral">&nbsp;</span>
144
146
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -159,10 +161,10 @@ export interface TextProps extends React.ComponentPropsWithoutRef&lt;'input'&gt;
159
161
  &nbsp;
160
162
  export const Text = React.forwardRef&lt;HTMLInputElement, TextProps&gt;(
161
163
  (props, ref) =&gt; {
162
- const { className, ...newProps } = props
164
+ const { className, ...restProps } = props
163
165
  const ctx = React.useContext(ControllerContext)
164
166
  if (ctx.isRequired) {
165
- newProps.required = true
167
+ restProps.required = true
166
168
  }
167
169
  &nbsp;
168
170
  const invalidStyle = ctx.isInvalid ? 'border-sun-800' : 'border-sumi-900'
@@ -185,11 +187,12 @@ export const Text = React.forwardRef&lt;HTMLInputElement, TextProps&gt;(
185
187
  return (
186
188
  &lt;input
187
189
  type="text"
190
+ id={restProps.id ?? ctx.id}
188
191
  className={cx(style, invalidStyle, className)}
189
192
  aria-describedby={ctx.helperTextId}
190
193
  aria-errormessage={ctx.errorMessageId}
191
194
  aria-invalid={ctx.isInvalid ?? <span class="branch-1 cbranch-no" title="branch not covered" >false}</span>
192
- {...newProps}
195
+ {...restProps}
193
196
  ref={ref}
194
197
  /&gt;
195
198
  )
@@ -202,7 +205,7 @@ export const Text = React.forwardRef&lt;HTMLInputElement, TextProps&gt;(
202
205
  <div class='footer quiet pad2 space-top1 center small'>
203
206
  Code coverage generated by
204
207
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
205
- at 2023-03-27T00:09:49.121Z
208
+ at 2023-03-30T13:17:37.839Z
206
209
  </div>
207
210
  <script src="../../prettify.js"></script>
208
211
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">36.36% </span>
26
+ <span class="strong">90.9% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>4/11</span>
28
+ <span class='fraction'>10/11</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">0% </span>
33
+ <span class="strong">57.14% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/5</span>
35
+ <span class='fraction'>4/7</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">0% </span>
40
+ <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/1</span>
42
+ <span class='fraction'>1/1</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">36.36% </span>
47
+ <span class="strong">90.9% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>4/11</span>
49
+ <span class='fraction'>10/11</span>
50
50
  </div>
51
51
 
52
52
 
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
  </template>
63
63
  </div>
64
- <div class='status-line low'></div>
64
+ <div class='status-line high'></div>
65
65
  <pre><table class="coverage">
66
66
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
67
  <a name='L2'></a><a href='#L2'>2</a>
@@ -110,7 +110,8 @@
110
110
  <a name='L45'></a><a href='#L45'>45</a>
111
111
  <a name='L46'></a><a href='#L46'>46</a>
112
112
  <a name='L47'></a><a href='#L47'>47</a>
113
- <a name='L48'></a><a href='#L48'>48</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">4x</span>
113
+ <a name='L48'></a><a href='#L48'>48</a>
114
+ <a name='L49'></a><a href='#L49'>49</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">4x</span>
114
115
  <span class="cline-any cline-yes">4x</span>
115
116
  <span class="cline-any cline-yes">4x</span>
116
117
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -119,16 +120,16 @@
119
120
  <span class="cline-any cline-neutral">&nbsp;</span>
120
121
  <span class="cline-any cline-yes">4x</span>
121
122
  <span class="cline-any cline-neutral">&nbsp;</span>
122
- <span class="cline-any cline-no">&nbsp;</span>
123
+ <span class="cline-any cline-yes">2x</span>
123
124
  <span class="cline-any cline-neutral">&nbsp;</span>
124
- <span class="cline-any cline-no">&nbsp;</span>
125
- <span class="cline-any cline-no">&nbsp;</span>
125
+ <span class="cline-any cline-yes">2x</span>
126
+ <span class="cline-any cline-yes">2x</span>
126
127
  <span class="cline-any cline-no">&nbsp;</span>
127
128
  <span class="cline-any cline-neutral">&nbsp;</span>
128
129
  <span class="cline-any cline-neutral">&nbsp;</span>
129
- <span class="cline-any cline-no">&nbsp;</span>
130
+ <span class="cline-any cline-yes">2x</span>
130
131
  <span class="cline-any cline-neutral">&nbsp;</span>
131
- <span class="cline-any cline-no">&nbsp;</span>
132
+ <span class="cline-any cline-yes">2x</span>
132
133
  <span class="cline-any cline-neutral">&nbsp;</span>
133
134
  <span class="cline-any cline-neutral">&nbsp;</span>
134
135
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -143,7 +144,8 @@
143
144
  <span class="cline-any cline-neutral">&nbsp;</span>
144
145
  <span class="cline-any cline-neutral">&nbsp;</span>
145
146
  <span class="cline-any cline-neutral">&nbsp;</span>
146
- <span class="cline-any cline-no">&nbsp;</span>
147
+ <span class="cline-any cline-yes">2x</span>
148
+ <span class="cline-any cline-neutral">&nbsp;</span>
147
149
  <span class="cline-any cline-neutral">&nbsp;</span>
148
150
  <span class="cline-any cline-neutral">&nbsp;</span>
149
151
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -165,17 +167,17 @@ export interface TextareaProps
165
167
  extends React.ComponentPropsWithoutRef&lt;'textarea'&gt; {}
166
168
  &nbsp;
167
169
  export const Textarea = React.forwardRef&lt;HTMLTextAreaElement, TextareaProps&gt;(
168
- <span class="fstat-no" title="function not covered" > (p</span>rops, ref) =&gt; {
169
- const { className, children, ...newProps } = <span class="cstat-no" title="statement not covered" >props</span>
170
+ (props, ref) =&gt; {
171
+ const { className, children, ...restProps } = props
170
172
  &nbsp;
171
- const ctx = <span class="cstat-no" title="statement not covered" >React.useContext(ControllerContext)</span>
172
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (ctx.isRequired) {</span>
173
- <span class="cstat-no" title="statement not covered" > newProps.required = true</span>
173
+ const ctx = React.useContext(ControllerContext)
174
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (ctx.isRequired) {
175
+ <span class="cstat-no" title="statement not covered" > restProps.required = true</span>
174
176
  }
175
177
  &nbsp;
176
- const invalidStyle = <span class="cstat-no" title="statement not covered" >ctx.isInvalid ? 'border-sun-800' : 'border-sumi-900'</span>
178
+ const invalidStyle = ctx.isInvalid ? <span class="branch-0 cbranch-no" title="branch not covered" >'border-sun-800' </span>: 'border-sumi-900'
177
179
  &nbsp;
178
- const style = <span class="cstat-no" title="statement not covered" >`</span>
180
+ const style = `
179
181
  p-4
180
182
  rounded-lg
181
183
  border
@@ -190,13 +192,14 @@ export const Textarea = React.forwardRef&lt;HTMLTextAreaElement, TextareaProps&g
190
192
  disabled:border-sumi-500
191
193
  `
192
194
  &nbsp;
193
- <span class="cstat-no" title="statement not covered" > return (</span>
195
+ return (
194
196
  &lt;textarea
197
+ id={restProps.id ?? ctx.id}
195
198
  className={cx(style, invalidStyle, className)}
196
199
  aria-describedby={ctx.helperTextId}
197
200
  aria-errormessage={ctx.errorMessageId}
198
- aria-invalid={ctx.isInvalid ?? false}
199
- {...newProps}
201
+ aria-invalid={ctx.isInvalid ?? <span class="branch-1 cbranch-no" title="branch not covered" >false}</span>
202
+ {...restProps}
200
203
  ref={ref}
201
204
  &gt;
202
205
  {children}
@@ -211,7 +214,7 @@ export const Textarea = React.forwardRef&lt;HTMLTextAreaElement, TextareaProps&g
211
214
  <div class='footer quiet pad2 space-top1 center small'>
212
215
  Code coverage generated by
213
216
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
214
- at 2023-03-27T00:09:49.121Z
217
+ at 2023-03-30T13:17:37.839Z
215
218
  </div>
216
219
  <script src="../../prettify.js"></script>
217
220
  <script>
@@ -79,7 +79,9 @@
79
79
  <a name='L14'></a><a href='#L14'>14</a>
80
80
  <a name='L15'></a><a href='#L15'>15</a>
81
81
  <a name='L16'></a><a href='#L16'>16</a>
82
- <a name='L17'></a><a href='#L17'>17</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">4x</span>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">4x</span>
84
+ <span class="cline-any cline-neutral">&nbsp;</span>
83
85
  <span class="cline-any cline-neutral">&nbsp;</span>
84
86
  <span class="cline-any cline-neutral">&nbsp;</span>
85
87
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -98,6 +100,7 @@
98
100
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React from 'react'
99
101
  &nbsp;
100
102
  export interface ControllerContextType {
103
+ id?: string
101
104
  groupName?: string
102
105
  helperTextId: string
103
106
  errorMessageId: string
@@ -118,7 +121,7 @@ export const ControllerContext = React.createContext&lt;ControllerContextType&gt
118
121
  <div class='footer quiet pad2 space-top1 center small'>
119
122
  Code coverage generated by
120
123
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
121
- at 2023-03-27T00:09:49.121Z
124
+ at 2023-03-30T13:17:37.839Z
122
125
  </div>
123
126
  <script src="../../prettify.js"></script>
124
127
  <script>