@sakura-ui/sakura-ui 0.1.12 → 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 (42) hide show
  1. package/package.json +1 -1
  2. package/packages/config/package.json +1 -1
  3. package/packages/config/src/index.ts +25 -9
  4. package/packages/core/coverage/clover.xml +258 -0
  5. package/packages/core/coverage/coverage-final.json +15 -0
  6. package/packages/core/coverage/lcov-report/base.css +224 -0
  7. package/packages/core/coverage/lcov-report/block-navigation.js +87 -0
  8. package/packages/core/coverage/lcov-report/favicon.png +0 -0
  9. package/packages/core/coverage/lcov-report/index.html +146 -0
  10. package/packages/core/coverage/lcov-report/prettify.css +1 -0
  11. package/packages/core/coverage/lcov-report/prettify.js +2 -0
  12. package/packages/core/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  13. package/packages/core/coverage/lcov-report/sorter.js +196 -0
  14. package/packages/core/coverage/lcov-report/src/components/Button.tsx.html +301 -0
  15. package/packages/core/coverage/lcov-report/src/components/Card.tsx.html +397 -0
  16. package/packages/core/coverage/lcov-report/src/components/Code.tsx.html +142 -0
  17. package/packages/core/coverage/lcov-report/src/components/Heading.tsx.html +403 -0
  18. package/packages/core/coverage/lcov-report/src/components/Icon.tsx.html +181 -0
  19. package/packages/core/coverage/lcov-report/src/components/IconButton.tsx.html +376 -0
  20. package/packages/core/coverage/lcov-report/src/components/InfoCard.tsx.html +238 -0
  21. package/packages/core/coverage/lcov-report/src/components/Link.tsx.html +322 -0
  22. package/packages/core/coverage/lcov-report/src/components/List.tsx.html +202 -0
  23. package/packages/core/coverage/lcov-report/src/components/Pre.tsx.html +151 -0
  24. package/packages/core/coverage/lcov-report/src/components/Table.tsx.html +427 -0
  25. package/packages/core/coverage/lcov-report/src/components/index.html +281 -0
  26. package/packages/core/coverage/lcov-report/src/components/index.ts.html +124 -0
  27. package/packages/core/coverage/lcov-report/src/index.html +116 -0
  28. package/packages/core/coverage/lcov-report/src/index.ts.html +169 -0
  29. package/packages/core/coverage/lcov-report/src/utils/class.ts.html +88 -0
  30. package/packages/core/coverage/lcov-report/src/utils/index.html +116 -0
  31. package/packages/core/coverage/lcov.info +523 -0
  32. package/packages/core/jest.config.ts +11 -0
  33. package/packages/core/package.json +5 -1
  34. package/packages/core/src/components/Button.tsx +33 -29
  35. package/packages/core/src/components/Card.tsx +87 -6
  36. package/packages/core/src/components/IconButton.tsx +19 -14
  37. package/packages/core/src/components/InfoCard.tsx +10 -9
  38. package/packages/core/src/components/index.ts +4 -2
  39. package/packages/core/src/index.ts +3 -0
  40. package/packages/core/tests/Card.test.tsx +19 -0
  41. package/packages/forms/jest.config.ts +0 -3
  42. package/packages/forms/node_modules/.bin/browserslist +17 -0
@@ -0,0 +1,523 @@
1
+ TN:
2
+ SF:src/index.ts
3
+ FN:2,(anonymous_0)
4
+ FN:3,(anonymous_1)
5
+ FN:4,(anonymous_2)
6
+ FN:5,(anonymous_3)
7
+ FN:6,(anonymous_4)
8
+ FN:7,(anonymous_5)
9
+ FN:8,(anonymous_6)
10
+ FN:9,(anonymous_7)
11
+ FN:10,(anonymous_8)
12
+ FN:11,(anonymous_9)
13
+ FN:12,(anonymous_10)
14
+ FN:13,(anonymous_11)
15
+ FN:14,(anonymous_12)
16
+ FN:15,(anonymous_13)
17
+ FN:16,(anonymous_14)
18
+ FN:17,(anonymous_15)
19
+ FN:18,(anonymous_16)
20
+ FN:19,(anonymous_17)
21
+ FN:20,(anonymous_18)
22
+ FN:21,(anonymous_19)
23
+ FN:22,(anonymous_20)
24
+ FN:23,(anonymous_21)
25
+ FN:24,(anonymous_22)
26
+ FN:25,(anonymous_23)
27
+ FN:26,(anonymous_24)
28
+ FN:27,(anonymous_25)
29
+ FNF:26
30
+ FNH:2
31
+ FNDA:0,(anonymous_0)
32
+ FNDA:1,(anonymous_1)
33
+ FNDA:1,(anonymous_2)
34
+ FNDA:0,(anonymous_3)
35
+ FNDA:0,(anonymous_4)
36
+ FNDA:0,(anonymous_5)
37
+ FNDA:0,(anonymous_6)
38
+ FNDA:0,(anonymous_7)
39
+ FNDA:0,(anonymous_8)
40
+ FNDA:0,(anonymous_9)
41
+ FNDA:0,(anonymous_10)
42
+ FNDA:0,(anonymous_11)
43
+ FNDA:0,(anonymous_12)
44
+ FNDA:0,(anonymous_13)
45
+ FNDA:0,(anonymous_14)
46
+ FNDA:0,(anonymous_15)
47
+ FNDA:0,(anonymous_16)
48
+ FNDA:0,(anonymous_17)
49
+ FNDA:0,(anonymous_18)
50
+ FNDA:0,(anonymous_19)
51
+ FNDA:0,(anonymous_20)
52
+ FNDA:0,(anonymous_21)
53
+ FNDA:0,(anonymous_22)
54
+ FNDA:0,(anonymous_23)
55
+ FNDA:0,(anonymous_24)
56
+ FNDA:0,(anonymous_25)
57
+ DA:1,1
58
+ DA:2,1
59
+ DA:3,2
60
+ DA:4,2
61
+ DA:5,1
62
+ DA:6,1
63
+ DA:7,1
64
+ DA:8,1
65
+ DA:9,1
66
+ DA:10,1
67
+ DA:11,1
68
+ DA:12,1
69
+ DA:13,1
70
+ DA:14,1
71
+ DA:15,1
72
+ DA:16,1
73
+ DA:17,1
74
+ DA:18,1
75
+ DA:19,1
76
+ DA:20,1
77
+ DA:21,1
78
+ DA:22,1
79
+ DA:23,1
80
+ DA:24,1
81
+ DA:25,1
82
+ DA:26,1
83
+ DA:27,1
84
+ LF:27
85
+ LH:27
86
+ BRF:0
87
+ BRH:0
88
+ end_of_record
89
+ TN:
90
+ SF:src/components/Button.tsx
91
+ FN:12,(anonymous_1)
92
+ FNF:1
93
+ FNH:0
94
+ FNDA:0,(anonymous_1)
95
+ DA:1,1
96
+ DA:2,1
97
+ DA:9,1
98
+ DA:14,0
99
+ DA:16,0
100
+ DA:18,0
101
+ DA:38,0
102
+ DA:46,0
103
+ DA:56,0
104
+ DA:61,0
105
+ DA:72,1
106
+ LF:11
107
+ LH:4
108
+ BRDA:16,0,0,0
109
+ BRDA:16,0,1,0
110
+ BRDA:63,1,0,0
111
+ BRDA:63,1,1,0
112
+ BRF:4
113
+ BRH:0
114
+ end_of_record
115
+ TN:
116
+ SF:src/components/Card.tsx
117
+ FN:12,(anonymous_1)
118
+ FN:43,(anonymous_2)
119
+ FN:66,(anonymous_3)
120
+ FN:88,(anonymous_4)
121
+ FNF:4
122
+ FNH:2
123
+ FNDA:1,(anonymous_1)
124
+ FNDA:1,(anonymous_2)
125
+ FNDA:0,(anonymous_3)
126
+ FNDA:0,(anonymous_4)
127
+ DA:1,1
128
+ DA:2,1
129
+ DA:8,1
130
+ DA:12,1
131
+ DA:13,1
132
+ DA:15,1
133
+ DA:16,1
134
+ DA:18,1
135
+ DA:28,1
136
+ DA:43,1
137
+ DA:46,1
138
+ DA:48,1
139
+ DA:50,1
140
+ DA:57,1
141
+ DA:66,1
142
+ DA:69,0
143
+ DA:71,0
144
+ DA:78,0
145
+ DA:88,1
146
+ DA:91,0
147
+ DA:93,0
148
+ DA:99,0
149
+ LF:22
150
+ LH:16
151
+ BRF:0
152
+ BRH:0
153
+ end_of_record
154
+ TN:
155
+ SF:src/components/Code.tsx
156
+ FN:6,(anonymous_0)
157
+ FNF:1
158
+ FNH:0
159
+ FNDA:0,(anonymous_0)
160
+ DA:2,1
161
+ DA:6,1
162
+ DA:7,0
163
+ DA:9,0
164
+ DA:14,0
165
+ LF:5
166
+ LH:2
167
+ BRF:0
168
+ BRH:0
169
+ end_of_record
170
+ TN:
171
+ SF:src/components/Heading.tsx
172
+ FN:6,(anonymous_0)
173
+ FN:23,(anonymous_1)
174
+ FN:40,(anonymous_2)
175
+ FN:57,(anonymous_3)
176
+ FN:74,(anonymous_4)
177
+ FN:91,(anonymous_5)
178
+ FNF:6
179
+ FNH:0
180
+ FNDA:0,(anonymous_0)
181
+ FNDA:0,(anonymous_1)
182
+ FNDA:0,(anonymous_2)
183
+ FNDA:0,(anonymous_3)
184
+ FNDA:0,(anonymous_4)
185
+ FNDA:0,(anonymous_5)
186
+ DA:2,1
187
+ DA:6,1
188
+ DA:7,0
189
+ DA:9,0
190
+ DA:16,0
191
+ DA:23,1
192
+ DA:24,0
193
+ DA:26,0
194
+ DA:33,0
195
+ DA:40,1
196
+ DA:41,0
197
+ DA:43,0
198
+ DA:50,0
199
+ DA:57,1
200
+ DA:58,0
201
+ DA:60,0
202
+ DA:67,0
203
+ DA:74,1
204
+ DA:75,0
205
+ DA:77,0
206
+ DA:84,0
207
+ DA:91,1
208
+ DA:92,0
209
+ DA:94,0
210
+ DA:101,0
211
+ LF:25
212
+ LH:7
213
+ BRF:0
214
+ BRH:0
215
+ end_of_record
216
+ TN:
217
+ SF:src/components/Icon.tsx
218
+ FN:11,(anonymous_1)
219
+ FNF:1
220
+ FNH:0
221
+ FNDA:0,(anonymous_1)
222
+ DA:1,1
223
+ DA:2,1
224
+ DA:8,1
225
+ DA:12,0
226
+ DA:14,0
227
+ DA:25,0
228
+ DA:32,1
229
+ LF:7
230
+ LH:4
231
+ BRF:0
232
+ BRH:0
233
+ end_of_record
234
+ TN:
235
+ SF:src/components/IconButton.tsx
236
+ FN:14,(anonymous_1)
237
+ FNF:1
238
+ FNH:0
239
+ FNDA:0,(anonymous_1)
240
+ DA:1,1
241
+ DA:2,1
242
+ DA:11,1
243
+ DA:23,0
244
+ DA:25,0
245
+ DA:27,0
246
+ DA:29,0
247
+ DA:50,0
248
+ DA:58,0
249
+ DA:68,0
250
+ DA:73,0
251
+ DA:84,0
252
+ DA:97,1
253
+ LF:13
254
+ LH:4
255
+ BRDA:25,0,0,0
256
+ BRDA:25,0,1,0
257
+ BRDA:30,1,0,0
258
+ BRDA:30,1,1,0
259
+ BRDA:35,2,0,0
260
+ BRDA:35,2,1,0
261
+ BRDA:86,3,0,0
262
+ BRDA:86,3,1,0
263
+ BRDA:90,4,0,0
264
+ BRDA:90,4,1,0
265
+ BRDA:91,5,0,0
266
+ BRDA:91,5,1,0
267
+ BRDA:92,6,0,0
268
+ BRDA:92,6,1,0
269
+ BRF:14
270
+ BRH:0
271
+ end_of_record
272
+ TN:
273
+ SF:src/components/InfoCard.tsx
274
+ FN:9,(anonymous_1)
275
+ FNF:1
276
+ FNH:0
277
+ FNDA:0,(anonymous_1)
278
+ DA:1,1
279
+ DA:2,1
280
+ DA:9,1
281
+ DA:12,0
282
+ DA:14,0
283
+ DA:23,0
284
+ DA:31,0
285
+ DA:37,0
286
+ DA:39,0
287
+ LF:9
288
+ LH:3
289
+ BRF:0
290
+ BRH:0
291
+ end_of_record
292
+ TN:
293
+ SF:src/components/Link.tsx
294
+ FN:4,(anonymous_1)
295
+ FN:36,(anonymous_2)
296
+ FNF:2
297
+ FNH:0
298
+ FNDA:0,(anonymous_1)
299
+ FNDA:0,(anonymous_2)
300
+ DA:1,1
301
+ DA:2,1
302
+ DA:4,1
303
+ DA:5,0
304
+ DA:7,0
305
+ DA:8,0
306
+ DA:10,0
307
+ DA:11,0
308
+ DA:13,0
309
+ DA:14,0
310
+ DA:16,0
311
+ DA:17,0
312
+ DA:19,0
313
+ DA:20,0
314
+ DA:22,0
315
+ DA:23,0
316
+ DA:25,0
317
+ DA:26,0
318
+ DA:28,0
319
+ DA:33,1
320
+ DA:37,0
321
+ DA:38,0
322
+ DA:39,0
323
+ DA:41,0
324
+ DA:56,0
325
+ DA:57,0
326
+ DA:71,0
327
+ DA:79,1
328
+ LF:28
329
+ LH:5
330
+ BRDA:7,0,0,0
331
+ BRDA:10,1,0,0
332
+ BRDA:10,2,0,0
333
+ BRDA:10,2,1,0
334
+ BRDA:13,3,0,0
335
+ BRDA:13,4,0,0
336
+ BRDA:13,4,1,0
337
+ BRDA:16,5,0,0
338
+ BRDA:19,6,0,0
339
+ BRDA:22,7,0,0
340
+ BRDA:25,8,0,0
341
+ BRDA:38,9,0,0
342
+ BRDA:38,9,1,0
343
+ BRDA:56,10,0,0
344
+ BRDA:67,11,0,0
345
+ BRDA:67,11,1,0
346
+ BRDA:74,12,0,0
347
+ BRDA:74,12,1,0
348
+ BRF:18
349
+ BRH:0
350
+ end_of_record
351
+ TN:
352
+ SF:src/components/List.tsx
353
+ FN:6,(anonymous_0)
354
+ FN:25,(anonymous_1)
355
+ FNF:2
356
+ FNH:0
357
+ FNDA:0,(anonymous_0)
358
+ FNDA:0,(anonymous_1)
359
+ DA:2,1
360
+ DA:6,1
361
+ DA:7,0
362
+ DA:9,0
363
+ DA:16,0
364
+ DA:25,1
365
+ DA:26,0
366
+ DA:28,0
367
+ DA:34,0
368
+ LF:9
369
+ LH:3
370
+ BRF:0
371
+ BRH:0
372
+ end_of_record
373
+ TN:
374
+ SF:src/components/Pre.tsx
375
+ FN:6,(anonymous_0)
376
+ FNF:1
377
+ FNH:0
378
+ FNDA:0,(anonymous_0)
379
+ DA:2,1
380
+ DA:6,1
381
+ DA:7,0
382
+ DA:9,0
383
+ DA:17,0
384
+ LF:5
385
+ LH:2
386
+ BRF:0
387
+ BRH:0
388
+ end_of_record
389
+ TN:
390
+ SF:src/components/Table.tsx
391
+ FN:12,(anonymous_0)
392
+ FN:32,(anonymous_1)
393
+ FN:47,(anonymous_2)
394
+ FN:59,(anonymous_3)
395
+ FN:71,(anonymous_4)
396
+ FN:88,(anonymous_5)
397
+ FN:102,(anonymous_6)
398
+ FNF:7
399
+ FNH:0
400
+ FNDA:0,(anonymous_0)
401
+ FNDA:0,(anonymous_1)
402
+ FNDA:0,(anonymous_2)
403
+ FNDA:0,(anonymous_3)
404
+ FNDA:0,(anonymous_4)
405
+ FNDA:0,(anonymous_5)
406
+ FNDA:0,(anonymous_6)
407
+ DA:2,1
408
+ DA:6,1
409
+ DA:12,1
410
+ DA:13,0
411
+ DA:16,0
412
+ DA:22,0
413
+ DA:32,1
414
+ DA:35,0
415
+ DA:37,0
416
+ DA:38,0
417
+ DA:47,1
418
+ DA:48,0
419
+ DA:50,0
420
+ DA:59,1
421
+ DA:60,0
422
+ DA:62,0
423
+ DA:71,1
424
+ DA:72,0
425
+ DA:74,0
426
+ DA:79,0
427
+ DA:88,1
428
+ DA:89,0
429
+ DA:91,0
430
+ DA:93,0
431
+ DA:102,1
432
+ DA:103,0
433
+ DA:105,0
434
+ DA:109,0
435
+ LF:28
436
+ LH:9
437
+ BRF:0
438
+ BRH:0
439
+ end_of_record
440
+ TN:
441
+ SF:src/components/index.ts
442
+ FN:1,(anonymous_0)
443
+ FN:2,(anonymous_1)
444
+ FN:2,(anonymous_2)
445
+ FN:2,(anonymous_3)
446
+ FN:2,(anonymous_4)
447
+ FN:3,(anonymous_5)
448
+ FN:4,(anonymous_6)
449
+ FN:4,(anonymous_7)
450
+ FN:4,(anonymous_8)
451
+ FN:4,(anonymous_9)
452
+ FN:4,(anonymous_10)
453
+ FN:4,(anonymous_11)
454
+ FN:5,(anonymous_12)
455
+ FN:6,(anonymous_13)
456
+ FN:7,(anonymous_14)
457
+ FN:8,(anonymous_15)
458
+ FN:8,(anonymous_16)
459
+ FN:9,(anonymous_17)
460
+ FN:10,(anonymous_18)
461
+ FN:10,(anonymous_19)
462
+ FN:10,(anonymous_20)
463
+ FN:10,(anonymous_21)
464
+ FN:10,(anonymous_22)
465
+ FN:10,(anonymous_23)
466
+ FN:10,(anonymous_24)
467
+ FN:13,(anonymous_25)
468
+ FNF:26
469
+ FNH:2
470
+ FNDA:0,(anonymous_0)
471
+ FNDA:1,(anonymous_1)
472
+ FNDA:1,(anonymous_2)
473
+ FNDA:0,(anonymous_3)
474
+ FNDA:0,(anonymous_4)
475
+ FNDA:0,(anonymous_5)
476
+ FNDA:0,(anonymous_6)
477
+ FNDA:0,(anonymous_7)
478
+ FNDA:0,(anonymous_8)
479
+ FNDA:0,(anonymous_9)
480
+ FNDA:0,(anonymous_10)
481
+ FNDA:0,(anonymous_11)
482
+ FNDA:0,(anonymous_12)
483
+ FNDA:0,(anonymous_13)
484
+ FNDA:0,(anonymous_14)
485
+ FNDA:0,(anonymous_15)
486
+ FNDA:0,(anonymous_16)
487
+ FNDA:0,(anonymous_17)
488
+ FNDA:0,(anonymous_18)
489
+ FNDA:0,(anonymous_19)
490
+ FNDA:0,(anonymous_20)
491
+ FNDA:0,(anonymous_21)
492
+ FNDA:0,(anonymous_22)
493
+ FNDA:0,(anonymous_23)
494
+ FNDA:0,(anonymous_24)
495
+ FNDA:0,(anonymous_25)
496
+ DA:1,1
497
+ DA:2,2
498
+ DA:3,1
499
+ DA:4,1
500
+ DA:5,1
501
+ DA:6,1
502
+ DA:7,1
503
+ DA:8,1
504
+ DA:9,1
505
+ DA:10,1
506
+ DA:13,1
507
+ LF:11
508
+ LH:11
509
+ BRF:0
510
+ BRH:0
511
+ end_of_record
512
+ TN:
513
+ SF:src/utils/class.ts
514
+ FN:1,(anonymous_0)
515
+ FNF:1
516
+ FNH:1
517
+ FNDA:2,(anonymous_0)
518
+ DA:1,2
519
+ LF:1
520
+ LH:1
521
+ BRF:0
522
+ BRH:0
523
+ end_of_record
@@ -0,0 +1,11 @@
1
+ import { Config } from '@jest/types'
2
+
3
+ const config: Config.InitialOptions = {
4
+ preset: 'ts-jest',
5
+ testMatch: ['<rootDir>/tests/**/*.test.{ts,tsx}'],
6
+ testEnvironment: 'jsdom',
7
+ collectCoverage: true,
8
+ moduleDirectories: ['node_modules', '<rootDir>']
9
+ }
10
+
11
+ export default config
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sakura-ui/core",
3
- "version": "0.1.8",
3
+ "version": "0.1.9",
4
4
  "type": "module",
5
5
  "main": "dist/index.cjs.js",
6
6
  "types": "dist/index.d.ts",
@@ -39,10 +39,14 @@
39
39
  "tailwindcss": "^3.2.7"
40
40
  },
41
41
  "devDependencies": {
42
+ "@jest/types": "^29.6.1",
43
+ "@testing-library/jest-dom": "^5.16.5",
44
+ "@testing-library/react": "^14.0.0",
42
45
  "@types/jest": "^29.5.2",
43
46
  "@types/node": "^18.16.19",
44
47
  "@types/react": "^18.2.14",
45
48
  "@types/react-dom": "^18.2.6",
49
+ "@types/testing-library__jest-dom": "^5.14.7",
46
50
  "@vitejs/plugin-react-swc": "^3.3.2",
47
51
  "autoprefixer": "^10.4.14",
48
52
  "jest": "^29.6.1",
@@ -16,38 +16,42 @@ export const Button: React.ElementType<ButtonProps> = React.forwardRef<
16
16
  const align = textAlign ?? 'center'
17
17
 
18
18
  const style = `
19
- inline-block
20
- p-4
21
- text-button
22
- text-${align}
23
- rounded-lg
24
- cursor-pointer
25
- whitespace-nowrap
26
- border
27
- border-solid
28
- border-sea-600
29
- focus:outline
30
- focus:outline-2
31
- focus:outline-wood-500
32
- disabled:border-sumi-500
33
- disabled:cursor-not-allowed
34
- `
19
+ inline-block
20
+ p-4
21
+ text-button
22
+ text-${align}
23
+ rounded-lg
24
+ cursor-pointer
25
+ whitespace-nowrap
26
+ border
27
+ border-solid
28
+ border-sea-800
29
+ active:enabled:border-sea-800-darken
30
+ hover:enabled:border-sea-800-darken
31
+ focus:outline
32
+ focus:outline-2
33
+ focus:outline-wood-600
34
+ disabled:border-sumi-500
35
+ disabled:cursor-not-allowed
36
+ `
35
37
 
36
38
  const primary = `
37
- text-white-1000
38
- bg-sea-600
39
- hover:enabled:bg-sea-700
40
- active:enabled:bg-sea-800
41
- disabled:bg-sumi-500
42
- disabled:text-white-1000
43
- `
39
+ text-white-1000
40
+ bg-sea-800
41
+ active:enabled:bg-sea-800-darken
42
+ hover:enabled:bg-sea-800-darken
43
+ disabled:bg-sumi-500
44
+ disabled:text-white-1000
45
+ `
44
46
  const secondary = `
45
- text-sea-600
46
- bg-transparent
47
- hover:enabled:bg-sea-100
48
- active:enabled:bg-sea-200
49
- disabled:text-sumi-500
50
- `
47
+ text-sea-800
48
+ bg-transparent
49
+ active:enabled:bg-sea-50
50
+ hover:enabled:bg-sea-50
51
+ active:enabled:text-sea-800-darken
52
+ hover:enabled:text-sea-800-darken
53
+ disabled:text-sumi-500
54
+ `
51
55
 
52
56
  const styles = {
53
57
  primary: primary,
@@ -1,23 +1,104 @@
1
1
  import React from 'react'
2
2
  import { cx } from '../utils/class'
3
3
 
4
+ interface IdContextType {
5
+ id: string
6
+ }
7
+
8
+ const IdContext = React.createContext<IdContextType>({ id: '' })
9
+
4
10
  export interface CardProps extends React.ComponentPropsWithoutRef<'section'> {}
5
11
 
6
12
  export const Card: React.ElementType<CardProps> = (props: CardProps) => {
7
13
  const { className, children, ...restProps } = props
8
14
 
15
+ const id = React.useId()
16
+ const ctx: IdContextType = { id: id }
17
+
9
18
  const style = `
10
- bg-sumi-50
11
19
  border
12
20
  border-solid
13
21
  border-sumi-300
14
- rounded-[12px]
15
- p-4
22
+ rounded-2xl
23
+ md:rounded-3xl
16
24
  text-sumi-900
25
+ overflow-hidden
26
+ `
27
+
28
+ return (
29
+ <IdContext.Provider value={ctx}>
30
+ <section
31
+ aria-labelledby={ctx.id}
32
+ className={cx(style, className)}
33
+ {...restProps}
34
+ >
35
+ {children}
36
+ </section>
37
+ </IdContext.Provider>
38
+ )
39
+ }
40
+
41
+ export interface CardHeaderProps extends React.ComponentPropsWithoutRef<'h2'> {}
42
+
43
+ export const CardHeader: React.ElementType<CardHeaderProps> = (
44
+ props: CardHeaderProps
45
+ ) => {
46
+ const { className, children, ...restProps } = props
47
+
48
+ const ctx = React.useContext(IdContext)
49
+
50
+ const style = `
51
+ py-6
52
+ px-6
53
+ text-lgm
54
+ leading-none
55
+ `
56
+
57
+ return (
58
+ <h2 id={ctx.id} className={cx(style, className)} {...restProps}>
59
+ {children}
60
+ </h2>
61
+ )
62
+ }
63
+
64
+ export interface CardBodyProps extends React.ComponentPropsWithoutRef<'p'> {}
65
+
66
+ export const CardBody: React.ElementType<CardBodyProps> = (
67
+ props: CardBodyProps
68
+ ) => {
69
+ const { className, children, ...restProps } = props
70
+
71
+ const style = `
72
+ px-6
73
+ first:pt-6
74
+ pb-6
75
+ text-base
76
+ `
77
+
78
+ return (
79
+ <p className={cx(style, className)} {...restProps}>
80
+ {children}
81
+ </p>
82
+ )
83
+ }
84
+
85
+ export interface CardFooterProps
86
+ extends React.ComponentPropsWithoutRef<'div'> {}
87
+
88
+ export const CardFooter: React.ElementType<CardFooterProps> = (
89
+ props: CardFooterProps
90
+ ) => {
91
+ const { className, children, ...restProps } = props
92
+
93
+ const style = `
94
+ px-6
95
+ first:pt-6
96
+ pb-6
17
97
  `
98
+
18
99
  return (
19
- <section className={cx(style, props.className)} {...restProps}>
20
- {props.children}
21
- </section>
100
+ <div className={cx(style, className)} {...restProps}>
101
+ {children}
102
+ </div>
22
103
  )
23
104
  }