@energie360/ui-library 0.1.14 → 0.1.16

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 (64) hide show
  1. package/base/abstracts/_layers.scss +1 -0
  2. package/base/abstracts/_resets.scss +1 -0
  3. package/components/card-header/card-header.scss +32 -32
  4. package/components/context-menu/context-menu.scss +1 -0
  5. package/components/hint/hint.scss +126 -0
  6. package/components/hint/u-hint.vue +54 -0
  7. package/components/index.js +2 -0
  8. package/components/inline-edit/u-inline-edit.vue +3 -1
  9. package/components/navigation-panel-tile/navigation-panel-tile.scss +105 -0
  10. package/components/navigation-panel-tile/u-navigation-panel-tile.vue +82 -0
  11. package/components/navigation-toolbar-link/navigation-toolbar-link.scss +23 -11
  12. package/components/navigation-toolbar-link/u-navigation-toolbar-link.vue +1 -1
  13. package/components/richtext/_wizard.scss +26 -0
  14. package/components/richtext/richtext.scss +26 -4
  15. package/components/richtext/u-richtext.vue +1 -3
  16. package/components/welcome/welcome.scss +1 -0
  17. package/dist/base-style.css +1 -0
  18. package/dist/base-style.css.map +1 -1
  19. package/elements/checkbox/checkbox.scss +150 -0
  20. package/elements/checkbox/u-checkbox.vue +42 -0
  21. package/elements/form/form.scss +3 -2
  22. package/elements/form-field/form-field-prefix-suffix.scss +1 -2
  23. package/elements/icon/u-icon.vue +34 -24
  24. package/elements/index.js +3 -0
  25. package/elements/radio/radio.scss +91 -2
  26. package/elements/radio/u-radio.vue +6 -3
  27. package/elements/radio-group/radio-group.scss +28 -0
  28. package/elements/radio-group/u-radio-group.vue +23 -3
  29. package/elements/select-chip/select-chip.scss +1 -0
  30. package/elements/select-chip/u-select-chip.vue +2 -2
  31. package/elements/select-chips/select-chips.scss +18 -0
  32. package/elements/select-chips/u-select-chips.vue +16 -3
  33. package/elements/select-tile/select-tile.scss +205 -0
  34. package/elements/select-tile/u-select-tile.vue +53 -0
  35. package/elements/select-tiles/select-tiles.scss +32 -0
  36. package/elements/select-tiles/u-select-tiles.vue +31 -0
  37. package/elements/text-field/text-field.types.ts +1 -0
  38. package/elements/text-field/u-text-field.vue +22 -14
  39. package/elements/toggle-switch/toggle-switch.scss +14 -4
  40. package/elements/toggle-switch/u-toggle-switch.vue +23 -20
  41. package/modules/index.js +4 -0
  42. package/modules/navigation-panel/navigation-panel.scss +65 -0
  43. package/modules/navigation-panel/u-navigation-panel.vue +22 -0
  44. package/modules/navigation-toolbar-side/navigation-toolbar-side.scss +1 -1
  45. package/modules/navigation-toolbar-top/navigation-toolbar-top.scss +1 -0
  46. package/modules/progress-indicator/progress-indicator.scss +84 -0
  47. package/modules/progress-indicator/u-progress-indicator.vue +34 -0
  48. package/modules/toast/toast-message.scss +67 -0
  49. package/modules/toast/toast.scss +14 -0
  50. package/modules/toast/u-toast-message.vue +46 -0
  51. package/modules/toast/u-toast.vue +26 -0
  52. package/modules/toast/useToast.ts +40 -0
  53. package/package.json +1 -1
  54. package/utils/translations/translate.js +0 -10
  55. package/wizard/index.js +1 -0
  56. package/wizard/wizard-outro/u-wizard-outro.vue +49 -0
  57. package/wizard/wizard-outro/wizard-outro.scss +56 -0
  58. package/elements/button/button.js +0 -12
  59. package/elements/elements.js +0 -35
  60. package/elements/icon/icon.js +0 -13
  61. package/elements/icon-button/icon-button.js +0 -12
  62. package/elements/loader/loader.js +0 -13
  63. package/modules/feedback/index.js +0 -1
  64. package/modules/inline-edit-group/index.js +0 -1
@@ -0,0 +1,205 @@
1
+ @use '../../base/abstracts/' as a;
2
+
3
+ $transition-options: var(--e-trs-duration-faster) var(--e-trs-easing-default);
4
+ $trs-pressed: var(--e-trs-duration-fastest) cubic-bezier(0.34, 1.56, 0.64, 1); // https://easings.net/#easeOutBack
5
+
6
+ .select-tile {
7
+ position: relative;
8
+ display: flex;
9
+ height: 100%;
10
+ column-gap: var(--e-space-4);
11
+ border-radius: var(--e-brd-radius-2);
12
+ border: 2px solid var(--e-c-secondary-01-100);
13
+ padding: var(--e-space-6);
14
+ transition:
15
+ border $transition-options,
16
+ background $transition-options,
17
+ transform $trs-pressed;
18
+ cursor: pointer;
19
+
20
+ // CHECKED/ACTIVE
21
+ &.checked {
22
+ background-color: var(--e-c-primary-01-50);
23
+ border-color: var(--e-c-primary-01-500);
24
+
25
+ .select-tile__icon-wrapper,
26
+ .select-tile__label-wrapper {
27
+ color: var(--e-c-primary-01-900);
28
+ }
29
+
30
+ .select-tile__text-wrapper {
31
+ color: var(--e-c-primary-01-700);
32
+ }
33
+
34
+ .select-tile__radio-symbol {
35
+ &::after {
36
+ border-color: var(--e-c-secondary-01-900);
37
+ border-width: 5px;
38
+ }
39
+ }
40
+ }
41
+
42
+ // HOVER
43
+ &:hover {
44
+ border-color: var(--e-c-primary-01-200);
45
+
46
+ .select-tile__radio-symbol {
47
+ &::before {
48
+ background-color: var(--e-c-primary-01-50);
49
+ }
50
+
51
+ &::after {
52
+ border-color: var(--e-c-secondary-01-900);
53
+ }
54
+ }
55
+
56
+ &.checked {
57
+ border-color: var(--e-c-primary-01-900);
58
+
59
+ .select-tile__label-wrapper,
60
+ .select-tile__icon-wrapper {
61
+ color: var(--e-c-primary-01-700);
62
+ }
63
+
64
+ .select-tile__text-wrapper {
65
+ color: var(--e-c-primary-01-500);
66
+ }
67
+ }
68
+ }
69
+
70
+ // PRESSED
71
+ &:active {
72
+ background-color: var(--e-c-primary-01-50);
73
+ transform: scale(0.98);
74
+
75
+ .select-tile__label-wrapper,
76
+ .select-tile__icon-wrapper {
77
+ color: var(--e-c-primary-01-700);
78
+ }
79
+
80
+ .select-tile__text-wrapper {
81
+ color: var(--e-c-primary-01-500);
82
+ }
83
+
84
+ .select-tile__radio-symbol {
85
+ &::before {
86
+ background-color: var(--e-c-primary-01-100);
87
+ }
88
+
89
+ &::after {
90
+ border-color: var(--e-c-secondary-01-900);
91
+ }
92
+ }
93
+
94
+ &.checked {
95
+ background-color: var(--e-c-primary-01-100);
96
+ border-color: var(--e-c-primary-01-500);
97
+
98
+ .select-tile__radio-symbol {
99
+ &::before {
100
+ background-color: var(--e-c-primary-01-50);
101
+ }
102
+ }
103
+ }
104
+ }
105
+
106
+ // DISABLED
107
+ &.disabled {
108
+ border-color: var(--e-c-mono-500);
109
+ pointer-events: none;
110
+
111
+ .select-tile__radio-symbol {
112
+ &::after {
113
+ border-color: var(--e-c-mono-200);
114
+ }
115
+ }
116
+
117
+ .select-tile__label-wrapper,
118
+ .select-tile__icon-wrapper {
119
+ color: var(--e-c-mono-500);
120
+ }
121
+
122
+ .select-tile__text-wrapper {
123
+ color: var(--e-c-mono-200);
124
+ }
125
+
126
+ &.checked {
127
+ background-color: var(--e-c-mono-50);
128
+
129
+ .select-tile__radio-symbol {
130
+ &::after {
131
+ border-width: 2px;
132
+ background-color: var(--e-c-mono-200);
133
+ box-shadow: 0 0 0 3px var(--e-c-mono-50) inset;
134
+ }
135
+ }
136
+ }
137
+ }
138
+ }
139
+
140
+ .select-tile__radio-symbol {
141
+ position: relative;
142
+ display: block;
143
+ width: a.rem(40);
144
+ height: a.rem(40);
145
+
146
+ &::before {
147
+ content: '';
148
+ position: absolute;
149
+ inset: 0;
150
+ border-radius: 100%;
151
+ transition: background $transition-options;
152
+ }
153
+
154
+ &::after {
155
+ content: '';
156
+ position: absolute;
157
+ top: calc(50% - #{a.rem(10)});
158
+ left: calc(50% - #{a.rem(10)});
159
+ width: a.rem(20);
160
+ height: a.rem(20);
161
+ border-radius: 100%;
162
+ border: 2px solid var(--e-c-mono-900);
163
+ transition: border $transition-options;
164
+ }
165
+ }
166
+
167
+ .select-tile__icon-wrapper {
168
+ margin-bottom: var(--e-space-4);
169
+ transition: color $transition-options;
170
+ }
171
+
172
+ .select-tile__radio-wrapper {
173
+ display: flex;
174
+ align-items: center;
175
+ justify-content: center;
176
+ }
177
+
178
+ .select-tile__label-wrapper {
179
+ transition: color $transition-options;
180
+
181
+ @include a.type(300, strong);
182
+
183
+ + .select-tile__text-wrapper {
184
+ margin-top: var(--e-space-1);
185
+ }
186
+ }
187
+
188
+ .select-tile__text-wrapper {
189
+ color: var(--e-c-mono-700);
190
+ transition: color $transition-options;
191
+
192
+ @include a.type(300, weak);
193
+ }
194
+
195
+ .select-tile__input-wrapper {
196
+ position: absolute;
197
+ inset: 0;
198
+ z-index: -1;
199
+
200
+ input {
201
+ width: 100%;
202
+ height: 100%;
203
+ border-radius: var(--e-brd-radius-1);
204
+ }
205
+ }
@@ -0,0 +1,53 @@
1
+ <script setup lang="ts">
2
+ import UIcon from '../icon/u-icon.vue'
3
+ import { useRadio } from '../radio-group/radio-group-composables'
4
+
5
+ interface Props {
6
+ name: string
7
+ label: string
8
+ text: string
9
+ disabled?: boolean
10
+ value: string
11
+ icon: string
12
+ radio?: boolean
13
+ provideKey?: string
14
+ }
15
+
16
+ const { disabled = false, radio = false, provideKey = 'select-tile-group' } = defineProps<Props>()
17
+
18
+ const model = defineModel<string>()
19
+ const { onChange } = useRadio({ model, provideKey })
20
+ </script>
21
+
22
+ <template>
23
+ <label :class="['select-tile', { checked: model === value, disabled }]">
24
+ <div v-if="radio" class="select-tile__radio-wrapper">
25
+ <span class="select-tile__radio-symbol"></span>
26
+ </div>
27
+
28
+ <div class="select-tile__content">
29
+ <!-- ICON -->
30
+ <div v-if="icon" class="select-tile__icon-wrapper">
31
+ <UIcon :name="icon" :width="40" :height="40" />
32
+ </div>
33
+
34
+ <!-- LABEL -->
35
+ <div class="select-tile__label-wrapper">
36
+ <slot name="label">
37
+ {{ label }}
38
+ </slot>
39
+ </div>
40
+
41
+ <!-- TEXT -->
42
+ <div class="select-tile__text-wrapper">
43
+ <p>{{ text }}</p>
44
+ </div>
45
+ </div>
46
+
47
+ <div class="select-tile__input-wrapper">
48
+ <input type="radio" :name :value :disabled @change="onChange" />
49
+ </div>
50
+ </label>
51
+ </template>
52
+
53
+ <style scoped style="scss" src="./select-tile.scss"></style>
@@ -0,0 +1,32 @@
1
+ @use '../../base/abstracts/' as a;
2
+
3
+ .select-tiles {
4
+ &.error {
5
+ .select-tiles__error-message {
6
+ display: block;
7
+ }
8
+ }
9
+ }
10
+
11
+ .select-tiles__items {
12
+ display: grid;
13
+ grid-template-columns: repeat(2, 1fr);
14
+ grid-gap: var(--e-space-10);
15
+
16
+ @include a.bp(lg) {
17
+ grid-gap: var(--e-space-4);
18
+ }
19
+
20
+ @include a.bp(m) {
21
+ display: flex;
22
+ flex-direction: column;
23
+ }
24
+ }
25
+
26
+ .select-tiles__error-message {
27
+ @include a.type(50, strong);
28
+
29
+ display: none;
30
+ margin-top: var(--e-space-1);
31
+ color: var(--e-c-signal-03-700);
32
+ }
@@ -0,0 +1,31 @@
1
+ <script setup lang="ts">
2
+ import { useRadioGroup } from '../radio-group/radio-group-composables'
3
+
4
+ interface Props {
5
+ error?: boolean
6
+ errorMessage?: string
7
+ }
8
+
9
+ defineProps<Props>()
10
+
11
+ const model = defineModel<string>()
12
+
13
+ useRadioGroup({
14
+ model,
15
+ provideKey: 'select-tile-group',
16
+ })
17
+ </script>
18
+
19
+ <template>
20
+ <div :class="['select-tiles', { error }]">
21
+ <div class="select-tiles__items">
22
+ <slot></slot>
23
+ </div>
24
+
25
+ <div class="select-tiles__error-message">
26
+ <slot name="error-message">{{ errorMessage }}</slot>
27
+ </div>
28
+ </div>
29
+ </template>
30
+
31
+ <style scoped style="scss" src="./select-tiles.scss"></style>
@@ -3,4 +3,5 @@ export enum TextFieldTypes {
3
3
  number = 'number',
4
4
  email = 'email',
5
5
  password = 'password',
6
+ date = 'date',
6
7
  }
@@ -37,7 +37,7 @@ const input = useTemplateRef('input')
37
37
  const isFocused = ref(false)
38
38
  const isHovering = ref(false)
39
39
  const hasValue = ref(false) // only needed for input type 'search'
40
- const forceFloatLabel = ref(false)
40
+ const forceFloatLabel = ref(type === TextFieldTypes.date) // input-type 'date' doesn't support placeholder.
41
41
 
42
42
  const spacer = '.&nbsp;'
43
43
 
@@ -122,20 +122,21 @@ watch(
122
122
  'has-error': error,
123
123
  'show-help-text': hasHelpText,
124
124
  },
125
+ type,
125
126
  ]"
126
127
  @mouseenter="onHover"
127
128
  @mouseleave="onHoverOut"
128
129
  >
129
130
  <div class="wrapper">
130
131
  <div class="label">
131
- <slot name="label"
132
- ><label :for="inputId">{{ label }}</label></slot
133
- >
132
+ <slot name="label">
133
+ <label :for="inputId">{{ label }}</label>
134
+ </slot>
134
135
  </div>
135
136
 
136
137
  <div class="control">
137
- <slot
138
- ><input
138
+ <slot>
139
+ <input
139
140
  :id="inputId"
140
141
  ref="input"
141
142
  v-model="model"
@@ -145,11 +146,13 @@ watch(
145
146
  :readonly
146
147
  :placeholder
147
148
  :required
149
+ v-bind="$attrs"
148
150
  @input="onInput"
149
151
  @focus="onFocus"
150
152
  @focusout="$emit('focusout', $event.target)"
151
153
  @blur="onBlur"
152
- /></slot>
154
+ />
155
+ </slot>
153
156
 
154
157
  <div class="control-border"></div>
155
158
  </div>
@@ -166,19 +169,24 @@ watch(
166
169
  <span v-if="unit" class="suffix-text">
167
170
  {{ unit }}
168
171
  </span>
172
+
173
+ <!-- DATE -->
174
+ <span v-if="type === TextFieldTypes.date" class="suffix-icon">
175
+ <UIcon name="calendar"></UIcon>
176
+ </span>
169
177
  </div>
170
178
 
171
179
  <div class="help-text">
172
- <span class="optional-text"
173
- >{{ getTranslation('optional')
174
- }}<span v-if="needsHelpTextSpacer" v-html="spacer"></span></span
175
- ><slot name="helpText">{{ helpText }}</slot>
180
+ <span class="optional-text">
181
+ {{ getTranslation('optional') }}<span v-if="needsHelpTextSpacer" v-html="spacer"></span>
182
+ </span>
183
+ <slot name="helpText">{{ helpText }}</slot>
176
184
  </div>
177
185
 
178
186
  <div class="error-messages-container">
179
- <slot name="error-message"
180
- ><span>{{ errorMessage }}</span></slot
181
- >
187
+ <slot name="error-message">
188
+ <span>{{ errorMessage }}</span>
189
+ </slot>
182
190
  </div>
183
191
  </div>
184
192
  </template>
@@ -17,6 +17,7 @@
17
17
  // So that the focus works nicely.
18
18
  position: absolute;
19
19
  inset: 0;
20
+ border-radius: calc(var(--height) / 2);
20
21
  }
21
22
  }
22
23
 
@@ -87,6 +88,12 @@
87
88
  }
88
89
 
89
90
  // States
91
+ &.error {
92
+ .toggle-switch__error-text {
93
+ display: block;
94
+ }
95
+ }
96
+
90
97
  &.checked {
91
98
  .toggle-switch__toggle {
92
99
  background-color: var(--e-c-primary-01-900);
@@ -141,9 +148,12 @@
141
148
  background-color: var(--e-c-mono-50);
142
149
  }
143
150
  }
151
+ }
152
+
153
+ .toggle-switch__error-text {
154
+ @include a.type(50, strong);
144
155
 
145
- // // TODO: Do we need readonly styles here?
146
- // &.readonly {
147
- // //
148
- // }
156
+ display: none;
157
+ margin-top: var(--e-space-1);
158
+ color: var(--e-c-signal-03-700);
149
159
  }
@@ -6,10 +6,9 @@ import { getTranslation } from '../../utils/translations/translate'
6
6
  export interface ToggleSwitch {
7
7
  name: string
8
8
  label?: string
9
- required?: boolean
10
9
  disabled?: boolean
11
- readonly?: boolean
12
- value?: string
10
+ error: boolean
11
+ errorMessage?: string
13
12
  variant?: 'normal' | 'small'
14
13
  labelPosition?: 'left' | 'right'
15
14
  }
@@ -18,8 +17,8 @@ const {
18
17
  variant = 'big',
19
18
  labelPosition = 'right',
20
19
  disabled = false,
21
- readonly = false,
22
- required = false,
20
+ errorMessage = '',
21
+ error,
23
22
  } = defineProps<ToggleSwitch>()
24
23
 
25
24
  const model = defineModel<boolean>({ default: false })
@@ -35,7 +34,7 @@ const checkIcon = computed(() => iconsMap[variant][1])
35
34
  const classes = computed(() => ({
36
35
  checked: model.value,
37
36
  disabled,
38
- readonly,
37
+ error,
39
38
  [`toggle-switch--${variant}`]: variant,
40
39
  [`label-${labelPosition}`]: labelPosition,
41
40
  }))
@@ -45,24 +44,28 @@ const classes = computed(() => ({
45
44
  <div :class="['toggle-switch', classes]">
46
45
  <label class="toggle-switch__wrapper">
47
46
  <span class="toggle-switch__toggle">
48
- <span class="toggle-switch__text yes" :aria-hidden="model.value ? 'false' : 'true'">{{
49
- getTranslation('yes')
50
- }}</span>
51
- <span class="toggle-switch__text no" :aria-hidden="model.value ? 'true' : 'false'">{{
52
- getTranslation('no')
53
- }}</span>
47
+ <span class="toggle-switch__text yes" :aria-hidden="model ? 'false' : 'true'">
48
+ {{ getTranslation('yes') }}
49
+ </span>
50
+ <span class="toggle-switch__text no" :aria-hidden="model ? 'true' : 'false'">
51
+ {{ getTranslation('no') }}
52
+ </span>
54
53
  <span class="toggle-switch__handle">
55
- <UIcon :name="model.value ? checkIcon : uncheckIcon" custom-size />
54
+ <UIcon :name="model ? checkIcon : uncheckIcon" custom-size />
56
55
  </span>
57
56
  </span>
58
- {{ label }}
59
- <slot name="input"
60
- ><input v-model="model" type="checkbox" :name :required :disabled :readonly :value
61
- /></slot>
57
+
58
+ <slot name="label">{{ label }}</slot>
59
+
60
+ <slot name="input">
61
+ <input v-model="model" type="checkbox" :name :disabled v-bind="$attrs" />
62
+ </slot>
62
63
  </label>
64
+
65
+ <div class="toggle-switch__error-text">
66
+ <slot name="error-message">{{ errorMessage }}</slot>
67
+ </div>
63
68
  </div>
64
69
  </template>
65
70
 
66
- <style lang="scss">
67
- @use './toggle-switch.scss';
68
- </style>
71
+ <style scoped lang="scss" src="./toggle-switch.scss"></style>
package/modules/index.js CHANGED
@@ -3,3 +3,7 @@ export { default as UFooter } from './footer/u-footer.vue'
3
3
  export { default as UInlineEditGroup } from './inline-edit-group/u-inline-edit-group.vue'
4
4
  export { default as UNavigationToolbarTop } from './navigation-toolbar-top/u-navigation-toolbar-top.vue'
5
5
  export { default as UNavigationToolbarSide } from './navigation-toolbar-side/u-navigation-toolbar-side.vue'
6
+ export { default as UNavigationPanel } from './navigation-panel/u-navigation-panel.vue'
7
+ export { default as UProgressIndicator } from './progress-indicator/u-progress-indicator.vue'
8
+ export { default as UToast } from './toast/u-toast.vue'
9
+ export { toast } from './toast/useToast.ts'
@@ -0,0 +1,65 @@
1
+ @use '../../base/abstracts/' as a;
2
+
3
+ .navigation-panel {
4
+ overflow: auto;
5
+ padding: var(--e-space-6);
6
+ background-color: var(--e-c-mono-50);
7
+ border-right: 1px solid var(--e-c-mono-200);
8
+ width: a.rem(300);
9
+ height: 100vh;
10
+
11
+ @include a.bp(lg) {
12
+ width: 100%;
13
+ height: auto;
14
+ padding: var(--e-space-4) var(--e-space-5) 0;
15
+ }
16
+ }
17
+
18
+ .navigation-panel__tiles {
19
+ display: flex;
20
+ flex-direction: column;
21
+ row-gap: var(--e-space-3);
22
+
23
+ @include a.bp(lg) {
24
+ overflow: auto;
25
+ flex-direction: row;
26
+ flex-wrap: nowrap;
27
+ column-gap: var(--e-space-3);
28
+ margin-left: calc(var(--e-space-5) * -1);
29
+ margin-right: calc(var(--e-space-5) * -1);
30
+ padding-left: var(--e-space-5);
31
+ padding-right: var(--e-space-5);
32
+ padding-bottom: var(--e-space-5); // This makes scrollbar not run appear over the tiles
33
+ }
34
+ }
35
+
36
+ .navigation-panel__label-tiles,
37
+ .navigation-panel__label-info {
38
+ @include a.type(50, strong);
39
+
40
+ color: var(--e-c-mono-700);
41
+ }
42
+
43
+ .navigation-panel__label-info {
44
+ margin-bottom: var(--e-space-1);
45
+ }
46
+
47
+ .navigation-panel__label-tiles {
48
+ margin-bottom: var(--e-space-2);
49
+
50
+ @include a.bp(lg) {
51
+ @include a.visually-hidden;
52
+ }
53
+ }
54
+
55
+ .navigation-panel__info {
56
+ @include a.type(300, strong);
57
+
58
+ margin-bottom: var(--e-space-6);
59
+
60
+ @include a.bp(lg) {
61
+ @include a.type(200, strong);
62
+
63
+ margin-bottom: var(--e-space-4);
64
+ }
65
+ }
@@ -0,0 +1,22 @@
1
+ <script setup lang="ts">
2
+ interface Props {
3
+ infoLabel: string
4
+ tilesLabel: string
5
+ }
6
+
7
+ defineProps<Props>()
8
+ </script>
9
+
10
+ <template>
11
+ <div class="navigation-panel">
12
+ <p class="navigation-panel__label-info">{{ infoLabel }}</p>
13
+ <div class="navigation-panel__info"><slot name="info"></slot></div>
14
+
15
+ <p class="navigation-panel__label-tiles">{{ tilesLabel }}</p>
16
+ <div class="navigation-panel__tiles">
17
+ <slot></slot>
18
+ </div>
19
+ </div>
20
+ </template>
21
+
22
+ <style scoped lang="scss" src="./navigation-panel.scss"></style>
@@ -19,7 +19,7 @@
19
19
  }
20
20
 
21
21
  .navigation-toolbar-side__nav-links,
22
- .navigation-toolbar-side__menu-cta {
22
+ .navigation-toolbar-side__menu-ctas {
23
23
  padding: 0 var(--e-space-0_5);
24
24
  }
25
25
  }
@@ -45,6 +45,7 @@
45
45
  width: 100%;
46
46
  height: 100%;
47
47
  transform: translate3d(100%, 0, 0);
48
+ z-index: a.$layer-nav-panel;
48
49
 
49
50
  .navigation-toolbar-mobile-open & {
50
51
  transform: translate3d(0, 0, 0);