@bagelink/vue 0.0.1016 → 0.0.1020

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
@@ -605,8 +605,16 @@ data[data-v-6c27f163] {
605
605
  transform: translateY(-2.6rem);
606
606
  }
607
607
 
608
- .itemBox[data-v-e8cf25b3]:hover {
609
- outline: 1px solid var(--bgl-primary);
608
+ .itemBox{
609
+ /* border-top: 2px solid var(--bgl-gray); */
610
+ /* border-bottom: 2px solid var(--bgl-gray); */
611
+ background: var(--input-bg);
612
+ }
613
+ .itemBox .bagel-input input,
614
+ .itemBox .bagel-input textarea,
615
+ .itemBox .bagel-input select,
616
+ .itemBox .custom-select .input {
617
+ background: var(--bgl-white) !important;
610
618
  }
611
619
 
612
620
  .primary-checkbox input[data-v-73f1d9ad] {
@@ -1194,26 +1202,26 @@ pre code.hljs{
1194
1202
  line-height: 1.65;
1195
1203
  }
1196
1204
 
1197
- .rich-text-editor[data-v-7a98aefd] {
1205
+ .rich-text-editor[data-v-8d91c8f8] {
1198
1206
  background: var(--input-bg);
1199
1207
  border: 1px solid var(--border-color);
1200
1208
  transition: all 0.3s ease;
1201
1209
  }
1202
- .editor-container[data-v-7a98aefd] {
1210
+ .editor-container[data-v-8d91c8f8] {
1203
1211
  display: flex;
1204
1212
  gap: 1rem;
1205
1213
  }
1206
- .content-area[data-v-7a98aefd],
1207
- .preview-area[data-v-7a98aefd] {
1214
+ .content-area[data-v-8d91c8f8],
1215
+ .preview-area[data-v-8d91c8f8] {
1208
1216
  flex: 1;
1209
1217
  min-height: 200px;
1210
1218
  background: var(--bgl-richtext-color);
1211
1219
  }
1212
- .split-view[data-v-7a98aefd] {
1220
+ .split-view[data-v-8d91c8f8] {
1213
1221
  display: grid;
1214
1222
  grid-template-columns: 1fr 1fr;
1215
1223
  }
1216
- .editableContent[data-v-7a98aefd] {
1224
+ .editableContent[data-v-8d91c8f8] {
1217
1225
  width: 100%;
1218
1226
  min-height: 240px;
1219
1227
  height: 100%;
@@ -1221,7 +1229,7 @@ line-height: 1.65;
1221
1229
  outline: none;
1222
1230
  background: transparent;
1223
1231
  }
1224
- .html-editor[data-v-7a98aefd] {
1232
+ .html-editor[data-v-8d91c8f8] {
1225
1233
  width: 100%;
1226
1234
  height: 100%;
1227
1235
  min-height: 200px;
@@ -1232,12 +1240,12 @@ line-height: 1.65;
1232
1240
  color: white;
1233
1241
  background-color: var(--bgl-black);
1234
1242
  }
1235
- .preview-area[data-v-7a98aefd] {
1243
+ .preview-area[data-v-8d91c8f8] {
1236
1244
  font-family: monospace;
1237
1245
  white-space: pre-wrap;
1238
1246
  overflow-x: auto;
1239
1247
  }
1240
- .fullscreen-mode[data-v-7a98aefd] {
1248
+ .fullscreen-mode[data-v-8d91c8f8] {
1241
1249
  position: fixed;
1242
1250
  top: 0;
1243
1251
  left: 0;
@@ -1246,15 +1254,15 @@ line-height: 1.65;
1246
1254
  z-index: 9999;
1247
1255
  padding: 2rem;
1248
1256
  }
1249
- .fullscreen-mode .editor-container[data-v-7a98aefd] {
1257
+ .fullscreen-mode .editor-container[data-v-8d91c8f8] {
1250
1258
  height: calc(100vh - 4rem);
1251
1259
  }
1252
- .fullscreen-mode .content-area[data-v-7a98aefd],
1253
- .fullscreen-mode .preview-area[data-v-7a98aefd] {
1260
+ .fullscreen-mode .content-area[data-v-8d91c8f8],
1261
+ .fullscreen-mode .preview-area[data-v-8d91c8f8] {
1254
1262
  height: 100%;
1255
1263
  overflow-y: auto;
1256
1264
  }
1257
- .fullscreen-mode .code-editor[data-v-7a98aefd]{
1265
+ .fullscreen-mode .code-editor[data-v-8d91c8f8]{
1258
1266
  height: 100% !important;
1259
1267
  }
1260
1268
  .resize-observer[data-v-b329ee4c]{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}.resize-observer[data-v-b329ee4c] object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}.v-popper__popper{z-index:10000;top:0;left:0;outline:none}.v-popper__popper.v-popper__popper--hidden{visibility:hidden;opacity:0;transition:opacity .15s,visibility .15s;pointer-events:none}.v-popper__popper.v-popper__popper--shown{visibility:visible;opacity:1;transition:opacity .15s}.v-popper__popper.v-popper__popper--skip-transition,.v-popper__popper.v-popper__popper--skip-transition>.v-popper__wrapper{transition:none!important}.v-popper__backdrop{position:absolute;top:0;left:0;width:100%;height:100%;display:none}.v-popper__inner{position:relative;box-sizing:border-box;overflow-y:auto}.v-popper__inner>div{position:relative;z-index:1;max-width:inherit;max-height:inherit}.v-popper__arrow-container{position:absolute;width:10px;height:10px}.v-popper__popper--arrow-overflow .v-popper__arrow-container,.v-popper__popper--no-positioning .v-popper__arrow-container{display:none}.v-popper__arrow-inner,.v-popper__arrow-outer{border-style:solid;position:absolute;top:0;left:0;width:0;height:0}.v-popper__arrow-inner{visibility:hidden;border-width:7px}.v-popper__arrow-outer{border-width:6px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner{left:-2px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{left:-1px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer{border-bottom-width:0;border-left-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner{top:-2px}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container{top:0}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{border-top-width:0;border-left-color:transparent!important;border-right-color:transparent!important;border-top-color:transparent!important}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner{top:-4px}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{top:-6px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{top:-2px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{top:-1px}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{border-left-width:0;border-left-color:transparent!important;border-top-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{left:-4px}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{left:-6px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container{right:-10px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer{border-right-width:0;border-top-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner{left:-2px}.v-popper--theme-tooltip .v-popper__inner{background:rgba(0,0,0,.8);color:#fff;border-radius:6px;padding:7px 12px 6px}.v-popper--theme-tooltip .v-popper__arrow-outer{border-color:#000c}.v-popper--theme-dropdown .v-popper__inner{background:#fff;color:#000;border-radius:6px;border:1px solid #ddd;box-shadow:0 6px 30px #0000001a}.v-popper--theme-dropdown .v-popper__arrow-inner{visibility:visible;border-color:#fff}.v-popper--theme-dropdown .v-popper__arrow-outer{border-color:#ddd}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bagelink/vue",
3
3
  "type": "module",
4
- "version": "0.0.1016",
4
+ "version": "0.0.1020",
5
5
  "description": "Bagel core sdk packages",
6
6
  "author": {
7
7
  "name": "Neveh Allon",
@@ -11,6 +11,7 @@ import {
11
11
  ToggleInput,
12
12
  bindAttrs,
13
13
  classify,
14
+ BagelForm
14
15
  } from '@bagelink/vue'
15
16
  import TabsNav from '../layout/TabsNav.vue'
16
17
 
@@ -42,6 +43,7 @@ const is = $computed(() => {
42
43
  if (props.field.$el === 'file') return FileUpload
43
44
  if (props.field.$el === 'date') return DateInput
44
45
  if (props.field.$el === 'tabs') return TabsNav
46
+ if (props.field.$el === 'form') return BagelForm
45
47
  return props.field.$el ?? 'div'
46
48
  })
47
49
 
@@ -68,6 +70,8 @@ function setFieldData(key: string, val: any) {
68
70
  return data
69
71
  }
70
72
 
73
+ const isForm = $computed(() => props.field.$el === 'form' || props.field.$el === BagelForm)
74
+
71
75
  function getFieldData(obj: any, key: string) {
72
76
  if (typeof obj !== 'object' || obj === null) return obj
73
77
  const keys = key.split(objPathRegex)
@@ -84,12 +88,17 @@ function getFieldData(obj: any, key: string) {
84
88
 
85
89
  const fieldData = $computed({
86
90
  set: (val: any) => {
91
+ if (isForm) {
92
+ emit('update:modelValue', val)
93
+ return
94
+ }
87
95
  if (!props.field.id) return
88
96
  const data = setFieldData(props.field.id, val)
89
97
  emit('update:modelValue', data)
90
98
  },
91
99
  get: () => {
92
100
  if (props.field.id) return getFieldData(props.modelValue, props.field.id)
101
+ if (isForm) return props.modelValue
93
102
  return props.field.defaultValue ?? ''
94
103
  },
95
104
  })
@@ -54,21 +54,21 @@ function addItem() {
54
54
  emitValue()
55
55
  }
56
56
 
57
- const computedField = $computed(
58
- () => ({
59
- label: props.label,
60
- placeholder: props.placeholder,
61
- children: props.children,
62
- class: props.class,
63
- attrs: props.attrs,
64
- required: props.required,
65
- disabled: props.disabled,
66
- helptext: props.helptext,
67
- options: props.options,
68
- defaultValue: props.defaultValue,
69
- $el: props.el,
70
- }) as Field<T>
71
- ) as Field<Record<string, any>>
57
+ // const computedField = $computed(
58
+ // () => ({
59
+ // label: props.label,
60
+ // placeholder: props.placeholder,
61
+ // children: props.children,
62
+ // class: props.class,
63
+ // attrs: props.attrs,
64
+ // required: props.required,
65
+ // disabled: props.disabled,
66
+ // helptext: props.helptext,
67
+ // options: props.options,
68
+ // defaultValue: props.defaultValue,
69
+ // $el: props.el,
70
+ // }) as Field<T>
71
+ // ) as Field<Record<string, any>>
72
72
  </script>
73
73
 
74
74
  <template>
@@ -76,8 +76,8 @@ const computedField = $computed(
76
76
  <p class="label mb-05">
77
77
  {{ label }}
78
78
  </p>
79
- <div>
80
- <Card v-for="(_, i) in data" :key="i" outline thin class="mb-05 itemBox bg-white transition">
79
+ <div class="ps-05 border-start">
80
+ <div v-for="(_, i) in data" :key="i" outline thin class="mb-05 itemBox transition p-05">
81
81
  <BglForm v-if="schema" v-model="data[i]" :schema="schema" @update:model-value="emitValue" />
82
82
  <Btn
83
83
  v-if="props.delete"
@@ -88,16 +88,25 @@ const computedField = $computed(
88
88
  flat
89
89
  @click="deleteItem(i)"
90
90
  />
91
- </Card>
92
- <Btn v-if="add" icon="add" color="gray" class="w-100" @click="addItem">
91
+ </div>
92
+ <Btn v-if="add" thin icon="add" color="gray" class="txt12" @click="addItem">
93
93
  <p>Add {{ label }}</p>
94
94
  </Btn>
95
95
  </div>
96
96
  </div>
97
97
  </template>
98
98
 
99
- <style scoped>
100
- .itemBox:hover {
101
- outline: 1px solid var(--bgl-primary);
99
+ <style>
100
+ .itemBox{
101
+ /* border-top: 2px solid var(--bgl-gray); */
102
+ /* border-bottom: 2px solid var(--bgl-gray); */
103
+ background: var(--input-bg);
104
+ }
105
+
106
+ .itemBox .bagel-input input,
107
+ .itemBox .bagel-input textarea,
108
+ .itemBox .bagel-input select,
109
+ .itemBox .custom-select .input {
110
+ background: var(--bgl-white) !important;
102
111
  }
103
112
  </style>
@@ -50,7 +50,7 @@ watch(() => editor.state.content, (newValue) => {
50
50
  </script>
51
51
 
52
52
  <template>
53
- <div class="rich-text-editor rounded pt-05 px-05 pb-075" :class="{ 'fullscreen-mode': editor.state.isFullscreen }">
53
+ <div class="rich-text-editor rounded pt-05 px-05 pb-075 mb-05" :class="{ 'fullscreen-mode': editor.state.isFullscreen }">
54
54
  <Toolbar
55
55
  v-if="editor.state.hasInit" :config="toolbarConfig" :selectedStyles="editor.state.selectedStyles"
56
56
  @action="editor.handleToolbarAction"
@@ -148,4 +148,4 @@ line-height: 1.65;
148
148
  .fullscreen-mode .code-editor{
149
149
  height: 100% !important;
150
150
  }
151
- </style
151
+ </style>
@@ -9,7 +9,7 @@ const { currentTab } = useTabs(props.group)
9
9
  </script>
10
10
 
11
11
  <template>
12
- <div v-if="currentTab">
12
+ <template v-if="currentTab">
13
13
  <slot :name="currentTab" />
14
- </div>
14
+ </template>
15
15
  </template>
@@ -11,7 +11,6 @@ let clickHandler: ((e: MouseEvent) => any) = (_e: MouseEvent) => void 0
11
11
 
12
12
  const lightboxDirective: Directive = {
13
13
  mounted(el: HTMLElement, binding) {
14
- el.classList.add('hover')
15
14
  const item = bindingToItem(binding, el)
16
15
  groupHandler(item)
17
16
  clickHandler = (e: MouseEvent) => { openClickHandler(e, el, binding) }