@sakura-ui/sakura-ui 0.1.11 → 0.1.13

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 (179) hide show
  1. package/package.json +8 -8
  2. package/packages/config/package.json +2 -2
  3. package/packages/config/src/index.ts +25 -9
  4. package/packages/config/tsconfig.json +1 -1
  5. package/packages/config/vite.config.ts +1 -1
  6. package/packages/core/coverage/clover.xml +258 -0
  7. package/packages/core/coverage/coverage-final.json +15 -0
  8. package/packages/core/coverage/lcov-report/base.css +224 -0
  9. package/packages/core/coverage/lcov-report/block-navigation.js +87 -0
  10. package/packages/core/coverage/lcov-report/favicon.png +0 -0
  11. package/packages/core/coverage/lcov-report/index.html +146 -0
  12. package/packages/core/coverage/lcov-report/prettify.css +1 -0
  13. package/packages/core/coverage/lcov-report/prettify.js +2 -0
  14. package/packages/core/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  15. package/packages/core/coverage/lcov-report/sorter.js +196 -0
  16. package/packages/core/coverage/lcov-report/src/components/Button.tsx.html +301 -0
  17. package/packages/core/coverage/lcov-report/src/components/Card.tsx.html +397 -0
  18. package/packages/core/coverage/lcov-report/src/components/Code.tsx.html +142 -0
  19. package/packages/core/coverage/lcov-report/src/components/Heading.tsx.html +403 -0
  20. package/packages/core/coverage/lcov-report/src/components/Icon.tsx.html +181 -0
  21. package/packages/core/coverage/lcov-report/src/components/IconButton.tsx.html +376 -0
  22. package/packages/core/coverage/lcov-report/src/components/InfoCard.tsx.html +238 -0
  23. package/packages/core/coverage/lcov-report/src/components/Link.tsx.html +322 -0
  24. package/packages/core/coverage/lcov-report/src/components/List.tsx.html +202 -0
  25. package/packages/core/coverage/lcov-report/src/components/Pre.tsx.html +151 -0
  26. package/packages/core/coverage/lcov-report/src/components/Table.tsx.html +427 -0
  27. package/packages/core/coverage/lcov-report/src/components/index.html +281 -0
  28. package/packages/core/coverage/lcov-report/src/components/index.ts.html +124 -0
  29. package/packages/core/coverage/lcov-report/src/index.html +116 -0
  30. package/packages/core/coverage/lcov-report/src/index.ts.html +169 -0
  31. package/packages/core/coverage/lcov-report/src/utils/class.ts.html +88 -0
  32. package/packages/core/coverage/lcov-report/src/utils/index.html +116 -0
  33. package/packages/core/coverage/lcov.info +523 -0
  34. package/packages/core/jest.config.ts +11 -0
  35. package/packages/core/package.json +6 -2
  36. package/packages/core/src/components/Button.tsx +60 -53
  37. package/packages/core/src/components/Card.tsx +89 -8
  38. package/packages/core/src/components/Code.tsx +2 -2
  39. package/packages/core/src/components/Heading.tsx +7 -12
  40. package/packages/core/src/components/Icon.tsx +8 -3
  41. package/packages/core/src/components/IconButton.tsx +57 -49
  42. package/packages/core/src/components/InfoCard.tsx +15 -11
  43. package/packages/core/src/components/Link.tsx +27 -24
  44. package/packages/core/src/components/List.tsx +4 -4
  45. package/packages/core/src/components/Pre.tsx +2 -2
  46. package/packages/core/src/components/Table.tsx +17 -14
  47. package/packages/core/src/components/index.ts +4 -2
  48. package/packages/core/src/index.ts +3 -0
  49. package/packages/core/tests/Card.test.tsx +19 -0
  50. package/packages/core/tsconfig.node.json +1 -1
  51. package/packages/core/vite.config.ts +1 -1
  52. package/packages/forms/coverage/clover.xml +60 -60
  53. package/packages/forms/coverage/coverage-final.json +17 -17
  54. package/packages/forms/coverage/lcov-report/index.html +23 -23
  55. package/packages/forms/coverage/lcov-report/src/components/Checkbox.tsx.html +8 -8
  56. package/packages/forms/coverage/lcov-report/src/components/FieldsetControl.tsx.html +4 -4
  57. package/packages/forms/coverage/lcov-report/src/components/LabelControl.tsx.html +60 -60
  58. package/packages/forms/coverage/lcov-report/src/components/Radio.tsx.html +3 -3
  59. package/packages/forms/coverage/lcov-report/src/components/Select.tsx.html +37 -31
  60. package/packages/forms/coverage/lcov-report/src/components/Text.tsx.html +16 -13
  61. package/packages/forms/coverage/lcov-report/src/components/Textarea.tsx.html +30 -27
  62. package/packages/forms/coverage/lcov-report/src/components/context.ts.html +5 -2
  63. package/packages/forms/coverage/lcov-report/src/components/controlled/CheckboxGroup.tsx.html +3 -3
  64. package/packages/forms/coverage/lcov-report/src/components/controlled/RadioGroup.tsx.html +3 -3
  65. package/packages/forms/coverage/lcov-report/src/components/controlled/SelectControl.tsx.html +3 -3
  66. package/packages/forms/coverage/lcov-report/src/components/controlled/TextControl.tsx.html +3 -3
  67. package/packages/forms/coverage/lcov-report/src/components/controlled/TextareaControl.tsx.html +3 -3
  68. package/packages/forms/coverage/lcov-report/src/components/controlled/index.html +1 -1
  69. package/packages/forms/coverage/lcov-report/src/components/controlled/index.ts.html +1 -1
  70. package/packages/forms/coverage/lcov-report/src/components/index.html +37 -37
  71. package/packages/forms/coverage/lcov-report/src/components/index.ts.html +9 -9
  72. package/packages/forms/coverage/lcov-report/src/index.html +5 -5
  73. package/packages/forms/coverage/lcov-report/src/index.ts.html +9 -9
  74. package/packages/forms/coverage/lcov-report/src/utils/index.html +1 -1
  75. package/packages/forms/coverage/lcov-report/src/utils/index.ts.html +2 -2
  76. package/packages/forms/coverage/lcov.info +91 -83
  77. package/packages/forms/dist/components/Checkbox.d.ts +2 -2
  78. package/packages/forms/dist/components/Checkbox.d.ts.map +1 -1
  79. package/packages/forms/dist/components/Checkbox.js +43 -0
  80. package/packages/forms/dist/components/Checkbox.js.map +1 -0
  81. package/packages/forms/dist/components/FieldsetControl.d.ts +2 -2
  82. package/packages/forms/dist/components/FieldsetControl.d.ts.map +1 -1
  83. package/packages/forms/dist/components/FieldsetControl.js +20 -0
  84. package/packages/forms/dist/components/FieldsetControl.js.map +1 -0
  85. package/packages/forms/dist/components/Input.d.ts +2 -2
  86. package/packages/forms/dist/components/Input.d.ts.map +1 -1
  87. package/packages/forms/dist/components/Input.js +27 -0
  88. package/packages/forms/dist/components/Input.js.map +1 -0
  89. package/packages/forms/dist/components/LabelControl.d.ts +2 -2
  90. package/packages/forms/dist/components/LabelControl.d.ts.map +1 -1
  91. package/packages/forms/dist/components/LabelControl.js +18 -0
  92. package/packages/forms/dist/components/LabelControl.js.map +1 -0
  93. package/packages/forms/dist/components/Radio.d.ts +2 -2
  94. package/packages/forms/dist/components/Radio.d.ts.map +1 -1
  95. package/packages/forms/dist/components/Radio.js +43 -0
  96. package/packages/forms/dist/components/Radio.js.map +1 -0
  97. package/packages/forms/dist/components/Select.d.ts +2 -2
  98. package/packages/forms/dist/components/Select.d.ts.map +1 -1
  99. package/packages/forms/dist/components/Select.js +39 -0
  100. package/packages/forms/dist/components/Select.js.map +1 -0
  101. package/packages/forms/dist/components/Textarea.d.ts +2 -2
  102. package/packages/forms/dist/components/Textarea.d.ts.map +1 -1
  103. package/packages/forms/dist/components/Textarea.js +34 -0
  104. package/packages/forms/dist/components/Textarea.js.map +1 -0
  105. package/packages/forms/dist/components/context.js +8 -0
  106. package/packages/forms/dist/components/context.js.map +1 -0
  107. package/packages/forms/dist/components/controlled/CheckboxGroup.d.ts +2 -2
  108. package/packages/forms/dist/components/controlled/CheckboxGroup.d.ts.map +1 -1
  109. package/packages/forms/dist/components/controlled/CheckboxGroup.js +12 -0
  110. package/packages/forms/dist/components/controlled/CheckboxGroup.js.map +1 -0
  111. package/packages/forms/dist/components/controlled/InputItem.js +2 -0
  112. package/packages/forms/dist/components/controlled/InputItem.js.map +1 -0
  113. package/packages/forms/dist/components/controlled/RadioGroup.d.ts +2 -2
  114. package/packages/forms/dist/components/controlled/RadioGroup.d.ts.map +1 -1
  115. package/packages/forms/dist/components/controlled/RadioGroup.js +12 -0
  116. package/packages/forms/dist/components/controlled/RadioGroup.js.map +1 -0
  117. package/packages/forms/dist/components/controlled/SelectControl.d.ts +2 -2
  118. package/packages/forms/dist/components/controlled/SelectControl.d.ts.map +1 -1
  119. package/packages/forms/dist/components/controlled/SelectControl.js +10 -0
  120. package/packages/forms/dist/components/controlled/SelectControl.js.map +1 -0
  121. package/packages/forms/dist/components/controlled/TextareaControl.d.ts +2 -2
  122. package/packages/forms/dist/components/controlled/TextareaControl.d.ts.map +1 -1
  123. package/packages/forms/dist/components/controlled/TextareaControl.js +10 -0
  124. package/packages/forms/dist/components/controlled/TextareaControl.js.map +1 -0
  125. package/packages/forms/dist/components/controlled/index.d.ts +0 -1
  126. package/packages/forms/dist/components/controlled/index.d.ts.map +1 -1
  127. package/packages/forms/dist/components/controlled/index.js +5 -0
  128. package/packages/forms/dist/components/controlled/index.js.map +1 -0
  129. package/packages/forms/dist/components/index.js +8 -0
  130. package/packages/forms/dist/components/index.js.map +1 -0
  131. package/packages/forms/dist/index.cjs.js +80 -80
  132. package/packages/forms/dist/index.cjs.js.map +1 -1
  133. package/packages/forms/dist/index.d.ts +1 -1
  134. package/packages/forms/dist/index.d.ts.map +1 -1
  135. package/packages/forms/dist/index.es.js +501 -504
  136. package/packages/forms/dist/index.es.js.map +1 -1
  137. package/packages/forms/dist/index.js +3 -0
  138. package/packages/forms/dist/index.js.map +1 -0
  139. package/packages/forms/dist/utils/class.js +2 -0
  140. package/packages/forms/dist/utils/class.js.map +1 -0
  141. package/packages/forms/jest.config.ts +0 -3
  142. package/packages/forms/node_modules/.bin/autoprefixer +4 -4
  143. package/packages/forms/node_modules/.bin/browserslist +2 -2
  144. package/packages/forms/node_modules/.bin/jest +4 -4
  145. package/packages/forms/node_modules/.bin/npm-run-all +4 -4
  146. package/packages/forms/node_modules/.bin/run-p +4 -4
  147. package/packages/forms/node_modules/.bin/run-s +4 -4
  148. package/packages/forms/node_modules/.bin/tailwind +4 -4
  149. package/packages/forms/node_modules/.bin/tailwindcss +4 -4
  150. package/packages/forms/node_modules/.bin/ts-jest +4 -4
  151. package/packages/forms/node_modules/.bin/ts-node +4 -4
  152. package/packages/forms/node_modules/.bin/ts-node-cwd +4 -4
  153. package/packages/forms/node_modules/.bin/ts-node-esm +4 -4
  154. package/packages/forms/node_modules/.bin/ts-node-script +4 -4
  155. package/packages/forms/node_modules/.bin/ts-node-transpile-only +4 -4
  156. package/packages/forms/node_modules/.bin/ts-script +4 -4
  157. package/packages/forms/node_modules/.bin/tsc +4 -4
  158. package/packages/forms/node_modules/.bin/tsc-alias +4 -4
  159. package/packages/forms/node_modules/.bin/tsserver +4 -4
  160. package/packages/forms/node_modules/.bin/vite +4 -4
  161. package/packages/forms/package.json +2 -2
  162. package/packages/forms/src/components/Checkbox.tsx +62 -59
  163. package/packages/forms/src/components/FieldsetControl.tsx +62 -55
  164. package/packages/forms/src/components/Input.tsx +38 -35
  165. package/packages/forms/src/components/LabelControl.tsx +56 -52
  166. package/packages/forms/src/components/Radio.tsx +8 -3
  167. package/packages/forms/src/components/Select.tsx +57 -56
  168. package/packages/forms/src/components/Textarea.tsx +58 -54
  169. package/packages/forms/src/components/controlled/CheckboxGroup.tsx +37 -37
  170. package/packages/forms/src/components/controlled/RadioGroup.tsx +5 -3
  171. package/packages/forms/src/components/controlled/SelectControl.tsx +28 -27
  172. package/packages/forms/src/components/controlled/TextareaControl.tsx +28 -27
  173. package/packages/forms/src/components/controlled/index.ts +0 -1
  174. package/packages/forms/src/index.ts +0 -1
  175. package/packages/forms/tsconfig.node.json +1 -1
  176. package/packages/forms/vite.config.ts +1 -1
  177. package/packages/forms/dist/components/controlled/InputControl.d.ts +0 -10
  178. package/packages/forms/dist/components/controlled/InputControl.d.ts.map +0 -1
  179. package/packages/forms/src/components/controlled/InputControl.tsx +0 -39
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">76.62% </span>
26
+ <span class="strong">84.41% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>118/154</span>
28
+ <span class='fraction'>130/154</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">70.9% </span>
33
+ <span class="strong">80.95% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>39/55</span>
35
+ <span class='fraction'>51/63</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">33.33% </span>
40
+ <span class="strong">48.71% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>13/39</span>
42
+ <span class='fraction'>19/39</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">74.28% </span>
47
+ <span class="strong">82.85% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>104/140</span>
49
+ <span class='fraction'>116/140</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 medium'></div>
64
+ <div class='status-line high'></div>
65
65
  <div class="pad1">
66
66
  <table class="coverage-summary">
67
67
  <thead>
@@ -87,25 +87,25 @@
87
87
  <td data-value="14" class="abs high">14/14</td>
88
88
  <td data-value="100" class="pct high">100%</td>
89
89
  <td data-value="0" class="abs high">0/0</td>
90
- <td data-value="33.33" class="pct low">33.33%</td>
91
- <td data-value="12" class="abs low">4/12</td>
90
+ <td data-value="50" class="pct medium">50%</td>
91
+ <td data-value="12" class="abs medium">6/12</td>
92
92
  <td data-value="100" class="pct high">100%</td>
93
93
  <td data-value="14" class="abs high">14/14</td>
94
94
  </tr>
95
95
 
96
96
  <tr>
97
- <td class="file medium" data-value="src/components"><a href="src/components/index.html">src/components</a></td>
98
- <td data-value="74.73" class="pic medium">
99
- <div class="chart"><div class="cover-fill" style="width: 74%"></div><div class="cover-empty" style="width: 26%"></div></div>
97
+ <td class="file high" data-value="src/components"><a href="src/components/index.html">src/components</a></td>
98
+ <td data-value="87.36" class="pic high">
99
+ <div class="chart"><div class="cover-fill" style="width: 87%"></div><div class="cover-empty" style="width: 13%"></div></div>
100
100
  </td>
101
- <td data-value="74.73" class="pct medium">74.73%</td>
102
- <td data-value="95" class="abs medium">71/95</td>
103
- <td data-value="70.9" class="pct medium">70.9%</td>
104
- <td data-value="55" class="abs medium">39/55</td>
105
- <td data-value="57.14" class="pct medium">57.14%</td>
106
- <td data-value="14" class="abs medium">8/14</td>
107
- <td data-value="72.72" class="pct medium">72.72%</td>
108
- <td data-value="88" class="abs medium">64/88</td>
101
+ <td data-value="87.36" class="pct high">87.36%</td>
102
+ <td data-value="95" class="abs high">83/95</td>
103
+ <td data-value="80.95" class="pct high">80.95%</td>
104
+ <td data-value="63" class="abs high">51/63</td>
105
+ <td data-value="85.71" class="pct high">85.71%</td>
106
+ <td data-value="14" class="abs high">12/14</td>
107
+ <td data-value="86.36" class="pct high">86.36%</td>
108
+ <td data-value="88" class="abs high">76/88</td>
109
109
  </tr>
110
110
 
111
111
  <tr>
@@ -146,7 +146,7 @@
146
146
  <div class='footer quiet pad2 space-top1 center small'>
147
147
  Code coverage generated by
148
148
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
149
- at 2023-03-27T00:09:49.121Z
149
+ at 2023-03-30T13:17:37.839Z
150
150
  </div>
151
151
  <script src="prettify.js"></script>
152
152
  <script>
@@ -211,13 +211,13 @@ export interface CheckboxProps extends React.ComponentProps&lt;'input'&gt; {}
211
211
  &nbsp;
212
212
  export const Checkbox = React.forwardRef&lt;HTMLInputElement, CheckboxProps&gt;(
213
213
  <span class="fstat-no" title="function not covered" > (p</span>rops, ref) =&gt; {
214
- const { className, children, ...newProps } = <span class="cstat-no" title="statement not covered" >props</span>
214
+ const { className, children, ...restProps } = <span class="cstat-no" title="statement not covered" >props</span>
215
215
  const ctx = <span class="cstat-no" title="statement not covered" >React.useContext(ControllerContext)</span>
216
216
  <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (ctx.isRequired) {</span>
217
- <span class="cstat-no" title="statement not covered" > newProps.required = true</span>
217
+ <span class="cstat-no" title="statement not covered" > restProps.required = true</span>
218
218
  }
219
219
  <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (ctx.groupName) {</span>
220
- <span class="cstat-no" title="statement not covered" > newProps.name = ctx.groupName</span>
220
+ <span class="cstat-no" title="statement not covered" > restProps.name = ctx.groupName</span>
221
221
  }
222
222
  &nbsp;
223
223
  const style = <span class="cstat-no" title="statement not covered" >`</span>
@@ -248,15 +248,15 @@ export const Checkbox = React.forwardRef&lt;HTMLInputElement, CheckboxProps&gt;(
248
248
  `
249
249
  &nbsp;
250
250
  <span class="cstat-no" title="statement not covered" > return (</span>
251
- &lt;label htmlFor={newProps.id} className={cx(style, className)}&gt;
252
- &lt;div className="flex items-center"&gt;
251
+ &lt;label htmlFor={restProps.id} className={cx(style, className)}&gt;
252
+ &lt;span className="flex items-center"&gt;
253
253
  &lt;input
254
254
  className={styleInput}
255
255
  type="checkbox"
256
256
  aria-describedby={ctx.helperTextId}
257
257
  aria-errormessage={ctx.errorMessageId}
258
258
  aria-invalid={ctx.isInvalid ?? false}
259
- {...newProps}
259
+ {...restProps}
260
260
  ref={ref}
261
261
  /&gt;
262
262
  &lt;span className={styleCheck}&gt;
@@ -268,7 +268,7 @@ export const Checkbox = React.forwardRef&lt;HTMLInputElement, CheckboxProps&gt;(
268
268
  &lt;/svg&gt;
269
269
  &lt;/span&gt;
270
270
  {children}
271
- &lt;/div&gt;
271
+ &lt;/span&gt;
272
272
  &lt;/label&gt;
273
273
  )
274
274
  }
@@ -280,7 +280,7 @@ export const Checkbox = React.forwardRef&lt;HTMLInputElement, CheckboxProps&gt;(
280
280
  <div class='footer quiet pad2 space-top1 center small'>
281
281
  Code coverage generated by
282
282
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
283
- at 2023-03-27T00:09:49.121Z
283
+ at 2023-03-30T13:17:37.839Z
284
284
  </div>
285
285
  <script src="../../prettify.js"></script>
286
286
  <script>
@@ -231,10 +231,10 @@ export const FieldsetControl = React.forwardRef&lt;
231
231
  isRequired,
232
232
  direction,
233
233
  children,
234
- ...newProps
234
+ ...restProps
235
235
  } = props
236
236
  &nbsp;
237
- const groupName = newProps.name ?? `group-${id}`
237
+ const groupName = restProps.name ?? `group-${id}`
238
238
  &nbsp;
239
239
  const context = {
240
240
  groupName: groupName,
@@ -248,7 +248,7 @@ export const FieldsetControl = React.forwardRef&lt;
248
248
  &nbsp;
249
249
  return (
250
250
  &lt;ControllerContext.Provider value={context}&gt;
251
- &lt;fieldset className={cx('mb-4', className)} ref={ref} {...newProps}&gt;
251
+ &lt;fieldset className={cx('mb-4', className)} ref={ref} {...restProps}&gt;
252
252
  &lt;legend&gt;
253
253
  &lt;p className={cx('block mb-2', isInvalid &amp;&amp; 'text-sun-800')}&gt;
254
254
  {labelText}
@@ -280,7 +280,7 @@ export const FieldsetControl = React.forwardRef&lt;
280
280
  <div class='footer quiet pad2 space-top1 center small'>
281
281
  Code coverage generated by
282
282
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
283
- at 2023-03-27T00:09:49.121Z
283
+ at 2023-03-30T13:17:37.839Z
284
284
  </div>
285
285
  <script src="../../prettify.js"></script>
286
286
  <script>
@@ -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>