@energie360/ui-library 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/base/_input-resets.scss +9 -3
  2. package/base/_resets.scss +5 -0
  3. package/components/accordion-item/accordion-item.scss +62 -0
  4. package/components/accordion-item/u-accordion-item.vue +44 -0
  5. package/components/card/card.scss +58 -0
  6. package/components/card/u-card.vue +26 -0
  7. package/components/card-header/card-header.scss +102 -0
  8. package/components/card-header/u-card-header.vue +51 -0
  9. package/components/card-hint/card-hint.scss +13 -0
  10. package/components/card-hint/u-card-hint.vue +23 -0
  11. package/components/card-price/card-price.scss +110 -0
  12. package/components/card-price/u-card-price.vue +47 -0
  13. package/components/card-table/card-table.scss +76 -0
  14. package/components/card-table/u-card-table.vue +77 -0
  15. package/components/card-toggle-switches/card-toggle-switches.scss +13 -0
  16. package/components/card-toggle-switches/u-card-toggle-switches.vue +30 -0
  17. package/components/collapsible/collapsible.scss +14 -0
  18. package/components/collapsible/u-collapsible.vue +81 -0
  19. package/components/collapsible-group/u-collapsible-group.vue +14 -0
  20. package/components/icon-teaser/icon-teaser.scss +58 -0
  21. package/components/icon-teaser/u-icon-teaser.vue +35 -0
  22. package/components/icon-teaser-group/icon-teaser-group.scss +10 -0
  23. package/components/icon-teaser-group/u-icon-teaser-group.vue +19 -0
  24. package/components/icon-text-block/u-icon-text-block.vue +3 -8
  25. package/components/language-nav/language-nav.scss +32 -0
  26. package/components/language-nav/u-language-nav.vue +27 -0
  27. package/components/panel/panel.scss +43 -6
  28. package/components/panel/u-panel.vue +22 -11
  29. package/components/progress-bar/u-progress-bar.vue +1 -1
  30. package/components/richtext/richtext.scss +208 -0
  31. package/components/richtext/u-richtext.vue +21 -0
  32. package/components/table/u-cell-ctas.vue +2 -7
  33. package/components/table/u-cell-icon-group.vue +1 -1
  34. package/components/table/u-cell-icon-text.vue +1 -1
  35. package/components/table/u-cell-progress-bar.vue +1 -1
  36. package/components/table/u-table-cell.vue +3 -13
  37. package/components/table/u-table-heading.vue +1 -4
  38. package/components/tooltip/{popover.js → popover.ts} +51 -43
  39. package/components/tooltip/u-tooltip.vue +40 -60
  40. package/dist/base-style.css +409 -2
  41. package/dist/base-style.css.map +1 -0
  42. package/dist/elements/text-link.css +40 -0
  43. package/dist/elements/text-link.css.map +1 -0
  44. package/dist/layout/split.css +124 -0
  45. package/dist/layout/split.css.map +1 -0
  46. package/elements/button/u-button.vue +2 -5
  47. package/elements/button-chip/button-chip.scss +83 -0
  48. package/elements/button-chip/u-button-chip.vue +45 -0
  49. package/elements/form-field/form-field-base.scss +2 -3
  50. package/elements/form-field/form-field.types.ts +8 -0
  51. package/elements/icon/u-icon.vue +1 -3
  52. package/elements/image/u-image.vue +2 -2
  53. package/elements/numeric-stepper/numeric-stepper.scss +110 -0
  54. package/elements/numeric-stepper/u-numeric-stepper.vue +135 -0
  55. package/elements/select/select.scss +32 -0
  56. package/elements/select/u-select.vue +130 -0
  57. package/elements/select-chip/select-chip.scss +18 -0
  58. package/elements/select-chip/u-select-chip.vue +50 -0
  59. package/elements/select-chips/select-chips.scss +5 -0
  60. package/elements/select-chips/u-select-chips.vue +23 -0
  61. package/elements/spectro/spectro.scss +1 -4
  62. package/elements/text-field/u-text-field.vue +43 -27
  63. package/elements/text-link/text-link.scss +57 -0
  64. package/elements/toggle-switch/toggle-switch-small.scss +40 -0
  65. package/elements/toggle-switch/toggle-switch.scss +149 -0
  66. package/elements/toggle-switch/u-toggle-switch.vue +68 -0
  67. package/elements/types.ts +7 -0
  68. package/globals.js +1 -2
  69. package/helpers/transition-height.vue +39 -0
  70. package/i18n/i18n.ts +40 -0
  71. package/layout/grid/grid.mixin.scss +4 -11
  72. package/layout/split/split.scss +96 -0
  73. package/modules/footer/footer.scss +161 -0
  74. package/modules/footer/u-footer.vue +59 -0
  75. package/package.json +23 -13
  76. package/utility/elements/text-link.scss +1 -0
  77. package/utility/layout/split.scss +1 -0
  78. package/utility/utility-text.js +1 -0
  79. package/utils/object/deep-get.js +1 -2
  80. package/utils/translations/translate.js +13 -0
  81. package/vite.config.ts +1 -0
  82. package/watch.js +27 -0
  83. package/wizard/wizard-intro/wizard-intro.scss +4 -0
  84. package/wizard/wizard-layout/u-wizard-layout-block.vue +1 -1
  85. package/wizard/wizard-layout/u-wizard-layout-element.vue +1 -1
  86. package/wizard/wizard-layout/u-wizard-layout.vue +1 -1
  87. package/wizard/wizard-layout/wizard-layout.scss +6 -6
  88. package/dist/base-style.js +0 -2
  89. package/dist/base-style.js.map +0 -1
  90. package/dist/custom-elements.css +0 -1
  91. package/dist/custom-elements.js +0 -5185
  92. package/dist/custom-elements.js.map +0 -1
@@ -0,0 +1,161 @@
1
+ @use '../../base/abstracts/' as a;
2
+ @use '../../elements/text-link/text-link.scss' as t;
3
+ @use '../../layout/container/container.scss' as l;
4
+
5
+ .footer {
6
+ &.reduced {
7
+ .footer__top {
8
+ display: none;
9
+ }
10
+
11
+ .footer__bottom-col {
12
+ display: flex;
13
+ column-gap: var(--e-space-4);
14
+ }
15
+
16
+ .footer__copyright {
17
+ order: 1;
18
+ }
19
+
20
+ .footer__meta-navigation {
21
+ order: 2;
22
+ }
23
+
24
+ .footer__language-nav {
25
+ position: static;
26
+ }
27
+ }
28
+ }
29
+
30
+ .footer__top {
31
+ padding-top: var(--e-space-10);
32
+ padding-bottom: var(--e-space-16);
33
+ background-color: var(--e-c-mono-50);
34
+
35
+ @include a.bp(lg) {
36
+ padding-top: var(--e-space-8);
37
+ padding-bottom: var(--e-space-10);
38
+ }
39
+ }
40
+
41
+ .footer__top-row {
42
+ display: flex;
43
+ flex-wrap: wrap;
44
+ grid-gap: var(--e-space-12);
45
+ }
46
+
47
+ .footer__top-column {
48
+ white-space: nowrap;
49
+
50
+ &:nth-child(3) {
51
+ margin-right: auto;
52
+ }
53
+
54
+ &.service {
55
+ white-space: wrap;
56
+
57
+ @include a.bp(lg) {
58
+ a {
59
+ display: block;
60
+ }
61
+ }
62
+ }
63
+
64
+ @include a.type(200);
65
+
66
+ a {
67
+ @include t.text-link--secondary;
68
+
69
+ font-weight: var(--e-type-weight-strong);
70
+ -webkit-font-smoothing: antialiased; // This is an exception. Usually we only use this for large heading text.
71
+ }
72
+
73
+ @include a.bp(m) {
74
+ flex: 1 0 100%;
75
+ }
76
+ }
77
+
78
+ .footer__top-right-column {
79
+ @include a.bp(xl) {
80
+ flex: 1 0 100%;
81
+ }
82
+ }
83
+
84
+ .footer__social-links {
85
+ display: flex;
86
+ grid-gap: var(--e-space-6);
87
+ }
88
+
89
+ .footer__bottom {
90
+ background-color: var(--e-c-mono-100);
91
+ padding-top: var(--e-space-8);
92
+ padding-bottom: var(--e-space-6);
93
+ }
94
+
95
+ .footer__bottom-row {
96
+ position: relative;
97
+ display: flex;
98
+ justify-content: space-between;
99
+
100
+ @include a.bp(m) {
101
+ flex-direction: column;
102
+ }
103
+ }
104
+
105
+ .footer__language-nav {
106
+ position: absolute;
107
+ top: 0;
108
+ right: 0;
109
+
110
+ @include a.bp(lg) {
111
+ top: auto;
112
+ bottom: 0;
113
+ }
114
+
115
+ @include a.bp(m) {
116
+ position: relative;
117
+ margin-bottom: calc(var(--e-space-8) + #{a.rem(18)});
118
+ }
119
+ }
120
+
121
+ .footer__meta-navigation {
122
+ @include a.type(100);
123
+
124
+ display: flex;
125
+ grid-gap: var(--e-space-6);
126
+ margin-bottom: var(--e-space-3);
127
+
128
+ a {
129
+ @include t.text-link--secondary;
130
+ }
131
+
132
+ @include a.bp(lg) {
133
+ @include a.type(50);
134
+ }
135
+
136
+ @include a.bp(m) {
137
+ flex-direction: column;
138
+ grid-gap: var(--e-space-4);
139
+ margin-bottom: var(--e-space-8);
140
+ }
141
+ }
142
+
143
+ .footer__copyright {
144
+ @include a.type(100);
145
+
146
+ color: var(--e-c-mono-700);
147
+
148
+ @include a.bp(lg) {
149
+ @include a.type(50);
150
+ }
151
+
152
+ @include a.bp(m) {
153
+ position: absolute;
154
+ left: 0;
155
+ bottom: 0;
156
+ }
157
+ }
158
+
159
+ .footer__container {
160
+ @include l.grid-container;
161
+ }
@@ -0,0 +1,59 @@
1
+ <script setup lang="ts">
2
+ interface Props {
3
+ variant?: 'normal' | 'reduced'
4
+ }
5
+
6
+ const { variant = 'normal' } = defineProps<Props>()
7
+ </script>
8
+
9
+ <template>
10
+ <div :class="['footer', variant]">
11
+ <div class="footer__top">
12
+ <div class="footer__container">
13
+ <div class="footer__top-row">
14
+ <div class="footer__top-column">
15
+ <slot name="address"></slot>
16
+ </div>
17
+
18
+ <div class="footer__top-column">
19
+ <slot name="contact"></slot>
20
+ </div>
21
+
22
+ <div class="footer__top-column service">
23
+ <slot name="service"></slot>
24
+ </div>
25
+
26
+ <div class="footer__top-right-column">
27
+ <div class="footer__social-links">
28
+ <slot name="socialLinks"></slot>
29
+ </div>
30
+ </div>
31
+ </div>
32
+ </div>
33
+ </div>
34
+
35
+ <div class="footer__bottom">
36
+ <div class="footer__container">
37
+ <div class="footer__bottom-row">
38
+ <div class="footer__bottom-col">
39
+ <div class="footer__meta-navigation">
40
+ <slot name="metaNav"></slot>
41
+ </div>
42
+
43
+ <div class="footer__copyright">
44
+ <slot name="copyright"></slot>
45
+ </div>
46
+ </div>
47
+
48
+ <div class="footer__language-nav">
49
+ <slot name="languageNav"></slot>
50
+ </div>
51
+ </div>
52
+ </div>
53
+ </div>
54
+ </div>
55
+ </template>
56
+
57
+ <style lang="scss">
58
+ @use './footer.scss';
59
+ </style>
package/package.json CHANGED
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "name": "@energie360/ui-library",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "",
5
+ "type": "module",
5
6
  "main": "dist/index.js",
6
7
  "exports": {
7
8
  ".": "./dist/custom-elements.js",
@@ -11,31 +12,40 @@
11
12
  "./elements/*": "./elements/*",
12
13
  "./components": "./components/index.js",
13
14
  "./components/*": "./components/*",
15
+ "./modules": "./modules/index.js",
16
+ "./modules/*": "./modules/*",
14
17
  "./wizard": "./wizard/index.js",
15
- "./wizard/*": "./wizard/*"
18
+ "./wizard/*": "./wizard/*",
19
+ "./utility/elements/*": "./dist/elements/*",
20
+ "./utility/layout/*": "./dist/layout/*"
16
21
  },
17
22
  "keywords": [],
18
23
  "author": "",
19
24
  "license": "MIT",
20
25
  "devDependencies": {
21
26
  "@tsconfig/node22": "^22.0.0",
22
- "@types/node": "^22.13.4",
23
- "@vitejs/plugin-vue": "^5.2.1",
27
+ "@types/node": "^22.13.10",
28
+ "@vitejs/plugin-vue": "^5.2.3",
24
29
  "@vue/tsconfig": "^0.7.0",
25
- "autoprefixer": "^10.4.20",
26
- "postcss": "^8.5.2",
27
- "sass": "^1.85.0",
28
- "typescript": "^5.7.3",
29
- "vite": "^6.1.0",
30
+ "autoprefixer": "^10.4.21",
31
+ "chokidar": "^4.0.3",
32
+ "postcss": "^8.5.3",
33
+ "sass": "^1.86.0",
34
+ "typescript": "^5.8.2",
35
+ "vite": "^6.2.2",
30
36
  "vue": "^3.5.13",
31
- "vue-tsc": "^2.2.2"
37
+ "vue-tsc": "^2.2.8"
32
38
  },
33
39
  "dependencies": {
34
- "@energie360/design-tokens": "^1.1.0"
40
+ "@energie360/design-tokens": "^1.3.0"
35
41
  },
36
42
  "scripts": {
37
- "dev": "NODE_ENV=development vite build --watch --mode developement",
38
- "build": "vite build",
43
+ "dev:vite": "NODE_ENV=development vite build --watch --mode development",
44
+ "watch": "node ./watch.js",
45
+ "dev": "npm run build; npm run watch",
46
+ "build:utilities": "sass --load-path=node_modules utility:dist",
47
+ "build:base": "sass --load-path=node_modules base/main-base.scss:dist/base-style.css",
48
+ "build": "npm run build:utilities && npm run build:base",
39
49
  "prepublish": "npm run build",
40
50
  "type-check": "vue-tsc --build"
41
51
  }
@@ -0,0 +1 @@
1
+ @use '../../elements/text-link/text-link';
@@ -0,0 +1 @@
1
+ @use '../../layout/split/split';
@@ -0,0 +1 @@
1
+ import '../elements/text-link/text-link.scss'
@@ -7,8 +7,7 @@
7
7
  * @param {Array} keys
8
8
  * @returns {*}
9
9
  */
10
- export const deepGet = (obj, keys) =>
11
- keys.reduce((xs, x) => xs?.[x] ?? null, obj)
10
+ export const deepGet = (obj, keys) => keys.reduce((xs, x) => xs?.[x] ?? null, obj)
12
11
 
13
12
  /**
14
13
  *
@@ -1,4 +1,7 @@
1
1
  import { deepGetByPath } from '../object/deep-get.js'
2
+ import translations from '../../i18n/i18n.ts'
3
+
4
+ const DEFAULT_LANGUAGE = 'DE'
2
5
 
3
6
  /**
4
7
  *
@@ -8,3 +11,13 @@ import { deepGetByPath } from '../object/deep-get.js'
8
11
  */
9
12
  export const translate = (translationKeyPath, defaultValue = '') =>
10
13
  deepGetByPath(window._EC.translations, translationKeyPath) || defaultValue
14
+
15
+ const getLanguage = () => {
16
+ const langAttr = document.documentElement.lang.split('-')[0].toUpperCase()
17
+
18
+ return langAttr === '' ? DEFAULT_LANGUAGE : langAttr
19
+ }
20
+
21
+ export const getTranslation = (key) => {
22
+ return translations[getLanguage()][key]
23
+ }
package/vite.config.ts CHANGED
@@ -12,6 +12,7 @@ export default defineConfig({
12
12
  entry: [
13
13
  resolve(__dirname, 'custom-elements.js'),
14
14
  resolve(__dirname, 'base-style.js'),
15
+ resolve(__dirname, 'utility/utility-text.js'),
15
16
  ],
16
17
  name: '@energie360/ui-library',
17
18
  formats: ['es'],
package/watch.js ADDED
@@ -0,0 +1,27 @@
1
+ import chokidar from 'chokidar'
2
+ import { execSync } from 'child_process'
3
+ import { glob } from 'node:fs/promises'
4
+
5
+ const watchOptions = {
6
+ persistent: true,
7
+ ignoreInitial: true,
8
+ }
9
+
10
+ const handlerError = (e) => {
11
+ console.error(e)
12
+ }
13
+
14
+ const watcherScss = chokidar.watch(await Array.fromAsync(glob('**/*.scss')), watchOptions)
15
+ const reloadScss = () => {
16
+ try {
17
+ execSync('npm run build -s', { stdio: 'inherit' })
18
+ console.log('--> reload CSS')
19
+ // reloadJs()
20
+ } catch (err) {
21
+ console.error(err)
22
+ }
23
+ }
24
+
25
+ watcherScss.on('add', reloadScss)
26
+ watcherScss.on('change', reloadScss)
27
+ watcherScss.on('error', handlerError)
@@ -36,4 +36,8 @@
36
36
 
37
37
  .cta-slot {
38
38
  margin-top: var(--e-space-16);
39
+
40
+ @include a.bp(lg) {
41
+ margin-top: var(--e-space-12);
42
+ }
39
43
  }
@@ -10,7 +10,7 @@ defineProps<Props>()
10
10
  <div class="wizard-layout-block">
11
11
  <div class="row row--centered">
12
12
  <div :class="[`col-${columns}`]">
13
- <slot></slot>
13
+ <slot />
14
14
  </div>
15
15
  </div>
16
16
  </div>
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div class="wizard-layout-element">
3
- <slot></slot>
3
+ <slot />
4
4
  </div>
5
5
  </template>
6
6
 
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div class="container">
3
3
  <div class="wizard-layout">
4
- <slot></slot>
4
+ <slot />
5
5
  </div>
6
6
  </div>
7
7
  </template>
@@ -18,12 +18,6 @@
18
18
  --e-wizard-block-bottom: #{a.rem(dt.$space-16)};
19
19
  --e-wizard-block-between: #{a.rem(dt.$space-6)};
20
20
 
21
- @include a.bp(lg) {
22
- --e-wizard-wrapper-top: #{a.rem(dt.$space-12)};
23
- --e-wizard-wrapper-bottom: #{a.rem(dt.$space-20)};
24
- --e-wizard-block-bottom: #{a.rem(dt.$space-12)};
25
- }
26
-
27
21
  padding-top: var(--e-wizard-wrapper-top);
28
22
  padding-bottom: var(--e-wizard-wrapper-bottom);
29
23
 
@@ -37,4 +31,10 @@
37
31
  margin-top: var(--e-wizard-block-between);
38
32
  }
39
33
  }
34
+
35
+ @include a.bp(lg) {
36
+ --e-wizard-wrapper-top: #{a.rem(dt.$space-12)};
37
+ --e-wizard-wrapper-bottom: #{a.rem(dt.$space-20)};
38
+ --e-wizard-block-bottom: #{a.rem(dt.$space-12)};
39
+ }
40
40
  }
@@ -1,2 +0,0 @@
1
-
2
- //# sourceMappingURL=base-style.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base-style.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- .icon[data-v-3ff10e21]{display:block;fill:var(--icon-fill-color, currentColor);width:var(--icon-width, 24px);height:var(--icon-height, 24px);transition:var(--icon-transition, none)}.icon.icon--custom-size[data-v-3ff10e21]{width:100%;height:100%}.icon.icon--inline[data-v-3ff10e21]{display:inline-block;vertical-align:baseline}@keyframes horizontal-8027a436{0%{transform:translate(0)}20%{transform:translate(0);opacity:1;width:8px}50%{transform:translate(24px);opacity:.7;width:16px}80%{transform:translate(56px);opacity:1;width:8px}to{transform:translate(56px)}}@keyframes vertical-8027a436{0%{transform:translateY(0)}50%{transform:translateY(0);opacity:1;height:8px}55%{transform:translateY(-12px);opacity:.7;height:16px}60%{transform:translateY(0);opacity:1;height:8px}70%{transform:translateY(-4px)}to{transform:translateY(0)}}.loader[data-v-8027a436]{position:relative;display:inline-flex;--dot-color: var(--e-c-mono-900)}.loader>span[data-v-8027a436]{display:block;width:8px;height:8px;border-radius:4px;background-color:var(--dot-color)}.loader.horizontal[data-v-8027a436]{width:64px}.loader.horizontal>span[data-v-8027a436]{transform:translate(0);animation-name:horizontal-8027a436;animation-duration:1s;animation-direction:alternate;animation-timing-function:cubic-bezier(.4,.61,.61,.4);animation-iteration-count:infinite}.loader.vertical[data-v-8027a436]{height:8px;width:8px}.loader.vertical>span[data-v-8027a436]{transform:translateY(0);animation-name:vertical-8027a436;animation-duration:2s;animation-timing-function:cubic-bezier(.47,.52,.165,1.005);animation-iteration-count:infinite}button[data-v-40a767c3]{padding:0;margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;font-family:inherit;font-size:inherit;background:none}.button[data-v-40a767c3]{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:.625rem 1.875rem;grid-gap:var(--e-space-2);border-radius:24px;transition:background-color var(--e-trs-duration-faster) var(--e-trs-easing-default),box-shadow var(--e-trs-duration-faster) var(--e-trs-easing-default),color var(--e-trs-duration-faster) var(--e-trs-easing-default),border var(--e-trs-duration-faster) var(--e-trs-easing-default);border-width:2px;border-style:solid;text-decoration:none;vertical-align:middle;text-align:center;cursor:pointer;font-size:var(--e-type-size-200);line-height:var(--e-type-line-height-200);letter-spacing:.00625rem;font-weight:var(--e-type-weight-strong);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.button .icon[data-v-40a767c3],.button e-icon[data-v-40a767c3]{width:24px;height:24px}.button .button__loader[data-v-40a767c3]{position:absolute;top:0;left:0;display:flex;align-items:center;justify-content:center;width:100%;height:100%}.button.disabled[data-v-40a767c3],.button[data-v-40a767c3]:disabled{pointer-events:none}.button.loading[data-v-40a767c3]{cursor:default}.button .icon[data-v-40a767c3],.button e-icon[data-v-40a767c3]{--icon-transition: fill var(--e-trs-duration-faster) var(--e-trs-easing-default)}.button[data-v-40a767c3]{background-color:var(--e-c-primary-01-700);color:var(--e-c-mono-00);border-color:var(--e-c-primary-01-700)}.button .icon[data-v-40a767c3],.button e-icon[data-v-40a767c3]{--icon-fill-color: var(--e-c-mono-00)}.button .loader[data-v-40a767c3],.button e-loader[data-v-40a767c3]{--dot-color: var(--e-c-mono-00)}.button[data-v-40a767c3]:hover{background-color:var(--e-c-secondary-01-900);border-color:var(--e-c-secondary-01-900)}.button[data-v-40a767c3]:active,.button.loading[data-v-40a767c3]{background-color:var(--e-c-secondary-01-700);border-color:var(--e-c-secondary-01-700)}.button.disabled[data-v-40a767c3]:not(.loading),.button[data-v-40a767c3]:disabled:not(.loading){background-color:var(--e-c-mono-500);border-color:var(--e-c-mono-500)}.button.outlined[data-v-40a767c3]{background-color:transparent;color:var(--e-c-primary-01-700);border:2px solid var(--e-c-primary-01-700)}.button.outlined .icon[data-v-40a767c3],.button.outlined e-icon[data-v-40a767c3]{--icon-fill-color: var(--e-c-primary-01-700)}.button.outlined .loader[data-v-40a767c3],.button.outlined e-loader[data-v-40a767c3]{--dot-color: var(--e-c-primary-01-500)}.button.outlined[data-v-40a767c3]:hover{background-color:var(--e-c-primary-01-50);border-color:var(--e-c-primary-01-200)}.button.outlined[data-v-40a767c3]:active,.button.outlined.loading[data-v-40a767c3]{background-color:transparent;border-color:var(--e-c-primary-01-500)}.button.outlined.disabled[data-v-40a767c3]:not(.loading),.button.outlined[data-v-40a767c3]:disabled:not(.loading){border-color:var(--e-c-mono-500);background-color:transparent;color:var(--e-c-mono-500)}.button.outlined.disabled:not(.loading) .icon[data-v-40a767c3],.button.outlined.disabled:not(.loading) e-icon[data-v-40a767c3],.button.outlined:disabled:not(.loading) .icon[data-v-40a767c3],.button.outlined:disabled:not(.loading) e-icon[data-v-40a767c3]{--icon-fill-color: var(--e-c-mono-500)}.button.plain[data-v-40a767c3]{padding:var(--e-space-2) var(--e-space-3);color:var(--e-c-primary-01-700);background:none;border:0;text-decoration:none;grid-gap:var(--e-space-1)}.button.plain .icon[data-v-40a767c3],.button.plain e-icon[data-v-40a767c3]{--icon-fill-color: var(--e-c-primary-01-700)}.button.plain[data-v-40a767c3]:hover{color:var(--e-c-secondary-01-900)}.button.plain:hover .icon[data-v-40a767c3],.button.plain:hover e-icon[data-v-40a767c3]{--icon-fill-color: var(--e-c-secondary-01-900)}.button.plain[data-v-40a767c3]:active{color:var(--e-c-secondary-01-700)}.button.plain:active .icon[data-v-40a767c3],.button.plain:active e-icon[data-v-40a767c3]{--icon-fill-color: var(--e-c-secondary-01-700)}.button.plain.disabled[data-v-40a767c3]:not(.loading),.button.plain[data-v-40a767c3]:disabled:not(.loading){background:none;color:var(--e-c-mono-500)}.button.plain.disabled:not(.loading) .icon[data-v-40a767c3],.button.plain.disabled:not(.loading) e-icon[data-v-40a767c3],.button.plain:disabled:not(.loading) .icon[data-v-40a767c3],.button.plain:disabled:not(.loading) e-icon[data-v-40a767c3]{--icon-fill-color: var(--e-c-mono-500)}.button.plain.loading .loader[data-v-40a767c3],.button.plain.loading e-loader[data-v-40a767c3]{--dot-color: var(--e-c-secondary-01-700)}.button.plain-small[data-v-40a767c3]{padding:var(--e-space-2) var(--e-space-3);color:var(--e-c-primary-01-700);background:none;border:0;text-decoration:none;grid-gap:var(--e-space-1);font-size:var(--e-type-size-100);line-height:var(--e-type-line-height-100);letter-spacing:.025rem;font-weight:var(--e-type-weight-strong);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.button.plain-small .icon[data-v-40a767c3],.button.plain-small e-icon[data-v-40a767c3]{--icon-fill-color: var(--e-c-primary-01-700)}.button.plain-small[data-v-40a767c3]:hover{color:var(--e-c-secondary-01-900)}.button.plain-small:hover .icon[data-v-40a767c3],.button.plain-small:hover e-icon[data-v-40a767c3]{--icon-fill-color: var(--e-c-secondary-01-900)}.button.plain-small[data-v-40a767c3]:active{color:var(--e-c-secondary-01-700)}.button.plain-small:active .icon[data-v-40a767c3],.button.plain-small:active e-icon[data-v-40a767c3]{--icon-fill-color: var(--e-c-secondary-01-700)}.button.plain-small.disabled[data-v-40a767c3]:not(.loading),.button.plain-small[data-v-40a767c3]:disabled:not(.loading){background:none;color:var(--e-c-mono-500)}.button.plain-small.disabled:not(.loading) .icon[data-v-40a767c3],.button.plain-small.disabled:not(.loading) e-icon[data-v-40a767c3],.button.plain-small:disabled:not(.loading) .icon[data-v-40a767c3],.button.plain-small:disabled:not(.loading) e-icon[data-v-40a767c3]{--icon-fill-color: var(--e-c-mono-500)}.button.plain-small.loading .loader[data-v-40a767c3],.button.plain-small.loading e-loader[data-v-40a767c3]{--dot-color: var(--e-c-secondary-01-700)}.button.filled-inverted[data-v-40a767c3]{background-color:var(--e-c-mono-00);border-color:var(--e-c-mono-00);color:var(--e-c-primary-01-700)}.button.filled-inverted e-loader[data-v-40a767c3]{--dot-color: var(--e-c-secondary-01-900)}.button.filled-inverted .icon[data-v-40a767c3],.button.filled-inverted e-icon[data-v-40a767c3]{--icon-fill-color: var(--e-c-primary-01-700)}.button.filled-inverted[data-v-40a767c3]:hover{background-color:var(--e-c-primary-01-100);border-color:var(--e-c-primary-01-100);color:var(--e-c-secondary-01-700)}.button.filled-inverted:hover .icon[data-v-40a767c3],.button.filled-inverted:hover e-icon[data-v-40a767c3]{--icon-fill-color: var(--e-c-secondary-01-700)}.button.filled-inverted[data-v-40a767c3]:active,.button.filled-inverted.loading[data-v-40a767c3]{background-color:var(--e-c-primary-01-200);border-color:var(--e-c-primary-01-200)}.button.filled-inverted.disabled[data-v-40a767c3]:not(.loading),.button.filled-inverted[data-v-40a767c3]:disabled:not(.loading){color:var(--e-c-mono-700)}.button.filled-inverted.disabled:not(.loading) .icon[data-v-40a767c3],.button.filled-inverted.disabled:not(.loading) e-icon[data-v-40a767c3],.button.filled-inverted:disabled:not(.loading) .icon[data-v-40a767c3],.button.filled-inverted:disabled:not(.loading) e-icon[data-v-40a767c3]{--icon-fill-color: var(--e-c-mono-700)}.button.outlined-inverted[data-v-40a767c3]{background-color:transparent;border-color:var(--e-c-mono-00);color:var(--e-c-mono-00)}.button.outlined-inverted .icon[data-v-40a767c3],.button.outlined-inverted e-icon[data-v-40a767c3]{--icon-fill-color: var(--e-c-mono-00)}.button.outlined-inverted .loader[data-v-40a767c3],.button.outlined-inverted e-loader[data-v-40a767c3]{--dot-color: var(--e-c-mono-00)}.button.outlined-inverted[data-v-40a767c3]:hover{background-color:rgba(var(--e-c-primary-01-900-rgb),.7);border-color:var(--e-c-primary-01-200)}.button.outlined-inverted[data-v-40a767c3]:active,.button.outlined-inverted.loading[data-v-40a767c3]{background-color:transparent;border-color:var(--e-c-primary-01-500)}.button.outlined-inverted.disabled[data-v-40a767c3]:not(.loading),.button.outlined-inverted[data-v-40a767c3]:disabled:not(.loading){color:var(--e-c-mono-500);border:2px solid var(--e-c-mono-500);background-color:transparent}.button.outlined-inverted.disabled:not(.loading) .icon[data-v-40a767c3],.button.outlined-inverted.disabled:not(.loading) e-icon[data-v-40a767c3],.button.outlined-inverted:disabled:not(.loading) .icon[data-v-40a767c3],.button.outlined-inverted:disabled:not(.loading) e-icon[data-v-40a767c3]{--icon-fill-color: var(--e-c-mono-500)}.button.secondary-outlined[data-v-40a767c3]{background-color:transparent;color:var(--e-c-secondary-02-500);border:2px solid var(--e-c-secondary-02-500)}.button.secondary-outlined .icon[data-v-40a767c3],.button.secondary-outlined e-icon[data-v-40a767c3]{--icon-fill-color: var(--e-c-secondary-02-500)}.button.secondary-outlined .loader[data-v-40a767c3],.button.secondary-outlined e-loader[data-v-40a767c3]{--dot-color: var(--e-c-secondary-02-500)}.button.secondary-outlined[data-v-40a767c3]:hover{background-color:var(--e-c-secondary-02-50);border-color:var(--e-c-secondary-02-200)}.button.secondary-outlined[data-v-40a767c3]:active,.button.secondary-outlined.loading[data-v-40a767c3]{background-color:transparent;border-color:var(--e-c-secondary-02-200)}.button.secondary-outlined.disabled[data-v-40a767c3]:not(.loading),.button.secondary-outlined[data-v-40a767c3]:disabled:not(.loading){border-color:var(--e-c-mono-500);background-color:transparent;color:var(--e-c-mono-500)}.button.secondary-outlined.disabled:not(.loading) .icon[data-v-40a767c3],.button.secondary-outlined.disabled:not(.loading) e-icon[data-v-40a767c3],.button.secondary-outlined:disabled:not(.loading) .icon[data-v-40a767c3],.button.secondary-outlined:disabled:not(.loading) e-icon[data-v-40a767c3]{--icon-fill-color: var(--e-c-mono-500)}.button.secondary-outlined-small[data-v-40a767c3]{padding:var(--e-space-2_5) var(--e-space-6);background-color:transparent;color:var(--e-c-secondary-02-500);border:2px solid var(--e-c-secondary-02-500);font-size:var(--e-type-size-100);line-height:var(--e-type-line-height-100);letter-spacing:.025rem;font-weight:var(--e-type-weight-strong);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.button.secondary-outlined-small .icon[data-v-40a767c3],.button.secondary-outlined-small e-icon[data-v-40a767c3]{--icon-fill-color: var(--e-c-secondary-02-500)}.button.secondary-outlined-small .loader[data-v-40a767c3],.button.secondary-outlined-small e-loader[data-v-40a767c3]{--dot-color: var(--e-c-secondary-02-500)}.button.secondary-outlined-small[data-v-40a767c3]:hover{background-color:var(--e-c-secondary-02-50);border-color:var(--e-c-secondary-02-200)}.button.secondary-outlined-small[data-v-40a767c3]:active,.button.secondary-outlined-small.loading[data-v-40a767c3]{background-color:transparent;border-color:var(--e-c-secondary-02-200)}.button.secondary-outlined-small.disabled[data-v-40a767c3]:not(.loading),.button.secondary-outlined-small[data-v-40a767c3]:disabled:not(.loading){border-color:var(--e-c-mono-500);background-color:transparent;color:var(--e-c-mono-500)}.button.secondary-outlined-small.disabled:not(.loading) .icon[data-v-40a767c3],.button.secondary-outlined-small.disabled:not(.loading) e-icon[data-v-40a767c3],.button.secondary-outlined-small:disabled:not(.loading) .icon[data-v-40a767c3],.button.secondary-outlined-small:disabled:not(.loading) e-icon[data-v-40a767c3]{--icon-fill-color: var(--e-c-mono-500)}.button.loading[data-v-40a767c3]{color:transparent}.button.loading .icon[data-v-40a767c3],.button.loading e-icon[data-v-40a767c3]{--icon-fill-color: transparent}[data-v-4d752899]:host{font-family:var(--e-type-font-body),var(--e-type-font-fallback);font-size:var(--e-type-size-300);font-weight:var(--e-type-weight-weak);line-height:var(--e-type-line-height-300);color:var(--e-c-mono-900);box-sizing:border-box}[data-v-4d752899],[data-v-4d752899]:after,[data-v-4d752899]:before{box-sizing:inherit}[data-v-4d752899]{outline:none}[data-v-4d752899]:focus-visible{outline-style:solid;outline-offset:4px;outline-color:#b3b3b3cc}[data-whatintent=mouse][data-v-4d752899] *:focus{outline:none}body[data-v-4d752899]{margin:0;min-height:100vh}h1[data-v-4d752899],h2[data-v-4d752899],h3[data-v-4d752899],h4[data-v-4d752899],h5[data-v-4d752899],h6[data-v-4d752899]{margin:0;text-wrap:balance;font-size:unset;font-weight:unset}p[data-v-4d752899],figure[data-v-4d752899],blockquote[data-v-4d752899]{margin:0}button[data-v-4d752899]{padding:0;margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;font-family:inherit;font-size:inherit;background:none}ul[data-v-4d752899],ol[data-v-4d752899]{list-style:none;padding:0;margin:0}dl[data-v-4d752899],dt[data-v-4d752899],dd[data-v-4d752899]{margin:0}address[data-v-4d752899]{font-style:normal}img[data-v-4d752899],picture[data-v-4d752899]{max-width:100%;display:block}fieldset[data-v-4d752899]{padding:0;margin:0;border:0}.visually-hidden[data-v-4d752899]{position:absolute;display:block;width:1px;height:1px;margin:-1px;padding:0;border:0;clip:rect(0,0,0,0);overflow:hidden;white-space:nowrap}.icon-button[data-v-4d752899]{position:relative;display:inline-flex;align-items:center;justify-content:center;width:3rem;height:3rem;border-radius:100%;color:transparent;cursor:pointer}.icon-button .icon[data-v-4d752899],.icon-button e-icon[data-v-4d752899]{width:1.5rem;height:1.5rem}.icon-button .icon[data-v-4d752899],.icon-button e-icon[data-v-4d752899]{position:relative}.icon-button[data-v-4d752899]:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;border-radius:100%;border-width:2px;border-style:solid;transition:background-color var(--e-trs-duration-faster) var(--e-trs-easing-default),border-color var(--e-trs-duration-faster) var(--e-trs-easing-default),transform var(--e-trs-duration-faster) var(--e-trs-easing-default)}.icon-button[data-v-4d752899]:hover:not(:disabled):before{transform:scale(1.05)}.icon-button[data-v-4d752899]:active:before{transform:scale(1)}.icon-button[data-v-4d752899]:disabled{cursor:default}.icon-button[data-v-4d752899]:before{background-color:var(--e-c-primary-01-700);border-color:var(--e-c-primary-01-700)}.icon-button .icon[data-v-4d752899],.icon-button e-icon[data-v-4d752899]{--icon-fill-color: var(--e-c-mono-00)}.icon-button[data-v-4d752899]:hover:before{background-color:var(--e-c-secondary-01-900);border-color:var(--e-c-secondary-01-900)}.icon-button[data-v-4d752899]:active:before{background-color:var(--e-c-secondary-01-700);border-color:var(--e-c-secondary-01-700)}.icon-button[data-v-4d752899]:disabled:before{background-color:var(--e-c-mono-500);border-color:var(--e-c-mono-500)}.icon-button.outlined[data-v-4d752899]:before{background-color:transparent;border-color:var(--e-c-mono-500)}.icon-button.outlined .icon[data-v-4d752899],.icon-button.outlined e-icon[data-v-4d752899]{--icon-fill-color: var(--e-c-mono-900)}.icon-button.outlined[data-v-4d752899]:hover:before{border-color:var(--e-c-primary-01-200)}.icon-button.outlined[data-v-4d752899]:active:before{border-color:var(--e-c-primary-01-500)}.icon-button.outlined[data-v-4d752899]:disabled:before{border-color:var(--e-c-mono-500)}.icon-button.outlined:disabled .icon[data-v-4d752899],.icon-button.outlined:disabled e-icon[data-v-4d752899]{--icon-fill-color: var(--e-c-mono-500)}.icon-button.plain[data-v-4d752899]:before{background-color:transparent;border-color:transparent}.icon-button.plain .icon[data-v-4d752899],.icon-button.plain e-icon[data-v-4d752899]{--icon-fill-color: var(--e-c-primary-01-700)}.icon-button.plain[data-v-4d752899]:hover:before{background-color:var(--e-c-primary-01-50);border-color:var(--e-c-primary-01-50)}.icon-button.plain[data-v-4d752899]:active:before{background-color:var(--e-c-primary-01-100);border-color:var(--e-c-primary-01-100)}.icon-button.plain:disabled .icon[data-v-4d752899],.icon-button.plain:disabled e-icon[data-v-4d752899]{--icon-fill-color: var(--e-c-mono-500)}.icon-button.filled-inverted[data-v-4d752899]:before{background-color:var(--e-c-mono-00);border-color:var(--e-c-mono-00)}.icon-button.filled-inverted .icon[data-v-4d752899],.icon-button.filled-inverted e-icon[data-v-4d752899]{--icon-fill-color: var(--e-c-primary-01-700)}.icon-button.filled-inverted[data-v-4d752899]:hover:before{background-color:var(--e-c-primary-01-100);border-color:var(--e-c-primary-01-100)}.icon-button.filled-inverted:hover .icon[data-v-4d752899],.icon-button.filled-inverted:hover e-icon[data-v-4d752899]{--icon-fill-color: var(--e-c-secondary-01-700)}.icon-button.filled-inverted[data-v-4d752899]:active:before{background-color:var(--e-c-primary-01-200);border-color:var(--e-c-primary-01-200)}.icon-button.filled-inverted[data-v-4d752899]:disabled:before{background-color:var(--e-c-mono-500);border-color:var(--e-c-mono-500)}.icon-button.filled-inverted:disabled .icon[data-v-4d752899],.icon-button.filled-inverted:disabled e-icon[data-v-4d752899]{--icon-fill-color: var(--e-c-mono-700)}.icon-button.outlined-inverted[data-v-4d752899]:before{background-color:transparent;border-color:var(--e-c-mono-00)}.icon-button.outlined-inverted .icon[data-v-4d752899],.icon-button.outlined-inverted e-icon[data-v-4d752899]{--icon-fill-color: var(--e-c-mono-00)}.icon-button.outlined-inverted[data-v-4d752899]:hover:before{border-color:var(--e-c-primary-01-200)}.icon-button.outlined-inverted[data-v-4d752899]:active:before{border-color:var(--e-c-primary-01-500)}.icon-button.outlined-inverted[data-v-4d752899]:disabled:before{border-color:var(--e-c-mono-500)}.icon-button.outlined-inverted:disabled .icon[data-v-4d752899],.icon-button.outlined-inverted:disabled e-icon[data-v-4d752899]{--icon-fill-color: var(--e-c-mono-500)}.icon-button.plain-inverted[data-v-4d752899]:before{background-color:transparent;border-color:transparent}.icon-button.plain-inverted .icon[data-v-4d752899],.icon-button.plain-inverted e-icon[data-v-4d752899]{--icon-fill-color: var(--e-c-mono-00)}.icon-button.plain-inverted[data-v-4d752899]:hover:before{background-color:var(--e-c-secondary-01-700);border-color:var(--e-c-secondary-01-700)}.icon-button.plain-inverted[data-v-4d752899]:active:before{background-color:var(--e-c-secondary-01-900);border-color:var(--e-c-secondary-01-900)}.icon-button.plain-inverted:disabled .icon[data-v-4d752899],.icon-button.plain-inverted:disabled e-icon[data-v-4d752899]{--icon-fill-color: var(--e-c-mono-500)}