@bagelink/vue 0.0.712 → 0.0.716

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 (177) hide show
  1. package/dist/components/Accordion.d.ts +12 -0
  2. package/dist/components/Accordion.d.ts.map +1 -0
  3. package/dist/components/AccordionItem.d.ts +34 -0
  4. package/dist/components/AccordionItem.d.ts.map +1 -0
  5. package/dist/components/Alert.d.ts +34 -0
  6. package/dist/components/Alert.d.ts.map +1 -0
  7. package/dist/components/Avatar.d.ts +36 -0
  8. package/dist/components/Avatar.d.ts.map +1 -0
  9. package/dist/components/Badge.d.ts +22 -0
  10. package/dist/components/Badge.d.ts.map +1 -0
  11. package/dist/components/BglVideo.d.ts +20 -0
  12. package/dist/components/BglVideo.d.ts.map +1 -0
  13. package/dist/components/Btn.d.ts +99 -0
  14. package/dist/components/Btn.d.ts.map +1 -0
  15. package/dist/components/Card.d.ts +39 -0
  16. package/dist/components/Card.d.ts.map +1 -0
  17. package/dist/components/Carousel.d.ts +74 -0
  18. package/dist/components/Carousel.d.ts.map +1 -0
  19. package/dist/components/ComboBox.vue.d.ts +3 -3
  20. package/dist/components/Comments.vue.d.ts +2 -2
  21. package/dist/components/ContactSubmissions.vue.d.ts +2 -2
  22. package/dist/components/DataPreview.d.ts +42 -0
  23. package/dist/components/DataPreview.d.ts.map +1 -0
  24. package/dist/components/Drop.vue.d.ts +34 -0
  25. package/dist/components/Drop.vue.d.ts.map +1 -0
  26. package/dist/components/DropDown.vue.d.ts +3 -3
  27. package/dist/components/FileUploader.vue.d.ts +60 -0
  28. package/dist/components/FileUploader.vue.d.ts.map +1 -0
  29. package/dist/components/Flag.d.ts +20 -0
  30. package/dist/components/Flag.d.ts.map +1 -0
  31. package/dist/components/FormSchema.vue.d.ts +5 -4
  32. package/dist/components/LangText.vue.d.ts +2 -2
  33. package/dist/components/ListItem.d.ts +34 -0
  34. package/dist/components/ListItem.d.ts.map +1 -0
  35. package/dist/components/ListItem.vue.d.ts.map +1 -1
  36. package/dist/components/ListView.d.ts +13 -0
  37. package/dist/components/ListView.d.ts.map +1 -0
  38. package/dist/components/MapEmbed.d.ts +3 -0
  39. package/dist/components/MapEmbed.d.ts.map +1 -0
  40. package/dist/components/MaterialIcon.d.ts +26 -0
  41. package/dist/components/MaterialIcon.d.ts.map +1 -0
  42. package/dist/components/Modal.d.ts +46 -0
  43. package/dist/components/Modal.d.ts.map +1 -0
  44. package/dist/components/ModalBglForm.vue.d.ts +21 -20
  45. package/dist/components/ModalConfirm.d.ts +24 -0
  46. package/dist/components/ModalConfirm.d.ts.map +1 -0
  47. package/dist/components/ModalForm.d.ts +78 -0
  48. package/dist/components/ModalForm.d.ts.map +1 -0
  49. package/dist/components/NavBar.d.ts +64 -0
  50. package/dist/components/NavBar.d.ts.map +1 -0
  51. package/dist/components/PageTitle.d.ts +24 -0
  52. package/dist/components/PageTitle.d.ts.map +1 -0
  53. package/dist/components/PersonPreview.vue.d.ts +5 -4
  54. package/dist/components/PersonPreviewFormkit.vue.d.ts +4 -3
  55. package/dist/components/RTXEditor.vue.d.ts +3 -3
  56. package/dist/components/RouterWrapper.d.ts +3 -0
  57. package/dist/components/RouterWrapper.d.ts.map +1 -0
  58. package/dist/components/TabbedLayout.vue.d.ts +5 -4
  59. package/dist/components/TableSchema.d.ts +35 -0
  60. package/dist/components/TableSchema.d.ts.map +1 -0
  61. package/dist/components/Title.d.ts +42 -0
  62. package/dist/components/Title.d.ts.map +1 -0
  63. package/dist/components/TopBar.d.ts +12 -0
  64. package/dist/components/TopBar.d.ts.map +1 -0
  65. package/dist/components/charts/BarChart.vue.d.ts +2 -2
  66. package/dist/components/dashboard/Lineart.d.ts +20 -0
  67. package/dist/components/dashboard/Lineart.d.ts.map +1 -0
  68. package/dist/components/form/BglField.d.ts +25 -0
  69. package/dist/components/form/BglField.d.ts.map +1 -0
  70. package/dist/components/form/BglForm.d.ts +75 -0
  71. package/dist/components/form/BglForm.d.ts.map +1 -0
  72. package/dist/components/form/ItemRef.vue.d.ts +5 -3
  73. package/dist/components/form/ItemRef.vue.d.ts.map +1 -1
  74. package/dist/components/form/MaterialIcon.vue.d.ts +4 -3
  75. package/dist/components/form/PlainInputField.vue.d.ts +3 -3
  76. package/dist/components/form/inputs/CheckInput.d.ts +56 -0
  77. package/dist/components/form/inputs/CheckInput.d.ts.map +1 -0
  78. package/dist/components/form/inputs/Checkbox.d.ts +16 -0
  79. package/dist/components/form/inputs/Checkbox.d.ts.map +1 -0
  80. package/dist/components/form/inputs/ColorPicker.d.ts +48 -0
  81. package/dist/components/form/inputs/ColorPicker.d.ts.map +1 -0
  82. package/dist/components/form/inputs/CurrencyInput.vue.d.ts +3 -3
  83. package/dist/components/form/inputs/DateInput.d.ts +64 -0
  84. package/dist/components/form/inputs/DateInput.d.ts.map +1 -0
  85. package/dist/components/form/inputs/DatePicker.d.ts +33 -0
  86. package/dist/components/form/inputs/DatePicker.d.ts.map +1 -0
  87. package/dist/components/form/inputs/DatetimeInput.vue.d.ts +3 -3
  88. package/dist/components/form/inputs/DurationInput.vue.d.ts +3 -3
  89. package/dist/components/form/inputs/DynamicLinkField.vue.d.ts +3 -3
  90. package/dist/components/form/inputs/EmailInput.vue.d.ts +3 -3
  91. package/dist/components/form/inputs/FileUpload.d.ts +108 -0
  92. package/dist/components/form/inputs/FileUpload.d.ts.map +1 -0
  93. package/dist/components/form/inputs/FileUpload.vue.d.ts +6 -0
  94. package/dist/components/form/inputs/FileUpload.vue.d.ts.map +1 -1
  95. package/dist/components/form/inputs/FloatInput.vue.d.ts +3 -3
  96. package/dist/components/form/inputs/IntInput.vue.d.ts +3 -3
  97. package/dist/components/form/inputs/JSONInput.d.ts +53 -0
  98. package/dist/components/form/inputs/JSONInput.d.ts.map +1 -0
  99. package/dist/components/form/inputs/LinkField.vue.d.ts +3 -3
  100. package/dist/components/form/inputs/Password.vue.d.ts +3 -3
  101. package/dist/components/form/inputs/PasswordInput.vue.d.ts +3 -3
  102. package/dist/components/form/inputs/PlainText.vue.d.ts +3 -3
  103. package/dist/components/form/inputs/RadioGroup.d.ts +42 -0
  104. package/dist/components/form/inputs/RadioGroup.d.ts.map +1 -0
  105. package/dist/components/form/inputs/RadioPillsInput.d.ts +48 -0
  106. package/dist/components/form/inputs/RadioPillsInput.d.ts.map +1 -0
  107. package/dist/components/form/inputs/ReadOnlyInput.vue.d.ts +2 -2
  108. package/dist/components/form/inputs/RichText.d.ts +20 -0
  109. package/dist/components/form/inputs/RichText.d.ts.map +1 -0
  110. package/dist/components/form/inputs/RichText2/Toolbar.d.ts +22 -0
  111. package/dist/components/form/inputs/RichText2/Toolbar.d.ts.map +1 -0
  112. package/dist/components/form/inputs/RichText2/Toolbar.vue.d.ts.map +1 -1
  113. package/dist/components/form/inputs/RichText2/index.d.ts +24 -0
  114. package/dist/components/form/inputs/RichText2/index.d.ts.map +1 -0
  115. package/dist/components/form/inputs/RichText2/index.vue.d.ts.map +1 -1
  116. package/dist/components/form/inputs/RichTextEditor.vue.d.ts +3 -3
  117. package/dist/components/form/inputs/SelectField.vue.d.ts +6 -8
  118. package/dist/components/form/inputs/SelectField.vue.d.ts.map +1 -1
  119. package/dist/components/form/inputs/SelectInput.d.ts +55 -0
  120. package/dist/components/form/inputs/SelectInput.d.ts.map +1 -0
  121. package/dist/components/form/inputs/SelectInput.vue.d.ts.map +1 -1
  122. package/dist/components/form/inputs/SignaturePad.d.ts +72 -0
  123. package/dist/components/form/inputs/SignaturePad.d.ts.map +1 -0
  124. package/dist/components/form/inputs/TableField.d.ts +45 -0
  125. package/dist/components/form/inputs/TableField.d.ts.map +1 -0
  126. package/dist/components/form/inputs/TelInput.d.ts +241 -0
  127. package/dist/components/form/inputs/TelInput.d.ts.map +1 -0
  128. package/dist/components/form/inputs/TextArea.vue.d.ts +3 -3
  129. package/dist/components/form/inputs/TextInput.d.ts +90 -0
  130. package/dist/components/form/inputs/TextInput.d.ts.map +1 -0
  131. package/dist/components/form/inputs/ToggleInput.d.ts +58 -0
  132. package/dist/components/form/inputs/ToggleInput.d.ts.map +1 -0
  133. package/dist/components/formkit/AddressArray.vue.d.ts +2 -2
  134. package/dist/components/formkit/BankDetailsArray.vue.d.ts +2 -2
  135. package/dist/components/formkit/ContactArrayFormKit.vue.d.ts +2 -2
  136. package/dist/components/formkit/FileUploader.vue.d.ts +2 -2
  137. package/dist/components/formkit/MiscFields.vue.d.ts +2 -2
  138. package/dist/components/formkit/Toggle.vue.d.ts +2 -2
  139. package/dist/components/layout/BottomMenu.d.ts +27 -0
  140. package/dist/components/layout/BottomMenu.d.ts.map +1 -0
  141. package/dist/components/layout/Layout.d.ts +58 -0
  142. package/dist/components/layout/Layout.d.ts.map +1 -0
  143. package/dist/components/layout/SidebarMenu.d.ts +38 -0
  144. package/dist/components/layout/SidebarMenu.d.ts.map +1 -0
  145. package/dist/components/layout/TabbedLayout.d.ts +42 -0
  146. package/dist/components/layout/TabbedLayout.d.ts.map +1 -0
  147. package/dist/components/layout/Tabs.d.ts +31 -0
  148. package/dist/components/layout/Tabs.d.ts.map +1 -0
  149. package/dist/components/layout/TabsBody.d.ts +23 -0
  150. package/dist/components/layout/TabsBody.d.ts.map +1 -0
  151. package/dist/components/layout/TabsNav.d.ts +35 -0
  152. package/dist/components/layout/TabsNav.d.ts.map +1 -0
  153. package/dist/components/whatsapp/form/MsgTemplate.vue.d.ts +4 -3
  154. package/dist/components/whatsapp/form/TextVariableExamples.vue.d.ts +2 -2
  155. package/dist/index.cjs +240 -184
  156. package/dist/index.d.ts +1 -0
  157. package/dist/index.d.ts.map +1 -1
  158. package/dist/index.mjs +240 -184
  159. package/dist/plugins/modal.d.ts.map +1 -1
  160. package/dist/style.css +178 -89
  161. package/dist/utils/constants.d.ts +5 -0
  162. package/dist/utils/constants.d.ts.map +1 -0
  163. package/dist/utils/objects.d.ts +1 -0
  164. package/package.json +13 -13
  165. package/src/components/ListItem.vue +6 -3
  166. package/src/components/form/inputs/FileUpload.vue +185 -64
  167. package/src/components/form/inputs/RichText2/Toolbar.vue +39 -62
  168. package/src/components/form/inputs/RichText2/index.vue +34 -16
  169. package/src/components/form/inputs/SelectInput.vue +20 -9
  170. package/src/index.ts +1 -0
  171. package/src/plugins/modal.ts +48 -16
  172. package/src/utils/constants.ts +4 -0
  173. package/dist/components/Popover.vue.d.ts +0 -10
  174. package/dist/components/Popover.vue.d.ts.map +0 -1
  175. package/dist/types/materialIcon.d.ts +0 -2
  176. package/dist/types/materialIcon.d.ts.map +0 -1
  177. package/src/components/form/inputs/FileUploadURL.vue +0 -300
@@ -1,300 +0,0 @@
1
- <script setup lang="ts">
2
- import { watch } from 'vue'
3
- import { Btn, Icon, type StorageFile, useBagel } from '@bagelink/vue'
4
-
5
- const props = defineProps<{
6
- label: string
7
- multiple?: boolean
8
- files?: StorageFile | StorageFile[]
9
- deleteEndpoint?: string
10
- }>()
11
-
12
- const bagel = useBagel()
13
-
14
- interface QueueFile {
15
- file: File
16
- progress: number
17
- uploading?: boolean
18
- name?: string
19
- uploaded?: boolean
20
- }
21
-
22
- const fileURLs = defineModel<string[] | string>('modelValue')
23
- const storageFiles = $ref<StorageFile[]>([])
24
-
25
- const compareIds = (v1?: string[] | string, v2?: string[] | string) => [v1].flat().join(',') === [v2].flat().join(',')
26
-
27
- watch(
28
- () => props.files,
29
- (newFiles) => {
30
- if (newFiles) storageFiles.push(...[newFiles].flat())
31
- },
32
- { immediate: true }
33
- )
34
-
35
- watch(
36
- () => storageFiles,
37
- (newFiles) => {
38
- let idValue: string[] | string = ''
39
- if (props.multiple) idValue = newFiles.map(f => f.url || '')
40
- else idValue = newFiles[0].url || ''
41
- if (!compareIds(fileURLs.value, idValue)) fileURLs.value = idValue
42
- },
43
- { deep: true }
44
- )
45
-
46
- const fileQueue = $ref<QueueFile[]>([])
47
- let isDragOver = $ref(false)
48
-
49
- function preventDefault(e: Event) {
50
- e.preventDefault()
51
- e.stopPropagation()
52
- }
53
-
54
- const fileToUrl = (file: File) => URL.createObjectURL(file)
55
- function removeFile(file: StorageFile) {
56
- const index = storageFiles.indexOf(file)
57
- storageFiles.splice(index, 1)
58
-
59
- if (props.deleteEndpoint) {
60
- void bagel.delete(`${props.deleteEndpoint}/${file.id}`)
61
- }
62
- }
63
-
64
- function flushQueue() {
65
- fileQueue.forEach(async (file, i) => {
66
- if (!props.multiple) storageFiles.splice(0, 1)
67
- const serverFile = await bagel.uploadFile<StorageFile>(file.file, {
68
- onUploadProgress: (e: any) => (file.progress = e.progress * 100 - 1),
69
- })
70
- storageFiles.push(serverFile)
71
- fileQueue.splice(i, 1)
72
- })
73
- }
74
-
75
- function browse() {
76
- const input = document.createElement('input')
77
- input.type = 'file'
78
- input.multiple = props.multiple
79
- input.onchange = (e: Event) => {
80
- const target = e.target as HTMLInputElement
81
- if (target.files) {
82
- Array.from(target.files).forEach((file: File) => fileQueue.push({ name: file.name, file, progress: 0 })
83
- )
84
- }
85
- flushQueue()
86
- }
87
- input.click()
88
- }
89
-
90
- function dragleave(e: DragEvent) {
91
- preventDefault(e)
92
- if (e.dataTransfer) isDragOver = false
93
- else isDragOver = false
94
- }
95
-
96
- function dragover(e: DragEvent) {
97
- preventDefault(e)
98
- if (e.dataTransfer) isDragOver = true
99
- else isDragOver = false
100
- }
101
-
102
- function drop(e: DragEvent) {
103
- preventDefault(e)
104
- if (e.dataTransfer) {
105
- Array.from(e.dataTransfer.files).forEach((file: File) => fileQueue.push({ name: file.name, file, progress: 0 })
106
- )
107
- }
108
- isDragOver = false
109
- flushQueue()
110
- }
111
- </script>
112
-
113
- <template>
114
- <div class="bagel-input">
115
- <label>
116
- {{ label }}
117
- </label>
118
- <div
119
- class="fileUploadWrap"
120
- :class="{
121
- fileDropZone: !storageFiles.length && !fileQueue.length,
122
- dragover: isDragOver,
123
- }"
124
- @click="browse"
125
- @dragover="dragover"
126
- @drop="drop"
127
- @dragleave="dragleave"
128
- >
129
- <template v-for="file in storageFiles" :key="file.id">
130
- <div v-if="!multiple" class="imagePreviewWrap">
131
- <img class="preview" :src="file.url" alt="">
132
- </div>
133
- <div class="previewName">
134
- <img
135
- v-if="multiple"
136
- height="60"
137
- class="preview"
138
- :src="file.url"
139
- alt=""
140
- >
141
- <p class="no-margin">
142
- {{ file.name }}
143
- </p>
144
- <Btn
145
- thin
146
- flat
147
- icon="delete"
148
- color="red"
149
- @click.stop="removeFile(file)"
150
- />
151
- </div>
152
- </template>
153
- <template v-for="fileQ in fileQueue" :key="fileQ.file">
154
- <div v-if="!multiple" class="imagePreviewWrap">
155
- <img class="preview" :src="fileToUrl(fileQ.file)" alt="">
156
- </div>
157
- <div class="previewName">
158
- <img
159
- v-if="multiple"
160
- height="60"
161
- class="preview"
162
- :src="fileToUrl(fileQ.file)"
163
- alt=""
164
- >
165
- <p class="no-margin">
166
- {{ fileQ.name }}
167
- </p>
168
- <div
169
- class="pie"
170
- :style="`--p:${fileQ.progress}`"
171
- style="--b: 2px"
172
- :class="{ complete: fileQ.progress === 100 }"
173
- >
174
- <span v-if="fileQ.progress < 100" class="progress">
175
- {{ `${fileQ.progress.toFixed(0)}` }}
176
- </span>
177
- <Icon class="success" icon="check" />
178
- </div>
179
- </div>
180
- </template>
181
- </div>
182
- </div>
183
- </template>
184
-
185
- <style scoped>
186
- .bagel-input .fileUploadWrap {
187
- outline: 1px solid var(--border-color);
188
- border-radius: var(--input-border-radius);
189
- text-align: center;
190
- cursor: pointer;
191
- transition: var(--bgl-transition);
192
- position: relative;
193
- height: 132px;
194
- font-size: var(--input-font-size);
195
- }
196
-
197
- .previewName {
198
- padding: 0.5rem;
199
- text-align: start;
200
- color: var(--input-color);
201
- display: grid;
202
- grid-template-columns: 1fr 22px;
203
- align-items: center;
204
- padding-inline: 14px;
205
-
206
- }
207
-
208
- .previewName p {
209
- overflow: hidden;
210
- text-overflow: ellipsis;
211
- white-space: nowrap;
212
- }
213
-
214
- .imagePreviewWrap {
215
- background: var(--input-bg);
216
- border-radius: var(--input-border-radius);
217
- height: 90px;
218
- padding: 5px;
219
- }
220
-
221
- img.preview {
222
- height: 80px;
223
- border-radius: var(--input-border-radius);
224
- object-fit: contain;
225
- }
226
-
227
- .fileUploadWrap.dragover,
228
- .fileUploadWrap:hover {
229
- box-shadow: inset 0 0 10px #00000012;
230
- }
231
-
232
- .bagel-input .fileUploadWrap.fileDropZone {
233
- background: var(--input-bg);
234
- display: flex;
235
- align-items: center;
236
- justify-content: center;
237
- color: var(--bgl-gray);
238
- width: 100%;
239
- }
240
-
241
- .bagel-input .fileUploadWrap.fileDropZone:after {
242
- content: 'Drop files here or click to upload';
243
- }
244
-
245
- .pie {
246
- width: 30px;
247
- height: 30px;
248
- position: relative;
249
- display: flex;
250
- align-items: center;
251
- justify-content: center;
252
- }
253
-
254
- .pie:before {
255
- content: '';
256
- position: absolute;
257
- border-radius: 50%;
258
- inset: 0;
259
- transition: all 0.2s ease-in-out;
260
- background: conic-gradient(var(--bgl-primary) calc(var(--p) * 1%), #0000 0);
261
- -webkit-mask: radial-gradient(
262
- farthest-side,
263
- #0000 calc(99% - var(--b)),
264
- #000 calc(100% - var(--b))
265
- );
266
- mask: radial-gradient(
267
- farthest-side,
268
- #0000 calc(99% - var(--b)),
269
- #000 calc(100% - var(--b))
270
- );
271
- }
272
-
273
- .pie .success {
274
- transform: scale(0);
275
- opacity: 0;
276
- transition: all 0.3s ease-in-out;
277
- }
278
-
279
- .pie .progress {
280
- position: absolute;
281
- font-size: 10px;
282
- }
283
-
284
- .pie.complete .progress {
285
- display: none;
286
- }
287
-
288
- .pie.complete .success {
289
- transform: scale(1.3);
290
- opacity: 1;
291
- }
292
-
293
- .pie.complete:before {
294
- background: conic-gradient(var(--bgl-green) calc(var(--p) * 1%), #0000 0);
295
- }
296
-
297
- .pie.complete {
298
- color: var(--bgl-green);
299
- }
300
- </style>