@bagelink/vue 1.9.96 → 1.9.102

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bagelink/vue",
3
3
  "type": "module",
4
- "version": "1.9.96",
4
+ "version": "1.9.102",
5
5
  "description": "Bagel core sdk packages",
6
6
  "author": {
7
7
  "name": "Bagel Studio",
@@ -176,19 +176,13 @@ const sidebarStyles = computed(() => {
176
176
  <!-- Navigation Links -->
177
177
  <nav class="sidebar-nav flex column flex-stretch gap-025 align-items-start scrollbar-gutter-stable">
178
178
  <Btn
179
- v-for="link in props.navLinks"
180
- :key="link.to"
181
- :title="!menuState.isOpen.value && !menuState.isMobile.value ? link.label : ''"
182
- fullWidth
183
- alignTxt="start"
184
- class="flex-shrink-0 px-1"
185
- :class="{ 'nav-btn-active': isActiveRoute(link) }"
179
+ v-for="link in props.navLinks" :key="link.to"
180
+ :title="!menuState.isOpen.value && !menuState.isMobile.value ? link.label : ''" fullWidth
181
+ alignTxt="start" class="flex-shrink-0 px-1" :class="{ 'nav-btn-active': isActiveRoute(link) }"
186
182
  :style="{
187
183
  backgroundColor: isActiveRoute(link) ? props.activeColor : props.bgColor,
188
184
  color: isActiveRoute(link) ? 'white' : props.textColor,
189
- }"
190
- :to="link.to || '/'"
191
- @click="link.action"
185
+ }" :to="link.to || '/'" @click="link.action"
192
186
  >
193
187
  <Icon :name="link.icon" size="1.2" />
194
188
  <span class="nav-text">
@@ -200,16 +194,9 @@ const sidebarStyles = computed(() => {
200
194
  <div class="sidebar-footer flex column flex-stretch gap-025 align-items-start mt-auto">
201
195
  <!-- Footer Links -->
202
196
  <Btn
203
- v-for="link in props.footerLinks"
204
- :key="link.to || link.label"
205
- :title="!menuState.isOpen.value && !menuState.isMobile.value ? link.label : ''"
206
- alignTxt="start"
207
- fullWidth
208
- flat
209
- :icon="link.icon"
210
- class="flex-shrink-0 px-1"
211
- :to="link.to"
212
- @click="link.action"
197
+ v-for="link in props.footerLinks" :key="link.to || link.label"
198
+ :title="!menuState.isOpen.value && !menuState.isMobile.value ? link.label : ''" alignTxt="start"
199
+ fullWidth flat :icon="link.icon" class="flex-shrink-0 px-1" :to="link.to" @click="link.action"
213
200
  >
214
201
  <span class="nav-text">
215
202
  {{ link.label }}
@@ -105,9 +105,8 @@ defineExpose({ close })
105
105
  <template>
106
106
  <dialog
107
107
  ref="dialogRef" :class="[positionClass, { 'is-closing': isClosing }]"
108
- :style="{ '--dialog-width': widthStyle }" class="border-none overflow-hidden shadow-30 p-0 testMe1" @click="onBackdropClick"
109
- @cancel="onCancel"
110
- @animationend="onAnimationEnd"
108
+ :style="{ '--dialog-width': widthStyle }" class="border-none overflow-hidden shadow-30 p-0 testMe1"
109
+ @click="onBackdropClick" @cancel="onCancel" @animationend="onAnimationEnd"
111
110
  >
112
111
  <div class="grid grid-dialog h-100p max-height-100-2" @click.stop>
113
112
  <!-- Header -->
@@ -115,28 +114,43 @@ defineExpose({ close })
115
114
  v-if="title || dismissable" class="flex space-between flex-shrink-0 align-items-start gap-05"
116
115
  :class="{ 'border-bottom': !flat, 'border-none': !title, 'm_ps-1': title, 'p-05 m_p-05': !title, 'ps-1-5 pe-1 py-1 ': !thin && title, 'ps-1 pe-05 py-05': thin && title }"
117
116
  >
118
- <Btn v-if="dismissable && closePlacement === 'header-start'" flat icon="close" aria-label="Close" class="dialog-close" thin @click="close" />
119
-
120
- <h3 v-if="title" class="dialog-title m-0 txt20 semi w-100p word-break-all" :class="{ 'txt-center': centerTitle }">
117
+ <Btn
118
+ v-if="dismissable && closePlacement === 'header-start'" flat icon="close" aria-label="Close"
119
+ class="dialog-close" thin @click="close"
120
+ />
121
+ <h3
122
+ v-if="title" class="dialog-title m-0 txt20 semi w-100p word-break-all"
123
+ :class="{ 'txt-center': centerTitle }"
124
+ >
121
125
  {{ title }}
122
126
  </h3>
123
127
  <div v-if="!title" class="flex-grow-1" />
124
- <Btn v-if="dismissable && closePlacement === 'header-end'" flat icon="close" aria-label="Close" class="dialog-close" thin @click="close" />
128
+ <Btn
129
+ v-if="dismissable && closePlacement === 'header-end'" flat icon="close" aria-label="Close"
130
+ class="dialog-close" thin @click="close"
131
+ />
125
132
  </header>
126
-
127
133
  <!-- Body -->
128
134
  <div class="overflow-y flex-grow-1 m_p-1" :class="{ 'px-1 py-05': thin, 'px-1-5 py-1': !thin }">
129
135
  <slot />
130
136
  </div>
131
-
132
137
  <!-- Footer -->
133
- <footer v-if="$slots.footer" class="flex flex-shrink-0 gap-05 m_px-05 m_py-05 justify-content-end" :class="{ 'border-top': !flat, 'px-05 py-05': thin, 'px-1-5 py-1': !thin }">
138
+ <footer
139
+ v-if="$slots.footer" class="flex flex-shrink-0 gap-05 m_px-05 m_py-05 justify-content-end"
140
+ :class="{ 'border-top': !flat, 'px-05 py-05': thin, 'px-1-5 py-1': !thin }"
141
+ >
134
142
  <slot name="footer" />
135
143
  </footer>
136
144
  </div>
137
145
  <!-- Overlay close buttons -->
138
- <Btn v-if="dismissable && closePlacement === 'overlay-start' && overlayButtonsVisible" icon="close" aria-label="Close" class="fixed top-1 start-1 z-999 overlay-btn" @click="close" />
139
- <Btn v-if="dismissable && closePlacement === 'overlay-end' && overlayButtonsVisible" icon="close" aria-label="Close" class="fixed top-1 end-1 z-999 overlay-btn" @click="close" />
146
+ <Btn
147
+ v-if="dismissable && closePlacement === 'overlay-start' && overlayButtonsVisible" icon="close"
148
+ aria-label="Close" class="fixed top-1 start-1 z-999 overlay-btn" @click="close"
149
+ />
150
+ <Btn
151
+ v-if="dismissable && closePlacement === 'overlay-end' && overlayButtonsVisible" icon="close"
152
+ aria-label="Close" class="fixed top-1 end-1 z-999 overlay-btn" @click="close"
153
+ />
140
154
  </dialog>
141
155
  </template>
142
156
 
@@ -194,6 +208,7 @@ dialog.dialog-center[open] {
194
208
  dialog.dialog-center.is-closing {
195
209
  animation: scale-fade-out 0.15s ease-in forwards;
196
210
  }
211
+
197
212
  dialog.dialog-right[open] {
198
213
  animation: slide-in-right 0.25s ease-out;
199
214
  }
@@ -209,6 +224,7 @@ dialog.dialog-left[open] {
209
224
  dialog.dialog-left.is-closing {
210
225
  animation: slide-out-left 0.2s ease-in forwards;
211
226
  }
227
+
212
228
  /* Keyframes - shared and reusable */
213
229
  @keyframes fade-in {
214
230
  from {
@@ -224,6 +240,7 @@ dialog.dialog-left.is-closing {
224
240
  from {
225
241
  opacity: 1;
226
242
  }
243
+
227
244
  to {
228
245
  opacity: 0;
229
246
  }
@@ -234,6 +251,7 @@ dialog.dialog-left.is-closing {
234
251
  opacity: 0;
235
252
  transform: scale(0.95) translateY(10px);
236
253
  }
254
+
237
255
  to {
238
256
  opacity: 1;
239
257
  transform: scale(1) translateY(0);
@@ -245,6 +263,7 @@ dialog.dialog-left.is-closing {
245
263
  opacity: 1;
246
264
  transform: scale(1) translateY(0);
247
265
  }
266
+
248
267
  to {
249
268
  opacity: 0;
250
269
  transform: scale(0.95) translateY(10px);
@@ -252,23 +271,51 @@ dialog.dialog-left.is-closing {
252
271
  }
253
272
 
254
273
  @keyframes slide-in-right {
255
- from { opacity: 0; transform: translateX(100%); }
256
- to { opacity: 1; transform: translateX(0); }
274
+ from {
275
+ opacity: 0;
276
+ transform: translateX(100%);
277
+ }
278
+
279
+ to {
280
+ opacity: 1;
281
+ transform: translateX(0);
282
+ }
257
283
  }
258
284
 
259
285
  @keyframes slide-out-right {
260
- from { opacity: 1; transform: translateX(0); }
261
- to { opacity: 0; transform: translateX(100%); }
286
+ from {
287
+ opacity: 1;
288
+ transform: translateX(0);
289
+ }
290
+
291
+ to {
292
+ opacity: 0;
293
+ transform: translateX(100%);
294
+ }
262
295
  }
263
296
 
264
297
  @keyframes slide-in-left {
265
- from { opacity: 0; transform: translateX(-100%); }
266
- to { opacity: 1; transform: translateX(0); }
298
+ from {
299
+ opacity: 0;
300
+ transform: translateX(-100%);
301
+ }
302
+
303
+ to {
304
+ opacity: 1;
305
+ transform: translateX(0);
306
+ }
267
307
  }
268
308
 
269
309
  @keyframes slide-out-left {
270
- from { opacity: 1; transform: translateX(0); }
271
- to { opacity: 0; transform: translateX(-100%); }
310
+ from {
311
+ opacity: 1;
312
+ transform: translateX(0);
313
+ }
314
+
315
+ to {
316
+ opacity: 0;
317
+ transform: translateX(-100%);
318
+ }
272
319
  }
273
320
 
274
321
  /* Full width adjustments */
@@ -284,6 +331,7 @@ dialog.dialog-right[style*="--dialog-width: 100%"] {
284
331
 
285
332
  /* Mobile adjustments */
286
333
  @media screen and (max-width: 910px) {
334
+
287
335
  dialog.dialog-left .grid-dialog,
288
336
  dialog.dialog-right .grid-dialog {
289
337
  max-height: 100vh;
@@ -41,7 +41,7 @@ export const BagelVue: Plugin<BagelOptions> = {
41
41
 
42
42
  // Setup i18n
43
43
  const i18n = createI18n(options.i18n || {})
44
- app.use(i18n)
44
+ app.use(i18n as any)
45
45
  },
46
46
  }
47
47
 
@@ -2,17 +2,13 @@
2
2
  #bgl-toast-container,
3
3
  #bgl-toplayer-container {
4
4
  all: unset;
5
+ display: block;
5
6
  position: fixed;
6
- inset: 0;
7
- width: 100%;
8
- height: 100%;
7
+ top: 0;
8
+ left: 0;
9
+ width: 0;
10
+ height: 0;
9
11
  overflow: visible;
10
- pointer-events: none;
11
- }
12
-
13
- #bgl-toast-container *,
14
- #bgl-toplayer-container * {
15
- pointer-events: auto;
16
12
  }
17
13
 
18
14
  /* Override vue-toastification default styles */
package/vite.config.ts CHANGED
@@ -7,6 +7,7 @@ import tsconfigPaths from 'vite-tsconfig-paths'
7
7
 
8
8
  const indexDir = resolve(import.meta.dirname, 'src')
9
9
 
10
+ // @ts-ignore - rolldown-vite in root workspace causes plugin type mismatch; build is unaffected
10
11
  export default defineConfig(() => ({
11
12
  plugins: [
12
13
  tsconfigPaths({ root: indexDir, }),