kempo-css 1.3.12 → 2.0.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.
- package/.github/workflows/test.yml +25 -25
- package/AGENTS.md +43 -0
- package/CHANGELOG.md +107 -86
- package/LICENSE.md +21 -21
- package/dist/kempo.min.css +1 -1
- package/docs/components/ThemePropertyInput.js +117 -10
- package/docs/demo.inc.html +213 -213
- package/docs/examples/responsive-grid.html +1 -1
- package/docs/index.html +1390 -25
- package/docs/init.js +1 -1
- package/docs/kempo-hljs.css +124 -124
- package/docs/kempo.css +1210 -1177
- package/docs/kempo.min.css +1 -1
- package/docs/manifest.json +87 -87
- package/docs/nav.js +32 -32
- package/docs/theme-editor.html +10 -10
- package/package.json +1 -1
- package/scripts/build.js +173 -173
- package/src/kempo-hljs.css +124 -124
- package/src/kempo.css +1210 -1177
- package/tests/base_reset.browser-test.js +201 -201
- package/tests/buttons.browser-test.js +223 -223
- package/tests/colors.browser-test.js +277 -277
- package/tests/components.browser-test.js +131 -144
- package/tests/css_variables.browser-test.js +170 -170
- package/tests/display_flex.browser-test.js +159 -159
- package/tests/elevation.browser-test.js +239 -0
- package/tests/forms.browser-test.js +224 -224
- package/tests/rows_columns.browser-test.js +171 -171
- package/tests/spacing.browser-test.js +310 -310
- package/tests/tables.browser-test.js +192 -192
- package/tests/typography.browser-test.js +255 -255
- package/.github/copilot-instructions.md +0 -165
- package/docs/docs.inc.html +0 -955
- package/src/components/ThemePropertyInput.js +0 -154
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
name: Run Unit Tests
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
branches:
|
|
6
|
-
- main
|
|
7
|
-
|
|
8
|
-
jobs:
|
|
9
|
-
test:
|
|
10
|
-
runs-on: ubuntu-latest
|
|
11
|
-
steps:
|
|
12
|
-
- uses: actions/checkout@v4
|
|
13
|
-
with:
|
|
14
|
-
token: ${{ secrets.GITHUB_TOKEN }}
|
|
15
|
-
|
|
16
|
-
- uses: actions/setup-node@v4
|
|
17
|
-
with:
|
|
18
|
-
node-version: '20.x'
|
|
19
|
-
|
|
20
|
-
- run: npm ci
|
|
21
|
-
|
|
22
|
-
- name: Install Xvfb
|
|
23
|
-
run: sudo apt-get install -y xvfb
|
|
24
|
-
|
|
25
|
-
- name: Run Unit Tests
|
|
1
|
+
name: Run Unit Tests
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
test:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
steps:
|
|
12
|
+
- uses: actions/checkout@v4
|
|
13
|
+
with:
|
|
14
|
+
token: ${{ secrets.GITHUB_TOKEN }}
|
|
15
|
+
|
|
16
|
+
- uses: actions/setup-node@v4
|
|
17
|
+
with:
|
|
18
|
+
node-version: '20.x'
|
|
19
|
+
|
|
20
|
+
- run: npm ci
|
|
21
|
+
|
|
22
|
+
- name: Install Xvfb
|
|
23
|
+
run: sudo apt-get install -y xvfb
|
|
24
|
+
|
|
25
|
+
- name: Run Unit Tests
|
|
26
26
|
run: xvfb-run npm test
|
package/AGENTS.md
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Code Contribution Guidelines
|
|
2
|
+
|
|
3
|
+
## Project Structure
|
|
4
|
+
|
|
5
|
+
- The actual CSS file (the main file for this project) is at `src/kempo.css`.
|
|
6
|
+
- All documnentation should be in the `docs/` directory. This directory is used by GitHub as the "GitHub Pages", so all links need to be relative, and there will be a build script which copies all code to the `docs/` directory.
|
|
7
|
+
- Components used in the docs / theme builder should live within the docs directory directly, as they are not part of the distributed code for this project.
|
|
8
|
+
- All tests should live in the `tests/` directory. These use the kempo-testing-framework, do not assume they are jest/enszyme or any other popular testing framework, instead read the existing tests or the docs (https://github.com/dustinpoissant/kempo-testing-framework/blob/main/README.md) to understand how these tests work.
|
|
9
|
+
|
|
10
|
+
### Minimal Comments, Empty Lines, and Spacing
|
|
11
|
+
|
|
12
|
+
Use minimal comments. Assume readers understand the language. Some exceptions include:
|
|
13
|
+
- complex logic
|
|
14
|
+
- anti-patterns
|
|
15
|
+
- code organization
|
|
16
|
+
|
|
17
|
+
Do not put random empty lines within code; put them where they make sense for readability, for example:
|
|
18
|
+
- above and below definitions for functions and classes.
|
|
19
|
+
- to help break up large sections of logic to be more readable. If there are 100 lines of code with no breaks, it gets hard to read.
|
|
20
|
+
- above multi-line comments to indicate the comment belongs to the code below
|
|
21
|
+
|
|
22
|
+
No empty lines in css.
|
|
23
|
+
|
|
24
|
+
End each file with an empty line.
|
|
25
|
+
|
|
26
|
+
End each line with a `;` when possible, even if it is optional.
|
|
27
|
+
|
|
28
|
+
## Development Workflow
|
|
29
|
+
|
|
30
|
+
### Local Development Server
|
|
31
|
+
- **DO NOT** start a development server - one is already running
|
|
32
|
+
- Default port: **8083**
|
|
33
|
+
- Base URL: `http://localhost:4048/`
|
|
34
|
+
- Documentation URLs follow the directory/file structure in `docs/`
|
|
35
|
+
- Use this server for all testing and verification
|
|
36
|
+
|
|
37
|
+
### Testing and Verification
|
|
38
|
+
- **ALWAYS** verify changes using the live documentation on the running server
|
|
39
|
+
- Use Chrome DevTools Protocol (chrome-devtools-mcp) for interactive testing
|
|
40
|
+
- **DO NOT** create one-off test files or framework-less tests
|
|
41
|
+
- Test components in their natural documentation environment
|
|
42
|
+
- Validate both functionality and visual appearance
|
|
43
|
+
- Always add to the changelog after each commit. Assume the next version incrament will be a patch version unless stated otherwise.
|
package/CHANGELOG.md
CHANGED
|
@@ -1,86 +1,107 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
All notable changes to this project will be documented in this file.
|
|
4
|
-
|
|
5
|
-
## [
|
|
6
|
-
|
|
7
|
-
### Changed
|
|
8
|
-
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
## [1.3.
|
|
22
|
-
|
|
23
|
-
### Changed
|
|
24
|
-
-
|
|
25
|
-
|
|
26
|
-
## [1.3.
|
|
27
|
-
|
|
28
|
-
###
|
|
29
|
-
-
|
|
30
|
-
|
|
31
|
-
## [1.3.
|
|
32
|
-
|
|
33
|
-
###
|
|
34
|
-
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
### Added
|
|
64
|
-
- Added
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
-
|
|
81
|
-
|
|
82
|
-
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
-
|
|
86
|
-
-
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
## [2.0.0] - 2026-03-20
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
- **Breaking:** Redesigned elevation system from levels -2–3 to 0–10
|
|
9
|
+
- `elevation-*` classes now only set `z-index` (in increments of 10); level 2 is the page default (z-index 20)
|
|
10
|
+
- Added `shadow` class: combine with `elevation-*` to apply box-shadow — inset for levels 0–1, none for level 2, outset for levels 3–10
|
|
11
|
+
- Added `bg-elevation` class: combine with `elevation-*` to apply elevation-appropriate background colors
|
|
12
|
+
- Added 11 new CSS custom properties: `--c_bg_elevation_0` through `--c_bg_elevation_10` (`--c_bg_elevation_2` equals `var(--c_bg)`)
|
|
13
|
+
- Replaced old `--elevation_*_shadow` variables with `--shadow_0` through `--shadow_10` (and `__light`/`__dark` variants)
|
|
14
|
+
- Updated docs with separate sections for z-index, shadow, and bg-elevation utilities
|
|
15
|
+
- Updated tests: revised colors test and added `tests/elevation.browser-test.js` with 15 new tests
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
- Reorganized files
|
|
19
|
+
- Moved and updated .github/copilot-instructions.md -> AGENTS.md
|
|
20
|
+
|
|
21
|
+
## [1.3.12] - 2026-03-12
|
|
22
|
+
|
|
23
|
+
### Changed
|
|
24
|
+
- Updated github workflows
|
|
25
|
+
|
|
26
|
+
## [1.3.10] - 2026-02-26
|
|
27
|
+
|
|
28
|
+
### Changed
|
|
29
|
+
- Added `!important` to color utility classes for higher specificity
|
|
30
|
+
|
|
31
|
+
## [1.3.3] - 2026-01-30
|
|
32
|
+
|
|
33
|
+
### Fixed
|
|
34
|
+
- Fixed checkboxes and radio button styling
|
|
35
|
+
|
|
36
|
+
### Changed
|
|
37
|
+
- Moved dependencies to devDependencies (not needed for consumers, only development)
|
|
38
|
+
- CI workflow improvements for NPM publishing
|
|
39
|
+
|
|
40
|
+
> Versions 1.3.4–1.3.9 were published on the same day as CI/CD workflow fixes for NPM publishing; no CSS or feature changes.
|
|
41
|
+
|
|
42
|
+
## [1.3.2] - 2025-12-01
|
|
43
|
+
|
|
44
|
+
### Changed
|
|
45
|
+
- Changed license to MIT for jsDelivr compatibility
|
|
46
|
+
|
|
47
|
+
## [1.3.1] - 2025-12-01
|
|
48
|
+
|
|
49
|
+
### Fixed
|
|
50
|
+
- Fixed build output
|
|
51
|
+
|
|
52
|
+
## [1.3.0] - 2025-11-30
|
|
53
|
+
|
|
54
|
+
### Added
|
|
55
|
+
- Added elevation utility classes
|
|
56
|
+
- Added more drop shadow options
|
|
57
|
+
|
|
58
|
+
## [1.2.0] - 2025-11-29
|
|
59
|
+
|
|
60
|
+
### Fixed
|
|
61
|
+
- Fixed drop shadow utilities
|
|
62
|
+
|
|
63
|
+
### Added
|
|
64
|
+
- Added unit tests for drop shadows
|
|
65
|
+
|
|
66
|
+
## [1.1.0] - 2025-11-26
|
|
67
|
+
|
|
68
|
+
### Added
|
|
69
|
+
- Added section navigation to theme-editor sidemenu
|
|
70
|
+
- Removed kempo-ui dependency, now serving from CDN instead
|
|
71
|
+
|
|
72
|
+
## [1.0.9] - 2025-11-26
|
|
73
|
+
|
|
74
|
+
### Added
|
|
75
|
+
- Theme builder / theme editor
|
|
76
|
+
|
|
77
|
+
## [1.0.8] - 2025-10-29
|
|
78
|
+
|
|
79
|
+
### Added
|
|
80
|
+
- Added LICENSE file
|
|
81
|
+
|
|
82
|
+
## [1.0.7] - 2025-10-29
|
|
83
|
+
|
|
84
|
+
### Added
|
|
85
|
+
- Added icon support
|
|
86
|
+
- Added `no-scroll` utility class
|
|
87
|
+
- Started theme builder component
|
|
88
|
+
|
|
89
|
+
## [1.0.6] - 2025-10-01
|
|
90
|
+
|
|
91
|
+
### Changed
|
|
92
|
+
- Made select element options match the active theme
|
|
93
|
+
|
|
94
|
+
## [1.0.5] - 2025-08-22
|
|
95
|
+
|
|
96
|
+
### Added
|
|
97
|
+
- Initial release published to NPM
|
|
98
|
+
- Base CSS reset and theme system
|
|
99
|
+
- Typography utilities
|
|
100
|
+
- Color utilities
|
|
101
|
+
- Spacing utilities
|
|
102
|
+
- Flexbox and grid layout utilities
|
|
103
|
+
- Button styles
|
|
104
|
+
- Form styles
|
|
105
|
+
- Table styles
|
|
106
|
+
- Documentation site
|
|
107
|
+
- GitHub Actions workflow for automated NPM publishing
|
package/LICENSE.md
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
# MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2025 Dustin Poissant
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
# MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Dustin Poissant
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/dist/kempo.min.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{color-scheme:light;--ff_body:"Helvetica Neue",Helvetica,Arial,sans-serif;--ff_heading:"Helvetica Neue",Helvetica,Arial,sans-serif;--ff_mono:Consolas,monaco,monospace;--fs_base:16px;--fs_small:calc(0.6 * var(--fs_base));--fs_large:calc(1.5 * var(--fs_base));--fs_h6:var(--fs_base);--fs_h5:calc(1.25 * var(--fs_base));--fs_h4:calc(1.5 * var(--fs_base));--fs_h3:calc(1.75 * var(--fs_base));--fs_h2:calc(2 * var(--fs_base));--fs_h1:calc(2.5 * var(--fs_base));--fw_base:400;--fw_bold:700;--spacer:1rem;--spacer_h:calc(0.5 * var(--spacer));--spacer_q:calc(0.25 * var(--spacer));--line-height:1.35em;--container_width:90rem;--animation_ms:256ms;--radius:0.25rem;--link_decoration:underline;--input_padding:var(--spacer_h) var(--spacer);--input_border_width:1px;--btn_padding:var(--spacer_h) var(--spacer);--c_bg:light-dark(rgb(249, 249, 249), rgb(51, 51, 51));--c_bg__inv:light-dark(rgb(51, 51, 51), rgb(249, 249, 249));--c_bg__alt:light-dark(rgb(238, 238, 238), rgb(34, 34, 34));--c_overscroll:light-dark(rgb(255, 255, 255), rgb(0, 0, 0));--c_border:light-dark(rgb(204, 204, 204), rgb(119, 119, 119));--c_border__inv:light-dark(rgb(119, 119, 119), rgb(204, 204, 204));--c_primary:rgb(51, 102, 255);--c_primary__hover:rgb(17, 68, 221);--c_secondary:rgb(153, 51, 255);--c_secondary__hover:rgb(119, 17, 221);--c_success:rgb(0, 136, 0);--c_success__hover:rgb(0, 102, 0);--c_warning:rgb(255, 102, 0);--c_warning__hover:rgb(221, 68, 0);--c_danger:rgb(255, 0, 51);--c_danger__hover:rgb(221, 0, 17);--c_input_accent:rgb(51, 102, 255);--c_input_border:var(--c_border);--c_highlight:light-dark(rgba(41, 100, 210, 0.25), rgba(0, 89, 255, 0.25));--tc:light-dark(rgba(0, 0, 0, 0.93), rgba(255, 255, 255, 0.93));--tc_dark:light-dark(rgba(0, 0, 0, 0.93), rgba(0, 0, 0, 0.93));--tc_light:light-dark(rgba(255, 255, 255, 0.93), rgba(255, 255, 255, 0.93));--tc_inv:light-dark(rgba(255, 255, 255, 0.93), rgba(0, 0, 0, 0.93));--tc_muted:light-dark(rgba(0, 0, 0, 0.5), rgba(255, 255, 255, 0.5));--tc_on_primary:light-dark(rgba(255, 255, 255, 0.93), rgba(255, 255, 255, 0.93));--tc_on_secondary:light-dark(rgba(255, 255, 255, 0.93), rgba(255, 255, 255, 0.93));--tc_on_success:light-dark(rgba(255, 255, 255, 0.93), rgba(255, 255, 255, 0.93));--tc_on_warning:light-dark(rgba(255, 255, 255, 0.93), rgba(255, 255, 255, 0.93));--tc_on_danger:light-dark(rgba(255, 255, 255, 0.93), rgba(255, 255, 255, 0.93));--c_overlay:rgba(0, 0, 0, 0.5);--tc_primary:light-dark(#36f, rgb(138, 180, 248));--tc_secondary:light-dark(#93f, rgb(187, 102, 255));--tc_success:light-dark(#080, rgb(102, 187, 102));--tc_warning:light-dark(#f60, rgb(255, 153, 51));--tc_danger:light-dark(#f03, rgb(255, 85, 119));--btn_box_shadow:0 0 0 transparent;--btn_box_shadow__hover:0 0 0 transparent;--btn_border:transparent;--btn_bg:light-dark(rgb(221, 221, 221), rgb(170, 170, 170));--btn_bg__hover:light-dark(rgb(204, 204, 204), rgb(187, 187, 187));--btn_tc:light-dark(rgba(0, 0, 0, 0.93), rgba(0, 0, 0, 0.93));--btn_transparent__hover:light-dark(rgba(0, 0, 0, 0.05), rgba(255, 255, 255, 0.05));--tc_link:var(--tc_primary);--tc_link__hover:var(--tc_secondary);--tc_link__inv:var(--tc_primary__inv);--tc_link__inv__hover:var(--tc_secondary__inv);--focus_shadow:0 0 2px 2px var(--c_primary);--focus_shadow_on_primary:0 0 2px 2px var(--tc_on_primary);--input_bg:light-dark(white, var(--c_bg__alt));--input_tc:light-dark(rgba(0, 0, 0, 0.93), var(--tc));--drop_shadow__light:0 0.25rem 0.5rem rgba(0, 0, 0, 0.333);--drop_shadow__dark:0 0.25rem 0.5rem rgba(0, 0, 0, 0.5);--drop_shadow:var(--drop_shadow__light);--date_picker_icon_filter:light-dark(invert(0), invert(1));--elevation_-2_bg:light-dark(rgb(215, 215, 215), rgb(25, 25, 25));--elevation_-1_bg:light-dark(rgb(232, 232, 232), rgb(38, 38, 38));--elevation_0_bg:var(--c_bg);--elevation_1_bg:light-dark(rgb(255, 255, 255), rgb(64, 64, 64));--elevation_2_bg:light-dark(rgb(255, 255, 255), rgb(77, 77, 77));--elevation_3_bg:light-dark(rgb(255, 255, 255), rgb(90, 90, 90));--elevation_-2_shadow__light:inset 0 2px 6px rgba(0, 0, 0, 0.18),inset 0 1px 3px rgba(0, 0, 0, 0.12);--elevation_-1_shadow__light:inset 0 1px 3px rgba(0, 0, 0, 0.1),inset 0 1px 2px rgba(0, 0, 0, 0.06);--elevation_0_shadow:none;--elevation_1_shadow__light:0 1px 3px rgba(0, 0, 0, 0.1),0 1px 2px rgba(0, 0, 0, 0.16);--elevation_2_shadow__light:0 3px 6px rgba(0, 0, 0, 0.12),0 2px 4px rgba(0, 0, 0, 0.1);--elevation_3_shadow__light:0 8px 16px rgba(0, 0, 0, 0.14),0 3px 6px rgba(0, 0, 0, 0.1);--elevation_-2_shadow__dark:inset 0 2px 8px rgba(0, 0, 0, 0.5),inset 0 1px 4px rgba(0, 0, 0, 0.4);--elevation_-1_shadow__dark:inset 0 1px 4px rgba(0, 0, 0, 0.35),inset 0 1px 2px rgba(0, 0, 0, 0.25);--elevation_1_shadow__dark:0 2px 6px rgba(0, 0, 0, 0.5),0 1px 3px rgba(0, 0, 0, 0.4);--elevation_2_shadow__dark:0 4px 12px rgba(0, 0, 0, 0.55),0 2px 4px rgba(0, 0, 0, 0.45);--elevation_3_shadow__dark:0 8px 20px rgba(0, 0, 0, 0.6),0 4px 8px rgba(0, 0, 0, 0.5);--elevation_-2_shadow:var(--elevation_-2_shadow__light);--elevation_-1_shadow:var(--elevation_-1_shadow__light);--elevation_1_shadow:var(--elevation_1_shadow__light);--elevation_2_shadow:var(--elevation_2_shadow__light);--elevation_3_shadow:var(--elevation_3_shadow__light)}[theme=light]{color-scheme:light}[theme=dark]{color-scheme:dark;--drop_shadow:var(--drop_shadow__dark);--elevation_-2_shadow:var(--elevation_-2_shadow__dark);--elevation_-1_shadow:var(--elevation_-1_shadow__dark);--elevation_1_shadow:var(--elevation_1_shadow__dark);--elevation_2_shadow:var(--elevation_2_shadow__dark);--elevation_3_shadow:var(--elevation_3_shadow__dark)}[theme=auto]{color-scheme:light dark}@media (prefers-color-scheme:dark){[theme=auto]{--drop_shadow:var(--drop_shadow__dark);--elevation_-2_shadow:var(--elevation_-2_shadow__dark);--elevation_-1_shadow:var(--elevation_-1_shadow__dark);--elevation_1_shadow:var(--elevation_1_shadow__dark);--elevation_2_shadow:var(--elevation_2_shadow__dark);--elevation_3_shadow:var(--elevation_3_shadow__dark)}}:root{interpolate-size:allow-keywords}*,::after,::before{font-family:inherit;box-sizing:border-box;line-height:var(--line-height)}blockquote,body,code,dd,dl,dt,h1,h2,h3,h4,h5,h6,li,ol,p,pre,ul{margin:0;padding:.1px}html{font-family:var(--ff_body);font-size:var(--fs_base);font-weight:var(--fw_base);color:var(--tc);scrollbar-gutter:stable}::selection{background:var(--c_highlight)}body{min-height:100vh;background-color:var(--c_bg);color:var(--tc);overflow-y:scroll;font-family:var(--ff_body);position:relative}body.no-scroll{overflow:hidden!important}.container,main{max-width:var(--container_width);margin-left:auto;margin-right:auto;padding-top:var(--spacer);padding-left:var(--spacer);padding-right:var(--spacer)}nav>.link,nav>a{display:inline-block;padding:var(--spacer)!important;text-decoration:none}menu{margin:0;padding:0}menu a{display:block;padding:var(--spacer_q);text-decoration:none;color:inherit}summary{cursor:pointer;margin-bottom:var(--sapcer);outline:0;box-shadow:0 0 0 transparent;transition:box-shadow var(--animation_ms);border-radius:var(--radius)}summary:focus{box-shadow:var(--focus_shadow)}.d-b{display:block!important}.d-ib{display:inline-block!important}.d-g{display:grid!important}.d-i{display:inline!important}.d-n{display:none!important}.d-f{display:flex!important;flex-wrap:wrap}.d-if{display:inline-flex!important;flex-wrap:wrap}@media (min-width:1024px){.d-d-b{display:block!important}.d-d-ib{display:inline-block!important}.d-d-g{display:grid!important}.d-d-i{display:inline!important}.d-d-n{display:none!important}.d-d-f{display:flex!important;flex-wrap:wrap}.d-d-if{display:inline-flex!important;flex-wrap:wrap}}@media (min-width:769px) and (max-width:1023px){.t-d-b{display:block!important}.t-d-ib{display:inline-block!important}.t-d-g{display:grid!important}.t-d-i{display:inline!important}.t-d-n{display:none!important}.t-d-f{display:flex!important;flex-wrap:wrap}.t-d-if{display:inline-flex!important;flex-wrap:wrap}}@media (max-width:768px){.m-d-b{display:block!important}.m-d-ib{display:inline-block!important}.m-d-g{display:grid!important}.m-d-i{display:inline!important}.m-d-n{display:none!important}.m-d-f{display:flex!important;flex-wrap:wrap}.m-d-if{display:inline-flex!important;flex-wrap:wrap}}.flex,.flex-1{flex:1 1 auto}.flex-0{flex:0 0}.flex-2{flex:2 2 auto}.flex-3{flex:3 3 auto}.flex-4{flex:4 4 auto}.flex-5{flex:5 5 auto}.flex-6{flex:6 6 auto}.flex-7{flex:7 7 auto}.flex-8{flex:8 8 auto}.flex-9{flex:9 9 auto}.flex-10{flex:10 10 auto}@media (min-width:1024px){.d-d-b{display:block!important}.d-d-ib{display:inline-block!important}.d-d-g{display:grid!important}.d-d-i{display:inline!important}.d-d-n{display:none!important}.d-d-if{display:inline-flex!important;flex-wrap:wrap}.d-d-f{display:flex!important;flex-wrap:wrap}.d-flex,.d-flex-1{flex:1 1 auto}.d-flex-0{flex:0 0}.d-flex-2{flex:2 2 auto}.d-flex-3{flex:3 3 auto}.d-flex-4{flex:4 4 auto}.d-flex-5{flex:5 5 auto}.d-flex-6{flex:6 6 auto}.d-flex-7{flex:7 7 auto}.d-flex-8{flex:8 8 auto}.d-flex-9{flex:9 9 auto}.d-flex-10{flex:10 10 auto}}@media (min-width:769px) and (max-width:1023px){.t-d-b{display:block!important}.t-d-ib{display:inline-block!important}.t-d-g{display:grid!important}.t-d-i{display:inline!important}.t-d-n{display:none!important}.t-d-if{display:inline-flex!important;flex-wrap:wrap}.t-d-f{display:flex!important;flex-wrap:wrap}.t-flex,.t-flex-1{flex:1 1 auto}.t-flex-0{flex:0 0}.t-flex-2{flex:2 2 auto}.t-flex-3{flex:3 3 auto}.t-flex-4{flex:4 4 auto}.t-flex-5{flex:5 5 auto}.t-flex-6{flex:6 6 auto}.t-flex-7{flex:7 7 auto}.t-flex-8{flex:8 8 auto}.t-flex-9{flex:9 9 auto}.t-flex-10{flex:10 10 auto}}@media (max-width:768px){.m-d-b{display:block!important}.m-d-ib{display:inline-block!important}.m-d-g{display:grid!important}.m-d-i{display:inline!important}.m-d-n{display:none!important}.m-d-if{display:inline-flex!important;flex-wrap:wrap}.m-d-f{display:flex!important;flex-wrap:wrap}.m-flex,.m-flex-1{flex:1 1 auto}.m-flex-0{flex:0 0}.m-flex-2{flex:2 2 auto}.m-flex-3{flex:3 3 auto}.m-flex-4{flex:4 4 auto}.m-flex-5{flex:5 5 auto}.m-flex-6{flex:6 6 auto}.m-flex-7{flex:7 7 auto}.m-flex-8{flex:8 8 auto}.m-flex-9{flex:9 9 auto}.m-flex-10{flex:10 10 auto}}.fixed{position:fixed;top:0;width:100%;z-index:99;box-shadow:none;transition:box-shadow var(--animation_ms)}.fixed.scrolled{box-shadow:var(--elevation_2_shadow)}.small,small{font-size:var(--fs_small)!important}.large{font-size:var(--fs_large)!important}.h1,.h2,.h3,.h4,.h5,.h6,b,h1,h2,h3,h4,h5,h6,strong{font-weight:var(--fw_bold)}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:var(--ff_heading)}.h1,h1{font-size:var(--fs_h1)}.h2,h2{font-size:var(--fs_h2)}.h3,h3{font-size:var(--fs_h3)}.h4,h4{font-size:var(--fs_h4)}.h5,h5{font-size:var(--fs_h5)}.h6,h6{font-size:var(--fs_h6)}blockquote,dd,dl,h1,h2,h3,h4,h5,h6,hr,ol,p,pre,ul{margin-bottom:var(--spacer)}dl,ol,ul{padding-left:calc(1.5 * var(--spacer))}blockquote{border-left:2px solid var(--c_border);padding:var(--spacer)}mark{background-color:var(--c_highlight);color:inherit}.ff-mono,code,pre{font-family:var(--ff_mono)}code{background-color:var(--c_bg__alt);border-radius:var(--radius);word-break:break-word;padding:calc(.125 * var(--spacer)) var(--spacer_q)}pre code{display:block;padding:var(--spacer);word-break:normal;overflow:auto;white-space:pre-wrap}output{display:block;border:1px solid var(--c_border);border-radius:var(--radius);padding:var(--spacer) var(--spacer) 0 var(--spacer)}.ta-left{text-align:left}.ta-center{text-align:center}.ta-right{text-align:right}.link,a{color:var(--tc_link);box-shadow:0 0 0 transparent;transition:color var(--animation_ms),box-shadow var(--animation_ms);outline:0;border-radius:var(--radius);text-decoration:var(--link_decoration)}.link:hover,a:hover{color:var(--tc_link__hover)}.link:focus-visible,a:focus{box-shadow:var(--focus_shadow)}.no-link,.no-link:hover{text-decoration:none;color:inherit}hr{border:none;border-top:1px solid var(--c_border)}small{font-size:.75em}dl{padding:0;margin:0}dd,dt{padding-left:var(--spacer);border-left:2px solid var(--c_border)}dt{padding-top:var(--spacer_h)}dd{padding-bottom:var(--spacer_h)}dd+dd{margin-top:calc(-1 * var(--spacer));padding-top:0}li ul{margin-bottom:0}.td-n{text-decoration:none}.p,.pt,.py{padding-top:var(--spacer)!important}.p,.pr,.px{padding-right:var(--spacer)!important}.p,.pb,.py{padding-bottom:var(--spacer)!important}.p,.pl,.px{padding-left:var(--spacer)!important}.ph,.pth,.pyh{padding-top:var(--spacer_h)!important}.ph,.prh,.pxh{padding-right:var(--spacer_h)!important}.pbh,.ph,.pyh{padding-bottom:var(--spacer_h)!important}.ph,.plh,.pxh{padding-left:var(--spacer_h)!important}.pq,.ptq,.pyq{padding-top:var(--spacer_q)!important}.pq,.prq,.pxq{padding-right:var(--spacer_q)!important}.pbq,.pq,.pyq{padding-bottom:var(--spacer_q)!important}.plq,.pq,.pxq{padding-left:var(--spacer_q)!important}.p0,.pt0,.py0{padding-top:.1px!important}.p0,.pr0,.px0{padding-right:.1px!important}.p0,.pb0,.py0{padding-bottom:.1px!important}.p0,.pl0,.px0{padding-left:.1px!important}.m,.mt,.my{margin-top:var(--spacer)!important}.m,.mr,.mx{margin-right:var(--spacer)!important}.m,.mb,.my{margin-bottom:var(--spacer)!important}.m,.ml,.mx{margin-left:var(--spacer)!important}.mh,.mth,.myh{margin-top:var(--spacer_h)!important}.mh,.mrh,.mxh{margin-right:var(--spacer_h)!important}.mbh,.mh,.myh{margin-bottom:var(--spacer_h)!important}.mh,.mlh,.mxh{margin-left:var(--spacer_h)!important}.mq,.mtq,.myq{margin-top:var(--spacer_q)!important}.mq,.mrq,.mxq{margin-right:var(--spacer_q)!important}.mbq,.mq,.myq{margin-bottom:var(--spacer_q)!important}.mlq,.mq,.mxq{margin-left:var(--spacer_q)!important}.m0,.mt0,.my0{margin-top:0!important}.m0,.mr0,.mx0{margin-right:0!important}.m0,.mb0,.my0{margin-bottom:0!important}.m0,.ml0,.mx0{margin-left:0!important}.-m,.-mt,.-my{margin-top:calc(-1 * var(--spacer))!important}.-m,.-mr,.-mx{margin-right:calc(-1 * var(--spacer))!important}.-m,.-mb,.-my{margin-bottom:calc(-1 * var(--spacer))!important}.-m,.-ml,.-mx{margin-left:calc(-1 * var(--spacer))!important}.b,.bt,.by{border-top:1px solid var(--c_border)!important}.b,.br,.bx{border-right:1px solid var(--c_border)!important}.b,.bb,.by{border-bottom:1px solid var(--c_border)!important}.b,.bl,.bx{border-left:1px solid var(--c_border)!important}.b0,.bt0,.by0{border-top:none!important}.b0,.br0,.bx0{border-right:none!important}.b0,.bb0,.by0{border-bottom:none!important}.b0,.bl0,.bx0{border-left:none!important}.r,.rl,.rt,.rtl{border-top-left-radius:var(--radius)!important}.r,.rr,.rt,.rtr{border-top-right-radius:var(--radius)!important}.r,.rb,.rbr,.rr{border-bottom-right-radius:var(--radius)!important}.r,.rb,.rbl,.rl{border-bottom-left-radius:var(--radius)!important}.r0,.rl0,.rt0,.rtl0{border-top-left-radius:0!important}.r0,.rr0,.rt0,.rtr0{border-top-right-radius:0!important}.r0,.rb0,.rbr0,.rr0{border-bottom-right-radius:0!important}.r0,.rb0,.rbl0,.rl0{border-bottom-left-radius:0!important}.round{border-radius:9999rem!important}.row{display:flex;flex-wrap:wrap}.col{flex:1 1}.span-1{min-width:8.333%;flex-basis:8.333%}.span-2{min-width:16.666%;flex-basis:16.666%}.span-3{min-width:25%;flex-basis:25%}.span-4{min-width:33.333%;flex-basis:33.333%}.span-5{min-width:41.666%;flex-basis:41.666%}.span-6{min-width:50%;flex-basis:50%}.span-7{min-width:58.333%;flex-basis:58.333%}.span-8{min-width:66.666%;flex-basis:66.666%}.span-9{min-width:75%;flex-basis:75%}.span-10{min-width:83.333%;flex-basis:83.333%}.span-11{min-width:91.333%;flex-basis:91.333%}.span-12{min-width:100%;flex-basis:100%}@media (min-width:1024px){.d-span-1{min-width:8.333%;flex-basis:8.333%}.d-span-2{min-width:16.666%;flex-basis:16.666%}.d-span-3{min-width:25%;flex-basis:25%}.d-span-4{min-width:33.333%;flex-basis:33.333%}.d-span-5{min-width:41.666%;flex-basis:41.666%}.d-span-6{min-width:50%;flex-basis:50%}.d-span-7{min-width:58.333%;flex-basis:58.333%}.d-span-8{min-width:66.666%;flex-basis:66.666%}.d-span-9{min-width:75%;flex-basis:75%}.d-span-10{min-width:83.333%;flex-basis:83.333%}.d-span-11{min-width:91.333%;flex-basis:91.333%}.d-span-12{min-width:100%;flex-basis:100%}}@media (min-width:769px) and (max-width:1023px){.t-span-1{min-width:8.333%;flex-basis:8.333%}.t-span-2{min-width:16.666%;flex-basis:16.666%}.t-span-3{min-width:25%;flex-basis:25%}.t-span-4{min-width:33.333%;flex-basis:33.333%}.t-span-5{min-width:41.666%;flex-basis:41.666%}.t-span-6{min-width:50%;flex-basis:50%}.t-span-7{min-width:58.333%;flex-basis:58.333%}.t-span-8{min-width:66.666%;flex-basis:66.666%}.t-span-9{min-width:75%;flex-basis:75%}.t-span-10{min-width:83.333%;flex-basis:83.333%}.t-span-11{min-width:91.333%;flex-basis:91.333%}.t-span-12{min-width:100%;flex-basis:100%}}@media (max-width:768px){.m-span-1{min-width:8.333%;flex-basis:8.333%}.m-span-2{min-width:16.666%;flex-basis:16.666%}.m-span-3{min-width:25%;flex-basis:25%}.m-span-4{min-width:33.333%;flex-basis:33.333%}.m-span-5{min-width:41.666%;flex-basis:41.666%}.m-span-6{min-width:50%;flex-basis:50%}.m-span-7{min-width:58.333%;flex-basis:58.333%}.m-span-8{min-width:66.666%;flex-basis:66.666%}.m-span-9{min-width:75%;flex-basis:75%}.m-span-10{min-width:83.333%;flex-basis:83.333%}.m-span-11{min-width:91.333%;flex-basis:91.333%}.m-span-12{min-width:100%;flex-basis:100%}}.cols-2{grid-template-columns:repeat(2,1fr)}.cols-3{grid-template-columns:repeat(3,1fr)}.cols-4{grid-template-columns:repeat(4,1fr)}.cols-5{grid-template-columns:repeat(5,1fr)}.cols-6{grid-template-columns:repeat(6,1fr)}.cols-7{grid-template-columns:repeat(7,1fr)}.cols-8{grid-template-columns:repeat(8,1fr)}.cols-9{grid-template-columns:repeat(9,1fr)}.cols-10{grid-template-columns:repeat(10,1fr)}@media (min-width:1024px){.d-cols-2{grid-template-columns:repeat(2,1fr)}.d-cols-3{grid-template-columns:repeat(3,1fr)}.d-cols-4{grid-template-columns:repeat(4,1fr)}.d-cols-5{grid-template-columns:repeat(5,1fr)}.d-cols-6{grid-template-columns:repeat(6,1fr)}.d-cols-7{grid-template-columns:repeat(7,1fr)}.d-cols-8{grid-template-columns:repeat(8,1fr)}.d-cols-9{grid-template-columns:repeat(9,1fr)}.d-cols-10{grid-template-columns:repeat(10,1fr)}}@media (min-width:769px) and (max-width:1023px){.t-cols-2{grid-template-columns:repeat(2,1fr)}.t-cols-3{grid-template-columns:repeat(3,1fr)}.t-cols-4{grid-template-columns:repeat(4,1fr)}.t-cols-5{grid-template-columns:repeat(5,1fr)}.t-cols-6{grid-template-columns:repeat(6,1fr)}.t-cols-7{grid-template-columns:repeat(7,1fr)}.t-cols-8{grid-template-columns:repeat(8,1fr)}.t-cols-9{grid-template-columns:repeat(9,1fr)}.t-cols-10{grid-template-columns:repeat(10,1fr)}}@media (max-width:768px){.m-cols-2{grid-template-columns:repeat(2,1fr)}.m-cols-3{grid-template-columns:repeat(3,1fr)}.m-cols-4{grid-template-columns:repeat(4,1fr)}.m-cols-5{grid-template-columns:repeat(5,1fr)}.m-cols-6{grid-template-columns:repeat(6,1fr)}.m-cols-7{grid-template-columns:repeat(7,1fr)}.m-cols-8{grid-template-columns:repeat(8,1fr)}.m-cols-9{grid-template-columns:repeat(9,1fr)}.m-cols-10{grid-template-columns:repeat(10,1fr)}}.btn,button:not(.no-btn):not(.no-style),input[type=button],input[type=reset],input[type=submit]{display:inline-block;padding:var(--btn_padding);background-color:var(--btn_bg);border:1px solid var(--btn_border);cursor:pointer;outline:0;border-radius:var(--radius);color:var(--btn_tc);transition:background-color var(--animation_ms),box-shadow var(--animation_ms);text-decoration:none;box-shadow:var(--btn_box_shadow);font-size:inherit;vertical-align:middle}.btn:hover,button:not(.no-btn):not(.no-style):hover,input[type=button]:hover,input[type=reset]:hover,input[type=submit]:hover{background-color:var(--btn_bg__hover);color:var(--btn_tc);box-shadow:var(--btn_box_shadow__hover)}.btn:focus,button:not(.no-btn):not(.no-style):focus,input[type=button]:focus,input[type=reset]:focus,input[type=submit]:focus{box-shadow:var(--btn_box_shadow__hover),var(--focus_shadow);z-index:1}.btn[disabled],button:not(.no-btn):not(.no-style):disabled,input[type=button]:disabled,input[type=reset]:disabled,input[type=submit]:disabled{opacity:.6}.btn.primary,button:not(.no-btn).primary,input[type=button].primary,input[type=reset].primary,input[type=submit].primary{background-color:var(--c_primary)!important;--btn_tc:var(--tc_on_primary)}.btn.primary:hover,button:not(.no-btn).primary:hover,input[type=button].primary:hover,input[type=reset].primary:hover,input[type=submit].primary:hover{background-color:var(--c_primary__hover)!important}.btn.secondary,button:not(.no-btn).secondary,input[type=button].secondary,input[type=reset].secondary,input[type=submit].secondary{background-color:var(--c_secondary)!important;--btn_tc:var(--tc_on_secondary)}.btn.secondary:hover,button:not(.no-btn).secondary:hover,input[type=button].secondary:hover,input[type=reset].secondary:hover,input[type=submit].secondary:hover{background-color:var(--c_secondary__hover)!important}.btn.success,button:not(.no-btn).success,input[type=button].success,input[type=reset].success,input[type=submit].success{background-color:var(--c_success)!important;--btn_tc:var(--tc_on_success)}.btn.success:hover,button:not(.no-btn).success:hover,input[type=button].success:hover,input[type=reset].success:hover,input[type=submit].success:hover{background-color:var(--c_success__hover)!important}.btn.warning,button:not(.no-btn).warning,input[type=button].warning,input[type=reset].warning,input[type=submit].warning{background-color:var(--c_warning)!important;--btn_tc:var(--tc_on_warning)}.btn.warning:hover,button:not(.no-btn).warning:hover,input[type=button].warning:hover,input[type=reset].warning:hover,input[type=submit].warning:hover{background-color:var(--c_warning__hover)!important}.btn.danger,button:not(.no-btn).danger,input[type=button].danger,input[type=reset].danger,input[type=submit].danger{background-color:var(--c_danger)!important;--btn_tc:var(--tc_on_danger)}.btn.danger:hover,button:not(.no-btn).danger:hover,input[type=button].danger:hover,input[type=reset].danger:hover,input[type=submit].danger:hover{background-color:var(--c_danger__hover)!important}.btn.link,button:not(.no-btn):not(.no-style).link,input[type=button].link,input[type=reset].link,input[type=submit].link{background-color:transparent;color:inherit;box-shadow:0 0 0 transparent;border:none;padding:.1px;font-size:inherit}.btn-grp{display:inline-flex}.btn-grp .btn:not(:first-child),.btn-grp button:not(.no-btn):not(:first-child),.btn-grp input[type=button]:not(:first-child),.btn-grp input[type=reset]:not(:first-child),.btn-grp input[type=submit]:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0;border-left:1px solid rgba(0,0,0,.25)}.btn-grp .btn:not(:last-child),.btn-grp button:not(.no-btn):not(:last-child),.btn-grp input[type=button]:not(:last-child),.btn-grp input[type=reset]:not(:last-child),.btn-grp input[type=submit]:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.no-btn{display:inline;border:none;background-color:transparent;padding:0;font-size:inherit;font-family:inherit;cursor:pointer;outline:0;box-shadow:0 0 0 transparent;transition:box-shadow var(--animation_ms);border-radius:0;text-align:left;color:inherit}.no-btn:focus{box-shadow:var(--focus_shadow)}.full{display:block;width:100%}input:not([type=button]):not([type=submit]):not([type=reset]):not([type=radio]):not([type=checkbox]),select,textarea{display:block;width:100%;background-color:var(--input_bg);color:var(--input_tc);border:var(--input_border_width) solid var(--c_input_border);padding:var(--input_padding);border-radius:var(--radius);outline:0;transition:box-shadow var(--animation_ms)}input:not([type=button]):not([type=submit]):not([type=reset]):not([type=radio]):not([type=checkbox]):focus,input[type=checkbox]:focus,input[type=radio]:focus,select:focus,textarea:focus{box-shadow:var(--focus_shadow)}input:not([type=button]):not([type=submit]):not([type=reset]):not([type=radio]):not([type=checkbox]):disabled,input[type=checkbox]:disabled,input[type=radio]:disabled,select:disabled,textarea:disabled{opacity:.6}select[multiple],textarea{resize:vertical;max-height:75vh;height:6rem;min-height:4rem}select[multiple]{height:8rem}select{cursor:pointer}label{display:block;cursor:pointer;padding-bottom:var(--spacer_h)}label.checkbox,label.radio{display:inline-block;vertical-align:middle;width:calc(100% - 2em - (2 * var(--spacer_h)) - 6px)}input[type=checkbox],input[type=radio]{display:inline-block;width:1em;height:1em;cursor:pointer;vertical-align:middle;accent-color:var(--c_input_accent);margin:var(--spacer_q) var(--spacer_h);transition:background-color var(--animation_ms),color var(--animation_ms),box-shadow var(--animation_ms)}input[type=checkbox]{width:1.75em;height:1.75em;appearance:none;-webkit-appearance:none;background-color:transparent;border:2px solid var(--c_border);border-radius:var(--radius);vertical-align:-.5em;position:relative}input[type=checkbox]::before{content:"";position:absolute;inset:0;border-radius:calc(var(--radius) - 2px);background-color:transparent;mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="200 -760 560 560"><path d="m424-312 282-282-56-56-226 226-114-114-56 56 170 170Z"/></svg>');-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="200 -760 560 560"><path d="m424-312 282-282-56-56-226 226-114-114-56 56 170 170Z"/></svg>');mask-size:contain;-webkit-mask-size:contain;mask-position:center;-webkit-mask-position:center;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;transition:background-color var(--animation_ms)}input[type=checkbox]:focus{box-shadow:var(--focus_shadow);outline:0}input[type=checkbox]:checked{background-color:var(--c_primary);border-color:var(--c_primary)}input[type=checkbox]:checked::before{background-color:var(--tc_on_primary)}input[type=radio]{width:1.75em;height:1.75em;appearance:none;-webkit-appearance:none;background-color:transparent;border:2px solid var(--c_border);border-radius:50%;vertical-align:-.5em}input[type=radio]:focus{box-shadow:var(--focus_shadow);outline:0}input[type=radio]:checked{border-color:var(--c_primary);background:radial-gradient(circle,var(--c_primary) 40%,transparent 45%)}select option{padding:var(--spacer_h) var(--spacer);background-color:var(--input_bg);color:var(--input_tc)}select[multiple]{padding:.1px}select[multiple] option{padding:var(--spacer_h) var(--spacer)}input[type=color]{padding:0!important;height:2.35em}input[type=color]::-webkit-color-swatch-wrapper{padding:0}input[type=color]::-webkit-color-swatch{border-radius:var(--radius,.25rem);cursor:pointer}input[type=date]::-webkit-calendar-picker-indicator,input[type=month]::-webkit-calendar-picker-indicator,input[type=search]::-webkit-search-cancel-button,input[type=time]::-webkit-calendar-picker-indicator,input[type=week]::-webkit-calendar-picker-indicator{filter:var(--date_picker_icon_filter)}.table-wrapper{overflow-x:auto}table{width:100%;border-spacing:0}th{font-weight:var(--fw_bold);text-align:left;background-color:var(--c_bg__alt);border-top:1px solid var(--c_border)}td,th{padding:var(--spacer_h) var(--spacer);border-bottom:1px solid var(--c_border);border-left:1px solid var(--c_border)}td:last-child,th:last-child{border-right:1px solid var(--c_border)}th:first-child{border-top-left-radius:var(--radius)}th:last-child{border-top-right-radius:var(--radius)}tr:last-child td:first-child{border-bottom-left-radius:var(--radius)}tr:last-child td:last-child{border-bottom-right-radius:var(--radius)}.bg-default{background-color:var(--c_bg)!important;color:var(--tc)!important}.bg-alt{background-color:var(--c_bg__alt)!important;color:var(--tc)!important}.bg-inv{--c_primary:var(--c_primary__inv);--c_primary__hover:var(--c_primary__inv__hover);--c_secondary:var(--c_secondary__inv);--c_secondary__hover:var(--c_secondary__inv__hover);--c_success:var(--c_success__inv);--c_success__hover:var(--c_success__inv__hover);--c_warning:var(--c_warning__inv);--c_warning__hover:var(--c_warning__inv__hover);--c_danger:var(--c_danger__inv);--c_danger__hover:var(--c_danger__inv__hover);--tc_link:var(--tc_link__inv);--tc_link__hover:var(--tc_link__inv__hover);background-color:var(--c_bg__inv)!important;color:var(--tc_inv)!important}.bg-primary{--tc_link:var(--tc_on_primary);--tc_link__hover:var(--tc_on_primary);--c_border:var(--tc_on_primary);background-color:var(--c_primary)!important;color:var(--tc_on_primary)!important;--focus_shadow:var(--focus_shadow_on_primary)}.bg-secondary{--tc_link:var(--tc_on_secondary);--tc_link__hover:var(--tc_on_secondary);background-color:var(--c_secondary)!important;color:var(--tc_on_secondary)!important}.bg-success{--tc_link:var(--tc_on_success);--tc_link__hover:var(--tc_on_success);background-color:var(--c_success)!important;color:var(--tc_on_success)!important}.bg-warning{--tc_link:var(--tc_on_warning);--tc_link__hover:var(--tc_on_warning);background-color:var(--c_warning)!important;color:var(--tc_on_warning)!important}.bg-danger{--tc_link:var(--tc_on_danger);--tc_link__hover:var(--tc_on_danger);background-color:var(--c_danger)!important;color:var(--tc_on_danger)!important}.tc-default{color:var(--tc)!important}.tc-inv{color:var(--tc__inv)!important}.tc-primary{color:var(--tc_primary)!important}.bg-inv .tc-primary,.is-inv .tc-primary{color:var(--tc_primary__inv)!important}.tc-secondary{color:var(--tc_secondary)!important}.bg-inv .tc-secondary,.is-inv .tc-secondary{color:var(--tc_secondary__inv)!important}.tc-success{color:var(--tc_success)!important}.bg-inv .tc-success,.is-inv .tc-success{color:var(--tc_success__inv)!important}.tc-warning{color:var(--tc_warning)!important}.bg-inv .tc-warning,.is-inv .tc-warning{color:var(--tc_warning__inv)!important}.tc-danger{color:var(--tc_danger)!important}.bg-inv .tc-danger,.is-inv .tc-danger{color:var(--tc_danger__inv)!important}.tc-muted{color:var(--tc_muted)!important}.card{border:1px solid var(--c_border);border-radius:var(--radius);padding-top:var(--spacer);padding-left:var(--spacer);padding-right:var(--spacer);margin-bottom:var(--spacer)}.drop-shadow{box-shadow:var(--drop_shadow)}.elevation--2{background-color:var(--elevation_-2_bg);box-shadow:var(--elevation_-2_shadow)}.elevation--1{background-color:var(--elevation_-1_bg);box-shadow:var(--elevation_-1_shadow)}.elevation-0{background-color:var(--elevation_0_bg);box-shadow:var(--elevation_0_shadow)}.elevation-1{background-color:var(--elevation_1_bg);box-shadow:var(--elevation_1_shadow)}.elevation-2{background-color:var(--elevation_2_bg);box-shadow:var(--elevation_2_shadow)}.elevation-3{background-color:var(--elevation_3_bg);box-shadow:var(--elevation_3_shadow)}.icon{display:inline-block;width:1.35em;vertical-align:top;margin-left:auto;margin-right:auto}iframe{border:none;width:100%}
|
|
1
|
+
:root{color-scheme:light;--ff_body:"Helvetica Neue",Helvetica,Arial,sans-serif;--ff_heading:"Helvetica Neue",Helvetica,Arial,sans-serif;--ff_mono:Consolas,monaco,monospace;--fs_base:16px;--fs_small:calc(0.6 * var(--fs_base));--fs_large:calc(1.5 * var(--fs_base));--fs_h6:var(--fs_base);--fs_h5:calc(1.25 * var(--fs_base));--fs_h4:calc(1.5 * var(--fs_base));--fs_h3:calc(1.75 * var(--fs_base));--fs_h2:calc(2 * var(--fs_base));--fs_h1:calc(2.5 * var(--fs_base));--fw_base:400;--fw_bold:700;--spacer:1rem;--spacer_h:calc(0.5 * var(--spacer));--spacer_q:calc(0.25 * var(--spacer));--line-height:1.35em;--container_width:90rem;--animation_ms:256ms;--radius:0.25rem;--link_decoration:underline;--input_padding:var(--spacer_h) var(--spacer);--input_border_width:1px;--btn_padding:var(--spacer_h) var(--spacer);--c_bg:light-dark(rgb(249, 249, 249), rgb(51, 51, 51));--c_bg__inv:light-dark(rgb(51, 51, 51), rgb(249, 249, 249));--c_bg__alt:light-dark(rgb(238, 238, 238), rgb(34, 34, 34));--c_overscroll:light-dark(rgb(255, 255, 255), rgb(0, 0, 0));--c_border:light-dark(rgb(204, 204, 204), rgb(119, 119, 119));--c_border__inv:light-dark(rgb(119, 119, 119), rgb(204, 204, 204));--c_primary:rgb(51, 102, 255);--c_primary__hover:rgb(17, 68, 221);--c_secondary:rgb(153, 51, 255);--c_secondary__hover:rgb(119, 17, 221);--c_success:rgb(0, 136, 0);--c_success__hover:rgb(0, 102, 0);--c_warning:rgb(255, 102, 0);--c_warning__hover:rgb(221, 68, 0);--c_danger:rgb(255, 0, 51);--c_danger__hover:rgb(221, 0, 17);--c_input_accent:rgb(51, 102, 255);--c_input_border:var(--c_border);--c_highlight:light-dark(rgba(41, 100, 210, 0.25), rgba(0, 89, 255, 0.25));--tc:light-dark(rgba(0, 0, 0, 0.93), rgba(255, 255, 255, 0.93));--tc_dark:light-dark(rgba(0, 0, 0, 0.93), rgba(0, 0, 0, 0.93));--tc_light:light-dark(rgba(255, 255, 255, 0.93), rgba(255, 255, 255, 0.93));--tc_inv:light-dark(rgba(255, 255, 255, 0.93), rgba(0, 0, 0, 0.93));--tc_muted:light-dark(rgba(0, 0, 0, 0.5), rgba(255, 255, 255, 0.5));--tc_on_primary:light-dark(rgba(255, 255, 255, 0.93), rgba(255, 255, 255, 0.93));--tc_on_secondary:light-dark(rgba(255, 255, 255, 0.93), rgba(255, 255, 255, 0.93));--tc_on_success:light-dark(rgba(255, 255, 255, 0.93), rgba(255, 255, 255, 0.93));--tc_on_warning:light-dark(rgba(255, 255, 255, 0.93), rgba(255, 255, 255, 0.93));--tc_on_danger:light-dark(rgba(255, 255, 255, 0.93), rgba(255, 255, 255, 0.93));--c_overlay:rgba(0, 0, 0, 0.5);--tc_primary:light-dark(#36f, rgb(138, 180, 248));--tc_secondary:light-dark(#93f, rgb(187, 102, 255));--tc_success:light-dark(#080, rgb(102, 187, 102));--tc_warning:light-dark(#f60, rgb(255, 153, 51));--tc_danger:light-dark(#f03, rgb(255, 85, 119));--btn_box_shadow:0 0 0 transparent;--btn_box_shadow__hover:0 0 0 transparent;--btn_border:transparent;--btn_bg:light-dark(rgb(221, 221, 221), rgb(170, 170, 170));--btn_bg__hover:light-dark(rgb(204, 204, 204), rgb(187, 187, 187));--btn_tc:light-dark(rgba(0, 0, 0, 0.93), rgba(0, 0, 0, 0.93));--btn_transparent__hover:light-dark(rgba(0, 0, 0, 0.05), rgba(255, 255, 255, 0.05));--tc_link:var(--tc_primary);--tc_link__hover:var(--tc_secondary);--tc_link__inv:var(--tc_primary__inv);--tc_link__inv__hover:var(--tc_secondary__inv);--focus_shadow:0 0 2px 2px var(--c_primary);--focus_shadow_on_primary:0 0 2px 2px var(--tc_on_primary);--input_bg:light-dark(white, var(--c_bg__alt));--input_tc:light-dark(rgba(0, 0, 0, 0.93), var(--tc));--date_picker_icon_filter:light-dark(invert(0), invert(1));--c_bg_elevation_0:light-dark(rgb(205, 205, 205), rgb(10, 10, 10));--c_bg_elevation_1:light-dark(rgb(225, 225, 225), rgb(30, 30, 30));--c_bg_elevation_2:var(--c_bg);--c_bg_elevation_3:light-dark(rgb(252, 252, 252), rgb(60, 60, 60));--c_bg_elevation_4:light-dark(rgb(253, 253, 253), rgb(68, 68, 68));--c_bg_elevation_5:light-dark(rgb(255, 255, 255), rgb(76, 76, 76));--c_bg_elevation_6:light-dark(rgb(255, 255, 255), rgb(85, 85, 85));--c_bg_elevation_7:light-dark(rgb(255, 255, 255), rgb(95, 95, 95));--c_bg_elevation_8:light-dark(rgb(255, 255, 255), rgb(105, 105, 105));--c_bg_elevation_9:light-dark(rgb(255, 255, 255), rgb(115, 115, 115));--c_bg_elevation_10:light-dark(rgb(255, 255, 255), rgb(130, 130, 130));--shadow_0__light:inset 0 2px 6px rgba(0, 0, 0, 0.18),inset 0 1px 3px rgba(0, 0, 0, 0.12);--shadow_1__light:inset 0 1px 3px rgba(0, 0, 0, 0.1),inset 0 1px 2px rgba(0, 0, 0, 0.06);--shadow_3__light:0 1px 2px rgba(0, 0, 0, 0.08),0 1px 1px rgba(0, 0, 0, 0.1);--shadow_4__light:0 1px 3px rgba(0, 0, 0, 0.1),0 1px 2px rgba(0, 0, 0, 0.16);--shadow_5__light:0 2px 5px rgba(0, 0, 0, 0.11),0 1px 3px rgba(0, 0, 0, 0.1);--shadow_6__light:0 3px 6px rgba(0, 0, 0, 0.12),0 2px 4px rgba(0, 0, 0, 0.1);--shadow_7__light:0 5px 10px rgba(0, 0, 0, 0.13),0 2px 5px rgba(0, 0, 0, 0.1);--shadow_8__light:0 8px 16px rgba(0, 0, 0, 0.14),0 3px 6px rgba(0, 0, 0, 0.1);--shadow_9__light:0 12px 24px rgba(0, 0, 0, 0.15),0 5px 10px rgba(0, 0, 0, 0.1);--shadow_10__light:0 16px 32px rgba(0, 0, 0, 0.16),0 8px 16px rgba(0, 0, 0, 0.1);--shadow_0__dark:inset 0 2px 8px rgba(0, 0, 0, 0.5),inset 0 1px 4px rgba(0, 0, 0, 0.4);--shadow_1__dark:inset 0 1px 4px rgba(0, 0, 0, 0.35),inset 0 1px 2px rgba(0, 0, 0, 0.25);--shadow_3__dark:0 1px 3px rgba(0, 0, 0, 0.35),0 1px 2px rgba(0, 0, 0, 0.3);--shadow_4__dark:0 2px 6px rgba(0, 0, 0, 0.4),0 1px 3px rgba(0, 0, 0, 0.35);--shadow_5__dark:0 3px 8px rgba(0, 0, 0, 0.45),0 1px 4px rgba(0, 0, 0, 0.35);--shadow_6__dark:0 4px 12px rgba(0, 0, 0, 0.5),0 2px 4px rgba(0, 0, 0, 0.45);--shadow_7__dark:0 6px 14px rgba(0, 0, 0, 0.52),0 3px 6px rgba(0, 0, 0, 0.45);--shadow_8__dark:0 8px 20px rgba(0, 0, 0, 0.55),0 4px 8px rgba(0, 0, 0, 0.5);--shadow_9__dark:0 12px 28px rgba(0, 0, 0, 0.58),0 6px 12px rgba(0, 0, 0, 0.5);--shadow_10__dark:0 16px 36px rgba(0, 0, 0, 0.6),0 8px 16px rgba(0, 0, 0, 0.5);--shadow_0:var(--shadow_0__light);--shadow_1:var(--shadow_1__light);--shadow_3:var(--shadow_3__light);--shadow_4:var(--shadow_4__light);--shadow_5:var(--shadow_5__light);--shadow_6:var(--shadow_6__light);--shadow_7:var(--shadow_7__light);--shadow_8:var(--shadow_8__light);--shadow_9:var(--shadow_9__light);--shadow_10:var(--shadow_10__light)}[theme=light]{color-scheme:light}[theme=dark]{color-scheme:dark;--shadow_0:var(--shadow_0__dark);--shadow_1:var(--shadow_1__dark);--shadow_3:var(--shadow_3__dark);--shadow_4:var(--shadow_4__dark);--shadow_5:var(--shadow_5__dark);--shadow_6:var(--shadow_6__dark);--shadow_7:var(--shadow_7__dark);--shadow_8:var(--shadow_8__dark);--shadow_9:var(--shadow_9__dark);--shadow_10:var(--shadow_10__dark)}[theme=auto]{color-scheme:light dark}@media (prefers-color-scheme:dark){[theme=auto]{--shadow_0:var(--shadow_0__dark);--shadow_1:var(--shadow_1__dark);--shadow_3:var(--shadow_3__dark);--shadow_4:var(--shadow_4__dark);--shadow_5:var(--shadow_5__dark);--shadow_6:var(--shadow_6__dark);--shadow_7:var(--shadow_7__dark);--shadow_8:var(--shadow_8__dark);--shadow_9:var(--shadow_9__dark);--shadow_10:var(--shadow_10__dark)}}:root{interpolate-size:allow-keywords}*,::after,::before{font-family:inherit;box-sizing:border-box;line-height:var(--line-height)}blockquote,body,code,dd,dl,dt,h1,h2,h3,h4,h5,h6,li,ol,p,pre,ul{margin:0;padding:.1px}html{font-family:var(--ff_body);font-size:var(--fs_base);font-weight:var(--fw_base);color:var(--tc);scrollbar-gutter:stable}::selection{background:var(--c_highlight)}body{min-height:100vh;background-color:var(--c_bg);color:var(--tc);overflow-y:scroll;font-family:var(--ff_body);position:relative}body.no-scroll{overflow:hidden!important}.container,main{max-width:var(--container_width);margin-left:auto;margin-right:auto;padding-top:var(--spacer);padding-left:var(--spacer);padding-right:var(--spacer)}nav>.link,nav>a{display:inline-block;padding:var(--spacer)!important;text-decoration:none}menu{margin:0;padding:0}menu a{display:block;padding:var(--spacer_q);text-decoration:none;color:inherit}summary{cursor:pointer;margin-bottom:var(--sapcer);outline:0;box-shadow:0 0 0 transparent;transition:box-shadow var(--animation_ms);border-radius:var(--radius)}summary:focus{box-shadow:var(--focus_shadow)}.d-b{display:block!important}.d-ib{display:inline-block!important}.d-g{display:grid!important}.d-i{display:inline!important}.d-n{display:none!important}.d-f{display:flex!important;flex-wrap:wrap}.d-if{display:inline-flex!important;flex-wrap:wrap}@media (min-width:1024px){.d-d-b{display:block!important}.d-d-ib{display:inline-block!important}.d-d-g{display:grid!important}.d-d-i{display:inline!important}.d-d-n{display:none!important}.d-d-f{display:flex!important;flex-wrap:wrap}.d-d-if{display:inline-flex!important;flex-wrap:wrap}}@media (min-width:769px) and (max-width:1023px){.t-d-b{display:block!important}.t-d-ib{display:inline-block!important}.t-d-g{display:grid!important}.t-d-i{display:inline!important}.t-d-n{display:none!important}.t-d-f{display:flex!important;flex-wrap:wrap}.t-d-if{display:inline-flex!important;flex-wrap:wrap}}@media (max-width:768px){.m-d-b{display:block!important}.m-d-ib{display:inline-block!important}.m-d-g{display:grid!important}.m-d-i{display:inline!important}.m-d-n{display:none!important}.m-d-f{display:flex!important;flex-wrap:wrap}.m-d-if{display:inline-flex!important;flex-wrap:wrap}}.flex,.flex-1{flex:1 1 auto}.flex-0{flex:0 0}.flex-2{flex:2 2 auto}.flex-3{flex:3 3 auto}.flex-4{flex:4 4 auto}.flex-5{flex:5 5 auto}.flex-6{flex:6 6 auto}.flex-7{flex:7 7 auto}.flex-8{flex:8 8 auto}.flex-9{flex:9 9 auto}.flex-10{flex:10 10 auto}@media (min-width:1024px){.d-d-b{display:block!important}.d-d-ib{display:inline-block!important}.d-d-g{display:grid!important}.d-d-i{display:inline!important}.d-d-n{display:none!important}.d-d-if{display:inline-flex!important;flex-wrap:wrap}.d-d-f{display:flex!important;flex-wrap:wrap}.d-flex,.d-flex-1{flex:1 1 auto}.d-flex-0{flex:0 0}.d-flex-2{flex:2 2 auto}.d-flex-3{flex:3 3 auto}.d-flex-4{flex:4 4 auto}.d-flex-5{flex:5 5 auto}.d-flex-6{flex:6 6 auto}.d-flex-7{flex:7 7 auto}.d-flex-8{flex:8 8 auto}.d-flex-9{flex:9 9 auto}.d-flex-10{flex:10 10 auto}}@media (min-width:769px) and (max-width:1023px){.t-d-b{display:block!important}.t-d-ib{display:inline-block!important}.t-d-g{display:grid!important}.t-d-i{display:inline!important}.t-d-n{display:none!important}.t-d-if{display:inline-flex!important;flex-wrap:wrap}.t-d-f{display:flex!important;flex-wrap:wrap}.t-flex,.t-flex-1{flex:1 1 auto}.t-flex-0{flex:0 0}.t-flex-2{flex:2 2 auto}.t-flex-3{flex:3 3 auto}.t-flex-4{flex:4 4 auto}.t-flex-5{flex:5 5 auto}.t-flex-6{flex:6 6 auto}.t-flex-7{flex:7 7 auto}.t-flex-8{flex:8 8 auto}.t-flex-9{flex:9 9 auto}.t-flex-10{flex:10 10 auto}}@media (max-width:768px){.m-d-b{display:block!important}.m-d-ib{display:inline-block!important}.m-d-g{display:grid!important}.m-d-i{display:inline!important}.m-d-n{display:none!important}.m-d-if{display:inline-flex!important;flex-wrap:wrap}.m-d-f{display:flex!important;flex-wrap:wrap}.m-flex,.m-flex-1{flex:1 1 auto}.m-flex-0{flex:0 0}.m-flex-2{flex:2 2 auto}.m-flex-3{flex:3 3 auto}.m-flex-4{flex:4 4 auto}.m-flex-5{flex:5 5 auto}.m-flex-6{flex:6 6 auto}.m-flex-7{flex:7 7 auto}.m-flex-8{flex:8 8 auto}.m-flex-9{flex:9 9 auto}.m-flex-10{flex:10 10 auto}}.fixed{position:fixed;top:0;width:100%;z-index:99;box-shadow:none;transition:box-shadow var(--animation_ms)}.fixed.scrolled{box-shadow:var(--elevation_2_shadow)}.small,small{font-size:var(--fs_small)!important}.large{font-size:var(--fs_large)!important}.h1,.h2,.h3,.h4,.h5,.h6,b,h1,h2,h3,h4,h5,h6,strong{font-weight:var(--fw_bold)}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:var(--ff_heading)}.h1,h1{font-size:var(--fs_h1)}.h2,h2{font-size:var(--fs_h2)}.h3,h3{font-size:var(--fs_h3)}.h4,h4{font-size:var(--fs_h4)}.h5,h5{font-size:var(--fs_h5)}.h6,h6{font-size:var(--fs_h6)}blockquote,dd,dl,h1,h2,h3,h4,h5,h6,hr,ol,p,pre,ul{margin-bottom:var(--spacer)}dl,ol,ul{padding-left:calc(1.5 * var(--spacer))}blockquote{border-left:2px solid var(--c_border);padding:var(--spacer)}mark{background-color:var(--c_highlight);color:inherit}.ff-mono,code,pre{font-family:var(--ff_mono)}code{background-color:var(--c_bg__alt);border-radius:var(--radius);word-break:break-word;padding:calc(.125 * var(--spacer)) var(--spacer_q)}pre code{display:block;padding:var(--spacer);word-break:normal;overflow:auto;white-space:pre-wrap}output{display:block;border:1px solid var(--c_border);border-radius:var(--radius);padding:var(--spacer) var(--spacer) 0 var(--spacer)}.ta-left{text-align:left}.ta-center{text-align:center}.ta-right{text-align:right}.link,a{color:var(--tc_link);box-shadow:0 0 0 transparent;transition:color var(--animation_ms),box-shadow var(--animation_ms);outline:0;border-radius:var(--radius);text-decoration:var(--link_decoration)}.link:hover,a:hover{color:var(--tc_link__hover)}.link:focus-visible,a:focus{box-shadow:var(--focus_shadow)}.no-link,.no-link:hover{text-decoration:none;color:inherit}hr{border:none;border-top:1px solid var(--c_border)}small{font-size:.75em}dl{padding:0;margin:0}dd,dt{padding-left:var(--spacer);border-left:2px solid var(--c_border)}dt{padding-top:var(--spacer_h)}dd{padding-bottom:var(--spacer_h)}dd+dd{margin-top:calc(-1 * var(--spacer));padding-top:0}li ul{margin-bottom:0}.td-n{text-decoration:none}.p,.pt,.py{padding-top:var(--spacer)!important}.p,.pr,.px{padding-right:var(--spacer)!important}.p,.pb,.py{padding-bottom:var(--spacer)!important}.p,.pl,.px{padding-left:var(--spacer)!important}.ph,.pth,.pyh{padding-top:var(--spacer_h)!important}.ph,.prh,.pxh{padding-right:var(--spacer_h)!important}.pbh,.ph,.pyh{padding-bottom:var(--spacer_h)!important}.ph,.plh,.pxh{padding-left:var(--spacer_h)!important}.pq,.ptq,.pyq{padding-top:var(--spacer_q)!important}.pq,.prq,.pxq{padding-right:var(--spacer_q)!important}.pbq,.pq,.pyq{padding-bottom:var(--spacer_q)!important}.plq,.pq,.pxq{padding-left:var(--spacer_q)!important}.p0,.pt0,.py0{padding-top:.1px!important}.p0,.pr0,.px0{padding-right:.1px!important}.p0,.pb0,.py0{padding-bottom:.1px!important}.p0,.pl0,.px0{padding-left:.1px!important}.m,.mt,.my{margin-top:var(--spacer)!important}.m,.mr,.mx{margin-right:var(--spacer)!important}.m,.mb,.my{margin-bottom:var(--spacer)!important}.m,.ml,.mx{margin-left:var(--spacer)!important}.mh,.mth,.myh{margin-top:var(--spacer_h)!important}.mh,.mrh,.mxh{margin-right:var(--spacer_h)!important}.mbh,.mh,.myh{margin-bottom:var(--spacer_h)!important}.mh,.mlh,.mxh{margin-left:var(--spacer_h)!important}.mq,.mtq,.myq{margin-top:var(--spacer_q)!important}.mq,.mrq,.mxq{margin-right:var(--spacer_q)!important}.mbq,.mq,.myq{margin-bottom:var(--spacer_q)!important}.mlq,.mq,.mxq{margin-left:var(--spacer_q)!important}.m0,.mt0,.my0{margin-top:0!important}.m0,.mr0,.mx0{margin-right:0!important}.m0,.mb0,.my0{margin-bottom:0!important}.m0,.ml0,.mx0{margin-left:0!important}.-m,.-mt,.-my{margin-top:calc(-1 * var(--spacer))!important}.-m,.-mr,.-mx{margin-right:calc(-1 * var(--spacer))!important}.-m,.-mb,.-my{margin-bottom:calc(-1 * var(--spacer))!important}.-m,.-ml,.-mx{margin-left:calc(-1 * var(--spacer))!important}.b,.bt,.by{border-top:1px solid var(--c_border)!important}.b,.br,.bx{border-right:1px solid var(--c_border)!important}.b,.bb,.by{border-bottom:1px solid var(--c_border)!important}.b,.bl,.bx{border-left:1px solid var(--c_border)!important}.b0,.bt0,.by0{border-top:none!important}.b0,.br0,.bx0{border-right:none!important}.b0,.bb0,.by0{border-bottom:none!important}.b0,.bl0,.bx0{border-left:none!important}.r,.rl,.rt,.rtl{border-top-left-radius:var(--radius)!important}.r,.rr,.rt,.rtr{border-top-right-radius:var(--radius)!important}.r,.rb,.rbr,.rr{border-bottom-right-radius:var(--radius)!important}.r,.rb,.rbl,.rl{border-bottom-left-radius:var(--radius)!important}.r0,.rl0,.rt0,.rtl0{border-top-left-radius:0!important}.r0,.rr0,.rt0,.rtr0{border-top-right-radius:0!important}.r0,.rb0,.rbr0,.rr0{border-bottom-right-radius:0!important}.r0,.rb0,.rbl0,.rl0{border-bottom-left-radius:0!important}.round{border-radius:9999rem!important}.row{display:flex;flex-wrap:wrap}.col{flex:1 1}.span-1{min-width:8.333%;flex-basis:8.333%}.span-2{min-width:16.666%;flex-basis:16.666%}.span-3{min-width:25%;flex-basis:25%}.span-4{min-width:33.333%;flex-basis:33.333%}.span-5{min-width:41.666%;flex-basis:41.666%}.span-6{min-width:50%;flex-basis:50%}.span-7{min-width:58.333%;flex-basis:58.333%}.span-8{min-width:66.666%;flex-basis:66.666%}.span-9{min-width:75%;flex-basis:75%}.span-10{min-width:83.333%;flex-basis:83.333%}.span-11{min-width:91.333%;flex-basis:91.333%}.span-12{min-width:100%;flex-basis:100%}@media (min-width:1024px){.d-span-1{min-width:8.333%;flex-basis:8.333%}.d-span-2{min-width:16.666%;flex-basis:16.666%}.d-span-3{min-width:25%;flex-basis:25%}.d-span-4{min-width:33.333%;flex-basis:33.333%}.d-span-5{min-width:41.666%;flex-basis:41.666%}.d-span-6{min-width:50%;flex-basis:50%}.d-span-7{min-width:58.333%;flex-basis:58.333%}.d-span-8{min-width:66.666%;flex-basis:66.666%}.d-span-9{min-width:75%;flex-basis:75%}.d-span-10{min-width:83.333%;flex-basis:83.333%}.d-span-11{min-width:91.333%;flex-basis:91.333%}.d-span-12{min-width:100%;flex-basis:100%}}@media (min-width:769px) and (max-width:1023px){.t-span-1{min-width:8.333%;flex-basis:8.333%}.t-span-2{min-width:16.666%;flex-basis:16.666%}.t-span-3{min-width:25%;flex-basis:25%}.t-span-4{min-width:33.333%;flex-basis:33.333%}.t-span-5{min-width:41.666%;flex-basis:41.666%}.t-span-6{min-width:50%;flex-basis:50%}.t-span-7{min-width:58.333%;flex-basis:58.333%}.t-span-8{min-width:66.666%;flex-basis:66.666%}.t-span-9{min-width:75%;flex-basis:75%}.t-span-10{min-width:83.333%;flex-basis:83.333%}.t-span-11{min-width:91.333%;flex-basis:91.333%}.t-span-12{min-width:100%;flex-basis:100%}}@media (max-width:768px){.m-span-1{min-width:8.333%;flex-basis:8.333%}.m-span-2{min-width:16.666%;flex-basis:16.666%}.m-span-3{min-width:25%;flex-basis:25%}.m-span-4{min-width:33.333%;flex-basis:33.333%}.m-span-5{min-width:41.666%;flex-basis:41.666%}.m-span-6{min-width:50%;flex-basis:50%}.m-span-7{min-width:58.333%;flex-basis:58.333%}.m-span-8{min-width:66.666%;flex-basis:66.666%}.m-span-9{min-width:75%;flex-basis:75%}.m-span-10{min-width:83.333%;flex-basis:83.333%}.m-span-11{min-width:91.333%;flex-basis:91.333%}.m-span-12{min-width:100%;flex-basis:100%}}.cols-2{grid-template-columns:repeat(2,1fr)}.cols-3{grid-template-columns:repeat(3,1fr)}.cols-4{grid-template-columns:repeat(4,1fr)}.cols-5{grid-template-columns:repeat(5,1fr)}.cols-6{grid-template-columns:repeat(6,1fr)}.cols-7{grid-template-columns:repeat(7,1fr)}.cols-8{grid-template-columns:repeat(8,1fr)}.cols-9{grid-template-columns:repeat(9,1fr)}.cols-10{grid-template-columns:repeat(10,1fr)}@media (min-width:1024px){.d-cols-2{grid-template-columns:repeat(2,1fr)}.d-cols-3{grid-template-columns:repeat(3,1fr)}.d-cols-4{grid-template-columns:repeat(4,1fr)}.d-cols-5{grid-template-columns:repeat(5,1fr)}.d-cols-6{grid-template-columns:repeat(6,1fr)}.d-cols-7{grid-template-columns:repeat(7,1fr)}.d-cols-8{grid-template-columns:repeat(8,1fr)}.d-cols-9{grid-template-columns:repeat(9,1fr)}.d-cols-10{grid-template-columns:repeat(10,1fr)}}@media (min-width:769px) and (max-width:1023px){.t-cols-2{grid-template-columns:repeat(2,1fr)}.t-cols-3{grid-template-columns:repeat(3,1fr)}.t-cols-4{grid-template-columns:repeat(4,1fr)}.t-cols-5{grid-template-columns:repeat(5,1fr)}.t-cols-6{grid-template-columns:repeat(6,1fr)}.t-cols-7{grid-template-columns:repeat(7,1fr)}.t-cols-8{grid-template-columns:repeat(8,1fr)}.t-cols-9{grid-template-columns:repeat(9,1fr)}.t-cols-10{grid-template-columns:repeat(10,1fr)}}@media (max-width:768px){.m-cols-2{grid-template-columns:repeat(2,1fr)}.m-cols-3{grid-template-columns:repeat(3,1fr)}.m-cols-4{grid-template-columns:repeat(4,1fr)}.m-cols-5{grid-template-columns:repeat(5,1fr)}.m-cols-6{grid-template-columns:repeat(6,1fr)}.m-cols-7{grid-template-columns:repeat(7,1fr)}.m-cols-8{grid-template-columns:repeat(8,1fr)}.m-cols-9{grid-template-columns:repeat(9,1fr)}.m-cols-10{grid-template-columns:repeat(10,1fr)}}.btn,button:not(.no-btn):not(.no-style),input[type=button],input[type=reset],input[type=submit]{display:inline-block;padding:var(--btn_padding);background-color:var(--btn_bg);border:1px solid var(--btn_border);cursor:pointer;outline:0;border-radius:var(--radius);color:var(--btn_tc);transition:background-color var(--animation_ms),box-shadow var(--animation_ms);text-decoration:none;box-shadow:var(--btn_box_shadow);font-size:inherit;vertical-align:middle}.btn:hover,button:not(.no-btn):not(.no-style):hover,input[type=button]:hover,input[type=reset]:hover,input[type=submit]:hover{background-color:var(--btn_bg__hover);color:var(--btn_tc);box-shadow:var(--btn_box_shadow__hover)}.btn:focus,button:not(.no-btn):not(.no-style):focus,input[type=button]:focus,input[type=reset]:focus,input[type=submit]:focus{box-shadow:var(--btn_box_shadow__hover),var(--focus_shadow);z-index:1}.btn[disabled],button:not(.no-btn):not(.no-style):disabled,input[type=button]:disabled,input[type=reset]:disabled,input[type=submit]:disabled{opacity:.6}.btn.primary,button:not(.no-btn).primary,input[type=button].primary,input[type=reset].primary,input[type=submit].primary{background-color:var(--c_primary)!important;--btn_tc:var(--tc_on_primary)}.btn.primary:hover,button:not(.no-btn).primary:hover,input[type=button].primary:hover,input[type=reset].primary:hover,input[type=submit].primary:hover{background-color:var(--c_primary__hover)!important}.btn.secondary,button:not(.no-btn).secondary,input[type=button].secondary,input[type=reset].secondary,input[type=submit].secondary{background-color:var(--c_secondary)!important;--btn_tc:var(--tc_on_secondary)}.btn.secondary:hover,button:not(.no-btn).secondary:hover,input[type=button].secondary:hover,input[type=reset].secondary:hover,input[type=submit].secondary:hover{background-color:var(--c_secondary__hover)!important}.btn.success,button:not(.no-btn).success,input[type=button].success,input[type=reset].success,input[type=submit].success{background-color:var(--c_success)!important;--btn_tc:var(--tc_on_success)}.btn.success:hover,button:not(.no-btn).success:hover,input[type=button].success:hover,input[type=reset].success:hover,input[type=submit].success:hover{background-color:var(--c_success__hover)!important}.btn.warning,button:not(.no-btn).warning,input[type=button].warning,input[type=reset].warning,input[type=submit].warning{background-color:var(--c_warning)!important;--btn_tc:var(--tc_on_warning)}.btn.warning:hover,button:not(.no-btn).warning:hover,input[type=button].warning:hover,input[type=reset].warning:hover,input[type=submit].warning:hover{background-color:var(--c_warning__hover)!important}.btn.danger,button:not(.no-btn).danger,input[type=button].danger,input[type=reset].danger,input[type=submit].danger{background-color:var(--c_danger)!important;--btn_tc:var(--tc_on_danger)}.btn.danger:hover,button:not(.no-btn).danger:hover,input[type=button].danger:hover,input[type=reset].danger:hover,input[type=submit].danger:hover{background-color:var(--c_danger__hover)!important}.btn.link,button:not(.no-btn):not(.no-style).link,input[type=button].link,input[type=reset].link,input[type=submit].link{background-color:transparent;color:inherit;box-shadow:0 0 0 transparent;border:none;padding:.1px;font-size:inherit}.btn-grp{display:inline-flex}.btn-grp .btn:not(:first-child),.btn-grp button:not(.no-btn):not(:first-child),.btn-grp input[type=button]:not(:first-child),.btn-grp input[type=reset]:not(:first-child),.btn-grp input[type=submit]:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0;border-left:1px solid rgba(0,0,0,.25)}.btn-grp .btn:not(:last-child),.btn-grp button:not(.no-btn):not(:last-child),.btn-grp input[type=button]:not(:last-child),.btn-grp input[type=reset]:not(:last-child),.btn-grp input[type=submit]:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.no-btn{display:inline;border:none;background-color:transparent;padding:0;font-size:inherit;font-family:inherit;cursor:pointer;outline:0;box-shadow:0 0 0 transparent;transition:box-shadow var(--animation_ms);border-radius:0;text-align:left;color:inherit}.no-btn:focus{box-shadow:var(--focus_shadow)}.full{display:block;width:100%}input:not([type=button]):not([type=submit]):not([type=reset]):not([type=radio]):not([type=checkbox]),select,textarea{display:block;width:100%;background-color:var(--input_bg);color:var(--input_tc);border:var(--input_border_width) solid var(--c_input_border);padding:var(--input_padding);border-radius:var(--radius);outline:0;transition:box-shadow var(--animation_ms)}input:not([type=button]):not([type=submit]):not([type=reset]):not([type=radio]):not([type=checkbox]):focus,input[type=checkbox]:focus,input[type=radio]:focus,select:focus,textarea:focus{box-shadow:var(--focus_shadow)}input:not([type=button]):not([type=submit]):not([type=reset]):not([type=radio]):not([type=checkbox]):disabled,input[type=checkbox]:disabled,input[type=radio]:disabled,select:disabled,textarea:disabled{opacity:.6}select[multiple],textarea{resize:vertical;max-height:75vh;height:6rem;min-height:4rem}select[multiple]{height:8rem}select{cursor:pointer}label{display:block;cursor:pointer;padding-bottom:var(--spacer_h)}label.checkbox,label.radio{display:inline-block;vertical-align:middle;width:calc(100% - 2em - (2 * var(--spacer_h)) - 6px)}input[type=checkbox],input[type=radio]{display:inline-block;width:1em;height:1em;cursor:pointer;vertical-align:middle;accent-color:var(--c_input_accent);margin:var(--spacer_q) var(--spacer_h);transition:background-color var(--animation_ms),color var(--animation_ms),box-shadow var(--animation_ms)}input[type=checkbox]{width:1.75em;height:1.75em;appearance:none;-webkit-appearance:none;background-color:transparent;border:2px solid var(--c_border);border-radius:var(--radius);vertical-align:-.5em;position:relative}input[type=checkbox]::before{content:"";position:absolute;inset:0;border-radius:calc(var(--radius) - 2px);background-color:transparent;mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="200 -760 560 560"><path d="m424-312 282-282-56-56-226 226-114-114-56 56 170 170Z"/></svg>');-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="200 -760 560 560"><path d="m424-312 282-282-56-56-226 226-114-114-56 56 170 170Z"/></svg>');mask-size:contain;-webkit-mask-size:contain;mask-position:center;-webkit-mask-position:center;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;transition:background-color var(--animation_ms)}input[type=checkbox]:focus{box-shadow:var(--focus_shadow);outline:0}input[type=checkbox]:checked{background-color:var(--c_primary);border-color:var(--c_primary)}input[type=checkbox]:checked::before{background-color:var(--tc_on_primary)}input[type=radio]{width:1.75em;height:1.75em;appearance:none;-webkit-appearance:none;background-color:transparent;border:2px solid var(--c_border);border-radius:50%;vertical-align:-.5em}input[type=radio]:focus{box-shadow:var(--focus_shadow);outline:0}input[type=radio]:checked{border-color:var(--c_primary);background:radial-gradient(circle,var(--c_primary) 40%,transparent 45%)}select option{padding:var(--spacer_h) var(--spacer);background-color:var(--input_bg);color:var(--input_tc)}select[multiple]{padding:.1px}select[multiple] option{padding:var(--spacer_h) var(--spacer)}input[type=color]{padding:0!important;height:2.35em}input[type=color]::-webkit-color-swatch-wrapper{padding:0}input[type=color]::-webkit-color-swatch{border-radius:var(--radius,.25rem);cursor:pointer}input[type=date]::-webkit-calendar-picker-indicator,input[type=month]::-webkit-calendar-picker-indicator,input[type=search]::-webkit-search-cancel-button,input[type=time]::-webkit-calendar-picker-indicator,input[type=week]::-webkit-calendar-picker-indicator{filter:var(--date_picker_icon_filter)}.table-wrapper{overflow-x:auto}table{width:100%;border-spacing:0}th{font-weight:var(--fw_bold);text-align:left;background-color:var(--c_bg__alt);border-top:1px solid var(--c_border)}td,th{padding:var(--spacer_h) var(--spacer);border-bottom:1px solid var(--c_border);border-left:1px solid var(--c_border)}td:last-child,th:last-child{border-right:1px solid var(--c_border)}th:first-child{border-top-left-radius:var(--radius)}th:last-child{border-top-right-radius:var(--radius)}tr:last-child td:first-child{border-bottom-left-radius:var(--radius)}tr:last-child td:last-child{border-bottom-right-radius:var(--radius)}.bg-default{background-color:var(--c_bg)!important;color:var(--tc)!important}.bg-alt{background-color:var(--c_bg__alt)!important;color:var(--tc)!important}.bg-inv{--c_primary:var(--c_primary__inv);--c_primary__hover:var(--c_primary__inv__hover);--c_secondary:var(--c_secondary__inv);--c_secondary__hover:var(--c_secondary__inv__hover);--c_success:var(--c_success__inv);--c_success__hover:var(--c_success__inv__hover);--c_warning:var(--c_warning__inv);--c_warning__hover:var(--c_warning__inv__hover);--c_danger:var(--c_danger__inv);--c_danger__hover:var(--c_danger__inv__hover);--tc_link:var(--tc_link__inv);--tc_link__hover:var(--tc_link__inv__hover);background-color:var(--c_bg__inv)!important;color:var(--tc_inv)!important}.bg-primary{--tc_link:var(--tc_on_primary);--tc_link__hover:var(--tc_on_primary);--c_border:var(--tc_on_primary);background-color:var(--c_primary)!important;color:var(--tc_on_primary)!important;--focus_shadow:var(--focus_shadow_on_primary)}.bg-secondary{--tc_link:var(--tc_on_secondary);--tc_link__hover:var(--tc_on_secondary);background-color:var(--c_secondary)!important;color:var(--tc_on_secondary)!important}.bg-success{--tc_link:var(--tc_on_success);--tc_link__hover:var(--tc_on_success);background-color:var(--c_success)!important;color:var(--tc_on_success)!important}.bg-warning{--tc_link:var(--tc_on_warning);--tc_link__hover:var(--tc_on_warning);background-color:var(--c_warning)!important;color:var(--tc_on_warning)!important}.bg-danger{--tc_link:var(--tc_on_danger);--tc_link__hover:var(--tc_on_danger);background-color:var(--c_danger)!important;color:var(--tc_on_danger)!important}.tc-default{color:var(--tc)!important}.tc-inv{color:var(--tc__inv)!important}.tc-primary{color:var(--tc_primary)!important}.bg-inv .tc-primary,.is-inv .tc-primary{color:var(--tc_primary__inv)!important}.tc-secondary{color:var(--tc_secondary)!important}.bg-inv .tc-secondary,.is-inv .tc-secondary{color:var(--tc_secondary__inv)!important}.tc-success{color:var(--tc_success)!important}.bg-inv .tc-success,.is-inv .tc-success{color:var(--tc_success__inv)!important}.tc-warning{color:var(--tc_warning)!important}.bg-inv .tc-warning,.is-inv .tc-warning{color:var(--tc_warning__inv)!important}.tc-danger{color:var(--tc_danger)!important}.bg-inv .tc-danger,.is-inv .tc-danger{color:var(--tc_danger__inv)!important}.tc-muted{color:var(--tc_muted)!important}.card{border:1px solid var(--c_border);border-radius:var(--radius);padding-top:var(--spacer);padding-left:var(--spacer);padding-right:var(--spacer);margin-bottom:var(--spacer)}.elevation-0{z-index:0}.elevation-1{z-index:10}.elevation-2{z-index:20}.elevation-3{z-index:30}.elevation-4{z-index:40}.elevation-5{z-index:50}.elevation-6{z-index:60}.elevation-7{z-index:70}.elevation-8{z-index:80}.elevation-9{z-index:90}.elevation-10{z-index:100}.shadow{box-shadow:none}.shadow.elevation-0{box-shadow:var(--shadow_0)}.shadow.elevation-1{box-shadow:var(--shadow_1)}.shadow.elevation-3{box-shadow:var(--shadow_3)}.shadow.elevation-4{box-shadow:var(--shadow_4)}.shadow.elevation-5{box-shadow:var(--shadow_5)}.shadow.elevation-6{box-shadow:var(--shadow_6)}.shadow.elevation-7{box-shadow:var(--shadow_7)}.shadow.elevation-8{box-shadow:var(--shadow_8)}.shadow.elevation-9{box-shadow:var(--shadow_9)}.shadow.elevation-10{box-shadow:var(--shadow_10)}.bg-elevation.elevation-0{background-color:var(--c_bg_elevation_0)}.bg-elevation.elevation-1{background-color:var(--c_bg_elevation_1)}.bg-elevation.elevation-2{background-color:var(--c_bg_elevation_2)}.bg-elevation.elevation-3{background-color:var(--c_bg_elevation_3)}.bg-elevation.elevation-4{background-color:var(--c_bg_elevation_4)}.bg-elevation.elevation-5{background-color:var(--c_bg_elevation_5)}.bg-elevation.elevation-6{background-color:var(--c_bg_elevation_6)}.bg-elevation.elevation-7{background-color:var(--c_bg_elevation_7)}.bg-elevation.elevation-8{background-color:var(--c_bg_elevation_8)}.bg-elevation.elevation-9{background-color:var(--c_bg_elevation_9)}.bg-elevation.elevation-10{background-color:var(--c_bg_elevation_10)}.icon{display:inline-block;width:1.35em;vertical-align:top;margin-left:auto;margin-right:auto}iframe{border:none;width:100%}
|
|
@@ -1,4 +1,16 @@
|
|
|
1
|
-
import ShadowComponent from
|
|
1
|
+
import ShadowComponent from 'https://cdn.jsdelivr.net/npm/kempo-ui@0.1.6/dist/components/ShadowComponent.js';
|
|
2
|
+
import { html, css } from 'https://cdn.jsdelivr.net/npm/kempo-ui@0.1.6/dist/lit-all.min.js';
|
|
3
|
+
|
|
4
|
+
export default class ThemePropertyInput extends ShadowComponent {
|
|
5
|
+
static properties = {
|
|
6
|
+
propName: { type: String, attribute: 'prop-name' },
|
|
7
|
+
value: { type: String },
|
|
8
|
+
availableProperties: { type: Array, attribute: 'available-properties' },
|
|
9
|
+
mode: { type: String },
|
|
10
|
+
initialColor: { type: String, attribute: 'initial-color' }
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
static styles = css`
|
|
2
14
|
:host {
|
|
3
15
|
display: block;
|
|
4
16
|
}
|
|
@@ -18,7 +30,95 @@ import ShadowComponent from"https://cdn.jsdelivr.net/npm/kempo-ui@0.0.36/dist/co
|
|
|
18
30
|
.value-input {
|
|
19
31
|
flex: 1;
|
|
20
32
|
}
|
|
21
|
-
`;
|
|
33
|
+
`;
|
|
34
|
+
|
|
35
|
+
constructor() {
|
|
36
|
+
super();
|
|
37
|
+
this.propName = '';
|
|
38
|
+
this.value = '';
|
|
39
|
+
this.availableProperties = [];
|
|
40
|
+
this.mode = 'color';
|
|
41
|
+
this.initialColor = '';
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
connectedCallback() {
|
|
45
|
+
super.connectedCallback();
|
|
46
|
+
|
|
47
|
+
if(this.value?.startsWith('var(')) {
|
|
48
|
+
this.mode = 'var';
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
firstUpdated() {
|
|
53
|
+
this.attachColorPickerListener();
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
updated(changedProperties) {
|
|
57
|
+
super.updated?.(changedProperties);
|
|
58
|
+
this.attachColorPickerListener();
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
attachColorPickerListener() {
|
|
62
|
+
if(this.mode === 'color') {
|
|
63
|
+
const colorPicker = this.shadowRoot?.querySelector('k-color-picker');
|
|
64
|
+
if(colorPicker && !colorPicker._hasChangeListener) {
|
|
65
|
+
colorPicker._hasChangeListener = true;
|
|
66
|
+
colorPicker.addEventListener('change', this.handleColorChange);
|
|
67
|
+
colorPicker.addEventListener('input', this.handleColorChange);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/*
|
|
73
|
+
Event Handlers
|
|
74
|
+
*/
|
|
75
|
+
|
|
76
|
+
handleModeChange = (e) => {
|
|
77
|
+
this.mode = e.target.value;
|
|
78
|
+
|
|
79
|
+
if(this.mode === 'var' && !this.value.startsWith('var(')) {
|
|
80
|
+
this.value = this.availableProperties[0] ? `var(${this.availableProperties[0]})` : '';
|
|
81
|
+
} else if(this.mode === 'color' && this.value.startsWith('var(')) {
|
|
82
|
+
this.value = this.initialColor || '#000000';
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
this.emitChange();
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
handleVarInput = (e) => {
|
|
89
|
+
const varName = e.target.value;
|
|
90
|
+
this.value = varName.startsWith('var(') ? varName : `var(${varName})`;
|
|
91
|
+
this.emitChange();
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
handleColorChange = (e) => {
|
|
95
|
+
this.value = e.target.value;
|
|
96
|
+
this.emitChange();
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
/*
|
|
100
|
+
Utility Functions
|
|
101
|
+
*/
|
|
102
|
+
|
|
103
|
+
emitChange() {
|
|
104
|
+
this.dispatchEvent(new CustomEvent('value-change', {
|
|
105
|
+
detail: { propName: this.propName, value: this.value },
|
|
106
|
+
bubbles: true,
|
|
107
|
+
composed: true
|
|
108
|
+
}));
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/*
|
|
112
|
+
Rendering
|
|
113
|
+
*/
|
|
114
|
+
|
|
115
|
+
render() {
|
|
116
|
+
const datalistId = `${this.propName}-datalist`;
|
|
117
|
+
const varName = this.value?.startsWith('var(')
|
|
118
|
+
? this.value.slice(4, -1).trim()
|
|
119
|
+
: '';
|
|
120
|
+
|
|
121
|
+
return html`
|
|
22
122
|
<label>${this.propName}</label>
|
|
23
123
|
<div class="input-wrapper">
|
|
24
124
|
<select class="mode-select" .value=${this.mode} @change=${this.handleModeChange}>
|
|
@@ -26,22 +126,29 @@ import ShadowComponent from"https://cdn.jsdelivr.net/npm/kempo-ui@0.0.36/dist/co
|
|
|
26
126
|
<option value="color">Color</option>
|
|
27
127
|
</select>
|
|
28
128
|
|
|
29
|
-
${
|
|
129
|
+
${this.mode === 'var'
|
|
130
|
+
? html`
|
|
30
131
|
<input
|
|
31
132
|
class="value-input"
|
|
32
|
-
list=${
|
|
33
|
-
.value=${
|
|
133
|
+
list=${datalistId}
|
|
134
|
+
.value=${varName}
|
|
34
135
|
@input=${this.handleVarInput}
|
|
35
136
|
placeholder="--property-name"
|
|
36
137
|
/>
|
|
37
|
-
<datalist id=${
|
|
38
|
-
${this.availableProperties.map(
|
|
138
|
+
<datalist id=${datalistId}>
|
|
139
|
+
${this.availableProperties.map(prop => html`<option value=${prop}></option>`)}
|
|
39
140
|
</datalist>
|
|
40
|
-
|
|
141
|
+
`
|
|
142
|
+
: html`
|
|
41
143
|
<k-color-picker
|
|
42
144
|
class="value-input"
|
|
43
145
|
value=${this.value}
|
|
44
146
|
></k-color-picker>
|
|
45
|
-
`
|
|
147
|
+
`
|
|
148
|
+
}
|
|
46
149
|
</div>
|
|
47
|
-
|
|
150
|
+
`;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
customElements.define('k-theme-property-input', ThemePropertyInput);
|