@bagelink/vue 1.14.13 → 1.15.0

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 (238) hide show
  1. package/dist/components/AddressSearch.vue.d.ts +6 -7
  2. package/dist/components/Alert.vue.d.ts.map +1 -1
  3. package/dist/components/Avatar.vue.d.ts.map +1 -1
  4. package/dist/components/Badge.vue.d.ts.map +1 -1
  5. package/dist/components/Btn.vue.d.ts +1 -1
  6. package/dist/components/Btn.vue.d.ts.map +1 -1
  7. package/dist/components/Card.vue.d.ts.map +1 -1
  8. package/dist/components/Carousel.vue.d.ts +0 -11
  9. package/dist/components/Dropdown.vue.d.ts +0 -2
  10. package/dist/components/Dropdown.vue.d.ts.map +1 -1
  11. package/dist/components/Filter.vue.d.ts +30 -0
  12. package/dist/components/Filter.vue.d.ts.map +1 -0
  13. package/dist/components/FilterQuery.vue.d.ts +8 -3
  14. package/dist/components/Image.vue.d.ts.map +1 -1
  15. package/dist/components/ImportData.vue.d.ts.map +1 -1
  16. package/dist/components/ListItem.vue.d.ts.map +1 -1
  17. package/dist/components/MapEmbed/Index.vue.d.ts.map +1 -1
  18. package/dist/components/Modal.vue.d.ts +0 -1
  19. package/dist/components/Pagination.vue.d.ts.map +1 -1
  20. package/dist/components/Pill.vue.d.ts.map +1 -1
  21. package/dist/components/QueryFilter.vue.d.ts +30 -0
  22. package/dist/components/QueryFilter.vue.d.ts.map +1 -0
  23. package/dist/components/Swiper.vue.d.ts +6 -12
  24. package/dist/components/Swiper.vue.d.ts.map +1 -1
  25. package/dist/components/Toast.vue.d.ts.map +1 -1
  26. package/dist/components/analytics/PieChart.vue.d.ts +2 -2
  27. package/dist/components/calendar/CalendarPopover.vue.d.ts +8 -4
  28. package/dist/components/calendar/CalendarPopover.vue.d.ts.map +1 -1
  29. package/dist/components/calendar/CalendarTypes.d.ts +0 -10
  30. package/dist/components/calendar/Index.vue.d.ts +4 -20
  31. package/dist/components/calendar/views/WeekView.vue.d.ts +1 -9
  32. package/dist/components/dataTable/DataTable.vue.d.ts.map +1 -1
  33. package/dist/components/form/index.d.ts.map +1 -1
  34. package/dist/components/form/inputs/ArrayInput.vue.d.ts +2 -4
  35. package/dist/components/form/inputs/CheckInput.vue.d.ts +1 -2
  36. package/dist/components/form/inputs/Checkbox.vue.d.ts.map +1 -1
  37. package/dist/components/form/inputs/CodeEditor/Index.vue.d.ts +0 -54
  38. package/dist/components/form/inputs/ColorInput.vue.d.ts +1 -3
  39. package/dist/components/form/inputs/DateInput.vue.d.ts +1 -2
  40. package/dist/components/form/inputs/DatePicker.vue.d.ts +0 -1
  41. package/dist/components/form/inputs/EmailInput.vue.d.ts +2 -5
  42. package/dist/components/form/inputs/JSONInput.vue.d.ts +1 -2
  43. package/dist/components/form/inputs/MarkdownEditor.vue.d.ts +2 -7
  44. package/dist/components/form/inputs/NumberInput.vue.d.ts +1 -2
  45. package/dist/components/form/inputs/OTP.vue.d.ts +1 -2
  46. package/dist/components/form/inputs/PasswordInput.vue.d.ts +10 -16
  47. package/dist/components/form/inputs/RadioGroup.vue.d.ts +1 -3
  48. package/dist/components/form/inputs/RangeInput.vue.d.ts +1 -6
  49. package/dist/components/form/inputs/RichText/index.vue.d.ts +1 -2
  50. package/dist/components/form/inputs/RichText/index.vue.d.ts.map +1 -1
  51. package/dist/components/form/inputs/RichText/utils/media.d.ts.map +1 -1
  52. package/dist/components/form/inputs/SelectBtn.vue.d.ts +2 -2
  53. package/dist/components/form/inputs/SelectInput.vue.d.ts +13 -20
  54. package/dist/components/form/inputs/SelectInput.vue.d.ts.map +1 -1
  55. package/dist/components/form/inputs/SignaturePad.vue.d.ts +1 -6
  56. package/dist/components/form/inputs/TableField.vue.d.ts +1 -2
  57. package/dist/components/form/inputs/TelInput.vue.d.ts +1 -2
  58. package/dist/components/form/inputs/TextInput.vue.d.ts +2 -3
  59. package/dist/components/form/inputs/ToggleInput.vue.d.ts +1 -2
  60. package/dist/components/form/inputs/Upload/UploadInput.vue.d.ts +6 -27
  61. package/dist/components/form/inputs/Upload/upload.d.ts +1 -1
  62. package/dist/components/form/inputs/index.d.ts +0 -1
  63. package/dist/components/index.d.ts +1 -3
  64. package/dist/components/index.d.ts.map +1 -1
  65. package/dist/components/layout/AppContent.vue.d.ts +1 -1
  66. package/dist/components/layout/AppContent.vue.d.ts.map +1 -1
  67. package/dist/components/layout/AppLayout.vue.d.ts +0 -2
  68. package/dist/components/layout/AppLayout.vue.d.ts.map +1 -1
  69. package/dist/components/layout/AppSidebar.vue.d.ts +1 -5
  70. package/dist/components/layout/AppSidebar.vue.d.ts.map +1 -1
  71. package/dist/components/layout/Panel.vue.d.ts.map +1 -1
  72. package/dist/components/layout/Resizable.vue.d.ts.map +1 -1
  73. package/dist/components/layout/Skeleton.vue.d.ts.map +1 -1
  74. package/dist/components/layout/TabsNav.vue.d.ts +1 -12
  75. package/dist/components/layout/TabsNav.vue.d.ts.map +1 -1
  76. package/dist/components/layout/appLayoutContext.d.ts +24 -0
  77. package/dist/components/layout/appLayoutContext.d.ts.map +1 -0
  78. package/dist/components/layout/index.d.ts.map +1 -1
  79. package/dist/components/lightbox/Lightbox.vue.d.ts.map +1 -1
  80. package/dist/composables/index.d.ts.map +1 -1
  81. package/dist/composables/useDevice.d.ts.map +1 -1
  82. package/dist/composables/useEscapeKey.d.ts +12 -0
  83. package/dist/composables/useEscapeKey.d.ts.map +1 -0
  84. package/dist/composables/useSchemaField.d.ts.map +1 -1
  85. package/dist/composables/useTheme.d.ts.map +1 -1
  86. package/dist/dialog/Dialog.vue.d.ts.map +1 -1
  87. package/dist/dialog/DialogConfirm.vue.d.ts.map +1 -1
  88. package/dist/form-flow/FormFlow.vue.d.ts.map +1 -1
  89. package/dist/form-flow/MultiStepForm.vue.d.ts +1 -6
  90. package/dist/form-flow/form-flow.d.ts +1 -24
  91. package/dist/form-flow/form-flow.d.ts.map +1 -1
  92. package/dist/i18n/index.d.ts +0 -838
  93. package/dist/index.cjs +245 -222
  94. package/dist/index.d.ts +0 -2
  95. package/dist/index.d.ts.map +1 -1
  96. package/dist/index.mjs +42201 -51162
  97. package/dist/plugins/bagel.d.ts.map +1 -1
  98. package/dist/style.css +1 -2
  99. package/dist/types/BagelForm.d.ts +1 -10
  100. package/dist/types/BagelForm.d.ts.map +1 -1
  101. package/dist/types/BtnOptions.d.ts.map +1 -1
  102. package/dist/types/NavLink.d.ts +1 -2
  103. package/dist/types/TableSchema.d.ts.map +1 -1
  104. package/dist/types/index.d.ts +1 -2
  105. package/dist/types/index.d.ts.map +1 -1
  106. package/dist/utils/BagelFormUtils.d.ts +0 -1
  107. package/dist/utils/calendar/dateUtils.d.ts +2 -2
  108. package/dist/utils/calendar/dateUtils.d.ts.map +1 -1
  109. package/dist/utils/constants.d.ts.map +1 -1
  110. package/dist/utils/date.d.ts +116 -0
  111. package/dist/utils/date.d.ts.map +1 -0
  112. package/dist/utils/fetch.d.ts +29 -0
  113. package/dist/utils/fetch.d.ts.map +1 -0
  114. package/dist/utils/index.d.ts +1 -1
  115. package/dist/utils/index.d.ts.map +1 -1
  116. package/dist/utils/string.d.ts +7 -0
  117. package/dist/utils/string.d.ts.map +1 -0
  118. package/dist/utils/useSearch.d.ts +1 -1
  119. package/package.json +3 -10
  120. package/src/components/AccordionItem.vue +5 -5
  121. package/src/components/Alert.vue +37 -16
  122. package/src/components/Avatar.vue +2 -1
  123. package/src/components/Badge.vue +145 -22
  124. package/src/components/BglVideo.vue +4 -4
  125. package/src/components/Btn.vue +81 -69
  126. package/src/components/Card.vue +7 -6
  127. package/src/components/Dropdown.vue +7 -14
  128. package/src/components/FieldSetVue.vue +2 -2
  129. package/src/components/FilterQuery.vue +3 -3
  130. package/src/components/Image.vue +5 -3
  131. package/src/components/JSONSchema.vue +4 -4
  132. package/src/components/JsonBuilder.vue +3 -3
  133. package/src/components/ListItem.vue +2 -4
  134. package/src/components/MapEmbed/Index.vue +18 -17
  135. package/src/components/NavBar.vue +2 -2
  136. package/src/components/Spreadsheet/Index.vue +4 -4
  137. package/src/components/Spreadsheet/SpreadsheetTable.vue +10 -10
  138. package/src/components/Swiper.vue +3 -1
  139. package/src/components/Toast.vue +57 -36
  140. package/src/components/calendar/CalendarPopover.vue +1 -1
  141. package/src/components/calendar/Index.vue +5 -5
  142. package/src/components/calendar/views/AgendaView.vue +2 -2
  143. package/src/components/calendar/views/DayView.vue +1 -1
  144. package/src/components/calendar/views/MonthView.vue +8 -8
  145. package/src/components/dataTable/DataTable.vue +68 -10
  146. package/src/components/form/index.ts +0 -4
  147. package/src/components/form/inputs/ArrayInput.vue +1 -1
  148. package/src/components/form/inputs/CheckInput.vue +6 -6
  149. package/src/components/form/inputs/Checkbox.vue +5 -4
  150. package/src/components/form/inputs/CodeEditor/Index.vue +1 -1
  151. package/src/components/form/inputs/ColorInput.vue +5 -5
  152. package/src/components/form/inputs/DatePicker.vue +3 -3
  153. package/src/components/form/inputs/EmailInput.vue +15 -15
  154. package/src/components/form/inputs/NumberInput.vue +11 -11
  155. package/src/components/form/inputs/OTP.vue +4 -4
  156. package/src/components/form/inputs/PasswordInput.vue +3 -3
  157. package/src/components/form/inputs/RadioGroup.vue +1 -1
  158. package/src/components/form/inputs/RichText/editor.css +4 -4
  159. package/src/components/form/inputs/RichText/index.vue +39 -39
  160. package/src/components/form/inputs/RichText/utils/media.ts +1 -92
  161. package/src/components/form/inputs/RichText/utils/table.ts +4 -4
  162. package/src/components/form/inputs/SelectBtn.vue +1 -1
  163. package/src/components/form/inputs/SelectInput.vue +16 -16
  164. package/src/components/form/inputs/SignaturePad.vue +6 -6
  165. package/src/components/form/inputs/TableField.vue +7 -7
  166. package/src/components/form/inputs/TelInput.vue +12 -12
  167. package/src/components/form/inputs/TextInput.vue +11 -11
  168. package/src/components/form/inputs/ToggleInput.vue +11 -11
  169. package/src/components/form/inputs/Upload/upload.css +16 -16
  170. package/src/components/index.ts +2 -9
  171. package/src/components/layout/AppContent.vue +5 -19
  172. package/src/components/layout/AppLayout.vue +47 -18
  173. package/src/components/layout/AppSidebar.vue +19 -36
  174. package/src/components/layout/BottomMenu.vue +1 -1
  175. package/src/components/layout/Resizable.vue +5 -2
  176. package/src/components/layout/Skeleton.vue +5 -4
  177. package/src/components/layout/TabsNav.vue +23 -23
  178. package/src/components/layout/appLayoutContext.ts +44 -0
  179. package/src/components/layout/index.ts +2 -0
  180. package/src/components/lightbox/Lightbox.vue +3 -9
  181. package/src/composables/index.ts +1 -0
  182. package/src/composables/useDevice.ts +2 -1
  183. package/src/composables/useEscapeKey.ts +56 -0
  184. package/src/composables/useSchemaField.ts +2 -17
  185. package/src/composables/useTheme.ts +23 -19
  186. package/src/form-flow/FormFlow.vue +2 -0
  187. package/src/form-flow/form-flow.ts +7 -0
  188. package/src/index.ts +0 -3
  189. package/src/plugins/bagel.ts +0 -15
  190. package/src/styles/app-layout.css +231 -0
  191. package/src/styles/appearance.css +179 -21
  192. package/src/styles/bagel.css +103 -97
  193. package/src/styles/buttons.css +8 -8
  194. package/src/styles/colors.css +0 -103
  195. package/src/styles/dark.css +25 -26
  196. package/src/styles/input-variants.css +11 -11
  197. package/src/styles/inputs.css +44 -61
  198. package/src/styles/layout.css +445 -1258
  199. package/src/styles/loginCard.css +1 -1
  200. package/src/styles/mobilLayout.css +153 -28
  201. package/src/styles/text.css +500 -1508
  202. package/src/styles/theme.css +199 -435
  203. package/src/styles/transitions.css +4 -4
  204. package/src/types/BagelForm.ts +46 -151
  205. package/src/types/BtnOptions.ts +5 -3
  206. package/src/types/TableSchema.ts +1 -0
  207. package/src/types/index.ts +0 -5
  208. package/src/utils/calendar/dateUtils.ts +2 -3
  209. package/src/utils/constants.ts +7 -0
  210. package/src/utils/date.ts +482 -0
  211. package/src/utils/fetch.ts +128 -0
  212. package/src/utils/index.ts +54 -3
  213. package/src/utils/sizeParsing.ts +5 -5
  214. package/src/utils/string.ts +56 -0
  215. package/vite.config.ts +5 -1
  216. package/bin/generateFormSchema.ts +0 -1035
  217. package/bin/utils.ts +0 -223
  218. package/src/components/Carousel.vue +0 -724
  219. package/src/components/ImportData.vue +0 -1749
  220. package/src/components/Modal.vue +0 -184
  221. package/src/components/ModalConfirm.vue +0 -42
  222. package/src/components/ModalForm.vue +0 -102
  223. package/src/components/Pill.vue +0 -149
  224. package/src/components/Slider.vue +0 -1446
  225. package/src/components/Title.vue +0 -23
  226. package/src/components/ToolBar.vue +0 -9
  227. package/src/components/form/BagelForm.vue +0 -219
  228. package/src/components/form/BglFieldSet.vue +0 -14
  229. package/src/components/form/BglMultiStepForm.vue +0 -469
  230. package/src/components/form/FieldArray.vue +0 -422
  231. package/src/components/form/useBagelFormState.ts +0 -76
  232. package/src/composables/useFormField.ts +0 -38
  233. package/src/dialog/DialogOLD.vue +0 -358
  234. package/src/plugins/modalTypes.ts +0 -61
  235. package/src/plugins/useModal.ts +0 -225
  236. package/src/styles/modal.css +0 -120
  237. package/src/styles/pillColors.css +0 -0
  238. package/src/utils/BagelFormUtils.ts +0 -684
@@ -1,7 +1,7 @@
1
1
  <!-- eslint-disable vue/multi-word-component-names -->
2
2
  <script setup lang="ts">
3
3
  import type { ToolbarConfig } from './richTextTypes'
4
- import { CodeEditor, copyText, Btn, Modal, BglVideo, Icon, Card, ColorInput, pathKeyToURL } from '@bagelink/vue'
4
+ import { CodeEditor, copyText, Btn, Dialog, BglVideo, Icon, Card, ColorInput, pathKeyToURL } from '@bagelink/vue'
5
5
  import { watch, onUnmounted, onBeforeUnmount, onMounted, ref, computed, useAttrs } from 'vue'
6
6
  import CheckInput from '../CheckInput.vue'
7
7
  import NumberInput from '../NumberInput.vue'
@@ -70,7 +70,7 @@ const currentInputColor = computed(() => {
70
70
 
71
71
  if (typeof document !== 'undefined') {
72
72
  const computedStyle = getComputedStyle(document.documentElement)
73
- const color = computedStyle.getPropertyValue('--input-color').trim()
73
+ const color = computedStyle.getPropertyValue('--bgl-input-color').trim()
74
74
  return color || '#000'
75
75
  }
76
76
  return '#000'
@@ -2693,7 +2693,7 @@ async function initEditor() {
2693
2693
  const editorStylesContent = `
2694
2694
  ${fontFaceRules}
2695
2695
  :root {
2696
- --input-color: ${currentInputColor.value || '#000'};
2696
+ --bgl-input-color: ${currentInputColor.value || '#000'};
2697
2697
  }
2698
2698
  /* Scrollbar styles */
2699
2699
  ::-webkit-scrollbar {
@@ -3131,7 +3131,7 @@ function updateIframeColors() {
3131
3131
 
3132
3132
  const css = `
3133
3133
  :root {
3134
- --input-color: ${currentInputColor.value || '#000'};
3134
+ --bgl-input-color: ${currentInputColor.value || '#000'};
3135
3135
  --richtext-font-size: ${fontSize};
3136
3136
  }
3137
3137
  body {
@@ -3414,7 +3414,7 @@ const imgTransform = computed({
3414
3414
  </div>
3415
3415
  </div>
3416
3416
  <!-- Link Modal -->
3417
- <Modal v-model:visible="showLinkModal" title="Add Link" width="400">
3417
+ <Dialog :open="showLinkModal" title="Add Link" width="s" @update:open="showLinkModal = $event">
3418
3418
  <div class="flex gap-05 align-items-end">
3419
3419
  <TextInput
3420
3420
  v-model="linkForm.url" label="URL" type="url" placeholder="https://example.com"
@@ -3430,7 +3430,7 @@ const imgTransform = computed({
3430
3430
  <Btn value="Cancel" flat thin @click="showLinkModal = false" />
3431
3431
  <Btn value="Add Link" :disabled="!isValidUrl(linkForm.url)" @click="submitLink" />
3432
3432
  </template>
3433
- </Modal>
3433
+ </Dialog>
3434
3434
 
3435
3435
  <!-- Tooltip -->
3436
3436
  <div v-if="showTooltip" class="editor-tooltip" :style="{ left: `${tooltipData.x}px`, top: `${tooltipData.y}px` }">
@@ -3438,9 +3438,9 @@ const imgTransform = computed({
3438
3438
  </div>
3439
3439
 
3440
3440
  <!-- Image Modal -->
3441
- <Modal
3442
- v-model:visible="showImageModal" :title="pendingImageData?.existingImage ? 'Edit Image' : 'Insert Image'"
3443
- width="500"
3441
+ <Dialog
3442
+ :open="showImageModal" :title="pendingImageData?.existingImage ? 'Edit Image' : 'Insert Image'"
3443
+ width="m" @update:open="showImageModal = $event"
3444
3444
  >
3445
3445
  <UploadInput v-model="imgTransform" label="Image" type="image" @keydown.enter="submitImage" />
3446
3446
  <TextInput
@@ -3476,12 +3476,12 @@ const imgTransform = computed({
3476
3476
  />
3477
3477
  </div>
3478
3478
  </template>
3479
- </Modal>
3479
+ </Dialog>
3480
3480
 
3481
3481
  <!-- Embed Modal -->
3482
- <Modal
3483
- v-model:visible="showEmbedModal" :title="pendingEmbedData?.existingEmbed ? 'Edit Embed' : 'Insert Embed'"
3484
- width="500"
3482
+ <Dialog
3483
+ :open="showEmbedModal" :title="pendingEmbedData?.existingEmbed ? 'Edit Embed' : 'Insert Embed'"
3484
+ width="m" @update:open="showEmbedModal = $event"
3485
3485
  >
3486
3486
  <TextInput
3487
3487
  v-model="embedForm.src" label="Embed URL or Code" type="url"
@@ -3505,11 +3505,11 @@ const imgTransform = computed({
3505
3505
  />
3506
3506
  </div>
3507
3507
  </template>
3508
- </Modal>
3508
+ </Dialog>
3509
3509
  <!-- Video Modal -->
3510
- <Modal
3511
- v-model:visible="showVideoModal" :title="pendingVideoData?.existingVideo ? 'Edit Video' : 'Insert Video'"
3512
- width="500"
3510
+ <Dialog
3511
+ :open="showVideoModal" :title="pendingVideoData?.existingVideo ? 'Edit Video' : 'Insert Video'"
3512
+ width="m" @update:open="showVideoModal = $event"
3513
3513
  >
3514
3514
  <div class="grid gap-0">
3515
3515
  <TextInput
@@ -3586,12 +3586,12 @@ const imgTransform = computed({
3586
3586
  />
3587
3587
  </div>
3588
3588
  </template>
3589
- </Modal>
3589
+ </Dialog>
3590
3590
 
3591
3591
  <!-- Table Editor Modal -->
3592
- <Modal
3593
- v-model:visible="showTableEditor" :title="pendingTableData?.existingTable ? 'Edit Table' : 'Insert Table'"
3594
- width="700"
3592
+ <Dialog
3593
+ :open="showTableEditor" :title="pendingTableData?.existingTable ? 'Edit Table' : 'Insert Table'"
3594
+ width="l" @update:open="showTableEditor = $event"
3595
3595
  >
3596
3596
  <template #default>
3597
3597
  <div class="grid grid-wrap-4 m_grid-wrap-2 gap-col-1 table-editor testMe1">
@@ -3610,7 +3610,7 @@ const imgTransform = computed({
3610
3610
  <label class="label">Cell Text Alignment</label>
3611
3611
  <div
3612
3612
  class="flex gap-025 mt-025 radius-1 p-05 w-fit"
3613
- style="height: var(--input-height); background: var(--input-bg);"
3613
+ style="height: var(--bgl-input-height); background: var(--bgl-input-bg);"
3614
3614
  >
3615
3615
  <Btn
3616
3616
  :class="{ activeBtn: tableForm.alignment === 'left' }" flat thin icon="format_align_left"
@@ -3632,7 +3632,7 @@ const imgTransform = computed({
3632
3632
  <label class="label">Text Direction</label>
3633
3633
  <div
3634
3634
  class="flex gap-025 mt-025 radius-1 p-025 w-fit"
3635
- style="height: var(--input-height); background: var(--input-bg);"
3635
+ style="height: var(--bgl-input-height); background: var(--bgl-input-bg);"
3636
3636
  >
3637
3637
  <Btn
3638
3638
  :class="{ activeBtn: tableForm.direction === 'ltr' }" flat thin value="LTR"
@@ -3737,28 +3737,28 @@ const imgTransform = computed({
3737
3737
  @click="submitTable"
3738
3738
  />
3739
3739
  </template>
3740
- </Modal>
3740
+ </Dialog>
3741
3741
  </template>
3742
3742
 
3743
3743
  <style>
3744
3744
  .table-editor .colorInputPickWrap {
3745
- background: var(--input-bg);
3745
+ background: var(--bgl-input-bg);
3746
3746
  }
3747
3747
 
3748
3748
  .rich-text-editor--basic .content-area {
3749
- background: var(--input-bg) !important;
3749
+ background: var(--bgl-input-bg) !important;
3750
3750
  border: none;
3751
3751
  /* padding: 0 0.7rem; */
3752
- border-radius: var(--input-border-radius);
3753
- color: var(--input-color);
3754
- min-width: calc(var(--input-height) * 3);
3752
+ border-radius: var(--bgl-input-border-radius);
3753
+ color: var(--bgl-input-color);
3754
+ min-width: calc(var(--bgl-input-height) * 3);
3755
3755
  width: 100%;
3756
3756
  }
3757
3757
 
3758
3758
  .rich-text-editor--basic .content-area:hover {
3759
3759
  outline-color: rgba(0, 0, 0, 0.05);
3760
3760
  box-shadow: inset 0 0 8px #00000018;
3761
- outline-color: var(--input-bg);
3761
+ outline-color: var(--bgl-input-bg);
3762
3762
  }
3763
3763
 
3764
3764
  .content-area p,
@@ -3781,8 +3781,8 @@ const imgTransform = computed({
3781
3781
  }
3782
3782
 
3783
3783
  .rich-text-editor {
3784
- background: var(--input-bg);
3785
- border: 1px solid var(--border-color);
3784
+ background: var(--bgl-input-bg);
3785
+ border: 1px solid var(--bgl-border-color);
3786
3786
  transition: all 0.3s ease;
3787
3787
  }
3788
3788
 
@@ -3869,7 +3869,7 @@ const imgTransform = computed({
3869
3869
 
3870
3870
  .inline-toolbar-content {
3871
3871
  background: var(--bgl-box-bg, white);
3872
- border: 1px solid var(--border-color, #dddddd);
3872
+ border: 1px solid var(--bgl-border-color, #dddddd);
3873
3873
  border-radius: 8px;
3874
3874
  padding: 0.25rem;
3875
3875
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
@@ -3896,7 +3896,7 @@ const imgTransform = computed({
3896
3896
  }
3897
3897
 
3898
3898
  .inline-toolbar-content .separator {
3899
- color: var(--border-color, #dddddd);
3899
+ color: var(--bgl-border-color, #dddddd);
3900
3900
  margin: 0 0.25rem;
3901
3901
  opacity: 0.5;
3902
3902
  }
@@ -3908,14 +3908,14 @@ const imgTransform = computed({
3908
3908
 
3909
3909
  .context-menu-content {
3910
3910
  background: white;
3911
- border: 1px solid var(--border-color, #dddddd);
3912
- border-radius: var(--btn-border-radius) !important;
3911
+ border: 1px solid var(--bgl-border-color, #dddddd);
3912
+ border-radius: var(--bgl-btn-border-radius) !important;
3913
3913
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
3914
3914
  padding: 0;
3915
3915
  min-width: 140px;
3916
3916
  max-width: 180px;
3917
3917
  overflow: hidden;
3918
- --input-font-size: 12px;
3918
+ --bgl-input-font-size: 12px;
3919
3919
  }
3920
3920
 
3921
3921
  .menu-header {
@@ -3924,7 +3924,7 @@ const imgTransform = computed({
3924
3924
  align-items: center;
3925
3925
  padding: 8px 12px;
3926
3926
  background-color: var(--bg-light, #f8f9fa);
3927
- border-bottom: 1px solid var(--border-color, #dddddd);
3927
+ border-bottom: 1px solid var(--bgl-border-color, #dddddd);
3928
3928
  font-size: 12px;
3929
3929
  font-weight: 500;
3930
3930
  color: var(--text-secondary, #666);
@@ -3969,7 +3969,7 @@ const imgTransform = computed({
3969
3969
 
3970
3970
  .context-menu-separator {
3971
3971
  height: 1px;
3972
- background-color: var(--border-color, #dddddd);
3972
+ background-color: var(--bgl-border-color, #dddddd);
3973
3973
  margin: 4px 0;
3974
3974
  }
3975
3975
 
@@ -1,57 +1,6 @@
1
- import type { ModalApi } from '../../../../../plugins/useModal'
2
1
  import type { EditorState } from '../richTextTypes'
3
- import { bagelFormUtils as frm } from '../../../../../utils'
4
-
5
- export function insertImage(modal: ModalApi, state: EditorState) {
6
- const { range, doc } = state
7
- if (!range || !doc) { return }
8
-
9
- modal.showModalForm<{
10
- src: string
11
- alt: string
12
- width: number
13
- height: number
14
- figcaption: boolean
15
- }>({
16
- title: 'Upload Image',
17
- schema: [
18
- { id: 'src', $el: 'file', attrs: { bindkey: 'url' } },
19
- { id: 'alt', $el: 'text', label: 'Alt Text' },
20
- frm.frmRow(
21
- frm.numField('width', 'Width', { min: 1 }),
22
- frm.numField('height', 'Height', { min: 1 }),
23
- ),
24
- { id: 'figcaption', $el: 'check', label: 'Show Caption' },
25
- ],
26
- onSubmit: (data: { [key: string]: any }) => {
27
- if (data.src) {
28
- const img = doc.createElement('img')
29
- Object.assign(img, {
30
- src: data.src,
31
- alt: data.alt || '',
32
- width: data.width || undefined,
33
- height: data.height || undefined
34
- })
35
-
36
- const node = data.figcaption
37
- ? (() => {
38
- const figcaption = doc.createElement('figcaption')
39
- figcaption.textContent = data.alt
40
- const figure = doc.createElement('figure')
41
- figure.append(img, figcaption)
42
- return figure
43
- })()
44
- : img
45
-
46
- range.collapse(false)
47
- range.insertNode(node)
48
- state.content = doc.body.innerHTML
49
- }
50
- }
51
- })
52
- }
53
2
 
54
- export function insertLink(modal: ModalApi, state: EditorState) {
3
+ export function insertLink(_openLinkModal: unknown, state: EditorState) {
55
4
  const { doc } = state
56
5
  if (!doc) {
57
6
  console.log('No doc found')
@@ -163,43 +112,3 @@ function selectWordAtCursor(doc: Document, range: Range): boolean {
163
112
 
164
113
  return false
165
114
  }
166
-
167
- export interface InsertImbedModalData {
168
- src: string
169
- width: number
170
- height: number
171
- allowfullscreen: boolean
172
- }
173
-
174
- export function insertEmbed(modal: ModalApi, state: EditorState) {
175
- const { range, doc } = state
176
- if (!range || !doc) { return }
177
-
178
- modal.showModalForm<InsertImbedModalData>({
179
- title: 'Embed iframe',
180
- schema: [
181
- { id: 'src', $el: 'text', label: 'Source URL' },
182
- frm.frmRow(
183
- frm.numField('width', 'Width', { min: 1 }),
184
- frm.numField('height', 'Height', { min: 1 }),
185
- ),
186
- { id: 'allowfullscreen', $el: 'check', label: 'Allow Fullscreen' },
187
- ],
188
- onSubmit: (data: InsertImbedModalData) => {
189
- if (data.src) {
190
- const iframe = doc.createElement('iframe')
191
- Object.assign(iframe, {
192
- src: data.src,
193
- width: data.width || 560,
194
- height: data.height || 315,
195
- allowfullscreen: data.allowfullscreen || false,
196
- frameborder: '0'
197
- })
198
-
199
- range.collapse(false)
200
- range.insertNode(iframe)
201
- state.content = doc.body.innerHTML
202
- }
203
- }
204
- })
205
- }
@@ -14,7 +14,7 @@ export function insertTable(rows: number, cols: number, state: EditorState) {
14
14
  const th = state.doc.createElement('th')
15
15
  th.innerHTML = `Header ${j + 1}`
16
16
  th.style.padding = '8px'
17
- th.style.border = '1px solid var(--border-color, #ddd)'
17
+ th.style.border = '1px solid var(--bgl-border-color, #ddd)'
18
18
  th.style.backgroundColor = 'var(--bgl-gray-light, #f4f4f4)'
19
19
  headerRow.appendChild(th)
20
20
  }
@@ -28,7 +28,7 @@ export function insertTable(rows: number, cols: number, state: EditorState) {
28
28
  const cell = row.insertCell()
29
29
  cell.innerHTML = '&nbsp;'
30
30
  cell.style.padding = '8px'
31
- cell.style.border = '1px solid var(--border-color, #ddd)'
31
+ cell.style.border = '1px solid var(--bgl-border-color, #ddd)'
32
32
  }
33
33
  }
34
34
  table.appendChild(tbody)
@@ -85,7 +85,7 @@ export function splitCell(range: Range, doc: Document) {
85
85
 
86
86
  const newCells = new Array(cell.colSpan - 1).fill(0).map(() => {
87
87
  const newCell = doc.createElement('td')
88
- newCell.style.border = '1px solid var(--border-color)'
88
+ newCell.style.border = '1px solid var(--bgl-border-color)'
89
89
  newCell.style.padding = '8px'
90
90
  newCell.innerHTML = '&nbsp;'
91
91
  return newCell
@@ -171,7 +171,7 @@ export function insertColumn(position: 'before' | 'after', range: Range) {
171
171
  for (let i = 0; i < rows.length; i++) {
172
172
  const newCell = rows[i].insertCell(position === 'after' ? columnIndex + 1 : columnIndex)
173
173
  newCell.innerHTML = '&nbsp;'
174
- newCell.style.border = '1px solid var(--border-color)'
174
+ newCell.style.border = '1px solid var(--bgl-border-color)'
175
175
  newCell.style.padding = '8px'
176
176
  }
177
177
 
@@ -85,6 +85,6 @@ function isSelected(val: string | number) {
85
85
 
86
86
  <style scoped>
87
87
  .SelectBtn {
88
- --btn-height: 30px;
88
+ --bgl-btn-height: 30px;
89
89
  }
90
90
  </style>
@@ -366,7 +366,7 @@ onMounted(() => {
366
366
  grid-template-columns: 1fr;
367
367
  justify-content: space-between;
368
368
  width: 100%;
369
- font-size: var(--input-font-size);
369
+ font-size: var(--bgl-input-font-size);
370
370
  margin-block: 0.15rem;
371
371
  }
372
372
 
@@ -415,22 +415,22 @@ onMounted(() => {
415
415
 
416
416
  <style>
417
417
  .bagel-input label {
418
- font-size: var(--label-font-size);
418
+ font-size: var(--bgl-label-font-size);
419
419
  }
420
420
 
421
421
  .selectinput-btn {
422
422
  display: flex;
423
423
  justify-content: space-between;
424
424
  align-items: center;
425
- height: var(--input-height);
426
- border-radius: var(--input-border-radius);
425
+ height: var(--bgl-input-height);
426
+ border-radius: var(--bgl-input-border-radius);
427
427
  border: none;
428
- background: var(--input-bg);
428
+ background: var(--bgl-input-bg);
429
429
  padding: 0.7rem;
430
- color: var(--input-color);
430
+ color: var(--bgl-input-color);
431
431
  width: 100%;
432
432
  font-family: inherit;
433
- font-size: var(--input-font-size);
433
+ font-size: var(--bgl-input-font-size);
434
434
  }
435
435
 
436
436
  .selectinput-btn p {
@@ -439,12 +439,12 @@ onMounted(() => {
439
439
  text-overflow: ellipsis;
440
440
  }
441
441
 
442
- .selectinput-btn.selectinput-btn--xs { height: calc(var(--input-height) * 0.6); padding: 0 0.4rem; font-size: 0.75em; }
443
- .selectinput-btn.selectinput-btn--s { height: calc(var(--input-height) * 0.75); padding: 0 0.5rem; font-size: 0.875em; }
444
- .selectinput-btn.selectinput-btn--l { height: calc(var(--input-height) * 1.2); padding: 0 1rem; font-size: 1.1em; }
445
- .selectinput-btn.selectinput-btn--xl { height: calc(var(--input-height) * 1.5); padding: 0 1.25rem; font-size: 1.2em; }
442
+ .selectinput-btn.selectinput-btn--xs { height: calc(var(--bgl-input-height) * 0.6); padding: 0 0.4rem; font-size: 0.75em; }
443
+ .selectinput-btn.selectinput-btn--s { height: calc(var(--bgl-input-height) * 0.75); padding: 0 0.5rem; font-size: 0.875em; }
444
+ .selectinput-btn.selectinput-btn--l { height: calc(var(--bgl-input-height) * 1.2); padding: 0 1rem; font-size: 1.1em; }
445
+ .selectinput-btn.selectinput-btn--xl { height: calc(var(--bgl-input-height) * 1.5); padding: 0 1.25rem; font-size: 1.2em; }
446
446
  .selectinput-btn.selectinput-btn--round { border-radius: 999px; }
447
- .selectinput-btn.selectinput-btn--thin { height: calc(var(--input-height) * 0.75); padding: 0 0.5rem; }
447
+ .selectinput-btn.selectinput-btn--thin { height: calc(var(--bgl-input-height) * 0.75); padding: 0 0.5rem; }
448
448
 
449
449
  .selectinput-btn:disabled {
450
450
  color: var(--input-disabled-color);
@@ -457,12 +457,12 @@ onMounted(() => {
457
457
  }
458
458
 
459
459
  .selectinput.has-error .selectinput-btn {
460
- border-color: var(--bgl-red, #dc3545) !important;
461
- outline: 1px solid var(--bgl-red, #dc3545) !important;
460
+ border-color: var(--bgl-red) !important;
461
+ outline: 1px solid var(--bgl-red) !important;
462
462
  }
463
463
 
464
464
  .selectinput.underlined.has-error .selectinput-btn {
465
- border-color: var(--bgl-red, #dc3545) !important;
465
+ border-color: var(--bgl-red) !important;
466
466
  }
467
467
 
468
468
  /* Underlined mode styling */
@@ -476,7 +476,7 @@ onMounted(() => {
476
476
  background: transparent !important;
477
477
  border-radius: 0 !important;
478
478
  border: none !important;
479
- border-bottom: 1.5px solid var(--border-color) !important;
479
+ border-bottom: 1.5px solid var(--bgl-border-color) !important;
480
480
  padding-inline: 0.25rem !important;
481
481
  }
482
482
 
@@ -279,22 +279,22 @@ defineExpose({
279
279
  .bgl_input.signature-pad {
280
280
  background: transparent;
281
281
  border: none;
282
- border-radius: var(--input-border-radius);
282
+ border-radius: var(--bgl-input-border-radius);
283
283
  }
284
284
 
285
285
  .bgl_input.signature-pad .canvas {
286
- background: var(--input-bg);
287
- border-radius: var(--input-border-radius);
286
+ background: var(--bgl-input-bg);
287
+ border-radius: var(--bgl-input-border-radius);
288
288
  }
289
289
 
290
290
  .bgl_input.signature-pad > .label-text {
291
291
  display: block;
292
- font-size: var(--label-font-size);
292
+ font-size: var(--bgl-label-font-size);
293
293
  margin-bottom: 0.25rem;
294
294
  }
295
295
 
296
296
  .bgl_input.signature-pad > .helptext {
297
- font-size: var(--label-font-size);
297
+ font-size: var(--bgl-label-font-size);
298
298
  margin: 0 0 0.25rem 0;
299
299
  line-height: 1.4;
300
300
  opacity: 0.7;
@@ -303,6 +303,6 @@ defineExpose({
303
303
  .bgl_input.signature-pad .canvas[disabled] {
304
304
  background: var(--input-disabled-bg);
305
305
  border: 1px solid var(--bgl-gray);
306
- border-radius: var(--input-border-radius);
306
+ border-radius: var(--bgl-input-border-radius);
307
307
  }
308
308
  </style>
@@ -161,8 +161,8 @@ onMounted(() => {
161
161
  }
162
162
 
163
163
  .table-cell {
164
- border-inline-end: 1px solid var(--border-color);
165
- border-bottom: 1px solid var(--border-color);
164
+ border-inline-end: 1px solid var(--bgl-border-color);
165
+ border-bottom: 1px solid var(--bgl-border-color);
166
166
  }
167
167
 
168
168
  .table-row {
@@ -204,11 +204,11 @@ onMounted(() => {
204
204
  }
205
205
 
206
206
  .header-col {
207
- min-width: calc(var(--input-height) * 3);
207
+ min-width: calc(var(--bgl-input-height) * 3);
208
208
  font-size: 13px;
209
- color: var(--input-color);
209
+ color: var(--bgl-input-color);
210
210
  padding: 10px 0;
211
- border-bottom: 1px solid var(--border-color);
211
+ border-bottom: 1px solid var(--bgl-border-color);
212
212
  }
213
213
 
214
214
  .table-cell,
@@ -253,7 +253,7 @@ onMounted(() => {
253
253
  inset-inline-end: 0;
254
254
  height: 100%;
255
255
  margin-top: -1px;
256
- background: var(--border-color);
256
+ background: var(--bgl-border-color);
257
257
  }
258
258
 
259
259
  .table-action>.bgl_icon-font {
@@ -300,7 +300,7 @@ onMounted(() => {
300
300
  .table-row .bagel-input input:focus-visible,
301
301
  .table-row .bagel-input textarea:focus-visible,
302
302
  .table-row .bagel-input .input:focus-visible {
303
- background: var(--border-color);
303
+ background: var(--bgl-border-color);
304
304
  }
305
305
 
306
306
  .ghost {
@@ -293,12 +293,12 @@ onMounted(initializeCountry)
293
293
  .tel-input {
294
294
  direction: ltr;
295
295
  text-align: left;
296
- background: var(--input-bg);
296
+ background: var(--bgl-input-bg);
297
297
  border: none;
298
298
  padding-inline-start: 0.7rem;
299
- border-radius: var(--input-border-radius);
300
- color: var(--input-color);
301
- min-width: calc(var(--input-height) * 3);
299
+ border-radius: var(--bgl-input-border-radius);
300
+ color: var(--bgl-input-color);
301
+ min-width: calc(var(--bgl-input-height) * 3);
302
302
  width: 100%;
303
303
  display: flex;
304
304
  align-items: center;
@@ -316,7 +316,7 @@ onMounted(initializeCountry)
316
316
 
317
317
  /* frame variant: outline on the tel-input wrapper */
318
318
  .bagel-input.frame .tel-input {
319
- outline: 1.5px solid var(--border-color);
319
+ outline: 1.5px solid var(--bgl-border-color);
320
320
  outline-offset: -1px;
321
321
  transition: outline-color 0.2s ease, box-shadow 0.2s ease;
322
322
  }
@@ -328,7 +328,7 @@ onMounted(initializeCountry)
328
328
 
329
329
  /* bgl-outline variant: outline on the tel-input wrapper */
330
330
  .bagel-input.bgl-outline .tel-input {
331
- outline: 1.5px solid var(--border-color);
331
+ outline: 1.5px solid var(--bgl-border-color);
332
332
  outline-offset: -1px;
333
333
  }
334
334
 
@@ -360,13 +360,13 @@ onMounted(initializeCountry)
360
360
  }
361
361
 
362
362
  .dial-code {
363
- font-size: var(--input-font-size);
364
- color: var(--input-color);
363
+ font-size: var(--bgl-input-font-size);
364
+ color: var(--bgl-input-color);
365
365
  opacity: 0.6;
366
366
  }
367
367
 
368
368
  .tel-country {
369
- font-size: var(--input-font-size);
369
+ font-size: var(--bgl-input-font-size);
370
370
  max-width: 200px;
371
371
  white-space: nowrap;
372
372
  text-overflow: ellipsis;
@@ -399,10 +399,10 @@ onMounted(initializeCountry)
399
399
  }
400
400
 
401
401
  .bagel-input.has-error .tel-input {
402
- border: 1px solid var(--bgl-red, #dc3545) !important;
402
+ border: 1px solid var(--bgl-red) !important;
403
403
  }
404
404
  .bagel-input.has-error .tel-input {
405
- --border-color: var(--bgl-red, #dc3545) !important;
405
+ --bgl-border-color: var(--bgl-red) !important;
406
406
  }
407
407
 
408
408
  @keyframes highlight-country {
@@ -449,7 +449,7 @@ onMounted(initializeCountry)
449
449
  background: transparent !important;
450
450
  border-radius: 0 !important;
451
451
  border: none !important;
452
- border-bottom: 1.5px solid var(--border-color) !important;
452
+ border-bottom: 1.5px solid var(--bgl-border-color) !important;
453
453
  padding-inline: 0.25rem !important;
454
454
  }
455
455
 
@@ -193,7 +193,7 @@ onMounted(async () => {
193
193
  }
194
194
 
195
195
  .bagel-input label {
196
- font-size: var(--label-font-size);
196
+ font-size: var(--bgl-label-font-size);
197
197
  }
198
198
 
199
199
  /* multiline textarea: reset gradient, use full border */
@@ -207,7 +207,7 @@ onMounted(async () => {
207
207
  <style scoped>
208
208
  .bagel-input textarea {
209
209
  min-height: unset;
210
- font-size: var(--input-font-size);
210
+ font-size: var(--bgl-input-font-size);
211
211
  }
212
212
 
213
213
  .bagel-input.text-input textarea {
@@ -241,29 +241,29 @@ onMounted(async () => {
241
241
  }
242
242
 
243
243
  .textInputIconWrap .bgl_icon-font {
244
- color: var(--input-color);
244
+ color: var(--bgl-input-color);
245
245
  position: absolute;
246
- inset-inline-end: calc(var(--input-height) / 3 - 0.25rem);
247
- margin-top: calc(var(--input-height) / 2 + 0.1rem);
246
+ inset-inline-end: calc(var(--bgl-input-height) / 3 - 0.25rem);
247
+ margin-top: calc(var(--bgl-input-height) / 2 + 0.1rem);
248
248
  line-height: 0;
249
249
  }
250
250
 
251
251
  .textInputIconWrap input,
252
252
  .textInputIconWrap textarea {
253
- padding-inline-end: calc(var(--input-height) / 3 + 1.5rem);
253
+ padding-inline-end: calc(var(--bgl-input-height) / 3 + 1.5rem);
254
254
  }
255
255
 
256
256
  .txtInputIconStart .iconStart {
257
- color: var(--input-color);
257
+ color: var(--bgl-input-color);
258
258
  position: absolute;
259
- inset-inline-start: calc(var(--input-height) / 3 - 0.25rem);
260
- margin-top: calc(var(--input-height) / 2);
259
+ inset-inline-start: calc(var(--bgl-input-height) / 3 - 0.25rem);
260
+ margin-top: calc(var(--bgl-input-height) / 2);
261
261
  line-height: 0;
262
262
  }
263
263
 
264
264
  .txtInputIconStart input,
265
265
  .txtInputIconStart textarea {
266
- padding-inline-start: calc(var(--input-height) / 3 + 1.5rem);
266
+ padding-inline-start: calc(var(--bgl-input-height) / 3 + 1.5rem);
267
267
  }
268
268
 
269
269
  .bagel-input.small textarea {
@@ -272,6 +272,6 @@ onMounted(async () => {
272
272
 
273
273
  .bagel-input.has-error input,
274
274
  .bagel-input.has-error textarea {
275
- border-color: var(--bgl-red, #dc3545) !important;
275
+ border-color: var(--bgl-red) !important;
276
276
  }
277
277
  </style>