@bagelink/vue 1.4.77 → 1.4.81

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.
@@ -0,0 +1,104 @@
1
+ import { BaseBagelField, IconType, Option, Path } from '..';
2
+ export type DefaultPathsOptions = Record<string, any>;
3
+ export type PathsOptions = Record<string, any>;
4
+ export interface BaseElementField<T, P extends Path<T, PO>, PO extends PathsOptions = DefaultPathsOptions> extends Partial<BaseBagelField<T, P, PO>> {
5
+ $el: string;
6
+ id?: P;
7
+ class?: string;
8
+ vIf?: boolean | (() => boolean);
9
+ style?: Record<string, any>;
10
+ attrs?: Record<string, any>;
11
+ onClick?: () => void;
12
+ children?: BaseElementField<T, any>[];
13
+ }
14
+ export interface BtnElementOptions<T = any, P extends Path<T, PO> = any, PO extends PathsOptions = DefaultPathsOptions> extends Partial<BaseElementField<T, P, PO>> {
15
+ text?: string;
16
+ variant?: 'primary' | 'secondary' | 'outline' | 'ghost' | 'danger';
17
+ size?: 'sm' | 'md' | 'lg';
18
+ disabled?: boolean;
19
+ loading?: boolean;
20
+ icon?: IconType;
21
+ iconPosition?: 'left' | 'right';
22
+ href?: string;
23
+ target?: '_blank' | '_self' | '_parent' | '_top';
24
+ }
25
+ export interface TxtElementOptions<T = any, P extends Path<T, PO> = any, PO extends PathsOptions = DefaultPathsOptions> extends Partial<BaseElementField<T, P, PO>> {
26
+ text?: string;
27
+ tag?: 'p' | 'span' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'div';
28
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
29
+ weight?: 'light' | 'normal' | 'medium' | 'semibold' | 'bold';
30
+ color?: string;
31
+ align?: 'left' | 'center' | 'right' | 'justify';
32
+ }
33
+ export interface ImgElementOptions<T = any, P extends Path<T, PO> = any, PO extends PathsOptions = DefaultPathsOptions> extends Partial<BaseElementField<T, P, PO>> {
34
+ src?: string;
35
+ alt?: string;
36
+ width?: number | string;
37
+ height?: number | string;
38
+ loading?: 'lazy' | 'eager';
39
+ fit?: 'cover' | 'contain' | 'fill' | 'scale-down' | 'none';
40
+ rounded?: boolean | 'sm' | 'md' | 'lg' | 'full';
41
+ fallback?: string;
42
+ }
43
+ export interface DropdownElementOptions<T = any, P extends Path<T, PO> = any, PO extends PathsOptions = DefaultPathsOptions> extends Partial<BaseElementField<T, P, PO>> {
44
+ options?: Option[] | (() => Option[]);
45
+ placeholder?: string;
46
+ searchable?: boolean;
47
+ multiselect?: boolean;
48
+ clearable?: boolean;
49
+ onSelect?: (value: any) => void;
50
+ onSearch?: (search: string) => any;
51
+ }
52
+ export interface ListItemElementOptions<T = any, P extends Path<T, PO> = any, PO extends PathsOptions = DefaultPathsOptions> extends Partial<BaseElementField<T, P, PO>> {
53
+ title?: string;
54
+ subtitle?: string;
55
+ icon?: IconType;
56
+ avatar?: string;
57
+ badge?: string | number;
58
+ actions?: Array<{
59
+ label: string;
60
+ onClick: () => void;
61
+ icon?: IconType;
62
+ }>;
63
+ clickable?: boolean;
64
+ divider?: boolean;
65
+ }
66
+ export declare function btn<T = any, P extends Path<T, PO> = any, PO extends PathsOptions = DefaultPathsOptions>(options: BtnElementOptions<T, P, PO>): BaseElementField<T, P, PO>;
67
+ export declare function btn<T = any, P extends Path<T, PO> = any, PO extends PathsOptions = DefaultPathsOptions>(id: P): BaseElementField<T, P, PO>;
68
+ export declare function btn<T = any, P extends Path<T, PO> = any, PO extends PathsOptions = DefaultPathsOptions>(id: P, text: string): BaseElementField<T, P, PO>;
69
+ export declare function btn<T = any, P extends Path<T, PO> = any, PO extends PathsOptions = DefaultPathsOptions>(id: P, icon: IconType): BaseElementField<T, P, PO>;
70
+ export declare function btn<T = any, P extends Path<T, PO> = any, PO extends PathsOptions = DefaultPathsOptions>(id: P, text: string, options: BtnElementOptions<T, P, PO>): BaseElementField<T, P, PO>;
71
+ export declare function btn<T = any, P extends Path<T, PO> = any, PO extends PathsOptions = DefaultPathsOptions>(id: P, icon: IconType, options: BtnElementOptions<T, P, PO>): BaseElementField<T, P, PO>;
72
+ export declare function btn<T = any, P extends Path<T, PO> = any, PO extends PathsOptions = DefaultPathsOptions>(id: P, textOrIcon: string | IconType, options: BtnElementOptions<T, P, PO>): BaseElementField<T, P, PO>;
73
+ export declare function getBaseElementField<T = any, P extends Path<T, PO> = any, PO extends PathsOptions = DefaultPathsOptions>(elementType: string, id?: P, options?: Partial<BaseElementField<T, P, PO>>): BaseElementField<T, P, PO>;
74
+ export declare function iconBtn<T = any, P extends Path<T, PO> = any, PO extends PathsOptions = DefaultPathsOptions>(id?: P, icon?: IconType, options?: BtnElementOptions<T, P, PO>): BaseElementField<T, P, PO>;
75
+ export declare function txt<T = any, P extends Path<T, PO> = any, PO extends PathsOptions = DefaultPathsOptions>(options: TxtElementOptions<T, P, PO>): BaseElementField<T, P, PO>;
76
+ export declare function txt<T = any, P extends Path<T, PO> = any, PO extends PathsOptions = DefaultPathsOptions>(id: P): BaseElementField<T, P, PO>;
77
+ export declare function txt<T = any, P extends Path<T, PO> = any, PO extends PathsOptions = DefaultPathsOptions>(id: P, text: string): BaseElementField<T, P, PO>;
78
+ export declare function txt<T = any, P extends Path<T, PO> = any, PO extends PathsOptions = DefaultPathsOptions>(id: P, text: string, tag: 'p' | 'span' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'div'): BaseElementField<T, P, PO>;
79
+ export declare function txt<T = any, P extends Path<T, PO> = any, PO extends PathsOptions = DefaultPathsOptions>(id: P, text: string, options: TxtElementOptions<T, P, PO>): BaseElementField<T, P, PO>;
80
+ export declare function img<T = any, P extends Path<T, PO> = any, PO extends PathsOptions = DefaultPathsOptions>(options: ImgElementOptions<T, P, PO>): BaseElementField<T, P, PO>;
81
+ export declare function img<T = any, P extends Path<T, PO> = any, PO extends PathsOptions = DefaultPathsOptions>(id: P): BaseElementField<T, P, PO>;
82
+ export declare function img<T = any, P extends Path<T, PO> = any, PO extends PathsOptions = DefaultPathsOptions>(id: P, src: string): BaseElementField<T, P, PO>;
83
+ export declare function img<T = any, P extends Path<T, PO> = any, PO extends PathsOptions = DefaultPathsOptions>(id: P, src: string, alt: string): BaseElementField<T, P, PO>;
84
+ export declare function img<T = any, P extends Path<T, PO> = any, PO extends PathsOptions = DefaultPathsOptions>(id: P, src: string, options: ImgElementOptions<T, P, PO>): BaseElementField<T, P, PO>;
85
+ export declare function dropdownElement<T = any, P extends Path<T, PO> = any, PO extends PathsOptions = DefaultPathsOptions>(id?: P, options?: Option[] | (() => Option[]), config?: DropdownElementOptions<T, P, PO>): BaseElementField<T, P, PO>;
86
+ export declare function listItemElement<T = any, P extends Path<T, PO> = any, PO extends PathsOptions = DefaultPathsOptions>(id?: P, title?: string, options?: ListItemElementOptions<T, P, PO>): BaseElementField<T, P, PO>;
87
+ export declare function containerElement<T = any, P extends Path<T, PO> = any, PO extends PathsOptions = DefaultPathsOptions>(id?: P, children?: BaseElementField<T, any>[], options?: Partial<BaseElementField<T, P, PO>>): BaseElementField<T, P, PO>;
88
+ export declare function findElementById<T>(id: string, elements: BaseElementField<T, any>[]): BaseElementField<T, any> | undefined;
89
+ export declare function column<T = any, P extends Path<T, PO> = any, PO extends PathsOptions = DefaultPathsOptions>(id?: P, labelOrOptions?: string | Partial<BaseElementField<T, P, PO>>, options?: Partial<BaseElementField<T, P, PO>>): BaseElementField<T, P, PO>;
90
+ export declare const col: typeof column;
91
+ export declare function useElements(): {
92
+ btn: typeof btn;
93
+ iconBtn: typeof iconBtn;
94
+ txt: typeof txt;
95
+ img: typeof img;
96
+ dropdownElement: typeof dropdownElement;
97
+ listItemElement: typeof listItemElement;
98
+ containerElement: typeof containerElement;
99
+ findElementById: typeof findElementById;
100
+ getBaseElementField: typeof getBaseElementField;
101
+ col: typeof column;
102
+ column: typeof column;
103
+ };
104
+ //# sourceMappingURL=elementUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elementUtils.d.ts","sourceRoot":"","sources":["../../src/utils/elementUtils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bagelink/vue",
3
3
  "type": "module",
4
- "version": "1.4.77",
4
+ "version": "1.4.81",
5
5
  "description": "Bagel core sdk packages",
6
6
  "author": {
7
7
  "name": "Neveh Allon",
@@ -1,7 +1,7 @@
1
1
  <script setup lang="ts">
2
2
  import type { IconType, ThemeType } from '@bagelink/vue'
3
3
  import type { SetupContext } from 'vue'
4
- import { Icon, Loading } from '@bagelink/vue'
4
+ import { Icon, Loading, useModal } from '@bagelink/vue'
5
5
  import { useSlots, ref, onMounted, onUnmounted } from 'vue'
6
6
  import { RouterLink } from 'vue-router'
7
7
 
@@ -28,6 +28,7 @@ const props = withDefaults(
28
28
  is?: string
29
29
  ripple?: boolean
30
30
  onClick?: (e: MouseEvent) => void
31
+ confirm?: boolean | string
31
32
  }>(),
32
33
  {
33
34
  onClick: () => '',
@@ -43,9 +44,15 @@ const props = withDefaults(
43
44
  },
44
45
  )
45
46
 
47
+ const emit = defineEmits<{
48
+ confirmed: [event: MouseEvent]
49
+ }>()
50
+
51
+ const { confirmModal } = useModal()
52
+
46
53
  const isMobileScreen = ref(false)
47
54
 
48
- const checkMobile = () => {
55
+ function checkMobile() {
49
56
  isMobileScreen.value = window.innerWidth <= 910
50
57
  }
51
58
 
@@ -58,6 +65,23 @@ onUnmounted(() => {
58
65
  window.removeEventListener('resize', checkMobile)
59
66
  })
60
67
 
68
+ async function handleClick(event: MouseEvent) {
69
+ if (props.confirm) {
70
+ const message = typeof props.confirm === 'string' ? props.confirm : 'Are you sure?'
71
+ const confirmed = await confirmModal({
72
+ title: 'Confirm',
73
+ message
74
+ })
75
+
76
+ if (!confirmed) return
77
+
78
+ props.onClick(event)
79
+ emit('confirmed', event)
80
+ } else {
81
+ props.onClick(event)
82
+ }
83
+ }
84
+
61
85
  const iconSizeComputed = $computed(() => {
62
86
  if (props.iconSize !== undefined) return props.iconSize
63
87
  return isMobileScreen.value ? 1 : 1.2
@@ -86,196 +110,208 @@ const slots: SetupContext['slots'] = useSlots()
86
110
  </script>
87
111
 
88
112
  <template>
89
- <component :is="isComponent" v-ripple="ripple" v-bind="bind" :disabled="disabled" class="bgl_btn" :class="{
90
- 'bgl_btn-icon': icon && !slots.default && !value,
91
- thin,
92
- round,
93
- 'bgl_btn_flat': flat,
94
- 'bgl_btn-border': border || outline,
95
- [`bgl_btn-${color}`]: color,
96
- [`bgl_btn-${theme}`]: theme,
97
- }" :tabindex="disabled ? -1 : 0" @click.stop="onClick" @keydown.enter="onClick" @keydown.space="onClick">
98
- <Loading v-if="loading" class="h-100p" size="15" />
99
- <div v-else class="bgl_btn-flex">
100
- <Icon v-if="icon" :icon="icon" class="transition-400" :size="iconSizeComputed" :mobile-size="iconMobileSize" />
101
- <slot />
102
- <template v-if="!slots.default && value">
103
- {{ value }}
104
- </template>
105
- <Icon v-if="iconEnd" :icon="iconEnd" class="transition-400" :size="iconSizeComputed" :mobile-size="iconMobileSize" />
106
- </div>
107
- </component>
113
+ <component
114
+ :is="isComponent" v-ripple="ripple" v-bind="bind" :disabled="disabled" class="bgl_btn" :class="{
115
+ 'bgl_btn-icon': icon && !slots.default && !value,
116
+ thin,
117
+ round,
118
+ 'bgl_btn_flat': flat,
119
+ 'bgl_btn-border': border || outline,
120
+ [`bgl_btn-${color}`]: color,
121
+ [`bgl_btn-${theme}`]: theme,
122
+ }" :tabindex="disabled ? -1 : 0" @click.stop="handleClick" @keydown.enter="handleClick" @keydown.space="handleClick"
123
+ >
124
+ <Loading v-if="loading" class="h-100p" size="15" />
125
+ <div v-else class="bgl_btn-flex">
126
+ <Icon
127
+ v-if="icon" :icon="icon" class="transition-400" :size="iconSizeComputed"
128
+ :mobile-size="iconMobileSize"
129
+ />
130
+ <slot />
131
+ <template v-if="!slots.default && value">
132
+ {{ value }}
133
+ </template>
134
+ <Icon
135
+ v-if="iconEnd" :icon="iconEnd" class="transition-400" :size="iconSizeComputed"
136
+ :mobile-size="iconMobileSize"
137
+ />
138
+ </div>
139
+ </component>
108
140
  </template>
109
141
 
110
142
  <style scoped>
111
143
  .bgl_btn {
112
- --btn-bg: var(--bgl-primary);
113
- --btn-color: var(--bgl-light-text);
114
- --btn-flat-color: var(--bgl-text-color);
144
+ --btn-bg: var(--bgl-primary);
145
+ --btn-color: var(--bgl-light-text);
146
+ --btn-flat-color: var(--bgl-text-color);
115
147
  }
116
148
 
117
149
  .bgl_btn-green {
118
- --btn-bg: var(--bgl-green);
119
- --btn-color: var(--bgl-light-text);
120
- --btn-flat-color: var(--bgl-green);
150
+ --btn-bg: var(--bgl-green);
151
+ --btn-color: var(--bgl-light-text);
152
+ --btn-flat-color: var(--bgl-green);
121
153
  }
122
154
 
123
155
  .bgl_btn-yellow {
124
- --btn-bg: var(--bgl-yellow);
125
- --btn-color: var(--bgl-black);
126
- --btn-flat-color: var(--bgl-yellow);
156
+ --btn-bg: var(--bgl-yellow);
157
+ --btn-color: var(--bgl-black);
158
+ --btn-flat-color: var(--bgl-yellow);
127
159
  }
128
160
 
129
161
  .bgl_btn-blue {
130
- --btn-bg: var(--bgl-blue);
131
- --btn-color: var(--bgl-light-text);
132
- --btn-flat-color: var(--bgl-blue);
162
+ --btn-bg: var(--bgl-blue);
163
+ --btn-color: var(--bgl-light-text);
164
+ --btn-flat-color: var(--bgl-blue);
133
165
  }
134
166
 
135
167
  .bgl_btn-primary {
136
- --btn-bg: var(--bgl-primary);
137
- --btn-color: var(--bgl-light-text);
138
- --btn-flat-color: var(--bgl-primary);
168
+ --btn-bg: var(--bgl-primary);
169
+ --btn-color: var(--bgl-light-text);
170
+ --btn-flat-color: var(--bgl-primary);
139
171
  }
140
172
 
141
173
  .bgl_btn-red {
142
- --btn-bg: var(--bgl-red);
143
- --btn-color: var(--bgl-light-text);
144
- --btn-flat-color: var(--bgl-red);
174
+ --btn-bg: var(--bgl-red);
175
+ --btn-color: var(--bgl-light-text);
176
+ --btn-flat-color: var(--bgl-red);
145
177
  }
146
178
 
147
179
  .bgl_btn-white {
148
- --btn-bg: var(--bgl-white);
149
- --btn-color: var(--bgl-black);
150
- --btn-flat-color: var(--bgl-white);
180
+ --btn-bg: var(--bgl-white);
181
+ --btn-color: var(--bgl-black);
182
+ --btn-flat-color: var(--bgl-white);
151
183
  }
152
184
 
153
185
  .bgl_btn-black {
154
- --btn-bg: var(--bgl-black);
155
- --btn-color: var(--bgl-light-text);
156
- --btn-flat-color: var(--bgl-black);
186
+ --btn-bg: var(--bgl-black);
187
+ --btn-color: var(--bgl-light-text);
188
+ --btn-flat-color: var(--bgl-black);
157
189
  }
158
190
 
159
191
  .bgl_btn-gray {
160
- --btn-bg: var(--bgl-gray-light);
161
- --btn-color: var(--bgl-black);
162
- --btn-flat-color: var(--bgl-gray);
192
+ --btn-bg: var(--bgl-gray-light);
193
+ --btn-color: var(--bgl-black);
194
+ --btn-flat-color: var(--bgl-gray);
163
195
  }
164
196
 
165
197
  .bgl_btn-light {
166
- --btn-bg: var(--bgl-primary-light);
167
- --btn-color: var(--bgl-primary);
168
- --btn-flat-color: var(--bgl-primary-light);
198
+ --btn-bg: var(--bgl-primary-light);
199
+ --btn-color: var(--bgl-primary);
200
+ --btn-flat-color: var(--bgl-primary-light);
169
201
  }
170
202
 
171
203
  .bgl_btn-gray-light {
172
- --btn-bg: var(--bgl-gray-light);
173
- --btn-color: var(--bgl-gray);
174
- --btn-flat-color: var(--bgl-gray-light);
204
+ --btn-bg: var(--bgl-gray-light);
205
+ --btn-color: var(--bgl-gray);
206
+ --btn-flat-color: var(--bgl-gray-light);
175
207
  }
176
208
 
177
209
  .bgl_btn {
178
- padding-left: var(--btn-padding);
179
- padding-right: var(--btn-padding);
180
- transition: var(--bgl-transition);
181
- background: var(--btn-bg);
182
- color: var(--btn-color);
183
- text-decoration: none;
210
+ padding-left: var(--btn-padding);
211
+ padding-right: var(--btn-padding);
212
+ transition: var(--bgl-transition);
213
+ background: var(--btn-bg);
214
+ color: var(--btn-color);
215
+ text-decoration: none;
184
216
  }
185
217
 
186
218
  .bgl_btn.bgl_btn-icon {
187
- padding-left: 0;
188
- padding-right: 0;
189
- height: var(--btn-height);
190
- width: var(--btn-height);
191
- border-radius: 100%;
192
- font-size: 1rem;
193
- flex-shrink: 0;
219
+ padding-left: 0;
220
+ padding-right: 0;
221
+ height: var(--btn-height);
222
+ width: var(--btn-height);
223
+ border-radius: 100%;
224
+ font-size: 1rem;
225
+ flex-shrink: 0;
194
226
  }
195
227
 
196
228
  a {
197
- text-decoration: none;
229
+ text-decoration: none;
198
230
  }
199
231
 
200
232
  .bgl_btn-flex {
201
- display: flex;
202
- align-items: center;
203
- gap: 0.5rem;
204
- justify-content: center;
205
- height: 100%;
233
+ display: flex;
234
+ align-items: center;
235
+ gap: 0.5rem;
236
+ justify-content: center;
237
+ height: 100%;
206
238
  }
207
239
 
208
- .bgl_btn .bgl_btn-icon{
209
- font-size: calc(var(--input-font-size) * 1.3);
240
+ .bgl_btn .bgl_btn-icon {
241
+ font-size: calc(var(--input-font-size) * 1.3);
210
242
  }
211
243
 
212
244
  .bgl_btn:hover,
213
245
  .bgl_btn-icon:hover {
214
- filter: var(--bgl-hover-filter);
246
+ filter: var(--bgl-hover-filter);
215
247
  }
216
248
 
217
249
  .bgl_btn:active:not(:disabled),
218
250
  .bgl_btn-icon:active:not(:disabled) {
219
- filter: var(--bgl-active-filter);
251
+ filter: var(--bgl-active-filter);
220
252
  }
221
253
 
222
254
  .bgl_btn.bgl_btn_flat {
223
- background: transparent;
224
- color: var(--btn-flat-color);
255
+ background: transparent;
256
+ color: var(--btn-flat-color);
225
257
  }
226
258
 
227
259
  .bgl_btn_flat:hover:not(:disabled),
228
260
  .bgl_btn-icon.bgl_btn_flat:hover:not(:disabled) {
229
- background: var(--bgl-gray-20);
261
+ background: var(--bgl-gray-20);
230
262
  }
231
263
 
232
264
  .bgl_btn.bgl_btn_flat:active:not(:disabled),
233
265
  .bgl_btn-icon.bgl_btn_flat:active:not(:disabled) {
234
- background: var(--bgl-gray-40);
266
+ background: var(--bgl-gray-40);
235
267
  }
236
268
 
237
269
  .bgl_btn.thin {
238
- padding-inline: calc(var(--btn-padding) / 3);
239
- border-radius: calc(var(--btn-border-radius) / 1.5);
270
+ padding-inline: calc(var(--btn-padding) / 3);
271
+ border-radius: calc(var(--btn-border-radius) / 1.5);
240
272
  }
241
273
 
242
274
  .bgl_btn.round {
243
- border-radius: 1000px;
275
+ border-radius: 1000px;
244
276
  }
245
277
 
246
278
  .bgl_btn-icon.thin {
247
- height: calc(var(--btn-height) / 1.5);
248
- width: calc(var(--btn-height) / 1.5);
249
- line-height: normal;
279
+ height: calc(var(--btn-height) / 1.5);
280
+ width: calc(var(--btn-height) / 1.5);
281
+ line-height: normal;
250
282
  }
283
+
251
284
  .bgl_btn-icon.thin .bgl_btn-flex {
252
285
  height: 100%;
253
286
  }
254
287
 
255
- [dir="rtl"] .bgl_btn-icon{
256
- transform: rotateY(180deg);
288
+ [dir="rtl"] .bgl_btn-icon {
289
+ transform: rotateY(180deg);
257
290
  }
258
- [dir="rtl"] .ltr .bgl_btn-icon{
259
- transform: rotateY(0deg);
291
+
292
+ [dir="rtl"] .ltr .bgl_btn-icon {
293
+ transform: rotateY(0deg);
260
294
  }
261
295
 
262
- .bgl_btn-border, .bgl_btn-icon.bgl_btn_flat.bgl_btn-border {
263
- border: 1px solid var(--btn-flat-color);
264
- background: transparent;
265
- color: var(--btn-flat-color);
296
+ .bgl_btn-border,
297
+ .bgl_btn-icon.bgl_btn_flat.bgl_btn-border {
298
+ border: 1px solid var(--btn-flat-color);
299
+ background: transparent;
300
+ color: var(--btn-flat-color);
266
301
  }
267
302
 
268
303
  .bgl_btn-border:hover {
269
- color: var(--btn-flat-color);
304
+ color: var(--btn-flat-color);
270
305
  }
271
306
 
272
307
  .bgl_btn-border:active:not(:disabled) {
273
- filter: brightness(80%);
308
+ filter: brightness(80%);
274
309
  }
275
310
 
276
- .bgl_btn:disabled, .bgl_btn[disabled=true] {
277
- opacity: 0.7;
278
- filter: grayscale(0.3);
279
- cursor: not-allowed;
311
+ .bgl_btn:disabled,
312
+ .bgl_btn[disabled=true] {
313
+ opacity: 0.7;
314
+ filter: grayscale(0.3);
315
+ cursor: not-allowed;
280
316
  }
281
317
  </style>
@@ -5,6 +5,7 @@ const props = defineProps<{
5
5
  outline?: boolean
6
6
  h100?: boolean
7
7
  to?: string
8
+ href?: string
8
9
  overflowX?: boolean
9
10
  overflowY?: boolean
10
11
  bg?:
@@ -21,16 +22,23 @@ const props = defineProps<{
21
22
  | 'transparent'
22
23
  }>()
23
24
 
24
- const is = $computed(() => (props.to ? 'router-link' : 'div'))
25
+ const bind = $computed(() => {
26
+ const obj: { [key: string]: any } = {}
27
+ if (props.href) obj.href = props.href
28
+ else if (props.to) obj.to = props.to
29
+ return obj
30
+ })
31
+
32
+ const is = $computed(() => {
33
+ if (props.href) return 'a'
34
+ if (props.to) return 'router-link'
35
+ return 'div'
36
+ })
25
37
  </script>
26
38
 
27
39
  <template>
28
40
  <component
29
- :is="is"
30
- v-ripple="!!to"
31
- :to="to"
32
- class="bgl_card"
33
- :class="{
41
+ :is="is" v-ripple="!!to" v-bind="bind" class="bgl_card" :class="{
34
42
  thin,
35
43
  'border': outline,
36
44
  'h-100': h100,
@@ -56,10 +64,11 @@ const is = $computed(() => (props.to ? 'router-link' : 'div'))
56
64
  border-bottom: 1px solid var(--border-color);
57
65
  margin-bottom: 1rem;
58
66
  }
67
+
59
68
  .border .card_label {
60
69
  font-size: 0.7rem;
61
70
  font-weight: 300;
62
- background:var(--bgl-box-bg);
71
+ background: var(--bgl-box-bg);
63
72
  padding: 0 0.75rem;
64
73
  position: absolute;
65
74
  top: -0.5rem;
@@ -89,11 +98,13 @@ const is = $computed(() => (props.to ? 'router-link' : 'div'))
89
98
  .bgl_card.thin {
90
99
  padding: 1rem 1rem;
91
100
  }
101
+
92
102
  .bgl_card.BagelTable {
93
103
  height: 100%;
94
104
  overflow: auto;
95
105
  padding-top: 0;
96
106
  }
107
+
97
108
  .bgl_card.thin .tabs {
98
109
  margin-bottom: 1rem;
99
110
  }
@@ -78,22 +78,14 @@ onUnmounted(() => {
78
78
 
79
79
  <template>
80
80
  <div
81
- class="bg-dark"
82
- :style="{ zIndex }"
83
- :class="{ 'is-side': side, 'is-active': isVisible, 'bg-lignt': false }"
84
- @click="() => (dismissable ? closeModal() : '')"
85
- @keydown.esc="closeModal"
81
+ class="bg-dark" :style="{ zIndex }" :class="{ 'is-side': side, 'is-active': isVisible, 'bg-lignt': false }"
82
+ @click="() => (dismissable ? closeModal() : '')" @keydown.esc="closeModal"
86
83
  >
87
84
  <Card class="modal" :style="{ ...maxWidth }" :thin="thin" @click.stop>
88
85
  <header v-if="slots.toolbar || title" class="tool-bar">
89
86
  <slot name="toolbar" />
90
87
  <Btn
91
- v-if="dismissable"
92
- :style="{ float: side ? 'left' : 'right' }"
93
- flat
94
- icon="close"
95
- thin
96
- icon-mobile-size="1.4"
88
+ v-if="dismissable" :style="{ float: side ? '' : '' }" flat icon="close" thin icon-mobile-size="1.4"
97
89
  @click="closeModal"
98
90
  />
99
91
  <Title v-if="title" class="modal-title" tag="h3" :label="title" />
@@ -101,25 +93,13 @@ onUnmounted(() => {
101
93
 
102
94
  <div v-else class="sticky z-index-999 -mt-1 -ms-1 px-025 h-30px pt-025 modal-no-title">
103
95
  <Btn
104
- v-if="dismissable"
105
- class="position-start"
106
- icon="close"
107
- thin
108
- round
109
- color="white"
110
- icon-mobile-size="1.4"
111
- @click="closeModal"
96
+ v-if="dismissable" class="position-start" icon="close" thin round color="white"
97
+ icon-mobile-size="1.4" @click="closeModal"
112
98
  />
113
99
  </div>
114
100
  <slot />
115
101
  <footer v-if="slots.footer || actions?.length" class="modal-footer mt-1">
116
- <Btn
117
- v-for="(action, i) in actions"
118
- :key="i"
119
- color="gray"
120
- v-bind="action"
121
- @click="closeModal"
122
- />
102
+ <Btn v-for="(action, i) in actions" :key="i" color="gray" v-bind="action" @click="closeModal" />
123
103
  <slot name="footer" />
124
104
  </footer>
125
105
  </Card>
@@ -127,11 +107,12 @@ onUnmounted(() => {
127
107
  </template>
128
108
 
129
109
  <style>
130
- .modal{
110
+ .modal {
131
111
  color: var(--bgl-popup-text);
132
112
  /* display: flex;
133
113
  flex-direction: column; */
134
114
  }
115
+
135
116
  .modal-title {
136
117
  text-align: center;
137
118
  font-weight: 600;
@@ -156,13 +137,14 @@ onUnmounted(() => {
156
137
  align-items: center;
157
138
  }
158
139
 
159
- .modal-footer > div {
140
+ .modal-footer>div {
160
141
  gap: 1rem;
161
142
  display: flex;
162
143
  justify-content: space-between;
163
144
  align-items: center;
164
145
  }
165
- .modal-no-title{
146
+
147
+ .modal-no-title {
166
148
  width: calc(100% + 2rem);
167
149
  border-radius: var(--card-border-radius);
168
150