@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.
- package/README.md +36 -5
- package/package.json +3 -3
- package/packages/forms/coverage/clover.xml +60 -60
- package/packages/forms/coverage/coverage-final.json +17 -17
- package/packages/forms/coverage/lcov-report/index.html +23 -23
- package/packages/forms/coverage/lcov-report/src/components/Checkbox.tsx.html +8 -8
- package/packages/forms/coverage/lcov-report/src/components/FieldsetControl.tsx.html +4 -4
- package/packages/forms/coverage/lcov-report/src/components/LabelControl.tsx.html +60 -60
- package/packages/forms/coverage/lcov-report/src/components/Radio.tsx.html +3 -3
- package/packages/forms/coverage/lcov-report/src/components/Select.tsx.html +37 -31
- package/packages/forms/coverage/lcov-report/src/components/Text.tsx.html +16 -13
- package/packages/forms/coverage/lcov-report/src/components/Textarea.tsx.html +30 -27
- package/packages/forms/coverage/lcov-report/src/components/context.ts.html +5 -2
- package/packages/forms/coverage/lcov-report/src/components/controlled/CheckboxGroup.tsx.html +3 -3
- package/packages/forms/coverage/lcov-report/src/components/controlled/RadioGroup.tsx.html +3 -3
- package/packages/forms/coverage/lcov-report/src/components/controlled/SelectControl.tsx.html +3 -3
- package/packages/forms/coverage/lcov-report/src/components/controlled/TextControl.tsx.html +3 -3
- package/packages/forms/coverage/lcov-report/src/components/controlled/TextareaControl.tsx.html +3 -3
- package/packages/forms/coverage/lcov-report/src/components/controlled/index.html +1 -1
- package/packages/forms/coverage/lcov-report/src/components/controlled/index.ts.html +1 -1
- package/packages/forms/coverage/lcov-report/src/components/index.html +37 -37
- package/packages/forms/coverage/lcov-report/src/components/index.ts.html +9 -9
- package/packages/forms/coverage/lcov-report/src/index.html +5 -5
- package/packages/forms/coverage/lcov-report/src/index.ts.html +9 -9
- package/packages/forms/coverage/lcov-report/src/utils/index.html +1 -1
- package/packages/forms/coverage/lcov-report/src/utils/index.ts.html +2 -2
- package/packages/forms/coverage/lcov.info +91 -83
- package/packages/forms/dist/index.cjs.js +21 -22
- package/packages/forms/dist/index.cjs.js.map +1 -1
- package/packages/forms/dist/index.es.js +441 -466
- package/packages/forms/dist/index.es.js.map +1 -1
- package/packages/forms/node_modules/.bin/autoprefixer +2 -2
- package/packages/forms/node_modules/.bin/browserslist +17 -0
- package/packages/forms/node_modules/.bin/jest +4 -4
- package/packages/forms/node_modules/.bin/npm-run-all +2 -2
- package/packages/forms/node_modules/.bin/run-p +2 -2
- package/packages/forms/node_modules/.bin/run-s +2 -2
- package/packages/forms/node_modules/.bin/tailwind +4 -4
- package/packages/forms/node_modules/.bin/tailwindcss +4 -4
- package/packages/forms/node_modules/.bin/ts-jest +4 -4
- package/packages/forms/node_modules/.bin/ts-node +4 -4
- package/packages/forms/node_modules/.bin/ts-node-cwd +4 -4
- package/packages/forms/node_modules/.bin/ts-node-esm +4 -4
- package/packages/forms/node_modules/.bin/ts-node-script +4 -4
- package/packages/forms/node_modules/.bin/ts-node-transpile-only +4 -4
- package/packages/forms/node_modules/.bin/ts-script +4 -4
- package/packages/forms/node_modules/.bin/tsc +2 -2
- package/packages/forms/node_modules/.bin/tsc-alias +2 -2
- package/packages/forms/node_modules/.bin/tsserver +2 -2
- package/packages/forms/node_modules/.bin/vite +2 -2
- package/packages/forms/package.json +1 -1
- package/packages/forms/src/components/LabelControl.tsx +54 -51
- package/packages/forms/src/components/Select.tsx +4 -3
- package/packages/forms/src/components/Text.tsx +1 -0
- package/packages/forms/src/components/Textarea.tsx +1 -0
- package/packages/forms/src/components/context.ts +1 -0
- 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'>
|
|
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"> </span>
|
|
147
147
|
<span class="cline-any cline-yes">4x</span>
|
|
148
148
|
<span class="cline-any cline-neutral"> </span>
|
|
149
|
-
<span class="cline-any cline-yes">11x</span>
|
|
150
149
|
<span class="cline-any cline-neutral"> </span>
|
|
151
150
|
<span class="cline-any cline-neutral"> </span>
|
|
151
|
+
<span class="cline-any cline-yes">17x</span>
|
|
152
152
|
<span class="cline-any cline-neutral"> </span>
|
|
153
153
|
<span class="cline-any cline-neutral"> </span>
|
|
154
154
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -156,19 +156,19 @@
|
|
|
156
156
|
<span class="cline-any cline-neutral"> </span>
|
|
157
157
|
<span class="cline-any cline-neutral"> </span>
|
|
158
158
|
<span class="cline-any cline-neutral"> </span>
|
|
159
|
-
<span class="cline-any cline-yes">11x</span>
|
|
160
159
|
<span class="cline-any cline-neutral"> </span>
|
|
161
|
-
<span class="cline-any cline-yes">11x</span>
|
|
162
160
|
<span class="cline-any cline-neutral"> </span>
|
|
161
|
+
<span class="cline-any cline-yes">17x</span>
|
|
163
162
|
<span class="cline-any cline-neutral"> </span>
|
|
163
|
+
<span class="cline-any cline-yes">17x</span>
|
|
164
164
|
<span class="cline-any cline-neutral"> </span>
|
|
165
165
|
<span class="cline-any cline-neutral"> </span>
|
|
166
166
|
<span class="cline-any cline-neutral"> </span>
|
|
167
167
|
<span class="cline-any cline-neutral"> </span>
|
|
168
|
-
<span class="cline-any cline-yes">11x</span>
|
|
169
168
|
<span class="cline-any cline-neutral"> </span>
|
|
170
169
|
<span class="cline-any cline-neutral"> </span>
|
|
171
170
|
<span class="cline-any cline-neutral"> </span>
|
|
171
|
+
<span class="cline-any cline-yes">17x</span>
|
|
172
172
|
<span class="cline-any cline-neutral"> </span>
|
|
173
173
|
<span class="cline-any cline-neutral"> </span>
|
|
174
174
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -204,7 +204,7 @@ import { cx } from '../utils'
|
|
|
204
204
|
import { ControllerContext } from './context'
|
|
205
205
|
|
|
206
206
|
export interface LabelControlProps
|
|
207
|
-
extends React.ComponentPropsWithoutRef<'
|
|
207
|
+
extends React.ComponentPropsWithoutRef<'label'> {
|
|
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
|
|
|
215
|
-
export const LabelControl = React.forwardRef<
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
215
|
+
export const LabelControl = React.forwardRef<
|
|
216
|
+
HTMLLabelElement,
|
|
217
|
+
LabelControlProps
|
|
218
|
+
>((props, ref) => {
|
|
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
|
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
return (
|
|
237
|
-
<ControllerContext.Provider value={context}>
|
|
238
|
-
<div className={cx('mb-4', className)} ref={ref} {...newProps}>
|
|
239
|
-
<label>
|
|
240
|
-
<p className={cx('block mb-2', isInvalid && 'text-sun-800')}>
|
|
241
|
-
{labelText}
|
|
242
|
-
{isRequired && <span className="text-sun-800">&nbsp;*</span>}
|
|
243
|
-
</p>
|
|
244
|
-
{children}
|
|
245
|
-
{helperText && (
|
|
246
|
-
<p
|
|
247
|
-
id={context.helperTextId}
|
|
248
|
-
className="text-sm text-sumi-700 mt-2"
|
|
249
|
-
>
|
|
250
|
-
{helperText}
|
|
251
|
-
</p>
|
|
252
|
-
)}
|
|
253
|
-
{isInvalid && (
|
|
254
|
-
<p
|
|
255
|
-
id={context.errorMessageId}
|
|
256
|
-
className={cx(
|
|
257
|
-
'text-sm text-sun-800',
|
|
258
|
-
helperText ? 'mt-1' : 'mt-2'
|
|
259
|
-
)}
|
|
260
|
-
>
|
|
261
|
-
{errorMessage}
|
|
262
|
-
</p>
|
|
263
|
-
)}
|
|
264
|
-
</label>
|
|
265
|
-
</div>
|
|
266
|
-
</ControllerContext.Provider>
|
|
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
|
+
|
|
239
|
+
return (
|
|
240
|
+
<ControllerContext.Provider value={context}>
|
|
241
|
+
<div className={cx('mb-4', className)}>
|
|
242
|
+
<label
|
|
243
|
+
className={cx('block mb-2', isInvalid && 'text-sun-800')}
|
|
244
|
+
htmlFor={context.id}
|
|
245
|
+
ref={ref}
|
|
246
|
+
{...restProps}
|
|
247
|
+
>
|
|
248
|
+
{labelText}
|
|
249
|
+
{isRequired && <span className="text-sun-800">&nbsp;*</span>}
|
|
250
|
+
</label>
|
|
251
|
+
{children}
|
|
252
|
+
|
|
253
|
+
{helperText && (
|
|
254
|
+
<p id={context.helperTextId} className="text-sm text-sumi-700 mt-2">
|
|
255
|
+
{helperText}
|
|
256
|
+
</p>
|
|
257
|
+
)}
|
|
258
|
+
{isInvalid && (
|
|
259
|
+
<p
|
|
260
|
+
id={context.errorMessageId}
|
|
261
|
+
className={cx('text-sm text-sun-800', helperText ? 'mt-1' : 'mt-2')}
|
|
262
|
+
>
|
|
263
|
+
{errorMessage}
|
|
264
|
+
</p>
|
|
265
|
+
)}
|
|
266
|
+
</div>
|
|
267
|
+
</ControllerContext.Provider>
|
|
268
|
+
)
|
|
269
|
+
})
|
|
270
270
|
</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<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-
|
|
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<HTMLInputElement, Props>((props, ref
|
|
|
224
224
|
`
|
|
225
225
|
return (
|
|
226
226
|
<label htmlFor={newProps.id} className={cx(style, className)}>
|
|
227
|
-
<
|
|
227
|
+
<span className="flex items-center">
|
|
228
228
|
<input
|
|
229
229
|
className={styleInput}
|
|
230
230
|
type="radio"
|
|
@@ -236,7 +236,7 @@ export const Radio = React.forwardRef<HTMLInputElement, Props>((props, ref
|
|
|
236
236
|
/>
|
|
237
237
|
<span className={styleRadio}></span>
|
|
238
238
|
{children}
|
|
239
|
-
</
|
|
239
|
+
</span>
|
|
240
240
|
</label>
|
|
241
241
|
)
|
|
242
242
|
})
|
|
@@ -247,7 +247,7 @@ export const Radio = React.forwardRef<HTMLInputElement, Props>((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-
|
|
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">
|
|
26
|
+
<span class="strong">90.9% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
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">
|
|
33
|
+
<span class="strong">57.14% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
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">
|
|
40
|
+
<span class="strong">100% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
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">
|
|
47
|
+
<span class="strong">90.9% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
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
|
|
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
|
|
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"> </span>
|
|
@@ -127,15 +129,15 @@
|
|
|
127
129
|
<span class="cline-any cline-neutral"> </span>
|
|
128
130
|
<span class="cline-any cline-yes">4x</span>
|
|
129
131
|
<span class="cline-any cline-neutral"> </span>
|
|
130
|
-
<span class="cline-any cline-
|
|
131
|
-
<span class="cline-any cline-
|
|
132
|
-
<span class="cline-any cline-
|
|
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"> </span>
|
|
134
136
|
<span class="cline-any cline-neutral"> </span>
|
|
135
137
|
<span class="cline-any cline-neutral"> </span>
|
|
136
|
-
<span class="cline-any cline-
|
|
138
|
+
<span class="cline-any cline-yes">2x</span>
|
|
137
139
|
<span class="cline-any cline-neutral"> </span>
|
|
138
|
-
<span class="cline-any cline-
|
|
140
|
+
<span class="cline-any cline-yes">2x</span>
|
|
139
141
|
<span class="cline-any cline-neutral"> </span>
|
|
140
142
|
<span class="cline-any cline-neutral"> </span>
|
|
141
143
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -149,7 +151,9 @@
|
|
|
149
151
|
<span class="cline-any cline-neutral"> </span>
|
|
150
152
|
<span class="cline-any cline-neutral"> </span>
|
|
151
153
|
<span class="cline-any cline-neutral"> </span>
|
|
152
|
-
<span class="cline-any cline-
|
|
154
|
+
<span class="cline-any cline-neutral"> </span>
|
|
155
|
+
<span class="cline-any cline-yes">2x</span>
|
|
156
|
+
<span class="cline-any cline-neutral"> </span>
|
|
153
157
|
<span class="cline-any cline-neutral"> </span>
|
|
154
158
|
<span class="cline-any cline-neutral"> </span>
|
|
155
159
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -182,16 +186,17 @@ import { ControllerContext } from './context'
|
|
|
182
186
|
export interface SelectProps extends React.ComponentPropsWithoutRef<'select'> {}
|
|
183
187
|
|
|
184
188
|
export const Select = React.forwardRef<HTMLSelectElement, SelectProps>(
|
|
185
|
-
|
|
186
|
-
const { className, children, ...
|
|
187
|
-
const ctx =
|
|
188
|
-
|
|
189
|
-
<span class="cstat-no" title="statement not covered" >
|
|
189
|
+
(props, ref) => {
|
|
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
|
|
|
192
|
-
const invalidStyle = <span class="
|
|
196
|
+
const invalidStyle = ctx.isInvalid ? <span class="branch-0 cbranch-no" title="branch not covered" >'border-sun-800' </span>: 'border-sumi-900'
|
|
193
197
|
|
|
194
|
-
const style =
|
|
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<HTMLSelectElement, SelectProps>(
|
|
|
205
210
|
focus:outline-wood-500
|
|
206
211
|
`
|
|
207
212
|
|
|
208
|
-
|
|
209
|
-
<
|
|
213
|
+
return (
|
|
214
|
+
<span className="inline-block relative">
|
|
210
215
|
<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
|
-
{...
|
|
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
|
>
|
|
218
224
|
{children}
|
|
219
225
|
</select>
|
|
220
|
-
<
|
|
226
|
+
<span className="flex items-center absolute inset-y-0 right-0 px-2 pointer-events-none">
|
|
221
227
|
<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<HTMLSelectElement, SelectProps>(
|
|
|
226
232
|
>
|
|
227
233
|
<path d="M12 15.05 6.35 9.4 7.4 8.35l4.6 4.6 4.6-4.6 1.05 1.05Z" />
|
|
228
234
|
</svg>
|
|
229
|
-
</
|
|
230
|
-
</
|
|
235
|
+
</span>
|
|
236
|
+
</span>
|
|
231
237
|
)
|
|
232
238
|
}
|
|
233
239
|
)
|
|
@@ -238,7 +244,7 @@ export const Select = React.forwardRef<HTMLSelectElement, SelectProps>(
|
|
|
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-
|
|
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">
|
|
33
|
+
<span class="strong">85.71% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
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
|
|
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"> </span>
|
|
@@ -115,15 +116,15 @@
|
|
|
115
116
|
<span class="cline-any cline-neutral"> </span>
|
|
116
117
|
<span class="cline-any cline-yes">4x</span>
|
|
117
118
|
<span class="cline-any cline-neutral"> </span>
|
|
118
|
-
<span class="cline-any cline-yes">
|
|
119
|
-
<span class="cline-any cline-yes">
|
|
120
|
-
<span class="cline-any cline-yes">
|
|
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"> </span>
|
|
123
124
|
<span class="cline-any cline-neutral"> </span>
|
|
124
|
-
<span class="cline-any cline-yes">
|
|
125
|
+
<span class="cline-any cline-yes">8x</span>
|
|
125
126
|
<span class="cline-any cline-neutral"> </span>
|
|
126
|
-
<span class="cline-any cline-yes">
|
|
127
|
+
<span class="cline-any cline-yes">8x</span>
|
|
127
128
|
<span class="cline-any cline-neutral"> </span>
|
|
128
129
|
<span class="cline-any cline-neutral"> </span>
|
|
129
130
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -138,7 +139,8 @@
|
|
|
138
139
|
<span class="cline-any cline-neutral"> </span>
|
|
139
140
|
<span class="cline-any cline-neutral"> </span>
|
|
140
141
|
<span class="cline-any cline-neutral"> </span>
|
|
141
|
-
<span class="cline-any cline-yes">
|
|
142
|
+
<span class="cline-any cline-yes">8x</span>
|
|
143
|
+
<span class="cline-any cline-neutral"> </span>
|
|
142
144
|
<span class="cline-any cline-neutral"> </span>
|
|
143
145
|
<span class="cline-any cline-neutral"> </span>
|
|
144
146
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -159,10 +161,10 @@ export interface TextProps extends React.ComponentPropsWithoutRef<'input'>
|
|
|
159
161
|
|
|
160
162
|
export const Text = React.forwardRef<HTMLInputElement, TextProps>(
|
|
161
163
|
(props, ref) => {
|
|
162
|
-
const { className, ...
|
|
164
|
+
const { className, ...restProps } = props
|
|
163
165
|
const ctx = React.useContext(ControllerContext)
|
|
164
166
|
if (ctx.isRequired) {
|
|
165
|
-
|
|
167
|
+
restProps.required = true
|
|
166
168
|
}
|
|
167
169
|
|
|
168
170
|
const invalidStyle = ctx.isInvalid ? 'border-sun-800' : 'border-sumi-900'
|
|
@@ -185,11 +187,12 @@ export const Text = React.forwardRef<HTMLInputElement, TextProps>(
|
|
|
185
187
|
return (
|
|
186
188
|
<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
|
-
{...
|
|
195
|
+
{...restProps}
|
|
193
196
|
ref={ref}
|
|
194
197
|
/>
|
|
195
198
|
)
|
|
@@ -202,7 +205,7 @@ export const Text = React.forwardRef<HTMLInputElement, TextProps>(
|
|
|
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-
|
|
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">
|
|
26
|
+
<span class="strong">90.9% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
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">
|
|
33
|
+
<span class="strong">57.14% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
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">
|
|
40
|
+
<span class="strong">100% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
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">
|
|
47
|
+
<span class="strong">90.9% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
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
|
|
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
|
|
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"> </span>
|
|
@@ -119,16 +120,16 @@
|
|
|
119
120
|
<span class="cline-any cline-neutral"> </span>
|
|
120
121
|
<span class="cline-any cline-yes">4x</span>
|
|
121
122
|
<span class="cline-any cline-neutral"> </span>
|
|
122
|
-
<span class="cline-any cline-
|
|
123
|
+
<span class="cline-any cline-yes">2x</span>
|
|
123
124
|
<span class="cline-any cline-neutral"> </span>
|
|
124
|
-
<span class="cline-any cline-
|
|
125
|
-
<span class="cline-any cline-
|
|
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"> </span>
|
|
127
128
|
<span class="cline-any cline-neutral"> </span>
|
|
128
129
|
<span class="cline-any cline-neutral"> </span>
|
|
129
|
-
<span class="cline-any cline-
|
|
130
|
+
<span class="cline-any cline-yes">2x</span>
|
|
130
131
|
<span class="cline-any cline-neutral"> </span>
|
|
131
|
-
<span class="cline-any cline-
|
|
132
|
+
<span class="cline-any cline-yes">2x</span>
|
|
132
133
|
<span class="cline-any cline-neutral"> </span>
|
|
133
134
|
<span class="cline-any cline-neutral"> </span>
|
|
134
135
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -143,7 +144,8 @@
|
|
|
143
144
|
<span class="cline-any cline-neutral"> </span>
|
|
144
145
|
<span class="cline-any cline-neutral"> </span>
|
|
145
146
|
<span class="cline-any cline-neutral"> </span>
|
|
146
|
-
<span class="cline-any cline-
|
|
147
|
+
<span class="cline-any cline-yes">2x</span>
|
|
148
|
+
<span class="cline-any cline-neutral"> </span>
|
|
147
149
|
<span class="cline-any cline-neutral"> </span>
|
|
148
150
|
<span class="cline-any cline-neutral"> </span>
|
|
149
151
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -165,17 +167,17 @@ export interface TextareaProps
|
|
|
165
167
|
extends React.ComponentPropsWithoutRef<'textarea'> {}
|
|
166
168
|
|
|
167
169
|
export const Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(
|
|
168
|
-
|
|
169
|
-
const { className, children, ...
|
|
170
|
+
(props, ref) => {
|
|
171
|
+
const { className, children, ...restProps } = props
|
|
170
172
|
|
|
171
|
-
const ctx =
|
|
172
|
-
|
|
173
|
-
<span class="cstat-no" title="statement not covered" >
|
|
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
|
|
|
176
|
-
const invalidStyle = <span class="
|
|
178
|
+
const invalidStyle = ctx.isInvalid ? <span class="branch-0 cbranch-no" title="branch not covered" >'border-sun-800' </span>: 'border-sumi-900'
|
|
177
179
|
|
|
178
|
-
const style =
|
|
180
|
+
const style = `
|
|
179
181
|
p-4
|
|
180
182
|
rounded-lg
|
|
181
183
|
border
|
|
@@ -190,13 +192,14 @@ export const Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps&g
|
|
|
190
192
|
disabled:border-sumi-500
|
|
191
193
|
`
|
|
192
194
|
|
|
193
|
-
|
|
195
|
+
return (
|
|
194
196
|
<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
|
-
{...
|
|
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
|
>
|
|
202
205
|
{children}
|
|
@@ -211,7 +214,7 @@ export const Textarea = React.forwardRef<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-
|
|
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
|
|
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"> </span>
|
|
83
85
|
<span class="cline-any cline-neutral"> </span>
|
|
84
86
|
<span class="cline-any cline-neutral"> </span>
|
|
85
87
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -98,6 +100,7 @@
|
|
|
98
100
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import React from 'react'
|
|
99
101
|
|
|
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<ControllerContextType>
|
|
|
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-
|
|
124
|
+
at 2023-03-30T13:17:37.839Z
|
|
122
125
|
</div>
|
|
123
126
|
<script src="../../prettify.js"></script>
|
|
124
127
|
<script>
|