@bagelink/vue 0.0.314 → 0.0.318

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/style.css CHANGED
@@ -37,10 +37,10 @@
37
37
  background-color: var(--bgl-bg);
38
38
  }
39
39
 
40
- [dir="rtl"] .top-arrow[data-v-1da5b921] {
40
+ [dir="rtl"] .top-arrow[data-v-727b754a] {
41
41
  transform: rotate(180deg);
42
42
  }
43
- .nav-expend[data-v-1da5b921] {
43
+ .nav-expend[data-v-727b754a] {
44
44
  text-align: center;
45
45
  cursor: pointer;
46
46
  background: var(--bgl-white);
@@ -66,17 +66,17 @@
66
66
  margin-bottom: 30px;
67
67
  }
68
68
  */
69
- .nav-expend[data-v-1da5b921] {
69
+ .nav-expend[data-v-727b754a] {
70
70
  background: var(--bgl-white);
71
71
  }
72
- .nav-expend[data-v-1da5b921]:hover {
72
+ .nav-expend[data-v-727b754a]:hover {
73
73
  filter: brightness(95%);
74
74
  box-shadow: 0 0 20px 0 var(--bgl-primary-tint);
75
75
  }
76
- .nav-expend[data-v-1da5b921]:active {
76
+ .nav-expend[data-v-727b754a]:active {
77
77
  filter: var(--bgl-active-filter);
78
78
  }
79
- .nav[data-v-1da5b921] {
79
+ .nav[data-v-727b754a] {
80
80
  color: var(--bgl-white);
81
81
  background: var(--bgl-primary);
82
82
  z-index: 100;
@@ -85,10 +85,10 @@
85
85
  display: flex;
86
86
  flex-direction: column;
87
87
  }
88
- .nav *[data-v-1da5b921] {
88
+ .nav *[data-v-727b754a] {
89
89
  user-select: none;
90
90
  }
91
- .nav-button[data-v-1da5b921] {
91
+ .nav-button[data-v-727b754a] {
92
92
  text-decoration: none;
93
93
  cursor: pointer;
94
94
  display: flex;
@@ -99,11 +99,11 @@
99
99
  transition: all 0.2s ease;
100
100
  pointer-events: none;
101
101
  }
102
- .nav-button[data-v-1da5b921]:hover {
102
+ .nav-button[data-v-727b754a]:hover {
103
103
  width: fit-content;
104
104
  pointer-events: all;
105
105
  }
106
- .nav-button .bgl_icon-font[data-v-1da5b921] {
106
+ .nav-button .bgl_icon-font[data-v-727b754a] {
107
107
  font-size: 22px;
108
108
  margin: 0.25rem 10px;
109
109
  padding: 10px;
@@ -116,16 +116,16 @@
116
116
  transition: all 0.2s ease;
117
117
  pointer-events: all;
118
118
  }
119
- .nav-button:hover .bgl_icon-font[data-v-1da5b921],
120
- .nav-button.router-link-active .bgl_icon-font[data-v-1da5b921] {
119
+ .nav-button:hover .bgl_icon-font[data-v-727b754a],
120
+ .nav-button.router-link-active .bgl_icon-font[data-v-727b754a] {
121
121
  background: var(--bgl-white);
122
122
  color: var(--bgl-primary);
123
123
  }
124
- .nav-button:hover .tooltip[data-v-1da5b921] {
124
+ .nav-button:hover .tooltip[data-v-727b754a] {
125
125
  opacity: 1;
126
126
  pointer-events: all;
127
127
  }
128
- .tooltip[data-v-1da5b921] {
128
+ .tooltip[data-v-727b754a] {
129
129
  background-color: var(--bgl-white);
130
130
  color: var(--bgl-primary);
131
131
  line-height: 1;
@@ -139,23 +139,23 @@
139
139
  opacity: 0;
140
140
  margin-inline-start: 1rem;
141
141
  }
142
- .tooltip[data-v-1da5b921]:hover {
142
+ .tooltip[data-v-727b754a]:hover {
143
143
  filter: brightness(95%);
144
144
  }
145
- .tooltip[data-v-1da5b921]:active {
145
+ .tooltip[data-v-727b754a]:active {
146
146
  filter: brightness(90%);
147
147
  }
148
- .bot-buttons-wrapper[data-v-1da5b921] {
148
+ .bot-buttons-wrapper[data-v-727b754a] {
149
149
  margin-top: auto;
150
150
  width: 100%;
151
151
  }
152
- .nav-links-wrapper[data-v-1da5b921] {
152
+ .nav-links-wrapper[data-v-727b754a] {
153
153
  direction: ltr;
154
154
  }
155
- [dir="rtl"] .nav-links-wrapper[data-v-1da5b921] {
155
+ [dir="rtl"] .nav-links-wrapper[data-v-727b754a] {
156
156
  direction: rtl;
157
157
  }
158
- .nav-scroll[data-v-1da5b921] {
158
+ .nav-scroll[data-v-727b754a] {
159
159
  overflow-y: scroll;
160
160
  width: 50vw;
161
161
  direction: rtl;
@@ -165,30 +165,30 @@
165
165
  display: flex;
166
166
  flex-direction: column;
167
167
  }
168
- .nav[data-v-1da5b921]::-webkit-scrollbar-thumb {
168
+ .nav[data-v-727b754a]::-webkit-scrollbar-thumb {
169
169
  background-color: transparent;
170
170
  }
171
- .nav[data-v-1da5b921]:hover::-webkit-scrollbar-thumb {
171
+ .nav[data-v-727b754a]:hover::-webkit-scrollbar-thumb {
172
172
  background-color: var(--bgl-gray);
173
173
  }
174
- [dir="rtl"] .nav-scroll[data-v-1da5b921] {
174
+ [dir="rtl"] .nav-scroll[data-v-727b754a] {
175
175
  direction: ltr;
176
176
  }
177
- .full-nav[data-v-1da5b921] {
177
+ .full-nav[data-v-727b754a] {
178
178
  height: 100%;
179
179
  display: flex;
180
180
  flex-direction: column;
181
181
  }
182
182
  @media screen and (min-width: 910px) {
183
- .nav.open .nav-expend[data-v-1da5b921] {
183
+ .nav.open .nav-expend[data-v-727b754a] {
184
184
  margin-inline-start: 189px;
185
185
  transform: rotate(180deg);
186
186
  }
187
- .nav.open[data-v-1da5b921] {
187
+ .nav.open[data-v-727b754a] {
188
188
  width: 200px;
189
189
  text-align: start;
190
190
  }
191
- .nav.open .tooltip[data-v-1da5b921] {
191
+ .nav.open .tooltip[data-v-727b754a] {
192
192
  background-color: transparent;
193
193
  color: var(--bgl-white);
194
194
  padding: 0;
@@ -197,30 +197,30 @@
197
197
  opacity: 1;
198
198
  margin-inline-start: 0rem;
199
199
  }
200
- .nav.open .nav-button .bgl_icon-font[data-v-1da5b921] {
200
+ .nav.open .nav-button .bgl_icon-font[data-v-727b754a] {
201
201
  margin: 0;
202
202
  background: transparent;
203
203
  }
204
- .nav.open .nav-button[data-v-1da5b921] {
204
+ .nav.open .nav-button[data-v-727b754a] {
205
205
  width: 180px;
206
206
  border-radius: 10px;
207
207
  margin-inline-start: 10px;
208
208
  margin-top: 10px;
209
209
  margin-bottom: 10px;
210
210
  }
211
- .nav.open .nav-button[data-v-1da5b921]:hover,
212
- .nav.open .nav-button.router-link-active[data-v-1da5b921] {
211
+ .nav.open .nav-button[data-v-727b754a]:hover,
212
+ .nav.open .nav-button.router-link-active[data-v-727b754a] {
213
213
  background: var(--bgl-white);
214
214
  color: var(--bgl-primary);
215
215
  }
216
- .nav.open .nav-button[data-v-1da5b921]:hover,
217
- .nav.open .nav-button:hover .tooltip[data-v-1da5b921],
218
- .nav.open .nav-button.router-link-active .tooltip[data-v-1da5b921] {
216
+ .nav.open .nav-button[data-v-727b754a]:hover,
217
+ .nav.open .nav-button:hover .tooltip[data-v-727b754a],
218
+ .nav.open .nav-button.router-link-active .tooltip[data-v-727b754a] {
219
219
  color: var(--bgl-primary);
220
220
  }
221
221
  }
222
222
  @media screen and (max-width: 910px) {
223
- .full-nav[data-v-1da5b921] {
223
+ .full-nav[data-v-727b754a] {
224
224
  height: auto;
225
225
  display: flex;
226
226
  flex-direction: row;
@@ -229,10 +229,10 @@
229
229
  inset-inline-end: 0;
230
230
  overflow-x: auto;
231
231
  }
232
- .nav.open[data-v-1da5b921] {
232
+ .nav.open[data-v-727b754a] {
233
233
  width: initial;
234
234
  }
235
- .nav[data-v-1da5b921] {
235
+ .nav[data-v-727b754a] {
236
236
  width: auto;
237
237
  display: flex;
238
238
  flex-direction: row;
@@ -240,7 +240,7 @@
240
240
  overflow-x: auto;
241
241
  justify-content: flex-start;
242
242
  }
243
- .tooltip[data-v-1da5b921] {
243
+ .tooltip[data-v-727b754a] {
244
244
  opacity: 1;
245
245
  background: transparent;
246
246
  color: var(--bgl-white);
@@ -249,25 +249,25 @@
249
249
  padding: 0;
250
250
  margin: 0;
251
251
  }
252
- .nav-button[data-v-1da5b921] {
252
+ .nav-button[data-v-727b754a] {
253
253
  flex-direction: column;
254
254
  margin: 12px 0.25rem;
255
255
  }
256
- .nav-button .bgl_icon-font[data-v-1da5b921] {
256
+ .nav-button .bgl_icon-font[data-v-727b754a] {
257
257
  padding: 2px 0 0 0;
258
258
  margin: 0;
259
259
  height: 30px;
260
260
  width: 30px;
261
261
  }
262
- .nav-links-wrapper[data-v-1da5b921] {
262
+ .nav-links-wrapper[data-v-727b754a] {
263
263
  display: flex;
264
264
  }
265
- .bot-buttons-wrapper[data-v-1da5b921] {
265
+ .bot-buttons-wrapper[data-v-727b754a] {
266
266
  margin-top: 0;
267
267
  width: auto;
268
268
  display: flex;
269
269
  }
270
- .nav-scroll[data-v-1da5b921] {
270
+ .nav-scroll[data-v-727b754a] {
271
271
  overflow-y: visible;
272
272
  width: auto;
273
273
  direction: auto;
@@ -278,10 +278,10 @@
278
278
  flex-direction: row;
279
279
  margin-inline-end: auto;
280
280
  }
281
- .nav[data-v-1da5b921]::-webkit-scrollbar {
281
+ .nav[data-v-727b754a]::-webkit-scrollbar {
282
282
  display: none;
283
283
  }
284
- .nav-expend[data-v-1da5b921] {
284
+ .nav-expend[data-v-727b754a] {
285
285
  display: none;
286
286
  }
287
287
  }
@@ -2297,6 +2297,65 @@ img.preview[data-v-1be8d7b1] {
2297
2297
  }
2298
2298
  }
2299
2299
 
2300
+ .layout {
2301
+ min-height: 100px;
2302
+ display: grid;
2303
+ }
2304
+
2305
+ .v-popper--theme-tooltip .v-popper__inner {
2306
+ background: rgb(255, 255, 255) !important;
2307
+ color: var(--bgl-primary) !important;
2308
+ font-size: 15px;
2309
+ padding: 0.5rem 1rem;
2310
+ box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.1);
2311
+ }
2312
+ .wideNav .nav-button .bgl_btn-flex {
2313
+ justify-content: flex-start !important;
2314
+ }
2315
+
2316
+ .nav-button.router-link-active[data-v-67b81581] {
2317
+ background-color: #40b884 !important;
2318
+ }
2319
+ .bgl_sidebar[data-v-67b81581] {
2320
+ background-color: var(--bgl-primary);
2321
+ color: var(--bgl-white);
2322
+ overflow: hidden;
2323
+ border-radius: var(--card-border-radius);
2324
+ margin: 0.5rem;
2325
+ width: calc(100% - 1rem);
2326
+ padding: 0.5rem;
2327
+ overflow-y: auto;
2328
+ }
2329
+ .wideNav .toggleNav[data-v-67b81581] {
2330
+ transform: rotate(180deg);
2331
+ }
2332
+ .wideNav .nav-button[data-v-67b81581] {
2333
+ padding-inline-start: 1rem !important;
2334
+ width: 100%;
2335
+ }
2336
+ .nav-button.bgl_btn-icon[data-v-67b81581] {
2337
+ border-radius: var(--btn-border-radius) !important;
2338
+ }
2339
+ .nav-button p[data-v-67b81581] {
2340
+ transition: var(--nav-tran);
2341
+ animation: fade-67b81581 2s;
2342
+ animation-duration: 900ms;
2343
+ }
2344
+ @keyframes fade-67b81581 {
2345
+ 0% {
2346
+ opacity: 0;
2347
+ transform: translateX(-20px);
2348
+ }
2349
+ 30% {
2350
+ opacity: 0;
2351
+ transform: translateX(-20px);
2352
+ }
2353
+ 100% {
2354
+ opacity: 1;
2355
+ transform: translateX(0);
2356
+ }
2357
+ }
2358
+
2300
2359
 
2301
2360
 
2302
2361
  .grid {
@@ -2,8 +2,9 @@ import { MaterialIcons } from './materialIcons';
2
2
  export type NavLink = {
3
3
  label: string;
4
4
  to?: string;
5
- materialIcon: MaterialIcons;
5
+ icon: MaterialIcons;
6
6
  localized?: string;
7
+ children?: NavLink[];
7
8
  onClick?: () => void;
8
9
  };
9
10
  //# sourceMappingURL=NavLink.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NavLink.d.ts","sourceRoot":"","sources":["../../src/types/NavLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,MAAM,OAAO,GAAG;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,aAAa,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAA"}
1
+ {"version":3,"file":"NavLink.d.ts","sourceRoot":"","sources":["../../src/types/NavLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,MAAM,OAAO,GAAG;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,aAAa,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAA"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bagelink/vue",
3
3
  "type": "module",
4
- "version": "0.0.314",
4
+ "version": "0.0.318",
5
5
  "description": "Bagel core sdk packages",
6
6
  "author": {
7
7
  "name": "Neveh Allon",
@@ -114,7 +114,7 @@
114
114
  },
115
115
  "dependencies": {
116
116
  "floating-vue": "^5.2.2",
117
- "type-fest": "^4.11.1",
117
+ "type-fest": "^4.12.0",
118
118
  "vue-multiselect": "3.0.0-beta.3"
119
119
  },
120
120
  "scripts": {
@@ -1,36 +1,42 @@
1
1
  <template>
2
- <div :class="{ open: isOpen, closed: !isOpen }">
3
- <slot name="top" />
4
- <div class="nav-expend" @click="isOpen = !isOpen" @keypress.enter="isOpen = !isOpen" role="button"
5
- aria-label="Toggle Navigation" tabindex="0">
6
- <MaterialIcon icon="chevron_right" class="top-arrow" />
7
- </div>
8
-
9
- <div class="full-nav">
10
- <div class="nav-scroll">
11
- <div class="nav-links-wrapper">
12
- <component :is="link.to?'router-link':'div'" v-for="link in links" class="nav-button" :to="link.to"
13
- :key="link.label" @click="link.onClick?.()">
14
- <MaterialIcon :icon="link.materialIcon" />
15
- <div class="tooltip">
16
- {{ link.label }}
17
- </div>
18
- </component>
19
- </div>
20
- </div>
21
-
22
- <div class="bot-buttons-wrapper">
23
- <component :is="link.to?'router-link':'div'" v-for="link in footerLinks" class="nav-button" :to="link.to"
24
- @click="link.onClick?.()" :key="link.label">
25
- <MaterialIcon :icon="link.materialIcon" />
26
- <div class="tooltip">
27
- {{ link.label }}
28
- </div>
29
- </component>
30
- <slot name="floor" />
31
- </div>
32
- </div>
33
- </div>
2
+ <div :class="{ open: isOpen, closed: !isOpen }">
3
+ <slot name="top" />
4
+ <div
5
+ class="nav-expend" @click="isOpen = !isOpen" @keypress.enter="isOpen = !isOpen" role="button"
6
+ aria-label="Toggle Navigation" tabindex="0"
7
+ >
8
+ <MaterialIcon icon="chevron_right" class="top-arrow" />
9
+ </div>
10
+
11
+ <div class="full-nav">
12
+ <div class="nav-scroll">
13
+ <div class="nav-links-wrapper">
14
+ <component
15
+ :is="link.to?'router-link':'div'" v-for="link in links" class="nav-button" :to="link.to"
16
+ :key="link.label" @click="link.onClick?.()"
17
+ >
18
+ <MaterialIcon :icon="link.icon" />
19
+ <div class="tooltip">
20
+ {{ link.label }}
21
+ </div>
22
+ </component>
23
+ </div>
24
+ </div>
25
+
26
+ <div class="bot-buttons-wrapper">
27
+ <component
28
+ :is="link.to?'router-link':'div'" v-for="link in footerLinks" class="nav-button" :to="link.to"
29
+ @click="link.onClick?.()" :key="link.label"
30
+ >
31
+ <MaterialIcon :icon="link.icon" />
32
+ <div class="tooltip">
33
+ {{ link.label }}
34
+ </div>
35
+ </component>
36
+ <slot name="floor" />
37
+ </div>
38
+ </div>
39
+ </div>
34
40
  </template>
35
41
 
36
42
  <script lang="ts" setup>
@@ -40,20 +46,20 @@ import { MaterialIcon } from '@bagelink/vue';
40
46
  const isOpen = $ref(true);
41
47
 
42
48
  withDefaults(
43
- defineProps<{
49
+ defineProps<{
44
50
  footerLinks?: NavLink[];
45
51
  links?: NavLink[];
46
52
  homeIcon?: MaterialIcons;
47
53
  homeLabel?: string;
48
54
  homeTo?: string;
49
55
  }>(),
50
- {
51
- homeIcon: 'home',
52
- homeLabel: 'Home',
53
- homeTo: '/',
54
- links: () => [],
55
- footerLinks: () => [],
56
- },
56
+ {
57
+ homeIcon: 'home',
58
+ homeLabel: 'Home',
59
+ homeTo: '/',
60
+ links: () => [],
61
+ footerLinks: () => [],
62
+ },
57
63
  );
58
64
  </script>
59
65
 
@@ -28,3 +28,4 @@ export { default as Carousel } from './Carousel.vue';
28
28
  export * from './form';
29
29
  export * from './dashboard';
30
30
  export * from './whatsapp';
31
+ export * from './layout';
@@ -5,13 +5,14 @@
5
5
  </template>
6
6
 
7
7
  <script lang="ts" setup>
8
- type Props = {
8
+ type LayoutProrps = {
9
9
  gap?: number,
10
10
  h100?: boolean,
11
11
  columns?: string[]
12
12
  rows?: string[],
13
13
  }
14
- const props = withDefaults(defineProps<Props>(), {
14
+
15
+ const props = withDefaults(defineProps<LayoutProrps>(), {
15
16
  gap: 1,
16
17
  h100: false,
17
18
  columns: () => [],
@@ -23,16 +23,10 @@
23
23
  <script lang="ts" setup>
24
24
  import { useSlots } from 'vue';
25
25
  import { Btn, Icon } from '@bagelink/vue';
26
- import type { MaterialIcons } from '@bagelink/vue';
26
+ import type { NavLink } from '@bagelink/vue';
27
27
 
28
28
  const slots = useSlots();
29
29
 
30
- type NavLink = {
31
- to?: string;
32
- icon: MaterialIcons;
33
- label: string;
34
- children?: NavLink[];
35
- };
36
30
  const props = defineProps<{ navLinks?: NavLink[], expandable?: boolean, open: boolean }>();
37
31
 
38
32
  let isOpen = $ref(props.open);
@@ -0,0 +1,2 @@
1
+ export { default as Layout } from './Layout.vue';
2
+ export { default as SidebarMenu } from './SidebarMenu.vue';
@@ -3,7 +3,8 @@ import { MaterialIcons } from './materialIcons';
3
3
  export type NavLink = {
4
4
  label: string;
5
5
  to?: string;
6
- materialIcon: MaterialIcons;
6
+ icon: MaterialIcons;
7
7
  localized?: string;
8
+ children?: NavLink[];
8
9
  onClick?: () => void;
9
10
  }
@@ -1,6 +0,0 @@
1
- <template>
2
- <div/>
3
- </template>
4
-
5
- <style scoped>
6
- </style>