@bagelink/vue 1.15.303 → 1.15.307
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/dist/components/AccordionItem.vue.d.ts.map +1 -1
- package/dist/components/layout/AppContent.vue.d.ts +10 -0
- package/dist/components/layout/AppContent.vue.d.ts.map +1 -1
- package/dist/components/layout/TimelineItem.vue.d.ts.map +1 -1
- package/dist/index.cjs +12 -12
- package/dist/index.mjs +992 -985
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/src/components/AccordionItem.vue +5 -4
- package/src/components/layout/AppContent.vue +42 -4
- package/src/components/layout/TimelineItem.vue +7 -3
package/package.json
CHANGED
|
@@ -113,7 +113,7 @@ cursor: pointer;
|
|
|
113
113
|
}
|
|
114
114
|
|
|
115
115
|
.accordion-head {
|
|
116
|
-
height: var(--bgl-input-height);
|
|
116
|
+
height: var(--bgl-accordion-height, var(--bgl-input-height));
|
|
117
117
|
background: transparent;
|
|
118
118
|
display: flex;
|
|
119
119
|
width: 100%;
|
|
@@ -121,6 +121,7 @@ align-items: center;
|
|
|
121
121
|
justify-content: space-between;
|
|
122
122
|
border: none;
|
|
123
123
|
color: inherit !important;
|
|
124
|
+
padding-inline: var(--bgl-accordion-padding, 6px);
|
|
124
125
|
}
|
|
125
126
|
|
|
126
127
|
.accordion-icon {
|
|
@@ -128,9 +129,9 @@ transition: all 0.2s ease;
|
|
|
128
129
|
display: flex;
|
|
129
130
|
align-items: center;
|
|
130
131
|
flex-shrink: 0;
|
|
131
|
-
width: calc(var(--bgl-btn-height) / 1.5);
|
|
132
|
-
height: calc(var(--bgl-btn-height) / 1.5);
|
|
133
|
-
padding-inline: calc(var(--bgl-btn-padding) / 3);
|
|
132
|
+
width: calc(var(--bgl-accordion-height, var(--bgl-btn-height)) / 1.5);
|
|
133
|
+
height: calc(var(--bgl-accordion-height, var(--bgl-btn-height)) / 1.5);
|
|
134
|
+
padding-inline: calc(var(--bgl-accordion-padding, var(--bgl-btn-padding)) / 3);
|
|
134
135
|
justify-content: center;
|
|
135
136
|
}
|
|
136
137
|
|
|
@@ -52,6 +52,15 @@ interface Props {
|
|
|
52
52
|
* mobile). Turn this on only for headers you know must stay one exact line.
|
|
53
53
|
*/
|
|
54
54
|
singleRow?: boolean
|
|
55
|
+
/**
|
|
56
|
+
* Mobile (≤ breakpoint) only: collapse the header's three sides into one
|
|
57
|
+
* continuous flow. The menu/back/title, center and trailing actions all sit in
|
|
58
|
+
* a single wrapping row — items run one after another (no `space-between` gap,
|
|
59
|
+
* no auto-margin pushing the actions to the far edge) and simply wrap onto the
|
|
60
|
+
* next line as a continuous stream when they run out of room. Desktop is
|
|
61
|
+
* unaffected. Off by default (mobile keeps the split leading/trailing layout).
|
|
62
|
+
*/
|
|
63
|
+
mobileSingleRow?: boolean
|
|
55
64
|
/**
|
|
56
65
|
* Cap the readable width of the page and center it on wide screens. Applies to
|
|
57
66
|
* BOTH the header and the body, so the title stays aligned above the content
|
|
@@ -80,6 +89,7 @@ const props = withDefaults(defineProps<Props>(), {
|
|
|
80
89
|
border: undefined,
|
|
81
90
|
headerHeight: '60px',
|
|
82
91
|
singleRow: false,
|
|
92
|
+
mobileSingleRow: false,
|
|
83
93
|
maxWidth: undefined,
|
|
84
94
|
fill: false,
|
|
85
95
|
})
|
|
@@ -135,7 +145,10 @@ const hasCenter = computed(() => !!slots['header-center'])
|
|
|
135
145
|
:class="[
|
|
136
146
|
`app-header--${resolvedVariant}`,
|
|
137
147
|
`app-header--m-${resolvedMobileVariant}`,
|
|
138
|
-
{
|
|
148
|
+
{
|
|
149
|
+
'app-header--single-row': singleRow,
|
|
150
|
+
'app-header--m-single-flow': mobileSingleRow,
|
|
151
|
+
},
|
|
139
152
|
]"
|
|
140
153
|
>
|
|
141
154
|
<!-- Left Side -->
|
|
@@ -163,17 +176,23 @@ const hasCenter = computed(() => !!slots['header-center'])
|
|
|
163
176
|
</PageTitle>
|
|
164
177
|
|
|
165
178
|
<!-- Custom Left Content -->
|
|
166
|
-
<
|
|
179
|
+
<div class="app-header-slot">
|
|
180
|
+
<slot name="header-left" />
|
|
181
|
+
</div>
|
|
167
182
|
</div>
|
|
168
183
|
|
|
169
184
|
<!-- Center Content (only rendered when the slot is provided) -->
|
|
170
185
|
<div v-if="hasCenter" class="app-header-center flex min-w-0">
|
|
171
|
-
<
|
|
186
|
+
<div class="app-header-slot">
|
|
187
|
+
<slot name="header-center" />
|
|
188
|
+
</div>
|
|
172
189
|
</div>
|
|
173
190
|
|
|
174
191
|
<!-- Right Side -->
|
|
175
192
|
<div class="app-header-side flex gap-row-05 endNavTools">
|
|
176
|
-
<
|
|
193
|
+
<div class="app-header-slot">
|
|
194
|
+
<slot name="header-right" />
|
|
195
|
+
</div>
|
|
177
196
|
</div>
|
|
178
197
|
</header>
|
|
179
198
|
|
|
@@ -262,6 +281,25 @@ padding-inline: 0;
|
|
|
262
281
|
}
|
|
263
282
|
}
|
|
264
283
|
|
|
284
|
+
/* Slot content is rendered in the consumer's scope. Keep this mobile flow rule
|
|
285
|
+
unscoped so it targets the real rendered DOM directly and remains stable across
|
|
286
|
+
async slot updates and component HMR. */
|
|
287
|
+
.app-header-slot {
|
|
288
|
+
display: contents;
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
@media screen and (max-width: 910px) {
|
|
292
|
+
.app-header.app-header--m-single-flow {
|
|
293
|
+
justify-content: flex-start !important;
|
|
294
|
+
}
|
|
295
|
+
.app-header--m-single-flow > .app-header-side,
|
|
296
|
+
.app-header--m-single-flow > .app-header-center,
|
|
297
|
+
.app-header--m-single-flow > .app-header-side > .app-header-slot > *,
|
|
298
|
+
.app-header--m-single-flow > .app-header-center > .app-header-slot > * {
|
|
299
|
+
display: contents !important;
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
|
|
265
303
|
</style>
|
|
266
304
|
|
|
267
305
|
<style scoped>
|
|
@@ -30,7 +30,7 @@ const slots = useSlots()
|
|
|
30
30
|
</script>
|
|
31
31
|
|
|
32
32
|
<template>
|
|
33
|
-
<div class="bgl-tl-item flex gap-075" :class="{ 'bgl-tl-item--last': last }">
|
|
33
|
+
<div class="bgl-tl-item flex gap-075 align-items-start" :class="{ 'bgl-tl-item--last': last }">
|
|
34
34
|
<div class="bgl-tl-rail flex-column align-items-center flex-shrink-0">
|
|
35
35
|
<span class="bgl-tl-marker flex-center" :style="{ '--tl-color': `var(--bgl-${color})` }">
|
|
36
36
|
<slot name="marker">
|
|
@@ -52,9 +52,13 @@ const slots = useSlots()
|
|
|
52
52
|
.bgl-tl-item {
|
|
53
53
|
min-height: 1.75rem;
|
|
54
54
|
}
|
|
55
|
+
.bgl-tl-rail {
|
|
56
|
+
display: flex;
|
|
57
|
+
align-self: stretch;
|
|
58
|
+
}
|
|
55
59
|
.bgl-tl-marker {
|
|
56
|
-
width: 1.
|
|
57
|
-
height: 1.
|
|
60
|
+
width: 1.25rem;
|
|
61
|
+
height: 1.25rem;
|
|
58
62
|
border-radius: 50%;
|
|
59
63
|
background: color-mix(in srgb, var(--tl-color) 15%, transparent);
|
|
60
64
|
color: var(--tl-color);
|