@bagelink/vue 1.9.170 → 1.9.174

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.170",
4
+ "version": "1.9.174",
5
5
  "description": "Bagel core sdk packages",
6
6
  "author": {
7
7
  "name": "Bagel Studio",
@@ -246,11 +246,10 @@ defineExpose({ show, hide, shown })
246
246
  <template>
247
247
  <div style="display: contents">
248
248
  <!-- Trigger wrapper — click/hover only apply to the default Btn trigger -->
249
- <div ref="triggerWrapRef" v-bind="$attrs" @mouseenter="onTriggerMouseenter" @mouseleave="onTriggerMouseleave" @focus="onTriggerMouseenter" @blur="onTriggerMouseleave">
249
+ <div ref="triggerWrapRef" v-bind="$attrs" @click="onTriggerClick" @mouseenter="onTriggerMouseenter" @mouseleave="onTriggerMouseleave" @focus="onTriggerMouseenter" @blur="onTriggerMouseleave">
250
250
  <slot name="trigger" :show :hide :shown>
251
251
  <Btn
252
252
  :class="triggerClass" :iconEnd :icon="iconSet" :value :thin :flat :outline :round :color :disabled
253
- @click="onTriggerClick"
254
253
  />
255
254
  </slot>
256
255
  </div>
@@ -194,7 +194,7 @@ function getItemRef(i: number) {
194
194
  :class="{ 'array-item-drag-over1 bg-gray-light border border-primary ': allowReorder && dragOverIndex === i && draggingIndex !== null && draggingIndex !== i }"
195
195
  @dragover.prevent @dragenter.prevent="onDragEnter(i)" @drop.prevent="onDrop(i)"
196
196
  >
197
- <div class="grid gap-05 grid-array-line align-items-center">
197
+ <div class="grid gap-05 grid-array-line align-items-center pe-025">
198
198
  <Btn
199
199
  v-if="allowReorder" v-tooltip="resolveI18n('Drag to reorder')" flat thin icon="drag_indicator"
200
200
  class="grab" draggable="true" @dragstart="onDragStart($event, i)" @dragend="onDragEnd"
@@ -41,6 +41,8 @@ const widthStyle = computed(() => DIALOG_WIDTHS[props.width])
41
41
  const positionClass = computed(() => {
42
42
  if (props.position === 'left') return 'dialog-left ms-1 me-auto mt-1 mb-1 height-100-2 m_m-0 m_h-100vh m_max-h-100vh m_radius-0'
43
43
  if (props.position === 'right') return 'dialog-right me-1 ms-auto mt-1 mb-1 height-100-2 m_m-0 m_h-100vh m_max-h-100vh m_radius-0'
44
+ if (props.position === 'top') return 'dialog-top mx-auto mt-1 mb-auto'
45
+ if (props.position === 'bottom') return 'dialog-bottom mx-auto mb-1 mt-auto'
44
46
  return 'dialog-center mx-auto'
45
47
  })
46
48
 
@@ -227,6 +229,22 @@ dialog.dialog-left.is-closing {
227
229
  animation: slide-out-left 0.2s ease-in forwards;
228
230
  }
229
231
 
232
+ dialog.dialog-top[open] {
233
+ animation: slide-in-top 0.25s ease-out;
234
+ }
235
+
236
+ dialog.dialog-top.is-closing {
237
+ animation: slide-out-top 0.2s ease-in forwards;
238
+ }
239
+
240
+ dialog.dialog-bottom[open] {
241
+ animation: slide-in-bottom 0.25s ease-out;
242
+ }
243
+
244
+ dialog.dialog-bottom.is-closing {
245
+ animation: slide-out-bottom 0.2s ease-in forwards;
246
+ }
247
+
230
248
  /* Keyframes - shared and reusable */
231
249
  @keyframes fade-in {
232
250
  from {
@@ -320,6 +338,54 @@ dialog.dialog-left.is-closing {
320
338
  }
321
339
  }
322
340
 
341
+ @keyframes slide-in-top {
342
+ from {
343
+ opacity: 0;
344
+ transform: translateY(-100%);
345
+ }
346
+
347
+ to {
348
+ opacity: 1;
349
+ transform: translateY(0);
350
+ }
351
+ }
352
+
353
+ @keyframes slide-out-top {
354
+ from {
355
+ opacity: 1;
356
+ transform: translateY(0);
357
+ }
358
+
359
+ to {
360
+ opacity: 0;
361
+ transform: translateY(-100%);
362
+ }
363
+ }
364
+
365
+ @keyframes slide-in-bottom {
366
+ from {
367
+ opacity: 0;
368
+ transform: translateY(100%);
369
+ }
370
+
371
+ to {
372
+ opacity: 1;
373
+ transform: translateY(0);
374
+ }
375
+ }
376
+
377
+ @keyframes slide-out-bottom {
378
+ from {
379
+ opacity: 1;
380
+ transform: translateY(0);
381
+ }
382
+
383
+ to {
384
+ opacity: 0;
385
+ transform: translateY(100%);
386
+ }
387
+ }
388
+
323
389
  /* Full width adjustments */
324
390
  dialog[style*="--dialog-width: 100%"] {
325
391
  max-width: calc(100vw - 2rem);
@@ -2,7 +2,7 @@ import type { Component } from 'vue'
2
2
  import type { SchemaDefinition } from '../form-flow/form-flow'
3
3
 
4
4
  export type DialogWidth = 's' | 'm' | 'l' | 'xl' | 'full'
5
- export type DialogPosition = 'center' | 'left' | 'right'
5
+ export type DialogPosition = 'center' | 'left' | 'right' | 'top' | 'bottom'
6
6
  export type DialogAction = 'submit' | 'cancel' | 'delete'
7
7
 
8
8
  export interface DialogBaseOptions {