@chronogrove/ui 0.76.0 → 0.78.0

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 (54) hide show
  1. package/README.md +18 -11
  2. package/jest.config.cjs +1 -0
  3. package/package.json +35 -1
  4. package/src/__snapshots__/header.spec.js.snap +69 -0
  5. package/src/__snapshots__/page-header.spec.js.snap +11 -0
  6. package/src/action-button.js +83 -0
  7. package/src/action-button.spec.js +201 -0
  8. package/src/color-utils.js +37 -0
  9. package/src/color-utils.spec.js +43 -0
  10. package/src/gatsby/build-theme-ui-color-mode-head-components.js +36 -0
  11. package/src/gatsby/index.js +4 -0
  12. package/src/gatsby/index.spec.js +131 -0
  13. package/src/gatsby/on-pre-render-html-sort.js +21 -0
  14. package/src/gatsby/on-route-update-color-mode.js +14 -0
  15. package/src/header.js +28 -0
  16. package/src/header.spec.js +47 -0
  17. package/src/lazy-load.js +41 -0
  18. package/src/lazy-load.spec.js +88 -0
  19. package/src/page-header.js +10 -0
  20. package/src/page-header.spec.js +17 -0
  21. package/src/pagination-button.js +106 -0
  22. package/src/pagination-button.spec.js +197 -0
  23. package/.turbo/turbo-test$colon$coverage.log +0 -44
  24. package/.turbo/turbo-test.log +0 -168
  25. package/coverage/clover.xml +0 -131
  26. package/coverage/coverage-final.json +0 -13
  27. package/coverage/lcov-report/base.css +0 -224
  28. package/coverage/lcov-report/block-navigation.js +0 -87
  29. package/coverage/lcov-report/browser-sync.js.html +0 -268
  30. package/coverage/lcov-report/favicon.png +0 -0
  31. package/coverage/lcov-report/index.html +0 -161
  32. package/coverage/lcov-report/prettify.css +0 -1
  33. package/coverage/lcov-report/prettify.js +0 -2
  34. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  35. package/coverage/lcov-report/sorter.js +0 -210
  36. package/coverage/lcov-report/src/button.js.html +0 -160
  37. package/coverage/lcov-report/src/color-mode/browser-sync.js.html +0 -268
  38. package/coverage/lcov-report/src/color-mode/constants.js.html +0 -121
  39. package/coverage/lcov-report/src/color-mode/head-inline.js.html +0 -304
  40. package/coverage/lcov-report/src/color-mode/index.html +0 -176
  41. package/coverage/lcov-report/src/color-mode/index.js.html +0 -124
  42. package/coverage/lcov-report/src/color-mode/normalize.js.html +0 -112
  43. package/coverage/lcov-report/src/color-mode/resolve-theme-colors.js.html +0 -154
  44. package/coverage/lcov-report/src/color-toggle.js.html +0 -142
  45. package/coverage/lcov-report/src/emotion-cache.js.html +0 -151
  46. package/coverage/lcov-report/src/helpers/index.html +0 -116
  47. package/coverage/lcov-report/src/helpers/isDarkMode.js.html +0 -91
  48. package/coverage/lcov-report/src/index.html +0 -161
  49. package/coverage/lcov-report/src/provider.js.html +0 -124
  50. package/coverage/lcov-report/src/skip-nav/SkipNavContent.js.html +0 -133
  51. package/coverage/lcov-report/src/skip-nav/SkipNavLink.js.html +0 -301
  52. package/coverage/lcov-report/src/skip-nav/index.html +0 -131
  53. package/coverage/lcov-report/src/theme.js.html +0 -2143
  54. package/coverage/lcov.info +0 -309
@@ -0,0 +1,197 @@
1
+ /** @jsx jsx */
2
+ import { jsx } from 'theme-ui'
3
+ import { render, screen, fireEvent } from '@testing-library/react'
4
+ import { ThemeUIProvider } from 'theme-ui'
5
+
6
+ import PaginationButton from './pagination-button.js'
7
+ import { BUTTON_PRIMARY_COLORS } from './color-utils.js'
8
+
9
+ const mockUseThemeUI = jest.fn(() => ({
10
+ colorMode: 'default',
11
+ theme: {
12
+ colors: {
13
+ primary: BUTTON_PRIMARY_COLORS.light,
14
+ primaryRgb: '66, 46, 163'
15
+ }
16
+ }
17
+ }))
18
+
19
+ jest.mock('theme-ui', () => ({
20
+ ...jest.requireActual('theme-ui'),
21
+ useThemeUI: () => mockUseThemeUI()
22
+ }))
23
+
24
+ const mockTheme = {
25
+ colors: {
26
+ primary: BUTTON_PRIMARY_COLORS.light,
27
+ primaryRgb: '66, 46, 163',
28
+ modes: {
29
+ dark: {
30
+ text: '#ffffff',
31
+ background: '#000000'
32
+ }
33
+ }
34
+ }
35
+ }
36
+
37
+ const renderWithProviders = (component, customTheme = null) => {
38
+ const themeToUse = customTheme ?? mockTheme
39
+ return render(<ThemeUIProvider theme={themeToUse}>{component}</ThemeUIProvider>)
40
+ }
41
+
42
+ describe('PaginationButton', () => {
43
+ it('renders as a button', () => {
44
+ renderWithProviders(<PaginationButton>1</PaginationButton>)
45
+
46
+ const button = screen.getByRole('button', { name: /1/i })
47
+ expect(button).toBeInTheDocument()
48
+ expect(button.tagName).toBe('BUTTON')
49
+ })
50
+
51
+ it('handles click events', () => {
52
+ const handleClick = jest.fn()
53
+ renderWithProviders(<PaginationButton onClick={handleClick}>1</PaginationButton>)
54
+
55
+ const button = screen.getByRole('button', { name: /1/i })
56
+ fireEvent.click(button)
57
+
58
+ expect(handleClick).toHaveBeenCalledTimes(1)
59
+ })
60
+
61
+ it('applies active state styles', () => {
62
+ renderWithProviders(<PaginationButton active>1</PaginationButton>)
63
+
64
+ const button = screen.getByRole('button', { name: /1/i })
65
+ expect(button).toHaveStyle({
66
+ color: 'rgb(255, 255, 255)',
67
+ fontWeight: 'bold'
68
+ })
69
+ })
70
+
71
+ it('applies disabled state', () => {
72
+ renderWithProviders(<PaginationButton disabled>1</PaginationButton>)
73
+
74
+ const button = screen.getByRole('button', { name: /1/i })
75
+ expect(button).toBeDisabled()
76
+ expect(button).toHaveStyle({
77
+ opacity: '0.5',
78
+ cursor: 'not-allowed'
79
+ })
80
+ })
81
+
82
+ it('applies primary variant styles by default', () => {
83
+ renderWithProviders(<PaginationButton>1</PaginationButton>)
84
+
85
+ const button = screen.getByRole('button', { name: /1/i })
86
+ expect(button).toHaveStyle({ fontWeight: 'medium' })
87
+ expect(button).toBeInTheDocument()
88
+ })
89
+
90
+ it('applies secondary variant styles', () => {
91
+ renderWithProviders(<PaginationButton variant='secondary'>1</PaginationButton>)
92
+
93
+ const button = screen.getByRole('button', { name: /1/i })
94
+ expect(button).toHaveStyle({
95
+ color: '#666'
96
+ })
97
+ })
98
+
99
+ it('applies small size styles', () => {
100
+ renderWithProviders(<PaginationButton size='small'>1</PaginationButton>)
101
+
102
+ const button = screen.getByRole('button', { name: /1/i })
103
+ expect(button).toHaveStyle({
104
+ fontSize: '10px',
105
+ minWidth: '24px',
106
+ height: '24px'
107
+ })
108
+ })
109
+
110
+ it('applies large size styles', () => {
111
+ renderWithProviders(<PaginationButton size='large'>1</PaginationButton>)
112
+
113
+ const button = screen.getByRole('button', { name: /1/i })
114
+ expect(button).toHaveStyle({
115
+ fontSize: '12px',
116
+ minWidth: '32px',
117
+ height: '32px'
118
+ })
119
+ })
120
+
121
+ it('renders with icon', () => {
122
+ const TestIcon = () => <span data-testid='test-icon'>←</span>
123
+ renderWithProviders(<PaginationButton icon={<TestIcon />}>Prev</PaginationButton>)
124
+
125
+ expect(screen.getByTestId('test-icon')).toBeInTheDocument()
126
+ expect(screen.getByRole('button', { name: /prev/i })).toBeInTheDocument()
127
+ })
128
+
129
+ it('passes through additional props', () => {
130
+ renderWithProviders(
131
+ <PaginationButton data-testid='custom-button' aria-label='Custom label'>
132
+ 1
133
+ </PaginationButton>
134
+ )
135
+
136
+ const button = screen.getByTestId('custom-button')
137
+ expect(button).toHaveAttribute('aria-label', 'Custom label')
138
+ })
139
+
140
+ it('has proper accessibility attributes', () => {
141
+ renderWithProviders(<PaginationButton>1</PaginationButton>)
142
+
143
+ const button = screen.getByRole('button', { name: /1/i })
144
+ expect(button).toHaveAttribute('type', 'button')
145
+ })
146
+
147
+ describe('theme fallbacks', () => {
148
+ beforeEach(() => {
149
+ mockUseThemeUI.mockReturnValue({
150
+ colorMode: 'default',
151
+ theme: {
152
+ colors: {
153
+ primary: BUTTON_PRIMARY_COLORS.light,
154
+ primaryRgb: '66, 46, 163'
155
+ }
156
+ }
157
+ })
158
+ })
159
+
160
+ it('uses fallback primary color when theme.colors.primary is undefined', () => {
161
+ mockUseThemeUI.mockReturnValueOnce({
162
+ colorMode: 'default',
163
+ theme: { colors: {} }
164
+ })
165
+
166
+ renderWithProviders(<PaginationButton>1</PaginationButton>)
167
+
168
+ const button = screen.getByRole('button', { name: /1/i })
169
+ expect(button).toBeInTheDocument()
170
+ expect(button).toHaveStyle({ fontWeight: 'medium' })
171
+ })
172
+
173
+ it('uses fallback primaryRgb when theme.colors.primaryRgb is undefined', () => {
174
+ mockUseThemeUI.mockReturnValueOnce({
175
+ colorMode: 'default',
176
+ theme: { colors: { primary: '#422EA3' } }
177
+ })
178
+
179
+ renderWithProviders(<PaginationButton>1</PaginationButton>)
180
+
181
+ const button = screen.getByRole('button', { name: /1/i })
182
+ expect(button).toBeInTheDocument()
183
+ })
184
+
185
+ it('uses fallback when theme itself is undefined', () => {
186
+ mockUseThemeUI.mockReturnValueOnce({
187
+ colorMode: 'default',
188
+ theme: undefined
189
+ })
190
+
191
+ renderWithProviders(<PaginationButton>1</PaginationButton>)
192
+
193
+ const button = screen.getByRole('button', { name: /1/i })
194
+ expect(button).toBeInTheDocument()
195
+ })
196
+ })
197
+ })
@@ -1,44 +0,0 @@
1
-
2
- > @chronogrove/ui@0.76.0 test:coverage /Users/chrisvogt/Code/gatsby-theme-chronogrove/packages/ui
3
- > jest --config jest.config.cjs --coverage --colors --maxWorkers=2
4
-
5
- PASS src/color-mode/browser-sync.spec.js
6
- PASS src/skip-nav/SkipNavLink.spec.js
7
- PASS src/color-toggle.spec.js
8
- PASS src/emotion-cache.spec.js
9
- PASS src/skip-nav/SkipNavContent.spec.js
10
- PASS src/provider.spec.js
11
- PASS src/color-mode/normalize.spec.js
12
- PASS src/button.spec.js
13
- PASS src/color-mode/browser-sync.node.spec.js
14
- PASS src/helpers/isDarkMode.spec.js
15
- PASS src/theme.spec.js
16
- PASS src/color-mode/head-inline.spec.js
17
- PASS src/color-mode/resolve-theme-colors.spec.js
18
- --------------------------|---------|----------|---------|---------|-------------------
19
- File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
20
- --------------------------|---------|----------|---------|---------|-------------------
21
- All files | 98.75 | 96.15 | 100 | 98.7 |
22
- src | 100 | 88.88 | 100 | 100 |
23
- button.js | 100 | 100 | 100 | 100 |
24
- color-toggle.js | 100 | 100 | 100 | 100 |
25
- emotion-cache.js | 100 | 83.33 | 100 | 100 | 7
26
- provider.js | 100 | 100 | 100 | 100 |
27
- src/color-mode | 98.21 | 98.21 | 100 | 98.14 |
28
- browser-sync.js | 97.05 | 96.66 | 100 | 96.87 | 44
29
- constants.js | 100 | 100 | 100 | 100 |
30
- head-inline.js | 100 | 100 | 100 | 100 |
31
- normalize.js | 100 | 100 | 100 | 100 |
32
- resolve-theme-colors.js | 100 | 100 | 100 | 100 |
33
- src/helpers | 100 | 100 | 100 | 100 |
34
- isDarkMode.js | 100 | 100 | 100 | 100 |
35
- src/skip-nav | 100 | 92.3 | 100 | 100 |
36
- SkipNavContent.js | 100 | 100 | 100 | 100 |
37
- SkipNavLink.js | 100 | 90.9 | 100 | 100 | 7
38
- --------------------------|---------|----------|---------|---------|-------------------
39
-
40
- Test Suites: 13 passed, 13 total
41
- Tests: 39 passed, 39 total
42
- Snapshots: 1 passed, 1 total
43
- Time: 1.111 s
44
- Ran all test suites.
@@ -1,168 +0,0 @@
1
-
2
- 
3
- > @chronogrove/ui@0.76.0 test /Users/chrisvogt/Code/gatsby-theme-chronogrove/packages/ui
4
- > jest --config jest.config.cjs
5
-
6
- Determining test suites to run...[?2026h
7
- [?2026l[?2026h
8
-  RUNS  src/color-mode/browser-sync.spec.js
9
- [?2026l[?2026h
10
-  RUNS  src/color-mode/browser-sync.spec.js
11
- [?2026l[?2026h
12
-  RUNS  src/color-mode/browser-sync.spec.js
13
- [?2026l[?2026h
14
-  RUNS  src/color-mode/browser-sync.spec.js
15
- [?2026l[?2026h
16
-  RUNS  src/color-mode/browser-sync.spec.js
17
- [?2026l[?2026h
18
-  RUNS  src/color-mode/browser-sync.spec.js
19
- [?2026l[?2026h
20
-  RUNS  src/color-mode/browser-sync.spec.js
21
- [?2026l[?2026h
22
-  RUNS  src/color-mode/browser-sync.spec.js
23
- [?2026l[?2026h
24
-  RUNS  src/color-mode/browser-sync.spec.js
25
- [?2026l[?2026h
26
-  RUNS  src/color-mode/browser-sync.spec.js
27
- [?2026l[?2026h
28
-  RUNS  src/color-mode/browser-sync.spec.js
29
- [?2026l[?2026h
30
-  RUNS  src/color-mode/browser-sync.spec.js
31
- [?2026l[?2026h
32
-
33
-  RUNS  src/color-mode/browser-sync.spec.js
34
- [?2026l[?2026h
35
-  RUNS  src/color-mode/browser-sync.spec.js
36
- [?2026l[?2026h
37
-  RUNS  src/skip-nav/SkipNavLink.spec.js
38
- [?2026l[?2026h
39
-  RUNS  src/skip-nav/SkipNavLink.spec.js
40
- [?2026l[?2026h
41
-  RUNS  src/skip-nav/SkipNavLink.spec.js
42
- [?2026l[?2026h
43
-  RUNS  src/skip-nav/SkipNavLink.spec.js
44
- [?2026l[?2026h
45
-  RUNS  src/skip-nav/SkipNavLink.spec.js
46
- [?2026l[?2026h
47
-
48
-  RUNS  src/skip-nav/SkipNavLink.spec.js
49
- [?2026l[?2026h
50
-  RUNS  src/provider.spec.js
51
- [?2026l[?2026h
52
-  RUNS  src/provider.spec.js
53
- [?2026l[?2026h
54
-
55
-  RUNS  src/provider.spec.js
56
- [?2026l[?2026h
57
-  RUNS  src/button.spec.js
58
- [?2026l[?2026h
59
-  RUNS  src/button.spec.js
60
- [?2026l[?2026h
61
-
62
-  RUNS  src/button.spec.js
63
- [?2026l[?2026h
64
-  RUNS  src/color-toggle.spec.js
65
- [?2026l[?2026h
66
-  RUNS  src/color-toggle.spec.js
67
- [?2026l[?2026h
68
-  RUNS  src/color-toggle.spec.js
69
- [?2026l[?2026h
70
-  RUNS  src/color-toggle.spec.js
71
- [?2026l[?2026h
72
-
73
-  RUNS  src/color-toggle.spec.js
74
- [?2026l[?2026h
75
-  RUNS  src/color-mode/browser-sync.node.spec.js
76
- [?2026l[?2026h
77
-  RUNS  src/color-mode/browser-sync.node.spec.js
78
- [?2026l[?2026h
79
-  RUNS  src/color-mode/browser-sync.node.spec.js
80
- [?2026l[?2026h
81
-
82
-  RUNS  src/color-mode/browser-sync.node.spec.js
83
- [?2026l[?2026h
84
-  RUNS  src/color-mode/head-inline.spec.js
85
- [?2026l[?2026h
86
-  RUNS  src/color-mode/head-inline.spec.js
87
- [?2026l[?2026h
88
-  RUNS  src/color-mode/head-inline.spec.js
89
- [?2026l[?2026h
90
-  RUNS  src/color-mode/head-inline.spec.js
91
- [?2026l[?2026h
92
-
93
-  RUNS  src/color-mode/head-inline.spec.js
94
- [?2026l[?2026h
95
-  RUNS  src/skip-nav/SkipNavContent.spec.js
96
- [?2026l[?2026h
97
-  RUNS  src/skip-nav/SkipNavContent.spec.js
98
- [?2026l[?2026h
99
-  RUNS  src/skip-nav/SkipNavContent.spec.js
100
- [?2026l[?2026h
101
-
102
-  RUNS  src/skip-nav/SkipNavContent.spec.js
103
- [?2026l[?2026h
104
-  RUNS  src/theme.spec.js
105
- [?2026l[?2026h
106
-  RUNS  src/theme.spec.js
107
- [?2026l[?2026h
108
-  RUNS  src/theme.spec.js
109
- [?2026l[?2026h
110
-  RUNS  src/theme.spec.js
111
- [?2026l[?2026h
112
-  RUNS  src/theme.spec.js
113
- [?2026l[?2026h
114
-  RUNS  src/theme.spec.js
115
- [?2026l[?2026h
116
-  RUNS  src/theme.spec.js
117
- [?2026l[?2026h
118
-  RUNS  src/theme.spec.js
119
- [?2026l[?2026h
120
-  RUNS  src/theme.spec.js
121
- [?2026l[?2026h
122
-
123
-  RUNS  src/theme.spec.js
124
- [?2026l[?2026h
125
-  RUNS  src/helpers/isDarkMode.spec.js
126
- [?2026l[?2026h
127
-  RUNS  src/helpers/isDarkMode.spec.js
128
- [?2026l[?2026h
129
-
130
-  RUNS  src/helpers/isDarkMode.spec.js
131
- [?2026l[?2026h
132
-  RUNS  src/color-mode/resolve-theme-colors.spec.js
133
- [?2026l[?2026h
134
-  RUNS  src/color-mode/resolve-theme-colors.spec.js
135
- [?2026l[?2026h
136
-  RUNS  src/color-mode/resolve-theme-colors.spec.js
137
- [?2026l[?2026h
138
-
139
-  RUNS  src/color-mode/resolve-theme-colors.spec.js
140
- [?2026l[?2026h
141
-  RUNS  src/emotion-cache.spec.js
142
- [?2026l[?2026h
143
-  RUNS  src/emotion-cache.spec.js
144
- [?2026l[?2026h
145
-  RUNS  src/emotion-cache.spec.js
146
- [?2026l[?2026h
147
-  RUNS  src/emotion-cache.spec.js
148
- [?2026l[?2026h
149
-
150
-  RUNS  src/emotion-cache.spec.js
151
- [?2026l[?2026h
152
-  RUNS  src/color-mode/normalize.spec.js
153
- [?2026l[?2026h
154
-  RUNS  src/color-mode/normalize.spec.js
155
- [?2026l[?2026h
156
-  RUNS  src/color-mode/normalize.spec.js
157
- [?2026l[?2026h
158
-  RUNS  src/color-mode/normalize.spec.js
159
- [?2026l[?2026h
160
-
161
-  RUNS  src/color-mode/normalize.spec.js
162
- [?2026l[?2026h
163
- Test Suites: 13 passed, 13 total
164
- Tests: 40 passed, 40 total
165
- Snapshots: 1 passed, 1 total
166
- Time: 0.812 s, estimated 1 s
167
- Ran all test suites.
168
- [?2026h[?2026l
@@ -1,131 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <coverage generated="1775797645097" clover="3.2.0">
3
- <project timestamp="1775797645097" name="All files">
4
- <metrics statements="77" coveredstatements="77" conditionals="78" coveredconditionals="76" methods="23" coveredmethods="23" elements="178" coveredelements="176" complexity="0" loc="77" ncloc="77" packages="4" files="12" classes="12"/>
5
- <package name="src">
6
- <metrics statements="12" coveredstatements="12" conditionals="9" coveredconditionals="8" methods="6" coveredmethods="6"/>
7
- <file name="button.js" path="/Users/chrisvogt/Code/gatsby-theme-chronogrove/packages/ui/src/button.js">
8
- <metrics statements="2" coveredstatements="2" conditionals="1" coveredconditionals="1" methods="1" coveredmethods="1"/>
9
- <line num="4" count="1" type="cond" truecount="1" falsecount="0"/>
10
- <line num="5" count="1" type="stmt"/>
11
- </file>
12
- <file name="color-toggle.js" path="/Users/chrisvogt/Code/gatsby-theme-chronogrove/packages/ui/src/color-toggle.js">
13
- <metrics statements="3" coveredstatements="3" conditionals="2" coveredconditionals="2" methods="2" coveredmethods="2"/>
14
- <line num="7" count="2" type="stmt"/>
15
- <line num="9" count="2" type="stmt"/>
16
- <line num="13" count="2" type="cond" truecount="2" falsecount="0"/>
17
- </file>
18
- <file name="emotion-cache.js" path="/Users/chrisvogt/Code/gatsby-theme-chronogrove/packages/ui/src/emotion-cache.js">
19
- <metrics statements="6" coveredstatements="6" conditionals="6" coveredconditionals="5" methods="2" coveredmethods="2"/>
20
- <line num="3" count="2" type="stmt"/>
21
- <line num="7" count="2" type="cond" truecount="1" falsecount="1"/>
22
- <line num="9" count="2" type="stmt"/>
23
- <line num="18" count="3" type="cond" truecount="2" falsecount="0"/>
24
- <line num="19" count="2" type="stmt"/>
25
- <line num="21" count="3" type="stmt"/>
26
- </file>
27
- <file name="provider.js" path="/Users/chrisvogt/Code/gatsby-theme-chronogrove/packages/ui/src/provider.js">
28
- <metrics statements="1" coveredstatements="1" conditionals="0" coveredconditionals="0" methods="1" coveredmethods="1"/>
29
- <line num="6" count="1" type="stmt"/>
30
- </file>
31
- </package>
32
- <package name="src.color-mode">
33
- <metrics statements="54" coveredstatements="54" conditionals="56" coveredconditionals="56" methods="14" coveredmethods="14"/>
34
- <file name="browser-sync.js" path="/Users/chrisvogt/Code/gatsby-theme-chronogrove/packages/ui/src/color-mode/browser-sync.js">
35
- <metrics statements="32" coveredstatements="32" conditionals="30" coveredconditionals="30" methods="7" coveredmethods="7"/>
36
- <line num="6" count="13" type="stmt"/>
37
- <line num="7" count="13" type="cond" truecount="2" falsecount="0"/>
38
- <line num="9" count="1" type="stmt"/>
39
- <line num="11" count="13" type="stmt"/>
40
- <line num="12" count="13" type="cond" truecount="2" falsecount="0"/>
41
- <line num="13" count="7" type="stmt"/>
42
- <line num="16" count="6" type="cond" truecount="2" falsecount="0"/>
43
- <line num="17" count="5" type="stmt"/>
44
- <line num="18" count="5" type="stmt"/>
45
- <line num="19" count="5" type="cond" truecount="2" falsecount="0"/>
46
- <line num="20" count="1" type="stmt"/>
47
- <line num="22" count="4" type="cond" truecount="2" falsecount="0"/>
48
- <line num="23" count="1" type="stmt"/>
49
- <line num="25" count="3" type="cond" truecount="4" falsecount="0"/>
50
- <line num="26" count="1" type="stmt"/>
51
- <line num="31" count="3" type="cond" truecount="3" falsecount="0"/>
52
- <line num="35" count="3" type="cond" truecount="2" falsecount="0"/>
53
- <line num="39" count="8" type="cond" truecount="2" falsecount="0"/>
54
- <line num="40" count="1" type="stmt"/>
55
- <line num="42" count="7" type="stmt"/>
56
- <line num="43" count="7" type="cond" truecount="2" falsecount="0"/>
57
- <line num="44" count="1" type="stmt"/>
58
- <line num="46" count="6" type="stmt"/>
59
- <line num="47" count="6" type="stmt"/>
60
- <line num="48" count="4" type="stmt"/>
61
- <line num="49" count="4" type="stmt"/>
62
- <line num="50" count="6" type="stmt"/>
63
- <line num="51" count="6" type="stmt"/>
64
- <line num="55" count="2" type="stmt"/>
65
- <line num="56" count="2" type="cond" truecount="4" falsecount="0"/>
66
- <line num="57" count="1" type="stmt"/>
67
- <line num="59" count="1" type="stmt"/>
68
- </file>
69
- <file name="constants.js" path="/Users/chrisvogt/Code/gatsby-theme-chronogrove/packages/ui/src/color-mode/constants.js">
70
- <metrics statements="3" coveredstatements="3" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
71
- <line num="2" count="3" type="stmt"/>
72
- <line num="5" count="3" type="stmt"/>
73
- <line num="8" count="3" type="stmt"/>
74
- </file>
75
- <file name="head-inline.js" path="/Users/chrisvogt/Code/gatsby-theme-chronogrove/packages/ui/src/color-mode/head-inline.js">
76
- <metrics statements="8" coveredstatements="8" conditionals="2" coveredconditionals="2" methods="4" coveredmethods="4"/>
77
- <line num="4" count="4" type="stmt"/>
78
- <line num="8" count="1" type="stmt"/>
79
- <line num="9" count="1" type="stmt"/>
80
- <line num="44" count="1" type="stmt"/>
81
- <line num="45" count="1" type="stmt"/>
82
- <line num="46" count="1" type="stmt"/>
83
- <line num="47" count="1" type="stmt"/>
84
- <line num="69" count="1" type="stmt"/>
85
- </file>
86
- <file name="normalize.js" path="/Users/chrisvogt/Code/gatsby-theme-chronogrove/packages/ui/src/color-mode/normalize.js">
87
- <metrics statements="5" coveredstatements="5" conditionals="6" coveredconditionals="6" methods="1" coveredmethods="1"/>
88
- <line num="2" count="23" type="cond" truecount="2" falsecount="0"/>
89
- <line num="3" count="5" type="stmt"/>
90
- <line num="5" count="18" type="cond" truecount="4" falsecount="0"/>
91
- <line num="6" count="6" type="stmt"/>
92
- <line num="8" count="12" type="stmt"/>
93
- </file>
94
- <file name="resolve-theme-colors.js" path="/Users/chrisvogt/Code/gatsby-theme-chronogrove/packages/ui/src/color-mode/resolve-theme-colors.js">
95
- <metrics statements="6" coveredstatements="6" conditionals="18" coveredconditionals="18" methods="2" coveredmethods="2"/>
96
- <line num="2" count="12" type="cond" truecount="2" falsecount="0"/>
97
- <line num="3" count="6" type="stmt"/>
98
- <line num="5" count="6" type="stmt"/>
99
- <line num="13" count="2" type="cond" truecount="2" falsecount="0"/>
100
- <line num="14" count="2" type="cond" truecount="2" falsecount="0"/>
101
- <line num="15" count="2" type="stmt"/>
102
- </file>
103
- </package>
104
- <package name="src.helpers">
105
- <metrics statements="1" coveredstatements="1" conditionals="0" coveredconditionals="0" methods="1" coveredmethods="1"/>
106
- <file name="isDarkMode.js" path="/Users/chrisvogt/Code/gatsby-theme-chronogrove/packages/ui/src/helpers/isDarkMode.js">
107
- <metrics statements="1" coveredstatements="1" conditionals="0" coveredconditionals="0" methods="1" coveredmethods="1"/>
108
- <line num="1" count="9" type="stmt"/>
109
- </file>
110
- </package>
111
- <package name="src.skip-nav">
112
- <metrics statements="10" coveredstatements="10" conditionals="13" coveredconditionals="12" methods="2" coveredmethods="2"/>
113
- <file name="SkipNavContent.js" path="/Users/chrisvogt/Code/gatsby-theme-chronogrove/packages/ui/src/skip-nav/SkipNavContent.js">
114
- <metrics statements="3" coveredstatements="3" conditionals="2" coveredconditionals="2" methods="1" coveredmethods="1"/>
115
- <line num="3" count="1" type="stmt"/>
116
- <line num="7" count="1" type="stmt"/>
117
- <line num="14" count="1" type="stmt"/>
118
- </file>
119
- <file name="SkipNavLink.js" path="/Users/chrisvogt/Code/gatsby-theme-chronogrove/packages/ui/src/skip-nav/SkipNavLink.js">
120
- <metrics statements="7" coveredstatements="7" conditionals="11" coveredconditionals="10" methods="1" coveredmethods="1"/>
121
- <line num="6" count="1" type="stmt"/>
122
- <line num="10" count="4" type="stmt"/>
123
- <line num="11" count="4" type="stmt"/>
124
- <line num="12" count="4" type="cond" truecount="4" falsecount="0"/>
125
- <line num="13" count="4" type="cond" truecount="4" falsecount="0"/>
126
- <line num="15" count="4" type="stmt"/>
127
- <line num="70" count="1" type="stmt"/>
128
- </file>
129
- </package>
130
- </project>
131
- </coverage>