Skip to content

Commit fa4234c

Browse files
committed
feat: theme system
1 parent 8c2e324 commit fa4234c

76 files changed

Lines changed: 629 additions & 1374 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

coverage/clover.xml

Lines changed: 35 additions & 251 deletions
Large diffs are not rendered by default.

coverage/coverage-final.json

Lines changed: 1 addition & 4 deletions
Large diffs are not rendered by default.

coverage/lcov-report/index.html

Lines changed: 13 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -23,30 +23,30 @@ <h1>All files</h1>
2323
<div class='clearfix'>
2424

2525
<div class='fl pad1y space-right2'>
26-
<span class="strong">77.07% </span>
26+
<span class="strong">100% </span>
2727
<span class="quiet">Statements</span>
28-
<span class='fraction'>195/253</span>
28+
<span class='fraction'>32/32</span>
2929
</div>
3030

3131

3232
<div class='fl pad1y space-right2'>
33-
<span class="strong">54.97% </span>
33+
<span class="strong">77.27% </span>
3434
<span class="quiet">Branches</span>
35-
<span class='fraction'>116/211</span>
35+
<span class='fraction'>17/22</span>
3636
</div>
3737

3838

3939
<div class='fl pad1y space-right2'>
40-
<span class="strong">77.04% </span>
40+
<span class="strong">100% </span>
4141
<span class="quiet">Functions</span>
42-
<span class='fraction'>47/61</span>
42+
<span class='fraction'>8/8</span>
4343
</div>
4444

4545

4646
<div class='fl pad1y space-right2'>
47-
<span class="strong">77.67% </span>
47+
<span class="strong">100% </span>
4848
<span class="quiet">Lines</span>
49-
<span class='fraction'>174/224</span>
49+
<span class='fraction'>29/29</span>
5050
</div>
5151

5252

@@ -61,7 +61,7 @@ <h1>All files</h1>
6161
</div>
6262
</template>
6363
</div>
64-
<div class='status-line medium'></div>
64+
<div class='status-line high'></div>
6565
<div class="pad1">
6666
<table class="coverage-summary">
6767
<thead>
@@ -79,63 +79,18 @@ <h1>All files</h1>
7979
</tr>
8080
</thead>
8181
<tbody><tr>
82-
<td class="file high" data-value="jest"><a href="jest/index.html">jest</a></td>
82+
<td class="file high" data-value="index.jsx"><a href="index.jsx.html">index.jsx</a></td>
8383
<td data-value="100" class="pic high">
8484
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
8585
</td>
8686
<td data-value="100" class="pct high">100%</td>
87-
<td data-value="21" class="abs high">21/21</td>
88-
<td data-value="72.72" class="pct medium">72.72%</td>
89-
<td data-value="11" class="abs medium">8/11</td>
90-
<td data-value="100" class="pct high">100%</td>
91-
<td data-value="5" class="abs high">5/5</td>
92-
<td data-value="100" class="pct high">100%</td>
93-
<td data-value="19" class="abs high">19/19</td>
94-
</tr>
95-
96-
<tr>
97-
<td class="file medium" data-value="src/components/stateless/OneTimePasscode"><a href="src/components/stateless/OneTimePasscode/index.html">src/components/stateless/OneTimePasscode</a></td>
98-
<td data-value="79.28" class="pic medium">
99-
<div class="chart"><div class="cover-fill" style="width: 79%"></div><div class="cover-empty" style="width: 21%"></div></div>
100-
</td>
101-
<td data-value="79.28" class="pct medium">79.28%</td>
102-
<td data-value="140" class="abs medium">111/140</td>
103-
<td data-value="51.31" class="pct medium">51.31%</td>
104-
<td data-value="152" class="abs medium">78/152</td>
105-
<td data-value="87.09" class="pct high">87.09%</td>
106-
<td data-value="31" class="abs high">27/31</td>
107-
<td data-value="81.66" class="pct high">81.66%</td>
108-
<td data-value="120" class="abs high">98/120</td>
109-
</tr>
110-
111-
<tr>
112-
<td class="file high" data-value="src/components/stateless/StickyCard"><a href="src/components/stateless/StickyCard/index.html">src/components/stateless/StickyCard</a></td>
113-
<td data-value="100" class="pic high">
114-
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
115-
</td>
116-
<td data-value="100" class="pct high">100%</td>
117-
<td data-value="31" class="abs high">31/31</td>
87+
<td data-value="32" class="abs high">32/32</td>
11888
<td data-value="77.27" class="pct medium">77.27%</td>
11989
<td data-value="22" class="abs medium">17/22</td>
12090
<td data-value="100" class="pct high">100%</td>
12191
<td data-value="8" class="abs high">8/8</td>
12292
<td data-value="100" class="pct high">100%</td>
123-
<td data-value="28" class="abs high">28/28</td>
124-
</tr>
125-
126-
<tr>
127-
<td class="file medium" data-value="src/theme"><a href="src/theme/index.html">src/theme</a></td>
128-
<td data-value="52.45" class="pic medium">
129-
<div class="chart"><div class="cover-fill" style="width: 52%"></div><div class="cover-empty" style="width: 48%"></div></div>
130-
</td>
131-
<td data-value="52.45" class="pct medium">52.45%</td>
132-
<td data-value="61" class="abs medium">32/61</td>
133-
<td data-value="50" class="pct medium">50%</td>
134-
<td data-value="26" class="abs medium">13/26</td>
135-
<td data-value="41.17" class="pct low">41.17%</td>
136-
<td data-value="17" class="abs low">7/17</td>
137-
<td data-value="50.87" class="pct medium">50.87%</td>
138-
<td data-value="57" class="abs medium">29/57</td>
93+
<td data-value="29" class="abs high">29/29</td>
13994
</tr>
14095

14196
</tbody>
@@ -146,7 +101,7 @@ <h1>All files</h1>
146101
<div class='footer quiet pad2 space-top1 center small'>
147102
Code coverage generated by
148103
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
149-
at 2025-12-28T01:55:58.738Z
104+
at 2026-01-02T05:32:56.204Z
150105
</div>
151106
<script src="prettify.js"></script>
152107
<script>

coverage/lcov-report/index.jsx.html

Lines changed: 54 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -25,28 +25,28 @@ <h1><a href="index.html">All files</a> index.jsx</h1>
2525
<div class='fl pad1y space-right2'>
2626
<span class="strong">100% </span>
2727
<span class="quiet">Statements</span>
28-
<span class='fraction'>3/3</span>
28+
<span class='fraction'>32/32</span>
2929
</div>
3030

3131

3232
<div class='fl pad1y space-right2'>
33-
<span class="strong">100% </span>
33+
<span class="strong">77.27% </span>
3434
<span class="quiet">Branches</span>
35-
<span class='fraction'>2/2</span>
35+
<span class='fraction'>17/22</span>
3636
</div>
3737

3838

3939
<div class='fl pad1y space-right2'>
4040
<span class="strong">100% </span>
4141
<span class="quiet">Functions</span>
42-
<span class='fraction'>2/2</span>
42+
<span class='fraction'>8/8</span>
4343
</div>
4444

4545

4646
<div class='fl pad1y space-right2'>
4747
<span class="strong">100% </span>
4848
<span class="quiet">Lines</span>
49-
<span class='fraction'>3/3</span>
49+
<span class='fraction'>29/29</span>
5050
</div>
5151

5252

@@ -93,12 +93,26 @@ <h1><a href="index.html">All files</a> index.jsx</h1>
9393
<a name='L28'></a><a href='#L28'>28</a>
9494
<a name='L29'></a><a href='#L29'>29</a>
9595
<a name='L30'></a><a href='#L30'>30</a>
96-
<a name='L31'></a><a href='#L31'>31</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
97-
<span class="cline-any cline-neutral">&nbsp;</span>
96+
<a name='L31'></a><a href='#L31'>31</a>
97+
<a name='L32'></a><a href='#L32'>32</a>
98+
<a name='L33'></a><a href='#L33'>33</a>
99+
<a name='L34'></a><a href='#L34'>34</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
100+
<span class="cline-any cline-yes">1x</span>
101+
<span class="cline-any cline-yes">1x</span>
102+
<span class="cline-any cline-yes">1x</span>
103+
<span class="cline-any cline-yes">1x</span>
104+
<span class="cline-any cline-yes">1x</span>
105+
<span class="cline-any cline-yes">1x</span>
106+
<span class="cline-any cline-yes">1x</span>
107+
<span class="cline-any cline-yes">1x</span>
98108
<span class="cline-any cline-neutral">&nbsp;</span>
99109
<span class="cline-any cline-yes">1x</span>
110+
<span class="cline-any cline-yes">3x</span>
111+
<span class="cline-any cline-yes">3x</span>
112+
<span class="cline-any cline-yes">29x</span>
113+
<span class="cline-any cline-yes">29x</span>
100114
<span class="cline-any cline-neutral">&nbsp;</span>
101-
<span class="cline-any cline-yes">2x</span>
115+
<span class="cline-any cline-yes">3x</span>
102116
<span class="cline-any cline-neutral">&nbsp;</span>
103117
<span class="cline-any cline-yes">2x</span>
104118
<span class="cline-any cline-neutral">&nbsp;</span>
@@ -108,50 +122,45 @@ <h1><a href="index.html">All files</a> index.jsx</h1>
108122
<span class="cline-any cline-neutral">&nbsp;</span>
109123
<span class="cline-any cline-neutral">&nbsp;</span>
110124
<span class="cline-any cline-neutral">&nbsp;</span>
125+
<span class="cline-any cline-yes">1x</span>
126+
<span class="cline-any cline-yes">1x</span>
127+
<span class="cline-any cline-yes">1x</span>
128+
<span class="cline-any cline-yes">2x</span>
111129
<span class="cline-any cline-neutral">&nbsp;</span>
112-
<span class="cline-any cline-neutral">&nbsp;</span>
113-
<span class="cline-any cline-neutral">&nbsp;</span>
114-
<span class="cline-any cline-neutral">&nbsp;</span>
115-
<span class="cline-any cline-neutral">&nbsp;</span>
116-
<span class="cline-any cline-neutral">&nbsp;</span>
117-
<span class="cline-any cline-neutral">&nbsp;</span>
118-
<span class="cline-any cline-neutral">&nbsp;</span>
119-
<span class="cline-any cline-neutral">&nbsp;</span>
120-
<span class="cline-any cline-neutral">&nbsp;</span>
121-
<span class="cline-any cline-neutral">&nbsp;</span>
122-
<span class="cline-any cline-neutral">&nbsp;</span>
123-
<span class="cline-any cline-neutral">&nbsp;</span>
124-
<span class="cline-any cline-neutral">&nbsp;</span>
125-
<span class="cline-any cline-neutral">&nbsp;</span>
126-
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, { useId } from 'react'
127-
import clsx from 'clsx'
130+
<span class="cline-any cline-yes">1x</span>
131+
<span class="cline-any cline-yes">1x</span>
132+
<span class="cline-any cline-yes">1x</span></td><td class="text"><pre class="prettyprint lang-js">import clsx from 'clsx'
133+
import PropTypes from 'prop-types'
128134
&nbsp;
129135
const StickyCard = ({ cards, children }) =&gt; {
130136
return (
131-
&lt;&gt;
132-
&lt;section className="flex flex-col gap-4 pt-30 pb-20"&gt;
133-
{cards.map((card, index) =&gt; {
134-
const animateSlide = index % 2 === 0 ? 'animate-slide-in-left' : 'animate-slide-in-right'
135-
return (
136-
&lt;div
137-
key={card?.id}
138-
style={{ top: `calc(50px + ${(index + 1) * 30}px)` }}
139-
className={clsx(
140-
'sticky z-0 m-auto flex w-[50vw] justify-center overflow-hidden rounded-2xl bg-[#0a192f] px-8 pt-4 after:pointer-events-none after:absolute after:inset-0 after:z-10 after:rounded-2xl after:outline after:-outline-offset-2 after:outline-white/20',
141-
animateSlide
142-
)}
143-
&gt;
144-
&lt;div className="animate-wiggle h-[30vh]"&gt;
145-
&lt;p className="animate-hue-rotate hue-clip text-gradient text-2xl"&gt;Card Item&lt;/p&gt;
146-
&lt;/div&gt;
137+
&lt;section className="flex flex-col gap-4 pt-[30px] pb-[20px]"&gt;
138+
{cards.map((card, index) =&gt; {
139+
const animateSlide = index % 2 === 0 ? 'animate-slide-in-left' : 'animate-slide-in-right'
140+
return (
141+
&lt;div
142+
key={card?.id}
143+
<span class="missing-if-branch" title="else path not taken" >E</span> style={{ position: 'sticky', top: `calc(50px + ${(index + 1) * 30}px)` }}
144+
className={clsx(
145+
<span class="missing-if-branch" title="else path not taken" >E</span> 'sticky z-10 m-auto flex w-[50vw] justify-center overflow-hidden rounded-2xl bg-[#0a192f] px-8 pt-4 after:pointer-events-none after:absolute after:inset-0 after:z-10 after:rounded-2xl after:outline after:-outline-offset-2 after:outline-white/20',
146+
animateSlide
147+
)}
148+
&gt;
149+
&lt;div className="animate-wiggle h-[30vh]"&gt;
150+
&lt;p className="animate-hue-rotate hue-clip text-gradient text-2xl"&gt;Card Item&lt;/p&gt;<span class="branch-1 cbranch-no" title="branch not covered" ></span>
147151
&lt;/div&gt;
148-
)
149-
})}
150-
&lt;/section&gt;
151-
&lt;/&gt;
152+
&lt;/div&gt;
153+
)
154+
})}
155+
&lt;/section&gt;<span class="branch-1 cbranch-no" title="branch not covered" ></span>
152156
)
153157
}
154158
&nbsp;
159+
StickyCard.propTypes = {
160+
cards: PropTypes.array.isRequired,
161+
children: PropTypes.node
162+
}
163+
&nbsp;
155164
export default StickyCard
156165
&nbsp;</pre></td></tr></table></pre>
157166

@@ -160,7 +169,7 @@ <h1><a href="index.html">All files</a> index.jsx</h1>
160169
<div class='footer quiet pad2 space-top1 center small'>
161170
Code coverage generated by
162171
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
163-
at 2025-12-12T07:00:17.261Z
172+
at 2026-01-02T05:32:56.204Z
164173
</div>
165174
<script src="prettify.js"></script>
166175
<script>

0 commit comments

Comments
 (0)