@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/dist/components/Dropdown.vue.d.ts.map +1 -1
- package/dist/dialog/Dialog.vue.d.ts.map +1 -1
- package/dist/dialog/dialogTypes.d.ts +1 -1
- package/dist/dialog/dialogTypes.d.ts.map +1 -1
- package/dist/index.cjs +3 -3
- package/dist/index.mjs +5 -5
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/src/components/Dropdown.vue +1 -2
- package/src/components/form/inputs/ArrayInput.vue +1 -1
- package/src/dialog/Dialog.vue +66 -0
- package/src/dialog/dialogTypes.ts +1 -1
package/package.json
CHANGED
|
@@ -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"
|
package/src/dialog/Dialog.vue
CHANGED
|
@@ -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 {
|