@sakura-ui/sakura-ui 0.1.13 → 0.1.14

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 (96) hide show
  1. package/README.md +3 -3
  2. package/package.json +1 -1
  3. package/packages/config/package.json +1 -1
  4. package/packages/config/src/index.ts +47 -48
  5. package/packages/core/.eslintrc.json +25 -0
  6. package/packages/core/coverage/coverage-final.json +2699 -14
  7. package/packages/core/coverage/lcov-report/base.css +261 -123
  8. package/packages/core/coverage/lcov-report/block-navigation.js +68 -70
  9. package/packages/core/coverage/lcov-report/index.html +198 -128
  10. package/packages/core/coverage/lcov-report/prettify.css +101 -1
  11. package/packages/core/coverage/lcov-report/prettify.js +1003 -1
  12. package/packages/core/coverage/lcov-report/sorter.js +169 -174
  13. package/packages/core/coverage/lcov-report/src/components/Button.tsx.html +70 -68
  14. package/packages/core/coverage/lcov-report/src/components/Card.tsx.html +70 -68
  15. package/packages/core/coverage/lcov-report/src/components/Code.tsx.html +70 -68
  16. package/packages/core/coverage/lcov-report/src/components/Heading.tsx.html +70 -68
  17. package/packages/core/coverage/lcov-report/src/components/Icon.tsx.html +70 -68
  18. package/packages/core/coverage/lcov-report/src/components/IconButton.tsx.html +70 -68
  19. package/packages/core/coverage/lcov-report/src/components/InfoCard.tsx.html +70 -68
  20. package/packages/core/coverage/lcov-report/src/components/Link.tsx.html +70 -68
  21. package/packages/core/coverage/lcov-report/src/components/List.tsx.html +70 -68
  22. package/packages/core/coverage/lcov-report/src/components/Pre.tsx.html +70 -68
  23. package/packages/core/coverage/lcov-report/src/components/Table.tsx.html +70 -68
  24. package/packages/core/coverage/lcov-report/src/components/index.html +369 -254
  25. package/packages/core/coverage/lcov-report/src/components/index.ts.html +70 -68
  26. package/packages/core/coverage/lcov-report/src/index.html +159 -99
  27. package/packages/core/coverage/lcov-report/src/index.ts.html +70 -68
  28. package/packages/core/coverage/lcov-report/src/utils/class.ts.html +70 -68
  29. package/packages/core/coverage/lcov-report/src/utils/index.html +159 -99
  30. package/packages/core/package.json +12 -2
  31. package/packages/core/src/components/Button.tsx +31 -31
  32. package/packages/core/src/components/Card.tsx +12 -14
  33. package/packages/core/src/components/Code.tsx +1 -1
  34. package/packages/core/src/components/Faq.tsx +82 -0
  35. package/packages/core/src/components/Heading.tsx +42 -30
  36. package/packages/core/src/components/Icon.tsx +1 -4
  37. package/packages/core/src/components/IconButton.tsx +78 -68
  38. package/packages/core/src/components/InfoCard.tsx +4 -5
  39. package/packages/core/src/components/Link.tsx +23 -24
  40. package/packages/core/src/components/List.tsx +3 -3
  41. package/packages/core/src/components/Pre.tsx +1 -1
  42. package/packages/core/src/components/Table.tsx +7 -9
  43. package/packages/core/src/components/index.ts +1 -0
  44. package/packages/core/src/index.ts +3 -0
  45. package/packages/forms/dist/components/Checkbox.d.ts +1 -1
  46. package/packages/forms/dist/components/Checkbox.d.ts.map +1 -1
  47. package/packages/forms/dist/components/Checkbox.js.map +1 -1
  48. package/packages/forms/dist/components/FieldsetControl.d.ts +1 -1
  49. package/packages/forms/dist/components/FieldsetControl.d.ts.map +1 -1
  50. package/packages/forms/dist/components/FieldsetControl.js +1 -1
  51. package/packages/forms/dist/components/FieldsetControl.js.map +1 -1
  52. package/packages/forms/dist/components/Input.d.ts +1 -1
  53. package/packages/forms/dist/components/Input.d.ts.map +1 -1
  54. package/packages/forms/dist/components/Input.js.map +1 -1
  55. package/packages/forms/dist/components/LabelControl.d.ts +1 -1
  56. package/packages/forms/dist/components/LabelControl.d.ts.map +1 -1
  57. package/packages/forms/dist/components/LabelControl.js +1 -1
  58. package/packages/forms/dist/components/LabelControl.js.map +1 -1
  59. package/packages/forms/dist/components/Radio.d.ts +1 -1
  60. package/packages/forms/dist/components/Radio.d.ts.map +1 -1
  61. package/packages/forms/dist/components/Radio.js.map +1 -1
  62. package/packages/forms/dist/components/Select.d.ts +1 -1
  63. package/packages/forms/dist/components/Select.d.ts.map +1 -1
  64. package/packages/forms/dist/components/Select.js.map +1 -1
  65. package/packages/forms/dist/components/Textarea.d.ts +1 -1
  66. package/packages/forms/dist/components/Textarea.d.ts.map +1 -1
  67. package/packages/forms/dist/components/Textarea.js +1 -1
  68. package/packages/forms/dist/components/Textarea.js.map +1 -1
  69. package/packages/forms/dist/components/controlled/CheckboxGroup.d.ts +1 -1
  70. package/packages/forms/dist/components/controlled/CheckboxGroup.d.ts.map +1 -1
  71. package/packages/forms/dist/components/controlled/CheckboxGroup.js.map +1 -1
  72. package/packages/forms/dist/components/controlled/RadioGroup.d.ts +1 -1
  73. package/packages/forms/dist/components/controlled/RadioGroup.d.ts.map +1 -1
  74. package/packages/forms/dist/components/controlled/RadioGroup.js.map +1 -1
  75. package/packages/forms/dist/components/controlled/SelectControl.d.ts +1 -1
  76. package/packages/forms/dist/components/controlled/SelectControl.d.ts.map +1 -1
  77. package/packages/forms/dist/components/controlled/SelectControl.js.map +1 -1
  78. package/packages/forms/dist/components/controlled/TextareaControl.d.ts +1 -1
  79. package/packages/forms/dist/components/controlled/TextareaControl.d.ts.map +1 -1
  80. package/packages/forms/dist/components/controlled/TextareaControl.js.map +1 -1
  81. package/packages/forms/dist/index.cjs.js +1 -1
  82. package/packages/forms/dist/index.cjs.js.map +1 -1
  83. package/packages/forms/dist/index.es.js +123 -116
  84. package/packages/forms/dist/index.es.js.map +1 -1
  85. package/packages/forms/package.json +1 -1
  86. package/packages/forms/src/components/Checkbox.tsx +35 -36
  87. package/packages/forms/src/components/FieldsetControl.tsx +57 -58
  88. package/packages/forms/src/components/Input.tsx +23 -24
  89. package/packages/forms/src/components/LabelControl.tsx +54 -52
  90. package/packages/forms/src/components/Radio.tsx +32 -33
  91. package/packages/forms/src/components/Select.tsx +32 -33
  92. package/packages/forms/src/components/Textarea.tsx +42 -43
  93. package/packages/forms/src/components/controlled/CheckboxGroup.tsx +36 -34
  94. package/packages/forms/src/components/controlled/RadioGroup.tsx +1 -1
  95. package/packages/forms/src/components/controlled/SelectControl.tsx +26 -24
  96. package/packages/forms/src/components/controlled/TextareaControl.tsx +26 -24
@@ -1,88 +1,90 @@
1
-
2
1
  <!doctype html>
3
2
  <html lang="en">
4
-
5
- <head>
3
+ <head>
6
4
  <title>Code coverage report for src/utils/class.ts</title>
7
5
  <meta charset="utf-8" />
8
6
  <link rel="stylesheet" href="../../prettify.css" />
9
7
  <link rel="stylesheet" href="../../base.css" />
10
8
  <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
11
9
  <meta name="viewport" content="width=device-width, initial-scale=1" />
12
- <style type='text/css'>
13
- .coverage-summary .sorter {
14
- background-image: url(../../sort-arrow-sprite.png);
15
- }
10
+ <style type="text/css">
11
+ .coverage-summary .sorter {
12
+ background-image: url(../../sort-arrow-sprite.png);
13
+ }
16
14
  </style>
17
- </head>
18
-
19
- <body>
20
- <div class='wrapper'>
21
- <div class='pad1'>
22
- <h1><a href="../../index.html">All files</a> / <a href="index.html">src/utils</a> class.ts</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">100% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>3/3</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>0/0</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>1/1</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">100% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>1/1</span>
50
- </div>
51
-
52
-
15
+ </head>
16
+
17
+ <body>
18
+ <div class="wrapper">
19
+ <div class="pad1">
20
+ <h1>
21
+ <a href="../../index.html">All files</a> /
22
+ <a href="index.html">src/utils</a> class.ts
23
+ </h1>
24
+ <div class="clearfix">
25
+ <div class="fl pad1y space-right2">
26
+ <span class="strong">100% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class="fraction">3/3</span>
29
+ </div>
30
+
31
+ <div class="fl pad1y space-right2">
32
+ <span class="strong">100% </span>
33
+ <span class="quiet">Branches</span>
34
+ <span class="fraction">0/0</span>
35
+ </div>
36
+
37
+ <div class="fl pad1y space-right2">
38
+ <span class="strong">100% </span>
39
+ <span class="quiet">Functions</span>
40
+ <span class="fraction">1/1</span>
41
+ </div>
42
+
43
+ <div class="fl pad1y space-right2">
44
+ <span class="strong">100% </span>
45
+ <span class="quiet">Lines</span>
46
+ <span class="fraction">1/1</span>
47
+ </div>
53
48
  </div>
54
49
  <p class="quiet">
55
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
50
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block,
51
+ <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
52
  </p>
57
53
  <template id="filterTemplate">
58
- <div class="quiet">
59
- Filter:
60
- <input oninput="onInput()" type="search" id="fileSearch">
61
- </div>
54
+ <div class="quiet">
55
+ Filter:
56
+ <input oninput="onInput()" type="search" id="fileSearch" />
57
+ </div>
62
58
  </template>
63
- </div>
64
- <div class='status-line high'></div>
65
- <pre><table class="coverage">
59
+ </div>
60
+ <div class="status-line high"></div>
61
+ <pre><table class="coverage">
66
62
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
63
  <a name='L2'></a><a href='#L2'>2</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
68
64
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">export const cx = (...classNames: any[]) =&gt; classNames.filter(Boolean).join(' ')
69
65
  &nbsp;</pre></td></tr></table></pre>
70
66
 
71
- <div class='push'></div><!-- for sticky footer -->
72
- </div><!-- /wrapper -->
73
- <div class='footer quiet pad2 space-top1 center small'>
74
- Code coverage generated by
75
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
76
- at 2023-08-10T08:40:53.129Z
77
- </div>
78
- <script src="../../prettify.js"></script>
79
- <script>
80
- window.onload = function () {
81
- prettyPrint();
82
- };
83
- </script>
84
- <script src="../../sorter.js"></script>
85
- <script src="../../block-navigation.js"></script>
86
- </body>
67
+ <div class="push"></div>
68
+ <!-- for sticky footer -->
69
+ </div>
70
+ <!-- /wrapper -->
71
+ <div class="footer quiet pad2 space-top1 center small">
72
+ Code coverage generated by
73
+ <a
74
+ href="https://istanbul.js.org/"
75
+ target="_blank"
76
+ rel="noopener noreferrer"
77
+ >istanbul</a
78
+ >
79
+ at 2023-08-10T08:40:53.129Z
80
+ </div>
81
+ <script src="../../prettify.js"></script>
82
+ <script>
83
+ window.onload = function () {
84
+ prettyPrint()
85
+ }
86
+ </script>
87
+ <script src="../../sorter.js"></script>
88
+ <script src="../../block-navigation.js"></script>
89
+ </body>
87
90
  </html>
88
-
@@ -1,116 +1,176 @@
1
-
2
1
  <!doctype html>
3
2
  <html lang="en">
4
-
5
- <head>
3
+ <head>
6
4
  <title>Code coverage report for src/utils</title>
7
5
  <meta charset="utf-8" />
8
6
  <link rel="stylesheet" href="../../prettify.css" />
9
7
  <link rel="stylesheet" href="../../base.css" />
10
8
  <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
11
9
  <meta name="viewport" content="width=device-width, initial-scale=1" />
12
- <style type='text/css'>
13
- .coverage-summary .sorter {
14
- background-image: url(../../sort-arrow-sprite.png);
15
- }
10
+ <style type="text/css">
11
+ .coverage-summary .sorter {
12
+ background-image: url(../../sort-arrow-sprite.png);
13
+ }
16
14
  </style>
17
- </head>
18
-
19
- <body>
20
- <div class='wrapper'>
21
- <div class='pad1'>
15
+ </head>
16
+
17
+ <body>
18
+ <div class="wrapper">
19
+ <div class="pad1">
22
20
  <h1><a href="../../index.html">All files</a> src/utils</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">100% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>3/3</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>0/0</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>1/1</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">100% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>1/1</span>
50
- </div>
51
-
52
-
21
+ <div class="clearfix">
22
+ <div class="fl pad1y space-right2">
23
+ <span class="strong">100% </span>
24
+ <span class="quiet">Statements</span>
25
+ <span class="fraction">3/3</span>
26
+ </div>
27
+
28
+ <div class="fl pad1y space-right2">
29
+ <span class="strong">100% </span>
30
+ <span class="quiet">Branches</span>
31
+ <span class="fraction">0/0</span>
32
+ </div>
33
+
34
+ <div class="fl pad1y space-right2">
35
+ <span class="strong">100% </span>
36
+ <span class="quiet">Functions</span>
37
+ <span class="fraction">1/1</span>
38
+ </div>
39
+
40
+ <div class="fl pad1y space-right2">
41
+ <span class="strong">100% </span>
42
+ <span class="quiet">Lines</span>
43
+ <span class="fraction">1/1</span>
44
+ </div>
53
45
  </div>
54
46
  <p class="quiet">
55
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
47
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block,
48
+ <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
49
  </p>
57
50
  <template id="filterTemplate">
58
- <div class="quiet">
59
- Filter:
60
- <input oninput="onInput()" type="search" id="fileSearch">
61
- </div>
51
+ <div class="quiet">
52
+ Filter:
53
+ <input oninput="onInput()" type="search" id="fileSearch" />
54
+ </div>
62
55
  </template>
56
+ </div>
57
+ <div class="status-line high"></div>
58
+ <div class="pad1">
59
+ <table class="coverage-summary">
60
+ <thead>
61
+ <tr>
62
+ <th data-col="file" data-fmt="html" data-html="true" class="file">
63
+ File
64
+ </th>
65
+ <th
66
+ data-col="pic"
67
+ data-type="number"
68
+ data-fmt="html"
69
+ data-html="true"
70
+ class="pic"
71
+ ></th>
72
+ <th
73
+ data-col="statements"
74
+ data-type="number"
75
+ data-fmt="pct"
76
+ class="pct"
77
+ >
78
+ Statements
79
+ </th>
80
+ <th
81
+ data-col="statements_raw"
82
+ data-type="number"
83
+ data-fmt="html"
84
+ class="abs"
85
+ ></th>
86
+ <th
87
+ data-col="branches"
88
+ data-type="number"
89
+ data-fmt="pct"
90
+ class="pct"
91
+ >
92
+ Branches
93
+ </th>
94
+ <th
95
+ data-col="branches_raw"
96
+ data-type="number"
97
+ data-fmt="html"
98
+ class="abs"
99
+ ></th>
100
+ <th
101
+ data-col="functions"
102
+ data-type="number"
103
+ data-fmt="pct"
104
+ class="pct"
105
+ >
106
+ Functions
107
+ </th>
108
+ <th
109
+ data-col="functions_raw"
110
+ data-type="number"
111
+ data-fmt="html"
112
+ class="abs"
113
+ ></th>
114
+ <th
115
+ data-col="lines"
116
+ data-type="number"
117
+ data-fmt="pct"
118
+ class="pct"
119
+ >
120
+ Lines
121
+ </th>
122
+ <th
123
+ data-col="lines_raw"
124
+ data-type="number"
125
+ data-fmt="html"
126
+ class="abs"
127
+ ></th>
128
+ </tr>
129
+ </thead>
130
+ <tbody>
131
+ <tr>
132
+ <td class="file high" data-value="class.ts">
133
+ <a href="class.ts.html">class.ts</a>
134
+ </td>
135
+ <td data-value="100" class="pic high">
136
+ <div class="chart">
137
+ <div class="cover-fill cover-full" style="width: 100%"></div>
138
+ <div class="cover-empty" style="width: 0%"></div>
139
+ </div>
140
+ </td>
141
+ <td data-value="100" class="pct high">100%</td>
142
+ <td data-value="3" class="abs high">3/3</td>
143
+ <td data-value="100" class="pct high">100%</td>
144
+ <td data-value="0" class="abs high">0/0</td>
145
+ <td data-value="100" class="pct high">100%</td>
146
+ <td data-value="1" class="abs high">1/1</td>
147
+ <td data-value="100" class="pct high">100%</td>
148
+ <td data-value="1" class="abs high">1/1</td>
149
+ </tr>
150
+ </tbody>
151
+ </table>
152
+ </div>
153
+ <div class="push"></div>
154
+ <!-- for sticky footer -->
63
155
  </div>
64
- <div class='status-line high'></div>
65
- <div class="pad1">
66
- <table class="coverage-summary">
67
- <thead>
68
- <tr>
69
- <th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
70
- <th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
71
- <th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
72
- <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
73
- <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
74
- <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
75
- <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
76
- <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
77
- <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
78
- <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
79
- </tr>
80
- </thead>
81
- <tbody><tr>
82
- <td class="file high" data-value="class.ts"><a href="class.ts.html">class.ts</a></td>
83
- <td data-value="100" class="pic high">
84
- <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
85
- </td>
86
- <td data-value="100" class="pct high">100%</td>
87
- <td data-value="3" class="abs high">3/3</td>
88
- <td data-value="100" class="pct high">100%</td>
89
- <td data-value="0" class="abs high">0/0</td>
90
- <td data-value="100" class="pct high">100%</td>
91
- <td data-value="1" class="abs high">1/1</td>
92
- <td data-value="100" class="pct high">100%</td>
93
- <td data-value="1" class="abs high">1/1</td>
94
- </tr>
95
-
96
- </tbody>
97
- </table>
98
- </div>
99
- <div class='push'></div><!-- for sticky footer -->
100
- </div><!-- /wrapper -->
101
- <div class='footer quiet pad2 space-top1 center small'>
102
- Code coverage generated by
103
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at 2023-08-10T08:40:53.129Z
105
- </div>
106
- <script src="../../prettify.js"></script>
107
- <script>
108
- window.onload = function () {
109
- prettyPrint();
110
- };
111
- </script>
112
- <script src="../../sorter.js"></script>
113
- <script src="../../block-navigation.js"></script>
114
- </body>
156
+ <!-- /wrapper -->
157
+ <div class="footer quiet pad2 space-top1 center small">
158
+ Code coverage generated by
159
+ <a
160
+ href="https://istanbul.js.org/"
161
+ target="_blank"
162
+ rel="noopener noreferrer"
163
+ >istanbul</a
164
+ >
165
+ at 2023-08-10T08:40:53.129Z
166
+ </div>
167
+ <script src="../../prettify.js"></script>
168
+ <script>
169
+ window.onload = function () {
170
+ prettyPrint()
171
+ }
172
+ </script>
173
+ <script src="../../sorter.js"></script>
174
+ <script src="../../block-navigation.js"></script>
175
+ </body>
115
176
  </html>
116
-
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sakura-ui/core",
3
- "version": "0.1.9",
3
+ "version": "0.1.15",
4
4
  "type": "module",
5
5
  "main": "dist/index.cjs.js",
6
6
  "types": "dist/index.d.ts",
@@ -22,7 +22,10 @@
22
22
  "build": "run-p build:*",
23
23
  "build:scripts": "vite build",
24
24
  "build:types": "tsc && tsc-alias",
25
- "test": "jest"
25
+ "test": "jest",
26
+ "lint": "run-p lint:*",
27
+ "lint:prettier": "prettier --write .",
28
+ "lint:eslint": "eslint --ext \".ts,.tsx\" --fix src"
26
29
  },
27
30
  "keywords": [],
28
31
  "author": "glassonion1",
@@ -47,11 +50,18 @@
47
50
  "@types/react": "^18.2.14",
48
51
  "@types/react-dom": "^18.2.6",
49
52
  "@types/testing-library__jest-dom": "^5.14.7",
53
+ "@typescript-eslint/eslint-plugin": "^6.4.1",
54
+ "@typescript-eslint/parser": "^6.4.1",
50
55
  "@vitejs/plugin-react-swc": "^3.3.2",
51
56
  "autoprefixer": "^10.4.14",
57
+ "eslint": "^8.47.0",
58
+ "eslint-config-prettier": "^9.0.0",
59
+ "eslint-plugin-jsx-a11y": "^6.7.1",
60
+ "eslint-plugin-react": "^7.33.2",
52
61
  "jest": "^29.6.1",
53
62
  "npm-run-all": "^4.1.5",
54
63
  "postcss": "^8.4.25",
64
+ "prettier": "^3.0.2",
55
65
  "react": "^18.2.0",
56
66
  "react-dom": "^18.2.0",
57
67
  "tailwindcss": "^3.3.2",
@@ -6,16 +6,15 @@ export interface ButtonProps extends React.ComponentPropsWithRef<'button'> {
6
6
  textAlign?: 'left' | 'right' | 'center'
7
7
  }
8
8
 
9
- export const Button: React.ElementType<ButtonProps> = React.forwardRef<
10
- HTMLButtonElement,
11
- ButtonProps
12
- >((props, ref) => {
13
- // Make sure that there is no problem even if className is specified on the side that uses the component
14
- const { className, children, textAlign, variant, ...restProps } = props
9
+ export const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
10
+ (props, ref) => {
11
+ // Make sure that there is no problem even if className is specified on the side that uses the component
12
+ const { className, children, textAlign, variant, ...restProps } = props
15
13
 
16
- const align = textAlign ?? 'center'
14
+ const align = textAlign ?? 'center'
17
15
 
18
- const style = `
16
+ const style = `
17
+ select-none
19
18
  inline-block
20
19
  p-4
21
20
  text-button
@@ -26,8 +25,8 @@ export const Button: React.ElementType<ButtonProps> = React.forwardRef<
26
25
  border
27
26
  border-solid
28
27
  border-sea-800
29
- active:enabled:border-sea-800-darken
30
- hover:enabled:border-sea-800-darken
28
+ active:enabled:border-sea-800/[.8]
29
+ hover:enabled:border-sea-800/[.85]
31
30
  focus:outline
32
31
  focus:outline-2
33
32
  focus:outline-wood-600
@@ -35,38 +34,39 @@ export const Button: React.ElementType<ButtonProps> = React.forwardRef<
35
34
  disabled:cursor-not-allowed
36
35
  `
37
36
 
38
- const primary = `
37
+ const primary = `
39
38
  text-white-1000
40
39
  bg-sea-800
41
- active:enabled:bg-sea-800-darken
42
- hover:enabled:bg-sea-800-darken
40
+ active:enabled:bg-sea-800/[.8]
41
+ hover:enabled:bg-sea-800/[.85]
43
42
  disabled:bg-sumi-500
44
43
  disabled:text-white-1000
45
44
  `
46
- const secondary = `
45
+ const secondary = `
47
46
  text-sea-800
48
47
  bg-transparent
49
- active:enabled:bg-sea-50
48
+ active:enabled:bg-sea-50/[.60]
50
49
  hover:enabled:bg-sea-50
51
- active:enabled:text-sea-800-darken
52
- hover:enabled:text-sea-800-darken
50
+ active:enabled:text-sea-800/[.85]
51
+ hover:enabled:text-sea-800/[.85]
53
52
  disabled:text-sumi-500
54
53
  `
55
54
 
56
- const styles = {
57
- primary: primary,
58
- secondary: secondary
59
- }
55
+ const styles = {
56
+ primary: primary,
57
+ secondary: secondary
58
+ }
60
59
 
61
- return (
62
- <button
63
- className={cx(style, styles[variant ?? 'primary'], className)}
64
- {...restProps}
65
- ref={ref}
66
- >
67
- {children}
68
- </button>
69
- )
70
- })
60
+ return (
61
+ <button
62
+ className={cx(style, styles[variant ?? 'primary'], className)}
63
+ {...restProps}
64
+ ref={ref}
65
+ >
66
+ {children}
67
+ </button>
68
+ )
69
+ }
70
+ )
71
71
 
72
72
  Button.displayName = 'Button'
@@ -9,7 +9,7 @@ const IdContext = React.createContext<IdContextType>({ id: '' })
9
9
 
10
10
  export interface CardProps extends React.ComponentPropsWithoutRef<'section'> {}
11
11
 
12
- export const Card: React.ElementType<CardProps> = (props: CardProps) => {
12
+ export const Card = (props: CardProps) => {
13
13
  const { className, children, ...restProps } = props
14
14
 
15
15
  const id = React.useId()
@@ -20,9 +20,11 @@ export const Card: React.ElementType<CardProps> = (props: CardProps) => {
20
20
  border-solid
21
21
  border-sumi-300
22
22
  rounded-2xl
23
- md:rounded-3xl
23
+ sm:rounded-3xl
24
24
  text-sumi-900
25
25
  overflow-hidden
26
+ flex
27
+ flex-col
26
28
  `
27
29
 
28
30
  return (
@@ -40,9 +42,7 @@ export const Card: React.ElementType<CardProps> = (props: CardProps) => {
40
42
 
41
43
  export interface CardHeaderProps extends React.ComponentPropsWithoutRef<'h2'> {}
42
44
 
43
- export const CardHeader: React.ElementType<CardHeaderProps> = (
44
- props: CardHeaderProps
45
- ) => {
45
+ export const CardHeader = (props: CardHeaderProps) => {
46
46
  const { className, children, ...restProps } = props
47
47
 
48
48
  const ctx = React.useContext(IdContext)
@@ -50,7 +50,8 @@ export const CardHeader: React.ElementType<CardHeaderProps> = (
50
50
  const style = `
51
51
  py-6
52
52
  px-6
53
- text-lgm
53
+ text-h-xxs-m
54
+ sm:text-h-xxs
54
55
  leading-none
55
56
  `
56
57
 
@@ -63,9 +64,7 @@ export const CardHeader: React.ElementType<CardHeaderProps> = (
63
64
 
64
65
  export interface CardBodyProps extends React.ComponentPropsWithoutRef<'p'> {}
65
66
 
66
- export const CardBody: React.ElementType<CardBodyProps> = (
67
- props: CardBodyProps
68
- ) => {
67
+ export const CardBody = (props: CardBodyProps) => {
69
68
  const { className, children, ...restProps } = props
70
69
 
71
70
  const style = `
@@ -76,21 +75,20 @@ export const CardBody: React.ElementType<CardBodyProps> = (
76
75
  `
77
76
 
78
77
  return (
79
- <p className={cx(style, className)} {...restProps}>
78
+ <div className={cx(style, className)} {...restProps}>
80
79
  {children}
81
- </p>
80
+ </div>
82
81
  )
83
82
  }
84
83
 
85
84
  export interface CardFooterProps
86
85
  extends React.ComponentPropsWithoutRef<'div'> {}
87
86
 
88
- export const CardFooter: React.ElementType<CardFooterProps> = (
89
- props: CardFooterProps
90
- ) => {
87
+ export const CardFooter = (props: CardFooterProps) => {
91
88
  const { className, children, ...restProps } = props
92
89
 
93
90
  const style = `
91
+ mt-auto
94
92
  px-6
95
93
  first:pt-6
96
94
  pb-6