srcdev-nuxt-components 2.2.6 → 2.2.8

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.
@@ -3,4 +3,3 @@
3
3
  @import './display-prompt-core';
4
4
  @import './_display-dialog-core';
5
5
  @import './_container-glow-core.css';
6
- @import './deep-expanding-menu';
@@ -65,3 +65,150 @@ watch(
65
65
  }
66
66
  );
67
67
  </script>
68
+
69
+ <style lang="css">
70
+ @layer deep-expanding-menu-setup {
71
+ @position-try --anchor-left {
72
+ inset: auto;
73
+ top: calc(anchor(bottom) + 10px);
74
+ left: calc(anchor(left) + 10px);
75
+ }
76
+
77
+ @position-try-fallbacks --anchor-right {
78
+ inset: auto;
79
+ top: calc(anchor(bottom) + 10px);
80
+ right: calc(anchor(right) + 10px);
81
+ }
82
+
83
+ .deep-expanding-menu {
84
+ --_gap-between-top-level-items: 24px;
85
+
86
+ container-type: inline-size;
87
+ display: grid;
88
+ grid-template-areas: 'element-stack';
89
+
90
+ .inner {
91
+ grid-area: element-stack;
92
+ display: flex;
93
+ gap: var(--_gap-between-top-level-items);
94
+ align-items: center;
95
+
96
+ .navigation-link,
97
+ .navigation-group-toggle {
98
+ all: unset;
99
+ border-bottom: 2px solid transparent;
100
+ padding-block: 8px;
101
+
102
+ transition: border-color 200ms;
103
+
104
+ &:hover {
105
+ cursor: pointer;
106
+ border-color: light-dark(var(--blue-12), var(--gray-0));
107
+ }
108
+
109
+ &:focus {
110
+ border-color: light-dark(var(--blue-12), var(--gray-0));
111
+ }
112
+
113
+ &:focus-visible {
114
+ border-color: light-dark(var(--blue-12), var(--gray-0));
115
+ }
116
+ }
117
+
118
+ .navigation-group {
119
+ --_icon-transform: scaleY(1);
120
+ position: relative;
121
+
122
+ .navigation-group-toggle {
123
+ anchor-name: var(--_anchor-name);
124
+
125
+ display: flex;
126
+ align-items: center;
127
+ gap: 12px;
128
+
129
+ .icon {
130
+ display: block;
131
+ font-size: 1.2rem;
132
+
133
+ transform: var(--_icon-transform);
134
+ transition: transform 200ms;
135
+ }
136
+ }
137
+
138
+ .navigation-group-panel {
139
+ display: none;
140
+ position: absolute;
141
+ position-anchor: var(--_anchor-name);
142
+ margin: 0;
143
+ /* inset: auto; */
144
+ top: calc(anchor(bottom) + 10px);
145
+ left: calc(anchor(left) + 0px);
146
+
147
+ opacity: 0;
148
+ transition: opacity 200ms, display 200ms, overlay 200ms;
149
+ transition-behavior: allow-discrete;
150
+
151
+ width: min(100%, 50vw);
152
+
153
+ background-color: white;
154
+ border: 1px solid black;
155
+ border-radius: 12px;
156
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
157
+ padding: 12px;
158
+ overflow: clip;
159
+
160
+ &:popover-open {
161
+ display: block;
162
+ opacity: 1;
163
+
164
+ @starting-style {
165
+ display: block;
166
+ opacity: 0;
167
+ }
168
+ }
169
+
170
+ h4 {
171
+ color: var(--gray-12);
172
+ }
173
+
174
+ .navigation-group-list {
175
+ display: grid;
176
+ grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
177
+ gap: 12px;
178
+ padding-inline-start: 0;
179
+ margin-block-end: 8px;
180
+
181
+ .navigation-group-item {
182
+ display: block;
183
+
184
+ a.navigation-group-link {
185
+ display: inline-block;
186
+ color: var(--gray-12);
187
+ text-decoration: none;
188
+ padding-block: 8px;
189
+
190
+ border-bottom: 2px solid transparent;
191
+
192
+ transition: border-color 200ms;
193
+
194
+ &:hover {
195
+ cursor: pointer;
196
+ border-color: var(--gray-12);
197
+ }
198
+
199
+ &:focus-visible {
200
+ border-color: var(--gray-12);
201
+ }
202
+ }
203
+ }
204
+ }
205
+ }
206
+
207
+ &:has(.navigation-group-panel:popover-open) {
208
+ --_icon-transform: scaleY(-1);
209
+ }
210
+ }
211
+ }
212
+ }
213
+ }
214
+ </style>
@@ -8,7 +8,7 @@
8
8
  <div v-if="showGallery" class="gallery-content" :class="[{ loaded: isLoading }]">
9
9
  <div class="list" ref="sliderGalleryImagesList">
10
10
  <div v-for="(item, index) in galleryData" :key="index" class="item">
11
- <img :src="item.src" :alt="item.alt" @load="handleImageLoad(index)" @error="handleImageError(index)" loading="lazy" />
11
+ <NuxtImg :src="item.src" :alt="item.alt" @load="handleImageLoad(index)" @error="handleImageError(index)" loading="lazy" />
12
12
  <div class="content">
13
13
  <div class="author">{{ item.stylist }}</div>
14
14
  <div class="title">{{ item.title }}</div>
@@ -239,18 +239,17 @@ onMounted(() => {
239
239
  </script>
240
240
 
241
241
  <style lang="css">
242
- /* slider-gallery */
243
242
  .slider-gallery {
244
243
  --_animationDuration: v-bind(animationDuration + 'ms');
245
244
 
246
245
  --_thumbnailAspectRatio: 150 /220;
247
246
 
248
- --_thumbnailWidth: 100px;
249
- --_thumbnailHeight: 165px;
247
+ --_thumbnailWidth: var(--_thumbnailMobileWidth, 100px);
248
+ --_thumbnailHeight: var(--_thumbnailMobileHeight, 165px);
250
249
 
251
250
  @media screen and (min-width: 1024px) {
252
- --_thumbnailWidth: 150px;
253
- --_thumbnailHeight: 220px;
251
+ --_thumbnailWidth: var(--_thumbnailDesktopWidth, 150px);
252
+ --_thumbnailHeight: var(--_thumbnailDesktopHeight, 220px);
254
253
  }
255
254
 
256
255
  height: 100svh;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "srcdev-nuxt-components",
3
3
  "type": "module",
4
- "version": "2.2.6",
4
+ "version": "2.2.8",
5
5
  "main": "nuxt.config.ts",
6
6
  "scripts": {
7
7
  "clean": "rm -rf .nuxt && rm -rf .output && rm -rf .playground/.nuxt && rm -rf .playground/.output",
@@ -1,144 +0,0 @@
1
- @layer deep-expanding-menu-setup {
2
- @position-try --anchor-left {
3
- inset: auto;
4
- top: calc(anchor(bottom) + 10px);
5
- left: calc(anchor(left) + 10px);
6
- }
7
-
8
- @position-try-fallbacks --anchor-right {
9
- inset: auto;
10
- top: calc(anchor(bottom) + 10px);
11
- right: calc(anchor(right) + 10px);
12
- }
13
-
14
- .deep-expanding-menu {
15
- --_gap-between-top-level-items: 24px;
16
-
17
- container-type: inline-size;
18
- display: grid;
19
- grid-template-areas: 'element-stack';
20
-
21
- .inner {
22
- grid-area: element-stack;
23
- display: flex;
24
- gap: var(--_gap-between-top-level-items);
25
- align-items: center;
26
-
27
- .navigation-link,
28
- .navigation-group-toggle {
29
- all: unset;
30
- border-bottom: 2px solid transparent;
31
- padding-block: 8px;
32
-
33
- transition: border-color 200ms;
34
-
35
- &:hover {
36
- cursor: pointer;
37
- border-color: light-dark(var(--blue-12), var(--gray-0));
38
- }
39
-
40
- &:focus {
41
- border-color: light-dark(var(--blue-12), var(--gray-0));
42
- }
43
-
44
- &:focus-visible {
45
- border-color: light-dark(var(--blue-12), var(--gray-0));
46
- }
47
- }
48
-
49
- .navigation-group {
50
- --_icon-transform: scaleY(1);
51
- position: relative;
52
-
53
- .navigation-group-toggle {
54
- anchor-name: var(--_anchor-name);
55
-
56
- display: flex;
57
- align-items: center;
58
- gap: 12px;
59
-
60
- .icon {
61
- display: block;
62
- font-size: 1.2rem;
63
-
64
- transform: var(--_icon-transform);
65
- transition: transform 200ms;
66
- }
67
- }
68
-
69
- .navigation-group-panel {
70
- display: none;
71
- position: absolute;
72
- position-anchor: var(--_anchor-name);
73
- margin: 0;
74
- /* inset: auto; */
75
- top: calc(anchor(bottom) + 10px);
76
- left: calc(anchor(left) + 0px);
77
-
78
- opacity: 0;
79
- transition: opacity 200ms, display 200ms, overlay 200ms;
80
- transition-behavior: allow-discrete;
81
-
82
- width: min(100%, 50vw);
83
-
84
- background-color: white;
85
- border: 1px solid black;
86
- border-radius: 12px;
87
- box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
88
- padding: 12px;
89
- overflow: clip;
90
-
91
- &:popover-open {
92
- display: block;
93
- opacity: 1;
94
-
95
- @starting-style {
96
- display: block;
97
- opacity: 0;
98
- }
99
- }
100
-
101
- h4 {
102
- color: var(--gray-12);
103
- }
104
-
105
- .navigation-group-list {
106
- display: grid;
107
- grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
108
- gap: 12px;
109
- padding-inline-start: 0;
110
- margin-block-end: 8px;
111
-
112
- .navigation-group-item {
113
- display: block;
114
-
115
- a.navigation-group-link {
116
- display: inline-block;
117
- color: var(--gray-12);
118
- text-decoration: none;
119
- padding-block: 8px;
120
-
121
- border-bottom: 2px solid transparent;
122
-
123
- transition: border-color 200ms;
124
-
125
- &:hover {
126
- cursor: pointer;
127
- border-color: var(--gray-12);
128
- }
129
-
130
- &:focus-visible {
131
- border-color: var(--gray-12);
132
- }
133
- }
134
- }
135
- }
136
- }
137
-
138
- &:has(.navigation-group-panel:popover-open) {
139
- --_icon-transform: scaleY(-1);
140
- }
141
- }
142
- }
143
- }
144
- }
@@ -1 +0,0 @@
1
- @import './_scaffolding.css';