turbo-themes 0.14.0 → 0.15.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/assets/css/themes/solarized-dark.css +88 -0
- data/assets/css/themes/solarized-light.css +88 -0
- data/assets/css/themes/turbo/solarized-dark.css +68 -0
- data/assets/css/themes/turbo/solarized-light.css +68 -0
- data/assets/img/solarized-dark.png +0 -0
- data/assets/img/solarized-light.png +0 -0
- data/assets/js/theme-selector.js.map +1 -1
- data/assets/js/theme-selector.min.js +1 -1
- data/lib/turbo-themes/version.rb +1 -1
- metadata +7 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3dfc99ec2b0b03ca11b6f0e36277a5e92c70aa4815d7f69b0181cf7903abfc8f
|
|
4
|
+
data.tar.gz: d663b701f6253cccb509a1223ce4710973a016fac4fedc0aa7a64069a14071ac
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 784598952ec3d4281c99503a4c04604cc7f05dcf4549ed181fafb8d4c9b6f8caa1d96b28ff5579bf9afce9b4475eaac49ab7ca5797f7b553d9d2e5f836bc0570
|
|
7
|
+
data.tar.gz: 29f406cebbf9df38d8bc5ef2e61bc9ba14a5fca648ac7b6d0515361b8803591d33205551989595d826799313a31561131de332852ef2197322cfdbf673bb9122
|
data/CHANGELOG.md
CHANGED
|
@@ -10,6 +10,12 @@ The format is based on Keep a Changelog and this project adheres to SemVer.
|
|
|
10
10
|
|
|
11
11
|
- TBD
|
|
12
12
|
|
|
13
|
+
## [0.15.0] - 2026-02-06
|
|
14
|
+
|
|
15
|
+
### ✨ Added
|
|
16
|
+
|
|
17
|
+
- add Solarized theme pack with light and dark variants (#333)
|
|
18
|
+
|
|
13
19
|
## [0.14.0] - 2026-02-05
|
|
14
20
|
|
|
15
21
|
### ✨ Added
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/* Generated from solarized-dark.css */
|
|
2
|
+
|
|
3
|
+
[data-theme="solarized-dark"] {
|
|
4
|
+
--turbo-spacing-xs: 0.25rem; /* dimension */
|
|
5
|
+
--turbo-spacing-sm: 0.5rem; /* dimension */
|
|
6
|
+
--turbo-spacing-md: 1rem; /* dimension */
|
|
7
|
+
--turbo-spacing-lg: 1.5rem; /* dimension */
|
|
8
|
+
--turbo-spacing-xl: 2rem; /* dimension */
|
|
9
|
+
--turbo-elevation-none: none; /* shadow */
|
|
10
|
+
--turbo-elevation-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05); /* shadow */
|
|
11
|
+
--turbo-elevation-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); /* shadow */
|
|
12
|
+
--turbo-elevation-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); /* shadow */
|
|
13
|
+
--turbo-elevation-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); /* shadow */
|
|
14
|
+
--turbo-animation-duration-fast: 150ms; /* duration */
|
|
15
|
+
--turbo-animation-duration-normal: 300ms; /* duration */
|
|
16
|
+
--turbo-animation-duration-slow: 500ms; /* duration */
|
|
17
|
+
--turbo-animation-easing-default: cubic-bezier(0.4, 0, 0.2, 1); /* cubicBezier */
|
|
18
|
+
--turbo-animation-easing-emphasized: cubic-bezier(0.05, 0.7, 0.1, 1); /* cubicBezier */
|
|
19
|
+
--turbo-opacity-disabled: 0.5; /* number */
|
|
20
|
+
--turbo-opacity-hover: 0.8; /* number */
|
|
21
|
+
--turbo-opacity-pressed: 0.6; /* number */
|
|
22
|
+
--turbo-bg-base: #002b36; /* color */
|
|
23
|
+
--turbo-bg-surface: #073642; /* color */
|
|
24
|
+
--turbo-bg-overlay: #586e75; /* color */
|
|
25
|
+
--turbo-text-primary: #839496; /* color */
|
|
26
|
+
--turbo-text-secondary: #657b83; /* color */
|
|
27
|
+
--turbo-text-inverse: #002b36; /* color */
|
|
28
|
+
--turbo-brand-primary: #268bd2; /* color */
|
|
29
|
+
--turbo-state-info: #2aa198; /* color */
|
|
30
|
+
--turbo-state-success: #859900; /* color */
|
|
31
|
+
--turbo-state-warning: #b58900; /* color */
|
|
32
|
+
--turbo-state-danger: #dc322f; /* color */
|
|
33
|
+
--turbo-border-default: #586e75; /* color */
|
|
34
|
+
--turbo-accent-link: #268bd2; /* color */
|
|
35
|
+
--turbo-font-sans: Inter, ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji"; /* fontFamily */
|
|
36
|
+
--turbo-font-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* fontFamily */
|
|
37
|
+
--turbo-heading-h1: #268bd2; /* color */
|
|
38
|
+
--turbo-heading-h2: #2aa198; /* color */
|
|
39
|
+
--turbo-heading-h3: #859900; /* color */
|
|
40
|
+
--turbo-heading-h4: #b58900; /* color */
|
|
41
|
+
--turbo-heading-h5: #cb4b16; /* color */
|
|
42
|
+
--turbo-heading-h6: #d33682; /* color */
|
|
43
|
+
--turbo-body-primary: #839496; /* color */
|
|
44
|
+
--turbo-body-secondary: #657b83; /* color */
|
|
45
|
+
--turbo-link-default: #268bd2; /* color */
|
|
46
|
+
--turbo-selection-fg: #fdf6e3; /* color */
|
|
47
|
+
--turbo-selection-bg: #586e75; /* color */
|
|
48
|
+
--turbo-blockquote-border: #657b83; /* color */
|
|
49
|
+
--turbo-blockquote-fg: #839496; /* color */
|
|
50
|
+
--turbo-blockquote-bg: #073642; /* color */
|
|
51
|
+
--turbo-code-inline-fg: #2aa198; /* color */
|
|
52
|
+
--turbo-code-inline-bg: #073642; /* color */
|
|
53
|
+
--turbo-code-block-fg: #93a1a1; /* color */
|
|
54
|
+
--turbo-code-block-bg: #073642; /* color */
|
|
55
|
+
--turbo-table-border: #586e75; /* color */
|
|
56
|
+
--turbo-table-stripe: #073642; /* color */
|
|
57
|
+
--turbo-table-thead-bg: #586e75; /* color */
|
|
58
|
+
--turbo-components-card-bg: #073642; /* color */
|
|
59
|
+
--turbo-components-card-border: #586e75; /* color */
|
|
60
|
+
--turbo-components-card-header-bg: #002b36; /* color */
|
|
61
|
+
--turbo-components-card-footer-bg: #073642; /* color */
|
|
62
|
+
--turbo-components-message-bg: #002b36; /* color */
|
|
63
|
+
--turbo-components-message-header-bg: #073642; /* color */
|
|
64
|
+
--turbo-components-message-border: #586e75; /* color */
|
|
65
|
+
--turbo-components-message-body-fg: #839496; /* color */
|
|
66
|
+
--turbo-components-panel-bg: #073642; /* color */
|
|
67
|
+
--turbo-components-panel-header-bg: #002b36; /* color */
|
|
68
|
+
--turbo-components-panel-header-fg: #93a1a1; /* color */
|
|
69
|
+
--turbo-components-panel-border: #586e75; /* color */
|
|
70
|
+
--turbo-components-panel-block-bg: #002b36; /* color */
|
|
71
|
+
--turbo-components-panel-block-hover-bg: #073642; /* color */
|
|
72
|
+
--turbo-components-panel-block-active-bg: #586e75; /* color */
|
|
73
|
+
--turbo-components-box-bg: #073642; /* color */
|
|
74
|
+
--turbo-components-box-border: #586e75; /* color */
|
|
75
|
+
--turbo-components-notification-bg: #002b36; /* color */
|
|
76
|
+
--turbo-components-notification-border: #586e75; /* color */
|
|
77
|
+
--turbo-components-modal-bg: rgba(0, 43, 54, 0.9); /* color */
|
|
78
|
+
--turbo-components-modal-card-bg: #073642; /* color */
|
|
79
|
+
--turbo-components-modal-header-bg: #002b36; /* color */
|
|
80
|
+
--turbo-components-modal-footer-bg: #073642; /* color */
|
|
81
|
+
--turbo-components-dropdown-bg: #073642; /* color */
|
|
82
|
+
--turbo-components-dropdown-item-hover-bg: #586e75; /* color */
|
|
83
|
+
--turbo-components-dropdown-border: #586e75; /* color */
|
|
84
|
+
--turbo-components-tabs-border: #586e75; /* color */
|
|
85
|
+
--turbo-components-tabs-link-bg: #073642; /* color */
|
|
86
|
+
--turbo-components-tabs-link-active-bg: #002b36; /* color */
|
|
87
|
+
--turbo-components-tabs-link-hover-bg: #586e75; /* color */
|
|
88
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/* Generated from solarized-light.css */
|
|
2
|
+
|
|
3
|
+
[data-theme="solarized-light"] {
|
|
4
|
+
--turbo-spacing-xs: 0.25rem; /* dimension */
|
|
5
|
+
--turbo-spacing-sm: 0.5rem; /* dimension */
|
|
6
|
+
--turbo-spacing-md: 1rem; /* dimension */
|
|
7
|
+
--turbo-spacing-lg: 1.5rem; /* dimension */
|
|
8
|
+
--turbo-spacing-xl: 2rem; /* dimension */
|
|
9
|
+
--turbo-elevation-none: none; /* shadow */
|
|
10
|
+
--turbo-elevation-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05); /* shadow */
|
|
11
|
+
--turbo-elevation-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); /* shadow */
|
|
12
|
+
--turbo-elevation-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); /* shadow */
|
|
13
|
+
--turbo-elevation-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); /* shadow */
|
|
14
|
+
--turbo-animation-duration-fast: 150ms; /* duration */
|
|
15
|
+
--turbo-animation-duration-normal: 300ms; /* duration */
|
|
16
|
+
--turbo-animation-duration-slow: 500ms; /* duration */
|
|
17
|
+
--turbo-animation-easing-default: cubic-bezier(0.4, 0, 0.2, 1); /* cubicBezier */
|
|
18
|
+
--turbo-animation-easing-emphasized: cubic-bezier(0.05, 0.7, 0.1, 1); /* cubicBezier */
|
|
19
|
+
--turbo-opacity-disabled: 0.5; /* number */
|
|
20
|
+
--turbo-opacity-hover: 0.8; /* number */
|
|
21
|
+
--turbo-opacity-pressed: 0.6; /* number */
|
|
22
|
+
--turbo-bg-base: #fdf6e3; /* color */
|
|
23
|
+
--turbo-bg-surface: #eee8d5; /* color */
|
|
24
|
+
--turbo-bg-overlay: #93a1a1; /* color */
|
|
25
|
+
--turbo-text-primary: #586e75; /* color */
|
|
26
|
+
--turbo-text-secondary: #657b83; /* color */
|
|
27
|
+
--turbo-text-inverse: #fdf6e3; /* color */
|
|
28
|
+
--turbo-brand-primary: #268bd2; /* color */
|
|
29
|
+
--turbo-state-info: #2aa198; /* color */
|
|
30
|
+
--turbo-state-success: #859900; /* color */
|
|
31
|
+
--turbo-state-warning: #b58900; /* color */
|
|
32
|
+
--turbo-state-danger: #dc322f; /* color */
|
|
33
|
+
--turbo-border-default: #93a1a1; /* color */
|
|
34
|
+
--turbo-accent-link: #268bd2; /* color */
|
|
35
|
+
--turbo-font-sans: Inter, ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji"; /* fontFamily */
|
|
36
|
+
--turbo-font-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* fontFamily */
|
|
37
|
+
--turbo-heading-h1: #268bd2; /* color */
|
|
38
|
+
--turbo-heading-h2: #2aa198; /* color */
|
|
39
|
+
--turbo-heading-h3: #859900; /* color */
|
|
40
|
+
--turbo-heading-h4: #b58900; /* color */
|
|
41
|
+
--turbo-heading-h5: #cb4b16; /* color */
|
|
42
|
+
--turbo-heading-h6: #d33682; /* color */
|
|
43
|
+
--turbo-body-primary: #586e75; /* color */
|
|
44
|
+
--turbo-body-secondary: #657b83; /* color */
|
|
45
|
+
--turbo-link-default: #268bd2; /* color */
|
|
46
|
+
--turbo-selection-fg: #002b36; /* color */
|
|
47
|
+
--turbo-selection-bg: #93a1a1; /* color */
|
|
48
|
+
--turbo-blockquote-border: #93a1a1; /* color */
|
|
49
|
+
--turbo-blockquote-fg: #657b83; /* color */
|
|
50
|
+
--turbo-blockquote-bg: #eee8d5; /* color */
|
|
51
|
+
--turbo-code-inline-fg: #6c71c4; /* color */
|
|
52
|
+
--turbo-code-inline-bg: #eee8d5; /* color */
|
|
53
|
+
--turbo-code-block-fg: #073642; /* color */
|
|
54
|
+
--turbo-code-block-bg: #eee8d5; /* color */
|
|
55
|
+
--turbo-table-border: #93a1a1; /* color */
|
|
56
|
+
--turbo-table-stripe: #eee8d5; /* color */
|
|
57
|
+
--turbo-table-thead-bg: #eee8d5; /* color */
|
|
58
|
+
--turbo-components-card-bg: #fdf6e3; /* color */
|
|
59
|
+
--turbo-components-card-border: #93a1a1; /* color */
|
|
60
|
+
--turbo-components-card-header-bg: #eee8d5; /* color */
|
|
61
|
+
--turbo-components-card-footer-bg: #eee8d5; /* color */
|
|
62
|
+
--turbo-components-message-bg: #eee8d5; /* color */
|
|
63
|
+
--turbo-components-message-header-bg: #fdf6e3; /* color */
|
|
64
|
+
--turbo-components-message-border: #93a1a1; /* color */
|
|
65
|
+
--turbo-components-message-body-fg: #586e75; /* color */
|
|
66
|
+
--turbo-components-panel-bg: #fdf6e3; /* color */
|
|
67
|
+
--turbo-components-panel-header-bg: #eee8d5; /* color */
|
|
68
|
+
--turbo-components-panel-header-fg: #073642; /* color */
|
|
69
|
+
--turbo-components-panel-border: #93a1a1; /* color */
|
|
70
|
+
--turbo-components-panel-block-bg: #eee8d5; /* color */
|
|
71
|
+
--turbo-components-panel-block-hover-bg: #fdf6e3; /* color */
|
|
72
|
+
--turbo-components-panel-block-active-bg: #93a1a1; /* color */
|
|
73
|
+
--turbo-components-box-bg: #fdf6e3; /* color */
|
|
74
|
+
--turbo-components-box-border: #93a1a1; /* color */
|
|
75
|
+
--turbo-components-notification-bg: #eee8d5; /* color */
|
|
76
|
+
--turbo-components-notification-border: #93a1a1; /* color */
|
|
77
|
+
--turbo-components-modal-bg: rgba(0, 43, 54, 0.86); /* color */
|
|
78
|
+
--turbo-components-modal-card-bg: #fdf6e3; /* color */
|
|
79
|
+
--turbo-components-modal-header-bg: #eee8d5; /* color */
|
|
80
|
+
--turbo-components-modal-footer-bg: #eee8d5; /* color */
|
|
81
|
+
--turbo-components-dropdown-bg: #fdf6e3; /* color */
|
|
82
|
+
--turbo-components-dropdown-item-hover-bg: #eee8d5; /* color */
|
|
83
|
+
--turbo-components-dropdown-border: #93a1a1; /* color */
|
|
84
|
+
--turbo-components-tabs-border: #93a1a1; /* color */
|
|
85
|
+
--turbo-components-tabs-link-bg: #eee8d5; /* color */
|
|
86
|
+
--turbo-components-tabs-link-active-bg: #fdf6e3; /* color */
|
|
87
|
+
--turbo-components-tabs-link-hover-bg: #93a1a1; /* color */
|
|
88
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap');
|
|
2
|
+
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&display=swap');
|
|
3
|
+
|
|
4
|
+
[data-theme="solarized-dark"] {
|
|
5
|
+
--turbo-bg-base: #002b36;
|
|
6
|
+
--turbo-bg-surface: #073642;
|
|
7
|
+
--turbo-bg-overlay: #586e75;
|
|
8
|
+
--turbo-text-primary: #839496;
|
|
9
|
+
--turbo-text-secondary: #657b83;
|
|
10
|
+
--turbo-text-inverse: #002b36;
|
|
11
|
+
--turbo-brand-primary: #268bd2;
|
|
12
|
+
--turbo-state-info: #2aa198;
|
|
13
|
+
--turbo-state-success: #859900;
|
|
14
|
+
--turbo-state-warning: #b58900;
|
|
15
|
+
--turbo-state-danger: #dc322f;
|
|
16
|
+
--turbo-border-default: #586e75;
|
|
17
|
+
--turbo-accent-link: #268bd2;
|
|
18
|
+
--turbo-font-sans: Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji";
|
|
19
|
+
--turbo-font-mono: JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
|
20
|
+
--turbo-heading-h1: #268bd2;
|
|
21
|
+
--turbo-heading-h2: #2aa198;
|
|
22
|
+
--turbo-heading-h3: #859900;
|
|
23
|
+
--turbo-heading-h4: #b58900;
|
|
24
|
+
--turbo-heading-h5: #cb4b16;
|
|
25
|
+
--turbo-heading-h6: #d33682;
|
|
26
|
+
--turbo-body-primary: #839496;
|
|
27
|
+
--turbo-body-secondary: #657b83;
|
|
28
|
+
--turbo-link-default: #268bd2;
|
|
29
|
+
--turbo-selection-fg: #fdf6e3;
|
|
30
|
+
--turbo-selection-bg: #586e75;
|
|
31
|
+
--turbo-blockquote-border: #657b83;
|
|
32
|
+
--turbo-blockquote-fg: #839496;
|
|
33
|
+
--turbo-blockquote-bg: #073642;
|
|
34
|
+
--turbo-code-inline-fg: #2aa198;
|
|
35
|
+
--turbo-code-inline-bg: #073642;
|
|
36
|
+
--turbo-code-block-fg: #93a1a1;
|
|
37
|
+
--turbo-code-block-bg: #073642;
|
|
38
|
+
--turbo-table-border: #586e75;
|
|
39
|
+
--turbo-table-stripe: #073642;
|
|
40
|
+
--turbo-table-thead-bg: #586e75;
|
|
41
|
+
--turbo-table-cell-bg: #002b36;
|
|
42
|
+
--turbo-table-header-fg: #839496;
|
|
43
|
+
--turbo-card-bg: #073642;
|
|
44
|
+
--turbo-card-border: #586e75;
|
|
45
|
+
--turbo-modal-bg: rgba(0, 43, 54, 0.9);
|
|
46
|
+
--turbo-modal-card-bg: #073642;
|
|
47
|
+
--turbo-dropdown-bg: #073642;
|
|
48
|
+
--turbo-dropdown-border: #586e75;
|
|
49
|
+
--turbo-dropdown-item-hover: #586e75;
|
|
50
|
+
--turbo-syntax-fg: #93a1a1;
|
|
51
|
+
--turbo-syntax-bg: #073642;
|
|
52
|
+
--turbo-syntax-comment: #657b83;
|
|
53
|
+
--turbo-syntax-keyword: #268bd2;
|
|
54
|
+
--turbo-syntax-string: #859900;
|
|
55
|
+
--turbo-syntax-number: #b58900;
|
|
56
|
+
--turbo-syntax-function: #2aa198;
|
|
57
|
+
--turbo-syntax-type: #268bd2;
|
|
58
|
+
--turbo-syntax-variable: #839496;
|
|
59
|
+
--turbo-syntax-operator: #657b83;
|
|
60
|
+
--turbo-syntax-punctuation: #657b83;
|
|
61
|
+
--turbo-syntax-tag: #dc322f;
|
|
62
|
+
--turbo-syntax-attribute: #2aa198;
|
|
63
|
+
--turbo-syntax-value: #859900;
|
|
64
|
+
--turbo-syntax-error: #dc322f;
|
|
65
|
+
--turbo-syntax-deleted: #dc322f;
|
|
66
|
+
--turbo-syntax-inserted: #859900;
|
|
67
|
+
color-scheme: dark;
|
|
68
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap');
|
|
2
|
+
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&display=swap');
|
|
3
|
+
|
|
4
|
+
[data-theme="solarized-light"] {
|
|
5
|
+
--turbo-bg-base: #fdf6e3;
|
|
6
|
+
--turbo-bg-surface: #eee8d5;
|
|
7
|
+
--turbo-bg-overlay: #93a1a1;
|
|
8
|
+
--turbo-text-primary: #586e75;
|
|
9
|
+
--turbo-text-secondary: #657b83;
|
|
10
|
+
--turbo-text-inverse: #fdf6e3;
|
|
11
|
+
--turbo-brand-primary: #268bd2;
|
|
12
|
+
--turbo-state-info: #2aa198;
|
|
13
|
+
--turbo-state-success: #859900;
|
|
14
|
+
--turbo-state-warning: #b58900;
|
|
15
|
+
--turbo-state-danger: #dc322f;
|
|
16
|
+
--turbo-border-default: #93a1a1;
|
|
17
|
+
--turbo-accent-link: #268bd2;
|
|
18
|
+
--turbo-font-sans: Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji";
|
|
19
|
+
--turbo-font-mono: JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
|
20
|
+
--turbo-heading-h1: #268bd2;
|
|
21
|
+
--turbo-heading-h2: #2aa198;
|
|
22
|
+
--turbo-heading-h3: #859900;
|
|
23
|
+
--turbo-heading-h4: #b58900;
|
|
24
|
+
--turbo-heading-h5: #cb4b16;
|
|
25
|
+
--turbo-heading-h6: #d33682;
|
|
26
|
+
--turbo-body-primary: #586e75;
|
|
27
|
+
--turbo-body-secondary: #657b83;
|
|
28
|
+
--turbo-link-default: #268bd2;
|
|
29
|
+
--turbo-selection-fg: #002b36;
|
|
30
|
+
--turbo-selection-bg: #93a1a1;
|
|
31
|
+
--turbo-blockquote-border: #93a1a1;
|
|
32
|
+
--turbo-blockquote-fg: #657b83;
|
|
33
|
+
--turbo-blockquote-bg: #eee8d5;
|
|
34
|
+
--turbo-code-inline-fg: #6c71c4;
|
|
35
|
+
--turbo-code-inline-bg: #eee8d5;
|
|
36
|
+
--turbo-code-block-fg: #073642;
|
|
37
|
+
--turbo-code-block-bg: #eee8d5;
|
|
38
|
+
--turbo-table-border: #93a1a1;
|
|
39
|
+
--turbo-table-stripe: #eee8d5;
|
|
40
|
+
--turbo-table-thead-bg: #eee8d5;
|
|
41
|
+
--turbo-table-cell-bg: #fdf6e3;
|
|
42
|
+
--turbo-table-header-fg: #586e75;
|
|
43
|
+
--turbo-card-bg: #fdf6e3;
|
|
44
|
+
--turbo-card-border: #93a1a1;
|
|
45
|
+
--turbo-modal-bg: rgba(0, 43, 54, 0.86);
|
|
46
|
+
--turbo-modal-card-bg: #fdf6e3;
|
|
47
|
+
--turbo-dropdown-bg: #fdf6e3;
|
|
48
|
+
--turbo-dropdown-border: #93a1a1;
|
|
49
|
+
--turbo-dropdown-item-hover: #eee8d5;
|
|
50
|
+
--turbo-syntax-fg: #073642;
|
|
51
|
+
--turbo-syntax-bg: #eee8d5;
|
|
52
|
+
--turbo-syntax-comment: #657b83;
|
|
53
|
+
--turbo-syntax-keyword: #268bd2;
|
|
54
|
+
--turbo-syntax-string: #859900;
|
|
55
|
+
--turbo-syntax-number: #b58900;
|
|
56
|
+
--turbo-syntax-function: #2aa198;
|
|
57
|
+
--turbo-syntax-type: #268bd2;
|
|
58
|
+
--turbo-syntax-variable: #586e75;
|
|
59
|
+
--turbo-syntax-operator: #657b83;
|
|
60
|
+
--turbo-syntax-punctuation: #657b83;
|
|
61
|
+
--turbo-syntax-tag: #dc322f;
|
|
62
|
+
--turbo-syntax-attribute: #2aa198;
|
|
63
|
+
--turbo-syntax-value: #859900;
|
|
64
|
+
--turbo-syntax-error: #dc322f;
|
|
65
|
+
--turbo-syntax-deleted: #dc322f;
|
|
66
|
+
--turbo-syntax-inserted: #859900;
|
|
67
|
+
color-scheme: light;
|
|
68
|
+
}
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-selector.js","sources":["../../packages/theme-selector/dist/index.js"],"sourcesContent":["const STORAGE_KEY = \"turbo-theme\";\nconst LEGACY_STORAGE_KEYS = [\"bulma-theme-flavor\"];\nconst DEFAULT_THEME = \"catppuccin-mocha\";\nconst DOM_IDS = {\n THEME_FLAVOR_TRIGGER: \"theme-flavor-trigger\",\n THEME_FLAVOR_TRIGGER_ICON: \"theme-flavor-trigger-icon\",\n THEME_FLAVOR_TRIGGER_LABEL: \"theme-flavor-trigger-label\",\n THEME_FLAVOR_MENU: \"theme-flavor-menu\",\n THEME_FLAVOR_SELECT: \"theme-flavor-select\"\n};\nconst DOM_SELECTORS = {\n DROPDOWN_ITEMS: `#${DOM_IDS.THEME_FLAVOR_MENU} .dropdown-item.theme-item`,\n NAVBAR_DROPDOWN: \".navbar-item.has-dropdown\",\n NAV_REPORTS: '[data-testid=\"nav-reports\"]',\n NAVBAR_ITEM: \".navbar-item\",\n HIGHLIGHT_PRE: \".highlight > pre\",\n THEME_CSS_LINKS: 'link[id^=\"theme-\"][id$=\"-css\"]'\n};\nconst THEME_FAMILIES = {\n bulma: { name: \"Bulma\", description: \"Classic Bulma themes\" },\n catppuccin: { name: \"Catppuccin\", description: \"Soothing pastel themes\" },\n github: { name: \"GitHub\", description: \"GitHub-inspired themes\" },\n dracula: { name: \"Dracula\", description: \"Dark vampire aesthetic\" },\n \"rose-pine\": { name: \"Rosé Pine\", description: \"All natural pine, faux fur and a bit of soho vibes\" }\n};\nconst LOG_PREFIX = \"[turbo-themes]\";\nconst ThemeErrors = {\n /** Invalid theme ID provided */\n INVALID_THEME_ID: (themeId) => ({\n code: \"INVALID_THEME_ID\",\n message: `Invalid theme ID \"${themeId}\" not saved to storage`,\n level: \"warn\",\n context: { themeId }\n }),\n /** No themes available in registry */\n NO_THEMES_AVAILABLE: () => ({\n code: \"NO_THEMES_AVAILABLE\",\n message: \"No themes available\",\n level: \"error\"\n /* ERROR */\n }),\n /** Invalid theme icon path */\n INVALID_ICON_PATH: (themeId) => ({\n code: \"INVALID_ICON_PATH\",\n message: `Invalid theme icon path for ${themeId}`,\n level: \"warn\",\n context: { themeId }\n }),\n /** Theme initialization failed */\n INIT_FAILED: (error) => ({\n code: \"INIT_FAILED\",\n message: \"Theme switcher initialization failed\",\n level: \"error\",\n context: { error: error instanceof Error ? error.message : String(error) }\n }),\n /** Protocol-relative URL rejected for security */\n PROTOCOL_REJECTED: () => ({\n code: \"PROTOCOL_REJECTED\",\n message: \"Protocol-relative base URL rejected for security\",\n level: \"warn\"\n /* WARN */\n }),\n /** Insecure HTTP URL rejected */\n INSECURE_HTTP_REJECTED: () => ({\n code: \"INSECURE_HTTP_REJECTED\",\n message: \"Insecure HTTP base URL rejected\",\n level: \"warn\"\n /* WARN */\n }),\n /** Cross-origin URL rejected */\n CROSS_ORIGIN_REJECTED: (origin) => ({\n code: \"CROSS_ORIGIN_REJECTED\",\n message: `Cross-origin base URL rejected: ${origin}`,\n level: \"warn\",\n context: { origin }\n }),\n /** Invalid CSS path for theme */\n INVALID_CSS_PATH: (themeId) => ({\n code: \"INVALID_CSS_PATH\",\n message: `Invalid theme CSS path for ${themeId}`,\n level: \"warn\",\n context: { themeId }\n }),\n /** CSS failed to load */\n CSS_LOAD_FAILED: (themeId, error) => ({\n code: \"CSS_LOAD_FAILED\",\n message: `Theme CSS failed to load for ${themeId}`,\n level: \"warn\",\n context: {\n themeId,\n error: error instanceof Error ? error.message : String(error)\n }\n }),\n /** Storage unavailable (private browsing or disabled) */\n STORAGE_UNAVAILABLE: (operation, error) => ({\n code: \"STORAGE_UNAVAILABLE\",\n message: `localStorage ${operation} failed - storage may be unavailable`,\n level: \"warn\",\n context: {\n operation,\n error: error instanceof Error ? error.message : String(error)\n }\n })\n};\nfunction logThemeError(themeError) {\n const prefixedMessage = `${LOG_PREFIX} ${themeError.message}`;\n if (themeError.level === \"error\") {\n if (themeError.context) {\n console.error(prefixedMessage, themeError.context);\n } else {\n console.error(prefixedMessage);\n }\n } else {\n if (themeError.context) {\n console.warn(prefixedMessage, themeError.context);\n } else {\n console.warn(prefixedMessage);\n }\n }\n}\nfunction safeGetItem(windowObj, key) {\n try {\n return windowObj.localStorage.getItem(key);\n } catch (error) {\n logThemeError(ThemeErrors.STORAGE_UNAVAILABLE(\"getItem\", error));\n return null;\n }\n}\nfunction safeSetItem(windowObj, key, value) {\n try {\n windowObj.localStorage.setItem(key, value);\n return true;\n } catch (error) {\n logThemeError(ThemeErrors.STORAGE_UNAVAILABLE(\"setItem\", error));\n return false;\n }\n}\nfunction safeRemoveItem(windowObj, key) {\n try {\n windowObj.localStorage.removeItem(key);\n } catch (error) {\n logThemeError(ThemeErrors.STORAGE_UNAVAILABLE(\"removeItem\", error));\n }\n}\nfunction validateThemeId(themeId, validIds) {\n if (themeId && validIds.has(themeId)) {\n return themeId;\n }\n return DEFAULT_THEME;\n}\nfunction migrateLegacyStorage(windowObj) {\n for (const legacyKey of LEGACY_STORAGE_KEYS) {\n const legacy = safeGetItem(windowObj, legacyKey);\n if (legacy && !safeGetItem(windowObj, STORAGE_KEY)) {\n safeSetItem(windowObj, STORAGE_KEY, legacy);\n safeRemoveItem(windowObj, legacyKey);\n }\n }\n}\nfunction getSavedTheme(windowObj, validIds) {\n const stored = safeGetItem(windowObj, STORAGE_KEY);\n if (validIds) {\n return validateThemeId(stored, validIds);\n }\n return stored || DEFAULT_THEME;\n}\nfunction saveTheme(windowObj, themeId, validIds) {\n if (validIds && !validIds.has(themeId)) {\n logThemeError(ThemeErrors.INVALID_THEME_ID(themeId));\n return false;\n }\n return safeSetItem(windowObj, STORAGE_KEY, themeId);\n}\nfunction resolveAssetPath(assetPath, baseUrl) {\n const normalizedBase = baseUrl.replace(/\\/$/, \"\");\n const base = normalizedBase ? `${window.location.origin}${normalizedBase}/` : `${window.location.origin}/`;\n return new URL(assetPath, base).pathname;\n}\nfunction getBaseUrl(doc) {\n const baseElement = doc.documentElement;\n const raw = baseElement?.getAttribute(\"data-baseurl\") || \"\";\n if (!raw) return \"\";\n if (raw.startsWith(\"//\")) {\n logThemeError(ThemeErrors.PROTOCOL_REJECTED());\n return \"\";\n }\n if (raw.startsWith(\"http://\") && !raw.startsWith(\"http://localhost\")) {\n logThemeError(ThemeErrors.INSECURE_HTTP_REJECTED());\n return \"\";\n }\n try {\n const currentOrigin = typeof window !== \"undefined\" ? window.location.origin : \"http://localhost\";\n const u = new URL(raw, currentOrigin);\n if (u.origin !== currentOrigin) {\n logThemeError(ThemeErrors.CROSS_ORIGIN_REJECTED(u.origin));\n return \"\";\n }\n return u.pathname.replace(/\\/$/, \"\");\n } catch {\n return \"\";\n }\n}\nfunction clearLinkHandlers(link) {\n link.onload = null;\n link.onerror = null;\n}\nfunction loadCSSWithTimeout(link, themeId, timeoutMs = 1e4) {\n return new Promise((resolve, reject) => {\n const timeoutId = setTimeout(() => {\n clearLinkHandlers(link);\n reject(new Error(`Theme ${themeId} load timeout`));\n }, timeoutMs);\n link.onload = () => {\n clearTimeout(timeoutId);\n clearLinkHandlers(link);\n resolve();\n };\n link.onerror = () => {\n clearTimeout(timeoutId);\n clearLinkHandlers(link);\n reject(new Error(`Failed to load theme ${themeId}`));\n };\n });\n}\nfunction getCurrentThemeFromClasses(element) {\n const classList = Array.from(element.classList);\n for (const className of classList) {\n if (className.startsWith(\"theme-\")) {\n return className.substring(6);\n }\n }\n return null;\n}\nfunction applyThemeClass(doc, themeId) {\n const themeClasses = Array.from(doc.documentElement.classList).filter(\n (className) => className.startsWith(\"theme-\")\n );\n if (themeClasses.length > 0) {\n doc.documentElement.classList.remove(...themeClasses);\n }\n doc.documentElement.classList.add(`theme-${themeId}`);\n}\nasync function loadThemeCSS(doc, theme, baseUrl) {\n const themeLinkId = `theme-${theme.id}-css`;\n let themeLink = doc.getElementById(themeLinkId);\n if (!themeLink) {\n themeLink = doc.createElement(\"link\");\n themeLink.id = themeLinkId;\n themeLink.rel = \"stylesheet\";\n themeLink.type = \"text/css\";\n themeLink.setAttribute(\"data-theme-id\", theme.id);\n try {\n themeLink.href = resolveAssetPath(theme.cssFile, baseUrl);\n } catch {\n logThemeError(ThemeErrors.INVALID_CSS_PATH(theme.id));\n return;\n }\n doc.head.appendChild(themeLink);\n try {\n await loadCSSWithTimeout(themeLink, theme.id);\n } catch (error) {\n logThemeError(ThemeErrors.CSS_LOAD_FAILED(theme.id, error));\n }\n }\n doc.querySelectorAll(DOM_SELECTORS.THEME_CSS_LINKS).forEach((link) => {\n const linkThemeId = link.id.replace(\"theme-\", \"\").replace(\"-css\", \"\");\n if (linkThemeId !== theme.id && linkThemeId !== \"base\") {\n link.remove();\n }\n });\n}\nfunction setItemActiveState(item, isActive) {\n if (isActive) {\n item.classList.add(\"is-active\");\n } else {\n item.classList.remove(\"is-active\");\n }\n item.setAttribute(\"aria-checked\", String(isActive));\n}\nfunction setTabindexBatch(items, value) {\n for (const item of items) {\n item.setAttribute(\"tabindex\", value);\n }\n}\nconst themes = /* @__PURE__ */ JSON.parse('{\"bulma-dark\":{\"id\":\"bulma-dark\",\"label\":\"Bulma Dark\",\"vendor\":\"bulma\",\"appearance\":\"dark\",\"tokens\":{\"background\":{\"base\":\"#141414\",\"surface\":\"#1f1f1f\",\"overlay\":\"#2b2b2b\"},\"text\":{\"primary\":\"#f5f5f5\",\"secondary\":\"#dbdbdb\",\"inverse\":\"#141414\"},\"brand\":{\"primary\":\"#00d1b2\"},\"state\":{\"info\":\"#3e8ed0\",\"success\":\"#48c78e\",\"warning\":\"#ffe08a\",\"danger\":\"#f14668\"},\"border\":{\"default\":\"#363636\"},\"accent\":{\"link\":\"#485fc7\"},\"typography\":{\"fonts\":{\"sans\":\"\\\\\"Nunito Sans\\\\\", BlinkMacSystemFont, -apple-system, \\\\\"Segoe UI\\\\\", Roboto, Oxygen, Ubuntu, Cantarell, \\\\\"Fira Sans\\\\\", \\\\\"Droid Sans\\\\\", \\\\\"Helvetica Neue\\\\\", Helvetica, Arial, sans-serif\",\"mono\":\"\\\\\"JetBrains Mono\\\\\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\\\\"Liberation Mono\\\\\", \\\\\"Courier New\\\\\", monospace\"},\"webFonts\":[\"https://fonts.googleapis.com/css2?family=Nunito+Sans:ital,opsz,wght@0,6..12,400;0,6..12,600;0,6..12,700;1,6..12,400&display=swap\",\"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600&display=swap\"]},\"content\":{\"heading\":{\"h1\":\"#00d1b2\",\"h2\":\"#7289da\",\"h3\":\"#5dade2\",\"h4\":\"#58d68d\",\"h5\":\"#f7dc6f\",\"h6\":\"#f1948a\"},\"body\":{\"primary\":\"#dbdbdb\",\"secondary\":\"#b5b5b5\"},\"link\":{\"default\":\"#485fc7\"},\"selection\":{\"fg\":\"#f5f5f5\",\"bg\":\"#3273dc\"},\"blockquote\":{\"border\":\"#363636\",\"fg\":\"#dbdbdb\",\"bg\":\"#1f1f1f\"},\"codeInline\":{\"fg\":\"#f14668\",\"bg\":\"#2b2b2b\"},\"codeBlock\":{\"fg\":\"#f5f5f5\",\"bg\":\"#2b2b2b\"},\"table\":{\"border\":\"#404040\",\"stripe\":\"#1c1c1c\",\"theadBg\":\"#2d2d2d\",\"cellBg\":\"#1a1a1a\",\"headerFg\":\"#f5f5f5\"}},\"spacing\":{\"xs\":\"0.25rem\",\"sm\":\"0.5rem\",\"md\":\"1rem\",\"lg\":\"1.5rem\",\"xl\":\"2rem\"},\"elevation\":{\"none\":\"none\",\"sm\":\"0 1px 2px 0 rgba(0, 0, 0, 0.05)\",\"md\":\"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)\",\"lg\":\"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)\",\"xl\":\"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)\"},\"animation\":{\"durationFast\":\"150ms\",\"durationNormal\":\"300ms\",\"durationSlow\":\"500ms\",\"easingDefault\":\"cubic-bezier(0.4, 0, 0.2, 1)\",\"easingEmphasized\":\"cubic-bezier(0.05, 0.7, 0.1, 1)\"},\"opacity\":{\"disabled\":0.5,\"hover\":0.8,\"pressed\":0.6},\"components\":{\"card\":{\"bg\":\"#1c1c1c\",\"border\":\"#3a3a3a\",\"headerBg\":\"#252525\",\"footerBg\":\"#1f1f1f\"},\"message\":{\"bg\":\"#1f1f1f\",\"headerBg\":\"#2a2a2a\",\"border\":\"#404040\",\"bodyFg\":\"#e0e0e0\"},\"panel\":{\"bg\":\"#1c1c1c\",\"headerBg\":\"#2a2a2a\",\"headerFg\":\"#f5f5f5\",\"border\":\"#3a3a3a\",\"blockBg\":\"#1f1f1f\",\"blockHoverBg\":\"#262626\",\"blockActiveBg\":\"#2d3748\"},\"box\":{\"bg\":\"#1c1c1c\",\"border\":\"#3a3a3a\"},\"notification\":{\"bg\":\"#252525\",\"border\":\"#404040\"},\"modal\":{\"bg\":\"rgba(0, 0, 0, 0.86)\",\"cardBg\":\"#1c1c1c\",\"headerBg\":\"#252525\",\"footerBg\":\"#1f1f1f\"},\"dropdown\":{\"bg\":\"#1c1c1c\",\"itemHoverBg\":\"#2a2a2a\",\"border\":\"#404040\"},\"tabs\":{\"border\":\"#404040\",\"linkBg\":\"#252525\",\"linkActiveBg\":\"#1c1c1c\",\"linkHoverBg\":\"#2a2a2a\"}}}},\"bulma-light\":{\"id\":\"bulma-light\",\"label\":\"Bulma Light\",\"vendor\":\"bulma\",\"appearance\":\"light\",\"tokens\":{\"background\":{\"base\":\"#ffffff\",\"surface\":\"#f5f5f5\",\"overlay\":\"#eeeeee\"},\"text\":{\"primary\":\"#363636\",\"secondary\":\"#4a4a4a\",\"inverse\":\"#ffffff\"},\"brand\":{\"primary\":\"#00d1b2\"},\"state\":{\"info\":\"#3e8ed0\",\"success\":\"#48c78e\",\"warning\":\"#ffe08a\",\"danger\":\"#f14668\"},\"border\":{\"default\":\"#dbdbdb\"},\"accent\":{\"link\":\"#485fc7\"},\"typography\":{\"fonts\":{\"sans\":\"\\\\\"Nunito Sans\\\\\", BlinkMacSystemFont, -apple-system, \\\\\"Segoe UI\\\\\", Roboto, Oxygen, Ubuntu, Cantarell, \\\\\"Fira Sans\\\\\", \\\\\"Droid Sans\\\\\", \\\\\"Helvetica Neue\\\\\", Helvetica, Arial, sans-serif\",\"mono\":\"\\\\\"JetBrains Mono\\\\\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\\\\"Liberation Mono\\\\\", \\\\\"Courier New\\\\\", monospace\"},\"webFonts\":[\"https://fonts.googleapis.com/css2?family=Nunito+Sans:ital,opsz,wght@0,6..12,400;0,6..12,600;0,6..12,700;1,6..12,400&display=swap\",\"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600&display=swap\"]},\"content\":{\"heading\":{\"h1\":\"#00d1b2\",\"h2\":\"#485fc7\",\"h3\":\"#3e8ed0\",\"h4\":\"#48c78e\",\"h5\":\"#ffe08a\",\"h6\":\"#f14668\"},\"body\":{\"primary\":\"#4a4a4a\",\"secondary\":\"#6b6b6b\"},\"link\":{\"default\":\"#485fc7\"},\"selection\":{\"fg\":\"#363636\",\"bg\":\"#b5d5ff\"},\"blockquote\":{\"border\":\"#dbdbdb\",\"fg\":\"#4a4a4a\",\"bg\":\"#f5f5f5\"},\"codeInline\":{\"fg\":\"#f14668\",\"bg\":\"#f5f5f5\"},\"codeBlock\":{\"fg\":\"#363636\",\"bg\":\"#f5f5f5\"},\"table\":{\"border\":\"#dbdbdb\",\"stripe\":\"#fafafa\",\"theadBg\":\"#f0f0f0\",\"cellBg\":\"#ffffff\",\"headerFg\":\"#363636\"}},\"spacing\":{\"xs\":\"0.25rem\",\"sm\":\"0.5rem\",\"md\":\"1rem\",\"lg\":\"1.5rem\",\"xl\":\"2rem\"},\"elevation\":{\"none\":\"none\",\"sm\":\"0 1px 2px 0 rgba(0, 0, 0, 0.05)\",\"md\":\"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)\",\"lg\":\"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)\",\"xl\":\"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)\"},\"animation\":{\"durationFast\":\"150ms\",\"durationNormal\":\"300ms\",\"durationSlow\":\"500ms\",\"easingDefault\":\"cubic-bezier(0.4, 0, 0.2, 1)\",\"easingEmphasized\":\"cubic-bezier(0.05, 0.7, 0.1, 1)\"},\"opacity\":{\"disabled\":0.5,\"hover\":0.8,\"pressed\":0.6},\"components\":{\"card\":{\"bg\":\"#ffffff\",\"border\":\"#d5d5d5\",\"headerBg\":\"#f5f5f5\",\"footerBg\":\"#fafafa\"},\"message\":{\"bg\":\"#f8f9fa\",\"headerBg\":\"#eef1f4\",\"border\":\"#d5dbe1\",\"bodyFg\":\"#4a4a4a\"},\"panel\":{\"bg\":\"#ffffff\",\"headerBg\":\"#f0f0f0\",\"headerFg\":\"#363636\",\"border\":\"#d5d5d5\",\"blockBg\":\"#fafafa\",\"blockHoverBg\":\"#f5f5f5\",\"blockActiveBg\":\"#eef6fc\"},\"box\":{\"bg\":\"#ffffff\",\"border\":\"#e0e0e0\"},\"notification\":{\"bg\":\"#f5f5f5\",\"border\":\"#e0e0e0\"},\"modal\":{\"bg\":\"rgba(10, 10, 10, 0.86)\",\"cardBg\":\"#ffffff\",\"headerBg\":\"#f5f5f5\",\"footerBg\":\"#fafafa\"},\"dropdown\":{\"bg\":\"#ffffff\",\"itemHoverBg\":\"#f5f5f5\",\"border\":\"#dbdbdb\"},\"tabs\":{\"border\":\"#dbdbdb\",\"linkBg\":\"#f5f5f5\",\"linkActiveBg\":\"#ffffff\",\"linkHoverBg\":\"#eeeeee\"}}}},\"catppuccin-frappe\":{\"id\":\"catppuccin-frappe\",\"label\":\"Catppuccin Frappé\",\"vendor\":\"catppuccin\",\"appearance\":\"dark\",\"tokens\":{\"background\":{\"base\":\"#303446\",\"surface\":\"#292c3c\",\"overlay\":\"#232634\"},\"text\":{\"primary\":\"#c6d0f5\",\"secondary\":\"#a5adce\",\"inverse\":\"#303446\"},\"brand\":{\"primary\":\"#8caaee\"},\"state\":{\"info\":\"#99d1db\",\"success\":\"#a6d189\",\"warning\":\"#e5c890\",\"danger\":\"#e78284\"},\"border\":{\"default\":\"#737994\"},\"accent\":{\"link\":\"#8caaee\"},\"typography\":{\"fonts\":{\"sans\":\"Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, \\\\\"Apple Color Emoji\\\\\", \\\\\"Segoe UI Emoji\\\\\"\",\"mono\":\"JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\\\\"Liberation Mono\\\\\", \\\\\"Courier New\\\\\", monospace\"},\"webFonts\":[\"https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap\",\"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&display=swap\"]},\"content\":{\"heading\":{\"h1\":\"#a6d189\",\"h2\":\"#8caaee\",\"h3\":\"#85c1dc\",\"h4\":\"#e5c890\",\"h5\":\"#ca9ee6\",\"h6\":\"#e78284\"},\"body\":{\"primary\":\"#c6d0f5\",\"secondary\":\"#a5adce\"},\"link\":{\"default\":\"#8caaee\"},\"selection\":{\"fg\":\"#c6d0f5\",\"bg\":\"#838ba7\"},\"blockquote\":{\"border\":\"#838ba7\",\"fg\":\"#c6d0f5\",\"bg\":\"#292c3c\"},\"codeInline\":{\"fg\":\"#c6d0f5\",\"bg\":\"#414559\"},\"codeBlock\":{\"fg\":\"#c6d0f5\",\"bg\":\"#414559\"},\"table\":{\"border\":\"#838ba7\",\"stripe\":\"#414559\",\"theadBg\":\"#51576d\"}}}},\"catppuccin-latte\":{\"id\":\"catppuccin-latte\",\"label\":\"Catppuccin Latte\",\"vendor\":\"catppuccin\",\"appearance\":\"light\",\"tokens\":{\"background\":{\"base\":\"#eff1f5\",\"surface\":\"#e6e9ef\",\"overlay\":\"#dce0e8\"},\"text\":{\"primary\":\"#4c4f69\",\"secondary\":\"#6c6f85\",\"inverse\":\"#eff1f5\"},\"brand\":{\"primary\":\"#1e66f5\"},\"state\":{\"info\":\"#04a5e5\",\"success\":\"#40a02b\",\"warning\":\"#df8e1d\",\"danger\":\"#d20f39\"},\"border\":{\"default\":\"#9ca0b0\"},\"accent\":{\"link\":\"#1e66f5\"},\"typography\":{\"fonts\":{\"sans\":\"Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, \\\\\"Apple Color Emoji\\\\\", \\\\\"Segoe UI Emoji\\\\\"\",\"mono\":\"JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\\\\"Liberation Mono\\\\\", \\\\\"Courier New\\\\\", monospace\"},\"webFonts\":[\"https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap\",\"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&display=swap\"]},\"content\":{\"heading\":{\"h1\":\"#40a02b\",\"h2\":\"#1e66f5\",\"h3\":\"#209fb5\",\"h4\":\"#df8e1d\",\"h5\":\"#8839ef\",\"h6\":\"#d20f39\"},\"body\":{\"primary\":\"#4c4f69\",\"secondary\":\"#6c6f85\"},\"link\":{\"default\":\"#1e66f5\"},\"selection\":{\"fg\":\"#4c4f69\",\"bg\":\"#8c8fa1\"},\"blockquote\":{\"border\":\"#8c8fa1\",\"fg\":\"#4c4f69\",\"bg\":\"#e6e9ef\"},\"codeInline\":{\"fg\":\"#4c4f69\",\"bg\":\"#ccd0da\"},\"codeBlock\":{\"fg\":\"#4c4f69\",\"bg\":\"#ccd0da\"},\"table\":{\"border\":\"#8c8fa1\",\"stripe\":\"#ccd0da\",\"theadBg\":\"#bcc0cc\"}}}},\"catppuccin-macchiato\":{\"id\":\"catppuccin-macchiato\",\"label\":\"Catppuccin Macchiato\",\"vendor\":\"catppuccin\",\"appearance\":\"dark\",\"tokens\":{\"background\":{\"base\":\"#24273a\",\"surface\":\"#1e2030\",\"overlay\":\"#181926\"},\"text\":{\"primary\":\"#cad3f5\",\"secondary\":\"#a5adcb\",\"inverse\":\"#24273a\"},\"brand\":{\"primary\":\"#8aadf4\"},\"state\":{\"info\":\"#91d7e3\",\"success\":\"#a6da95\",\"warning\":\"#eed49f\",\"danger\":\"#ed8796\"},\"border\":{\"default\":\"#6e738d\"},\"accent\":{\"link\":\"#8aadf4\"},\"typography\":{\"fonts\":{\"sans\":\"Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, \\\\\"Apple Color Emoji\\\\\", \\\\\"Segoe UI Emoji\\\\\"\",\"mono\":\"JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\\\\"Liberation Mono\\\\\", \\\\\"Courier New\\\\\", monospace\"},\"webFonts\":[\"https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap\",\"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&display=swap\"]},\"content\":{\"heading\":{\"h1\":\"#a6da95\",\"h2\":\"#8aadf4\",\"h3\":\"#7dc4e4\",\"h4\":\"#eed49f\",\"h5\":\"#c6a0f6\",\"h6\":\"#ed8796\"},\"body\":{\"primary\":\"#cad3f5\",\"secondary\":\"#a5adcb\"},\"link\":{\"default\":\"#8aadf4\"},\"selection\":{\"fg\":\"#cad3f5\",\"bg\":\"#8087a2\"},\"blockquote\":{\"border\":\"#8087a2\",\"fg\":\"#cad3f5\",\"bg\":\"#1e2030\"},\"codeInline\":{\"fg\":\"#cad3f5\",\"bg\":\"#363a4f\"},\"codeBlock\":{\"fg\":\"#cad3f5\",\"bg\":\"#363a4f\"},\"table\":{\"border\":\"#8087a2\",\"stripe\":\"#363a4f\",\"theadBg\":\"#494d64\"}}}},\"catppuccin-mocha\":{\"id\":\"catppuccin-mocha\",\"label\":\"Catppuccin Mocha\",\"vendor\":\"catppuccin\",\"appearance\":\"dark\",\"tokens\":{\"background\":{\"base\":\"#1e1e2e\",\"surface\":\"#181825\",\"overlay\":\"#11111b\"},\"text\":{\"primary\":\"#cdd6f4\",\"secondary\":\"#a6adc8\",\"inverse\":\"#1e1e2e\"},\"brand\":{\"primary\":\"#89b4fa\"},\"state\":{\"info\":\"#89dceb\",\"success\":\"#a6e3a1\",\"warning\":\"#f9e2af\",\"danger\":\"#f38ba8\"},\"border\":{\"default\":\"#6c7086\"},\"accent\":{\"link\":\"#89b4fa\"},\"typography\":{\"fonts\":{\"sans\":\"Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, \\\\\"Apple Color Emoji\\\\\", \\\\\"Segoe UI Emoji\\\\\"\",\"mono\":\"JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\\\\"Liberation Mono\\\\\", \\\\\"Courier New\\\\\", monospace\"},\"webFonts\":[\"https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap\",\"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&display=swap\"]},\"content\":{\"heading\":{\"h1\":\"#a6e3a1\",\"h2\":\"#89b4fa\",\"h3\":\"#74c7ec\",\"h4\":\"#f9e2af\",\"h5\":\"#cba6f7\",\"h6\":\"#f38ba8\"},\"body\":{\"primary\":\"#cdd6f4\",\"secondary\":\"#a6adc8\"},\"link\":{\"default\":\"#89b4fa\"},\"selection\":{\"fg\":\"#cdd6f4\",\"bg\":\"#7f849c\"},\"blockquote\":{\"border\":\"#7f849c\",\"fg\":\"#cdd6f4\",\"bg\":\"#181825\"},\"codeInline\":{\"fg\":\"#cdd6f4\",\"bg\":\"#313244\"},\"codeBlock\":{\"fg\":\"#cdd6f4\",\"bg\":\"#313244\"},\"table\":{\"border\":\"#7f849c\",\"stripe\":\"#313244\",\"theadBg\":\"#45475a\"}}}},\"dracula\":{\"id\":\"dracula\",\"label\":\"Dracula\",\"vendor\":\"dracula\",\"appearance\":\"dark\",\"tokens\":{\"background\":{\"base\":\"#282a36\",\"surface\":\"#21222c\",\"overlay\":\"#44475a\"},\"text\":{\"primary\":\"#f8f8f2\",\"secondary\":\"#6272a4\",\"inverse\":\"#282a36\"},\"brand\":{\"primary\":\"#bd93f9\"},\"state\":{\"info\":\"#8be9fd\",\"success\":\"#50fa7b\",\"warning\":\"#f1fa8c\",\"danger\":\"#ff5555\"},\"border\":{\"default\":\"#44475a\"},\"accent\":{\"link\":\"#8be9fd\"},\"typography\":{\"fonts\":{\"sans\":\"ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \\\\\"Segoe UI\\\\\", Roboto, \\\\\"Helvetica Neue\\\\\", Arial, sans-serif\",\"mono\":\"\\\\\"Fira Code\\\\\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\\\\"Liberation Mono\\\\\", \\\\\"Courier New\\\\\", monospace\"},\"webFonts\":[\"https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;600&display=swap\"]},\"content\":{\"heading\":{\"h1\":\"#ff79c6\",\"h2\":\"#bd93f9\",\"h3\":\"#8be9fd\",\"h4\":\"#50fa7b\",\"h5\":\"#ffb86c\",\"h6\":\"#f1fa8c\"},\"body\":{\"primary\":\"#f8f8f2\",\"secondary\":\"#6272a4\"},\"link\":{\"default\":\"#8be9fd\"},\"selection\":{\"fg\":\"#f8f8f2\",\"bg\":\"#44475a\"},\"blockquote\":{\"border\":\"#bd93f9\",\"fg\":\"#6272a4\",\"bg\":\"#21222c\"},\"codeInline\":{\"fg\":\"#50fa7b\",\"bg\":\"#21222c\"},\"codeBlock\":{\"fg\":\"#f8f8f2\",\"bg\":\"#21222c\"},\"table\":{\"border\":\"#44475a\",\"stripe\":\"#21222c\",\"theadBg\":\"#44475a\",\"cellBg\":\"#282a36\",\"headerFg\":\"#f8f8f2\"}},\"spacing\":{\"xs\":\"0.25rem\",\"sm\":\"0.5rem\",\"md\":\"1rem\",\"lg\":\"1.5rem\",\"xl\":\"2rem\"},\"elevation\":{\"none\":\"none\",\"sm\":\"0 1px 2px 0 rgba(0, 0, 0, 0.05)\",\"md\":\"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)\",\"lg\":\"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)\",\"xl\":\"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)\"},\"animation\":{\"durationFast\":\"150ms\",\"durationNormal\":\"300ms\",\"durationSlow\":\"500ms\",\"easingDefault\":\"cubic-bezier(0.4, 0, 0.2, 1)\",\"easingEmphasized\":\"cubic-bezier(0.05, 0.7, 0.1, 1)\"},\"opacity\":{\"disabled\":0.5,\"hover\":0.8,\"pressed\":0.6},\"components\":{\"card\":{\"bg\":\"#21222c\",\"border\":\"#6272a4\",\"headerBg\":\"#282a36\",\"footerBg\":\"#21222c\"},\"message\":{\"bg\":\"#282a36\",\"headerBg\":\"#44475a\",\"border\":\"#6272a4\",\"bodyFg\":\"#f8f8f2\"},\"panel\":{\"bg\":\"#21222c\",\"headerBg\":\"#44475a\",\"headerFg\":\"#f8f8f2\",\"border\":\"#6272a4\",\"blockBg\":\"#282a36\",\"blockHoverBg\":\"#2e303e\",\"blockActiveBg\":\"#44475a\"},\"box\":{\"bg\":\"#21222c\",\"border\":\"#6272a4\"},\"notification\":{\"bg\":\"#282a36\",\"border\":\"#6272a4\"},\"modal\":{\"bg\":\"rgba(40, 42, 54, 0.9)\",\"cardBg\":\"#21222c\",\"headerBg\":\"#282a36\",\"footerBg\":\"#21222c\"},\"dropdown\":{\"bg\":\"#21222c\",\"itemHoverBg\":\"#2e303e\",\"border\":\"#6272a4\"},\"tabs\":{\"border\":\"#6272a4\",\"linkBg\":\"#2e303e\",\"linkActiveBg\":\"#21222c\",\"linkHoverBg\":\"#44475a\"}}}},\"github-dark\":{\"id\":\"github-dark\",\"label\":\"GitHub Dark\",\"vendor\":\"github\",\"appearance\":\"dark\",\"tokens\":{\"background\":{\"base\":\"#0d1117\",\"surface\":\"#151b23\",\"overlay\":\"#010409\"},\"text\":{\"primary\":\"#f0f6fc\",\"secondary\":\"#9198a1\",\"inverse\":\"#ffffff\"},\"brand\":{\"primary\":\"#1f6feb\"},\"state\":{\"info\":\"#4493f8\",\"success\":\"#3fb950\",\"warning\":\"#d29922\",\"danger\":\"#f85149\"},\"border\":{\"default\":\"#3d444d\"},\"accent\":{\"link\":\"#4493f8\"},\"typography\":{\"fonts\":{\"sans\":\"\\\\\"Mona Sans\\\\\", -apple-system, BlinkMacSystemFont, \\\\\"Segoe UI\\\\\", \\\\\"Noto Sans\\\\\", Helvetica, Arial, sans-serif, \\\\\"Apple Color Emoji\\\\\", \\\\\"Segoe UI Emoji\\\\\"\",\"mono\":\"\\\\\"Hubot Sans\\\\\", ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, \\\\\"Liberation Mono\\\\\", monospace\"},\"webFonts\":[\"https://github.githubassets.com/assets/mona-sans-webfont.woff2\",\"https://github.githubassets.com/assets/hubot-sans-webfont.woff2\"]},\"content\":{\"heading\":{\"h1\":\"#3fb950\",\"h2\":\"#4493f8\",\"h3\":\"#1f6feb\",\"h4\":\"#d29922\",\"h5\":\"#3fb950\",\"h6\":\"#f85149\"},\"body\":{\"primary\":\"#f0f6fc\",\"secondary\":\"#9198a1\"},\"link\":{\"default\":\"#4493f8\"},\"selection\":{\"fg\":\"#f0f6fc\",\"bg\":\"#264f78\"},\"blockquote\":{\"border\":\"#3d444d\",\"fg\":\"#9198a1\",\"bg\":\"#151b23\"},\"codeInline\":{\"fg\":\"#f0f6fc\",\"bg\":\"#151b23\"},\"codeBlock\":{\"fg\":\"#f0f6fc\",\"bg\":\"#151b23\"},\"table\":{\"border\":\"#3d444d\",\"stripe\":\"#151b23\",\"theadBg\":\"#151b23\"}}}},\"github-light\":{\"id\":\"github-light\",\"label\":\"GitHub Light\",\"vendor\":\"github\",\"appearance\":\"light\",\"tokens\":{\"background\":{\"base\":\"#ffffff\",\"surface\":\"#f6f8fa\",\"overlay\":\"#f6f8fa\"},\"text\":{\"primary\":\"#1f2328\",\"secondary\":\"#59636e\",\"inverse\":\"#ffffff\"},\"brand\":{\"primary\":\"#0969da\"},\"state\":{\"info\":\"#0969da\",\"success\":\"#1a7f37\",\"warning\":\"#9a6700\",\"danger\":\"#d1242f\"},\"border\":{\"default\":\"#d1d9e0\"},\"accent\":{\"link\":\"#0969da\"},\"typography\":{\"fonts\":{\"sans\":\"\\\\\"Mona Sans\\\\\", -apple-system, BlinkMacSystemFont, \\\\\"Segoe UI\\\\\", \\\\\"Noto Sans\\\\\", Helvetica, Arial, sans-serif, \\\\\"Apple Color Emoji\\\\\", \\\\\"Segoe UI Emoji\\\\\"\",\"mono\":\"\\\\\"Hubot Sans\\\\\", ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, \\\\\"Liberation Mono\\\\\", monospace\"},\"webFonts\":[\"https://github.githubassets.com/assets/mona-sans-webfont.woff2\",\"https://github.githubassets.com/assets/hubot-sans-webfont.woff2\"]},\"content\":{\"heading\":{\"h1\":\"#1a7f37\",\"h2\":\"#0969da\",\"h3\":\"#0969da\",\"h4\":\"#9a6700\",\"h5\":\"#1a7f37\",\"h6\":\"#d1242f\"},\"body\":{\"primary\":\"#1f2328\",\"secondary\":\"#59636e\"},\"link\":{\"default\":\"#0969da\"},\"selection\":{\"fg\":\"#1f2328\",\"bg\":\"#b6e3ff\"},\"blockquote\":{\"border\":\"#d1d9e0\",\"fg\":\"#59636e\",\"bg\":\"#f6f8fa\"},\"codeInline\":{\"fg\":\"#1f2328\",\"bg\":\"#f6f8fa\"},\"codeBlock\":{\"fg\":\"#1f2328\",\"bg\":\"#f6f8fa\"},\"table\":{\"border\":\"#d1d9e0\",\"stripe\":\"#f6f8fa\",\"theadBg\":\"#f6f8fa\"}}}},\"rose-pine-dawn\":{\"id\":\"rose-pine-dawn\",\"label\":\"Rosé Pine Dawn\",\"vendor\":\"rose-pine\",\"appearance\":\"light\",\"iconUrl\":\"/assets/img/rose-pine-dawn.png\",\"tokens\":{\"background\":{\"base\":\"#faf4ed\",\"surface\":\"#fffaf3\",\"overlay\":\"#f2e9e1\"},\"text\":{\"primary\":\"#575279\",\"secondary\":\"#797593\",\"inverse\":\"#faf4ed\"},\"brand\":{\"primary\":\"#907aa9\"},\"state\":{\"info\":\"#56949f\",\"success\":\"#286983\",\"warning\":\"#ea9d34\",\"danger\":\"#b4637a\"},\"border\":{\"default\":\"#dfdad9\"},\"accent\":{\"link\":\"#907aa9\"},\"typography\":{\"fonts\":{\"sans\":\"Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, \\\\\"Apple Color Emoji\\\\\", \\\\\"Segoe UI Emoji\\\\\"\",\"mono\":\"JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\\\\"Liberation Mono\\\\\", \\\\\"Courier New\\\\\", monospace\"},\"webFonts\":[\"https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap\",\"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&display=swap\"]},\"content\":{\"heading\":{\"h1\":\"#286983\",\"h2\":\"#907aa9\",\"h3\":\"#56949f\",\"h4\":\"#ea9d34\",\"h5\":\"#d7827e\",\"h6\":\"#b4637a\"},\"body\":{\"primary\":\"#575279\",\"secondary\":\"#797593\"},\"link\":{\"default\":\"#907aa9\"},\"selection\":{\"fg\":\"#575279\",\"bg\":\"#cecacd\"},\"blockquote\":{\"border\":\"#cecacd\",\"fg\":\"#575279\",\"bg\":\"#fffaf3\"},\"codeInline\":{\"fg\":\"#575279\",\"bg\":\"#f2e9e1\"},\"codeBlock\":{\"fg\":\"#575279\",\"bg\":\"#f2e9e1\"},\"table\":{\"border\":\"#cecacd\",\"stripe\":\"#f2e9e1\",\"theadBg\":\"#dfdad9\"}}}},\"rose-pine-moon\":{\"id\":\"rose-pine-moon\",\"label\":\"Rosé Pine Moon\",\"vendor\":\"rose-pine\",\"appearance\":\"dark\",\"iconUrl\":\"/assets/img/rose-pine-moon.png\",\"tokens\":{\"background\":{\"base\":\"#232136\",\"surface\":\"#2a273f\",\"overlay\":\"#393552\"},\"text\":{\"primary\":\"#e0def4\",\"secondary\":\"#908caa\",\"inverse\":\"#232136\"},\"brand\":{\"primary\":\"#c4a7e7\"},\"state\":{\"info\":\"#9ccfd8\",\"success\":\"#3e8fb0\",\"warning\":\"#f6c177\",\"danger\":\"#eb6f92\"},\"border\":{\"default\":\"#44415a\"},\"accent\":{\"link\":\"#c4a7e7\"},\"typography\":{\"fonts\":{\"sans\":\"Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, \\\\\"Apple Color Emoji\\\\\", \\\\\"Segoe UI Emoji\\\\\"\",\"mono\":\"JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\\\\"Liberation Mono\\\\\", \\\\\"Courier New\\\\\", monospace\"},\"webFonts\":[\"https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap\",\"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&display=swap\"]},\"content\":{\"heading\":{\"h1\":\"#3e8fb0\",\"h2\":\"#c4a7e7\",\"h3\":\"#9ccfd8\",\"h4\":\"#f6c177\",\"h5\":\"#ea9a97\",\"h6\":\"#eb6f92\"},\"body\":{\"primary\":\"#e0def4\",\"secondary\":\"#908caa\"},\"link\":{\"default\":\"#c4a7e7\"},\"selection\":{\"fg\":\"#e0def4\",\"bg\":\"#56526e\"},\"blockquote\":{\"border\":\"#56526e\",\"fg\":\"#e0def4\",\"bg\":\"#2a273f\"},\"codeInline\":{\"fg\":\"#e0def4\",\"bg\":\"#393552\"},\"codeBlock\":{\"fg\":\"#e0def4\",\"bg\":\"#393552\"},\"table\":{\"border\":\"#56526e\",\"stripe\":\"#393552\",\"theadBg\":\"#44415a\"}}}},\"rose-pine\":{\"id\":\"rose-pine\",\"label\":\"Rosé Pine\",\"vendor\":\"rose-pine\",\"appearance\":\"dark\",\"iconUrl\":\"/assets/img/rose-pine.png\",\"tokens\":{\"background\":{\"base\":\"#191724\",\"surface\":\"#1f1d2e\",\"overlay\":\"#26233a\"},\"text\":{\"primary\":\"#e0def4\",\"secondary\":\"#908caa\",\"inverse\":\"#191724\"},\"brand\":{\"primary\":\"#c4a7e7\"},\"state\":{\"info\":\"#9ccfd8\",\"success\":\"#31748f\",\"warning\":\"#f6c177\",\"danger\":\"#eb6f92\"},\"border\":{\"default\":\"#403d52\"},\"accent\":{\"link\":\"#c4a7e7\"},\"typography\":{\"fonts\":{\"sans\":\"Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, \\\\\"Apple Color Emoji\\\\\", \\\\\"Segoe UI Emoji\\\\\"\",\"mono\":\"JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\\\\"Liberation Mono\\\\\", \\\\\"Courier New\\\\\", monospace\"},\"webFonts\":[\"https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap\",\"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&display=swap\"]},\"content\":{\"heading\":{\"h1\":\"#31748f\",\"h2\":\"#c4a7e7\",\"h3\":\"#9ccfd8\",\"h4\":\"#f6c177\",\"h5\":\"#ebbcba\",\"h6\":\"#eb6f92\"},\"body\":{\"primary\":\"#e0def4\",\"secondary\":\"#908caa\"},\"link\":{\"default\":\"#c4a7e7\"},\"selection\":{\"fg\":\"#e0def4\",\"bg\":\"#524f67\"},\"blockquote\":{\"border\":\"#524f67\",\"fg\":\"#e0def4\",\"bg\":\"#1f1d2e\"},\"codeInline\":{\"fg\":\"#e0def4\",\"bg\":\"#26233a\"},\"codeBlock\":{\"fg\":\"#e0def4\",\"bg\":\"#26233a\"},\"table\":{\"border\":\"#524f67\",\"stripe\":\"#26233a\",\"theadBg\":\"#403d52\"}}}}}');\nconst byVendor = { \"bulma\": { \"name\": \"Bulma\", \"homepage\": \"https://bulma.io/\", \"themes\": [\"bulma-dark\", \"bulma-light\"] }, \"catppuccin\": { \"name\": \"Catppuccin (synced)\", \"homepage\": \"https://catppuccin.com/palette/\", \"themes\": [\"catppuccin-frappe\", \"catppuccin-latte\", \"catppuccin-macchiato\", \"catppuccin-mocha\"] }, \"dracula\": { \"name\": \"Dracula\", \"homepage\": \"https://draculatheme.com/\", \"themes\": [\"dracula\"] }, \"github\": { \"name\": \"GitHub (synced)\", \"homepage\": \"https://primer.style/\", \"themes\": [\"github-dark\", \"github-light\"] }, \"rose-pine\": { \"name\": \"Rosé Pine (synced)\", \"homepage\": \"https://rosepinetheme.com/\", \"themes\": [\"rose-pine-dawn\", \"rose-pine-moon\", \"rose-pine\"] } };\nconst tokensData = {\n themes,\n byVendor\n};\nconst tokens = tokensData;\nconst flavors = Object.values(tokens.themes).map((theme) => ({\n id: theme.id,\n label: theme.label,\n vendor: theme.vendor,\n appearance: theme.appearance,\n ...theme.iconUrl !== void 0 && { iconUrl: theme.iconUrl },\n tokens: theme.tokens\n}));\nconst themesById = /* @__PURE__ */ Object.fromEntries(flavors.map((flavor) => [flavor.id, flavor]));\n/* @__PURE__ */ Object.fromEntries(Object.entries(tokens.byVendor).map(([vendorId, vendor]) => [\n vendorId,\n {\n id: vendorId,\n name: vendor.name,\n homepage: vendor.homepage,\n flavors: vendor.themes.map((themeId) => themesById[themeId]).filter(Boolean)\n }\n]));\n[...new Set(flavors.map((f) => f.vendor))];\nconst VENDOR_FAMILY_MAP = {\n bulma: \"bulma\",\n catppuccin: \"catppuccin\",\n github: \"github\",\n dracula: \"dracula\",\n \"rose-pine\": \"rose-pine\"\n};\nconst DEFAULT_FAMILY = \"bulma\";\nconst VENDOR_ICON_MAP = {\n bulma: \"assets/img/turbo-themes-logo.png\",\n catppuccin: {\n light: \"assets/img/catppuccin-logo-latte.png\",\n dark: \"assets/img/catppuccin-logo-macchiato.png\"\n },\n github: {\n light: \"assets/img/github-logo-light.png\",\n dark: \"assets/img/github-logo-dark.png\"\n },\n dracula: \"assets/img/dracula-logo.png\",\n \"rose-pine\": {\n light: \"assets/img/rose-pine-dawn.png\",\n dark: \"assets/img/rose-pine.png\"\n }\n};\nconst FLAVOR_DESCRIPTIONS = {\n \"bulma-light\": \"Classic Bulma look with a bright, neutral palette.\",\n \"bulma-dark\": \"Dark Bulma theme tuned for low-light reading.\",\n \"catppuccin-latte\": \"Light, soft Catppuccin palette for daytime use.\",\n \"catppuccin-frappe\": \"Balanced dark Catppuccin theme for focused work.\",\n \"catppuccin-macchiato\": \"Deep, atmospheric Catppuccin variant with rich contrast.\",\n \"catppuccin-mocha\": \"Cozy, high-contrast Catppuccin theme for late-night sessions.\",\n dracula: \"Iconic Dracula dark theme with vibrant accents.\",\n \"github-light\": \"GitHub-inspired light theme suited for documentation and UI heavy pages.\",\n \"github-dark\": \"GitHub dark theme optimized for code-heavy views.\",\n \"rose-pine\": \"Elegant dark theme with natural pine and soho vibes.\",\n \"rose-pine-moon\": \"Deeper variant of Rosé Pine with enhanced contrast.\",\n \"rose-pine-dawn\": \"Light Rosé Pine variant for daytime use.\"\n};\nfunction getFamily(vendor) {\n return VENDOR_FAMILY_MAP[vendor] ?? DEFAULT_FAMILY;\n}\nfunction getIconForVendor(vendor, appearance) {\n const iconConfig = VENDOR_ICON_MAP[vendor];\n if (!iconConfig) {\n return void 0;\n }\n if (typeof iconConfig === \"string\") {\n return iconConfig;\n }\n return iconConfig[appearance];\n}\nfunction getDescriptionForFlavor(id, label) {\n return FLAVOR_DESCRIPTIONS[id] ?? `${label} theme`;\n}\nfunction extractPreviewColors(tokens2) {\n return {\n bg: tokens2.background.base,\n surface: tokens2.background.surface,\n accent: tokens2.brand.primary,\n text: tokens2.text.primary\n };\n}\nfunction mapFlavorToUI(flavor) {\n const family = getFamily(flavor.vendor);\n return {\n id: flavor.id,\n name: flavor.label,\n description: getDescriptionForFlavor(flavor.id, flavor.label),\n cssFile: `packages/css/dist/themes/${flavor.id}.css`,\n icon: getIconForVendor(flavor.vendor, flavor.appearance),\n family,\n vendor: flavor.vendor,\n appearance: flavor.appearance,\n colors: extractPreviewColors(flavor.tokens)\n };\n}\nlet mappedThemes = null;\nlet validThemeIds = null;\nfunction getThemes() {\n if (!mappedThemes) {\n mappedThemes = flavors.map(mapFlavorToUI);\n }\n return mappedThemes || [];\n}\nfunction getValidThemeIds() {\n if (!validThemeIds) {\n validThemeIds = new Set(flavors.map((f) => f.id));\n }\n return validThemeIds;\n}\nfunction resolveTheme(themeId) {\n const themes2 = getThemes();\n return themes2.find((t) => t.id === themeId) || themes2.find((t) => t.id === DEFAULT_THEME) || themes2[0];\n}\nasync function applyTheme(doc, themeId) {\n const theme = resolveTheme(themeId);\n if (!theme) {\n logThemeError(ThemeErrors.NO_THEMES_AVAILABLE());\n return;\n }\n const baseUrl = getBaseUrl(doc);\n const trigger = doc.getElementById(DOM_IDS.THEME_FLAVOR_TRIGGER);\n if (trigger) {\n trigger.classList.add(\"is-loading\");\n }\n try {\n applyThemeClass(doc, theme.id);\n await loadThemeCSS(doc, theme, baseUrl);\n const triggerIcon = doc.getElementById(\n DOM_IDS.THEME_FLAVOR_TRIGGER_ICON\n );\n if (triggerIcon && theme.icon) {\n try {\n triggerIcon.src = resolveAssetPath(theme.icon, baseUrl);\n const familyMeta = THEME_FAMILIES[theme.family];\n const familyName = familyMeta?.name ?? theme.family;\n triggerIcon.alt = `${familyName} ${theme.name}`;\n triggerIcon.title = `${familyName} ${theme.name}`;\n } catch {\n logThemeError(ThemeErrors.INVALID_ICON_PATH(theme.id));\n }\n }\n const triggerLabel = doc.getElementById(\n DOM_IDS.THEME_FLAVOR_TRIGGER_LABEL\n );\n if (triggerLabel) {\n triggerLabel.textContent = theme.name;\n }\n doc.querySelectorAll(DOM_SELECTORS.DROPDOWN_ITEMS).forEach((item) => {\n setItemActiveState(item, item.getAttribute(\"data-theme-id\") === theme.id);\n });\n } finally {\n if (trigger) {\n trigger.classList.remove(\"is-loading\");\n }\n }\n}\nfunction getCurrentTheme(doc, defaultTheme) {\n return getCurrentThemeFromClasses(doc.documentElement) || defaultTheme;\n}\nfunction createDropdownStateManager(elements, state) {\n const { trigger, dropdown } = elements;\n const updateAriaExpanded = (expanded) => {\n trigger.setAttribute(\"aria-expanded\", String(expanded));\n };\n const focusMenuItem = (index) => {\n if (index < 0 || index >= state.menuItems.length) return;\n const item = state.menuItems[index];\n setTabindexBatch(state.menuItems, \"-1\");\n item.setAttribute(\"tabindex\", \"0\");\n item.focus();\n state.currentIndex = index;\n };\n const closeDropdown = (options = {}) => {\n const { restoreFocus = true } = options;\n dropdown.classList.remove(\"is-active\");\n updateAriaExpanded(false);\n setTabindexBatch(state.menuItems, \"-1\");\n state.currentIndex = -1;\n if (restoreFocus) {\n trigger.focus();\n }\n };\n const toggleDropdown = (focusFirst = false) => {\n const isActive = dropdown.classList.toggle(\"is-active\");\n updateAriaExpanded(isActive);\n if (!isActive) {\n state.currentIndex = -1;\n setTabindexBatch(state.menuItems, \"-1\");\n for (const menuItem of state.menuItems) {\n const isActiveItem = menuItem.classList.contains(\"is-active\");\n setItemActiveState(menuItem, isActiveItem);\n }\n } else if (focusFirst && state.menuItems.length > 0) {\n focusMenuItem(0);\n }\n };\n return { updateAriaExpanded, focusMenuItem, closeDropdown, toggleDropdown };\n}\nfunction getNextIndex(currentIndex, totalItems) {\n return currentIndex < totalItems - 1 ? currentIndex + 1 : 0;\n}\nfunction getPrevIndex(currentIndex, totalItems) {\n return currentIndex > 0 ? currentIndex - 1 : totalItems - 1;\n}\nfunction handleTriggerKeydown(e, dropdown, state, stateManager) {\n const { focusMenuItem, toggleDropdown, updateAriaExpanded } = stateManager;\n const totalItems = state.menuItems.length;\n switch (e.key) {\n case \"Enter\":\n case \" \":\n e.preventDefault();\n toggleDropdown(!dropdown.classList.contains(\"is-active\"));\n break;\n case \"ArrowDown\":\n e.preventDefault();\n if (!dropdown.classList.contains(\"is-active\")) {\n dropdown.classList.add(\"is-active\");\n updateAriaExpanded(true);\n focusMenuItem(0);\n } else {\n const nextIndex = state.currentIndex < 0 ? 0 : getNextIndex(state.currentIndex, totalItems);\n focusMenuItem(nextIndex);\n }\n break;\n case \"ArrowUp\":\n e.preventDefault();\n if (!dropdown.classList.contains(\"is-active\")) {\n dropdown.classList.add(\"is-active\");\n updateAriaExpanded(true);\n focusMenuItem(totalItems - 1);\n } else {\n const startIndex = state.currentIndex < 0 ? totalItems - 1 : state.currentIndex;\n focusMenuItem(getPrevIndex(startIndex, totalItems));\n }\n break;\n }\n}\nfunction handleMenuItemKeydown(e, index, item, state, stateManager) {\n const { focusMenuItem, closeDropdown } = stateManager;\n const totalItems = state.menuItems.length;\n switch (e.key) {\n case \"ArrowDown\":\n e.preventDefault();\n focusMenuItem(getNextIndex(index, totalItems));\n break;\n case \"ArrowUp\":\n e.preventDefault();\n focusMenuItem(getPrevIndex(index, totalItems));\n break;\n case \"Escape\":\n e.preventDefault();\n closeDropdown();\n break;\n case \"Enter\":\n case \" \":\n e.preventDefault();\n item.click();\n break;\n case \"Home\":\n e.preventDefault();\n focusMenuItem(0);\n break;\n case \"End\":\n e.preventDefault();\n focusMenuItem(totalItems - 1);\n break;\n }\n}\nfunction wireDropdownEventHandlers(documentObj, elements, state, stateManager, abortController) {\n const { trigger, dropdown } = elements;\n const { closeDropdown, toggleDropdown } = stateManager;\n const signal = abortController.signal;\n trigger.addEventListener(\n \"click\",\n (e) => {\n e.preventDefault();\n toggleDropdown();\n },\n { signal }\n );\n documentObj.addEventListener(\n \"click\",\n (e) => {\n if (!dropdown.contains(e.target)) {\n closeDropdown({ restoreFocus: false });\n }\n },\n { signal }\n );\n documentObj.addEventListener(\n \"keydown\",\n (e) => {\n if (e.key === \"Escape\" && dropdown.classList.contains(\"is-active\")) {\n closeDropdown({ restoreFocus: true });\n }\n },\n { signal }\n );\n trigger.addEventListener(\n \"keydown\",\n (e) => handleTriggerKeydown(e, dropdown, state, stateManager),\n { signal }\n );\n for (const [index, item] of state.menuItems.entries()) {\n item.addEventListener(\n \"keydown\",\n (e) => handleMenuItemKeydown(e, index, item, state, stateManager),\n { signal }\n );\n }\n}\nfunction createCheckmarkIcon(doc) {\n const svg = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n svg.setAttribute(\"width\", \"16\");\n svg.setAttribute(\"height\", \"16\");\n svg.setAttribute(\"viewBox\", \"0 0 24 24\");\n svg.setAttribute(\"fill\", \"none\");\n svg.setAttribute(\"stroke\", \"currentColor\");\n svg.setAttribute(\"stroke-width\", \"3\");\n svg.setAttribute(\"stroke-linecap\", \"round\");\n svg.setAttribute(\"stroke-linejoin\", \"round\");\n const polyline = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"polyline\");\n polyline.setAttribute(\"points\", \"20 6 9 17 4 12\");\n svg.appendChild(polyline);\n return svg;\n}\nfunction createThemeItemElement(ctx, theme, familyMeta) {\n const { documentObj, baseUrl, currentThemeId, selectEl, closeDropdown, onThemeSelect } = ctx;\n const item = documentObj.createElement(\"button\");\n item.type = \"button\";\n item.className = \"dropdown-item theme-item\";\n item.setAttribute(\"data-theme-id\", theme.id);\n item.setAttribute(\"data-appearance\", theme.appearance);\n item.setAttribute(\"role\", \"menuitemradio\");\n item.setAttribute(\n \"aria-label\",\n `${familyMeta.name} ${theme.name} (${theme.appearance}). ${theme.description}`\n );\n item.setAttribute(\"tabindex\", \"-1\");\n const isActive = theme.id === currentThemeId;\n setItemActiveState(item, isActive);\n if (theme.icon) {\n const icon = documentObj.createElement(\"img\");\n icon.className = \"theme-icon\";\n icon.src = baseUrl ? `${baseUrl}/${theme.icon}` : theme.icon;\n icon.alt = `${familyMeta.name} ${theme.name}`;\n icon.width = 24;\n icon.height = 24;\n item.appendChild(icon);\n } else {\n const placeholder = documentObj.createElement(\"span\");\n placeholder.className = \"theme-icon theme-icon-placeholder\";\n placeholder.setAttribute(\"aria-hidden\", \"true\");\n item.appendChild(placeholder);\n }\n const copy = documentObj.createElement(\"div\");\n copy.className = \"theme-copy\";\n const titleEl = documentObj.createElement(\"span\");\n titleEl.className = \"theme-title\";\n titleEl.textContent = `${familyMeta.name} · ${theme.name}`;\n copy.appendChild(titleEl);\n const descriptionEl = documentObj.createElement(\"span\");\n descriptionEl.className = \"theme-description\";\n descriptionEl.textContent = theme.description;\n copy.appendChild(descriptionEl);\n item.appendChild(copy);\n const check = documentObj.createElement(\"span\");\n check.className = \"theme-check\";\n check.appendChild(createCheckmarkIcon(documentObj));\n item.appendChild(check);\n item.addEventListener(\"click\", (e) => {\n e.preventDefault();\n onThemeSelect(theme.id);\n if (selectEl) {\n selectEl.value = theme.id;\n selectEl.dispatchEvent(new Event(\"change\", { bubbles: true }));\n }\n closeDropdown({ restoreFocus: true });\n });\n return item;\n}\nfunction createFamilyGroup(ctx, familyKey, themes2, familyMeta, animationDelay) {\n const { documentObj } = ctx;\n if (themes2.length === 0) return null;\n const items = [];\n const group = documentObj.createElement(\"div\");\n group.className = \"theme-family-group\";\n group.setAttribute(\"role\", \"group\");\n group.setAttribute(\"aria-labelledby\", `theme-family-${familyKey}`);\n if (group.style && typeof group.style.setProperty === \"function\") {\n group.style.setProperty(\"--animation-delay\", `${animationDelay}ms`);\n }\n const header = documentObj.createElement(\"div\");\n header.className = \"theme-family-header\";\n header.id = `theme-family-${familyKey}`;\n const headerTitle = documentObj.createElement(\"span\");\n headerTitle.className = \"theme-family-name\";\n headerTitle.textContent = familyMeta.name;\n header.appendChild(headerTitle);\n group.appendChild(header);\n const themesContainer = documentObj.createElement(\"div\");\n themesContainer.className = \"theme-family-items\";\n themes2.forEach((theme) => {\n const item = createThemeItemElement(ctx, theme, familyMeta);\n items.push(item);\n themesContainer.appendChild(item);\n });\n group.appendChild(themesContainer);\n return { group, items };\n}\nfunction populateDropdownMenu(ctx, dropdownMenu, themes2, themeFamilies) {\n const families = Object.keys(themeFamilies);\n let animationDelay = 0;\n families.forEach((familyKey) => {\n const familyThemes = themes2.filter((t) => t.family === familyKey);\n const familyMeta = themeFamilies[familyKey];\n if (!familyMeta) return;\n const result = createFamilyGroup(ctx, familyKey, familyThemes, familyMeta, animationDelay);\n if (result) {\n ctx.menuItems.push(...result.items);\n dropdownMenu.appendChild(result.group);\n animationDelay += 30;\n }\n });\n}\nfunction wireNativeSelect(ctx, selectEl, themes2, defaultTheme) {\n const { documentObj, onThemeSelect } = ctx;\n while (selectEl.firstChild) {\n selectEl.removeChild(selectEl.firstChild);\n }\n themes2.forEach((theme) => {\n const option = documentObj.createElement(\"option\");\n option.value = theme.id;\n option.textContent = theme.name;\n option.selected = theme.id === ctx.currentThemeId;\n selectEl.appendChild(option);\n });\n selectEl.disabled = false;\n selectEl.addEventListener(\"change\", (event) => {\n const target = event.target;\n const selectedThemeId = target?.value || defaultTheme;\n onThemeSelect(selectedThemeId);\n });\n}\nfunction getDropdownElements(documentObj) {\n const dropdownMenu = documentObj.getElementById(DOM_IDS.THEME_FLAVOR_MENU);\n const trigger = documentObj.getElementById(\n DOM_IDS.THEME_FLAVOR_TRIGGER\n );\n const dropdown = trigger?.closest(DOM_SELECTORS.NAVBAR_DROPDOWN);\n const selectEl = documentObj.getElementById(\n DOM_IDS.THEME_FLAVOR_SELECT\n );\n if (!dropdownMenu || !trigger || !dropdown) {\n return null;\n }\n return { dropdownMenu, trigger, dropdown, selectEl };\n}\nfunction normalizePath(path) {\n return path.replace(/\\/$/, \"\") || \"/\";\n}\nfunction initNavbar(documentObj) {\n const currentPath = documentObj.location.pathname;\n const normalizedCurrentPath = normalizePath(currentPath);\n const navbarItems = documentObj.querySelectorAll(DOM_SELECTORS.NAVBAR_ITEM);\n let matchingItem = null;\n const itemsToDeactivate = [];\n navbarItems.forEach((item) => {\n const link = item;\n if (!link.href) return;\n try {\n const normalizedLinkPath = normalizePath(new URL(link.href).pathname);\n if (normalizedCurrentPath === normalizedLinkPath) {\n matchingItem = item;\n } else {\n itemsToDeactivate.push(item);\n }\n } catch {\n }\n });\n for (const item of itemsToDeactivate) {\n item.classList.remove(\"is-active\");\n item.removeAttribute(\"aria-current\");\n }\n if (matchingItem) {\n matchingItem.classList.add(\"is-active\");\n matchingItem.setAttribute(\"aria-current\", \"page\");\n }\n const reportsLink = documentObj.querySelector(DOM_SELECTORS.NAV_REPORTS);\n if (reportsLink) {\n const reportPaths = [\n \"/coverage\",\n \"/coverage-python\",\n \"/coverage-swift\",\n \"/coverage-ruby\",\n \"/playwright\",\n \"/playwright-examples\",\n \"/lighthouse\"\n ];\n const isOnReportsPage = reportPaths.some(\n (path) => normalizedCurrentPath === path || normalizedCurrentPath.startsWith(path + \"/\")\n );\n if (isOnReportsPage) {\n reportsLink.classList.add(\"is-active\");\n } else {\n reportsLink.classList.remove(\"is-active\");\n }\n }\n}\nif (typeof window !== \"undefined\") {\n window.initNavbar = initNavbar;\n}\nfunction enhanceAccessibility(documentObj) {\n documentObj.querySelectorAll(DOM_SELECTORS.HIGHLIGHT_PRE).forEach((pre) => {\n if (!pre.hasAttribute(\"tabindex\")) pre.setAttribute(\"tabindex\", \"0\");\n if (!pre.hasAttribute(\"role\")) pre.setAttribute(\"role\", \"region\");\n if (!pre.hasAttribute(\"aria-label\")) pre.setAttribute(\"aria-label\", \"Code block\");\n });\n}\nasync function initTheme(documentObj, windowObj) {\n migrateLegacyStorage(windowObj);\n const initialTheme = windowObj.__INITIAL_THEME__;\n const savedTheme = getSavedTheme(windowObj, getValidThemeIds());\n if (initialTheme && initialTheme === savedTheme) {\n const currentTheme = getCurrentThemeFromClasses(documentObj.documentElement);\n if (currentTheme === savedTheme) {\n const themeLinkId = `theme-${savedTheme}-css`;\n const themeLink = documentObj.getElementById(themeLinkId);\n if (!themeLink) {\n await applyTheme(documentObj, savedTheme);\n }\n return;\n }\n }\n await applyTheme(documentObj, savedTheme);\n}\nasync function wireFlavorSelector(documentObj, windowObj) {\n const abortController = new AbortController();\n const elements = getDropdownElements(documentObj);\n if (!elements) {\n return { cleanup: () => abortController.abort() };\n }\n const { dropdownMenu, selectEl } = elements;\n const baseUrl = getBaseUrl(documentObj);\n const themes2 = getThemes();\n const state = {\n currentIndex: -1,\n menuItems: []\n };\n const currentThemeId = getSavedTheme(windowObj, getValidThemeIds()) || getCurrentTheme(documentObj, DEFAULT_THEME);\n const stateManager = createDropdownStateManager(elements, state);\n const ctx = {\n documentObj,\n baseUrl,\n currentThemeId,\n selectEl,\n menuItems: state.menuItems,\n closeDropdown: stateManager.closeDropdown,\n onThemeSelect: async (themeId) => {\n saveTheme(windowObj, themeId, getValidThemeIds());\n await applyTheme(documentObj, themeId);\n }\n };\n if (selectEl) {\n wireNativeSelect(ctx, selectEl, themes2, DEFAULT_THEME);\n }\n populateDropdownMenu(ctx, dropdownMenu, themes2, THEME_FAMILIES);\n wireDropdownEventHandlers(documentObj, elements, state, stateManager, abortController);\n stateManager.updateAriaExpanded(false);\n elements.dropdown.classList.remove(\"is-active\");\n return { cleanup: () => abortController.abort() };\n}\nif (typeof document !== \"undefined\" && typeof window !== \"undefined\") {\n document.addEventListener(\"DOMContentLoaded\", async () => {\n try {\n await initTheme(document, window);\n const { cleanup } = await wireFlavorSelector(document, window);\n enhanceAccessibility(document);\n const pagehideHandler = () => {\n cleanup();\n window.removeEventListener(\"pagehide\", pagehideHandler);\n };\n window.addEventListener(\"pagehide\", pagehideHandler);\n } catch (error) {\n logThemeError(ThemeErrors.INIT_FAILED(error));\n }\n });\n}\nexport {\n enhanceAccessibility,\n initNavbar,\n initTheme,\n wireFlavorSelector\n};\n//# sourceMappingURL=index.js.map\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"theme-selector.js","sources":["../../packages/theme-selector/dist/index.js"],"sourcesContent":["const STORAGE_KEY = \"turbo-theme\";\nconst LEGACY_STORAGE_KEYS = [\"bulma-theme-flavor\"];\nconst DEFAULT_THEME = \"catppuccin-mocha\";\nconst DOM_IDS = {\n THEME_FLAVOR_TRIGGER: \"theme-flavor-trigger\",\n THEME_FLAVOR_TRIGGER_ICON: \"theme-flavor-trigger-icon\",\n THEME_FLAVOR_TRIGGER_LABEL: \"theme-flavor-trigger-label\",\n THEME_FLAVOR_MENU: \"theme-flavor-menu\",\n THEME_FLAVOR_SELECT: \"theme-flavor-select\"\n};\nconst DOM_SELECTORS = {\n DROPDOWN_ITEMS: `#${DOM_IDS.THEME_FLAVOR_MENU} .dropdown-item.theme-item`,\n NAVBAR_DROPDOWN: \".navbar-item.has-dropdown\",\n NAV_REPORTS: '[data-testid=\"nav-reports\"]',\n NAVBAR_ITEM: \".navbar-item\",\n HIGHLIGHT_PRE: \".highlight > pre\",\n THEME_CSS_LINKS: 'link[id^=\"theme-\"][id$=\"-css\"]'\n};\nconst THEME_FAMILIES = {\n bulma: { name: \"Bulma\", description: \"Classic Bulma themes\" },\n catppuccin: { name: \"Catppuccin\", description: \"Soothing pastel themes\" },\n github: { name: \"GitHub\", description: \"GitHub-inspired themes\" },\n dracula: { name: \"Dracula\", description: \"Dark vampire aesthetic\" },\n nord: { name: \"Nord\", description: \"Arctic, north-bluish color palette\" },\n \"rose-pine\": { name: \"Rosé Pine\", description: \"All natural pine, faux fur and a bit of soho vibes\" },\n solarized: { name: \"Solarized\", description: \"Precision-balanced light and dark modes\" }\n};\nconst LOG_PREFIX = \"[turbo-themes]\";\nconst ThemeErrors = {\n /** Invalid theme ID provided */\n INVALID_THEME_ID: (themeId) => ({\n code: \"INVALID_THEME_ID\",\n message: `Invalid theme ID \"${themeId}\" not saved to storage`,\n level: \"warn\",\n context: { themeId }\n }),\n /** No themes available in registry */\n NO_THEMES_AVAILABLE: () => ({\n code: \"NO_THEMES_AVAILABLE\",\n message: \"No themes available\",\n level: \"error\"\n /* ERROR */\n }),\n /** Invalid theme icon path */\n INVALID_ICON_PATH: (themeId) => ({\n code: \"INVALID_ICON_PATH\",\n message: `Invalid theme icon path for ${themeId}`,\n level: \"warn\",\n context: { themeId }\n }),\n /** Theme initialization failed */\n INIT_FAILED: (error) => ({\n code: \"INIT_FAILED\",\n message: \"Theme switcher initialization failed\",\n level: \"error\",\n context: { error: error instanceof Error ? error.message : String(error) }\n }),\n /** Protocol-relative URL rejected for security */\n PROTOCOL_REJECTED: () => ({\n code: \"PROTOCOL_REJECTED\",\n message: \"Protocol-relative base URL rejected for security\",\n level: \"warn\"\n /* WARN */\n }),\n /** Insecure HTTP URL rejected */\n INSECURE_HTTP_REJECTED: () => ({\n code: \"INSECURE_HTTP_REJECTED\",\n message: \"Insecure HTTP base URL rejected\",\n level: \"warn\"\n /* WARN */\n }),\n /** Cross-origin URL rejected */\n CROSS_ORIGIN_REJECTED: (origin) => ({\n code: \"CROSS_ORIGIN_REJECTED\",\n message: `Cross-origin base URL rejected: ${origin}`,\n level: \"warn\",\n context: { origin }\n }),\n /** Invalid CSS path for theme */\n INVALID_CSS_PATH: (themeId) => ({\n code: \"INVALID_CSS_PATH\",\n message: `Invalid theme CSS path for ${themeId}`,\n level: \"warn\",\n context: { themeId }\n }),\n /** CSS failed to load */\n CSS_LOAD_FAILED: (themeId, error) => ({\n code: \"CSS_LOAD_FAILED\",\n message: `Theme CSS failed to load for ${themeId}`,\n level: \"warn\",\n context: {\n themeId,\n error: error instanceof Error ? error.message : String(error)\n }\n }),\n /** Storage unavailable (private browsing or disabled) */\n STORAGE_UNAVAILABLE: (operation, error) => ({\n code: \"STORAGE_UNAVAILABLE\",\n message: `localStorage ${operation} failed - storage may be unavailable`,\n level: \"warn\",\n context: {\n operation,\n error: error instanceof Error ? error.message : String(error)\n }\n })\n};\nfunction logThemeError(themeError) {\n const prefixedMessage = `${LOG_PREFIX} ${themeError.message}`;\n if (themeError.level === \"error\") {\n if (themeError.context) {\n console.error(prefixedMessage, themeError.context);\n } else {\n console.error(prefixedMessage);\n }\n } else {\n if (themeError.context) {\n console.warn(prefixedMessage, themeError.context);\n } else {\n console.warn(prefixedMessage);\n }\n }\n}\nfunction safeGetItem(windowObj, key) {\n try {\n return windowObj.localStorage.getItem(key);\n } catch (error) {\n logThemeError(ThemeErrors.STORAGE_UNAVAILABLE(\"getItem\", error));\n return null;\n }\n}\nfunction safeSetItem(windowObj, key, value) {\n try {\n windowObj.localStorage.setItem(key, value);\n return true;\n } catch (error) {\n logThemeError(ThemeErrors.STORAGE_UNAVAILABLE(\"setItem\", error));\n return false;\n }\n}\nfunction safeRemoveItem(windowObj, key) {\n try {\n windowObj.localStorage.removeItem(key);\n } catch (error) {\n logThemeError(ThemeErrors.STORAGE_UNAVAILABLE(\"removeItem\", error));\n }\n}\nfunction validateThemeId(themeId, validIds) {\n if (themeId && validIds.has(themeId)) {\n return themeId;\n }\n return DEFAULT_THEME;\n}\nfunction migrateLegacyStorage(windowObj) {\n for (const legacyKey of LEGACY_STORAGE_KEYS) {\n const legacy = safeGetItem(windowObj, legacyKey);\n if (legacy && !safeGetItem(windowObj, STORAGE_KEY)) {\n safeSetItem(windowObj, STORAGE_KEY, legacy);\n safeRemoveItem(windowObj, legacyKey);\n }\n }\n}\nfunction getSavedTheme(windowObj, validIds) {\n const stored = safeGetItem(windowObj, STORAGE_KEY);\n if (validIds) {\n return validateThemeId(stored, validIds);\n }\n return stored || DEFAULT_THEME;\n}\nfunction saveTheme(windowObj, themeId, validIds) {\n if (validIds && !validIds.has(themeId)) {\n logThemeError(ThemeErrors.INVALID_THEME_ID(themeId));\n return false;\n }\n return safeSetItem(windowObj, STORAGE_KEY, themeId);\n}\nfunction resolveAssetPath(assetPath, baseUrl) {\n const normalizedBase = baseUrl.replace(/\\/$/, \"\");\n const base = normalizedBase ? `${window.location.origin}${normalizedBase}/` : `${window.location.origin}/`;\n return new URL(assetPath, base).pathname;\n}\nfunction getBaseUrl(doc) {\n const baseElement = doc.documentElement;\n const raw = baseElement?.getAttribute(\"data-baseurl\") || \"\";\n if (!raw) return \"\";\n if (raw.startsWith(\"//\")) {\n logThemeError(ThemeErrors.PROTOCOL_REJECTED());\n return \"\";\n }\n if (raw.startsWith(\"http://\") && !raw.startsWith(\"http://localhost\")) {\n logThemeError(ThemeErrors.INSECURE_HTTP_REJECTED());\n return \"\";\n }\n try {\n const currentOrigin = typeof window !== \"undefined\" ? window.location.origin : \"http://localhost\";\n const u = new URL(raw, currentOrigin);\n if (u.origin !== currentOrigin) {\n logThemeError(ThemeErrors.CROSS_ORIGIN_REJECTED(u.origin));\n return \"\";\n }\n return u.pathname.replace(/\\/$/, \"\");\n } catch {\n return \"\";\n }\n}\nfunction clearLinkHandlers(link) {\n link.onload = null;\n link.onerror = null;\n}\nfunction loadCSSWithTimeout(link, themeId, timeoutMs = 1e4) {\n return new Promise((resolve, reject) => {\n const timeoutId = setTimeout(() => {\n clearLinkHandlers(link);\n reject(new Error(`Theme ${themeId} load timeout`));\n }, timeoutMs);\n link.onload = () => {\n clearTimeout(timeoutId);\n clearLinkHandlers(link);\n resolve();\n };\n link.onerror = () => {\n clearTimeout(timeoutId);\n clearLinkHandlers(link);\n reject(new Error(`Failed to load theme ${themeId}`));\n };\n });\n}\nfunction getCurrentThemeFromClasses(element) {\n const classList = Array.from(element.classList);\n for (const className of classList) {\n if (className.startsWith(\"theme-\")) {\n return className.substring(6);\n }\n }\n return null;\n}\nfunction applyThemeClass(doc, themeId) {\n const themeClasses = Array.from(doc.documentElement.classList).filter(\n (className) => className.startsWith(\"theme-\")\n );\n if (themeClasses.length > 0) {\n doc.documentElement.classList.remove(...themeClasses);\n }\n doc.documentElement.classList.add(`theme-${themeId}`);\n}\nasync function loadThemeCSS(doc, theme, baseUrl) {\n const themeLinkId = `theme-${theme.id}-css`;\n let themeLink = doc.getElementById(themeLinkId);\n if (!themeLink) {\n themeLink = doc.createElement(\"link\");\n themeLink.id = themeLinkId;\n themeLink.rel = \"stylesheet\";\n themeLink.type = \"text/css\";\n themeLink.setAttribute(\"data-theme-id\", theme.id);\n try {\n themeLink.href = resolveAssetPath(theme.cssFile, baseUrl);\n } catch {\n logThemeError(ThemeErrors.INVALID_CSS_PATH(theme.id));\n return;\n }\n doc.head.appendChild(themeLink);\n try {\n await loadCSSWithTimeout(themeLink, theme.id);\n } catch (error) {\n logThemeError(ThemeErrors.CSS_LOAD_FAILED(theme.id, error));\n }\n }\n doc.querySelectorAll(DOM_SELECTORS.THEME_CSS_LINKS).forEach((link) => {\n const linkThemeId = link.id.replace(\"theme-\", \"\").replace(\"-css\", \"\");\n if (linkThemeId !== theme.id && linkThemeId !== \"base\") {\n link.remove();\n }\n });\n}\nfunction setItemActiveState(item, isActive) {\n if (isActive) {\n item.classList.add(\"is-active\");\n } else {\n item.classList.remove(\"is-active\");\n }\n item.setAttribute(\"aria-checked\", String(isActive));\n}\nfunction setTabindexBatch(items, value) {\n for (const item of items) {\n item.setAttribute(\"tabindex\", value);\n }\n}\nconst themes = /* @__PURE__ */ JSON.parse('{\"bulma-dark\":{\"id\":\"bulma-dark\",\"label\":\"Bulma Dark\",\"vendor\":\"bulma\",\"appearance\":\"dark\",\"tokens\":{\"background\":{\"base\":\"#141414\",\"surface\":\"#1f1f1f\",\"overlay\":\"#2b2b2b\"},\"text\":{\"primary\":\"#f5f5f5\",\"secondary\":\"#dbdbdb\",\"inverse\":\"#141414\"},\"brand\":{\"primary\":\"#00d1b2\"},\"state\":{\"info\":\"#3e8ed0\",\"success\":\"#48c78e\",\"warning\":\"#ffe08a\",\"danger\":\"#f14668\"},\"border\":{\"default\":\"#363636\"},\"accent\":{\"link\":\"#485fc7\"},\"typography\":{\"fonts\":{\"sans\":\"\\\\\"Nunito Sans\\\\\", BlinkMacSystemFont, -apple-system, \\\\\"Segoe UI\\\\\", Roboto, Oxygen, Ubuntu, Cantarell, \\\\\"Fira Sans\\\\\", \\\\\"Droid Sans\\\\\", \\\\\"Helvetica Neue\\\\\", Helvetica, Arial, sans-serif\",\"mono\":\"\\\\\"JetBrains Mono\\\\\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\\\\"Liberation Mono\\\\\", \\\\\"Courier New\\\\\", monospace\"},\"webFonts\":[\"https://fonts.googleapis.com/css2?family=Nunito+Sans:ital,opsz,wght@0,6..12,400;0,6..12,600;0,6..12,700;1,6..12,400&display=swap\",\"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600&display=swap\"]},\"content\":{\"heading\":{\"h1\":\"#00d1b2\",\"h2\":\"#7289da\",\"h3\":\"#5dade2\",\"h4\":\"#58d68d\",\"h5\":\"#f7dc6f\",\"h6\":\"#f1948a\"},\"body\":{\"primary\":\"#dbdbdb\",\"secondary\":\"#b5b5b5\"},\"link\":{\"default\":\"#485fc7\"},\"selection\":{\"fg\":\"#f5f5f5\",\"bg\":\"#3273dc\"},\"blockquote\":{\"border\":\"#363636\",\"fg\":\"#dbdbdb\",\"bg\":\"#1f1f1f\"},\"codeInline\":{\"fg\":\"#f14668\",\"bg\":\"#2b2b2b\"},\"codeBlock\":{\"fg\":\"#f5f5f5\",\"bg\":\"#2b2b2b\"},\"table\":{\"border\":\"#404040\",\"stripe\":\"#1c1c1c\",\"theadBg\":\"#2d2d2d\",\"cellBg\":\"#1a1a1a\",\"headerFg\":\"#f5f5f5\"}},\"spacing\":{\"xs\":\"0.25rem\",\"sm\":\"0.5rem\",\"md\":\"1rem\",\"lg\":\"1.5rem\",\"xl\":\"2rem\"},\"elevation\":{\"none\":\"none\",\"sm\":\"0 1px 2px 0 rgba(0, 0, 0, 0.05)\",\"md\":\"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)\",\"lg\":\"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)\",\"xl\":\"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)\"},\"animation\":{\"durationFast\":\"150ms\",\"durationNormal\":\"300ms\",\"durationSlow\":\"500ms\",\"easingDefault\":\"cubic-bezier(0.4, 0, 0.2, 1)\",\"easingEmphasized\":\"cubic-bezier(0.05, 0.7, 0.1, 1)\"},\"opacity\":{\"disabled\":0.5,\"hover\":0.8,\"pressed\":0.6},\"components\":{\"card\":{\"bg\":\"#1c1c1c\",\"border\":\"#3a3a3a\",\"headerBg\":\"#252525\",\"footerBg\":\"#1f1f1f\"},\"message\":{\"bg\":\"#1f1f1f\",\"headerBg\":\"#2a2a2a\",\"border\":\"#404040\",\"bodyFg\":\"#e0e0e0\"},\"panel\":{\"bg\":\"#1c1c1c\",\"headerBg\":\"#2a2a2a\",\"headerFg\":\"#f5f5f5\",\"border\":\"#3a3a3a\",\"blockBg\":\"#1f1f1f\",\"blockHoverBg\":\"#262626\",\"blockActiveBg\":\"#2d3748\"},\"box\":{\"bg\":\"#1c1c1c\",\"border\":\"#3a3a3a\"},\"notification\":{\"bg\":\"#252525\",\"border\":\"#404040\"},\"modal\":{\"bg\":\"rgba(0, 0, 0, 0.86)\",\"cardBg\":\"#1c1c1c\",\"headerBg\":\"#252525\",\"footerBg\":\"#1f1f1f\"},\"dropdown\":{\"bg\":\"#1c1c1c\",\"itemHoverBg\":\"#2a2a2a\",\"border\":\"#404040\"},\"tabs\":{\"border\":\"#404040\",\"linkBg\":\"#252525\",\"linkActiveBg\":\"#1c1c1c\",\"linkHoverBg\":\"#2a2a2a\"}}}},\"bulma-light\":{\"id\":\"bulma-light\",\"label\":\"Bulma Light\",\"vendor\":\"bulma\",\"appearance\":\"light\",\"tokens\":{\"background\":{\"base\":\"#ffffff\",\"surface\":\"#f5f5f5\",\"overlay\":\"#eeeeee\"},\"text\":{\"primary\":\"#363636\",\"secondary\":\"#4a4a4a\",\"inverse\":\"#ffffff\"},\"brand\":{\"primary\":\"#00d1b2\"},\"state\":{\"info\":\"#3e8ed0\",\"success\":\"#48c78e\",\"warning\":\"#ffe08a\",\"danger\":\"#f14668\"},\"border\":{\"default\":\"#dbdbdb\"},\"accent\":{\"link\":\"#485fc7\"},\"typography\":{\"fonts\":{\"sans\":\"\\\\\"Nunito Sans\\\\\", BlinkMacSystemFont, -apple-system, \\\\\"Segoe UI\\\\\", Roboto, Oxygen, Ubuntu, Cantarell, \\\\\"Fira Sans\\\\\", \\\\\"Droid Sans\\\\\", \\\\\"Helvetica Neue\\\\\", Helvetica, Arial, sans-serif\",\"mono\":\"\\\\\"JetBrains Mono\\\\\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\\\\"Liberation Mono\\\\\", \\\\\"Courier New\\\\\", monospace\"},\"webFonts\":[\"https://fonts.googleapis.com/css2?family=Nunito+Sans:ital,opsz,wght@0,6..12,400;0,6..12,600;0,6..12,700;1,6..12,400&display=swap\",\"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600&display=swap\"]},\"content\":{\"heading\":{\"h1\":\"#00d1b2\",\"h2\":\"#485fc7\",\"h3\":\"#3e8ed0\",\"h4\":\"#48c78e\",\"h5\":\"#ffe08a\",\"h6\":\"#f14668\"},\"body\":{\"primary\":\"#4a4a4a\",\"secondary\":\"#6b6b6b\"},\"link\":{\"default\":\"#485fc7\"},\"selection\":{\"fg\":\"#363636\",\"bg\":\"#b5d5ff\"},\"blockquote\":{\"border\":\"#dbdbdb\",\"fg\":\"#4a4a4a\",\"bg\":\"#f5f5f5\"},\"codeInline\":{\"fg\":\"#f14668\",\"bg\":\"#f5f5f5\"},\"codeBlock\":{\"fg\":\"#363636\",\"bg\":\"#f5f5f5\"},\"table\":{\"border\":\"#dbdbdb\",\"stripe\":\"#fafafa\",\"theadBg\":\"#f0f0f0\",\"cellBg\":\"#ffffff\",\"headerFg\":\"#363636\"}},\"spacing\":{\"xs\":\"0.25rem\",\"sm\":\"0.5rem\",\"md\":\"1rem\",\"lg\":\"1.5rem\",\"xl\":\"2rem\"},\"elevation\":{\"none\":\"none\",\"sm\":\"0 1px 2px 0 rgba(0, 0, 0, 0.05)\",\"md\":\"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)\",\"lg\":\"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)\",\"xl\":\"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)\"},\"animation\":{\"durationFast\":\"150ms\",\"durationNormal\":\"300ms\",\"durationSlow\":\"500ms\",\"easingDefault\":\"cubic-bezier(0.4, 0, 0.2, 1)\",\"easingEmphasized\":\"cubic-bezier(0.05, 0.7, 0.1, 1)\"},\"opacity\":{\"disabled\":0.5,\"hover\":0.8,\"pressed\":0.6},\"components\":{\"card\":{\"bg\":\"#ffffff\",\"border\":\"#d5d5d5\",\"headerBg\":\"#f5f5f5\",\"footerBg\":\"#fafafa\"},\"message\":{\"bg\":\"#f8f9fa\",\"headerBg\":\"#eef1f4\",\"border\":\"#d5dbe1\",\"bodyFg\":\"#4a4a4a\"},\"panel\":{\"bg\":\"#ffffff\",\"headerBg\":\"#f0f0f0\",\"headerFg\":\"#363636\",\"border\":\"#d5d5d5\",\"blockBg\":\"#fafafa\",\"blockHoverBg\":\"#f5f5f5\",\"blockActiveBg\":\"#eef6fc\"},\"box\":{\"bg\":\"#ffffff\",\"border\":\"#e0e0e0\"},\"notification\":{\"bg\":\"#f5f5f5\",\"border\":\"#e0e0e0\"},\"modal\":{\"bg\":\"rgba(10, 10, 10, 0.86)\",\"cardBg\":\"#ffffff\",\"headerBg\":\"#f5f5f5\",\"footerBg\":\"#fafafa\"},\"dropdown\":{\"bg\":\"#ffffff\",\"itemHoverBg\":\"#f5f5f5\",\"border\":\"#dbdbdb\"},\"tabs\":{\"border\":\"#dbdbdb\",\"linkBg\":\"#f5f5f5\",\"linkActiveBg\":\"#ffffff\",\"linkHoverBg\":\"#eeeeee\"}}}},\"catppuccin-frappe\":{\"id\":\"catppuccin-frappe\",\"label\":\"Catppuccin Frappé\",\"vendor\":\"catppuccin\",\"appearance\":\"dark\",\"tokens\":{\"background\":{\"base\":\"#303446\",\"surface\":\"#292c3c\",\"overlay\":\"#232634\"},\"text\":{\"primary\":\"#c6d0f5\",\"secondary\":\"#a5adce\",\"inverse\":\"#303446\"},\"brand\":{\"primary\":\"#8caaee\"},\"state\":{\"info\":\"#99d1db\",\"success\":\"#a6d189\",\"warning\":\"#e5c890\",\"danger\":\"#e78284\"},\"border\":{\"default\":\"#737994\"},\"accent\":{\"link\":\"#8caaee\"},\"typography\":{\"fonts\":{\"sans\":\"Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, \\\\\"Apple Color Emoji\\\\\", \\\\\"Segoe UI Emoji\\\\\"\",\"mono\":\"JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\\\\"Liberation Mono\\\\\", \\\\\"Courier New\\\\\", monospace\"},\"webFonts\":[\"https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap\",\"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&display=swap\"]},\"content\":{\"heading\":{\"h1\":\"#a6d189\",\"h2\":\"#8caaee\",\"h3\":\"#85c1dc\",\"h4\":\"#e5c890\",\"h5\":\"#ca9ee6\",\"h6\":\"#e78284\"},\"body\":{\"primary\":\"#c6d0f5\",\"secondary\":\"#a5adce\"},\"link\":{\"default\":\"#8caaee\"},\"selection\":{\"fg\":\"#c6d0f5\",\"bg\":\"#838ba7\"},\"blockquote\":{\"border\":\"#838ba7\",\"fg\":\"#c6d0f5\",\"bg\":\"#292c3c\"},\"codeInline\":{\"fg\":\"#c6d0f5\",\"bg\":\"#414559\"},\"codeBlock\":{\"fg\":\"#c6d0f5\",\"bg\":\"#414559\"},\"table\":{\"border\":\"#838ba7\",\"stripe\":\"#414559\",\"theadBg\":\"#51576d\"}}}},\"catppuccin-latte\":{\"id\":\"catppuccin-latte\",\"label\":\"Catppuccin Latte\",\"vendor\":\"catppuccin\",\"appearance\":\"light\",\"tokens\":{\"background\":{\"base\":\"#eff1f5\",\"surface\":\"#e6e9ef\",\"overlay\":\"#dce0e8\"},\"text\":{\"primary\":\"#4c4f69\",\"secondary\":\"#6c6f85\",\"inverse\":\"#eff1f5\"},\"brand\":{\"primary\":\"#1e66f5\"},\"state\":{\"info\":\"#04a5e5\",\"success\":\"#40a02b\",\"warning\":\"#df8e1d\",\"danger\":\"#d20f39\"},\"border\":{\"default\":\"#9ca0b0\"},\"accent\":{\"link\":\"#1e66f5\"},\"typography\":{\"fonts\":{\"sans\":\"Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, \\\\\"Apple Color Emoji\\\\\", \\\\\"Segoe UI Emoji\\\\\"\",\"mono\":\"JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\\\\"Liberation Mono\\\\\", \\\\\"Courier New\\\\\", monospace\"},\"webFonts\":[\"https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap\",\"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&display=swap\"]},\"content\":{\"heading\":{\"h1\":\"#40a02b\",\"h2\":\"#1e66f5\",\"h3\":\"#209fb5\",\"h4\":\"#df8e1d\",\"h5\":\"#8839ef\",\"h6\":\"#d20f39\"},\"body\":{\"primary\":\"#4c4f69\",\"secondary\":\"#6c6f85\"},\"link\":{\"default\":\"#1e66f5\"},\"selection\":{\"fg\":\"#4c4f69\",\"bg\":\"#8c8fa1\"},\"blockquote\":{\"border\":\"#8c8fa1\",\"fg\":\"#4c4f69\",\"bg\":\"#e6e9ef\"},\"codeInline\":{\"fg\":\"#4c4f69\",\"bg\":\"#ccd0da\"},\"codeBlock\":{\"fg\":\"#4c4f69\",\"bg\":\"#ccd0da\"},\"table\":{\"border\":\"#8c8fa1\",\"stripe\":\"#ccd0da\",\"theadBg\":\"#bcc0cc\"}}}},\"catppuccin-macchiato\":{\"id\":\"catppuccin-macchiato\",\"label\":\"Catppuccin Macchiato\",\"vendor\":\"catppuccin\",\"appearance\":\"dark\",\"tokens\":{\"background\":{\"base\":\"#24273a\",\"surface\":\"#1e2030\",\"overlay\":\"#181926\"},\"text\":{\"primary\":\"#cad3f5\",\"secondary\":\"#a5adcb\",\"inverse\":\"#24273a\"},\"brand\":{\"primary\":\"#8aadf4\"},\"state\":{\"info\":\"#91d7e3\",\"success\":\"#a6da95\",\"warning\":\"#eed49f\",\"danger\":\"#ed8796\"},\"border\":{\"default\":\"#6e738d\"},\"accent\":{\"link\":\"#8aadf4\"},\"typography\":{\"fonts\":{\"sans\":\"Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, \\\\\"Apple Color Emoji\\\\\", \\\\\"Segoe UI Emoji\\\\\"\",\"mono\":\"JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\\\\"Liberation Mono\\\\\", \\\\\"Courier New\\\\\", monospace\"},\"webFonts\":[\"https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap\",\"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&display=swap\"]},\"content\":{\"heading\":{\"h1\":\"#a6da95\",\"h2\":\"#8aadf4\",\"h3\":\"#7dc4e4\",\"h4\":\"#eed49f\",\"h5\":\"#c6a0f6\",\"h6\":\"#ed8796\"},\"body\":{\"primary\":\"#cad3f5\",\"secondary\":\"#a5adcb\"},\"link\":{\"default\":\"#8aadf4\"},\"selection\":{\"fg\":\"#cad3f5\",\"bg\":\"#8087a2\"},\"blockquote\":{\"border\":\"#8087a2\",\"fg\":\"#cad3f5\",\"bg\":\"#1e2030\"},\"codeInline\":{\"fg\":\"#cad3f5\",\"bg\":\"#363a4f\"},\"codeBlock\":{\"fg\":\"#cad3f5\",\"bg\":\"#363a4f\"},\"table\":{\"border\":\"#8087a2\",\"stripe\":\"#363a4f\",\"theadBg\":\"#494d64\"}}}},\"catppuccin-mocha\":{\"id\":\"catppuccin-mocha\",\"label\":\"Catppuccin Mocha\",\"vendor\":\"catppuccin\",\"appearance\":\"dark\",\"tokens\":{\"background\":{\"base\":\"#1e1e2e\",\"surface\":\"#181825\",\"overlay\":\"#11111b\"},\"text\":{\"primary\":\"#cdd6f4\",\"secondary\":\"#a6adc8\",\"inverse\":\"#1e1e2e\"},\"brand\":{\"primary\":\"#89b4fa\"},\"state\":{\"info\":\"#89dceb\",\"success\":\"#a6e3a1\",\"warning\":\"#f9e2af\",\"danger\":\"#f38ba8\"},\"border\":{\"default\":\"#6c7086\"},\"accent\":{\"link\":\"#89b4fa\"},\"typography\":{\"fonts\":{\"sans\":\"Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, \\\\\"Apple Color Emoji\\\\\", \\\\\"Segoe UI Emoji\\\\\"\",\"mono\":\"JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\\\\"Liberation Mono\\\\\", \\\\\"Courier New\\\\\", monospace\"},\"webFonts\":[\"https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap\",\"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&display=swap\"]},\"content\":{\"heading\":{\"h1\":\"#a6e3a1\",\"h2\":\"#89b4fa\",\"h3\":\"#74c7ec\",\"h4\":\"#f9e2af\",\"h5\":\"#cba6f7\",\"h6\":\"#f38ba8\"},\"body\":{\"primary\":\"#cdd6f4\",\"secondary\":\"#a6adc8\"},\"link\":{\"default\":\"#89b4fa\"},\"selection\":{\"fg\":\"#cdd6f4\",\"bg\":\"#7f849c\"},\"blockquote\":{\"border\":\"#7f849c\",\"fg\":\"#cdd6f4\",\"bg\":\"#181825\"},\"codeInline\":{\"fg\":\"#cdd6f4\",\"bg\":\"#313244\"},\"codeBlock\":{\"fg\":\"#cdd6f4\",\"bg\":\"#313244\"},\"table\":{\"border\":\"#7f849c\",\"stripe\":\"#313244\",\"theadBg\":\"#45475a\"}}}},\"dracula\":{\"id\":\"dracula\",\"label\":\"Dracula\",\"vendor\":\"dracula\",\"appearance\":\"dark\",\"tokens\":{\"background\":{\"base\":\"#282a36\",\"surface\":\"#21222c\",\"overlay\":\"#44475a\"},\"text\":{\"primary\":\"#f8f8f2\",\"secondary\":\"#6272a4\",\"inverse\":\"#282a36\"},\"brand\":{\"primary\":\"#bd93f9\"},\"state\":{\"info\":\"#8be9fd\",\"success\":\"#50fa7b\",\"warning\":\"#f1fa8c\",\"danger\":\"#ff5555\"},\"border\":{\"default\":\"#44475a\"},\"accent\":{\"link\":\"#8be9fd\"},\"typography\":{\"fonts\":{\"sans\":\"ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \\\\\"Segoe UI\\\\\", Roboto, \\\\\"Helvetica Neue\\\\\", Arial, sans-serif\",\"mono\":\"\\\\\"Fira Code\\\\\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\\\\"Liberation Mono\\\\\", \\\\\"Courier New\\\\\", monospace\"},\"webFonts\":[\"https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;600&display=swap\"]},\"content\":{\"heading\":{\"h1\":\"#ff79c6\",\"h2\":\"#bd93f9\",\"h3\":\"#8be9fd\",\"h4\":\"#50fa7b\",\"h5\":\"#ffb86c\",\"h6\":\"#f1fa8c\"},\"body\":{\"primary\":\"#f8f8f2\",\"secondary\":\"#6272a4\"},\"link\":{\"default\":\"#8be9fd\"},\"selection\":{\"fg\":\"#f8f8f2\",\"bg\":\"#44475a\"},\"blockquote\":{\"border\":\"#bd93f9\",\"fg\":\"#6272a4\",\"bg\":\"#21222c\"},\"codeInline\":{\"fg\":\"#50fa7b\",\"bg\":\"#21222c\"},\"codeBlock\":{\"fg\":\"#f8f8f2\",\"bg\":\"#21222c\"},\"table\":{\"border\":\"#44475a\",\"stripe\":\"#21222c\",\"theadBg\":\"#44475a\",\"cellBg\":\"#282a36\",\"headerFg\":\"#f8f8f2\"}},\"spacing\":{\"xs\":\"0.25rem\",\"sm\":\"0.5rem\",\"md\":\"1rem\",\"lg\":\"1.5rem\",\"xl\":\"2rem\"},\"elevation\":{\"none\":\"none\",\"sm\":\"0 1px 2px 0 rgba(0, 0, 0, 0.05)\",\"md\":\"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)\",\"lg\":\"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)\",\"xl\":\"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)\"},\"animation\":{\"durationFast\":\"150ms\",\"durationNormal\":\"300ms\",\"durationSlow\":\"500ms\",\"easingDefault\":\"cubic-bezier(0.4, 0, 0.2, 1)\",\"easingEmphasized\":\"cubic-bezier(0.05, 0.7, 0.1, 1)\"},\"opacity\":{\"disabled\":0.5,\"hover\":0.8,\"pressed\":0.6},\"components\":{\"card\":{\"bg\":\"#21222c\",\"border\":\"#6272a4\",\"headerBg\":\"#282a36\",\"footerBg\":\"#21222c\"},\"message\":{\"bg\":\"#282a36\",\"headerBg\":\"#44475a\",\"border\":\"#6272a4\",\"bodyFg\":\"#f8f8f2\"},\"panel\":{\"bg\":\"#21222c\",\"headerBg\":\"#44475a\",\"headerFg\":\"#f8f8f2\",\"border\":\"#6272a4\",\"blockBg\":\"#282a36\",\"blockHoverBg\":\"#2e303e\",\"blockActiveBg\":\"#44475a\"},\"box\":{\"bg\":\"#21222c\",\"border\":\"#6272a4\"},\"notification\":{\"bg\":\"#282a36\",\"border\":\"#6272a4\"},\"modal\":{\"bg\":\"rgba(40, 42, 54, 0.9)\",\"cardBg\":\"#21222c\",\"headerBg\":\"#282a36\",\"footerBg\":\"#21222c\"},\"dropdown\":{\"bg\":\"#21222c\",\"itemHoverBg\":\"#2e303e\",\"border\":\"#6272a4\"},\"tabs\":{\"border\":\"#6272a4\",\"linkBg\":\"#2e303e\",\"linkActiveBg\":\"#21222c\",\"linkHoverBg\":\"#44475a\"}}}},\"github-dark\":{\"id\":\"github-dark\",\"label\":\"GitHub Dark\",\"vendor\":\"github\",\"appearance\":\"dark\",\"tokens\":{\"background\":{\"base\":\"#0d1117\",\"surface\":\"#151b23\",\"overlay\":\"#010409\"},\"text\":{\"primary\":\"#f0f6fc\",\"secondary\":\"#9198a1\",\"inverse\":\"#ffffff\"},\"brand\":{\"primary\":\"#1f6feb\"},\"state\":{\"info\":\"#4493f8\",\"success\":\"#3fb950\",\"warning\":\"#d29922\",\"danger\":\"#f85149\"},\"border\":{\"default\":\"#3d444d\"},\"accent\":{\"link\":\"#4493f8\"},\"typography\":{\"fonts\":{\"sans\":\"\\\\\"Mona Sans\\\\\", -apple-system, BlinkMacSystemFont, \\\\\"Segoe UI\\\\\", \\\\\"Noto Sans\\\\\", Helvetica, Arial, sans-serif, \\\\\"Apple Color Emoji\\\\\", \\\\\"Segoe UI Emoji\\\\\"\",\"mono\":\"\\\\\"Hubot Sans\\\\\", ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, \\\\\"Liberation Mono\\\\\", monospace\"},\"webFonts\":[\"https://github.githubassets.com/assets/mona-sans-webfont.woff2\",\"https://github.githubassets.com/assets/hubot-sans-webfont.woff2\"]},\"content\":{\"heading\":{\"h1\":\"#3fb950\",\"h2\":\"#4493f8\",\"h3\":\"#1f6feb\",\"h4\":\"#d29922\",\"h5\":\"#3fb950\",\"h6\":\"#f85149\"},\"body\":{\"primary\":\"#f0f6fc\",\"secondary\":\"#9198a1\"},\"link\":{\"default\":\"#4493f8\"},\"selection\":{\"fg\":\"#f0f6fc\",\"bg\":\"#264f78\"},\"blockquote\":{\"border\":\"#3d444d\",\"fg\":\"#9198a1\",\"bg\":\"#151b23\"},\"codeInline\":{\"fg\":\"#f0f6fc\",\"bg\":\"#151b23\"},\"codeBlock\":{\"fg\":\"#f0f6fc\",\"bg\":\"#151b23\"},\"table\":{\"border\":\"#3d444d\",\"stripe\":\"#151b23\",\"theadBg\":\"#151b23\"}}}},\"github-light\":{\"id\":\"github-light\",\"label\":\"GitHub Light\",\"vendor\":\"github\",\"appearance\":\"light\",\"tokens\":{\"background\":{\"base\":\"#ffffff\",\"surface\":\"#f6f8fa\",\"overlay\":\"#f6f8fa\"},\"text\":{\"primary\":\"#1f2328\",\"secondary\":\"#59636e\",\"inverse\":\"#ffffff\"},\"brand\":{\"primary\":\"#0969da\"},\"state\":{\"info\":\"#0969da\",\"success\":\"#1a7f37\",\"warning\":\"#9a6700\",\"danger\":\"#d1242f\"},\"border\":{\"default\":\"#d1d9e0\"},\"accent\":{\"link\":\"#0969da\"},\"typography\":{\"fonts\":{\"sans\":\"\\\\\"Mona Sans\\\\\", -apple-system, BlinkMacSystemFont, \\\\\"Segoe UI\\\\\", \\\\\"Noto Sans\\\\\", Helvetica, Arial, sans-serif, \\\\\"Apple Color Emoji\\\\\", \\\\\"Segoe UI Emoji\\\\\"\",\"mono\":\"\\\\\"Hubot Sans\\\\\", ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, \\\\\"Liberation Mono\\\\\", monospace\"},\"webFonts\":[\"https://github.githubassets.com/assets/mona-sans-webfont.woff2\",\"https://github.githubassets.com/assets/hubot-sans-webfont.woff2\"]},\"content\":{\"heading\":{\"h1\":\"#1a7f37\",\"h2\":\"#0969da\",\"h3\":\"#0969da\",\"h4\":\"#9a6700\",\"h5\":\"#1a7f37\",\"h6\":\"#d1242f\"},\"body\":{\"primary\":\"#1f2328\",\"secondary\":\"#59636e\"},\"link\":{\"default\":\"#0969da\"},\"selection\":{\"fg\":\"#1f2328\",\"bg\":\"#b6e3ff\"},\"blockquote\":{\"border\":\"#d1d9e0\",\"fg\":\"#59636e\",\"bg\":\"#f6f8fa\"},\"codeInline\":{\"fg\":\"#1f2328\",\"bg\":\"#f6f8fa\"},\"codeBlock\":{\"fg\":\"#1f2328\",\"bg\":\"#f6f8fa\"},\"table\":{\"border\":\"#d1d9e0\",\"stripe\":\"#f6f8fa\",\"theadBg\":\"#f6f8fa\"}}}},\"nord\":{\"id\":\"nord\",\"label\":\"Nord\",\"vendor\":\"nord\",\"appearance\":\"dark\",\"iconUrl\":\"/assets/img/nord.png\",\"tokens\":{\"background\":{\"base\":\"#2e3440\",\"surface\":\"#3b4252\",\"overlay\":\"#434c5e\"},\"text\":{\"primary\":\"#eceff4\",\"secondary\":\"#d8dee9\",\"inverse\":\"#2e3440\"},\"brand\":{\"primary\":\"#88c0d0\"},\"state\":{\"info\":\"#5e81ac\",\"success\":\"#a3be8c\",\"warning\":\"#ebcb8b\",\"danger\":\"#bf616a\"},\"border\":{\"default\":\"#4c566a\"},\"accent\":{\"link\":\"#88c0d0\"},\"typography\":{\"fonts\":{\"sans\":\"Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, \\\\\"Apple Color Emoji\\\\\", \\\\\"Segoe UI Emoji\\\\\"\",\"mono\":\"JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\\\\"Liberation Mono\\\\\", \\\\\"Courier New\\\\\", monospace\"},\"webFonts\":[\"https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap\",\"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&display=swap\"]},\"content\":{\"heading\":{\"h1\":\"#8fbcbb\",\"h2\":\"#88c0d0\",\"h3\":\"#81a1c1\",\"h4\":\"#ebcb8b\",\"h5\":\"#d08770\",\"h6\":\"#b48ead\"},\"body\":{\"primary\":\"#eceff4\",\"secondary\":\"#d8dee9\"},\"link\":{\"default\":\"#88c0d0\"},\"selection\":{\"fg\":\"#eceff4\",\"bg\":\"#4c566a\"},\"blockquote\":{\"border\":\"#4c566a\",\"fg\":\"#d8dee9\",\"bg\":\"#3b4252\"},\"codeInline\":{\"fg\":\"#eceff4\",\"bg\":\"#434c5e\"},\"codeBlock\":{\"fg\":\"#eceff4\",\"bg\":\"#434c5e\"},\"table\":{\"border\":\"#4c566a\",\"stripe\":\"#434c5e\",\"theadBg\":\"#3b4252\"}}}},\"rose-pine-dawn\":{\"id\":\"rose-pine-dawn\",\"label\":\"Rosé Pine Dawn\",\"vendor\":\"rose-pine\",\"appearance\":\"light\",\"iconUrl\":\"/assets/img/rose-pine-dawn.png\",\"tokens\":{\"background\":{\"base\":\"#faf4ed\",\"surface\":\"#fffaf3\",\"overlay\":\"#f2e9e1\"},\"text\":{\"primary\":\"#575279\",\"secondary\":\"#797593\",\"inverse\":\"#faf4ed\"},\"brand\":{\"primary\":\"#907aa9\"},\"state\":{\"info\":\"#56949f\",\"success\":\"#286983\",\"warning\":\"#ea9d34\",\"danger\":\"#b4637a\"},\"border\":{\"default\":\"#dfdad9\"},\"accent\":{\"link\":\"#907aa9\"},\"typography\":{\"fonts\":{\"sans\":\"Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, \\\\\"Apple Color Emoji\\\\\", \\\\\"Segoe UI Emoji\\\\\"\",\"mono\":\"JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\\\\"Liberation Mono\\\\\", \\\\\"Courier New\\\\\", monospace\"},\"webFonts\":[\"https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap\",\"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&display=swap\"]},\"content\":{\"heading\":{\"h1\":\"#286983\",\"h2\":\"#907aa9\",\"h3\":\"#56949f\",\"h4\":\"#ea9d34\",\"h5\":\"#d7827e\",\"h6\":\"#b4637a\"},\"body\":{\"primary\":\"#575279\",\"secondary\":\"#797593\"},\"link\":{\"default\":\"#907aa9\"},\"selection\":{\"fg\":\"#575279\",\"bg\":\"#cecacd\"},\"blockquote\":{\"border\":\"#cecacd\",\"fg\":\"#575279\",\"bg\":\"#fffaf3\"},\"codeInline\":{\"fg\":\"#575279\",\"bg\":\"#f2e9e1\"},\"codeBlock\":{\"fg\":\"#575279\",\"bg\":\"#f2e9e1\"},\"table\":{\"border\":\"#cecacd\",\"stripe\":\"#f2e9e1\",\"theadBg\":\"#dfdad9\"}}}},\"rose-pine-moon\":{\"id\":\"rose-pine-moon\",\"label\":\"Rosé Pine Moon\",\"vendor\":\"rose-pine\",\"appearance\":\"dark\",\"iconUrl\":\"/assets/img/rose-pine-moon.png\",\"tokens\":{\"background\":{\"base\":\"#232136\",\"surface\":\"#2a273f\",\"overlay\":\"#393552\"},\"text\":{\"primary\":\"#e0def4\",\"secondary\":\"#908caa\",\"inverse\":\"#232136\"},\"brand\":{\"primary\":\"#c4a7e7\"},\"state\":{\"info\":\"#9ccfd8\",\"success\":\"#3e8fb0\",\"warning\":\"#f6c177\",\"danger\":\"#eb6f92\"},\"border\":{\"default\":\"#44415a\"},\"accent\":{\"link\":\"#c4a7e7\"},\"typography\":{\"fonts\":{\"sans\":\"Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, \\\\\"Apple Color Emoji\\\\\", \\\\\"Segoe UI Emoji\\\\\"\",\"mono\":\"JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\\\\"Liberation Mono\\\\\", \\\\\"Courier New\\\\\", monospace\"},\"webFonts\":[\"https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap\",\"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&display=swap\"]},\"content\":{\"heading\":{\"h1\":\"#3e8fb0\",\"h2\":\"#c4a7e7\",\"h3\":\"#9ccfd8\",\"h4\":\"#f6c177\",\"h5\":\"#ea9a97\",\"h6\":\"#eb6f92\"},\"body\":{\"primary\":\"#e0def4\",\"secondary\":\"#908caa\"},\"link\":{\"default\":\"#c4a7e7\"},\"selection\":{\"fg\":\"#e0def4\",\"bg\":\"#56526e\"},\"blockquote\":{\"border\":\"#56526e\",\"fg\":\"#e0def4\",\"bg\":\"#2a273f\"},\"codeInline\":{\"fg\":\"#e0def4\",\"bg\":\"#393552\"},\"codeBlock\":{\"fg\":\"#e0def4\",\"bg\":\"#393552\"},\"table\":{\"border\":\"#56526e\",\"stripe\":\"#393552\",\"theadBg\":\"#44415a\"}}}},\"rose-pine\":{\"id\":\"rose-pine\",\"label\":\"Rosé Pine\",\"vendor\":\"rose-pine\",\"appearance\":\"dark\",\"iconUrl\":\"/assets/img/rose-pine.png\",\"tokens\":{\"background\":{\"base\":\"#191724\",\"surface\":\"#1f1d2e\",\"overlay\":\"#26233a\"},\"text\":{\"primary\":\"#e0def4\",\"secondary\":\"#908caa\",\"inverse\":\"#191724\"},\"brand\":{\"primary\":\"#c4a7e7\"},\"state\":{\"info\":\"#9ccfd8\",\"success\":\"#31748f\",\"warning\":\"#f6c177\",\"danger\":\"#eb6f92\"},\"border\":{\"default\":\"#403d52\"},\"accent\":{\"link\":\"#c4a7e7\"},\"typography\":{\"fonts\":{\"sans\":\"Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, \\\\\"Apple Color Emoji\\\\\", \\\\\"Segoe UI Emoji\\\\\"\",\"mono\":\"JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\\\\"Liberation Mono\\\\\", \\\\\"Courier New\\\\\", monospace\"},\"webFonts\":[\"https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap\",\"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&display=swap\"]},\"content\":{\"heading\":{\"h1\":\"#31748f\",\"h2\":\"#c4a7e7\",\"h3\":\"#9ccfd8\",\"h4\":\"#f6c177\",\"h5\":\"#ebbcba\",\"h6\":\"#eb6f92\"},\"body\":{\"primary\":\"#e0def4\",\"secondary\":\"#908caa\"},\"link\":{\"default\":\"#c4a7e7\"},\"selection\":{\"fg\":\"#e0def4\",\"bg\":\"#524f67\"},\"blockquote\":{\"border\":\"#524f67\",\"fg\":\"#e0def4\",\"bg\":\"#1f1d2e\"},\"codeInline\":{\"fg\":\"#e0def4\",\"bg\":\"#26233a\"},\"codeBlock\":{\"fg\":\"#e0def4\",\"bg\":\"#26233a\"},\"table\":{\"border\":\"#524f67\",\"stripe\":\"#26233a\",\"theadBg\":\"#403d52\"}}}},\"solarized-dark\":{\"id\":\"solarized-dark\",\"label\":\"Solarized Dark\",\"vendor\":\"solarized\",\"appearance\":\"dark\",\"iconUrl\":\"/assets/img/solarized-dark.png\",\"tokens\":{\"background\":{\"base\":\"#002b36\",\"surface\":\"#073642\",\"overlay\":\"#586e75\"},\"text\":{\"primary\":\"#839496\",\"secondary\":\"#657b83\",\"inverse\":\"#002b36\"},\"brand\":{\"primary\":\"#268bd2\"},\"state\":{\"info\":\"#2aa198\",\"success\":\"#859900\",\"warning\":\"#b58900\",\"danger\":\"#dc322f\"},\"border\":{\"default\":\"#586e75\"},\"accent\":{\"link\":\"#268bd2\"},\"typography\":{\"fonts\":{\"sans\":\"Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, \\\\\"Apple Color Emoji\\\\\", \\\\\"Segoe UI Emoji\\\\\"\",\"mono\":\"JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\\\\"Liberation Mono\\\\\", \\\\\"Courier New\\\\\", monospace\"},\"webFonts\":[\"https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap\",\"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&display=swap\"]},\"content\":{\"heading\":{\"h1\":\"#268bd2\",\"h2\":\"#2aa198\",\"h3\":\"#859900\",\"h4\":\"#b58900\",\"h5\":\"#cb4b16\",\"h6\":\"#d33682\"},\"body\":{\"primary\":\"#839496\",\"secondary\":\"#657b83\"},\"link\":{\"default\":\"#268bd2\"},\"selection\":{\"fg\":\"#fdf6e3\",\"bg\":\"#586e75\"},\"blockquote\":{\"border\":\"#657b83\",\"fg\":\"#839496\",\"bg\":\"#073642\"},\"codeInline\":{\"fg\":\"#2aa198\",\"bg\":\"#073642\"},\"codeBlock\":{\"fg\":\"#93a1a1\",\"bg\":\"#073642\"},\"table\":{\"border\":\"#586e75\",\"stripe\":\"#073642\",\"theadBg\":\"#586e75\"}}}},\"solarized-light\":{\"id\":\"solarized-light\",\"label\":\"Solarized Light\",\"vendor\":\"solarized\",\"appearance\":\"light\",\"iconUrl\":\"/assets/img/solarized-light.png\",\"tokens\":{\"background\":{\"base\":\"#fdf6e3\",\"surface\":\"#eee8d5\",\"overlay\":\"#93a1a1\"},\"text\":{\"primary\":\"#586e75\",\"secondary\":\"#657b83\",\"inverse\":\"#fdf6e3\"},\"brand\":{\"primary\":\"#268bd2\"},\"state\":{\"info\":\"#2aa198\",\"success\":\"#859900\",\"warning\":\"#b58900\",\"danger\":\"#dc322f\"},\"border\":{\"default\":\"#93a1a1\"},\"accent\":{\"link\":\"#268bd2\"},\"typography\":{\"fonts\":{\"sans\":\"Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, \\\\\"Apple Color Emoji\\\\\", \\\\\"Segoe UI Emoji\\\\\"\",\"mono\":\"JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\\\\"Liberation Mono\\\\\", \\\\\"Courier New\\\\\", monospace\"},\"webFonts\":[\"https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap\",\"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&display=swap\"]},\"content\":{\"heading\":{\"h1\":\"#268bd2\",\"h2\":\"#2aa198\",\"h3\":\"#859900\",\"h4\":\"#b58900\",\"h5\":\"#cb4b16\",\"h6\":\"#d33682\"},\"body\":{\"primary\":\"#586e75\",\"secondary\":\"#657b83\"},\"link\":{\"default\":\"#268bd2\"},\"selection\":{\"fg\":\"#002b36\",\"bg\":\"#93a1a1\"},\"blockquote\":{\"border\":\"#93a1a1\",\"fg\":\"#657b83\",\"bg\":\"#eee8d5\"},\"codeInline\":{\"fg\":\"#6c71c4\",\"bg\":\"#eee8d5\"},\"codeBlock\":{\"fg\":\"#073642\",\"bg\":\"#eee8d5\"},\"table\":{\"border\":\"#93a1a1\",\"stripe\":\"#eee8d5\",\"theadBg\":\"#eee8d5\"}}}}}');\nconst byVendor = { \"bulma\": { \"name\": \"Bulma\", \"homepage\": \"https://bulma.io/\", \"themes\": [\"bulma-dark\", \"bulma-light\"] }, \"catppuccin\": { \"name\": \"Catppuccin (synced)\", \"homepage\": \"https://catppuccin.com/palette/\", \"themes\": [\"catppuccin-frappe\", \"catppuccin-latte\", \"catppuccin-macchiato\", \"catppuccin-mocha\"] }, \"dracula\": { \"name\": \"Dracula\", \"homepage\": \"https://draculatheme.com/\", \"themes\": [\"dracula\"] }, \"github\": { \"name\": \"GitHub (synced)\", \"homepage\": \"https://primer.style/\", \"themes\": [\"github-dark\", \"github-light\"] }, \"nord\": { \"name\": \"Nord\", \"homepage\": \"https://www.nordtheme.com/\", \"themes\": [\"nord\"] }, \"rose-pine\": { \"name\": \"Rosé Pine (synced)\", \"homepage\": \"https://rosepinetheme.com/\", \"themes\": [\"rose-pine-dawn\", \"rose-pine-moon\", \"rose-pine\"] }, \"solarized\": { \"name\": \"Solarized\", \"homepage\": \"https://ethanschoonover.com/solarized/\", \"themes\": [\"solarized-dark\", \"solarized-light\"] } };\nconst tokensData = {\n themes,\n byVendor\n};\nconst tokens = tokensData;\nconst flavors = Object.values(tokens.themes).map((theme) => ({\n id: theme.id,\n label: theme.label,\n vendor: theme.vendor,\n appearance: theme.appearance,\n ...theme.iconUrl !== void 0 && { iconUrl: theme.iconUrl },\n tokens: theme.tokens\n}));\nconst themesById = /* @__PURE__ */ Object.fromEntries(flavors.map((flavor) => [flavor.id, flavor]));\n/* @__PURE__ */ Object.fromEntries(Object.entries(tokens.byVendor).map(([vendorId, vendor]) => [\n vendorId,\n {\n id: vendorId,\n name: vendor.name,\n homepage: vendor.homepage,\n flavors: vendor.themes.map((themeId) => themesById[themeId]).filter(Boolean)\n }\n]));\n[...new Set(flavors.map((f) => f.vendor))];\nconst VENDOR_FAMILY_MAP = {\n bulma: \"bulma\",\n catppuccin: \"catppuccin\",\n github: \"github\",\n dracula: \"dracula\",\n nord: \"nord\",\n \"rose-pine\": \"rose-pine\",\n solarized: \"solarized\"\n};\nconst DEFAULT_FAMILY = \"bulma\";\nconst VENDOR_ICON_MAP = {\n bulma: \"assets/img/turbo-themes-logo.png\",\n catppuccin: {\n light: \"assets/img/catppuccin-logo-latte.png\",\n dark: \"assets/img/catppuccin-logo-macchiato.png\"\n },\n github: {\n light: \"assets/img/github-logo-light.png\",\n dark: \"assets/img/github-logo-dark.png\"\n },\n dracula: \"assets/img/dracula-logo.png\",\n nord: \"assets/img/nord.png\",\n \"rose-pine\": {\n light: \"assets/img/rose-pine-dawn.png\",\n dark: \"assets/img/rose-pine.png\"\n },\n solarized: {\n light: \"assets/img/solarized-light.png\",\n dark: \"assets/img/solarized-dark.png\"\n }\n};\nconst FLAVOR_DESCRIPTIONS = {\n \"bulma-light\": \"Classic Bulma look with a bright, neutral palette.\",\n \"bulma-dark\": \"Dark Bulma theme tuned for low-light reading.\",\n \"catppuccin-latte\": \"Light, soft Catppuccin palette for daytime use.\",\n \"catppuccin-frappe\": \"Balanced dark Catppuccin theme for focused work.\",\n \"catppuccin-macchiato\": \"Deep, atmospheric Catppuccin variant with rich contrast.\",\n \"catppuccin-mocha\": \"Cozy, high-contrast Catppuccin theme for late-night sessions.\",\n dracula: \"Iconic Dracula dark theme with vibrant accents.\",\n \"github-light\": \"GitHub-inspired light theme suited for documentation and UI heavy pages.\",\n \"github-dark\": \"GitHub dark theme optimized for code-heavy views.\",\n nord: \"Arctic, north-bluish color palette inspired by the polar night.\",\n \"rose-pine\": \"Elegant dark theme with natural pine and soho vibes.\",\n \"rose-pine-moon\": \"Deeper variant of Rosé Pine with enhanced contrast.\",\n \"rose-pine-dawn\": \"Light Rosé Pine variant for daytime use.\",\n \"solarized-dark\": \"Solarized Dark with a balanced, low-contrast palette.\",\n \"solarized-light\": \"Solarized Light tuned for bright, daylight-friendly UIs.\"\n};\nfunction getFamily(vendor) {\n return VENDOR_FAMILY_MAP[vendor] ?? DEFAULT_FAMILY;\n}\nfunction getIconForVendor(vendor, appearance) {\n const iconConfig = VENDOR_ICON_MAP[vendor];\n if (!iconConfig) {\n return void 0;\n }\n if (typeof iconConfig === \"string\") {\n return iconConfig;\n }\n return iconConfig[appearance];\n}\nfunction getDescriptionForFlavor(id, label) {\n return FLAVOR_DESCRIPTIONS[id] ?? `${label} theme`;\n}\nfunction extractPreviewColors(tokens2) {\n return {\n bg: tokens2.background.base,\n surface: tokens2.background.surface,\n accent: tokens2.brand.primary,\n text: tokens2.text.primary\n };\n}\nfunction mapFlavorToUI(flavor) {\n const family = getFamily(flavor.vendor);\n return {\n id: flavor.id,\n name: flavor.label,\n description: getDescriptionForFlavor(flavor.id, flavor.label),\n cssFile: `packages/css/dist/themes/${flavor.id}.css`,\n icon: getIconForVendor(flavor.vendor, flavor.appearance),\n family,\n vendor: flavor.vendor,\n appearance: flavor.appearance,\n colors: extractPreviewColors(flavor.tokens)\n };\n}\nlet mappedThemes = null;\nlet validThemeIds = null;\nfunction getThemes() {\n if (!mappedThemes) {\n mappedThemes = flavors.map(mapFlavorToUI);\n }\n return mappedThemes || [];\n}\nfunction getValidThemeIds() {\n if (!validThemeIds) {\n validThemeIds = new Set(flavors.map((f) => f.id));\n }\n return validThemeIds;\n}\nfunction resolveTheme(themeId) {\n const themes2 = getThemes();\n return themes2.find((t) => t.id === themeId) || themes2.find((t) => t.id === DEFAULT_THEME) || themes2[0];\n}\nasync function applyTheme(doc, themeId) {\n const theme = resolveTheme(themeId);\n if (!theme) {\n logThemeError(ThemeErrors.NO_THEMES_AVAILABLE());\n return;\n }\n const baseUrl = getBaseUrl(doc);\n const trigger = doc.getElementById(DOM_IDS.THEME_FLAVOR_TRIGGER);\n if (trigger) {\n trigger.classList.add(\"is-loading\");\n }\n try {\n applyThemeClass(doc, theme.id);\n await loadThemeCSS(doc, theme, baseUrl);\n const triggerIcon = doc.getElementById(\n DOM_IDS.THEME_FLAVOR_TRIGGER_ICON\n );\n if (triggerIcon && theme.icon) {\n try {\n triggerIcon.src = resolveAssetPath(theme.icon, baseUrl);\n const familyMeta = THEME_FAMILIES[theme.family];\n const familyName = familyMeta?.name ?? theme.family;\n triggerIcon.alt = `${familyName} ${theme.name}`;\n triggerIcon.title = `${familyName} ${theme.name}`;\n } catch {\n logThemeError(ThemeErrors.INVALID_ICON_PATH(theme.id));\n }\n }\n const triggerLabel = doc.getElementById(\n DOM_IDS.THEME_FLAVOR_TRIGGER_LABEL\n );\n if (triggerLabel) {\n triggerLabel.textContent = theme.name;\n }\n doc.querySelectorAll(DOM_SELECTORS.DROPDOWN_ITEMS).forEach((item) => {\n setItemActiveState(item, item.getAttribute(\"data-theme-id\") === theme.id);\n });\n } finally {\n if (trigger) {\n trigger.classList.remove(\"is-loading\");\n }\n }\n}\nfunction getCurrentTheme(doc, defaultTheme) {\n return getCurrentThemeFromClasses(doc.documentElement) || defaultTheme;\n}\nfunction createDropdownStateManager(elements, state) {\n const { trigger, dropdown } = elements;\n const updateAriaExpanded = (expanded) => {\n trigger.setAttribute(\"aria-expanded\", String(expanded));\n };\n const focusMenuItem = (index) => {\n if (index < 0 || index >= state.menuItems.length) return;\n const item = state.menuItems[index];\n setTabindexBatch(state.menuItems, \"-1\");\n item.setAttribute(\"tabindex\", \"0\");\n item.focus();\n state.currentIndex = index;\n };\n const closeDropdown = (options = {}) => {\n const { restoreFocus = true } = options;\n dropdown.classList.remove(\"is-active\");\n updateAriaExpanded(false);\n setTabindexBatch(state.menuItems, \"-1\");\n state.currentIndex = -1;\n if (restoreFocus) {\n trigger.focus();\n }\n };\n const toggleDropdown = (focusFirst = false) => {\n const isActive = dropdown.classList.toggle(\"is-active\");\n updateAriaExpanded(isActive);\n if (!isActive) {\n state.currentIndex = -1;\n setTabindexBatch(state.menuItems, \"-1\");\n for (const menuItem of state.menuItems) {\n const isActiveItem = menuItem.classList.contains(\"is-active\");\n setItemActiveState(menuItem, isActiveItem);\n }\n } else if (focusFirst && state.menuItems.length > 0) {\n focusMenuItem(0);\n }\n };\n return { updateAriaExpanded, focusMenuItem, closeDropdown, toggleDropdown };\n}\nfunction getNextIndex(currentIndex, totalItems) {\n return currentIndex < totalItems - 1 ? currentIndex + 1 : 0;\n}\nfunction getPrevIndex(currentIndex, totalItems) {\n return currentIndex > 0 ? currentIndex - 1 : totalItems - 1;\n}\nfunction handleTriggerKeydown(e, dropdown, state, stateManager) {\n const { focusMenuItem, toggleDropdown, updateAriaExpanded } = stateManager;\n const totalItems = state.menuItems.length;\n switch (e.key) {\n case \"Enter\":\n case \" \":\n e.preventDefault();\n toggleDropdown(!dropdown.classList.contains(\"is-active\"));\n break;\n case \"ArrowDown\":\n e.preventDefault();\n if (!dropdown.classList.contains(\"is-active\")) {\n dropdown.classList.add(\"is-active\");\n updateAriaExpanded(true);\n focusMenuItem(0);\n } else {\n const nextIndex = state.currentIndex < 0 ? 0 : getNextIndex(state.currentIndex, totalItems);\n focusMenuItem(nextIndex);\n }\n break;\n case \"ArrowUp\":\n e.preventDefault();\n if (!dropdown.classList.contains(\"is-active\")) {\n dropdown.classList.add(\"is-active\");\n updateAriaExpanded(true);\n focusMenuItem(totalItems - 1);\n } else {\n const startIndex = state.currentIndex < 0 ? totalItems - 1 : state.currentIndex;\n focusMenuItem(getPrevIndex(startIndex, totalItems));\n }\n break;\n }\n}\nfunction handleMenuItemKeydown(e, index, item, state, stateManager) {\n const { focusMenuItem, closeDropdown } = stateManager;\n const totalItems = state.menuItems.length;\n switch (e.key) {\n case \"ArrowDown\":\n e.preventDefault();\n focusMenuItem(getNextIndex(index, totalItems));\n break;\n case \"ArrowUp\":\n e.preventDefault();\n focusMenuItem(getPrevIndex(index, totalItems));\n break;\n case \"Escape\":\n e.preventDefault();\n closeDropdown();\n break;\n case \"Enter\":\n case \" \":\n e.preventDefault();\n item.click();\n break;\n case \"Home\":\n e.preventDefault();\n focusMenuItem(0);\n break;\n case \"End\":\n e.preventDefault();\n focusMenuItem(totalItems - 1);\n break;\n }\n}\nfunction wireDropdownEventHandlers(documentObj, elements, state, stateManager, abortController) {\n const { trigger, dropdown } = elements;\n const { closeDropdown, toggleDropdown } = stateManager;\n const signal = abortController.signal;\n trigger.addEventListener(\n \"click\",\n (e) => {\n e.preventDefault();\n toggleDropdown();\n },\n { signal }\n );\n documentObj.addEventListener(\n \"click\",\n (e) => {\n if (!dropdown.contains(e.target)) {\n closeDropdown({ restoreFocus: false });\n }\n },\n { signal }\n );\n documentObj.addEventListener(\n \"keydown\",\n (e) => {\n if (e.key === \"Escape\" && dropdown.classList.contains(\"is-active\")) {\n closeDropdown({ restoreFocus: true });\n }\n },\n { signal }\n );\n trigger.addEventListener(\n \"keydown\",\n (e) => handleTriggerKeydown(e, dropdown, state, stateManager),\n { signal }\n );\n for (const [index, item] of state.menuItems.entries()) {\n item.addEventListener(\n \"keydown\",\n (e) => handleMenuItemKeydown(e, index, item, state, stateManager),\n { signal }\n );\n }\n}\nfunction createCheckmarkIcon(doc) {\n const svg = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n svg.setAttribute(\"width\", \"16\");\n svg.setAttribute(\"height\", \"16\");\n svg.setAttribute(\"viewBox\", \"0 0 24 24\");\n svg.setAttribute(\"fill\", \"none\");\n svg.setAttribute(\"stroke\", \"currentColor\");\n svg.setAttribute(\"stroke-width\", \"3\");\n svg.setAttribute(\"stroke-linecap\", \"round\");\n svg.setAttribute(\"stroke-linejoin\", \"round\");\n const polyline = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"polyline\");\n polyline.setAttribute(\"points\", \"20 6 9 17 4 12\");\n svg.appendChild(polyline);\n return svg;\n}\nfunction createThemeItemElement(ctx, theme, familyMeta) {\n const { documentObj, baseUrl, currentThemeId, selectEl, closeDropdown, onThemeSelect } = ctx;\n const item = documentObj.createElement(\"button\");\n item.type = \"button\";\n item.className = \"dropdown-item theme-item\";\n item.setAttribute(\"data-theme-id\", theme.id);\n item.setAttribute(\"data-appearance\", theme.appearance);\n item.setAttribute(\"role\", \"menuitemradio\");\n item.setAttribute(\n \"aria-label\",\n `${familyMeta.name} ${theme.name} (${theme.appearance}). ${theme.description}`\n );\n item.setAttribute(\"tabindex\", \"-1\");\n const isActive = theme.id === currentThemeId;\n setItemActiveState(item, isActive);\n if (theme.icon) {\n const icon = documentObj.createElement(\"img\");\n icon.className = \"theme-icon\";\n icon.src = baseUrl ? `${baseUrl}/${theme.icon}` : theme.icon;\n icon.alt = `${familyMeta.name} ${theme.name}`;\n icon.width = 24;\n icon.height = 24;\n item.appendChild(icon);\n } else {\n const placeholder = documentObj.createElement(\"span\");\n placeholder.className = \"theme-icon theme-icon-placeholder\";\n placeholder.setAttribute(\"aria-hidden\", \"true\");\n item.appendChild(placeholder);\n }\n const copy = documentObj.createElement(\"div\");\n copy.className = \"theme-copy\";\n const titleEl = documentObj.createElement(\"span\");\n titleEl.className = \"theme-title\";\n titleEl.textContent = `${familyMeta.name} · ${theme.name}`;\n copy.appendChild(titleEl);\n const descriptionEl = documentObj.createElement(\"span\");\n descriptionEl.className = \"theme-description\";\n descriptionEl.textContent = theme.description;\n copy.appendChild(descriptionEl);\n item.appendChild(copy);\n const check = documentObj.createElement(\"span\");\n check.className = \"theme-check\";\n check.appendChild(createCheckmarkIcon(documentObj));\n item.appendChild(check);\n item.addEventListener(\"click\", (e) => {\n e.preventDefault();\n onThemeSelect(theme.id);\n if (selectEl) {\n selectEl.value = theme.id;\n selectEl.dispatchEvent(new Event(\"change\", { bubbles: true }));\n }\n closeDropdown({ restoreFocus: true });\n });\n return item;\n}\nfunction createFamilyGroup(ctx, familyKey, themes2, familyMeta, animationDelay) {\n const { documentObj } = ctx;\n if (themes2.length === 0) return null;\n const items = [];\n const group = documentObj.createElement(\"div\");\n group.className = \"theme-family-group\";\n group.setAttribute(\"role\", \"group\");\n group.setAttribute(\"aria-labelledby\", `theme-family-${familyKey}`);\n if (group.style && typeof group.style.setProperty === \"function\") {\n group.style.setProperty(\"--animation-delay\", `${animationDelay}ms`);\n }\n const header = documentObj.createElement(\"div\");\n header.className = \"theme-family-header\";\n header.id = `theme-family-${familyKey}`;\n const headerTitle = documentObj.createElement(\"span\");\n headerTitle.className = \"theme-family-name\";\n headerTitle.textContent = familyMeta.name;\n header.appendChild(headerTitle);\n group.appendChild(header);\n const themesContainer = documentObj.createElement(\"div\");\n themesContainer.className = \"theme-family-items\";\n themes2.forEach((theme) => {\n const item = createThemeItemElement(ctx, theme, familyMeta);\n items.push(item);\n themesContainer.appendChild(item);\n });\n group.appendChild(themesContainer);\n return { group, items };\n}\nfunction populateDropdownMenu(ctx, dropdownMenu, themes2, themeFamilies) {\n const families = Object.keys(themeFamilies);\n let animationDelay = 0;\n families.forEach((familyKey) => {\n const familyThemes = themes2.filter((t) => t.family === familyKey);\n const familyMeta = themeFamilies[familyKey];\n if (!familyMeta) return;\n const result = createFamilyGroup(ctx, familyKey, familyThemes, familyMeta, animationDelay);\n if (result) {\n ctx.menuItems.push(...result.items);\n dropdownMenu.appendChild(result.group);\n animationDelay += 30;\n }\n });\n}\nfunction wireNativeSelect(ctx, selectEl, themes2, defaultTheme) {\n const { documentObj, onThemeSelect } = ctx;\n while (selectEl.firstChild) {\n selectEl.removeChild(selectEl.firstChild);\n }\n themes2.forEach((theme) => {\n const option = documentObj.createElement(\"option\");\n option.value = theme.id;\n option.textContent = theme.name;\n option.selected = theme.id === ctx.currentThemeId;\n selectEl.appendChild(option);\n });\n selectEl.disabled = false;\n selectEl.addEventListener(\"change\", (event) => {\n const target = event.target;\n const selectedThemeId = target?.value || defaultTheme;\n onThemeSelect(selectedThemeId);\n });\n}\nfunction getDropdownElements(documentObj) {\n const dropdownMenu = documentObj.getElementById(DOM_IDS.THEME_FLAVOR_MENU);\n const trigger = documentObj.getElementById(\n DOM_IDS.THEME_FLAVOR_TRIGGER\n );\n const dropdown = trigger?.closest(DOM_SELECTORS.NAVBAR_DROPDOWN);\n const selectEl = documentObj.getElementById(\n DOM_IDS.THEME_FLAVOR_SELECT\n );\n if (!dropdownMenu || !trigger || !dropdown) {\n return null;\n }\n return { dropdownMenu, trigger, dropdown, selectEl };\n}\nfunction normalizePath(path) {\n return path.replace(/\\/$/, \"\") || \"/\";\n}\nfunction initNavbar(documentObj) {\n const currentPath = documentObj.location.pathname;\n const normalizedCurrentPath = normalizePath(currentPath);\n const navbarItems = documentObj.querySelectorAll(DOM_SELECTORS.NAVBAR_ITEM);\n let matchingItem = null;\n const itemsToDeactivate = [];\n navbarItems.forEach((item) => {\n const link = item;\n if (!link.href) return;\n try {\n const normalizedLinkPath = normalizePath(new URL(link.href).pathname);\n if (normalizedCurrentPath === normalizedLinkPath) {\n matchingItem = item;\n } else {\n itemsToDeactivate.push(item);\n }\n } catch {\n }\n });\n for (const item of itemsToDeactivate) {\n item.classList.remove(\"is-active\");\n item.removeAttribute(\"aria-current\");\n }\n if (matchingItem) {\n matchingItem.classList.add(\"is-active\");\n matchingItem.setAttribute(\"aria-current\", \"page\");\n }\n const reportsLink = documentObj.querySelector(DOM_SELECTORS.NAV_REPORTS);\n if (reportsLink) {\n const reportPaths = [\n \"/coverage\",\n \"/coverage-python\",\n \"/coverage-swift\",\n \"/coverage-ruby\",\n \"/playwright\",\n \"/playwright-examples\",\n \"/lighthouse\"\n ];\n const isOnReportsPage = reportPaths.some(\n (path) => normalizedCurrentPath === path || normalizedCurrentPath.startsWith(path + \"/\")\n );\n if (isOnReportsPage) {\n reportsLink.classList.add(\"is-active\");\n } else {\n reportsLink.classList.remove(\"is-active\");\n }\n }\n}\nif (typeof window !== \"undefined\") {\n window.initNavbar = initNavbar;\n}\nfunction enhanceAccessibility(documentObj) {\n documentObj.querySelectorAll(DOM_SELECTORS.HIGHLIGHT_PRE).forEach((pre) => {\n if (!pre.hasAttribute(\"tabindex\")) pre.setAttribute(\"tabindex\", \"0\");\n if (!pre.hasAttribute(\"role\")) pre.setAttribute(\"role\", \"region\");\n if (!pre.hasAttribute(\"aria-label\")) pre.setAttribute(\"aria-label\", \"Code block\");\n });\n}\nasync function initTheme(documentObj, windowObj) {\n migrateLegacyStorage(windowObj);\n const initialTheme = windowObj.__INITIAL_THEME__;\n const savedTheme = getSavedTheme(windowObj, getValidThemeIds());\n if (initialTheme && initialTheme === savedTheme) {\n const currentTheme = getCurrentThemeFromClasses(documentObj.documentElement);\n if (currentTheme === savedTheme) {\n const themeLinkId = `theme-${savedTheme}-css`;\n const themeLink = documentObj.getElementById(themeLinkId);\n if (!themeLink) {\n await applyTheme(documentObj, savedTheme);\n }\n return;\n }\n }\n await applyTheme(documentObj, savedTheme);\n}\nasync function wireFlavorSelector(documentObj, windowObj) {\n const abortController = new AbortController();\n const elements = getDropdownElements(documentObj);\n if (!elements) {\n return { cleanup: () => abortController.abort() };\n }\n const { dropdownMenu, selectEl } = elements;\n const baseUrl = getBaseUrl(documentObj);\n const themes2 = getThemes();\n const state = {\n currentIndex: -1,\n menuItems: []\n };\n const currentThemeId = getSavedTheme(windowObj, getValidThemeIds()) || getCurrentTheme(documentObj, DEFAULT_THEME);\n const stateManager = createDropdownStateManager(elements, state);\n const ctx = {\n documentObj,\n baseUrl,\n currentThemeId,\n selectEl,\n menuItems: state.menuItems,\n closeDropdown: stateManager.closeDropdown,\n onThemeSelect: async (themeId) => {\n saveTheme(windowObj, themeId, getValidThemeIds());\n await applyTheme(documentObj, themeId);\n }\n };\n if (selectEl) {\n wireNativeSelect(ctx, selectEl, themes2, DEFAULT_THEME);\n }\n populateDropdownMenu(ctx, dropdownMenu, themes2, THEME_FAMILIES);\n wireDropdownEventHandlers(documentObj, elements, state, stateManager, abortController);\n stateManager.updateAriaExpanded(false);\n elements.dropdown.classList.remove(\"is-active\");\n return { cleanup: () => abortController.abort() };\n}\nif (typeof document !== \"undefined\" && typeof window !== \"undefined\") {\n document.addEventListener(\"DOMContentLoaded\", async () => {\n try {\n await initTheme(document, window);\n const { cleanup } = await wireFlavorSelector(document, window);\n enhanceAccessibility(document);\n const pagehideHandler = () => {\n cleanup();\n window.removeEventListener(\"pagehide\", pagehideHandler);\n };\n window.addEventListener(\"pagehide\", pagehideHandler);\n } catch (error) {\n logThemeError(ThemeErrors.INIT_FAILED(error));\n }\n });\n}\nexport {\n enhanceAccessibility,\n initNavbar,\n initTheme,\n wireFlavorSelector\n};\n//# sourceMappingURL=index.js.map\n"],"names":[],"mappings":";;AAAA,QAAM,cAAc;AACpB,QAAM,sBAAsB,CAAC,oBAAoB;AACjD,QAAM,gBAAgB;AACtB,QAAM,UAAU;AAAA,IACd,sBAAsB;AAAA,IACtB,2BAA2B;AAAA,IAC3B,4BAA4B;AAAA,IAC5B,mBAAmB;AAAA,IACnB,qBAAqB;AAAA,EACvB;AACA,QAAM,gBAAgB;AAAA,IACpB,gBAAgB,IAAI,QAAQ,iBAAiB;AAAA,IAC7C,iBAAiB;AAAA,IACjB,aAAa;AAAA,IACb,aAAa;AAAA,IACb,eAAe;AAAA,IACf,iBAAiB;AAAA,EACnB;AACA,QAAM,iBAAiB;AAAA,IACrB,OAAO,EAAE,MAAM,SAAS,aAAa,uBAAsB;AAAA,IAC3D,YAAY,EAAE,MAAM,cAAc,aAAa,yBAAwB;AAAA,IACvE,QAAQ,EAAE,MAAM,UAAU,aAAa,yBAAwB;AAAA,IAC/D,SAAS,EAAE,MAAM,WAAW,aAAa,yBAAwB;AAAA,IACjE,MAAM,EAAE,MAAM,QAAQ,aAAa,qCAAoC;AAAA,IACvE,aAAa,EAAE,MAAM,aAAa,aAAa,qDAAoD;AAAA,IACnG,WAAW,EAAE,MAAM,aAAa,aAAa,0CAAyC;AAAA,EACxF;AACA,QAAM,aAAa;AACnB,QAAM,cAAc;AAAA;AAAA,IAElB,kBAAkB,CAAC,aAAa;AAAA,MAC9B,MAAM;AAAA,MACN,SAAS,qBAAqB,OAAO;AAAA,MACrC,OAAO;AAAA,MACP,SAAS,EAAE,QAAO;AAAA,IACtB;AAAA;AAAA,IAEE,qBAAqB,OAAO;AAAA,MAC1B,MAAM;AAAA,MACN,SAAS;AAAA,MACT,OAAO;AAAA;AAAA,IAEX;AAAA;AAAA,IAEE,mBAAmB,CAAC,aAAa;AAAA,MAC/B,MAAM;AAAA,MACN,SAAS,+BAA+B,OAAO;AAAA,MAC/C,OAAO;AAAA,MACP,SAAS,EAAE,QAAO;AAAA,IACtB;AAAA;AAAA,IAEE,aAAa,CAAC,WAAW;AAAA,MACvB,MAAM;AAAA,MACN,SAAS;AAAA,MACT,OAAO;AAAA,MACP,SAAS,EAAE,OAAO,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,EAAC;AAAA,IAC5E;AAAA;AAAA,IAEE,mBAAmB,OAAO;AAAA,MACxB,MAAM;AAAA,MACN,SAAS;AAAA,MACT,OAAO;AAAA;AAAA,IAEX;AAAA;AAAA,IAEE,wBAAwB,OAAO;AAAA,MAC7B,MAAM;AAAA,MACN,SAAS;AAAA,MACT,OAAO;AAAA;AAAA,IAEX;AAAA;AAAA,IAEE,uBAAuB,CAAC,YAAY;AAAA,MAClC,MAAM;AAAA,MACN,SAAS,mCAAmC,MAAM;AAAA,MAClD,OAAO;AAAA,MACP,SAAS,EAAE,OAAM;AAAA,IACrB;AAAA;AAAA,IAEE,kBAAkB,CAAC,aAAa;AAAA,MAC9B,MAAM;AAAA,MACN,SAAS,8BAA8B,OAAO;AAAA,MAC9C,OAAO;AAAA,MACP,SAAS,EAAE,QAAO;AAAA,IACtB;AAAA;AAAA,IAEE,iBAAiB,CAAC,SAAS,WAAW;AAAA,MACpC,MAAM;AAAA,MACN,SAAS,gCAAgC,OAAO;AAAA,MAChD,OAAO;AAAA,MACP,SAAS;AAAA,QACP;AAAA,QACA,OAAO,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,MAClE;AAAA,IACA;AAAA;AAAA,IAEE,qBAAqB,CAAC,WAAW,WAAW;AAAA,MAC1C,MAAM;AAAA,MACN,SAAS,gBAAgB,SAAS;AAAA,MAClC,OAAO;AAAA,MACP,SAAS;AAAA,QACP;AAAA,QACA,OAAO,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,MAClE;AAAA,IACA;AAAA,EACA;AACA,WAAS,cAAc,YAAY;AACjC,UAAM,kBAAkB,GAAG,UAAU,IAAI,WAAW,OAAO;AAC3D,QAAI,WAAW,UAAU,SAAS;AAChC,UAAI,WAAW,SAAS;AACtB,gBAAQ,MAAM,iBAAiB,WAAW,OAAO;AAAA,MACnD,OAAO;AACL,gBAAQ,MAAM,eAAe;AAAA,MAC/B;AAAA,IACF,OAAO;AACL,UAAI,WAAW,SAAS;AACtB,gBAAQ,KAAK,iBAAiB,WAAW,OAAO;AAAA,MAClD,OAAO;AACL,gBAAQ,KAAK,eAAe;AAAA,MAC9B;AAAA,IACF;AAAA,EACF;AACA,WAAS,YAAY,WAAW,KAAK;AACnC,QAAI;AACF,aAAO,UAAU,aAAa,QAAQ,GAAG;AAAA,IAC3C,SAAS,OAAO;AACd,oBAAc,YAAY,oBAAoB,WAAW,KAAK,CAAC;AAC/D,aAAO;AAAA,IACT;AAAA,EACF;AACA,WAAS,YAAY,WAAW,KAAK,OAAO;AAC1C,QAAI;AACF,gBAAU,aAAa,QAAQ,KAAK,KAAK;AACzC,aAAO;AAAA,IACT,SAAS,OAAO;AACd,oBAAc,YAAY,oBAAoB,WAAW,KAAK,CAAC;AAC/D,aAAO;AAAA,IACT;AAAA,EACF;AACA,WAAS,eAAe,WAAW,KAAK;AACtC,QAAI;AACF,gBAAU,aAAa,WAAW,GAAG;AAAA,IACvC,SAAS,OAAO;AACd,oBAAc,YAAY,oBAAoB,cAAc,KAAK,CAAC;AAAA,IACpE;AAAA,EACF;AACA,WAAS,gBAAgB,SAAS,UAAU;AAC1C,QAAI,WAAW,SAAS,IAAI,OAAO,GAAG;AACpC,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AACA,WAAS,qBAAqB,WAAW;AACvC,eAAW,aAAa,qBAAqB;AAC3C,YAAM,SAAS,YAAY,WAAW,SAAS;AAC/C,UAAI,UAAU,CAAC,YAAY,WAAW,WAAW,GAAG;AAClD,oBAAY,WAAW,aAAa,MAAM;AAC1C,uBAAe,WAAW,SAAS;AAAA,MACrC;AAAA,IACF;AAAA,EACF;AACA,WAAS,cAAc,WAAW,UAAU;AAC1C,UAAM,SAAS,YAAY,WAAW,WAAW;AACjD,QAAI,UAAU;AACZ,aAAO,gBAAgB,QAAQ,QAAQ;AAAA,IACzC;AACA,WAAO,UAAU;AAAA,EACnB;AACA,WAAS,UAAU,WAAW,SAAS,UAAU;AAC/C,QAAI,YAAY,CAAC,SAAS,IAAI,OAAO,GAAG;AACtC,oBAAc,YAAY,iBAAiB,OAAO,CAAC;AACnD,aAAO;AAAA,IACT;AACA,WAAO,YAAY,WAAW,aAAa,OAAO;AAAA,EACpD;AACA,WAAS,iBAAiB,WAAW,SAAS;AAC5C,UAAM,iBAAiB,QAAQ,QAAQ,OAAO,EAAE;AAChD,UAAM,OAAO,iBAAiB,GAAG,OAAO,SAAS,MAAM,GAAG,cAAc,MAAM,GAAG,OAAO,SAAS,MAAM;AACvG,WAAO,IAAI,IAAI,WAAW,IAAI,EAAE;AAAA,EAClC;AACA,WAAS,WAAW,KAAK;AACvB,UAAM,cAAc,IAAI;AACxB,UAAM,MAAM,aAAa,aAAa,cAAc,KAAK;AACzD,QAAI,CAAC,IAAK,QAAO;AACjB,QAAI,IAAI,WAAW,IAAI,GAAG;AACxB,oBAAc,YAAY,mBAAmB;AAC7C,aAAO;AAAA,IACT;AACA,QAAI,IAAI,WAAW,SAAS,KAAK,CAAC,IAAI,WAAW,kBAAkB,GAAG;AACpE,oBAAc,YAAY,wBAAwB;AAClD,aAAO;AAAA,IACT;AACA,QAAI;AACF,YAAM,gBAAgB,OAAO,WAAW,cAAc,OAAO,SAAS,SAAS;AAC/E,YAAM,IAAI,IAAI,IAAI,KAAK,aAAa;AACpC,UAAI,EAAE,WAAW,eAAe;AAC9B,sBAAc,YAAY,sBAAsB,EAAE,MAAM,CAAC;AACzD,eAAO;AAAA,MACT;AACA,aAAO,EAAE,SAAS,QAAQ,OAAO,EAAE;AAAA,IACrC,QAAQ;AACN,aAAO;AAAA,IACT;AAAA,EACF;AACA,WAAS,kBAAkB,MAAM;AAC/B,SAAK,SAAS;AACd,SAAK,UAAU;AAAA,EACjB;AACA,WAAS,mBAAmB,MAAM,SAAS,YAAY,KAAK;AAC1D,WAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,YAAM,YAAY,WAAW,MAAM;AACjC,0BAAkB,IAAI;AACtB,eAAO,IAAI,MAAM,SAAS,OAAO,eAAe,CAAC;AAAA,MACnD,GAAG,SAAS;AACZ,WAAK,SAAS,MAAM;AAClB,qBAAa,SAAS;AACtB,0BAAkB,IAAI;AACtB,gBAAO;AAAA,MACT;AACA,WAAK,UAAU,MAAM;AACnB,qBAAa,SAAS;AACtB,0BAAkB,IAAI;AACtB,eAAO,IAAI,MAAM,wBAAwB,OAAO,EAAE,CAAC;AAAA,MACrD;AAAA,IACF,CAAC;AAAA,EACH;AACA,WAAS,2BAA2B,SAAS;AAC3C,UAAM,YAAY,MAAM,KAAK,QAAQ,SAAS;AAC9C,eAAW,aAAa,WAAW;AACjC,UAAI,UAAU,WAAW,QAAQ,GAAG;AAClC,eAAO,UAAU,UAAU,CAAC;AAAA,MAC9B;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACA,WAAS,gBAAgB,KAAK,SAAS;AACrC,UAAM,eAAe,MAAM,KAAK,IAAI,gBAAgB,SAAS,EAAE;AAAA,MAC7D,CAAC,cAAc,UAAU,WAAW,QAAQ;AAAA,IAChD;AACE,QAAI,aAAa,SAAS,GAAG;AAC3B,UAAI,gBAAgB,UAAU,OAAO,GAAG,YAAY;AAAA,IACtD;AACA,QAAI,gBAAgB,UAAU,IAAI,SAAS,OAAO,EAAE;AAAA,EACtD;AACA,iBAAe,aAAa,KAAK,OAAO,SAAS;AAC/C,UAAM,cAAc,SAAS,MAAM,EAAE;AACrC,QAAI,YAAY,IAAI,eAAe,WAAW;AAC9C,QAAI,CAAC,WAAW;AACd,kBAAY,IAAI,cAAc,MAAM;AACpC,gBAAU,KAAK;AACf,gBAAU,MAAM;AAChB,gBAAU,OAAO;AACjB,gBAAU,aAAa,iBAAiB,MAAM,EAAE;AAChD,UAAI;AACF,kBAAU,OAAO,iBAAiB,MAAM,SAAS,OAAO;AAAA,MAC1D,QAAQ;AACN,sBAAc,YAAY,iBAAiB,MAAM,EAAE,CAAC;AACpD;AAAA,MACF;AACA,UAAI,KAAK,YAAY,SAAS;AAC9B,UAAI;AACF,cAAM,mBAAmB,WAAW,MAAM,EAAE;AAAA,MAC9C,SAAS,OAAO;AACd,sBAAc,YAAY,gBAAgB,MAAM,IAAI,KAAK,CAAC;AAAA,MAC5D;AAAA,IACF;AACA,QAAI,iBAAiB,cAAc,eAAe,EAAE,QAAQ,CAAC,SAAS;AACpE,YAAM,cAAc,KAAK,GAAG,QAAQ,UAAU,EAAE,EAAE,QAAQ,QAAQ,EAAE;AACpE,UAAI,gBAAgB,MAAM,MAAM,gBAAgB,QAAQ;AACtD,aAAK,OAAM;AAAA,MACb;AAAA,IACF,CAAC;AAAA,EACH;AACA,WAAS,mBAAmB,MAAM,UAAU;AAC1C,QAAI,UAAU;AACZ,WAAK,UAAU,IAAI,WAAW;AAAA,IAChC,OAAO;AACL,WAAK,UAAU,OAAO,WAAW;AAAA,IACnC;AACA,SAAK,aAAa,gBAAgB,OAAO,QAAQ,CAAC;AAAA,EACpD;AACA,WAAS,iBAAiB,OAAO,OAAO;AACtC,eAAW,QAAQ,OAAO;AACxB,WAAK,aAAa,YAAY,KAAK;AAAA,IACrC;AAAA,EACF;AACA,QAAM,SAAyB,qBAAK,MAAM,+1wBAA+1wB;AACz4wB,QAAM,WAAW,EAAE,SAAS,EAAE,QAAQ,SAAS,YAAY,qBAAqB,UAAU,CAAC,cAAc,aAAa,EAAC,GAAI,cAAc,EAAE,QAAQ,uBAAuB,YAAY,mCAAmC,UAAU,CAAC,qBAAqB,oBAAoB,wBAAwB,kBAAkB,EAAC,GAAI,WAAW,EAAE,QAAQ,WAAW,YAAY,6BAA6B,UAAU,CAAC,SAAS,EAAC,GAAI,UAAU,EAAE,QAAQ,mBAAmB,YAAY,yBAAyB,UAAU,CAAC,eAAe,cAAc,EAAC,GAAI,QAAQ,EAAE,QAAQ,QAAQ,YAAY,8BAA8B,UAAU,CAAC,MAAM,KAAK,aAAa,EAAE,QAAQ,sBAAsB,YAAY,8BAA8B,UAAU,CAAC,kBAAkB,kBAAkB,WAAW,EAAC,GAAI,aAAa,EAAE,QAAQ,aAAa,YAAY,0CAA0C,UAAU,CAAC,kBAAkB,iBAAiB,IAAG;AACl5B,QAAM,aAAa;AAAA,IACjB;AAAA,IACA;AAAA,EACF;AACA,QAAM,SAAS;AACf,QAAM,UAAU,OAAO,OAAO,OAAO,MAAM,EAAE,IAAI,CAAC,WAAW;AAAA,IAC3D,IAAI,MAAM;AAAA,IACV,OAAO,MAAM;AAAA,IACb,QAAQ,MAAM;AAAA,IACd,YAAY,MAAM;AAAA,IAClB,GAAG,MAAM,YAAY,UAAU,EAAE,SAAS,MAAM,QAAO;AAAA,IACvD,QAAQ,MAAM;AAAA,EAChB,EAAE;AACF,QAAM,aAA6B,uBAAO,YAAY,QAAQ,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC;AAClF,yBAAO,YAAY,OAAO,QAAQ,OAAO,QAAQ,EAAE,IAAI,CAAC,CAAC,UAAU,MAAM,MAAM;AAAA,IAC7F;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM,OAAO;AAAA,MACb,UAAU,OAAO;AAAA,MACjB,SAAS,OAAO,OAAO,IAAI,CAAC,YAAY,WAAW,OAAO,CAAC,EAAE,OAAO,OAAO;AAAA,IAC/E;AAAA,EACA,CAAC,CAAC;AACF,GAAC,GAAG,IAAI,IAAI,QAAQ,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACzC,QAAM,oBAAoB;AAAA,IACxB,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,aAAa;AAAA,IACb,WAAW;AAAA,EACb;AACA,QAAM,iBAAiB;AACvB,QAAM,kBAAkB;AAAA,IACtB,OAAO;AAAA,IACP,YAAY;AAAA,MACV,OAAO;AAAA,MACP,MAAM;AAAA,IACV;AAAA,IACE,QAAQ;AAAA,MACN,OAAO;AAAA,MACP,MAAM;AAAA,IACV;AAAA,IACE,SAAS;AAAA,IACT,MAAM;AAAA,IACN,aAAa;AAAA,MACX,OAAO;AAAA,MACP,MAAM;AAAA,IACV;AAAA,IACE,WAAW;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACV;AAAA,EACA;AACA,QAAM,sBAAsB;AAAA,IAC1B,eAAe;AAAA,IACf,cAAc;AAAA,IACd,oBAAoB;AAAA,IACpB,qBAAqB;AAAA,IACrB,wBAAwB;AAAA,IACxB,oBAAoB;AAAA,IACpB,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,MAAM;AAAA,IACN,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,kBAAkB;AAAA,IAClB,kBAAkB;AAAA,IAClB,mBAAmB;AAAA,EACrB;AACA,WAAS,UAAU,QAAQ;AACzB,WAAO,kBAAkB,MAAM,KAAK;AAAA,EACtC;AACA,WAAS,iBAAiB,QAAQ,YAAY;AAC5C,UAAM,aAAa,gBAAgB,MAAM;AACzC,QAAI,CAAC,YAAY;AACf,aAAO;AAAA,IACT;AACA,QAAI,OAAO,eAAe,UAAU;AAClC,aAAO;AAAA,IACT;AACA,WAAO,WAAW,UAAU;AAAA,EAC9B;AACA,WAAS,wBAAwB,IAAI,OAAO;AAC1C,WAAO,oBAAoB,EAAE,KAAK,GAAG,KAAK;AAAA,EAC5C;AACA,WAAS,qBAAqB,SAAS;AACrC,WAAO;AAAA,MACL,IAAI,QAAQ,WAAW;AAAA,MACvB,SAAS,QAAQ,WAAW;AAAA,MAC5B,QAAQ,QAAQ,MAAM;AAAA,MACtB,MAAM,QAAQ,KAAK;AAAA,IACvB;AAAA,EACA;AACA,WAAS,cAAc,QAAQ;AAC7B,UAAM,SAAS,UAAU,OAAO,MAAM;AACtC,WAAO;AAAA,MACL,IAAI,OAAO;AAAA,MACX,MAAM,OAAO;AAAA,MACb,aAAa,wBAAwB,OAAO,IAAI,OAAO,KAAK;AAAA,MAC5D,SAAS,4BAA4B,OAAO,EAAE;AAAA,MAC9C,MAAM,iBAAiB,OAAO,QAAQ,OAAO,UAAU;AAAA,MACvD;AAAA,MACA,QAAQ,OAAO;AAAA,MACf,YAAY,OAAO;AAAA,MACnB,QAAQ,qBAAqB,OAAO,MAAM;AAAA,IAC9C;AAAA,EACA;AACA,MAAI,eAAe;AACnB,MAAI,gBAAgB;AACpB,WAAS,YAAY;AACnB,QAAI,CAAC,cAAc;AACjB,qBAAe,QAAQ,IAAI,aAAa;AAAA,IAC1C;AACA,WAAO,gBAAgB,CAAA;AAAA,EACzB;AACA,WAAS,mBAAmB;AAC1B,QAAI,CAAC,eAAe;AAClB,sBAAgB,IAAI,IAAI,QAAQ,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;AAAA,IAClD;AACA,WAAO;AAAA,EACT;AACA,WAAS,aAAa,SAAS;AAC7B,UAAM,UAAU,UAAS;AACzB,WAAO,QAAQ,KAAK,CAAC,MAAM,EAAE,OAAO,OAAO,KAAK,QAAQ,KAAK,CAAC,MAAM,EAAE,OAAO,aAAa,KAAK,QAAQ,CAAC;AAAA,EAC1G;AACA,iBAAe,WAAW,KAAK,SAAS;AACtC,UAAM,QAAQ,aAAa,OAAO;AAClC,QAAI,CAAC,OAAO;AACV,oBAAc,YAAY,qBAAqB;AAC/C;AAAA,IACF;AACA,UAAM,UAAU,WAAW,GAAG;AAC9B,UAAM,UAAU,IAAI,eAAe,QAAQ,oBAAoB;AAC/D,QAAI,SAAS;AACX,cAAQ,UAAU,IAAI,YAAY;AAAA,IACpC;AACA,QAAI;AACF,sBAAgB,KAAK,MAAM,EAAE;AAC7B,YAAM,aAAa,KAAK,OAAO,OAAO;AACtC,YAAM,cAAc,IAAI;AAAA,QACtB,QAAQ;AAAA,MACd;AACI,UAAI,eAAe,MAAM,MAAM;AAC7B,YAAI;AACF,sBAAY,MAAM,iBAAiB,MAAM,MAAM,OAAO;AACtD,gBAAM,aAAa,eAAe,MAAM,MAAM;AAC9C,gBAAM,aAAa,YAAY,QAAQ,MAAM;AAC7C,sBAAY,MAAM,GAAG,UAAU,IAAI,MAAM,IAAI;AAC7C,sBAAY,QAAQ,GAAG,UAAU,IAAI,MAAM,IAAI;AAAA,QACjD,QAAQ;AACN,wBAAc,YAAY,kBAAkB,MAAM,EAAE,CAAC;AAAA,QACvD;AAAA,MACF;AACA,YAAM,eAAe,IAAI;AAAA,QACvB,QAAQ;AAAA,MACd;AACI,UAAI,cAAc;AAChB,qBAAa,cAAc,MAAM;AAAA,MACnC;AACA,UAAI,iBAAiB,cAAc,cAAc,EAAE,QAAQ,CAAC,SAAS;AACnE,2BAAmB,MAAM,KAAK,aAAa,eAAe,MAAM,MAAM,EAAE;AAAA,MAC1E,CAAC;AAAA,IACH,UAAC;AACC,UAAI,SAAS;AACX,gBAAQ,UAAU,OAAO,YAAY;AAAA,MACvC;AAAA,IACF;AAAA,EACF;AACA,WAAS,gBAAgB,KAAK,cAAc;AAC1C,WAAO,2BAA2B,IAAI,eAAe,KAAK;AAAA,EAC5D;AACA,WAAS,2BAA2B,UAAU,OAAO;AACnD,UAAM,EAAE,SAAS,SAAQ,IAAK;AAC9B,UAAM,qBAAqB,CAAC,aAAa;AACvC,cAAQ,aAAa,iBAAiB,OAAO,QAAQ,CAAC;AAAA,IACxD;AACA,UAAM,gBAAgB,CAAC,UAAU;AAC/B,UAAI,QAAQ,KAAK,SAAS,MAAM,UAAU,OAAQ;AAClD,YAAM,OAAO,MAAM,UAAU,KAAK;AAClC,uBAAiB,MAAM,WAAW,IAAI;AACtC,WAAK,aAAa,YAAY,GAAG;AACjC,WAAK,MAAK;AACV,YAAM,eAAe;AAAA,IACvB;AACA,UAAM,gBAAgB,CAAC,UAAU,OAAO;AACtC,YAAM,EAAE,eAAe,KAAI,IAAK;AAChC,eAAS,UAAU,OAAO,WAAW;AACrC,yBAAmB,KAAK;AACxB,uBAAiB,MAAM,WAAW,IAAI;AACtC,YAAM,eAAe;AACrB,UAAI,cAAc;AAChB,gBAAQ,MAAK;AAAA,MACf;AAAA,IACF;AACA,UAAM,iBAAiB,CAAC,aAAa,UAAU;AAC7C,YAAM,WAAW,SAAS,UAAU,OAAO,WAAW;AACtD,yBAAmB,QAAQ;AAC3B,UAAI,CAAC,UAAU;AACb,cAAM,eAAe;AACrB,yBAAiB,MAAM,WAAW,IAAI;AACtC,mBAAW,YAAY,MAAM,WAAW;AACtC,gBAAM,eAAe,SAAS,UAAU,SAAS,WAAW;AAC5D,6BAAmB,UAAU,YAAY;AAAA,QAC3C;AAAA,MACF,WAAW,cAAc,MAAM,UAAU,SAAS,GAAG;AACnD,sBAAc,CAAC;AAAA,MACjB;AAAA,IACF;AACA,WAAO,EAAE,oBAAoB,eAAe,eAAe,eAAc;AAAA,EAC3E;AACA,WAAS,aAAa,cAAc,YAAY;AAC9C,WAAO,eAAe,aAAa,IAAI,eAAe,IAAI;AAAA,EAC5D;AACA,WAAS,aAAa,cAAc,YAAY;AAC9C,WAAO,eAAe,IAAI,eAAe,IAAI,aAAa;AAAA,EAC5D;AACA,WAAS,qBAAqB,GAAG,UAAU,OAAO,cAAc;AAC9D,UAAM,EAAE,eAAe,gBAAgB,mBAAkB,IAAK;AAC9D,UAAM,aAAa,MAAM,UAAU;AACnC,YAAQ,EAAE,KAAG;AAAA,MACX,KAAK;AAAA,MACL,KAAK;AACH,UAAE,eAAc;AAChB,uBAAe,CAAC,SAAS,UAAU,SAAS,WAAW,CAAC;AACxD;AAAA,MACF,KAAK;AACH,UAAE,eAAc;AAChB,YAAI,CAAC,SAAS,UAAU,SAAS,WAAW,GAAG;AAC7C,mBAAS,UAAU,IAAI,WAAW;AAClC,6BAAmB,IAAI;AACvB,wBAAc,CAAC;AAAA,QACjB,OAAO;AACL,gBAAM,YAAY,MAAM,eAAe,IAAI,IAAI,aAAa,MAAM,cAAc,UAAU;AAC1F,wBAAc,SAAS;AAAA,QACzB;AACA;AAAA,MACF,KAAK;AACH,UAAE,eAAc;AAChB,YAAI,CAAC,SAAS,UAAU,SAAS,WAAW,GAAG;AAC7C,mBAAS,UAAU,IAAI,WAAW;AAClC,6BAAmB,IAAI;AACvB,wBAAc,aAAa,CAAC;AAAA,QAC9B,OAAO;AACL,gBAAM,aAAa,MAAM,eAAe,IAAI,aAAa,IAAI,MAAM;AACnE,wBAAc,aAAa,YAAY,UAAU,CAAC;AAAA,QACpD;AACA;AAAA,IACN;AAAA,EACA;AACA,WAAS,sBAAsB,GAAG,OAAO,MAAM,OAAO,cAAc;AAClE,UAAM,EAAE,eAAe,cAAa,IAAK;AACzC,UAAM,aAAa,MAAM,UAAU;AACnC,YAAQ,EAAE,KAAG;AAAA,MACX,KAAK;AACH,UAAE,eAAc;AAChB,sBAAc,aAAa,OAAO,UAAU,CAAC;AAC7C;AAAA,MACF,KAAK;AACH,UAAE,eAAc;AAChB,sBAAc,aAAa,OAAO,UAAU,CAAC;AAC7C;AAAA,MACF,KAAK;AACH,UAAE,eAAc;AAChB,sBAAa;AACb;AAAA,MACF,KAAK;AAAA,MACL,KAAK;AACH,UAAE,eAAc;AAChB,aAAK,MAAK;AACV;AAAA,MACF,KAAK;AACH,UAAE,eAAc;AAChB,sBAAc,CAAC;AACf;AAAA,MACF,KAAK;AACH,UAAE,eAAc;AAChB,sBAAc,aAAa,CAAC;AAC5B;AAAA,IACN;AAAA,EACA;AACA,WAAS,0BAA0B,aAAa,UAAU,OAAO,cAAc,iBAAiB;AAC9F,UAAM,EAAE,SAAS,SAAQ,IAAK;AAC9B,UAAM,EAAE,eAAe,eAAc,IAAK;AAC1C,UAAM,SAAS,gBAAgB;AAC/B,YAAQ;AAAA,MACN;AAAA,MACA,CAAC,MAAM;AACL,UAAE,eAAc;AAChB,uBAAc;AAAA,MAChB;AAAA,MACA,EAAE,OAAM;AAAA,IACZ;AACE,gBAAY;AAAA,MACV;AAAA,MACA,CAAC,MAAM;AACL,YAAI,CAAC,SAAS,SAAS,EAAE,MAAM,GAAG;AAChC,wBAAc,EAAE,cAAc,OAAO;AAAA,QACvC;AAAA,MACF;AAAA,MACA,EAAE,OAAM;AAAA,IACZ;AACE,gBAAY;AAAA,MACV;AAAA,MACA,CAAC,MAAM;AACL,YAAI,EAAE,QAAQ,YAAY,SAAS,UAAU,SAAS,WAAW,GAAG;AAClE,wBAAc,EAAE,cAAc,MAAM;AAAA,QACtC;AAAA,MACF;AAAA,MACA,EAAE,OAAM;AAAA,IACZ;AACE,YAAQ;AAAA,MACN;AAAA,MACA,CAAC,MAAM,qBAAqB,GAAG,UAAU,OAAO,YAAY;AAAA,MAC5D,EAAE,OAAM;AAAA,IACZ;AACE,eAAW,CAAC,OAAO,IAAI,KAAK,MAAM,UAAU,WAAW;AACrD,WAAK;AAAA,QACH;AAAA,QACA,CAAC,MAAM,sBAAsB,GAAG,OAAO,MAAM,OAAO,YAAY;AAAA,QAChE,EAAE,OAAM;AAAA,MACd;AAAA,IACE;AAAA,EACF;AACA,WAAS,oBAAoB,KAAK;AAChC,UAAM,MAAM,IAAI,gBAAgB,8BAA8B,KAAK;AACnE,QAAI,aAAa,SAAS,IAAI;AAC9B,QAAI,aAAa,UAAU,IAAI;AAC/B,QAAI,aAAa,WAAW,WAAW;AACvC,QAAI,aAAa,QAAQ,MAAM;AAC/B,QAAI,aAAa,UAAU,cAAc;AACzC,QAAI,aAAa,gBAAgB,GAAG;AACpC,QAAI,aAAa,kBAAkB,OAAO;AAC1C,QAAI,aAAa,mBAAmB,OAAO;AAC3C,UAAM,WAAW,IAAI,gBAAgB,8BAA8B,UAAU;AAC7E,aAAS,aAAa,UAAU,gBAAgB;AAChD,QAAI,YAAY,QAAQ;AACxB,WAAO;AAAA,EACT;AACA,WAAS,uBAAuB,KAAK,OAAO,YAAY;AACtD,UAAM,EAAE,aAAa,SAAS,gBAAgB,UAAU,eAAe,cAAa,IAAK;AACzF,UAAM,OAAO,YAAY,cAAc,QAAQ;AAC/C,SAAK,OAAO;AACZ,SAAK,YAAY;AACjB,SAAK,aAAa,iBAAiB,MAAM,EAAE;AAC3C,SAAK,aAAa,mBAAmB,MAAM,UAAU;AACrD,SAAK,aAAa,QAAQ,eAAe;AACzC,SAAK;AAAA,MACH;AAAA,MACA,GAAG,WAAW,IAAI,IAAI,MAAM,IAAI,KAAK,MAAM,UAAU,MAAM,MAAM,WAAW;AAAA,IAChF;AACE,SAAK,aAAa,YAAY,IAAI;AAClC,UAAM,WAAW,MAAM,OAAO;AAC9B,uBAAmB,MAAM,QAAQ;AACjC,QAAI,MAAM,MAAM;AACd,YAAM,OAAO,YAAY,cAAc,KAAK;AAC5C,WAAK,YAAY;AACjB,WAAK,MAAM,UAAU,GAAG,OAAO,IAAI,MAAM,IAAI,KAAK,MAAM;AACxD,WAAK,MAAM,GAAG,WAAW,IAAI,IAAI,MAAM,IAAI;AAC3C,WAAK,QAAQ;AACb,WAAK,SAAS;AACd,WAAK,YAAY,IAAI;AAAA,IACvB,OAAO;AACL,YAAM,cAAc,YAAY,cAAc,MAAM;AACpD,kBAAY,YAAY;AACxB,kBAAY,aAAa,eAAe,MAAM;AAC9C,WAAK,YAAY,WAAW;AAAA,IAC9B;AACA,UAAM,OAAO,YAAY,cAAc,KAAK;AAC5C,SAAK,YAAY;AACjB,UAAM,UAAU,YAAY,cAAc,MAAM;AAChD,YAAQ,YAAY;AACpB,YAAQ,cAAc,GAAG,WAAW,IAAI,MAAM,MAAM,IAAI;AACxD,SAAK,YAAY,OAAO;AACxB,UAAM,gBAAgB,YAAY,cAAc,MAAM;AACtD,kBAAc,YAAY;AAC1B,kBAAc,cAAc,MAAM;AAClC,SAAK,YAAY,aAAa;AAC9B,SAAK,YAAY,IAAI;AACrB,UAAM,QAAQ,YAAY,cAAc,MAAM;AAC9C,UAAM,YAAY;AAClB,UAAM,YAAY,oBAAoB,WAAW,CAAC;AAClD,SAAK,YAAY,KAAK;AACtB,SAAK,iBAAiB,SAAS,CAAC,MAAM;AACpC,QAAE,eAAc;AAChB,oBAAc,MAAM,EAAE;AACtB,UAAI,UAAU;AACZ,iBAAS,QAAQ,MAAM;AACvB,iBAAS,cAAc,IAAI,MAAM,UAAU,EAAE,SAAS,KAAI,CAAE,CAAC;AAAA,MAC/D;AACA,oBAAc,EAAE,cAAc,MAAM;AAAA,IACtC,CAAC;AACD,WAAO;AAAA,EACT;AACA,WAAS,kBAAkB,KAAK,WAAW,SAAS,YAAY,gBAAgB;AAC9E,UAAM,EAAE,YAAW,IAAK;AACxB,QAAI,QAAQ,WAAW,EAAG,QAAO;AACjC,UAAM,QAAQ,CAAA;AACd,UAAM,QAAQ,YAAY,cAAc,KAAK;AAC7C,UAAM,YAAY;AAClB,UAAM,aAAa,QAAQ,OAAO;AAClC,UAAM,aAAa,mBAAmB,gBAAgB,SAAS,EAAE;AACjE,QAAI,MAAM,SAAS,OAAO,MAAM,MAAM,gBAAgB,YAAY;AAChE,YAAM,MAAM,YAAY,qBAAqB,GAAG,cAAc,IAAI;AAAA,IACpE;AACA,UAAM,SAAS,YAAY,cAAc,KAAK;AAC9C,WAAO,YAAY;AACnB,WAAO,KAAK,gBAAgB,SAAS;AACrC,UAAM,cAAc,YAAY,cAAc,MAAM;AACpD,gBAAY,YAAY;AACxB,gBAAY,cAAc,WAAW;AACrC,WAAO,YAAY,WAAW;AAC9B,UAAM,YAAY,MAAM;AACxB,UAAM,kBAAkB,YAAY,cAAc,KAAK;AACvD,oBAAgB,YAAY;AAC5B,YAAQ,QAAQ,CAAC,UAAU;AACzB,YAAM,OAAO,uBAAuB,KAAK,OAAO,UAAU;AAC1D,YAAM,KAAK,IAAI;AACf,sBAAgB,YAAY,IAAI;AAAA,IAClC,CAAC;AACD,UAAM,YAAY,eAAe;AACjC,WAAO,EAAE,OAAO,MAAK;AAAA,EACvB;AACA,WAAS,qBAAqB,KAAK,cAAc,SAAS,eAAe;AACvE,UAAM,WAAW,OAAO,KAAK,aAAa;AAC1C,QAAI,iBAAiB;AACrB,aAAS,QAAQ,CAAC,cAAc;AAC9B,YAAM,eAAe,QAAQ,OAAO,CAAC,MAAM,EAAE,WAAW,SAAS;AACjE,YAAM,aAAa,cAAc,SAAS;AAC1C,UAAI,CAAC,WAAY;AACjB,YAAM,SAAS,kBAAkB,KAAK,WAAW,cAAc,YAAY,cAAc;AACzF,UAAI,QAAQ;AACV,YAAI,UAAU,KAAK,GAAG,OAAO,KAAK;AAClC,qBAAa,YAAY,OAAO,KAAK;AACrC,0BAAkB;AAAA,MACpB;AAAA,IACF,CAAC;AAAA,EACH;AACA,WAAS,iBAAiB,KAAK,UAAU,SAAS,cAAc;AAC9D,UAAM,EAAE,aAAa,cAAa,IAAK;AACvC,WAAO,SAAS,YAAY;AAC1B,eAAS,YAAY,SAAS,UAAU;AAAA,IAC1C;AACA,YAAQ,QAAQ,CAAC,UAAU;AACzB,YAAM,SAAS,YAAY,cAAc,QAAQ;AACjD,aAAO,QAAQ,MAAM;AACrB,aAAO,cAAc,MAAM;AAC3B,aAAO,WAAW,MAAM,OAAO,IAAI;AACnC,eAAS,YAAY,MAAM;AAAA,IAC7B,CAAC;AACD,aAAS,WAAW;AACpB,aAAS,iBAAiB,UAAU,CAAC,UAAU;AAC7C,YAAM,SAAS,MAAM;AACrB,YAAM,kBAAkB,QAAQ,SAAS;AACzC,oBAAc,eAAe;AAAA,IAC/B,CAAC;AAAA,EACH;AACA,WAAS,oBAAoB,aAAa;AACxC,UAAM,eAAe,YAAY,eAAe,QAAQ,iBAAiB;AACzE,UAAM,UAAU,YAAY;AAAA,MAC1B,QAAQ;AAAA,IACZ;AACE,UAAM,WAAW,SAAS,QAAQ,cAAc,eAAe;AAC/D,UAAM,WAAW,YAAY;AAAA,MAC3B,QAAQ;AAAA,IACZ;AACE,QAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,UAAU;AAC1C,aAAO;AAAA,IACT;AACA,WAAO,EAAE,cAAc,SAAS,UAAU,SAAQ;AAAA,EACpD;AACA,WAAS,cAAc,MAAM;AAC3B,WAAO,KAAK,QAAQ,OAAO,EAAE,KAAK;AAAA,EACpC;AACA,WAAS,WAAW,aAAa;AAC/B,UAAM,cAAc,YAAY,SAAS;AACzC,UAAM,wBAAwB,cAAc,WAAW;AACvD,UAAM,cAAc,YAAY,iBAAiB,cAAc,WAAW;AAC1E,QAAI,eAAe;AACnB,UAAM,oBAAoB,CAAA;AAC1B,gBAAY,QAAQ,CAAC,SAAS;AAC5B,YAAM,OAAO;AACb,UAAI,CAAC,KAAK,KAAM;AAChB,UAAI;AACF,cAAM,qBAAqB,cAAc,IAAI,IAAI,KAAK,IAAI,EAAE,QAAQ;AACpE,YAAI,0BAA0B,oBAAoB;AAChD,yBAAe;AAAA,QACjB,OAAO;AACL,4BAAkB,KAAK,IAAI;AAAA,QAC7B;AAAA,MACF,QAAQ;AAAA,MACR;AAAA,IACF,CAAC;AACD,eAAW,QAAQ,mBAAmB;AACpC,WAAK,UAAU,OAAO,WAAW;AACjC,WAAK,gBAAgB,cAAc;AAAA,IACrC;AACA,QAAI,cAAc;AAChB,mBAAa,UAAU,IAAI,WAAW;AACtC,mBAAa,aAAa,gBAAgB,MAAM;AAAA,IAClD;AACA,UAAM,cAAc,YAAY,cAAc,cAAc,WAAW;AACvE,QAAI,aAAa;AACf,YAAM,cAAc;AAAA,QAClB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACN;AACI,YAAM,kBAAkB,YAAY;AAAA,QAClC,CAAC,SAAS,0BAA0B,QAAQ,sBAAsB,WAAW,OAAO,GAAG;AAAA,MAC7F;AACI,UAAI,iBAAiB;AACnB,oBAAY,UAAU,IAAI,WAAW;AAAA,MACvC,OAAO;AACL,oBAAY,UAAU,OAAO,WAAW;AAAA,MAC1C;AAAA,IACF;AAAA,EACF;AACA,MAAI,OAAO,WAAW,aAAa;AACjC,WAAO,aAAa;AAAA,EACtB;AACA,WAAS,qBAAqB,aAAa;AACzC,gBAAY,iBAAiB,cAAc,aAAa,EAAE,QAAQ,CAAC,QAAQ;AACzE,UAAI,CAAC,IAAI,aAAa,UAAU,EAAG,KAAI,aAAa,YAAY,GAAG;AACnE,UAAI,CAAC,IAAI,aAAa,MAAM,EAAG,KAAI,aAAa,QAAQ,QAAQ;AAChE,UAAI,CAAC,IAAI,aAAa,YAAY,EAAG,KAAI,aAAa,cAAc,YAAY;AAAA,IAClF,CAAC;AAAA,EACH;AACA,iBAAe,UAAU,aAAa,WAAW;AAC/C,yBAAqB,SAAS;AAC9B,UAAM,eAAe,UAAU;AAC/B,UAAM,aAAa,cAAc,WAAW,iBAAgB,CAAE;AAC9D,QAAI,gBAAgB,iBAAiB,YAAY;AAC/C,YAAM,eAAe,2BAA2B,YAAY,eAAe;AAC3E,UAAI,iBAAiB,YAAY;AAC/B,cAAM,cAAc,SAAS,UAAU;AACvC,cAAM,YAAY,YAAY,eAAe,WAAW;AACxD,YAAI,CAAC,WAAW;AACd,gBAAM,WAAW,aAAa,UAAU;AAAA,QAC1C;AACA;AAAA,MACF;AAAA,IACF;AACA,UAAM,WAAW,aAAa,UAAU;AAAA,EAC1C;AACA,iBAAe,mBAAmB,aAAa,WAAW;AACxD,UAAM,kBAAkB,IAAI,gBAAe;AAC3C,UAAM,WAAW,oBAAoB,WAAW;AAChD,QAAI,CAAC,UAAU;AACb,aAAO,EAAE,SAAS,MAAM,gBAAgB,MAAK,EAAE;AAAA,IACjD;AACA,UAAM,EAAE,cAAc,SAAQ,IAAK;AACnC,UAAM,UAAU,WAAW,WAAW;AACtC,UAAM,UAAU,UAAS;AACzB,UAAM,QAAQ;AAAA,MACZ,cAAc;AAAA,MACd,WAAW,CAAA;AAAA,IACf;AACE,UAAM,iBAAiB,cAAc,WAAW,iBAAgB,CAAE,KAAK,gBAAgB,aAAa,aAAa;AACjH,UAAM,eAAe,2BAA2B,UAAU,KAAK;AAC/D,UAAM,MAAM;AAAA,MACV;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW,MAAM;AAAA,MACjB,eAAe,aAAa;AAAA,MAC5B,eAAe,OAAO,YAAY;AAChC,kBAAU,WAAW,SAAS,kBAAkB;AAChD,cAAM,WAAW,aAAa,OAAO;AAAA,MACvC;AAAA,IACJ;AACE,QAAI,UAAU;AACZ,uBAAiB,KAAK,UAAU,SAAS,aAAa;AAAA,IACxD;AACA,yBAAqB,KAAK,cAAc,SAAS,cAAc;AAC/D,8BAA0B,aAAa,UAAU,OAAO,cAAc,eAAe;AACrF,iBAAa,mBAAmB,KAAK;AACrC,aAAS,SAAS,UAAU,OAAO,WAAW;AAC9C,WAAO,EAAE,SAAS,MAAM,gBAAgB,MAAK,EAAE;AAAA,EACjD;AACA,MAAI,OAAO,aAAa,eAAe,OAAO,WAAW,aAAa;AACpE,aAAS,iBAAiB,oBAAoB,YAAY;AACxD,UAAI;AACF,cAAM,UAAU,UAAU,MAAM;AAChC,cAAM,EAAE,QAAO,IAAK,MAAM,mBAAmB,UAAU,MAAM;AAC7D,6BAAqB,QAAQ;AAC7B,cAAM,kBAAkB,MAAM;AAC5B,kBAAO;AACP,iBAAO,oBAAoB,YAAY,eAAe;AAAA,QACxD;AACA,eAAO,iBAAiB,YAAY,eAAe;AAAA,MACrD,SAAS,OAAO;AACd,sBAAc,YAAY,YAAY,KAAK,CAAC;AAAA,MAC9C;AAAA,IACF,CAAC;AAAA,EACH;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var TurboThemeSelector=(function(h){"use strict";const v="turbo-theme",j=["bulma-theme-flavor"],E="catppuccin-mocha",u={THEME_FLAVOR_TRIGGER:"theme-flavor-trigger",THEME_FLAVOR_TRIGGER_ICON:"theme-flavor-trigger-icon",THEME_FLAVOR_TRIGGER_LABEL:"theme-flavor-trigger-label",THEME_FLAVOR_MENU:"theme-flavor-menu",THEME_FLAVOR_SELECT:"theme-flavor-select"},y={DROPDOWN_ITEMS:`#${u.THEME_FLAVOR_MENU} .dropdown-item.theme-item`,NAVBAR_DROPDOWN:".navbar-item.has-dropdown",NAV_REPORTS:'[data-testid="nav-reports"]',NAVBAR_ITEM:".navbar-item",HIGHLIGHT_PRE:".highlight > pre",THEME_CSS_LINKS:'link[id^="theme-"][id$="-css"]'},_={bulma:{name:"Bulma",description:"Classic Bulma themes"},catppuccin:{name:"Catppuccin",description:"Soothing pastel themes"},github:{name:"GitHub",description:"GitHub-inspired themes"},dracula:{name:"Dracula",description:"Dark vampire aesthetic"},"rose-pine":{name:"Rosé Pine",description:"All natural pine, faux fur and a bit of soho vibes"}},W="[turbo-themes]",p={INVALID_THEME_ID:e=>({code:"INVALID_THEME_ID",message:`Invalid theme ID "${e}" not saved to storage`,level:"warn",context:{themeId:e}}),NO_THEMES_AVAILABLE:()=>({code:"NO_THEMES_AVAILABLE",message:"No themes available",level:"error"}),INVALID_ICON_PATH:e=>({code:"INVALID_ICON_PATH",message:`Invalid theme icon path for ${e}`,level:"warn",context:{themeId:e}}),INIT_FAILED:e=>({code:"INIT_FAILED",message:"Theme switcher initialization failed",level:"error",context:{error:e instanceof Error?e.message:String(e)}}),PROTOCOL_REJECTED:()=>({code:"PROTOCOL_REJECTED",message:"Protocol-relative base URL rejected for security",level:"warn"}),INSECURE_HTTP_REJECTED:()=>({code:"INSECURE_HTTP_REJECTED",message:"Insecure HTTP base URL rejected",level:"warn"}),CROSS_ORIGIN_REJECTED:e=>({code:"CROSS_ORIGIN_REJECTED",message:`Cross-origin base URL rejected: ${e}`,level:"warn",context:{origin:e}}),INVALID_CSS_PATH:e=>({code:"INVALID_CSS_PATH",message:`Invalid theme CSS path for ${e}`,level:"warn",context:{themeId:e}}),CSS_LOAD_FAILED:(e,a)=>({code:"CSS_LOAD_FAILED",message:`Theme CSS failed to load for ${e}`,level:"warn",context:{themeId:e,error:a instanceof Error?a.message:String(a)}}),STORAGE_UNAVAILABLE:(e,a)=>({code:"STORAGE_UNAVAILABLE",message:`localStorage ${e} failed - storage may be unavailable`,level:"warn",context:{operation:e,error:a instanceof Error?a.message:String(a)}})};function g(e){const a=`${W} ${e.message}`;e.level==="error"?e.context?console.error(a,e.context):console.error(a):e.context?console.warn(a,e.context):console.warn(a)}function I(e,a){try{return e.localStorage.getItem(a)}catch(t){return g(p.STORAGE_UNAVAILABLE("getItem",t)),null}}function R(e,a,t){try{return e.localStorage.setItem(a,t),!0}catch(o){return g(p.STORAGE_UNAVAILABLE("setItem",o)),!1}}function Y(e,a){try{e.localStorage.removeItem(a)}catch(t){g(p.STORAGE_UNAVAILABLE("removeItem",t))}}function K(e,a){return e&&a.has(e)?e:E}function X(e){for(const a of j){const t=I(e,a);t&&!I(e,v)&&(R(e,v,t),Y(e,a))}}function D(e,a){const t=I(e,v);return a?K(t,a):t||E}function Q(e,a,t){return t&&!t.has(a)?(g(p.INVALID_THEME_ID(a)),!1):R(e,v,a)}function N(e,a){const t=a.replace(/\/$/,""),o=t?`${window.location.origin}${t}/`:`${window.location.origin}/`;return new URL(e,o).pathname}function F(e){const t=e.documentElement?.getAttribute("data-baseurl")||"";if(!t)return"";if(t.startsWith("//"))return g(p.PROTOCOL_REJECTED()),"";if(t.startsWith("http://")&&!t.startsWith("http://localhost"))return g(p.INSECURE_HTTP_REJECTED()),"";try{const o=typeof window<"u"?window.location.origin:"http://localhost",n=new URL(t,o);return n.origin!==o?(g(p.CROSS_ORIGIN_REJECTED(n.origin)),""):n.pathname.replace(/\/$/,"")}catch{return""}}function A(e){e.onload=null,e.onerror=null}function Z(e,a,t=1e4){return new Promise((o,n)=>{const s=setTimeout(()=>{A(e),n(new Error(`Theme ${a} load timeout`))},t);e.onload=()=>{clearTimeout(s),A(e),o()},e.onerror=()=>{clearTimeout(s),A(e),n(new Error(`Failed to load theme ${a}`))}})}function H(e){const a=Array.from(e.classList);for(const t of a)if(t.startsWith("theme-"))return t.substring(6);return null}function ee(e,a){const t=Array.from(e.documentElement.classList).filter(o=>o.startsWith("theme-"));t.length>0&&e.documentElement.classList.remove(...t),e.documentElement.classList.add(`theme-${a}`)}async function ae(e,a,t){const o=`theme-${a.id}-css`;let n=e.getElementById(o);if(!n){n=e.createElement("link"),n.id=o,n.rel="stylesheet",n.type="text/css",n.setAttribute("data-theme-id",a.id);try{n.href=N(a.cssFile,t)}catch{g(p.INVALID_CSS_PATH(a.id));return}e.head.appendChild(n);try{await Z(n,a.id)}catch(s){g(p.CSS_LOAD_FAILED(a.id,s))}}e.querySelectorAll(y.THEME_CSS_LINKS).forEach(s=>{const c=s.id.replace("theme-","").replace("-css","");c!==a.id&&c!=="base"&&s.remove()})}function k(e,a){a?e.classList.add("is-active"):e.classList.remove("is-active"),e.setAttribute("aria-checked",String(a))}function S(e,a){for(const t of e)t.setAttribute("tabindex",a)}const O={themes:JSON.parse('{"bulma-dark":{"id":"bulma-dark","label":"Bulma Dark","vendor":"bulma","appearance":"dark","tokens":{"background":{"base":"#141414","surface":"#1f1f1f","overlay":"#2b2b2b"},"text":{"primary":"#f5f5f5","secondary":"#dbdbdb","inverse":"#141414"},"brand":{"primary":"#00d1b2"},"state":{"info":"#3e8ed0","success":"#48c78e","warning":"#ffe08a","danger":"#f14668"},"border":{"default":"#363636"},"accent":{"link":"#485fc7"},"typography":{"fonts":{"sans":"\\"Nunito Sans\\", BlinkMacSystemFont, -apple-system, \\"Segoe UI\\", Roboto, Oxygen, Ubuntu, Cantarell, \\"Fira Sans\\", \\"Droid Sans\\", \\"Helvetica Neue\\", Helvetica, Arial, sans-serif","mono":"\\"JetBrains Mono\\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\"Liberation Mono\\", \\"Courier New\\", monospace"},"webFonts":["https://fonts.googleapis.com/css2?family=Nunito+Sans:ital,opsz,wght@0,6..12,400;0,6..12,600;0,6..12,700;1,6..12,400&display=swap","https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600&display=swap"]},"content":{"heading":{"h1":"#00d1b2","h2":"#7289da","h3":"#5dade2","h4":"#58d68d","h5":"#f7dc6f","h6":"#f1948a"},"body":{"primary":"#dbdbdb","secondary":"#b5b5b5"},"link":{"default":"#485fc7"},"selection":{"fg":"#f5f5f5","bg":"#3273dc"},"blockquote":{"border":"#363636","fg":"#dbdbdb","bg":"#1f1f1f"},"codeInline":{"fg":"#f14668","bg":"#2b2b2b"},"codeBlock":{"fg":"#f5f5f5","bg":"#2b2b2b"},"table":{"border":"#404040","stripe":"#1c1c1c","theadBg":"#2d2d2d","cellBg":"#1a1a1a","headerFg":"#f5f5f5"}},"spacing":{"xs":"0.25rem","sm":"0.5rem","md":"1rem","lg":"1.5rem","xl":"2rem"},"elevation":{"none":"none","sm":"0 1px 2px 0 rgba(0, 0, 0, 0.05)","md":"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)","lg":"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)","xl":"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)"},"animation":{"durationFast":"150ms","durationNormal":"300ms","durationSlow":"500ms","easingDefault":"cubic-bezier(0.4, 0, 0.2, 1)","easingEmphasized":"cubic-bezier(0.05, 0.7, 0.1, 1)"},"opacity":{"disabled":0.5,"hover":0.8,"pressed":0.6},"components":{"card":{"bg":"#1c1c1c","border":"#3a3a3a","headerBg":"#252525","footerBg":"#1f1f1f"},"message":{"bg":"#1f1f1f","headerBg":"#2a2a2a","border":"#404040","bodyFg":"#e0e0e0"},"panel":{"bg":"#1c1c1c","headerBg":"#2a2a2a","headerFg":"#f5f5f5","border":"#3a3a3a","blockBg":"#1f1f1f","blockHoverBg":"#262626","blockActiveBg":"#2d3748"},"box":{"bg":"#1c1c1c","border":"#3a3a3a"},"notification":{"bg":"#252525","border":"#404040"},"modal":{"bg":"rgba(0, 0, 0, 0.86)","cardBg":"#1c1c1c","headerBg":"#252525","footerBg":"#1f1f1f"},"dropdown":{"bg":"#1c1c1c","itemHoverBg":"#2a2a2a","border":"#404040"},"tabs":{"border":"#404040","linkBg":"#252525","linkActiveBg":"#1c1c1c","linkHoverBg":"#2a2a2a"}}}},"bulma-light":{"id":"bulma-light","label":"Bulma Light","vendor":"bulma","appearance":"light","tokens":{"background":{"base":"#ffffff","surface":"#f5f5f5","overlay":"#eeeeee"},"text":{"primary":"#363636","secondary":"#4a4a4a","inverse":"#ffffff"},"brand":{"primary":"#00d1b2"},"state":{"info":"#3e8ed0","success":"#48c78e","warning":"#ffe08a","danger":"#f14668"},"border":{"default":"#dbdbdb"},"accent":{"link":"#485fc7"},"typography":{"fonts":{"sans":"\\"Nunito Sans\\", BlinkMacSystemFont, -apple-system, \\"Segoe UI\\", Roboto, Oxygen, Ubuntu, Cantarell, \\"Fira Sans\\", \\"Droid Sans\\", \\"Helvetica Neue\\", Helvetica, Arial, sans-serif","mono":"\\"JetBrains Mono\\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\"Liberation Mono\\", \\"Courier New\\", monospace"},"webFonts":["https://fonts.googleapis.com/css2?family=Nunito+Sans:ital,opsz,wght@0,6..12,400;0,6..12,600;0,6..12,700;1,6..12,400&display=swap","https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600&display=swap"]},"content":{"heading":{"h1":"#00d1b2","h2":"#485fc7","h3":"#3e8ed0","h4":"#48c78e","h5":"#ffe08a","h6":"#f14668"},"body":{"primary":"#4a4a4a","secondary":"#6b6b6b"},"link":{"default":"#485fc7"},"selection":{"fg":"#363636","bg":"#b5d5ff"},"blockquote":{"border":"#dbdbdb","fg":"#4a4a4a","bg":"#f5f5f5"},"codeInline":{"fg":"#f14668","bg":"#f5f5f5"},"codeBlock":{"fg":"#363636","bg":"#f5f5f5"},"table":{"border":"#dbdbdb","stripe":"#fafafa","theadBg":"#f0f0f0","cellBg":"#ffffff","headerFg":"#363636"}},"spacing":{"xs":"0.25rem","sm":"0.5rem","md":"1rem","lg":"1.5rem","xl":"2rem"},"elevation":{"none":"none","sm":"0 1px 2px 0 rgba(0, 0, 0, 0.05)","md":"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)","lg":"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)","xl":"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)"},"animation":{"durationFast":"150ms","durationNormal":"300ms","durationSlow":"500ms","easingDefault":"cubic-bezier(0.4, 0, 0.2, 1)","easingEmphasized":"cubic-bezier(0.05, 0.7, 0.1, 1)"},"opacity":{"disabled":0.5,"hover":0.8,"pressed":0.6},"components":{"card":{"bg":"#ffffff","border":"#d5d5d5","headerBg":"#f5f5f5","footerBg":"#fafafa"},"message":{"bg":"#f8f9fa","headerBg":"#eef1f4","border":"#d5dbe1","bodyFg":"#4a4a4a"},"panel":{"bg":"#ffffff","headerBg":"#f0f0f0","headerFg":"#363636","border":"#d5d5d5","blockBg":"#fafafa","blockHoverBg":"#f5f5f5","blockActiveBg":"#eef6fc"},"box":{"bg":"#ffffff","border":"#e0e0e0"},"notification":{"bg":"#f5f5f5","border":"#e0e0e0"},"modal":{"bg":"rgba(10, 10, 10, 0.86)","cardBg":"#ffffff","headerBg":"#f5f5f5","footerBg":"#fafafa"},"dropdown":{"bg":"#ffffff","itemHoverBg":"#f5f5f5","border":"#dbdbdb"},"tabs":{"border":"#dbdbdb","linkBg":"#f5f5f5","linkActiveBg":"#ffffff","linkHoverBg":"#eeeeee"}}}},"catppuccin-frappe":{"id":"catppuccin-frappe","label":"Catppuccin Frappé","vendor":"catppuccin","appearance":"dark","tokens":{"background":{"base":"#303446","surface":"#292c3c","overlay":"#232634"},"text":{"primary":"#c6d0f5","secondary":"#a5adce","inverse":"#303446"},"brand":{"primary":"#8caaee"},"state":{"info":"#99d1db","success":"#a6d189","warning":"#e5c890","danger":"#e78284"},"border":{"default":"#737994"},"accent":{"link":"#8caaee"},"typography":{"fonts":{"sans":"Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, \\"Apple Color Emoji\\", \\"Segoe UI Emoji\\"","mono":"JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\"Liberation Mono\\", \\"Courier New\\", monospace"},"webFonts":["https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap","https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&display=swap"]},"content":{"heading":{"h1":"#a6d189","h2":"#8caaee","h3":"#85c1dc","h4":"#e5c890","h5":"#ca9ee6","h6":"#e78284"},"body":{"primary":"#c6d0f5","secondary":"#a5adce"},"link":{"default":"#8caaee"},"selection":{"fg":"#c6d0f5","bg":"#838ba7"},"blockquote":{"border":"#838ba7","fg":"#c6d0f5","bg":"#292c3c"},"codeInline":{"fg":"#c6d0f5","bg":"#414559"},"codeBlock":{"fg":"#c6d0f5","bg":"#414559"},"table":{"border":"#838ba7","stripe":"#414559","theadBg":"#51576d"}}}},"catppuccin-latte":{"id":"catppuccin-latte","label":"Catppuccin Latte","vendor":"catppuccin","appearance":"light","tokens":{"background":{"base":"#eff1f5","surface":"#e6e9ef","overlay":"#dce0e8"},"text":{"primary":"#4c4f69","secondary":"#6c6f85","inverse":"#eff1f5"},"brand":{"primary":"#1e66f5"},"state":{"info":"#04a5e5","success":"#40a02b","warning":"#df8e1d","danger":"#d20f39"},"border":{"default":"#9ca0b0"},"accent":{"link":"#1e66f5"},"typography":{"fonts":{"sans":"Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, \\"Apple Color Emoji\\", \\"Segoe UI Emoji\\"","mono":"JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\"Liberation Mono\\", \\"Courier New\\", monospace"},"webFonts":["https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap","https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&display=swap"]},"content":{"heading":{"h1":"#40a02b","h2":"#1e66f5","h3":"#209fb5","h4":"#df8e1d","h5":"#8839ef","h6":"#d20f39"},"body":{"primary":"#4c4f69","secondary":"#6c6f85"},"link":{"default":"#1e66f5"},"selection":{"fg":"#4c4f69","bg":"#8c8fa1"},"blockquote":{"border":"#8c8fa1","fg":"#4c4f69","bg":"#e6e9ef"},"codeInline":{"fg":"#4c4f69","bg":"#ccd0da"},"codeBlock":{"fg":"#4c4f69","bg":"#ccd0da"},"table":{"border":"#8c8fa1","stripe":"#ccd0da","theadBg":"#bcc0cc"}}}},"catppuccin-macchiato":{"id":"catppuccin-macchiato","label":"Catppuccin Macchiato","vendor":"catppuccin","appearance":"dark","tokens":{"background":{"base":"#24273a","surface":"#1e2030","overlay":"#181926"},"text":{"primary":"#cad3f5","secondary":"#a5adcb","inverse":"#24273a"},"brand":{"primary":"#8aadf4"},"state":{"info":"#91d7e3","success":"#a6da95","warning":"#eed49f","danger":"#ed8796"},"border":{"default":"#6e738d"},"accent":{"link":"#8aadf4"},"typography":{"fonts":{"sans":"Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, \\"Apple Color Emoji\\", \\"Segoe UI Emoji\\"","mono":"JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\"Liberation Mono\\", \\"Courier New\\", monospace"},"webFonts":["https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap","https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&display=swap"]},"content":{"heading":{"h1":"#a6da95","h2":"#8aadf4","h3":"#7dc4e4","h4":"#eed49f","h5":"#c6a0f6","h6":"#ed8796"},"body":{"primary":"#cad3f5","secondary":"#a5adcb"},"link":{"default":"#8aadf4"},"selection":{"fg":"#cad3f5","bg":"#8087a2"},"blockquote":{"border":"#8087a2","fg":"#cad3f5","bg":"#1e2030"},"codeInline":{"fg":"#cad3f5","bg":"#363a4f"},"codeBlock":{"fg":"#cad3f5","bg":"#363a4f"},"table":{"border":"#8087a2","stripe":"#363a4f","theadBg":"#494d64"}}}},"catppuccin-mocha":{"id":"catppuccin-mocha","label":"Catppuccin Mocha","vendor":"catppuccin","appearance":"dark","tokens":{"background":{"base":"#1e1e2e","surface":"#181825","overlay":"#11111b"},"text":{"primary":"#cdd6f4","secondary":"#a6adc8","inverse":"#1e1e2e"},"brand":{"primary":"#89b4fa"},"state":{"info":"#89dceb","success":"#a6e3a1","warning":"#f9e2af","danger":"#f38ba8"},"border":{"default":"#6c7086"},"accent":{"link":"#89b4fa"},"typography":{"fonts":{"sans":"Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, \\"Apple Color Emoji\\", \\"Segoe UI Emoji\\"","mono":"JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\"Liberation Mono\\", \\"Courier New\\", monospace"},"webFonts":["https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap","https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&display=swap"]},"content":{"heading":{"h1":"#a6e3a1","h2":"#89b4fa","h3":"#74c7ec","h4":"#f9e2af","h5":"#cba6f7","h6":"#f38ba8"},"body":{"primary":"#cdd6f4","secondary":"#a6adc8"},"link":{"default":"#89b4fa"},"selection":{"fg":"#cdd6f4","bg":"#7f849c"},"blockquote":{"border":"#7f849c","fg":"#cdd6f4","bg":"#181825"},"codeInline":{"fg":"#cdd6f4","bg":"#313244"},"codeBlock":{"fg":"#cdd6f4","bg":"#313244"},"table":{"border":"#7f849c","stripe":"#313244","theadBg":"#45475a"}}}},"dracula":{"id":"dracula","label":"Dracula","vendor":"dracula","appearance":"dark","tokens":{"background":{"base":"#282a36","surface":"#21222c","overlay":"#44475a"},"text":{"primary":"#f8f8f2","secondary":"#6272a4","inverse":"#282a36"},"brand":{"primary":"#bd93f9"},"state":{"info":"#8be9fd","success":"#50fa7b","warning":"#f1fa8c","danger":"#ff5555"},"border":{"default":"#44475a"},"accent":{"link":"#8be9fd"},"typography":{"fonts":{"sans":"ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \\"Segoe UI\\", Roboto, \\"Helvetica Neue\\", Arial, sans-serif","mono":"\\"Fira Code\\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\"Liberation Mono\\", \\"Courier New\\", monospace"},"webFonts":["https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;600&display=swap"]},"content":{"heading":{"h1":"#ff79c6","h2":"#bd93f9","h3":"#8be9fd","h4":"#50fa7b","h5":"#ffb86c","h6":"#f1fa8c"},"body":{"primary":"#f8f8f2","secondary":"#6272a4"},"link":{"default":"#8be9fd"},"selection":{"fg":"#f8f8f2","bg":"#44475a"},"blockquote":{"border":"#bd93f9","fg":"#6272a4","bg":"#21222c"},"codeInline":{"fg":"#50fa7b","bg":"#21222c"},"codeBlock":{"fg":"#f8f8f2","bg":"#21222c"},"table":{"border":"#44475a","stripe":"#21222c","theadBg":"#44475a","cellBg":"#282a36","headerFg":"#f8f8f2"}},"spacing":{"xs":"0.25rem","sm":"0.5rem","md":"1rem","lg":"1.5rem","xl":"2rem"},"elevation":{"none":"none","sm":"0 1px 2px 0 rgba(0, 0, 0, 0.05)","md":"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)","lg":"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)","xl":"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)"},"animation":{"durationFast":"150ms","durationNormal":"300ms","durationSlow":"500ms","easingDefault":"cubic-bezier(0.4, 0, 0.2, 1)","easingEmphasized":"cubic-bezier(0.05, 0.7, 0.1, 1)"},"opacity":{"disabled":0.5,"hover":0.8,"pressed":0.6},"components":{"card":{"bg":"#21222c","border":"#6272a4","headerBg":"#282a36","footerBg":"#21222c"},"message":{"bg":"#282a36","headerBg":"#44475a","border":"#6272a4","bodyFg":"#f8f8f2"},"panel":{"bg":"#21222c","headerBg":"#44475a","headerFg":"#f8f8f2","border":"#6272a4","blockBg":"#282a36","blockHoverBg":"#2e303e","blockActiveBg":"#44475a"},"box":{"bg":"#21222c","border":"#6272a4"},"notification":{"bg":"#282a36","border":"#6272a4"},"modal":{"bg":"rgba(40, 42, 54, 0.9)","cardBg":"#21222c","headerBg":"#282a36","footerBg":"#21222c"},"dropdown":{"bg":"#21222c","itemHoverBg":"#2e303e","border":"#6272a4"},"tabs":{"border":"#6272a4","linkBg":"#2e303e","linkActiveBg":"#21222c","linkHoverBg":"#44475a"}}}},"github-dark":{"id":"github-dark","label":"GitHub Dark","vendor":"github","appearance":"dark","tokens":{"background":{"base":"#0d1117","surface":"#151b23","overlay":"#010409"},"text":{"primary":"#f0f6fc","secondary":"#9198a1","inverse":"#ffffff"},"brand":{"primary":"#1f6feb"},"state":{"info":"#4493f8","success":"#3fb950","warning":"#d29922","danger":"#f85149"},"border":{"default":"#3d444d"},"accent":{"link":"#4493f8"},"typography":{"fonts":{"sans":"\\"Mona Sans\\", -apple-system, BlinkMacSystemFont, \\"Segoe UI\\", \\"Noto Sans\\", Helvetica, Arial, sans-serif, \\"Apple Color Emoji\\", \\"Segoe UI Emoji\\"","mono":"\\"Hubot Sans\\", ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, \\"Liberation Mono\\", monospace"},"webFonts":["https://github.githubassets.com/assets/mona-sans-webfont.woff2","https://github.githubassets.com/assets/hubot-sans-webfont.woff2"]},"content":{"heading":{"h1":"#3fb950","h2":"#4493f8","h3":"#1f6feb","h4":"#d29922","h5":"#3fb950","h6":"#f85149"},"body":{"primary":"#f0f6fc","secondary":"#9198a1"},"link":{"default":"#4493f8"},"selection":{"fg":"#f0f6fc","bg":"#264f78"},"blockquote":{"border":"#3d444d","fg":"#9198a1","bg":"#151b23"},"codeInline":{"fg":"#f0f6fc","bg":"#151b23"},"codeBlock":{"fg":"#f0f6fc","bg":"#151b23"},"table":{"border":"#3d444d","stripe":"#151b23","theadBg":"#151b23"}}}},"github-light":{"id":"github-light","label":"GitHub Light","vendor":"github","appearance":"light","tokens":{"background":{"base":"#ffffff","surface":"#f6f8fa","overlay":"#f6f8fa"},"text":{"primary":"#1f2328","secondary":"#59636e","inverse":"#ffffff"},"brand":{"primary":"#0969da"},"state":{"info":"#0969da","success":"#1a7f37","warning":"#9a6700","danger":"#d1242f"},"border":{"default":"#d1d9e0"},"accent":{"link":"#0969da"},"typography":{"fonts":{"sans":"\\"Mona Sans\\", -apple-system, BlinkMacSystemFont, \\"Segoe UI\\", \\"Noto Sans\\", Helvetica, Arial, sans-serif, \\"Apple Color Emoji\\", \\"Segoe UI Emoji\\"","mono":"\\"Hubot Sans\\", ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, \\"Liberation Mono\\", monospace"},"webFonts":["https://github.githubassets.com/assets/mona-sans-webfont.woff2","https://github.githubassets.com/assets/hubot-sans-webfont.woff2"]},"content":{"heading":{"h1":"#1a7f37","h2":"#0969da","h3":"#0969da","h4":"#9a6700","h5":"#1a7f37","h6":"#d1242f"},"body":{"primary":"#1f2328","secondary":"#59636e"},"link":{"default":"#0969da"},"selection":{"fg":"#1f2328","bg":"#b6e3ff"},"blockquote":{"border":"#d1d9e0","fg":"#59636e","bg":"#f6f8fa"},"codeInline":{"fg":"#1f2328","bg":"#f6f8fa"},"codeBlock":{"fg":"#1f2328","bg":"#f6f8fa"},"table":{"border":"#d1d9e0","stripe":"#f6f8fa","theadBg":"#f6f8fa"}}}},"rose-pine-dawn":{"id":"rose-pine-dawn","label":"Rosé Pine Dawn","vendor":"rose-pine","appearance":"light","iconUrl":"/assets/img/rose-pine-dawn.png","tokens":{"background":{"base":"#faf4ed","surface":"#fffaf3","overlay":"#f2e9e1"},"text":{"primary":"#575279","secondary":"#797593","inverse":"#faf4ed"},"brand":{"primary":"#907aa9"},"state":{"info":"#56949f","success":"#286983","warning":"#ea9d34","danger":"#b4637a"},"border":{"default":"#dfdad9"},"accent":{"link":"#907aa9"},"typography":{"fonts":{"sans":"Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, \\"Apple Color Emoji\\", \\"Segoe UI Emoji\\"","mono":"JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\"Liberation Mono\\", \\"Courier New\\", monospace"},"webFonts":["https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap","https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&display=swap"]},"content":{"heading":{"h1":"#286983","h2":"#907aa9","h3":"#56949f","h4":"#ea9d34","h5":"#d7827e","h6":"#b4637a"},"body":{"primary":"#575279","secondary":"#797593"},"link":{"default":"#907aa9"},"selection":{"fg":"#575279","bg":"#cecacd"},"blockquote":{"border":"#cecacd","fg":"#575279","bg":"#fffaf3"},"codeInline":{"fg":"#575279","bg":"#f2e9e1"},"codeBlock":{"fg":"#575279","bg":"#f2e9e1"},"table":{"border":"#cecacd","stripe":"#f2e9e1","theadBg":"#dfdad9"}}}},"rose-pine-moon":{"id":"rose-pine-moon","label":"Rosé Pine Moon","vendor":"rose-pine","appearance":"dark","iconUrl":"/assets/img/rose-pine-moon.png","tokens":{"background":{"base":"#232136","surface":"#2a273f","overlay":"#393552"},"text":{"primary":"#e0def4","secondary":"#908caa","inverse":"#232136"},"brand":{"primary":"#c4a7e7"},"state":{"info":"#9ccfd8","success":"#3e8fb0","warning":"#f6c177","danger":"#eb6f92"},"border":{"default":"#44415a"},"accent":{"link":"#c4a7e7"},"typography":{"fonts":{"sans":"Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, \\"Apple Color Emoji\\", \\"Segoe UI Emoji\\"","mono":"JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\"Liberation Mono\\", \\"Courier New\\", monospace"},"webFonts":["https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap","https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&display=swap"]},"content":{"heading":{"h1":"#3e8fb0","h2":"#c4a7e7","h3":"#9ccfd8","h4":"#f6c177","h5":"#ea9a97","h6":"#eb6f92"},"body":{"primary":"#e0def4","secondary":"#908caa"},"link":{"default":"#c4a7e7"},"selection":{"fg":"#e0def4","bg":"#56526e"},"blockquote":{"border":"#56526e","fg":"#e0def4","bg":"#2a273f"},"codeInline":{"fg":"#e0def4","bg":"#393552"},"codeBlock":{"fg":"#e0def4","bg":"#393552"},"table":{"border":"#56526e","stripe":"#393552","theadBg":"#44415a"}}}},"rose-pine":{"id":"rose-pine","label":"Rosé Pine","vendor":"rose-pine","appearance":"dark","iconUrl":"/assets/img/rose-pine.png","tokens":{"background":{"base":"#191724","surface":"#1f1d2e","overlay":"#26233a"},"text":{"primary":"#e0def4","secondary":"#908caa","inverse":"#191724"},"brand":{"primary":"#c4a7e7"},"state":{"info":"#9ccfd8","success":"#31748f","warning":"#f6c177","danger":"#eb6f92"},"border":{"default":"#403d52"},"accent":{"link":"#c4a7e7"},"typography":{"fonts":{"sans":"Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, \\"Apple Color Emoji\\", \\"Segoe UI Emoji\\"","mono":"JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\"Liberation Mono\\", \\"Courier New\\", monospace"},"webFonts":["https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap","https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&display=swap"]},"content":{"heading":{"h1":"#31748f","h2":"#c4a7e7","h3":"#9ccfd8","h4":"#f6c177","h5":"#ebbcba","h6":"#eb6f92"},"body":{"primary":"#e0def4","secondary":"#908caa"},"link":{"default":"#c4a7e7"},"selection":{"fg":"#e0def4","bg":"#524f67"},"blockquote":{"border":"#524f67","fg":"#e0def4","bg":"#1f1d2e"},"codeInline":{"fg":"#e0def4","bg":"#26233a"},"codeBlock":{"fg":"#e0def4","bg":"#26233a"},"table":{"border":"#524f67","stripe":"#26233a","theadBg":"#403d52"}}}}}'),byVendor:{bulma:{name:"Bulma",homepage:"https://bulma.io/",themes:["bulma-dark","bulma-light"]},catppuccin:{name:"Catppuccin (synced)",homepage:"https://catppuccin.com/palette/",themes:["catppuccin-frappe","catppuccin-latte","catppuccin-macchiato","catppuccin-mocha"]},dracula:{name:"Dracula",homepage:"https://draculatheme.com/",themes:["dracula"]},github:{name:"GitHub (synced)",homepage:"https://primer.style/",themes:["github-dark","github-light"]},"rose-pine":{name:"Rosé Pine (synced)",homepage:"https://rosepinetheme.com/",themes:["rose-pine-dawn","rose-pine-moon","rose-pine"]}}},w=Object.values(O.themes).map(e=>({id:e.id,label:e.label,vendor:e.vendor,appearance:e.appearance,...e.iconUrl!==void 0&&{iconUrl:e.iconUrl},tokens:e.tokens})),te=Object.fromEntries(w.map(e=>[e.id,e]));Object.entries(O.byVendor).map(([e,a])=>[e,{id:e,name:a.name,homepage:a.homepage,flavors:a.themes.map(t=>te[t]).filter(Boolean)}]),[...new Set(w.map(e=>e.vendor))];const oe={bulma:"bulma",catppuccin:"catppuccin",github:"github",dracula:"dracula","rose-pine":"rose-pine"},ne="bulma",re={bulma:"assets/img/turbo-themes-logo.png",catppuccin:{light:"assets/img/catppuccin-logo-latte.png",dark:"assets/img/catppuccin-logo-macchiato.png"},github:{light:"assets/img/github-logo-light.png",dark:"assets/img/github-logo-dark.png"},dracula:"assets/img/dracula-logo.png","rose-pine":{light:"assets/img/rose-pine-dawn.png",dark:"assets/img/rose-pine.png"}},se={"bulma-light":"Classic Bulma look with a bright, neutral palette.","bulma-dark":"Dark Bulma theme tuned for low-light reading.","catppuccin-latte":"Light, soft Catppuccin palette for daytime use.","catppuccin-frappe":"Balanced dark Catppuccin theme for focused work.","catppuccin-macchiato":"Deep, atmospheric Catppuccin variant with rich contrast.","catppuccin-mocha":"Cozy, high-contrast Catppuccin theme for late-night sessions.",dracula:"Iconic Dracula dark theme with vibrant accents.","github-light":"GitHub-inspired light theme suited for documentation and UI heavy pages.","github-dark":"GitHub dark theme optimized for code-heavy views.","rose-pine":"Elegant dark theme with natural pine and soho vibes.","rose-pine-moon":"Deeper variant of Rosé Pine with enhanced contrast.","rose-pine-dawn":"Light Rosé Pine variant for daytime use."};function ie(e){return oe[e]??ne}function ce(e,a){const t=re[e];if(t)return typeof t=="string"?t:t[a]}function le(e,a){return se[e]??`${a} theme`}function de(e){return{bg:e.background.base,surface:e.background.surface,accent:e.brand.primary,text:e.text.primary}}function fe(e){const a=ie(e.vendor);return{id:e.id,name:e.label,description:le(e.id,e.label),cssFile:`packages/css/dist/themes/${e.id}.css`,icon:ce(e.vendor,e.appearance),family:a,vendor:e.vendor,appearance:e.appearance,colors:de(e.tokens)}}let L=null,B=null;function U(){return L||(L=w.map(fe)),L||[]}function C(){return B||(B=new Set(w.map(e=>e.id))),B}function pe(e){const a=U();return a.find(t=>t.id===e)||a.find(t=>t.id===E)||a[0]}async function T(e,a){const t=pe(a);if(!t){g(p.NO_THEMES_AVAILABLE());return}const o=F(e),n=e.getElementById(u.THEME_FLAVOR_TRIGGER);n&&n.classList.add("is-loading");try{ee(e,t.id),await ae(e,t,o);const s=e.getElementById(u.THEME_FLAVOR_TRIGGER_ICON);if(s&&t.icon)try{s.src=N(t.icon,o);const l=_[t.family]?.name??t.family;s.alt=`${l} ${t.name}`,s.title=`${l} ${t.name}`}catch{g(p.INVALID_ICON_PATH(t.id))}const c=e.getElementById(u.THEME_FLAVOR_TRIGGER_LABEL);c&&(c.textContent=t.name),e.querySelectorAll(y.DROPDOWN_ITEMS).forEach(r=>{k(r,r.getAttribute("data-theme-id")===t.id)})}finally{n&&n.classList.remove("is-loading")}}function ge(e,a){return H(e.documentElement)||a}function me(e,a){const{trigger:t,dropdown:o}=e,n=l=>{t.setAttribute("aria-expanded",String(l))},s=l=>{if(l<0||l>=a.menuItems.length)return;const i=a.menuItems[l];S(a.menuItems,"-1"),i.setAttribute("tabindex","0"),i.focus(),a.currentIndex=l};return{updateAriaExpanded:n,focusMenuItem:s,closeDropdown:(l={})=>{const{restoreFocus:i=!0}=l;o.classList.remove("is-active"),n(!1),S(a.menuItems,"-1"),a.currentIndex=-1,i&&t.focus()},toggleDropdown:(l=!1)=>{const i=o.classList.toggle("is-active");if(n(i),i)l&&a.menuItems.length>0&&s(0);else{a.currentIndex=-1,S(a.menuItems,"-1");for(const d of a.menuItems){const f=d.classList.contains("is-active");k(d,f)}}}}}function P(e,a){return e<a-1?e+1:0}function V(e,a){return e>0?e-1:a-1}function be(e,a,t,o){const{focusMenuItem:n,toggleDropdown:s,updateAriaExpanded:c}=o,r=t.menuItems.length;switch(e.key){case"Enter":case" ":e.preventDefault(),s(!a.classList.contains("is-active"));break;case"ArrowDown":if(e.preventDefault(),!a.classList.contains("is-active"))a.classList.add("is-active"),c(!0),n(0);else{const l=t.currentIndex<0?0:P(t.currentIndex,r);n(l)}break;case"ArrowUp":if(e.preventDefault(),!a.classList.contains("is-active"))a.classList.add("is-active"),c(!0),n(r-1);else{const l=t.currentIndex<0?r-1:t.currentIndex;n(V(l,r))}break}}function ue(e,a,t,o,n){const{focusMenuItem:s,closeDropdown:c}=n,r=o.menuItems.length;switch(e.key){case"ArrowDown":e.preventDefault(),s(P(a,r));break;case"ArrowUp":e.preventDefault(),s(V(a,r));break;case"Escape":e.preventDefault(),c();break;case"Enter":case" ":e.preventDefault(),t.click();break;case"Home":e.preventDefault(),s(0);break;case"End":e.preventDefault(),s(r-1);break}}function he(e,a,t,o,n){const{trigger:s,dropdown:c}=a,{closeDropdown:r,toggleDropdown:l}=o,i=n.signal;s.addEventListener("click",d=>{d.preventDefault(),l()},{signal:i}),e.addEventListener("click",d=>{c.contains(d.target)||r({restoreFocus:!1})},{signal:i}),e.addEventListener("keydown",d=>{d.key==="Escape"&&c.classList.contains("is-active")&&r({restoreFocus:!0})},{signal:i}),s.addEventListener("keydown",d=>be(d,c,t,o),{signal:i});for(const[d,f]of t.menuItems.entries())f.addEventListener("keydown",b=>ue(b,d,f,t,o),{signal:i})}function ye(e){const a=e.createElementNS("http://www.w3.org/2000/svg","svg");a.setAttribute("width","16"),a.setAttribute("height","16"),a.setAttribute("viewBox","0 0 24 24"),a.setAttribute("fill","none"),a.setAttribute("stroke","currentColor"),a.setAttribute("stroke-width","3"),a.setAttribute("stroke-linecap","round"),a.setAttribute("stroke-linejoin","round");const t=e.createElementNS("http://www.w3.org/2000/svg","polyline");return t.setAttribute("points","20 6 9 17 4 12"),a.appendChild(t),a}function Ee(e,a,t){const{documentObj:o,baseUrl:n,currentThemeId:s,selectEl:c,closeDropdown:r,onThemeSelect:l}=e,i=o.createElement("button");i.type="button",i.className="dropdown-item theme-item",i.setAttribute("data-theme-id",a.id),i.setAttribute("data-appearance",a.appearance),i.setAttribute("role","menuitemradio"),i.setAttribute("aria-label",`${t.name} ${a.name} (${a.appearance}). ${a.description}`),i.setAttribute("tabindex","-1");const d=a.id===s;if(k(i,d),a.icon){const m=o.createElement("img");m.className="theme-icon",m.src=n?`${n}/${a.icon}`:a.icon,m.alt=`${t.name} ${a.name}`,m.width=24,m.height=24,i.appendChild(m)}else{const m=o.createElement("span");m.className="theme-icon theme-icon-placeholder",m.setAttribute("aria-hidden","true"),i.appendChild(m)}const f=o.createElement("div");f.className="theme-copy";const b=o.createElement("span");b.className="theme-title",b.textContent=`${t.name} · ${a.name}`,f.appendChild(b);const M=o.createElement("span");M.className="theme-description",M.textContent=a.description,f.appendChild(M),i.appendChild(f);const x=o.createElement("span");return x.className="theme-check",x.appendChild(ye(o)),i.appendChild(x),i.addEventListener("click",m=>{m.preventDefault(),l(a.id),c&&(c.value=a.id,c.dispatchEvent(new Event("change",{bubbles:!0}))),r({restoreFocus:!0})}),i}function ve(e,a,t,o,n){const{documentObj:s}=e;if(t.length===0)return null;const c=[],r=s.createElement("div");r.className="theme-family-group",r.setAttribute("role","group"),r.setAttribute("aria-labelledby",`theme-family-${a}`),r.style&&typeof r.style.setProperty=="function"&&r.style.setProperty("--animation-delay",`${n}ms`);const l=s.createElement("div");l.className="theme-family-header",l.id=`theme-family-${a}`;const i=s.createElement("span");i.className="theme-family-name",i.textContent=o.name,l.appendChild(i),r.appendChild(l);const d=s.createElement("div");return d.className="theme-family-items",t.forEach(f=>{const b=Ee(e,f,o);c.push(b),d.appendChild(b)}),r.appendChild(d),{group:r,items:c}}function we(e,a,t,o){const n=Object.keys(o);let s=0;n.forEach(c=>{const r=t.filter(d=>d.family===c),l=o[c];if(!l)return;const i=ve(e,c,r,l,s);i&&(e.menuItems.push(...i.items),a.appendChild(i.group),s+=30)})}function Ie(e,a,t,o){const{documentObj:n,onThemeSelect:s}=e;for(;a.firstChild;)a.removeChild(a.firstChild);t.forEach(c=>{const r=n.createElement("option");r.value=c.id,r.textContent=c.name,r.selected=c.id===e.currentThemeId,a.appendChild(r)}),a.disabled=!1,a.addEventListener("change",c=>{const l=c.target?.value||o;s(l)})}function Ae(e){const a=e.getElementById(u.THEME_FLAVOR_MENU),t=e.getElementById(u.THEME_FLAVOR_TRIGGER),o=t?.closest(y.NAVBAR_DROPDOWN),n=e.getElementById(u.THEME_FLAVOR_SELECT);return!a||!t||!o?null:{dropdownMenu:a,trigger:t,dropdown:o,selectEl:n}}function $(e){return e.replace(/\/$/,"")||"/"}function G(e){const a=e.location.pathname,t=$(a),o=e.querySelectorAll(y.NAVBAR_ITEM);let n=null;const s=[];o.forEach(r=>{const l=r;if(l.href)try{const i=$(new URL(l.href).pathname);t===i?n=r:s.push(r)}catch{}});for(const r of s)r.classList.remove("is-active"),r.removeAttribute("aria-current");n&&(n.classList.add("is-active"),n.setAttribute("aria-current","page"));const c=e.querySelector(y.NAV_REPORTS);c&&(["/coverage","/coverage-python","/coverage-swift","/coverage-ruby","/playwright","/playwright-examples","/lighthouse"].some(i=>t===i||t.startsWith(i+"/"))?c.classList.add("is-active"):c.classList.remove("is-active"))}typeof window<"u"&&(window.initNavbar=G);function J(e){e.querySelectorAll(y.HIGHLIGHT_PRE).forEach(a=>{a.hasAttribute("tabindex")||a.setAttribute("tabindex","0"),a.hasAttribute("role")||a.setAttribute("role","region"),a.hasAttribute("aria-label")||a.setAttribute("aria-label","Code block")})}async function z(e,a){X(a);const t=a.__INITIAL_THEME__,o=D(a,C());if(t&&t===o&&H(e.documentElement)===o){const s=`theme-${o}-css`;e.getElementById(s)||await T(e,o);return}await T(e,o)}async function q(e,a){const t=new AbortController,o=Ae(e);if(!o)return{cleanup:()=>t.abort()};const{dropdownMenu:n,selectEl:s}=o,c=F(e),r=U(),l={currentIndex:-1,menuItems:[]},i=D(a,C())||ge(e,E),d=me(o,l),f={documentObj:e,baseUrl:c,currentThemeId:i,selectEl:s,menuItems:l.menuItems,closeDropdown:d.closeDropdown,onThemeSelect:async b=>{Q(a,b,C()),await T(e,b)}};return s&&Ie(f,s,r,E),we(f,n,r,_),he(e,o,l,d,t),d.updateAriaExpanded(!1),o.dropdown.classList.remove("is-active"),{cleanup:()=>t.abort()}}return typeof document<"u"&&typeof window<"u"&&document.addEventListener("DOMContentLoaded",async()=>{try{await z(document,window);const{cleanup:e}=await q(document,window);J(document);const a=()=>{e(),window.removeEventListener("pagehide",a)};window.addEventListener("pagehide",a)}catch(e){g(p.INIT_FAILED(e))}}),h.enhanceAccessibility=J,h.initNavbar=G,h.initTheme=z,h.wireFlavorSelector=q,Object.defineProperty(h,Symbol.toStringTag,{value:"Module"}),h})({});
|
|
1
|
+
var TurboThemeSelector=(function(h){"use strict";const w="turbo-theme",j=["bulma-theme-flavor"],E="catppuccin-mocha",u={THEME_FLAVOR_TRIGGER:"theme-flavor-trigger",THEME_FLAVOR_TRIGGER_ICON:"theme-flavor-trigger-icon",THEME_FLAVOR_TRIGGER_LABEL:"theme-flavor-trigger-label",THEME_FLAVOR_MENU:"theme-flavor-menu",THEME_FLAVOR_SELECT:"theme-flavor-select"},y={DROPDOWN_ITEMS:`#${u.THEME_FLAVOR_MENU} .dropdown-item.theme-item`,NAVBAR_DROPDOWN:".navbar-item.has-dropdown",NAV_REPORTS:'[data-testid="nav-reports"]',NAVBAR_ITEM:".navbar-item",HIGHLIGHT_PRE:".highlight > pre",THEME_CSS_LINKS:'link[id^="theme-"][id$="-css"]'},R={bulma:{name:"Bulma",description:"Classic Bulma themes"},catppuccin:{name:"Catppuccin",description:"Soothing pastel themes"},github:{name:"GitHub",description:"GitHub-inspired themes"},dracula:{name:"Dracula",description:"Dark vampire aesthetic"},nord:{name:"Nord",description:"Arctic, north-bluish color palette"},"rose-pine":{name:"Rosé Pine",description:"All natural pine, faux fur and a bit of soho vibes"},solarized:{name:"Solarized",description:"Precision-balanced light and dark modes"}},W="[turbo-themes]",p={INVALID_THEME_ID:e=>({code:"INVALID_THEME_ID",message:`Invalid theme ID "${e}" not saved to storage`,level:"warn",context:{themeId:e}}),NO_THEMES_AVAILABLE:()=>({code:"NO_THEMES_AVAILABLE",message:"No themes available",level:"error"}),INVALID_ICON_PATH:e=>({code:"INVALID_ICON_PATH",message:`Invalid theme icon path for ${e}`,level:"warn",context:{themeId:e}}),INIT_FAILED:e=>({code:"INIT_FAILED",message:"Theme switcher initialization failed",level:"error",context:{error:e instanceof Error?e.message:String(e)}}),PROTOCOL_REJECTED:()=>({code:"PROTOCOL_REJECTED",message:"Protocol-relative base URL rejected for security",level:"warn"}),INSECURE_HTTP_REJECTED:()=>({code:"INSECURE_HTTP_REJECTED",message:"Insecure HTTP base URL rejected",level:"warn"}),CROSS_ORIGIN_REJECTED:e=>({code:"CROSS_ORIGIN_REJECTED",message:`Cross-origin base URL rejected: ${e}`,level:"warn",context:{origin:e}}),INVALID_CSS_PATH:e=>({code:"INVALID_CSS_PATH",message:`Invalid theme CSS path for ${e}`,level:"warn",context:{themeId:e}}),CSS_LOAD_FAILED:(e,a)=>({code:"CSS_LOAD_FAILED",message:`Theme CSS failed to load for ${e}`,level:"warn",context:{themeId:e,error:a instanceof Error?a.message:String(a)}}),STORAGE_UNAVAILABLE:(e,a)=>({code:"STORAGE_UNAVAILABLE",message:`localStorage ${e} failed - storage may be unavailable`,level:"warn",context:{operation:e,error:a instanceof Error?a.message:String(a)}})};function g(e){const a=`${W} ${e.message}`;e.level==="error"?e.context?console.error(a,e.context):console.error(a):e.context?console.warn(a,e.context):console.warn(a)}function I(e,a){try{return e.localStorage.getItem(a)}catch(t){return g(p.STORAGE_UNAVAILABLE("getItem",t)),null}}function _(e,a,t){try{return e.localStorage.setItem(a,t),!0}catch(o){return g(p.STORAGE_UNAVAILABLE("setItem",o)),!1}}function Y(e,a){try{e.localStorage.removeItem(a)}catch(t){g(p.STORAGE_UNAVAILABLE("removeItem",t))}}function K(e,a){return e&&a.has(e)?e:E}function X(e){for(const a of j){const t=I(e,a);t&&!I(e,w)&&(_(e,w,t),Y(e,a))}}function N(e,a){const t=I(e,w);return a?K(t,a):t||E}function Q(e,a,t){return t&&!t.has(a)?(g(p.INVALID_THEME_ID(a)),!1):_(e,w,a)}function D(e,a){const t=a.replace(/\/$/,""),o=t?`${window.location.origin}${t}/`:`${window.location.origin}/`;return new URL(e,o).pathname}function F(e){const t=e.documentElement?.getAttribute("data-baseurl")||"";if(!t)return"";if(t.startsWith("//"))return g(p.PROTOCOL_REJECTED()),"";if(t.startsWith("http://")&&!t.startsWith("http://localhost"))return g(p.INSECURE_HTTP_REJECTED()),"";try{const o=typeof window<"u"?window.location.origin:"http://localhost",n=new URL(t,o);return n.origin!==o?(g(p.CROSS_ORIGIN_REJECTED(n.origin)),""):n.pathname.replace(/\/$/,"")}catch{return""}}function k(e){e.onload=null,e.onerror=null}function Z(e,a,t=1e4){return new Promise((o,n)=>{const s=setTimeout(()=>{k(e),n(new Error(`Theme ${a} load timeout`))},t);e.onload=()=>{clearTimeout(s),k(e),o()},e.onerror=()=>{clearTimeout(s),k(e),n(new Error(`Failed to load theme ${a}`))}})}function H(e){const a=Array.from(e.classList);for(const t of a)if(t.startsWith("theme-"))return t.substring(6);return null}function ee(e,a){const t=Array.from(e.documentElement.classList).filter(o=>o.startsWith("theme-"));t.length>0&&e.documentElement.classList.remove(...t),e.documentElement.classList.add(`theme-${a}`)}async function ae(e,a,t){const o=`theme-${a.id}-css`;let n=e.getElementById(o);if(!n){n=e.createElement("link"),n.id=o,n.rel="stylesheet",n.type="text/css",n.setAttribute("data-theme-id",a.id);try{n.href=D(a.cssFile,t)}catch{g(p.INVALID_CSS_PATH(a.id));return}e.head.appendChild(n);try{await Z(n,a.id)}catch(s){g(p.CSS_LOAD_FAILED(a.id,s))}}e.querySelectorAll(y.THEME_CSS_LINKS).forEach(s=>{const c=s.id.replace("theme-","").replace("-css","");c!==a.id&&c!=="base"&&s.remove()})}function A(e,a){a?e.classList.add("is-active"):e.classList.remove("is-active"),e.setAttribute("aria-checked",String(a))}function S(e,a){for(const t of e)t.setAttribute("tabindex",a)}const U={themes:JSON.parse('{"bulma-dark":{"id":"bulma-dark","label":"Bulma Dark","vendor":"bulma","appearance":"dark","tokens":{"background":{"base":"#141414","surface":"#1f1f1f","overlay":"#2b2b2b"},"text":{"primary":"#f5f5f5","secondary":"#dbdbdb","inverse":"#141414"},"brand":{"primary":"#00d1b2"},"state":{"info":"#3e8ed0","success":"#48c78e","warning":"#ffe08a","danger":"#f14668"},"border":{"default":"#363636"},"accent":{"link":"#485fc7"},"typography":{"fonts":{"sans":"\\"Nunito Sans\\", BlinkMacSystemFont, -apple-system, \\"Segoe UI\\", Roboto, Oxygen, Ubuntu, Cantarell, \\"Fira Sans\\", \\"Droid Sans\\", \\"Helvetica Neue\\", Helvetica, Arial, sans-serif","mono":"\\"JetBrains Mono\\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\"Liberation Mono\\", \\"Courier New\\", monospace"},"webFonts":["https://fonts.googleapis.com/css2?family=Nunito+Sans:ital,opsz,wght@0,6..12,400;0,6..12,600;0,6..12,700;1,6..12,400&display=swap","https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600&display=swap"]},"content":{"heading":{"h1":"#00d1b2","h2":"#7289da","h3":"#5dade2","h4":"#58d68d","h5":"#f7dc6f","h6":"#f1948a"},"body":{"primary":"#dbdbdb","secondary":"#b5b5b5"},"link":{"default":"#485fc7"},"selection":{"fg":"#f5f5f5","bg":"#3273dc"},"blockquote":{"border":"#363636","fg":"#dbdbdb","bg":"#1f1f1f"},"codeInline":{"fg":"#f14668","bg":"#2b2b2b"},"codeBlock":{"fg":"#f5f5f5","bg":"#2b2b2b"},"table":{"border":"#404040","stripe":"#1c1c1c","theadBg":"#2d2d2d","cellBg":"#1a1a1a","headerFg":"#f5f5f5"}},"spacing":{"xs":"0.25rem","sm":"0.5rem","md":"1rem","lg":"1.5rem","xl":"2rem"},"elevation":{"none":"none","sm":"0 1px 2px 0 rgba(0, 0, 0, 0.05)","md":"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)","lg":"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)","xl":"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)"},"animation":{"durationFast":"150ms","durationNormal":"300ms","durationSlow":"500ms","easingDefault":"cubic-bezier(0.4, 0, 0.2, 1)","easingEmphasized":"cubic-bezier(0.05, 0.7, 0.1, 1)"},"opacity":{"disabled":0.5,"hover":0.8,"pressed":0.6},"components":{"card":{"bg":"#1c1c1c","border":"#3a3a3a","headerBg":"#252525","footerBg":"#1f1f1f"},"message":{"bg":"#1f1f1f","headerBg":"#2a2a2a","border":"#404040","bodyFg":"#e0e0e0"},"panel":{"bg":"#1c1c1c","headerBg":"#2a2a2a","headerFg":"#f5f5f5","border":"#3a3a3a","blockBg":"#1f1f1f","blockHoverBg":"#262626","blockActiveBg":"#2d3748"},"box":{"bg":"#1c1c1c","border":"#3a3a3a"},"notification":{"bg":"#252525","border":"#404040"},"modal":{"bg":"rgba(0, 0, 0, 0.86)","cardBg":"#1c1c1c","headerBg":"#252525","footerBg":"#1f1f1f"},"dropdown":{"bg":"#1c1c1c","itemHoverBg":"#2a2a2a","border":"#404040"},"tabs":{"border":"#404040","linkBg":"#252525","linkActiveBg":"#1c1c1c","linkHoverBg":"#2a2a2a"}}}},"bulma-light":{"id":"bulma-light","label":"Bulma Light","vendor":"bulma","appearance":"light","tokens":{"background":{"base":"#ffffff","surface":"#f5f5f5","overlay":"#eeeeee"},"text":{"primary":"#363636","secondary":"#4a4a4a","inverse":"#ffffff"},"brand":{"primary":"#00d1b2"},"state":{"info":"#3e8ed0","success":"#48c78e","warning":"#ffe08a","danger":"#f14668"},"border":{"default":"#dbdbdb"},"accent":{"link":"#485fc7"},"typography":{"fonts":{"sans":"\\"Nunito Sans\\", BlinkMacSystemFont, -apple-system, \\"Segoe UI\\", Roboto, Oxygen, Ubuntu, Cantarell, \\"Fira Sans\\", \\"Droid Sans\\", \\"Helvetica Neue\\", Helvetica, Arial, sans-serif","mono":"\\"JetBrains Mono\\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\"Liberation Mono\\", \\"Courier New\\", monospace"},"webFonts":["https://fonts.googleapis.com/css2?family=Nunito+Sans:ital,opsz,wght@0,6..12,400;0,6..12,600;0,6..12,700;1,6..12,400&display=swap","https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600&display=swap"]},"content":{"heading":{"h1":"#00d1b2","h2":"#485fc7","h3":"#3e8ed0","h4":"#48c78e","h5":"#ffe08a","h6":"#f14668"},"body":{"primary":"#4a4a4a","secondary":"#6b6b6b"},"link":{"default":"#485fc7"},"selection":{"fg":"#363636","bg":"#b5d5ff"},"blockquote":{"border":"#dbdbdb","fg":"#4a4a4a","bg":"#f5f5f5"},"codeInline":{"fg":"#f14668","bg":"#f5f5f5"},"codeBlock":{"fg":"#363636","bg":"#f5f5f5"},"table":{"border":"#dbdbdb","stripe":"#fafafa","theadBg":"#f0f0f0","cellBg":"#ffffff","headerFg":"#363636"}},"spacing":{"xs":"0.25rem","sm":"0.5rem","md":"1rem","lg":"1.5rem","xl":"2rem"},"elevation":{"none":"none","sm":"0 1px 2px 0 rgba(0, 0, 0, 0.05)","md":"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)","lg":"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)","xl":"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)"},"animation":{"durationFast":"150ms","durationNormal":"300ms","durationSlow":"500ms","easingDefault":"cubic-bezier(0.4, 0, 0.2, 1)","easingEmphasized":"cubic-bezier(0.05, 0.7, 0.1, 1)"},"opacity":{"disabled":0.5,"hover":0.8,"pressed":0.6},"components":{"card":{"bg":"#ffffff","border":"#d5d5d5","headerBg":"#f5f5f5","footerBg":"#fafafa"},"message":{"bg":"#f8f9fa","headerBg":"#eef1f4","border":"#d5dbe1","bodyFg":"#4a4a4a"},"panel":{"bg":"#ffffff","headerBg":"#f0f0f0","headerFg":"#363636","border":"#d5d5d5","blockBg":"#fafafa","blockHoverBg":"#f5f5f5","blockActiveBg":"#eef6fc"},"box":{"bg":"#ffffff","border":"#e0e0e0"},"notification":{"bg":"#f5f5f5","border":"#e0e0e0"},"modal":{"bg":"rgba(10, 10, 10, 0.86)","cardBg":"#ffffff","headerBg":"#f5f5f5","footerBg":"#fafafa"},"dropdown":{"bg":"#ffffff","itemHoverBg":"#f5f5f5","border":"#dbdbdb"},"tabs":{"border":"#dbdbdb","linkBg":"#f5f5f5","linkActiveBg":"#ffffff","linkHoverBg":"#eeeeee"}}}},"catppuccin-frappe":{"id":"catppuccin-frappe","label":"Catppuccin Frappé","vendor":"catppuccin","appearance":"dark","tokens":{"background":{"base":"#303446","surface":"#292c3c","overlay":"#232634"},"text":{"primary":"#c6d0f5","secondary":"#a5adce","inverse":"#303446"},"brand":{"primary":"#8caaee"},"state":{"info":"#99d1db","success":"#a6d189","warning":"#e5c890","danger":"#e78284"},"border":{"default":"#737994"},"accent":{"link":"#8caaee"},"typography":{"fonts":{"sans":"Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, \\"Apple Color Emoji\\", \\"Segoe UI Emoji\\"","mono":"JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\"Liberation Mono\\", \\"Courier New\\", monospace"},"webFonts":["https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap","https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&display=swap"]},"content":{"heading":{"h1":"#a6d189","h2":"#8caaee","h3":"#85c1dc","h4":"#e5c890","h5":"#ca9ee6","h6":"#e78284"},"body":{"primary":"#c6d0f5","secondary":"#a5adce"},"link":{"default":"#8caaee"},"selection":{"fg":"#c6d0f5","bg":"#838ba7"},"blockquote":{"border":"#838ba7","fg":"#c6d0f5","bg":"#292c3c"},"codeInline":{"fg":"#c6d0f5","bg":"#414559"},"codeBlock":{"fg":"#c6d0f5","bg":"#414559"},"table":{"border":"#838ba7","stripe":"#414559","theadBg":"#51576d"}}}},"catppuccin-latte":{"id":"catppuccin-latte","label":"Catppuccin Latte","vendor":"catppuccin","appearance":"light","tokens":{"background":{"base":"#eff1f5","surface":"#e6e9ef","overlay":"#dce0e8"},"text":{"primary":"#4c4f69","secondary":"#6c6f85","inverse":"#eff1f5"},"brand":{"primary":"#1e66f5"},"state":{"info":"#04a5e5","success":"#40a02b","warning":"#df8e1d","danger":"#d20f39"},"border":{"default":"#9ca0b0"},"accent":{"link":"#1e66f5"},"typography":{"fonts":{"sans":"Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, \\"Apple Color Emoji\\", \\"Segoe UI Emoji\\"","mono":"JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\"Liberation Mono\\", \\"Courier New\\", monospace"},"webFonts":["https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap","https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&display=swap"]},"content":{"heading":{"h1":"#40a02b","h2":"#1e66f5","h3":"#209fb5","h4":"#df8e1d","h5":"#8839ef","h6":"#d20f39"},"body":{"primary":"#4c4f69","secondary":"#6c6f85"},"link":{"default":"#1e66f5"},"selection":{"fg":"#4c4f69","bg":"#8c8fa1"},"blockquote":{"border":"#8c8fa1","fg":"#4c4f69","bg":"#e6e9ef"},"codeInline":{"fg":"#4c4f69","bg":"#ccd0da"},"codeBlock":{"fg":"#4c4f69","bg":"#ccd0da"},"table":{"border":"#8c8fa1","stripe":"#ccd0da","theadBg":"#bcc0cc"}}}},"catppuccin-macchiato":{"id":"catppuccin-macchiato","label":"Catppuccin Macchiato","vendor":"catppuccin","appearance":"dark","tokens":{"background":{"base":"#24273a","surface":"#1e2030","overlay":"#181926"},"text":{"primary":"#cad3f5","secondary":"#a5adcb","inverse":"#24273a"},"brand":{"primary":"#8aadf4"},"state":{"info":"#91d7e3","success":"#a6da95","warning":"#eed49f","danger":"#ed8796"},"border":{"default":"#6e738d"},"accent":{"link":"#8aadf4"},"typography":{"fonts":{"sans":"Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, \\"Apple Color Emoji\\", \\"Segoe UI Emoji\\"","mono":"JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\"Liberation Mono\\", \\"Courier New\\", monospace"},"webFonts":["https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap","https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&display=swap"]},"content":{"heading":{"h1":"#a6da95","h2":"#8aadf4","h3":"#7dc4e4","h4":"#eed49f","h5":"#c6a0f6","h6":"#ed8796"},"body":{"primary":"#cad3f5","secondary":"#a5adcb"},"link":{"default":"#8aadf4"},"selection":{"fg":"#cad3f5","bg":"#8087a2"},"blockquote":{"border":"#8087a2","fg":"#cad3f5","bg":"#1e2030"},"codeInline":{"fg":"#cad3f5","bg":"#363a4f"},"codeBlock":{"fg":"#cad3f5","bg":"#363a4f"},"table":{"border":"#8087a2","stripe":"#363a4f","theadBg":"#494d64"}}}},"catppuccin-mocha":{"id":"catppuccin-mocha","label":"Catppuccin Mocha","vendor":"catppuccin","appearance":"dark","tokens":{"background":{"base":"#1e1e2e","surface":"#181825","overlay":"#11111b"},"text":{"primary":"#cdd6f4","secondary":"#a6adc8","inverse":"#1e1e2e"},"brand":{"primary":"#89b4fa"},"state":{"info":"#89dceb","success":"#a6e3a1","warning":"#f9e2af","danger":"#f38ba8"},"border":{"default":"#6c7086"},"accent":{"link":"#89b4fa"},"typography":{"fonts":{"sans":"Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, \\"Apple Color Emoji\\", \\"Segoe UI Emoji\\"","mono":"JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\"Liberation Mono\\", \\"Courier New\\", monospace"},"webFonts":["https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap","https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&display=swap"]},"content":{"heading":{"h1":"#a6e3a1","h2":"#89b4fa","h3":"#74c7ec","h4":"#f9e2af","h5":"#cba6f7","h6":"#f38ba8"},"body":{"primary":"#cdd6f4","secondary":"#a6adc8"},"link":{"default":"#89b4fa"},"selection":{"fg":"#cdd6f4","bg":"#7f849c"},"blockquote":{"border":"#7f849c","fg":"#cdd6f4","bg":"#181825"},"codeInline":{"fg":"#cdd6f4","bg":"#313244"},"codeBlock":{"fg":"#cdd6f4","bg":"#313244"},"table":{"border":"#7f849c","stripe":"#313244","theadBg":"#45475a"}}}},"dracula":{"id":"dracula","label":"Dracula","vendor":"dracula","appearance":"dark","tokens":{"background":{"base":"#282a36","surface":"#21222c","overlay":"#44475a"},"text":{"primary":"#f8f8f2","secondary":"#6272a4","inverse":"#282a36"},"brand":{"primary":"#bd93f9"},"state":{"info":"#8be9fd","success":"#50fa7b","warning":"#f1fa8c","danger":"#ff5555"},"border":{"default":"#44475a"},"accent":{"link":"#8be9fd"},"typography":{"fonts":{"sans":"ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \\"Segoe UI\\", Roboto, \\"Helvetica Neue\\", Arial, sans-serif","mono":"\\"Fira Code\\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\"Liberation Mono\\", \\"Courier New\\", monospace"},"webFonts":["https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;600&display=swap"]},"content":{"heading":{"h1":"#ff79c6","h2":"#bd93f9","h3":"#8be9fd","h4":"#50fa7b","h5":"#ffb86c","h6":"#f1fa8c"},"body":{"primary":"#f8f8f2","secondary":"#6272a4"},"link":{"default":"#8be9fd"},"selection":{"fg":"#f8f8f2","bg":"#44475a"},"blockquote":{"border":"#bd93f9","fg":"#6272a4","bg":"#21222c"},"codeInline":{"fg":"#50fa7b","bg":"#21222c"},"codeBlock":{"fg":"#f8f8f2","bg":"#21222c"},"table":{"border":"#44475a","stripe":"#21222c","theadBg":"#44475a","cellBg":"#282a36","headerFg":"#f8f8f2"}},"spacing":{"xs":"0.25rem","sm":"0.5rem","md":"1rem","lg":"1.5rem","xl":"2rem"},"elevation":{"none":"none","sm":"0 1px 2px 0 rgba(0, 0, 0, 0.05)","md":"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)","lg":"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)","xl":"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)"},"animation":{"durationFast":"150ms","durationNormal":"300ms","durationSlow":"500ms","easingDefault":"cubic-bezier(0.4, 0, 0.2, 1)","easingEmphasized":"cubic-bezier(0.05, 0.7, 0.1, 1)"},"opacity":{"disabled":0.5,"hover":0.8,"pressed":0.6},"components":{"card":{"bg":"#21222c","border":"#6272a4","headerBg":"#282a36","footerBg":"#21222c"},"message":{"bg":"#282a36","headerBg":"#44475a","border":"#6272a4","bodyFg":"#f8f8f2"},"panel":{"bg":"#21222c","headerBg":"#44475a","headerFg":"#f8f8f2","border":"#6272a4","blockBg":"#282a36","blockHoverBg":"#2e303e","blockActiveBg":"#44475a"},"box":{"bg":"#21222c","border":"#6272a4"},"notification":{"bg":"#282a36","border":"#6272a4"},"modal":{"bg":"rgba(40, 42, 54, 0.9)","cardBg":"#21222c","headerBg":"#282a36","footerBg":"#21222c"},"dropdown":{"bg":"#21222c","itemHoverBg":"#2e303e","border":"#6272a4"},"tabs":{"border":"#6272a4","linkBg":"#2e303e","linkActiveBg":"#21222c","linkHoverBg":"#44475a"}}}},"github-dark":{"id":"github-dark","label":"GitHub Dark","vendor":"github","appearance":"dark","tokens":{"background":{"base":"#0d1117","surface":"#151b23","overlay":"#010409"},"text":{"primary":"#f0f6fc","secondary":"#9198a1","inverse":"#ffffff"},"brand":{"primary":"#1f6feb"},"state":{"info":"#4493f8","success":"#3fb950","warning":"#d29922","danger":"#f85149"},"border":{"default":"#3d444d"},"accent":{"link":"#4493f8"},"typography":{"fonts":{"sans":"\\"Mona Sans\\", -apple-system, BlinkMacSystemFont, \\"Segoe UI\\", \\"Noto Sans\\", Helvetica, Arial, sans-serif, \\"Apple Color Emoji\\", \\"Segoe UI Emoji\\"","mono":"\\"Hubot Sans\\", ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, \\"Liberation Mono\\", monospace"},"webFonts":["https://github.githubassets.com/assets/mona-sans-webfont.woff2","https://github.githubassets.com/assets/hubot-sans-webfont.woff2"]},"content":{"heading":{"h1":"#3fb950","h2":"#4493f8","h3":"#1f6feb","h4":"#d29922","h5":"#3fb950","h6":"#f85149"},"body":{"primary":"#f0f6fc","secondary":"#9198a1"},"link":{"default":"#4493f8"},"selection":{"fg":"#f0f6fc","bg":"#264f78"},"blockquote":{"border":"#3d444d","fg":"#9198a1","bg":"#151b23"},"codeInline":{"fg":"#f0f6fc","bg":"#151b23"},"codeBlock":{"fg":"#f0f6fc","bg":"#151b23"},"table":{"border":"#3d444d","stripe":"#151b23","theadBg":"#151b23"}}}},"github-light":{"id":"github-light","label":"GitHub Light","vendor":"github","appearance":"light","tokens":{"background":{"base":"#ffffff","surface":"#f6f8fa","overlay":"#f6f8fa"},"text":{"primary":"#1f2328","secondary":"#59636e","inverse":"#ffffff"},"brand":{"primary":"#0969da"},"state":{"info":"#0969da","success":"#1a7f37","warning":"#9a6700","danger":"#d1242f"},"border":{"default":"#d1d9e0"},"accent":{"link":"#0969da"},"typography":{"fonts":{"sans":"\\"Mona Sans\\", -apple-system, BlinkMacSystemFont, \\"Segoe UI\\", \\"Noto Sans\\", Helvetica, Arial, sans-serif, \\"Apple Color Emoji\\", \\"Segoe UI Emoji\\"","mono":"\\"Hubot Sans\\", ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, \\"Liberation Mono\\", monospace"},"webFonts":["https://github.githubassets.com/assets/mona-sans-webfont.woff2","https://github.githubassets.com/assets/hubot-sans-webfont.woff2"]},"content":{"heading":{"h1":"#1a7f37","h2":"#0969da","h3":"#0969da","h4":"#9a6700","h5":"#1a7f37","h6":"#d1242f"},"body":{"primary":"#1f2328","secondary":"#59636e"},"link":{"default":"#0969da"},"selection":{"fg":"#1f2328","bg":"#b6e3ff"},"blockquote":{"border":"#d1d9e0","fg":"#59636e","bg":"#f6f8fa"},"codeInline":{"fg":"#1f2328","bg":"#f6f8fa"},"codeBlock":{"fg":"#1f2328","bg":"#f6f8fa"},"table":{"border":"#d1d9e0","stripe":"#f6f8fa","theadBg":"#f6f8fa"}}}},"nord":{"id":"nord","label":"Nord","vendor":"nord","appearance":"dark","iconUrl":"/assets/img/nord.png","tokens":{"background":{"base":"#2e3440","surface":"#3b4252","overlay":"#434c5e"},"text":{"primary":"#eceff4","secondary":"#d8dee9","inverse":"#2e3440"},"brand":{"primary":"#88c0d0"},"state":{"info":"#5e81ac","success":"#a3be8c","warning":"#ebcb8b","danger":"#bf616a"},"border":{"default":"#4c566a"},"accent":{"link":"#88c0d0"},"typography":{"fonts":{"sans":"Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, \\"Apple Color Emoji\\", \\"Segoe UI Emoji\\"","mono":"JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\"Liberation Mono\\", \\"Courier New\\", monospace"},"webFonts":["https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap","https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&display=swap"]},"content":{"heading":{"h1":"#8fbcbb","h2":"#88c0d0","h3":"#81a1c1","h4":"#ebcb8b","h5":"#d08770","h6":"#b48ead"},"body":{"primary":"#eceff4","secondary":"#d8dee9"},"link":{"default":"#88c0d0"},"selection":{"fg":"#eceff4","bg":"#4c566a"},"blockquote":{"border":"#4c566a","fg":"#d8dee9","bg":"#3b4252"},"codeInline":{"fg":"#eceff4","bg":"#434c5e"},"codeBlock":{"fg":"#eceff4","bg":"#434c5e"},"table":{"border":"#4c566a","stripe":"#434c5e","theadBg":"#3b4252"}}}},"rose-pine-dawn":{"id":"rose-pine-dawn","label":"Rosé Pine Dawn","vendor":"rose-pine","appearance":"light","iconUrl":"/assets/img/rose-pine-dawn.png","tokens":{"background":{"base":"#faf4ed","surface":"#fffaf3","overlay":"#f2e9e1"},"text":{"primary":"#575279","secondary":"#797593","inverse":"#faf4ed"},"brand":{"primary":"#907aa9"},"state":{"info":"#56949f","success":"#286983","warning":"#ea9d34","danger":"#b4637a"},"border":{"default":"#dfdad9"},"accent":{"link":"#907aa9"},"typography":{"fonts":{"sans":"Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, \\"Apple Color Emoji\\", \\"Segoe UI Emoji\\"","mono":"JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\"Liberation Mono\\", \\"Courier New\\", monospace"},"webFonts":["https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap","https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&display=swap"]},"content":{"heading":{"h1":"#286983","h2":"#907aa9","h3":"#56949f","h4":"#ea9d34","h5":"#d7827e","h6":"#b4637a"},"body":{"primary":"#575279","secondary":"#797593"},"link":{"default":"#907aa9"},"selection":{"fg":"#575279","bg":"#cecacd"},"blockquote":{"border":"#cecacd","fg":"#575279","bg":"#fffaf3"},"codeInline":{"fg":"#575279","bg":"#f2e9e1"},"codeBlock":{"fg":"#575279","bg":"#f2e9e1"},"table":{"border":"#cecacd","stripe":"#f2e9e1","theadBg":"#dfdad9"}}}},"rose-pine-moon":{"id":"rose-pine-moon","label":"Rosé Pine Moon","vendor":"rose-pine","appearance":"dark","iconUrl":"/assets/img/rose-pine-moon.png","tokens":{"background":{"base":"#232136","surface":"#2a273f","overlay":"#393552"},"text":{"primary":"#e0def4","secondary":"#908caa","inverse":"#232136"},"brand":{"primary":"#c4a7e7"},"state":{"info":"#9ccfd8","success":"#3e8fb0","warning":"#f6c177","danger":"#eb6f92"},"border":{"default":"#44415a"},"accent":{"link":"#c4a7e7"},"typography":{"fonts":{"sans":"Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, \\"Apple Color Emoji\\", \\"Segoe UI Emoji\\"","mono":"JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\"Liberation Mono\\", \\"Courier New\\", monospace"},"webFonts":["https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap","https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&display=swap"]},"content":{"heading":{"h1":"#3e8fb0","h2":"#c4a7e7","h3":"#9ccfd8","h4":"#f6c177","h5":"#ea9a97","h6":"#eb6f92"},"body":{"primary":"#e0def4","secondary":"#908caa"},"link":{"default":"#c4a7e7"},"selection":{"fg":"#e0def4","bg":"#56526e"},"blockquote":{"border":"#56526e","fg":"#e0def4","bg":"#2a273f"},"codeInline":{"fg":"#e0def4","bg":"#393552"},"codeBlock":{"fg":"#e0def4","bg":"#393552"},"table":{"border":"#56526e","stripe":"#393552","theadBg":"#44415a"}}}},"rose-pine":{"id":"rose-pine","label":"Rosé Pine","vendor":"rose-pine","appearance":"dark","iconUrl":"/assets/img/rose-pine.png","tokens":{"background":{"base":"#191724","surface":"#1f1d2e","overlay":"#26233a"},"text":{"primary":"#e0def4","secondary":"#908caa","inverse":"#191724"},"brand":{"primary":"#c4a7e7"},"state":{"info":"#9ccfd8","success":"#31748f","warning":"#f6c177","danger":"#eb6f92"},"border":{"default":"#403d52"},"accent":{"link":"#c4a7e7"},"typography":{"fonts":{"sans":"Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, \\"Apple Color Emoji\\", \\"Segoe UI Emoji\\"","mono":"JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\"Liberation Mono\\", \\"Courier New\\", monospace"},"webFonts":["https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap","https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&display=swap"]},"content":{"heading":{"h1":"#31748f","h2":"#c4a7e7","h3":"#9ccfd8","h4":"#f6c177","h5":"#ebbcba","h6":"#eb6f92"},"body":{"primary":"#e0def4","secondary":"#908caa"},"link":{"default":"#c4a7e7"},"selection":{"fg":"#e0def4","bg":"#524f67"},"blockquote":{"border":"#524f67","fg":"#e0def4","bg":"#1f1d2e"},"codeInline":{"fg":"#e0def4","bg":"#26233a"},"codeBlock":{"fg":"#e0def4","bg":"#26233a"},"table":{"border":"#524f67","stripe":"#26233a","theadBg":"#403d52"}}}},"solarized-dark":{"id":"solarized-dark","label":"Solarized Dark","vendor":"solarized","appearance":"dark","iconUrl":"/assets/img/solarized-dark.png","tokens":{"background":{"base":"#002b36","surface":"#073642","overlay":"#586e75"},"text":{"primary":"#839496","secondary":"#657b83","inverse":"#002b36"},"brand":{"primary":"#268bd2"},"state":{"info":"#2aa198","success":"#859900","warning":"#b58900","danger":"#dc322f"},"border":{"default":"#586e75"},"accent":{"link":"#268bd2"},"typography":{"fonts":{"sans":"Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, \\"Apple Color Emoji\\", \\"Segoe UI Emoji\\"","mono":"JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\"Liberation Mono\\", \\"Courier New\\", monospace"},"webFonts":["https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap","https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&display=swap"]},"content":{"heading":{"h1":"#268bd2","h2":"#2aa198","h3":"#859900","h4":"#b58900","h5":"#cb4b16","h6":"#d33682"},"body":{"primary":"#839496","secondary":"#657b83"},"link":{"default":"#268bd2"},"selection":{"fg":"#fdf6e3","bg":"#586e75"},"blockquote":{"border":"#657b83","fg":"#839496","bg":"#073642"},"codeInline":{"fg":"#2aa198","bg":"#073642"},"codeBlock":{"fg":"#93a1a1","bg":"#073642"},"table":{"border":"#586e75","stripe":"#073642","theadBg":"#586e75"}}}},"solarized-light":{"id":"solarized-light","label":"Solarized Light","vendor":"solarized","appearance":"light","iconUrl":"/assets/img/solarized-light.png","tokens":{"background":{"base":"#fdf6e3","surface":"#eee8d5","overlay":"#93a1a1"},"text":{"primary":"#586e75","secondary":"#657b83","inverse":"#fdf6e3"},"brand":{"primary":"#268bd2"},"state":{"info":"#2aa198","success":"#859900","warning":"#b58900","danger":"#dc322f"},"border":{"default":"#93a1a1"},"accent":{"link":"#268bd2"},"typography":{"fonts":{"sans":"Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, \\"Apple Color Emoji\\", \\"Segoe UI Emoji\\"","mono":"JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\"Liberation Mono\\", \\"Courier New\\", monospace"},"webFonts":["https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap","https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&display=swap"]},"content":{"heading":{"h1":"#268bd2","h2":"#2aa198","h3":"#859900","h4":"#b58900","h5":"#cb4b16","h6":"#d33682"},"body":{"primary":"#586e75","secondary":"#657b83"},"link":{"default":"#268bd2"},"selection":{"fg":"#002b36","bg":"#93a1a1"},"blockquote":{"border":"#93a1a1","fg":"#657b83","bg":"#eee8d5"},"codeInline":{"fg":"#6c71c4","bg":"#eee8d5"},"codeBlock":{"fg":"#073642","bg":"#eee8d5"},"table":{"border":"#93a1a1","stripe":"#eee8d5","theadBg":"#eee8d5"}}}}}'),byVendor:{bulma:{name:"Bulma",homepage:"https://bulma.io/",themes:["bulma-dark","bulma-light"]},catppuccin:{name:"Catppuccin (synced)",homepage:"https://catppuccin.com/palette/",themes:["catppuccin-frappe","catppuccin-latte","catppuccin-macchiato","catppuccin-mocha"]},dracula:{name:"Dracula",homepage:"https://draculatheme.com/",themes:["dracula"]},github:{name:"GitHub (synced)",homepage:"https://primer.style/",themes:["github-dark","github-light"]},nord:{name:"Nord",homepage:"https://www.nordtheme.com/",themes:["nord"]},"rose-pine":{name:"Rosé Pine (synced)",homepage:"https://rosepinetheme.com/",themes:["rose-pine-dawn","rose-pine-moon","rose-pine"]},solarized:{name:"Solarized",homepage:"https://ethanschoonover.com/solarized/",themes:["solarized-dark","solarized-light"]}}},v=Object.values(U.themes).map(e=>({id:e.id,label:e.label,vendor:e.vendor,appearance:e.appearance,...e.iconUrl!==void 0&&{iconUrl:e.iconUrl},tokens:e.tokens})),te=Object.fromEntries(v.map(e=>[e.id,e]));Object.entries(U.byVendor).map(([e,a])=>[e,{id:e,name:a.name,homepage:a.homepage,flavors:a.themes.map(t=>te[t]).filter(Boolean)}]),[...new Set(v.map(e=>e.vendor))];const oe={bulma:"bulma",catppuccin:"catppuccin",github:"github",dracula:"dracula",nord:"nord","rose-pine":"rose-pine",solarized:"solarized"},ne="bulma",re={bulma:"assets/img/turbo-themes-logo.png",catppuccin:{light:"assets/img/catppuccin-logo-latte.png",dark:"assets/img/catppuccin-logo-macchiato.png"},github:{light:"assets/img/github-logo-light.png",dark:"assets/img/github-logo-dark.png"},dracula:"assets/img/dracula-logo.png",nord:"assets/img/nord.png","rose-pine":{light:"assets/img/rose-pine-dawn.png",dark:"assets/img/rose-pine.png"},solarized:{light:"assets/img/solarized-light.png",dark:"assets/img/solarized-dark.png"}},se={"bulma-light":"Classic Bulma look with a bright, neutral palette.","bulma-dark":"Dark Bulma theme tuned for low-light reading.","catppuccin-latte":"Light, soft Catppuccin palette for daytime use.","catppuccin-frappe":"Balanced dark Catppuccin theme for focused work.","catppuccin-macchiato":"Deep, atmospheric Catppuccin variant with rich contrast.","catppuccin-mocha":"Cozy, high-contrast Catppuccin theme for late-night sessions.",dracula:"Iconic Dracula dark theme with vibrant accents.","github-light":"GitHub-inspired light theme suited for documentation and UI heavy pages.","github-dark":"GitHub dark theme optimized for code-heavy views.",nord:"Arctic, north-bluish color palette inspired by the polar night.","rose-pine":"Elegant dark theme with natural pine and soho vibes.","rose-pine-moon":"Deeper variant of Rosé Pine with enhanced contrast.","rose-pine-dawn":"Light Rosé Pine variant for daytime use.","solarized-dark":"Solarized Dark with a balanced, low-contrast palette.","solarized-light":"Solarized Light tuned for bright, daylight-friendly UIs."};function ie(e){return oe[e]??ne}function ce(e,a){const t=re[e];if(t)return typeof t=="string"?t:t[a]}function de(e,a){return se[e]??`${a} theme`}function le(e){return{bg:e.background.base,surface:e.background.surface,accent:e.brand.primary,text:e.text.primary}}function fe(e){const a=ie(e.vendor);return{id:e.id,name:e.label,description:de(e.id,e.label),cssFile:`packages/css/dist/themes/${e.id}.css`,icon:ce(e.vendor,e.appearance),family:a,vendor:e.vendor,appearance:e.appearance,colors:le(e.tokens)}}let L=null,M=null;function O(){return L||(L=v.map(fe)),L||[]}function B(){return M||(M=new Set(v.map(e=>e.id))),M}function pe(e){const a=O();return a.find(t=>t.id===e)||a.find(t=>t.id===E)||a[0]}async function C(e,a){const t=pe(a);if(!t){g(p.NO_THEMES_AVAILABLE());return}const o=F(e),n=e.getElementById(u.THEME_FLAVOR_TRIGGER);n&&n.classList.add("is-loading");try{ee(e,t.id),await ae(e,t,o);const s=e.getElementById(u.THEME_FLAVOR_TRIGGER_ICON);if(s&&t.icon)try{s.src=D(t.icon,o);const d=R[t.family]?.name??t.family;s.alt=`${d} ${t.name}`,s.title=`${d} ${t.name}`}catch{g(p.INVALID_ICON_PATH(t.id))}const c=e.getElementById(u.THEME_FLAVOR_TRIGGER_LABEL);c&&(c.textContent=t.name),e.querySelectorAll(y.DROPDOWN_ITEMS).forEach(r=>{A(r,r.getAttribute("data-theme-id")===t.id)})}finally{n&&n.classList.remove("is-loading")}}function ge(e,a){return H(e.documentElement)||a}function be(e,a){const{trigger:t,dropdown:o}=e,n=d=>{t.setAttribute("aria-expanded",String(d))},s=d=>{if(d<0||d>=a.menuItems.length)return;const i=a.menuItems[d];S(a.menuItems,"-1"),i.setAttribute("tabindex","0"),i.focus(),a.currentIndex=d};return{updateAriaExpanded:n,focusMenuItem:s,closeDropdown:(d={})=>{const{restoreFocus:i=!0}=d;o.classList.remove("is-active"),n(!1),S(a.menuItems,"-1"),a.currentIndex=-1,i&&t.focus()},toggleDropdown:(d=!1)=>{const i=o.classList.toggle("is-active");if(n(i),i)d&&a.menuItems.length>0&&s(0);else{a.currentIndex=-1,S(a.menuItems,"-1");for(const l of a.menuItems){const f=l.classList.contains("is-active");A(l,f)}}}}}function P(e,a){return e<a-1?e+1:0}function z(e,a){return e>0?e-1:a-1}function me(e,a,t,o){const{focusMenuItem:n,toggleDropdown:s,updateAriaExpanded:c}=o,r=t.menuItems.length;switch(e.key){case"Enter":case" ":e.preventDefault(),s(!a.classList.contains("is-active"));break;case"ArrowDown":if(e.preventDefault(),!a.classList.contains("is-active"))a.classList.add("is-active"),c(!0),n(0);else{const d=t.currentIndex<0?0:P(t.currentIndex,r);n(d)}break;case"ArrowUp":if(e.preventDefault(),!a.classList.contains("is-active"))a.classList.add("is-active"),c(!0),n(r-1);else{const d=t.currentIndex<0?r-1:t.currentIndex;n(z(d,r))}break}}function ue(e,a,t,o,n){const{focusMenuItem:s,closeDropdown:c}=n,r=o.menuItems.length;switch(e.key){case"ArrowDown":e.preventDefault(),s(P(a,r));break;case"ArrowUp":e.preventDefault(),s(z(a,r));break;case"Escape":e.preventDefault(),c();break;case"Enter":case" ":e.preventDefault(),t.click();break;case"Home":e.preventDefault(),s(0);break;case"End":e.preventDefault(),s(r-1);break}}function he(e,a,t,o,n){const{trigger:s,dropdown:c}=a,{closeDropdown:r,toggleDropdown:d}=o,i=n.signal;s.addEventListener("click",l=>{l.preventDefault(),d()},{signal:i}),e.addEventListener("click",l=>{c.contains(l.target)||r({restoreFocus:!1})},{signal:i}),e.addEventListener("keydown",l=>{l.key==="Escape"&&c.classList.contains("is-active")&&r({restoreFocus:!0})},{signal:i}),s.addEventListener("keydown",l=>me(l,c,t,o),{signal:i});for(const[l,f]of t.menuItems.entries())f.addEventListener("keydown",m=>ue(m,l,f,t,o),{signal:i})}function ye(e){const a=e.createElementNS("http://www.w3.org/2000/svg","svg");a.setAttribute("width","16"),a.setAttribute("height","16"),a.setAttribute("viewBox","0 0 24 24"),a.setAttribute("fill","none"),a.setAttribute("stroke","currentColor"),a.setAttribute("stroke-width","3"),a.setAttribute("stroke-linecap","round"),a.setAttribute("stroke-linejoin","round");const t=e.createElementNS("http://www.w3.org/2000/svg","polyline");return t.setAttribute("points","20 6 9 17 4 12"),a.appendChild(t),a}function Ee(e,a,t){const{documentObj:o,baseUrl:n,currentThemeId:s,selectEl:c,closeDropdown:r,onThemeSelect:d}=e,i=o.createElement("button");i.type="button",i.className="dropdown-item theme-item",i.setAttribute("data-theme-id",a.id),i.setAttribute("data-appearance",a.appearance),i.setAttribute("role","menuitemradio"),i.setAttribute("aria-label",`${t.name} ${a.name} (${a.appearance}). ${a.description}`),i.setAttribute("tabindex","-1");const l=a.id===s;if(A(i,l),a.icon){const b=o.createElement("img");b.className="theme-icon",b.src=n?`${n}/${a.icon}`:a.icon,b.alt=`${t.name} ${a.name}`,b.width=24,b.height=24,i.appendChild(b)}else{const b=o.createElement("span");b.className="theme-icon theme-icon-placeholder",b.setAttribute("aria-hidden","true"),i.appendChild(b)}const f=o.createElement("div");f.className="theme-copy";const m=o.createElement("span");m.className="theme-title",m.textContent=`${t.name} · ${a.name}`,f.appendChild(m);const T=o.createElement("span");T.className="theme-description",T.textContent=a.description,f.appendChild(T),i.appendChild(f);const x=o.createElement("span");return x.className="theme-check",x.appendChild(ye(o)),i.appendChild(x),i.addEventListener("click",b=>{b.preventDefault(),d(a.id),c&&(c.value=a.id,c.dispatchEvent(new Event("change",{bubbles:!0}))),r({restoreFocus:!0})}),i}function we(e,a,t,o,n){const{documentObj:s}=e;if(t.length===0)return null;const c=[],r=s.createElement("div");r.className="theme-family-group",r.setAttribute("role","group"),r.setAttribute("aria-labelledby",`theme-family-${a}`),r.style&&typeof r.style.setProperty=="function"&&r.style.setProperty("--animation-delay",`${n}ms`);const d=s.createElement("div");d.className="theme-family-header",d.id=`theme-family-${a}`;const i=s.createElement("span");i.className="theme-family-name",i.textContent=o.name,d.appendChild(i),r.appendChild(d);const l=s.createElement("div");return l.className="theme-family-items",t.forEach(f=>{const m=Ee(e,f,o);c.push(m),l.appendChild(m)}),r.appendChild(l),{group:r,items:c}}function ve(e,a,t,o){const n=Object.keys(o);let s=0;n.forEach(c=>{const r=t.filter(l=>l.family===c),d=o[c];if(!d)return;const i=we(e,c,r,d,s);i&&(e.menuItems.push(...i.items),a.appendChild(i.group),s+=30)})}function Ie(e,a,t,o){const{documentObj:n,onThemeSelect:s}=e;for(;a.firstChild;)a.removeChild(a.firstChild);t.forEach(c=>{const r=n.createElement("option");r.value=c.id,r.textContent=c.name,r.selected=c.id===e.currentThemeId,a.appendChild(r)}),a.disabled=!1,a.addEventListener("change",c=>{const d=c.target?.value||o;s(d)})}function ke(e){const a=e.getElementById(u.THEME_FLAVOR_MENU),t=e.getElementById(u.THEME_FLAVOR_TRIGGER),o=t?.closest(y.NAVBAR_DROPDOWN),n=e.getElementById(u.THEME_FLAVOR_SELECT);return!a||!t||!o?null:{dropdownMenu:a,trigger:t,dropdown:o,selectEl:n}}function V(e){return e.replace(/\/$/,"")||"/"}function $(e){const a=e.location.pathname,t=V(a),o=e.querySelectorAll(y.NAVBAR_ITEM);let n=null;const s=[];o.forEach(r=>{const d=r;if(d.href)try{const i=V(new URL(d.href).pathname);t===i?n=r:s.push(r)}catch{}});for(const r of s)r.classList.remove("is-active"),r.removeAttribute("aria-current");n&&(n.classList.add("is-active"),n.setAttribute("aria-current","page"));const c=e.querySelector(y.NAV_REPORTS);c&&(["/coverage","/coverage-python","/coverage-swift","/coverage-ruby","/playwright","/playwright-examples","/lighthouse"].some(i=>t===i||t.startsWith(i+"/"))?c.classList.add("is-active"):c.classList.remove("is-active"))}typeof window<"u"&&(window.initNavbar=$);function G(e){e.querySelectorAll(y.HIGHLIGHT_PRE).forEach(a=>{a.hasAttribute("tabindex")||a.setAttribute("tabindex","0"),a.hasAttribute("role")||a.setAttribute("role","region"),a.hasAttribute("aria-label")||a.setAttribute("aria-label","Code block")})}async function J(e,a){X(a);const t=a.__INITIAL_THEME__,o=N(a,B());if(t&&t===o&&H(e.documentElement)===o){const s=`theme-${o}-css`;e.getElementById(s)||await C(e,o);return}await C(e,o)}async function q(e,a){const t=new AbortController,o=ke(e);if(!o)return{cleanup:()=>t.abort()};const{dropdownMenu:n,selectEl:s}=o,c=F(e),r=O(),d={currentIndex:-1,menuItems:[]},i=N(a,B())||ge(e,E),l=be(o,d),f={documentObj:e,baseUrl:c,currentThemeId:i,selectEl:s,menuItems:d.menuItems,closeDropdown:l.closeDropdown,onThemeSelect:async m=>{Q(a,m,B()),await C(e,m)}};return s&&Ie(f,s,r,E),ve(f,n,r,R),he(e,o,d,l,t),l.updateAriaExpanded(!1),o.dropdown.classList.remove("is-active"),{cleanup:()=>t.abort()}}return typeof document<"u"&&typeof window<"u"&&document.addEventListener("DOMContentLoaded",async()=>{try{await J(document,window);const{cleanup:e}=await q(document,window);G(document);const a=()=>{e(),window.removeEventListener("pagehide",a)};window.addEventListener("pagehide",a)}catch(e){g(p.INIT_FAILED(e))}}),h.enhanceAccessibility=G,h.initNavbar=$,h.initTheme=J,h.wireFlavorSelector=q,Object.defineProperty(h,Symbol.toStringTag,{value:"Module"}),h})({});
|
data/lib/turbo-themes/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: turbo-themes
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.15.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Turbo Coder
|
|
@@ -112,6 +112,8 @@ files:
|
|
|
112
112
|
- assets/css/themes/rose-pine-dawn.css
|
|
113
113
|
- assets/css/themes/rose-pine-moon.css
|
|
114
114
|
- assets/css/themes/rose-pine.css
|
|
115
|
+
- assets/css/themes/solarized-dark.css
|
|
116
|
+
- assets/css/themes/solarized-light.css
|
|
115
117
|
- assets/css/themes/turbo/bulma-dark.css
|
|
116
118
|
- assets/css/themes/turbo/bulma-light.css
|
|
117
119
|
- assets/css/themes/turbo/catppuccin-frappe.css
|
|
@@ -125,6 +127,8 @@ files:
|
|
|
125
127
|
- assets/css/themes/turbo/rose-pine-dawn.css
|
|
126
128
|
- assets/css/themes/turbo/rose-pine-moon.css
|
|
127
129
|
- assets/css/themes/turbo/rose-pine.css
|
|
130
|
+
- assets/css/themes/turbo/solarized-dark.css
|
|
131
|
+
- assets/css/themes/turbo/solarized-light.css
|
|
128
132
|
- assets/css/turbo-base.css
|
|
129
133
|
- assets/css/turbo-core.css
|
|
130
134
|
- assets/css/turbo-syntax.css
|
|
@@ -146,6 +150,8 @@ files:
|
|
|
146
150
|
- assets/img/rose-pine-dawn.png
|
|
147
151
|
- assets/img/rose-pine-moon.png
|
|
148
152
|
- assets/img/rose-pine.png
|
|
153
|
+
- assets/img/solarized-dark.png
|
|
154
|
+
- assets/img/solarized-light.png
|
|
149
155
|
- assets/img/turbo-themes-logo-dark.png
|
|
150
156
|
- assets/img/turbo-themes-logo-dark.webp
|
|
151
157
|
- assets/img/turbo-themes-logo.png
|