@sakura-ui/sakura-ui 0.1.16 → 0.1.19

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 (169) hide show
  1. package/package.json +16 -1
  2. package/packages/config/package.json +23 -27
  3. package/packages/config/src/index.ts +66 -1
  4. package/packages/config/tests/index.test.ts +1 -1
  5. package/packages/config/tsconfig.json +9 -17
  6. package/packages/config/tsconfig.node.json +6 -0
  7. package/packages/config/vite.config.ts +5 -3
  8. package/packages/core/package.json +27 -44
  9. package/packages/core/src/components/Button.tsx +23 -56
  10. package/packages/core/src/components/Card.tsx +30 -20
  11. package/packages/core/src/components/Code.tsx +1 -1
  12. package/packages/core/src/components/Faq.tsx +3 -5
  13. package/packages/core/src/components/Heading.tsx +1 -1
  14. package/packages/core/src/components/Icon.tsx +15 -10
  15. package/packages/core/src/components/IconButton.tsx +47 -76
  16. package/packages/core/src/components/InfoCard.tsx +1 -1
  17. package/packages/core/src/components/Link.tsx +44 -44
  18. package/packages/core/src/components/List.tsx +1 -1
  19. package/packages/core/src/components/Pre.tsx +1 -1
  20. package/packages/core/src/components/Table.tsx +4 -3
  21. package/packages/core/src/components/buttonStyle.ts +84 -0
  22. package/packages/core/src/components/index.ts +24 -7
  23. package/packages/core/src/index.ts +26 -0
  24. package/packages/core/src/libs/forward-ref.ts +41 -0
  25. package/packages/core/src/types/component.ts +82 -0
  26. package/packages/core/tsconfig.json +2 -1
  27. package/packages/core/tsconfig.node.json +1 -4
  28. package/packages/core/vite.config.ts +6 -3
  29. package/packages/forms/dist/components/Checkbox.js +27 -24
  30. package/packages/forms/dist/components/Checkbox.js.map +1 -1
  31. package/packages/forms/dist/components/FileInput.js +55 -0
  32. package/packages/forms/dist/components/FileInput.js.map +1 -0
  33. package/packages/forms/dist/components/Input.js +15 -13
  34. package/packages/forms/dist/components/Input.js.map +1 -1
  35. package/packages/forms/dist/components/LabelControl.js +7 -1
  36. package/packages/forms/dist/components/LabelControl.js.map +1 -1
  37. package/packages/forms/dist/components/Radio.js +26 -24
  38. package/packages/forms/dist/components/Radio.js.map +1 -1
  39. package/packages/forms/dist/components/Select.js +27 -25
  40. package/packages/forms/dist/components/Select.js.map +1 -1
  41. package/packages/forms/dist/components/Textarea.js +15 -13
  42. package/packages/forms/dist/components/Textarea.js.map +1 -1
  43. package/packages/forms/dist/components/index.js +1 -0
  44. package/packages/forms/dist/components/index.js.map +1 -1
  45. package/packages/forms/dist/index.cjs.js +155 -101
  46. package/packages/forms/dist/index.es.js +490 -411
  47. package/packages/forms/dist/index.js +1 -1
  48. package/packages/forms/dist/index.js.map +1 -1
  49. package/packages/forms/dist/types/components/Checkbox.d.ts.map +1 -0
  50. package/packages/forms/dist/types/components/FieldsetControl.d.ts.map +1 -0
  51. package/packages/forms/dist/types/components/FileInput.d.ts +5 -0
  52. package/packages/forms/dist/types/components/FileInput.d.ts.map +1 -0
  53. package/packages/forms/dist/types/components/Input.d.ts.map +1 -0
  54. package/packages/forms/dist/types/components/LabelControl.d.ts.map +1 -0
  55. package/packages/forms/dist/types/components/Radio.d.ts.map +1 -0
  56. package/packages/forms/dist/types/components/Select.d.ts.map +1 -0
  57. package/packages/forms/dist/types/components/Textarea.d.ts.map +1 -0
  58. package/packages/forms/dist/types/components/context.d.ts.map +1 -0
  59. package/packages/forms/dist/types/components/controlled/CheckboxGroup.d.ts.map +1 -0
  60. package/packages/forms/dist/types/components/controlled/InputItem.d.ts.map +1 -0
  61. package/packages/forms/dist/types/components/controlled/RadioGroup.d.ts.map +1 -0
  62. package/packages/forms/dist/types/components/controlled/SelectControl.d.ts.map +1 -0
  63. package/packages/forms/dist/types/components/controlled/TextareaControl.d.ts.map +1 -0
  64. package/packages/forms/dist/types/components/controlled/index.d.ts.map +1 -0
  65. package/packages/forms/dist/types/components/index.d.ts +9 -0
  66. package/packages/forms/dist/types/components/index.d.ts.map +1 -0
  67. package/packages/forms/dist/types/index.d.ts +4 -0
  68. package/packages/forms/dist/types/index.d.ts.map +1 -0
  69. package/packages/forms/dist/types/utils/class.d.ts.map +1 -0
  70. package/packages/forms/node_modules/.bin/eslint +17 -0
  71. package/packages/forms/node_modules/.bin/tailwind +2 -2
  72. package/packages/forms/node_modules/.bin/tailwindcss +2 -2
  73. package/packages/forms/node_modules/.bin/ts-node +4 -4
  74. package/packages/forms/node_modules/.bin/ts-node-cwd +4 -4
  75. package/packages/forms/node_modules/.bin/ts-node-esm +4 -4
  76. package/packages/forms/node_modules/.bin/ts-node-script +4 -4
  77. package/packages/forms/node_modules/.bin/ts-node-transpile-only +4 -4
  78. package/packages/forms/node_modules/.bin/ts-script +4 -4
  79. package/packages/forms/node_modules/.bin/vitest +17 -0
  80. package/packages/forms/node_modules/.vitest/results.json +1 -0
  81. package/packages/forms/package.json +23 -31
  82. package/packages/forms/src/components/Checkbox.tsx +27 -23
  83. package/packages/forms/src/components/FileInput.tsx +74 -0
  84. package/packages/forms/src/components/Input.tsx +16 -14
  85. package/packages/forms/src/components/LabelControl.tsx +13 -6
  86. package/packages/forms/src/components/Radio.tsx +28 -23
  87. package/packages/forms/src/components/Select.tsx +28 -26
  88. package/packages/forms/src/components/Textarea.tsx +16 -13
  89. package/packages/forms/src/components/index.ts +8 -7
  90. package/packages/forms/src/index.ts +12 -0
  91. package/packages/forms/tsconfig.json +4 -3
  92. package/packages/forms/tsconfig.node.json +1 -4
  93. package/packages/forms/vite.config.ts +6 -3
  94. package/packages/config/jest.config.ts +0 -10
  95. package/packages/core/coverage/clover.xml +0 -258
  96. package/packages/core/coverage/coverage-final.json +0 -2700
  97. package/packages/core/coverage/lcov-report/base.css +0 -362
  98. package/packages/core/coverage/lcov-report/block-navigation.js +0 -85
  99. package/packages/core/coverage/lcov-report/favicon.png +0 -0
  100. package/packages/core/coverage/lcov-report/index.html +0 -216
  101. package/packages/core/coverage/lcov-report/prettify.css +0 -101
  102. package/packages/core/coverage/lcov-report/prettify.js +0 -1004
  103. package/packages/core/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  104. package/packages/core/coverage/lcov-report/sorter.js +0 -191
  105. package/packages/core/coverage/lcov-report/src/components/Button.tsx.html +0 -303
  106. package/packages/core/coverage/lcov-report/src/components/Card.tsx.html +0 -399
  107. package/packages/core/coverage/lcov-report/src/components/Code.tsx.html +0 -144
  108. package/packages/core/coverage/lcov-report/src/components/Heading.tsx.html +0 -405
  109. package/packages/core/coverage/lcov-report/src/components/Icon.tsx.html +0 -183
  110. package/packages/core/coverage/lcov-report/src/components/IconButton.tsx.html +0 -378
  111. package/packages/core/coverage/lcov-report/src/components/InfoCard.tsx.html +0 -240
  112. package/packages/core/coverage/lcov-report/src/components/Link.tsx.html +0 -324
  113. package/packages/core/coverage/lcov-report/src/components/List.tsx.html +0 -204
  114. package/packages/core/coverage/lcov-report/src/components/Pre.tsx.html +0 -153
  115. package/packages/core/coverage/lcov-report/src/components/Table.tsx.html +0 -429
  116. package/packages/core/coverage/lcov-report/src/components/index.html +0 -396
  117. package/packages/core/coverage/lcov-report/src/components/index.ts.html +0 -126
  118. package/packages/core/coverage/lcov-report/src/index.html +0 -176
  119. package/packages/core/coverage/lcov-report/src/index.ts.html +0 -171
  120. package/packages/core/coverage/lcov-report/src/utils/class.ts.html +0 -90
  121. package/packages/core/coverage/lcov-report/src/utils/index.html +0 -176
  122. package/packages/core/coverage/lcov.info +0 -523
  123. package/packages/core/jest.config.ts +0 -11
  124. package/packages/forms/dist/components/Checkbox.d.ts.map +0 -1
  125. package/packages/forms/dist/components/FieldsetControl.d.ts.map +0 -1
  126. package/packages/forms/dist/components/Input.d.ts.map +0 -1
  127. package/packages/forms/dist/components/LabelControl.d.ts.map +0 -1
  128. package/packages/forms/dist/components/Radio.d.ts.map +0 -1
  129. package/packages/forms/dist/components/Select.d.ts.map +0 -1
  130. package/packages/forms/dist/components/Textarea.d.ts.map +0 -1
  131. package/packages/forms/dist/components/context.d.ts.map +0 -1
  132. package/packages/forms/dist/components/controlled/CheckboxGroup.d.ts.map +0 -1
  133. package/packages/forms/dist/components/controlled/InputItem.d.ts.map +0 -1
  134. package/packages/forms/dist/components/controlled/RadioGroup.d.ts.map +0 -1
  135. package/packages/forms/dist/components/controlled/SelectControl.d.ts.map +0 -1
  136. package/packages/forms/dist/components/controlled/TextareaControl.d.ts.map +0 -1
  137. package/packages/forms/dist/components/controlled/index.d.ts.map +0 -1
  138. package/packages/forms/dist/components/index.d.ts +0 -8
  139. package/packages/forms/dist/components/index.d.ts.map +0 -1
  140. package/packages/forms/dist/index.cjs.js.map +0 -1
  141. package/packages/forms/dist/index.d.ts +0 -3
  142. package/packages/forms/dist/index.d.ts.map +0 -1
  143. package/packages/forms/dist/index.es.js.map +0 -1
  144. package/packages/forms/dist/utils/class.d.ts.map +0 -1
  145. package/packages/forms/node_modules/.bin/jest +0 -17
  146. package/packages/forms/node_modules/.bin/npm-run-all +0 -17
  147. package/packages/forms/node_modules/.bin/run-p +0 -17
  148. package/packages/forms/node_modules/.bin/run-s +0 -17
  149. package/packages/forms/node_modules/.bin/ts-jest +0 -17
  150. package/packages/forms/node_modules/.bin/tsc +0 -17
  151. package/packages/forms/node_modules/.bin/tsc-alias +0 -17
  152. package/packages/forms/node_modules/.bin/tsserver +0 -17
  153. package/packages/forms/node_modules/.bin/vite +0 -17
  154. /package/packages/core/src/{utils/class.ts → libs/cx.ts} +0 -0
  155. /package/packages/forms/dist/{components → types/components}/Checkbox.d.ts +0 -0
  156. /package/packages/forms/dist/{components → types/components}/FieldsetControl.d.ts +0 -0
  157. /package/packages/forms/dist/{components → types/components}/Input.d.ts +0 -0
  158. /package/packages/forms/dist/{components → types/components}/LabelControl.d.ts +0 -0
  159. /package/packages/forms/dist/{components → types/components}/Radio.d.ts +0 -0
  160. /package/packages/forms/dist/{components → types/components}/Select.d.ts +0 -0
  161. /package/packages/forms/dist/{components → types/components}/Textarea.d.ts +0 -0
  162. /package/packages/forms/dist/{components → types/components}/context.d.ts +0 -0
  163. /package/packages/forms/dist/{components → types/components}/controlled/CheckboxGroup.d.ts +0 -0
  164. /package/packages/forms/dist/{components → types/components}/controlled/InputItem.d.ts +0 -0
  165. /package/packages/forms/dist/{components → types/components}/controlled/RadioGroup.d.ts +0 -0
  166. /package/packages/forms/dist/{components → types/components}/controlled/SelectControl.d.ts +0 -0
  167. /package/packages/forms/dist/{components → types/components}/controlled/TextareaControl.d.ts +0 -0
  168. /package/packages/forms/dist/{components → types/components}/controlled/index.d.ts +0 -0
  169. /package/packages/forms/dist/{utils → types/utils}/class.d.ts +0 -0
@@ -1,191 +0,0 @@
1
- /* eslint-disable */
2
- var addSorting = (function () {
3
- 'use strict'
4
- var cols,
5
- currentSort = {
6
- index: 0,
7
- desc: false
8
- }
9
-
10
- // returns the summary table element
11
- function getTable() {
12
- return document.querySelector('.coverage-summary')
13
- }
14
- // returns the thead element of the summary table
15
- function getTableHeader() {
16
- return getTable().querySelector('thead tr')
17
- }
18
- // returns the tbody element of the summary table
19
- function getTableBody() {
20
- return getTable().querySelector('tbody')
21
- }
22
- // returns the th element for nth column
23
- function getNthColumn(n) {
24
- return getTableHeader().querySelectorAll('th')[n]
25
- }
26
-
27
- function onFilterInput() {
28
- const searchValue = document.getElementById('fileSearch').value
29
- const rows = document.getElementsByTagName('tbody')[0].children
30
- for (let i = 0; i < rows.length; i++) {
31
- const row = rows[i]
32
- if (row.textContent.toLowerCase().includes(searchValue.toLowerCase())) {
33
- row.style.display = ''
34
- } else {
35
- row.style.display = 'none'
36
- }
37
- }
38
- }
39
-
40
- // loads the search box
41
- function addSearchBox() {
42
- var template = document.getElementById('filterTemplate')
43
- var templateClone = template.content.cloneNode(true)
44
- templateClone.getElementById('fileSearch').oninput = onFilterInput
45
- template.parentElement.appendChild(templateClone)
46
- }
47
-
48
- // loads all columns
49
- function loadColumns() {
50
- var colNodes = getTableHeader().querySelectorAll('th'),
51
- colNode,
52
- cols = [],
53
- col,
54
- i
55
-
56
- for (i = 0; i < colNodes.length; i += 1) {
57
- colNode = colNodes[i]
58
- col = {
59
- key: colNode.getAttribute('data-col'),
60
- sortable: !colNode.getAttribute('data-nosort'),
61
- type: colNode.getAttribute('data-type') || 'string'
62
- }
63
- cols.push(col)
64
- if (col.sortable) {
65
- col.defaultDescSort = col.type === 'number'
66
- colNode.innerHTML = colNode.innerHTML + '<span class="sorter"></span>'
67
- }
68
- }
69
- return cols
70
- }
71
- // attaches a data attribute to every tr element with an object
72
- // of data values keyed by column name
73
- function loadRowData(tableRow) {
74
- var tableCols = tableRow.querySelectorAll('td'),
75
- colNode,
76
- col,
77
- data = {},
78
- i,
79
- val
80
- for (i = 0; i < tableCols.length; i += 1) {
81
- colNode = tableCols[i]
82
- col = cols[i]
83
- val = colNode.getAttribute('data-value')
84
- if (col.type === 'number') {
85
- val = Number(val)
86
- }
87
- data[col.key] = val
88
- }
89
- return data
90
- }
91
- // loads all row data
92
- function loadData() {
93
- var rows = getTableBody().querySelectorAll('tr'),
94
- i
95
-
96
- for (i = 0; i < rows.length; i += 1) {
97
- rows[i].data = loadRowData(rows[i])
98
- }
99
- }
100
- // sorts the table using the data for the ith column
101
- function sortByIndex(index, desc) {
102
- var key = cols[index].key,
103
- sorter = function (a, b) {
104
- a = a.data[key]
105
- b = b.data[key]
106
- return a < b ? -1 : a > b ? 1 : 0
107
- },
108
- finalSorter = sorter,
109
- tableBody = document.querySelector('.coverage-summary tbody'),
110
- rowNodes = tableBody.querySelectorAll('tr'),
111
- rows = [],
112
- i
113
-
114
- if (desc) {
115
- finalSorter = function (a, b) {
116
- return -1 * sorter(a, b)
117
- }
118
- }
119
-
120
- for (i = 0; i < rowNodes.length; i += 1) {
121
- rows.push(rowNodes[i])
122
- tableBody.removeChild(rowNodes[i])
123
- }
124
-
125
- rows.sort(finalSorter)
126
-
127
- for (i = 0; i < rows.length; i += 1) {
128
- tableBody.appendChild(rows[i])
129
- }
130
- }
131
- // removes sort indicators for current column being sorted
132
- function removeSortIndicators() {
133
- var col = getNthColumn(currentSort.index),
134
- cls = col.className
135
-
136
- cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, '')
137
- col.className = cls
138
- }
139
- // adds sort indicators for current column being sorted
140
- function addSortIndicators() {
141
- getNthColumn(currentSort.index).className += currentSort.desc
142
- ? ' sorted-desc'
143
- : ' sorted'
144
- }
145
- // adds event listeners for all sorter widgets
146
- function enableUI() {
147
- var i,
148
- el,
149
- ithSorter = function ithSorter(i) {
150
- var col = cols[i]
151
-
152
- return function () {
153
- var desc = col.defaultDescSort
154
-
155
- if (currentSort.index === i) {
156
- desc = !currentSort.desc
157
- }
158
- sortByIndex(i, desc)
159
- removeSortIndicators()
160
- currentSort.index = i
161
- currentSort.desc = desc
162
- addSortIndicators()
163
- }
164
- }
165
- for (i = 0; i < cols.length; i += 1) {
166
- if (cols[i].sortable) {
167
- // add the click event handler on the th so users
168
- // dont have to click on those tiny arrows
169
- el = getNthColumn(i).querySelector('.sorter').parentElement
170
- if (el.addEventListener) {
171
- el.addEventListener('click', ithSorter(i))
172
- } else {
173
- el.attachEvent('onclick', ithSorter(i))
174
- }
175
- }
176
- }
177
- }
178
- // adds sorting functionality to the UI
179
- return function () {
180
- if (!getTable()) {
181
- return
182
- }
183
- cols = loadColumns()
184
- loadData()
185
- addSearchBox()
186
- addSortIndicators()
187
- enableUI()
188
- }
189
- })()
190
-
191
- window.addEventListener('load', addSorting)
@@ -1,303 +0,0 @@
1
- <!doctype html>
2
- <html lang="en">
3
- <head>
4
- <title>Code coverage report for src/components/Button.tsx</title>
5
- <meta charset="utf-8" />
6
- <link rel="stylesheet" href="../../prettify.css" />
7
- <link rel="stylesheet" href="../../base.css" />
8
- <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
9
- <meta name="viewport" content="width=device-width, initial-scale=1" />
10
- <style type="text/css">
11
- .coverage-summary .sorter {
12
- background-image: url(../../sort-arrow-sprite.png);
13
- }
14
- </style>
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/components</a> Button.tsx
23
- </h1>
24
- <div class="clearfix">
25
- <div class="fl pad1y space-right2">
26
- <span class="strong">36.36% </span>
27
- <span class="quiet">Statements</span>
28
- <span class="fraction">4/11</span>
29
- </div>
30
-
31
- <div class="fl pad1y space-right2">
32
- <span class="strong">0% </span>
33
- <span class="quiet">Branches</span>
34
- <span class="fraction">0/4</span>
35
- </div>
36
-
37
- <div class="fl pad1y space-right2">
38
- <span class="strong">0% </span>
39
- <span class="quiet">Functions</span>
40
- <span class="fraction">0/1</span>
41
- </div>
42
-
43
- <div class="fl pad1y space-right2">
44
- <span class="strong">36.36% </span>
45
- <span class="quiet">Lines</span>
46
- <span class="fraction">4/11</span>
47
- </div>
48
- </div>
49
- <p class="quiet">
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.
52
- </p>
53
- <template id="filterTemplate">
54
- <div class="quiet">
55
- Filter:
56
- <input oninput="onInput()" type="search" id="fileSearch" />
57
- </div>
58
- </template>
59
- </div>
60
- <div class="status-line low"></div>
61
- <pre><table class="coverage">
62
- <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
63
- <a name='L2'></a><a href='#L2'>2</a>
64
- <a name='L3'></a><a href='#L3'>3</a>
65
- <a name='L4'></a><a href='#L4'>4</a>
66
- <a name='L5'></a><a href='#L5'>5</a>
67
- <a name='L6'></a><a href='#L6'>6</a>
68
- <a name='L7'></a><a href='#L7'>7</a>
69
- <a name='L8'></a><a href='#L8'>8</a>
70
- <a name='L9'></a><a href='#L9'>9</a>
71
- <a name='L10'></a><a href='#L10'>10</a>
72
- <a name='L11'></a><a href='#L11'>11</a>
73
- <a name='L12'></a><a href='#L12'>12</a>
74
- <a name='L13'></a><a href='#L13'>13</a>
75
- <a name='L14'></a><a href='#L14'>14</a>
76
- <a name='L15'></a><a href='#L15'>15</a>
77
- <a name='L16'></a><a href='#L16'>16</a>
78
- <a name='L17'></a><a href='#L17'>17</a>
79
- <a name='L18'></a><a href='#L18'>18</a>
80
- <a name='L19'></a><a href='#L19'>19</a>
81
- <a name='L20'></a><a href='#L20'>20</a>
82
- <a name='L21'></a><a href='#L21'>21</a>
83
- <a name='L22'></a><a href='#L22'>22</a>
84
- <a name='L23'></a><a href='#L23'>23</a>
85
- <a name='L24'></a><a href='#L24'>24</a>
86
- <a name='L25'></a><a href='#L25'>25</a>
87
- <a name='L26'></a><a href='#L26'>26</a>
88
- <a name='L27'></a><a href='#L27'>27</a>
89
- <a name='L28'></a><a href='#L28'>28</a>
90
- <a name='L29'></a><a href='#L29'>29</a>
91
- <a name='L30'></a><a href='#L30'>30</a>
92
- <a name='L31'></a><a href='#L31'>31</a>
93
- <a name='L32'></a><a href='#L32'>32</a>
94
- <a name='L33'></a><a href='#L33'>33</a>
95
- <a name='L34'></a><a href='#L34'>34</a>
96
- <a name='L35'></a><a href='#L35'>35</a>
97
- <a name='L36'></a><a href='#L36'>36</a>
98
- <a name='L37'></a><a href='#L37'>37</a>
99
- <a name='L38'></a><a href='#L38'>38</a>
100
- <a name='L39'></a><a href='#L39'>39</a>
101
- <a name='L40'></a><a href='#L40'>40</a>
102
- <a name='L41'></a><a href='#L41'>41</a>
103
- <a name='L42'></a><a href='#L42'>42</a>
104
- <a name='L43'></a><a href='#L43'>43</a>
105
- <a name='L44'></a><a href='#L44'>44</a>
106
- <a name='L45'></a><a href='#L45'>45</a>
107
- <a name='L46'></a><a href='#L46'>46</a>
108
- <a name='L47'></a><a href='#L47'>47</a>
109
- <a name='L48'></a><a href='#L48'>48</a>
110
- <a name='L49'></a><a href='#L49'>49</a>
111
- <a name='L50'></a><a href='#L50'>50</a>
112
- <a name='L51'></a><a href='#L51'>51</a>
113
- <a name='L52'></a><a href='#L52'>52</a>
114
- <a name='L53'></a><a href='#L53'>53</a>
115
- <a name='L54'></a><a href='#L54'>54</a>
116
- <a name='L55'></a><a href='#L55'>55</a>
117
- <a name='L56'></a><a href='#L56'>56</a>
118
- <a name='L57'></a><a href='#L57'>57</a>
119
- <a name='L58'></a><a href='#L58'>58</a>
120
- <a name='L59'></a><a href='#L59'>59</a>
121
- <a name='L60'></a><a href='#L60'>60</a>
122
- <a name='L61'></a><a href='#L61'>61</a>
123
- <a name='L62'></a><a href='#L62'>62</a>
124
- <a name='L63'></a><a href='#L63'>63</a>
125
- <a name='L64'></a><a href='#L64'>64</a>
126
- <a name='L65'></a><a href='#L65'>65</a>
127
- <a name='L66'></a><a href='#L66'>66</a>
128
- <a name='L67'></a><a href='#L67'>67</a>
129
- <a name='L68'></a><a href='#L68'>68</a>
130
- <a name='L69'></a><a href='#L69'>69</a>
131
- <a name='L70'></a><a href='#L70'>70</a>
132
- <a name='L71'></a><a href='#L71'>71</a>
133
- <a name='L72'></a><a href='#L72'>72</a>
134
- <a name='L73'></a><a href='#L73'>73</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
135
- <span class="cline-any cline-yes">1x</span>
136
- <span class="cline-any cline-neutral">&nbsp;</span>
137
- <span class="cline-any cline-neutral">&nbsp;</span>
138
- <span class="cline-any cline-neutral">&nbsp;</span>
139
- <span class="cline-any cline-neutral">&nbsp;</span>
140
- <span class="cline-any cline-neutral">&nbsp;</span>
141
- <span class="cline-any cline-neutral">&nbsp;</span>
142
- <span class="cline-any cline-yes">1x</span>
143
- <span class="cline-any cline-neutral">&nbsp;</span>
144
- <span class="cline-any cline-neutral">&nbsp;</span>
145
- <span class="cline-any cline-neutral">&nbsp;</span>
146
- <span class="cline-any cline-neutral">&nbsp;</span>
147
- <span class="cline-any cline-no">&nbsp;</span>
148
- <span class="cline-any cline-neutral">&nbsp;</span>
149
- <span class="cline-any cline-no">&nbsp;</span>
150
- <span class="cline-any cline-neutral">&nbsp;</span>
151
- <span class="cline-any cline-no">&nbsp;</span>
152
- <span class="cline-any cline-neutral">&nbsp;</span>
153
- <span class="cline-any cline-neutral">&nbsp;</span>
154
- <span class="cline-any cline-neutral">&nbsp;</span>
155
- <span class="cline-any cline-neutral">&nbsp;</span>
156
- <span class="cline-any cline-neutral">&nbsp;</span>
157
- <span class="cline-any cline-neutral">&nbsp;</span>
158
- <span class="cline-any cline-neutral">&nbsp;</span>
159
- <span class="cline-any cline-neutral">&nbsp;</span>
160
- <span class="cline-any cline-neutral">&nbsp;</span>
161
- <span class="cline-any cline-neutral">&nbsp;</span>
162
- <span class="cline-any cline-neutral">&nbsp;</span>
163
- <span class="cline-any cline-neutral">&nbsp;</span>
164
- <span class="cline-any cline-neutral">&nbsp;</span>
165
- <span class="cline-any cline-neutral">&nbsp;</span>
166
- <span class="cline-any cline-neutral">&nbsp;</span>
167
- <span class="cline-any cline-neutral">&nbsp;</span>
168
- <span class="cline-any cline-neutral">&nbsp;</span>
169
- <span class="cline-any cline-neutral">&nbsp;</span>
170
- <span class="cline-any cline-neutral">&nbsp;</span>
171
- <span class="cline-any cline-no">&nbsp;</span>
172
- <span class="cline-any cline-neutral">&nbsp;</span>
173
- <span class="cline-any cline-neutral">&nbsp;</span>
174
- <span class="cline-any cline-neutral">&nbsp;</span>
175
- <span class="cline-any cline-neutral">&nbsp;</span>
176
- <span class="cline-any cline-neutral">&nbsp;</span>
177
- <span class="cline-any cline-neutral">&nbsp;</span>
178
- <span class="cline-any cline-neutral">&nbsp;</span>
179
- <span class="cline-any cline-no">&nbsp;</span>
180
- <span class="cline-any cline-neutral">&nbsp;</span>
181
- <span class="cline-any cline-neutral">&nbsp;</span>
182
- <span class="cline-any cline-neutral">&nbsp;</span>
183
- <span class="cline-any cline-neutral">&nbsp;</span>
184
- <span class="cline-any cline-neutral">&nbsp;</span>
185
- <span class="cline-any cline-neutral">&nbsp;</span>
186
- <span class="cline-any cline-neutral">&nbsp;</span>
187
- <span class="cline-any cline-neutral">&nbsp;</span>
188
- <span class="cline-any cline-neutral">&nbsp;</span>
189
- <span class="cline-any cline-no">&nbsp;</span>
190
- <span class="cline-any cline-neutral">&nbsp;</span>
191
- <span class="cline-any cline-neutral">&nbsp;</span>
192
- <span class="cline-any cline-neutral">&nbsp;</span>
193
- <span class="cline-any cline-neutral">&nbsp;</span>
194
- <span class="cline-any cline-no">&nbsp;</span>
195
- <span class="cline-any cline-neutral">&nbsp;</span>
196
- <span class="cline-any cline-neutral">&nbsp;</span>
197
- <span class="cline-any cline-neutral">&nbsp;</span>
198
- <span class="cline-any cline-neutral">&nbsp;</span>
199
- <span class="cline-any cline-neutral">&nbsp;</span>
200
- <span class="cline-any cline-neutral">&nbsp;</span>
201
- <span class="cline-any cline-neutral">&nbsp;</span>
202
- <span class="cline-any cline-neutral">&nbsp;</span>
203
- <span class="cline-any cline-neutral">&nbsp;</span>
204
- <span class="cline-any cline-neutral">&nbsp;</span>
205
- <span class="cline-any cline-yes">1x</span>
206
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React from 'react'
207
- import { cx } from '../utils/class'
208
- &nbsp;
209
- export interface ButtonProps extends React.ComponentPropsWithRef&lt;'button'&gt; {
210
- variant?: 'primary' | 'secondary'
211
- textAlign?: 'left' | 'right' | 'center'
212
- }
213
- &nbsp;
214
- export const Button: React.ElementType&lt;ButtonProps&gt; = React.forwardRef&lt;
215
- HTMLButtonElement,
216
- ButtonProps
217
- &gt;(<span class="fstat-no" title="function not covered" >(p</span>rops, ref) =&gt; {
218
- // Make sure that there is no problem even if className is specified on the side that uses the component
219
- const { className, children, textAlign, variant, ...restProps } = <span class="cstat-no" title="statement not covered" >props</span>
220
- &nbsp;
221
- const align = <span class="cstat-no" title="statement not covered" >textAlign ?? 'center'</span>
222
- &nbsp;
223
- const style = <span class="cstat-no" title="statement not covered" >`</span>
224
- inline-block
225
- p-4
226
- text-button
227
- text-${align}
228
- rounded-lg
229
- cursor-pointer
230
- whitespace-nowrap
231
- border
232
- border-solid
233
- border-sea-800
234
- active:enabled:border-sea-800-darken
235
- hover:enabled:border-sea-800-darken
236
- focus:outline
237
- focus:outline-2
238
- focus:outline-wood-600
239
- disabled:border-sumi-500
240
- disabled:cursor-not-allowed
241
- `
242
- &nbsp;
243
- const primary = <span class="cstat-no" title="statement not covered" >`</span>
244
- text-white-1000
245
- bg-sea-800
246
- active:enabled:bg-sea-800-darken
247
- hover:enabled:bg-sea-800-darken
248
- disabled:bg-sumi-500
249
- disabled:text-white-1000
250
- `
251
- const secondary = <span class="cstat-no" title="statement not covered" >`</span>
252
- text-sea-800
253
- bg-transparent
254
- active:enabled:bg-sea-50
255
- hover:enabled:bg-sea-50
256
- active:enabled:text-sea-800-darken
257
- hover:enabled:text-sea-800-darken
258
- disabled:text-sumi-500
259
- `
260
- &nbsp;
261
- const styles = <span class="cstat-no" title="statement not covered" >{</span>
262
- primary: primary,
263
- secondary: secondary
264
- }
265
- &nbsp;
266
- <span class="cstat-no" title="statement not covered" > return (</span>
267
- &lt;button
268
- className={cx(style, styles[variant ?? 'primary'], className)}
269
- {...restProps}
270
- ref={ref}
271
- &gt;
272
- {children}
273
- &lt;/button&gt;
274
- )
275
- })
276
- &nbsp;
277
- Button.displayName = 'Button'
278
- &nbsp;</pre></td></tr></table></pre>
279
-
280
- <div class="push"></div>
281
- <!-- for sticky footer -->
282
- </div>
283
- <!-- /wrapper -->
284
- <div class="footer quiet pad2 space-top1 center small">
285
- Code coverage generated by
286
- <a
287
- href="https://istanbul.js.org/"
288
- target="_blank"
289
- rel="noopener noreferrer"
290
- >istanbul</a
291
- >
292
- at 2023-08-10T08:40:53.129Z
293
- </div>
294
- <script src="../../prettify.js"></script>
295
- <script>
296
- window.onload = function () {
297
- prettyPrint()
298
- }
299
- </script>
300
- <script src="../../sorter.js"></script>
301
- <script src="../../block-navigation.js"></script>
302
- </body>
303
- </html>