@bagelink/vue 1.4.155 → 1.4.161

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.
Files changed (52) hide show
  1. package/dist/components/ListItem.vue.d.ts +2 -2
  2. package/dist/components/ListItem.vue.d.ts.map +1 -1
  3. package/dist/components/Loading.vue.d.ts +3 -2
  4. package/dist/components/Loading.vue.d.ts.map +1 -1
  5. package/dist/components/Modal.vue.d.ts.map +1 -1
  6. package/dist/components/calendar/CalendarPopover.vue.d.ts +2 -0
  7. package/dist/components/calendar/CalendarPopover.vue.d.ts.map +1 -1
  8. package/dist/components/calendar/CalendarTypes.d.ts +2 -0
  9. package/dist/components/calendar/CalendarTypes.d.ts.map +1 -1
  10. package/dist/components/calendar/views/WeekView.vue.d.ts.map +1 -1
  11. package/dist/components/form/inputs/ColorInput.vue.d.ts.map +1 -1
  12. package/dist/components/form/inputs/NumberInput.vue.d.ts.map +1 -1
  13. package/dist/components/form/inputs/RadioGroup.vue.d.ts +6 -0
  14. package/dist/components/form/inputs/RadioGroup.vue.d.ts.map +1 -1
  15. package/dist/components/form/inputs/RichText/index.vue.d.ts +1 -0
  16. package/dist/components/form/inputs/RichText/index.vue.d.ts.map +1 -1
  17. package/dist/components/form/inputs/SelectInput.vue.d.ts.map +1 -1
  18. package/dist/components/layout/AppSidebar.vue.d.ts +1 -1
  19. package/dist/components/layout/AppSidebar.vue.d.ts.map +1 -1
  20. package/dist/components/layout/TabsNav.vue.d.ts.map +1 -1
  21. package/dist/components/lightbox/Lightbox.vue.d.ts.map +1 -1
  22. package/dist/index.cjs +21 -21
  23. package/dist/index.mjs +21 -21
  24. package/dist/style.css +1 -1
  25. package/dist/types/BtnOptions.d.ts +3 -0
  26. package/dist/types/BtnOptions.d.ts.map +1 -1
  27. package/dist/utils/sizeParsing.d.ts +3 -0
  28. package/dist/utils/sizeParsing.d.ts.map +1 -0
  29. package/package.json +1 -1
  30. package/src/components/ListItem.vue +42 -35
  31. package/src/components/Loading.vue +73 -25
  32. package/src/components/Modal.vue +5 -1
  33. package/src/components/calendar/CalendarPopover.vue +20 -24
  34. package/src/components/calendar/CalendarTypes.ts +2 -0
  35. package/src/components/calendar/Index.vue +1 -1
  36. package/src/components/calendar/views/WeekView.vue +7 -1
  37. package/src/components/form/inputs/ColorInput.vue +5 -5
  38. package/src/components/form/inputs/NumberInput.vue +2 -2
  39. package/src/components/form/inputs/RadioGroup.vue +22 -6
  40. package/src/components/form/inputs/RichText/index.vue +4 -2
  41. package/src/components/form/inputs/SelectInput.vue +2 -2
  42. package/src/components/layout/AppSidebar.vue +1 -1
  43. package/src/components/layout/TabsNav.vue +24 -22
  44. package/src/components/lightbox/Lightbox.vue +1 -0
  45. package/src/styles/appearance.css +10 -1
  46. package/src/styles/colors.css +502 -3
  47. package/src/styles/inputs.css +12 -4
  48. package/src/styles/layout.css +2 -1
  49. package/src/styles/mobileColors.css +4167 -3739
  50. package/src/styles/theme.css +1 -0
  51. package/src/types/BtnOptions.ts +4 -0
  52. package/src/utils/sizeParsing.ts +26 -0
@@ -13,4 +13,7 @@ export interface BtnOptions {
13
13
  value?: string;
14
14
  border?: boolean;
15
15
  }
16
+ export type UnitSize = 'px' | 'rem' | 'vh' | 'vw';
17
+ export type SizeType = 'xSmall' | 'small' | 'medium' | 'large' | 'xLarge';
18
+ export type SizeUnit = `${number}` | number | `${number}${UnitSize}`;
16
19
  //# sourceMappingURL=BtnOptions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BtnOptions.d.ts","sourceRoot":"","sources":["../../src/types/BtnOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,CAAA;AAE5C,MAAM,WAAW,UAAU;IAC1B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAA;IACpC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;CAChB"}
1
+ {"version":3,"file":"BtnOptions.d.ts","sourceRoot":"","sources":["../../src/types/BtnOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,CAAA;AAE5C,MAAM,WAAW,UAAU;IAC1B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAA;IACpC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,CAAA;AACjD,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAA;AACzE,MAAM,MAAM,QAAQ,GAAG,GAAG,MAAM,EAAE,GAAG,MAAM,GAAG,GAAG,MAAM,GAAG,QAAQ,EAAE,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { UnitSize } from '../types';
2
+ export declare function standardSize(value: number | string | undefined, unit?: UnitSize): string;
3
+ //# sourceMappingURL=sizeParsing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sizeParsing.d.ts","sourceRoot":"","sources":["../../src/utils/sizeParsing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,QAAQ,EAAE,MAAM,UAAU,CAAA;AAGlD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAAE,IAAI,GAAE,QAAe,UAsBrF"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bagelink/vue",
3
3
  "type": "module",
4
- "version": "1.4.155",
4
+ "version": "1.4.161",
5
5
  "description": "Bagel core sdk packages",
6
6
  "author": {
7
7
  "name": "Neveh Allon",
@@ -56,41 +56,40 @@ const bind = $computed(() => {
56
56
  </script>
57
57
 
58
58
  <template>
59
- <component
60
- :is="isComponent"
61
- v-bind="bind"
62
- v-ripple="ripple && isClickable"
63
- class="flex gap-05 list-item"
64
- :class="{ 'py-1': !props.thin,
65
- 'py-05': props.thin,
66
- 'px-1': !props.fullWidth,
67
- 'px-0': props.fullWidth,
68
- }"
69
- @click="onClick"
70
- >
71
- <Avatar v-if="src || showAvatar" style="flex-basis: 1;" :name="title" :src="src" :size="40" />
72
- <Icon v-if="icon" size="1.2" class="color-primary" :icon="icon" />
73
-
74
- <div class="txt-start">
75
- <p v-if="lead" class="txt10 m-0 p-0 txt-gray" :class="{ 'ellipsis': ellipsis }">
76
- {{ lead }}
77
- <slot name="lead" />
78
- </p>
79
- <p class="m-0 p-0 line-height-14 pb-025" :class="{ 'ellipsis-1': ellipsis }">
80
- {{ title }}
81
- <slot />
82
- </p>
83
- <p v-if="subtitle" class="txt12 m-0 p-0 opacity-7" :class="{ 'ellipsis-1': ellipsis }">
84
- {{ subtitle }}
85
- <slot name="subtitle" />
86
- </p>
87
- </div>
88
- <div class="flex-grow-1" />
59
+ <div class="flex space-between">
60
+ <component
61
+ :is="isComponent" v-bind="bind" v-ripple="ripple && isClickable"
62
+ class="flex flex-grow-1 gap-05 list-item" :class="{
63
+ 'py-1': !props.thin,
64
+ 'py-05': props.thin,
65
+ 'px-1': !props.fullWidth,
66
+ 'px-0': props.fullWidth,
67
+ }" @click="onClick"
68
+ >
69
+ <Avatar v-if="src || showAvatar" style="flex-basis: 1;" :name="title" :src="src" :size="40" />
70
+ <Icon v-if="icon" size="1.2" class="color-primary" :icon="icon" />
71
+
72
+ <div class="txt-start">
73
+ <p v-if="lead" class="txt10 m-0 p-0 txt-gray" :class="{ ellipsis }">
74
+ {{ lead }}
75
+ <slot name="lead" />
76
+ </p>
77
+ <p class="m-0 p-0 line-height-14 pb-025" :class="{ 'ellipsis-1': ellipsis }">
78
+ {{ title }}
79
+ <slot />
80
+ </p>
81
+ <p v-if="subtitle" class="txt12 m-0 p-0 opacity-7" :class="{ 'ellipsis-1': ellipsis }">
82
+ {{ subtitle }}
83
+ <slot name="subtitle" />
84
+ </p>
85
+ </div>
86
+ <div class="flex-grow-1" />
87
+ </component>
89
88
  <slot name="end">
90
89
  <Icon v-if="iconEnd" :icon="iconEnd" class="transition-400" />
91
90
  <p v-if="end" class="txt12 m-0 p-0 opacity-7" :class="{ 'ellipsis-1': ellipsis }" v-text="end" />
92
91
  </slot>
93
- </component>
92
+ </div>
94
93
  </template>
95
94
 
96
95
  <style>
@@ -103,10 +102,12 @@ button.list-item {
103
102
  width: 100%;
104
103
 
105
104
  }
105
+
106
106
  .list-item:disabled {
107
107
  opacity: 0.5;
108
108
  pointer-events: none;
109
109
  }
110
+
110
111
  .list-item {
111
112
  min-height: -webkit-fit-content;
112
113
  min-height: -moz-fit-content;
@@ -118,7 +119,8 @@ button.list-item {
118
119
  text-decoration: none;
119
120
  position: relative;
120
121
  }
121
- .list-item > *{
122
+
123
+ .list-item>* {
122
124
  margin-bottom: 0;
123
125
  }
124
126
 
@@ -130,6 +132,7 @@ button.list-item {
130
132
  bottom: 0;
131
133
  border-bottom: 1px solid var(--border-color);
132
134
  }
135
+
133
136
  .list-item:last-child::after {
134
137
  content: '';
135
138
  position: absolute;
@@ -143,17 +146,21 @@ button.list-item {
143
146
  .list-item.router-link-exact-active {
144
147
  background-color: var(--bgl-primary-tint);
145
148
  }
146
- .notClickable:hover{
147
- background-color:unset;
149
+
150
+ .notClickable:hover {
151
+ background-color: unset;
148
152
  cursor: default;
149
153
  }
154
+
150
155
  .list-item:active {
151
156
  -webkit-filter: var(--bgl-hover-filter);
152
157
  filter: var(--bgl-hover-filter);
153
158
  }
154
- .no-border-list.list-item::after{
159
+
160
+ .no-border-list.list-item::after {
155
161
  border-bottom: none;
156
162
  }
163
+
157
164
  @media screen and (max-width: 910px) {
158
165
  .list-item {
159
166
  padding: 0.5rem;
@@ -1,26 +1,23 @@
1
1
  <script setup lang="ts">
2
+ import type { SizeUnit, SizeType } from '../types/BtnOptions'
3
+ import { standardSize } from '../utils/sizeParsing'
4
+
2
5
  type LoadingType = 'ring' | 'ellipsis' | 'bar'
3
6
 
4
7
  const { type: theme = 'ring', size = 50, thickness, duration = 1.2, color, progress } = defineProps<{
5
- size?: number | string
6
- thickness?: number | string
8
+ size?: SizeUnit | SizeType
9
+ thickness?: SizeUnit
7
10
  duration?: number | string
8
11
  type?: LoadingType
9
12
  color?: string
10
13
  progress?: number
11
14
  }>()
12
15
 
13
- // Ensure size and units are correctly formatted
14
- function standardSize(value: number | string | undefined, unit = 'px') {
15
- if (!value) return `${size}${unit}`
16
- return typeof value === 'number' ? `${value}${unit}` : value.endsWith(unit) ? value : `${value}${unit}`
17
- }
18
-
19
16
  // Computed Values
20
17
  const computedSize = $computed(() => standardSize(size))
21
18
  const animationDuration = $computed(() => `${duration}s`)
22
19
  const computedBorder = $computed(() => {
23
- const borderValue = thickness ?? Math.max(Number.parseInt(computedSize) / 9, 2)
20
+ const borderValue = thickness ?? Math.max(Number.parseInt(computedSize, 10) / 9, 2)
24
21
  return standardSize(borderValue)
25
22
  })
26
23
 
@@ -95,15 +92,25 @@ const svgCircumference = $computed(() => Math.PI * 2 * svgRadius)
95
92
  }
96
93
 
97
94
  @keyframes bar-animation {
98
- 0% { background-position: -150% 0, -150% 0 }
99
- 66% { background-position: 250% 0, -150% 0 }
100
- 100% { background-position: 250% 0, 250% 0 }
95
+ 0% {
96
+ background-position: -150% 0, -150% 0
97
+ }
98
+
99
+ 66% {
100
+ background-position: 250% 0, -150% 0
101
+ }
102
+
103
+ 100% {
104
+ background-position: 250% 0, 250% 0
105
+ }
101
106
  }
102
107
 
103
108
  /* Ring Theme */
104
- .lds-ring, .lds-ring div {
109
+ .lds-ring,
110
+ .lds-ring div {
105
111
  box-sizing: border-box;
106
112
  }
113
+
107
114
  .lds-ring {
108
115
  position: relative;
109
116
  width: var(--size);
@@ -111,11 +118,13 @@ const svgCircumference = $computed(() => Math.PI * 2 * svgRadius)
111
118
  transform: translate(calc(var(--thickness) * -1), calc(var(--thickness) * -1));
112
119
  direction: ltr;
113
120
  }
121
+
114
122
  .progress .lds-ring svg {
115
123
  position: absolute;
116
124
  top: var(--thickness);
117
125
  left: var(--thickness);
118
126
  }
127
+
119
128
  .lds-ring div {
120
129
  display: block;
121
130
  position: absolute;
@@ -127,25 +136,42 @@ const svgCircumference = $computed(() => Math.PI * 2 * svgRadius)
127
136
  animation: lds-ring var(--animation-duration) cubic-bezier(0.5, 0, 0.5, 1) infinite;
128
137
  border-color: currentColor transparent transparent transparent;
129
138
  }
130
- .lds-ring div:nth-child(1) { animation-delay: calc(var(--animation-duration) * -0.38); }
131
- .lds-ring div:nth-child(2) { animation-delay: calc(var(--animation-duration) / -4); }
132
- .lds-ring div:nth-child(3) { animation-delay: calc(var(--animation-duration) / -8); }
139
+
140
+ .lds-ring div:nth-child(1) {
141
+ animation-delay: calc(var(--animation-duration) * -0.38);
142
+ }
143
+
144
+ .lds-ring div:nth-child(2) {
145
+ animation-delay: calc(var(--animation-duration) / -4);
146
+ }
147
+
148
+ .lds-ring div:nth-child(3) {
149
+ animation-delay: calc(var(--animation-duration) / -8);
150
+ }
133
151
 
134
152
  @keyframes lds-ring {
135
- 0% { transform: rotate(0deg); }
136
- 100% { transform: rotate(360deg); }
153
+ 0% {
154
+ transform: rotate(0deg);
155
+ }
156
+
157
+ 100% {
158
+ transform: rotate(360deg);
159
+ }
137
160
  }
138
161
 
139
162
  /* Ellipsis Theme */
140
- .lds-ellipsis, .lds-ellipsis div {
163
+ .lds-ellipsis,
164
+ .lds-ellipsis div {
141
165
  box-sizing: border-box;
142
166
  }
167
+
143
168
  .lds-ellipsis {
144
169
  display: inline-block;
145
170
  position: relative;
146
171
  width: var(--size);
147
172
  height: var(--size);
148
173
  }
174
+
149
175
  .lds-ellipsis div {
150
176
  position: absolute;
151
177
  top: calc(var(--size) / 2 - calc(var(--size) / 10));
@@ -155,32 +181,54 @@ const svgCircumference = $computed(() => Math.PI * 2 * svgRadius)
155
181
  background: currentColor;
156
182
  animation-timing-function: cubic-bezier(0, 1, 1, 0);
157
183
  }
184
+
158
185
  .lds-ellipsis div:nth-child(1) {
159
186
  left: calc(var(--size) / 10);
160
187
  animation: lds-ellipsis1 0.6s infinite;
161
188
  }
189
+
162
190
  .lds-ellipsis div:nth-child(2) {
163
191
  left: calc(var(--size) / 10);
164
192
  animation: lds-ellipsis2 0.6s infinite;
165
193
  }
194
+
166
195
  .lds-ellipsis div:nth-child(3) {
167
196
  left: calc(var(--size) / 2.5);
168
197
  animation: lds-ellipsis2 0.6s infinite;
169
198
  }
199
+
170
200
  .lds-ellipsis div:nth-child(4) {
171
201
  left: calc(var(--size) / 1.42);
172
202
  animation: lds-ellipsis3 0.6s infinite;
173
203
  }
204
+
174
205
  @keyframes lds-ellipsis1 {
175
- 0% { transform: scale(0); }
176
- 100% { transform: scale(1); }
206
+ 0% {
207
+ transform: scale(0);
208
+ }
209
+
210
+ 100% {
211
+ transform: scale(1);
212
+ }
177
213
  }
214
+
178
215
  @keyframes lds-ellipsis3 {
179
- 0% { transform: scale(1); }
180
- 100% { transform: scale(0); }
216
+ 0% {
217
+ transform: scale(1);
218
+ }
219
+
220
+ 100% {
221
+ transform: scale(0);
222
+ }
181
223
  }
224
+
182
225
  @keyframes lds-ellipsis2 {
183
- 0% { transform: translate(0, 0); }
184
- 100% { transform: translate(calc(var(--size) / 3.33), 0); }
226
+ 0% {
227
+ transform: translate(0, 0);
228
+ }
229
+
230
+ 100% {
231
+ transform: translate(calc(var(--size) / 3.33), 0);
232
+ }
185
233
  }
186
234
  </style>
@@ -97,7 +97,8 @@ onUnmounted(() => {
97
97
  <!-- Overlay close button -->
98
98
  <Btn v-if="dismissable && isOverlay" icon="close" icon-mobile-size="1.4" class="fixed" :class="overlayCloseClass" @click="closeModal" />
99
99
 
100
- <Card class="modal m_pt-0" :style="{ ...maxWidth }" :thin="thin" @click.stop :class="{ 'pt-0': thin, 'pt-1': !thin, 'm_mt-5': isOverlay, 'display-flex column': side }">
100
+ <Card class="modal m_pt-0" :style="{ ...maxWidth, '--bgl-box-bg': 'var(--bgl-popup-bg)' }" :thin="thin" @click.stop
101
+ :class="{ 'pt-0': thin, 'pt-1': !thin, 'm_mt-5': isOverlay, 'display-flex column': side }">
101
102
  <header v-if="slots.toolbar || title" class="tool-bar w-100p flex space-between sticky z-3 py-1">
102
103
  <!-- Header close button -->
103
104
  <Btn v-if="dismissable && isHeader && closePlacement === 'header'" :style="{ float: side ? '' : '' }" flat icon="close" thin icon-mobile-size="1.4" @click="closeModal" />
@@ -131,6 +132,9 @@ onUnmounted(() => {
131
132
  .modal {
132
133
  color: var(--bgl-popup-text);
133
134
  }
135
+ .modal .bgl_btn.bgl_btn_flat {
136
+ color: var(--bgl-popup-text) !important;
137
+ }
134
138
 
135
139
  .modal-footer>div {
136
140
  gap: 1rem;
@@ -61,42 +61,38 @@ function closePopover() {
61
61
 
62
62
  <template>
63
63
  <Card
64
- v-if="show && event"
65
- ref="popoverRef"
66
- v-click-outside="closePopover"
67
- thin
68
- class="custom-popover"
69
- :style="{
64
+ v-if="show && event" ref="popoverRef" v-click-outside="closePopover" thin class="custom-popover" :style="{
70
65
  top: `${popoverPosition.top}px`,
71
66
  left: `${popoverPosition.left}px`,
72
67
  maxWidth: `${popoverPosition.width}px`,
73
68
  }"
74
69
  >
75
- <slot name="eventContent" :event="event" />
70
+ <slot name="eventContent" :event="event" :close="closePopover" />
76
71
  </Card>
77
72
  </template>
78
73
 
79
74
  <style scoped>
80
75
  .custom-popover {
81
- position: fixed;
82
- z-index: 1000;
83
- min-width: 250px;
84
- max-width: 350px;
85
- background-color: white;
86
- border-radius: var(--btn-border-radius);
87
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
88
- animation: fadeIn 0.2s ease;
89
- transform-origin: center left;
76
+ position: fixed;
77
+ z-index: 1000;
78
+ min-width: 250px;
79
+ max-width: 350px;
80
+ background-color: white;
81
+ border-radius: var(--btn-border-radius);
82
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
83
+ animation: fadeIn 0.2s ease;
84
+ transform-origin: center left;
90
85
  }
91
86
 
92
87
  @keyframes fadeIn {
93
- from {
94
- opacity: 0;
95
- transform: scale(0.95);
96
- }
97
- to {
98
- opacity: 1;
99
- transform: scale(1);
100
- }
88
+ from {
89
+ opacity: 0;
90
+ transform: scale(0.95);
91
+ }
92
+
93
+ to {
94
+ opacity: 1;
95
+ transform: scale(1);
96
+ }
101
97
  }
102
98
  </style>
@@ -2,11 +2,13 @@ export interface CalendarEvent {
2
2
  id: string
3
3
  title: string
4
4
  description?: string
5
+ reference?: string
5
6
  start_time: Date
6
7
  end_time: Date
7
8
  color?: string
8
9
  category?: string
9
10
  allDay?: boolean
11
+ meta?: Record<string, any>
10
12
  }
11
13
  export type CalendarView = 'Week' | 'Month' | 'Day' | 'Agenda'
12
14
 
@@ -123,7 +123,7 @@ onMounted(() => { emit('ready', state.value) })
123
123
  <template>
124
124
  <div class="calendar">
125
125
  <div class="flex m_block m_pb-1">
126
- <h3 class="txt-light my-0">
126
+ <h3 class="txt-light my-0 m_pb-1">
127
127
  <b>{{ formatDate(currentDate, 'MMMM') }}</b>
128
128
  {{ formatDate(currentDate, 'YYYY') }}
129
129
  </h3>
@@ -421,7 +421,7 @@ onUnmounted(() => {
421
421
  <div class="w-100p overflow-hidden m_overflow h-100p grid">
422
422
  <div ref="calendarGrid" class="weekGrid border-bottom me-1">
423
423
  <div />
424
- <div v-for="day in weekDays" :key="day.toISOString()" class="day-header p-05 txt-center">
424
+ <div v-for="day in weekDays" :key="day.toISOString()" class="day-header p-05 txt-center m_txt12">
425
425
  {{ formatDate(day, { fmt: 'DDD' }) }}
426
426
  <span
427
427
  class="txt-12 round p-025" :class="{
@@ -576,4 +576,10 @@ onUnmounted(() => {
576
576
  flex-direction: column;
577
577
  justify-content: center; */
578
578
  }
579
+ @media (max-width: 910px) {
580
+ .weekGrid {
581
+ display: grid;
582
+ grid-template-columns: 3rem repeat(7, 100px);
583
+ }
584
+ }
579
585
  </style>
@@ -27,16 +27,16 @@ watch(
27
27
  </script>
28
28
 
29
29
  <template>
30
- <div class="bagel-input " :class="{ small }" :title="label">
30
+ <div class="bagel-input testMe1 " :class="{ small }" :title="label">
31
31
  <label>
32
32
  {{ label }}
33
- <div class="flex bg-input rounded px-025 colorInputPickWrap">
33
+ <div class="flex rounded colorInputPickWrap" :class="{ 'px-025 bg-input': !small }">
34
34
  <input
35
35
  :id="id"
36
36
  v-model="inputVal" class="border" type="color" :placeholder="placeholder || label"
37
37
  :class="{ 'no-edit': !editMode, 'opacity-1': !inputVal }" :required="required" v-bind="nativeInputAttrs"
38
38
  >
39
- <input
39
+ <input v-if="!small"
40
40
  v-model="inputVal"
41
41
  class="flex-grow-1 border colorInputPick"
42
42
  type="text"
@@ -50,9 +50,9 @@ watch(
50
50
 
51
51
  <style>
52
52
  .colorInputPick{
53
- --input-font-size: 12px;
54
- height: calc(var(--input-height) - 9px) !important;
53
+ --input-font-size: 12px;
55
54
  background: transparent !important;
55
+ height: var(--input-height) !important;
56
56
  min-width: 50px !important;
57
57
  }
58
58
  .colorInputPick:focus{
@@ -173,8 +173,8 @@ watch(() => modelValue, (newVal) => {
173
173
  <p v-if="helptext" class="opacity-7 light">
174
174
  {{ helptext }}
175
175
  </p>
176
- <Icon v-if="iconStart" class="iconStart" :icon="iconStart" />
177
- <Icon v-if="icon" :icon />
176
+ <Icon v-if="iconStart" class="iconStart" size="0.9" :icon="iconStart" />
177
+ <Icon v-if="icon" :icon size="0.9" />
178
178
  <Btn
179
179
  v-if="layout && btnLayouts.includes(layout)" flat icon="remove" class="radius"
180
180
  :class="[{ 'bgl-big-ctrl-num-btn': layout === 'vertical' }]" tabindex="-1" @click="decrement"
@@ -27,6 +27,12 @@ const props = withDefaults(
27
27
  flat?: boolean
28
28
  invertedActive?: boolean
29
29
  align?: 'start' | 'center' | 'end' | 'top' | 'bottom'
30
+ hideRadio?: boolean
31
+ bgColor?: string
32
+ activeBgColor?: string
33
+ borderColor?: string
34
+ textColor?: string
35
+ textAlign?: 'left' | 'center' | 'right'
30
36
  }>(),
31
37
  {
32
38
  align: 'center'
@@ -89,7 +95,8 @@ function handleChange() {
89
95
  v-for="(opt, index) in visibleOptions" :key="opt.id || `${name}-${index}`"
90
96
  class="border rounded flex active-list-item hover"
91
97
  :for="opt.id || `${name}-${index}`"
92
- :class="{ 'p-05 gap-025': thin, 'ps-05 py-1 gap-075': !thin, 'bg-gray-light': !flat, 'align-items-start': align === 'start' || align === 'top', 'align-items-center': align === 'center', 'align-items-end': align === 'end' || align === 'bottom', invertedActive }"
98
+ :class="{ 'p-05 gap-025': thin, 'py-1 gap-075': !thin, 'ps-05': !hideRadio, 'bg-gray-light': !bgColor && !flat, 'align-items-start': align === 'start' || align === 'top', 'align-items-center': align === 'center', 'align-items-end': align === 'end' || align === 'bottom', invertedActive }"
99
+ :style="{ backgroundColor: bgColor, borderColor: borderColor }"
93
100
  >
94
101
  <input
95
102
  :id="opt.id || `${name}-${index}`" v-model="selectedOption" :disabled class="radio-input-list"
@@ -97,16 +104,19 @@ function handleChange() {
97
104
  @change="handleChange"
98
105
  :class="{
99
106
  'mt-025': align === 'start' || align === 'top',
100
- 'mb-025': align === 'end' || align === 'bottom'
107
+ 'mb-025': align === 'end' || align === 'bottom',
108
+ 'hideRadio': hideRadio
101
109
  }"
102
110
  >
103
- <div class="flex w-100 gap-1 flex-wrap m_gap-05 m_gap-row-025">
111
+ <div class="flex w-100 gap-1 flex-wrap m_gap-05 m_gap-row-025"
112
+ :class="{ 'txt-center justify-content-center': textAlign === 'center', 'txt-end justify-content-end': textAlign === 'right', 'txt-start justify-content-start': textAlign === 'left' }"
113
+ :style="{ color: textColor }">
104
114
  <img
105
115
  v-if="opt.imgSrc" class="bg-popup shadow-light py-025 radius-05 m_w40" height="40" :src="opt.imgSrc"
106
116
  :alt="opt.imgAlt"
107
117
  >
108
118
  <div class="">
109
- <p v-if="opt.label" class="m-0 m_txt-14 line-height-14">{{ opt.label }}</p>
119
+ <div v-if="opt.label" class="m-0 m_txt-14 line-height-14" v-html="opt.label"></div>
110
120
  <p v-if="opt.subLabel" class="txt-gray txt-12 m-0 pt-025">{{ opt.subLabel }}</p>
111
121
  </div>
112
122
  <slot name="radioItem" v-bind="opt" />
@@ -117,24 +127,30 @@ function handleChange() {
117
127
  </template>
118
128
 
119
129
  <style scoped>
130
+ .hideRadio.radio-input-list {
131
+ display: none !important;
132
+ }
120
133
  .radio-input-list {
121
134
  width: auto;
122
135
  transform: scale(1.4);
123
136
  margin-inline-end: 0.6rem;
137
+ }
124
138
 
139
+ .radio-input-list.hidden {
140
+ display: none;
125
141
  }
126
142
 
127
143
  .active-list-item:has(:checked) {
128
- background: var(--bgl-primary-light) !important;
144
+ background: v-bind('activeBgColor || "var(--bgl-primary-light)"') !important;
129
145
  border-color: var(--bgl-primary) !important;
130
146
  accent-color: var(--bgl-accent-color);
131
147
  }
148
+
132
149
  .invertedActive:has(:checked) {
133
150
  background: var(--bgl-primary) !important;
134
151
  border-color: var(--bgl-primary) !important;
135
152
  color: var(--bgl-white);
136
153
  accent-color: var(--bgl-white);
137
-
138
154
  }
139
155
 
140
156
  .has-error .active-list-item {
@@ -39,6 +39,8 @@ const props = defineProps<{
39
39
  hide?: string[]
40
40
  // Control autofocus behavior
41
41
  autofocus?: boolean
42
+ // Text color
43
+ textColor?: string
42
44
  }>()
43
45
 
44
46
  const emit = defineEmits(['update:modelValue'])
@@ -2521,7 +2523,7 @@ async function initEditor() {
2521
2523
  min-height: 200px;
2522
2524
  font-family: sans-serif !important;
2523
2525
  line-height: 1.5;
2524
- color: inherit;
2526
+ color: ${props.textColor || 'inherit'};
2525
2527
  background: transparent;
2526
2528
  max-width: 1060px;
2527
2529
  margin: 0 auto;
@@ -3509,7 +3511,7 @@ defineExpose({
3509
3511
  }
3510
3512
 
3511
3513
  .inline-toolbar-content {
3512
- background: var(--bgl-surface, white);
3514
+ background: var(--bgl-box-bg, white);
3513
3515
  border: 1px solid var(--border-color, #dddddd);
3514
3516
  border-radius: 8px;
3515
3517
  padding: 0.25rem;
@@ -273,7 +273,7 @@ onMounted(() => {
273
273
  </label>
274
274
  </template>
275
275
  <Skeleton v-if="isLoading" :count="6" width="200px" height="25px" class="mx-1 my-1" />
276
- <Card class="p-05" :style="{ width: fullWidth ? '100%' : 'auto' }" @click.stop>
276
+ <Card class="p-05" frame :style="{ width: fullWidth ? '100%' : 'auto' }" @click.stop>
277
277
  <div ref="selectOptions" class="selectinput-options" :class="{ multiselect }">
278
278
  <div
279
279
  v-for="(option, i) in results" :key="`${String(getValue(option))}-${i}`"
@@ -387,6 +387,6 @@ onMounted(() => {
387
387
  border: none;
388
388
  /* background: transparent; if anyone is changing this please talk to me first*/
389
389
  border-radius: var(--card-border-radius);
390
- /* color: var(--input-color); */
390
+ color: var(--dropdown-color);
391
391
  }
392
392
  </style>
@@ -112,7 +112,7 @@ function logout() {
112
112
  to="/"
113
113
  class="decoration-none flex px-05"
114
114
  :class="{
115
- 'gap-025': menuState.isOpen.value,
115
+ 'gap-05': menuState.isOpen.value,
116
116
  'gap-0': !menuState.isOpen.value,
117
117
  }"
118
118
  >