@exakt/ui 0.0.3 → 0.0.4
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/README.md +13 -13
- package/dist/module.json +1 -1
- package/dist/module.mjs +3 -9
- package/dist/runtime/components/e/alert.vue +5 -2
- package/dist/runtime/components/e/app-bars.vue +50 -38
- package/dist/runtime/components/e/avatar.vue +7 -2
- package/dist/runtime/components/e/btn.vue +94 -60
- package/dist/runtime/components/e/container.vue +27 -18
- package/dist/runtime/components/e/dialog.vue +14 -6
- package/dist/runtime/components/e/dropdown.vue +57 -22
- package/dist/runtime/components/e/focus-sheet.vue +11 -9
- package/dist/runtime/components/e/icon.vue +1 -1
- package/dist/runtime/components/e/iconButton.vue +8 -2
- package/dist/runtime/components/e/image-lazy-view.vue +5 -3
- package/dist/runtime/components/e/input/radio.vue +28 -12
- package/dist/runtime/components/e/input/text.vue +34 -18
- package/dist/runtime/components/e/link.vue +9 -2
- package/dist/runtime/components/e/loading-spinner.vue +57 -32
- package/dist/runtime/components/e/{nav.vue → nav/bar.vue} +11 -4
- package/dist/runtime/components/e/nav/btn.vue +134 -0
- package/dist/runtime/components/e/passwordEye.vue +3 -1
- package/dist/runtime/components/e/progress/gradient.vue +36 -23
- package/dist/runtime/components/e/progress/linear.vue +11 -2
- package/dist/runtime/components/e/tr/scale.vue +4 -4
- package/dist/runtime/css/util.scss +172 -0
- package/dist/runtime/plugin.mjs +1 -1
- package/package.json +2 -2
- package/dist/runtime/css/util.css +0 -565
- /package/dist/runtime/css/{main.scssx → main.scss} +0 -0
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@ Get your module up and running quickly.
|
|
|
3
3
|
|
|
4
4
|
Find and replace all on all files (CMD+SHIFT+F):
|
|
5
5
|
- Name: exakt
|
|
6
|
-
- Package name: exakt
|
|
6
|
+
- Package name: @exakt/ui
|
|
7
7
|
- Description: My new Nuxt module
|
|
8
8
|
-->
|
|
9
9
|
|
|
@@ -28,25 +28,25 @@ a simple nuxt ui library focused on doing as much as possible with css
|
|
|
28
28
|
|
|
29
29
|
## Quick Setup
|
|
30
30
|
|
|
31
|
-
1. Add
|
|
31
|
+
1. Add `@exakt/ui` dependency to your project
|
|
32
32
|
|
|
33
33
|
```bash
|
|
34
34
|
# Using pnpm
|
|
35
|
-
pnpm add -D exakt
|
|
35
|
+
pnpm add -D @exakt/ui
|
|
36
36
|
|
|
37
37
|
# Using yarn
|
|
38
|
-
yarn add --dev exakt
|
|
38
|
+
yarn add --dev @exakt/ui
|
|
39
39
|
|
|
40
40
|
# Using npm
|
|
41
|
-
npm install --save-dev exakt
|
|
41
|
+
npm install --save-dev @exakt/ui
|
|
42
42
|
```
|
|
43
43
|
|
|
44
|
-
2. Add
|
|
44
|
+
2. Add `@exakt/ui` to the `modules` section of `nuxt.config.ts`
|
|
45
45
|
|
|
46
46
|
```js
|
|
47
47
|
export default defineNuxtConfig({
|
|
48
48
|
modules: [
|
|
49
|
-
'exakt
|
|
49
|
+
'@exakt/ui'
|
|
50
50
|
]
|
|
51
51
|
})
|
|
52
52
|
```
|
|
@@ -80,14 +80,14 @@ npm run release
|
|
|
80
80
|
```
|
|
81
81
|
|
|
82
82
|
<!-- Badges -->
|
|
83
|
-
[npm-version-src]: https://img.shields.io/npm/v/
|
|
84
|
-
[npm-version-href]: https://npmjs.com/package/
|
|
83
|
+
[npm-version-src]: https://img.shields.io/npm/v/@exakt/ui/latest.svg?style=flat&colorA=18181B&colorB=28CF8D
|
|
84
|
+
[npm-version-href]: https://npmjs.com/package/@exakt/ui
|
|
85
85
|
|
|
86
|
-
[npm-downloads-src]: https://img.shields.io/npm/dm/
|
|
87
|
-
[npm-downloads-href]: https://npmjs.com/package/
|
|
86
|
+
[npm-downloads-src]: https://img.shields.io/npm/dm/@exakt/ui.svg?style=flat&colorA=18181B&colorB=28CF8D
|
|
87
|
+
[npm-downloads-href]: https://npmjs.com/package/@exakt/ui
|
|
88
88
|
|
|
89
|
-
[license-src]: https://img.shields.io/npm/l/
|
|
90
|
-
[license-href]: https://npmjs.com/package/
|
|
89
|
+
[license-src]: https://img.shields.io/npm/l/@exakt/ui.svg?style=flat&colorA=18181B&colorB=28CF8D
|
|
90
|
+
[license-href]: https://npmjs.com/package/@exakt/ui
|
|
91
91
|
|
|
92
92
|
[nuxt-src]: https://img.shields.io/badge/Nuxt-18181B?logo=nuxt.js
|
|
93
93
|
[nuxt-href]: https://nuxt.com
|
package/dist/module.json
CHANGED
package/dist/module.mjs
CHANGED
|
@@ -40,7 +40,7 @@ const module = defineNuxtModule({
|
|
|
40
40
|
SCSSvariables += `$root-${key}: ${value}; `;
|
|
41
41
|
}
|
|
42
42
|
for (const [key, value] of Object.entries(options.breakpoints)) {
|
|
43
|
-
|
|
43
|
+
SCSSvariables += `$e-${key}-screen-breakpoint: ${value}; `;
|
|
44
44
|
}
|
|
45
45
|
CSSvariables += `--e-font-family: ${options.font}; `;
|
|
46
46
|
CSSvariables += `--e-rounded-border-radius: ${options.borderRadius}; `;
|
|
@@ -66,14 +66,8 @@ const module = defineNuxtModule({
|
|
|
66
66
|
}
|
|
67
67
|
});
|
|
68
68
|
});
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
resolver.resolve("../node_modules/.cache/exakt-ui/main.scss")
|
|
72
|
-
);
|
|
73
|
-
nuxt.options.css.push(
|
|
74
|
-
resolver.resolve("../node_modules/.cache/exakt-ui/main.scss")
|
|
75
|
-
);
|
|
76
|
-
nuxt.options.css.push(resolver.resolve("./runtime/css/util.css"));
|
|
69
|
+
nuxt.options.css.push(resolver.resolve("./runtime/css/main.scss"));
|
|
70
|
+
nuxt.options.css.push(resolver.resolve("./runtime/css/util.scss"));
|
|
77
71
|
nuxt.options.css.push(
|
|
78
72
|
resolver.resolve("../node_modules/.cache/exakt-ui/variables.css")
|
|
79
73
|
);
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="flex-center color-red">
|
|
3
|
-
<e-icon
|
|
4
|
-
|
|
3
|
+
<e-icon
|
|
4
|
+
:icon="mdiAlert"
|
|
5
|
+
size="19"
|
|
6
|
+
class="mr-2"
|
|
7
|
+
/><small><slot /></small>
|
|
5
8
|
</div>
|
|
6
9
|
</template>
|
|
7
10
|
<script setup lang="ts">
|
|
@@ -1,48 +1,52 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
|
|
3
|
-
<
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
<slot name="left"></slot>
|
|
7
|
-
</div>
|
|
8
|
-
<slot name="center"></slot>
|
|
9
|
-
|
|
10
|
-
<div class="pf-wrap">
|
|
11
|
-
<slot name="right"></slot>
|
|
12
|
-
</div>
|
|
2
|
+
<div class="title-bar">
|
|
3
|
+
<e-progress-linear :model-value="props.loading" />
|
|
4
|
+
<div class="pf-wrap">
|
|
5
|
+
<slot name="left" />
|
|
13
6
|
</div>
|
|
7
|
+
<slot name="center" />
|
|
14
8
|
|
|
15
|
-
<div class="
|
|
16
|
-
|
|
17
|
-
<div class="rounded bar">
|
|
18
|
-
<e-progress-linear :model-value="props.loading" class="md-and-up-only" />
|
|
19
|
-
|
|
20
|
-
<div class="md-and-up-only flex-stretch">
|
|
21
|
-
<slot name="center"></slot>
|
|
22
|
-
</div>
|
|
23
|
-
<slot name="nav-items"></slot>
|
|
24
|
-
<div class="md-and-up-only flex-stretch">
|
|
25
|
-
<slot name="right" class="fullwidth"></slot>
|
|
26
|
-
</div>
|
|
27
|
-
</div>
|
|
28
|
-
</e-container>
|
|
9
|
+
<div class="pf-wrap">
|
|
10
|
+
<slot name="right" />
|
|
29
11
|
</div>
|
|
12
|
+
</div>
|
|
13
|
+
|
|
14
|
+
<div class="bar-container">
|
|
15
|
+
<e-container
|
|
16
|
+
class="bar-e-container"
|
|
17
|
+
:force-full-width="true"
|
|
18
|
+
>
|
|
19
|
+
<div class="rounded bar">
|
|
20
|
+
<e-progress-linear
|
|
21
|
+
:model-value="props.loading"
|
|
22
|
+
class="md-and-up-only"
|
|
23
|
+
/>
|
|
30
24
|
|
|
25
|
+
<div class="md-and-up-only flex-stretch">
|
|
26
|
+
<slot name="center" />
|
|
27
|
+
</div>
|
|
28
|
+
<slot name="nav-items" />
|
|
29
|
+
<div class="md-and-up-only flex-stretch">
|
|
30
|
+
<slot
|
|
31
|
+
name="right"
|
|
32
|
+
class="fullwidth"
|
|
33
|
+
/>
|
|
34
|
+
</div>
|
|
35
|
+
</div>
|
|
36
|
+
</e-container>
|
|
37
|
+
</div>
|
|
31
38
|
</template>
|
|
32
39
|
<script setup lang="ts">
|
|
33
|
-
|
|
34
40
|
const props = withDefaults(
|
|
35
41
|
defineProps<{
|
|
36
|
-
loading?: boolean
|
|
42
|
+
loading?: boolean;
|
|
37
43
|
}>(),
|
|
38
|
-
{ loading:false }
|
|
44
|
+
{ loading: false }
|
|
39
45
|
);
|
|
40
46
|
|
|
41
|
-
const { $store, $platform } = useNuxtApp();
|
|
42
|
-
|
|
43
47
|
</script>
|
|
44
48
|
|
|
45
|
-
<style scoped>
|
|
49
|
+
<style lang="scss" scoped>
|
|
46
50
|
.title-bar {
|
|
47
51
|
display: none;
|
|
48
52
|
position: relative;
|
|
@@ -61,8 +65,10 @@ const { $store, $platform } = useNuxtApp();
|
|
|
61
65
|
.bar-container {
|
|
62
66
|
width: 100%;
|
|
63
67
|
top: 1rem;
|
|
68
|
+
|
|
64
69
|
height: 4rem;
|
|
65
70
|
padding-bottom: 1rem;
|
|
71
|
+
|
|
66
72
|
display: flex;
|
|
67
73
|
justify-content: center;
|
|
68
74
|
position: sticky;
|
|
@@ -70,7 +76,7 @@ const { $store, $platform } = useNuxtApp();
|
|
|
70
76
|
z-index: 4;
|
|
71
77
|
}
|
|
72
78
|
|
|
73
|
-
@media screen and (max-width:
|
|
79
|
+
@media screen and (max-width: ($e-md-screen-breakpoint)) {
|
|
74
80
|
.title-bar {
|
|
75
81
|
display: unset;
|
|
76
82
|
top: 0px;
|
|
@@ -85,15 +91,18 @@ const { $store, $platform } = useNuxtApp();
|
|
|
85
91
|
align-content: stretch;
|
|
86
92
|
justify-items: space-between;
|
|
87
93
|
align-items: stretch;
|
|
94
|
+
|
|
95
|
+
.pf-wrap {
|
|
96
|
+
display: flex;
|
|
97
|
+
align-items: stretch;
|
|
98
|
+
width: 5rem;
|
|
99
|
+
}
|
|
88
100
|
}
|
|
89
|
-
|
|
90
|
-
display: flex;
|
|
91
|
-
align-items: stretch;
|
|
92
|
-
width: 5rem;
|
|
93
|
-
}
|
|
101
|
+
|
|
94
102
|
.md-and-up-only {
|
|
95
103
|
display: none;
|
|
96
104
|
}
|
|
105
|
+
|
|
97
106
|
.bar-container {
|
|
98
107
|
bottom: 0px;
|
|
99
108
|
left: 0px;
|
|
@@ -102,15 +111,18 @@ const { $store, $platform } = useNuxtApp();
|
|
|
102
111
|
padding: 0px;
|
|
103
112
|
z-index: 3;
|
|
104
113
|
}
|
|
114
|
+
|
|
105
115
|
.bar-e-container {
|
|
106
116
|
padding: 0px;
|
|
107
117
|
margin: 0px;
|
|
108
118
|
}
|
|
119
|
+
|
|
109
120
|
.bar {
|
|
110
121
|
border-radius: 0px;
|
|
111
122
|
width: 100%;
|
|
112
123
|
height: 100%;
|
|
124
|
+
|
|
113
125
|
padding-bottom: calc(env(safe-area-insee-bottom));
|
|
114
126
|
}
|
|
115
127
|
}
|
|
116
|
-
</style>
|
|
128
|
+
</style>
|
|
@@ -11,7 +11,12 @@
|
|
|
11
11
|
:src="src"
|
|
12
12
|
border-radius="100%"
|
|
13
13
|
/>
|
|
14
|
-
<div v-else
|
|
14
|
+
<div v-else>
|
|
15
|
+
<e-icon
|
|
16
|
+
:size="size"
|
|
17
|
+
:icon="mdiAccountCircle"
|
|
18
|
+
/>
|
|
19
|
+
</div>
|
|
15
20
|
</div>
|
|
16
21
|
</template>
|
|
17
22
|
<script setup lang="ts">
|
|
@@ -22,7 +27,7 @@ defineProps<{
|
|
|
22
27
|
src?: string;
|
|
23
28
|
}>();
|
|
24
29
|
</script>
|
|
25
|
-
<style scoped>
|
|
30
|
+
<style lang="scss" scoped>
|
|
26
31
|
.avatar {
|
|
27
32
|
border-radius: 100%;
|
|
28
33
|
width: fie-content;
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<button
|
|
2
|
+
<button
|
|
3
|
+
class="e-btn "
|
|
4
|
+
:style="{ width, justifyContent: justifyWrapper }"
|
|
5
|
+
:type="type"
|
|
6
|
+
:disabled="disabled || loading"
|
|
3
7
|
:class="{
|
|
4
8
|
active,
|
|
5
9
|
inactive,
|
|
@@ -12,14 +16,24 @@
|
|
|
12
16
|
fab,
|
|
13
17
|
loadingGradient,
|
|
14
18
|
colored: background !== 'transparent' || color || solid,
|
|
15
|
-
}"
|
|
16
|
-
|
|
19
|
+
}"
|
|
20
|
+
>
|
|
21
|
+
<e-progress-gradient
|
|
22
|
+
v-if="loading && loadingGradient"
|
|
23
|
+
class="prog-grad"
|
|
24
|
+
color="primary"
|
|
25
|
+
/>
|
|
17
26
|
|
|
18
|
-
<div
|
|
19
|
-
|
|
20
|
-
|
|
27
|
+
<div
|
|
28
|
+
ref="content"
|
|
29
|
+
class="e-btn-content"
|
|
30
|
+
:style="contentStyles"
|
|
31
|
+
>
|
|
32
|
+
<div
|
|
33
|
+
v-if="loading && !loadingGradient"
|
|
34
|
+
class="load-overlay"
|
|
35
|
+
>
|
|
21
36
|
<e-loading-spinner />
|
|
22
|
-
|
|
23
37
|
</div>
|
|
24
38
|
<span class="actual-content flex-center">
|
|
25
39
|
|
|
@@ -46,7 +60,6 @@ const props = withDefaults(
|
|
|
46
60
|
loadingGradient?: boolean;
|
|
47
61
|
fab?: boolean;
|
|
48
62
|
disabled?: boolean;
|
|
49
|
-
to?: string;
|
|
50
63
|
type?: "button" | "submit" | "reset";
|
|
51
64
|
}>(),
|
|
52
65
|
{ type: "button", background: "primary", solid: true }
|
|
@@ -119,7 +132,7 @@ const hoverColor = computed(() => {
|
|
|
119
132
|
return `rgba(${rgb.r}, ${rgb.g}, ${rgb.b}, 0.9)`;
|
|
120
133
|
});
|
|
121
134
|
</script>
|
|
122
|
-
<style scoped>
|
|
135
|
+
<style lang="scss" scoped>
|
|
123
136
|
.prog-grad {
|
|
124
137
|
position: absolute;
|
|
125
138
|
top: 0;
|
|
@@ -141,6 +154,7 @@ const hoverColor = computed(() => {
|
|
|
141
154
|
background: rgba(0, 0, 0, 0);
|
|
142
155
|
display: flex;
|
|
143
156
|
font-size: 1rem;
|
|
157
|
+
|
|
144
158
|
justify-content: center;
|
|
145
159
|
align-content: center;
|
|
146
160
|
align-items: center;
|
|
@@ -154,65 +168,85 @@ const hoverColor = computed(() => {
|
|
|
154
168
|
cursor: pointer;
|
|
155
169
|
position: relative;
|
|
156
170
|
flex-shrink: 1;
|
|
171
|
+
|
|
157
172
|
transition: background 0.4s, color 0.3s, opacity 0.4s;
|
|
173
|
+
|
|
158
174
|
font-family: var(--e-font-family);
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
.
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
.
|
|
176
|
-
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
175
|
+
|
|
176
|
+
&.loading {
|
|
177
|
+
pointer-events: none;
|
|
178
|
+
|
|
179
|
+
&.loadingGradient {
|
|
180
|
+
background: rgba(0, 0, 0, 0) !important;
|
|
181
|
+
color: var(--e-color-dark) !important;
|
|
182
|
+
transition: background 0.8s, color 0.5s, opacity 0.4s;
|
|
183
|
+
|
|
184
|
+
.actual-content {
|
|
185
|
+
|
|
186
|
+
opacity: 0.8;
|
|
187
|
+
transition: opacity 0.5s;;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
.actual-content {
|
|
192
|
+
opacity: 0;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
&:hover {
|
|
198
|
+
background: rgba(98, 98, 98, 0.15);
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
&:active {
|
|
202
|
+
.e-btn-content {
|
|
203
|
+
transform: scale(0.85);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
&.fab {
|
|
208
|
+
position: fixed;
|
|
209
|
+
right: 5rem;
|
|
210
|
+
bottom: 5rem;
|
|
211
|
+
aspect-ratio: 1;
|
|
212
|
+
border-radius: 100%;
|
|
213
|
+
height: 4.2rem;
|
|
214
|
+
z-index: 3;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
&.block {
|
|
218
|
+
width: 100%;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
&.colored {
|
|
222
|
+
background-color: v-bind(parsedBackgroundProp);
|
|
223
|
+
color: v-bind(textColor);
|
|
224
|
+
|
|
225
|
+
&:hover {
|
|
226
|
+
background-color: v-bind(hoverColor);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
&.solid {
|
|
231
|
+
padding: 0.7rem 0.9rem;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
&.active {
|
|
235
|
+
color: var(--e-color-primary);
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
&.inactive {
|
|
239
|
+
color: var(--e-color-dark);
|
|
240
|
+
opacity: 80%;
|
|
241
|
+
}
|
|
209
242
|
}
|
|
210
243
|
|
|
211
|
-
@media screen and (max-width:
|
|
244
|
+
@media screen and (max-width: $e-md-screen-breakpoint) {
|
|
212
245
|
.e-btn.fab {
|
|
213
246
|
right: 1rem;
|
|
214
247
|
}
|
|
215
248
|
}
|
|
249
|
+
|
|
216
250
|
.loading-spinner {
|
|
217
251
|
max-height: 1rem;
|
|
218
252
|
}
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div
|
|
3
|
-
|
|
2
|
+
<div
|
|
3
|
+
class="container"
|
|
4
|
+
:class="{ 'no-btn-padding': noBtnPadding }"
|
|
5
|
+
>
|
|
6
|
+
<div
|
|
7
|
+
class="content"
|
|
8
|
+
:class="{ forceFullWidth }"
|
|
9
|
+
>
|
|
4
10
|
<slot />
|
|
5
11
|
</div>
|
|
6
12
|
</div>
|
|
@@ -8,32 +14,34 @@
|
|
|
8
14
|
<script setup lang="ts">
|
|
9
15
|
defineProps(["noBtnPadding", "forceFullWidth"]);
|
|
10
16
|
</script>
|
|
11
|
-
<style scoped>
|
|
17
|
+
<style lang="scss" scoped>
|
|
12
18
|
.content {
|
|
13
19
|
word-wrap: break-word;
|
|
20
|
+
|
|
14
21
|
width: 95%;
|
|
15
|
-
|
|
16
|
-
@media (max-width:
|
|
17
|
-
|
|
18
|
-
|
|
22
|
+
|
|
23
|
+
@media (max-width: $e-md-screen-breakpoint) {
|
|
24
|
+
&.forceFullWidth {
|
|
25
|
+
width: 100%;
|
|
26
|
+
}
|
|
19
27
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
28
|
+
|
|
29
|
+
$padding: 0rem;
|
|
30
|
+
|
|
31
|
+
@media (min-width: $e-md-screen-breakpoint) {
|
|
32
|
+
width: calc(85% - $padding);
|
|
24
33
|
}
|
|
25
|
-
|
|
26
|
-
@media (min-width: var(--e-l-screen-breakpoint)) {
|
|
27
|
-
|
|
28
|
-
width: calc(65% - 0rem);
|
|
34
|
+
|
|
35
|
+
@media (min-width: var(--e-l-screen-breakpoint)) {
|
|
36
|
+
width: calc(65% - $padding);
|
|
29
37
|
}
|
|
30
38
|
}
|
|
31
39
|
|
|
32
40
|
.container.no-btn-padding {
|
|
33
41
|
padding: 0px 0px;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
42
|
+
.content {
|
|
43
|
+
margin: 0px 0px;
|
|
44
|
+
}
|
|
37
45
|
}
|
|
38
46
|
|
|
39
47
|
.container {
|
|
@@ -43,6 +51,7 @@ defineProps(["noBtnPadding", "forceFullWidth"]);
|
|
|
43
51
|
justify-content: center;
|
|
44
52
|
word-wrap: break-word;
|
|
45
53
|
box-sizing: border-box; /* Opera/IE 8+ */
|
|
54
|
+
|
|
46
55
|
padding: 0px var(--e-core-padding-x);
|
|
47
56
|
}
|
|
48
57
|
</style>
|
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div>
|
|
3
|
-
<e-focus-sheet
|
|
4
|
-
|
|
3
|
+
<e-focus-sheet
|
|
4
|
+
:model-value="modelValue"
|
|
5
|
+
:opaque-on-desktop="true"
|
|
6
|
+
@update:model-value="emit('update:modelValue', $event)"
|
|
7
|
+
/>
|
|
5
8
|
|
|
6
9
|
<e-tr-scale :multiplier="1.3">
|
|
7
|
-
<div
|
|
10
|
+
<div
|
|
11
|
+
v-if="modelValue"
|
|
12
|
+
class="dialog-wrap flex-center"
|
|
13
|
+
>
|
|
8
14
|
<div class="dialog rounded px-6 pe-6 pb-2">
|
|
9
15
|
<div class="mb-4">
|
|
10
16
|
<h2 class="ma-0 pa-0">
|
|
@@ -13,7 +19,7 @@
|
|
|
13
19
|
</div>
|
|
14
20
|
<slot />
|
|
15
21
|
<div class="button-bar me-4 mb-3">
|
|
16
|
-
<slot name="buttons"
|
|
22
|
+
<slot name="buttons" />
|
|
17
23
|
</div>
|
|
18
24
|
</div>
|
|
19
25
|
</div>
|
|
@@ -28,7 +34,7 @@ const props = defineProps<{
|
|
|
28
34
|
const emit = defineEmits(["update:modelValue"]);
|
|
29
35
|
const state = reactive({ active: false });
|
|
30
36
|
</script>
|
|
31
|
-
<style scoped>
|
|
37
|
+
<style scoped lang="scss">
|
|
32
38
|
.dialog-wrap {
|
|
33
39
|
position: fixed;
|
|
34
40
|
pointer-events: none;
|
|
@@ -48,17 +54,19 @@ const state = reactive({ active: false });
|
|
|
48
54
|
overflow: clip;
|
|
49
55
|
}
|
|
50
56
|
|
|
51
|
-
@media (max-width:
|
|
57
|
+
@media (max-width: $e-md-screen-breakpoint) {
|
|
52
58
|
.dialog {
|
|
53
59
|
width: 100%;
|
|
54
60
|
max-width: 100vw;
|
|
55
61
|
min-width: unset;
|
|
56
62
|
}
|
|
63
|
+
|
|
57
64
|
.dialog-wrap {
|
|
58
65
|
align-content: flex-end;
|
|
59
66
|
align-items: flex-end;
|
|
60
67
|
}
|
|
61
68
|
}
|
|
69
|
+
|
|
62
70
|
.button-bar {
|
|
63
71
|
display: flex;
|
|
64
72
|
align-items: stretch;
|