tiptapify 0.0.11 → 0.0.13

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 (107) hide show
  1. package/README.md +9 -4
  2. package/dist/tiptapify.css +1 -1
  3. package/dist/tiptapify.mjs +47819 -28736
  4. package/dist/tiptapify.umd.js +78 -38
  5. package/index.d.ts +2 -2
  6. package/package.json +49 -45
  7. package/src/components/MenuBubble.vue +8 -8
  8. package/src/components/Tiptapify.vue +4 -5
  9. package/src/components/Toolbar/Group.vue +2 -2
  10. package/src/components/Toolbar/GroupBtn.vue +11 -8
  11. package/src/components/Toolbar/GroupDropdown.vue +3 -17
  12. package/src/components/Toolbar/Index.vue +13 -10
  13. package/src/components/Toolbar/Items.vue +3 -6
  14. package/src/components/Toolbar/Toggle.vue +2 -4
  15. package/src/components/Toolbar/defaultExtensionComponents.ts +34 -13
  16. package/src/components/Toolbar/items.ts +43 -60
  17. package/src/components/UI/BtnIcon.vue +24 -0
  18. package/src/components/UI/{Dialog.vue → TiptapifyDialog.vue} +4 -3
  19. package/src/components/editorExtensions.ts +16 -1
  20. package/src/components/index.ts +8 -2
  21. package/src/composables/Toolbar/Actions/useRedo.ts +23 -0
  22. package/src/composables/Toolbar/Actions/useUndo.ts +23 -0
  23. package/src/composables/Toolbar/Alignment/useAlignmentCenter.ts +24 -0
  24. package/src/composables/Toolbar/Alignment/useAlignmentJustify.ts +24 -0
  25. package/src/composables/Toolbar/Alignment/useAlignmentLeft.ts +24 -0
  26. package/src/composables/Toolbar/Alignment/useAlignmentRight.ts +24 -0
  27. package/src/composables/Toolbar/Format/useBold.ts +24 -0
  28. package/src/composables/Toolbar/Format/useItalic.ts +24 -0
  29. package/src/composables/Toolbar/Format/useStrike.ts +24 -0
  30. package/src/composables/Toolbar/Format/useUnderline.ts +24 -0
  31. package/src/composables/Toolbar/FormatExtra/useBlockquote.ts +24 -0
  32. package/src/composables/Toolbar/FormatExtra/useCode.ts +24 -0
  33. package/src/composables/Toolbar/FormatExtra/useCodeBlock.ts +24 -0
  34. package/src/composables/Toolbar/FormatExtra/useSub.ts +24 -0
  35. package/src/composables/Toolbar/FormatExtra/useSup.ts +24 -0
  36. package/src/composables/Toolbar/List/useBullet.ts +23 -0
  37. package/src/composables/Toolbar/List/useIndent.ts +24 -0
  38. package/src/composables/Toolbar/List/useNumbered.ts +23 -0
  39. package/src/composables/Toolbar/List/useOutdent.ts +24 -0
  40. package/src/composables/Toolbar/List/useTask.ts +23 -0
  41. package/src/composables/Toolbar/Media/useEmoji.ts +20 -0
  42. package/src/composables/Toolbar/Media/useImage.ts +24 -0
  43. package/src/composables/Toolbar/Media/useLink.ts +24 -0
  44. package/src/composables/Toolbar/Media/useTable.ts +188 -0
  45. package/src/composables/Toolbar/Misc/useBreak.ts +21 -0
  46. package/src/composables/Toolbar/Misc/useFormatClear.ts +23 -0
  47. package/src/composables/Toolbar/Misc/useInvisibleCharacters.ts +23 -0
  48. package/src/composables/Toolbar/Misc/useLine.ts +21 -0
  49. package/src/composables/Toolbar/Misc/usePreview.ts +20 -0
  50. package/src/composables/Toolbar/Misc/useSource.ts +21 -0
  51. package/src/composables/Toolbar/Style/useColor.ts +36 -0
  52. package/src/composables/Toolbar/Style/useFontFamily.ts +49 -0
  53. package/src/composables/Toolbar/Style/useFontSize.ts +50 -0
  54. package/src/composables/Toolbar/Style/useHeading.ts +64 -0
  55. package/src/composables/Toolbar/Style/useHighlight.ts +36 -0
  56. package/src/composables/Toolbar/Style/useLineHeight.ts +49 -0
  57. package/src/composables/Toolbar/useActionsItems.ts +5 -31
  58. package/src/composables/Toolbar/useAlignmentItems.ts +9 -59
  59. package/src/composables/Toolbar/useFormatExtraItems.ts +11 -72
  60. package/src/composables/Toolbar/useFormatItems.ts +9 -59
  61. package/src/composables/Toolbar/useListItems.ts +11 -69
  62. package/src/composables/Toolbar/useMediaItems.ts +9 -209
  63. package/src/composables/Toolbar/useMiscItems.ts +13 -58
  64. package/src/composables/Toolbar/useStyleItems.ts +14 -228
  65. package/src/extensions/components/Emoji.vue +109 -0
  66. package/src/extensions/components/ImageDialog.vue +7 -3
  67. package/src/extensions/components/LinkDialog.vue +7 -3
  68. package/src/extensions/components/PreviewDialog.vue +11 -4
  69. package/src/extensions/components/ShowSourceDialog.vue +7 -4
  70. package/src/extensions/components/StyleColor.vue +2 -2
  71. package/src/extensions/components/slashCommands/CommandsList.vue +1 -4
  72. package/src/extensions/emoji/activities.ts +770 -0
  73. package/src/extensions/emoji/animals_and_nature.ts +1330 -0
  74. package/src/extensions/emoji/component.ts +74 -0
  75. package/src/extensions/emoji/flags.ts +2210 -0
  76. package/src/extensions/emoji/food_and_drink.ts +1066 -0
  77. package/src/extensions/emoji/index.ts +63 -0
  78. package/src/extensions/emoji/objects.ts +2514 -0
  79. package/src/extensions/emoji/people_and_body.ts +3986 -0
  80. package/src/extensions/emoji/smileys_and_emotion.ts +1482 -0
  81. package/src/extensions/emoji/symbols.ts +2242 -0
  82. package/src/extensions/emoji/travel_and_places.ts +2138 -0
  83. package/src/extensions/image.ts +2 -1
  84. package/src/extensions/link.ts +2 -1
  85. package/src/extensions/preview.ts +2 -1
  86. package/src/extensions/view-source.ts +2 -1
  87. package/src/i18n/index.ts +1 -0
  88. package/src/i18n/locales/ch.json +14 -1
  89. package/src/i18n/locales/cz.json +14 -1
  90. package/src/i18n/locales/de.json +14 -1
  91. package/src/i18n/locales/en.json +14 -1
  92. package/src/i18n/locales/es.json +14 -1
  93. package/src/i18n/locales/fr.json +14 -1
  94. package/src/i18n/locales/it.json +14 -1
  95. package/src/i18n/locales/la.json +14 -1
  96. package/src/i18n/locales/lt.json +14 -1
  97. package/src/i18n/locales/nl.json +14 -1
  98. package/src/i18n/locales/pl.json +14 -1
  99. package/src/i18n/locales/pt.json +14 -1
  100. package/src/i18n/locales/ru.json +14 -1
  101. package/src/i18n/locales/se.json +14 -1
  102. package/src/i18n/locales/ua.json +14 -1
  103. package/src/index.ts +3 -1
  104. package/src/types/extensionComponents.ts +22 -0
  105. package/src/types/toolbarItems.ts +43 -0
  106. package/src/types/toolbarSections.ts +11 -0
  107. package/src/types/overridable-extensions.ts +0 -6
@@ -5,7 +5,7 @@ import { Editor } from "@tiptap/vue-3";
5
5
  import { useI18n } from 'vue-i18n'
6
6
  import { computed, inject, onMounted, onUnmounted, Ref, ref, watch } from 'vue'
7
7
 
8
- import Dialog from "@tiptapify/components/UI/Dialog.vue"
8
+ import TiptapifyDialog from "@tiptapify/components/UI/TiptapifyDialog.vue"
9
9
 
10
10
  defineProps({
11
11
  variantBtn: { type: String, default() { return 'elevated' }},
@@ -63,6 +63,10 @@ function close() {
63
63
  }
64
64
 
65
65
  const showLink = (event: CustomEvent) => {
66
+ if (event.detail.editorId !== editor.value.instanceId) {
67
+ return
68
+ }
69
+
66
70
  attrs.value.href = event.detail.link?.href ?? ''
67
71
  attrs.value.target = targetAttrs.value.find(item => item.value === event.detail.link?.target) ?? targetAttrs[0]
68
72
  attrs.value.rel = event.detail.link?.rel?.split(' ')
@@ -103,7 +107,7 @@ watch(() => attrs.value.href, () => {
103
107
  </script>
104
108
 
105
109
  <template>
106
- <Dialog ref="dialog" module="link">
110
+ <TiptapifyDialog ref="dialog" module="link">
107
111
  <template #content>
108
112
  <VCardText>
109
113
  <VRow>
@@ -169,5 +173,5 @@ watch(() => attrs.value.href, () => {
169
173
  </VRow>
170
174
  </VCardActions>
171
175
  </template>
172
- </Dialog>
176
+ </TiptapifyDialog>
173
177
  </template>
@@ -1,12 +1,19 @@
1
1
  <script setup lang="ts">
2
- import Dialog from "@tiptapify/components/UI/Dialog.vue";
3
- import { ref, onMounted, onUnmounted } from 'vue'
2
+ import { Editor } from "@tiptap/vue-3";
3
+ import TiptapifyDialog from "@tiptapify/components/UI/TiptapifyDialog.vue";
4
+ import { ref, onMounted, onUnmounted, inject, Ref } from 'vue'
4
5
 
5
6
  const content = ref()
6
7
 
8
+ const editor = inject('tiptapifyEditor') as Ref<Editor>
9
+
7
10
  const dialog = ref(null)
8
11
 
9
12
  const showDialog = (event: CustomEvent) => {
13
+ if (event.detail.editorId !== editor.value.instanceId) {
14
+ return
15
+ }
16
+
10
17
  content.value = event.detail.html
11
18
 
12
19
  dialog.value.open()
@@ -22,13 +29,13 @@ onUnmounted(() => {
22
29
  </script>
23
30
 
24
31
  <template>
25
- <Dialog ref="dialog" module="preview" fullscreen>
32
+ <TiptapifyDialog ref="dialog" module="preview" fullscreen>
26
33
  <template #content>
27
34
  <VCardItem>
28
35
  <div class="tiptap" v-html="content"></div>
29
36
  </VCardItem>
30
37
  </template>
31
- </Dialog>
38
+ </TiptapifyDialog>
32
39
  </template>
33
40
 
34
41
  <style lang="scss">
@@ -1,6 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import { Editor } from "@tiptap/vue-3";
3
- import Dialog from "@tiptapify/components/UI/Dialog.vue";
3
+ import TiptapifyDialog from "@tiptapify/components/UI/TiptapifyDialog.vue";
4
4
  import { ref, onMounted, onUnmounted, watch, inject, Ref } from 'vue'
5
5
  import { useI18n } from "vue-i18n";
6
6
 
@@ -54,6 +54,9 @@ const unformatHtml = (html: string): string => {
54
54
  }
55
55
 
56
56
  const showDialog = (event: CustomEvent) => {
57
+ if (event.detail.editorId !== editor.value.instanceId) {
58
+ return
59
+ }
57
60
  sourceCode.value = event.detail.html
58
61
 
59
62
  dialog.value.open()
@@ -79,7 +82,7 @@ watch(() => formatted.value, () => {
79
82
  </script>
80
83
 
81
84
  <template>
82
- <Dialog ref="dialog" module="source" :max-width="1500">
85
+ <TiptapifyDialog ref="dialog" module="source" :max-width="1500">
83
86
  <template #content>
84
87
  <VCardText>
85
88
  <VContainer fluid class="pt-0 pl-0 pr-0">
@@ -105,7 +108,7 @@ watch(() => formatted.value, () => {
105
108
  <template #actions>
106
109
  <VCardActions>
107
110
  <VSpacer></VSpacer>
108
- <VBtn :variant="variantBtn" @click="dialog = false">
111
+ <VBtn :variant="variantBtn" @click="dialog.close()">
109
112
  {{ t('dialog.close') }}
110
113
  </VBtn>
111
114
  <VBtn :variant="variantBtn" color="primary" @click="saveChanges">
@@ -113,7 +116,7 @@ watch(() => formatted.value, () => {
113
116
  </VBtn>
114
117
  </VCardActions>
115
118
  </template>
116
- </Dialog>
119
+ </TiptapifyDialog>
117
120
  </template>
118
121
 
119
122
  <style scoped lang="scss">
@@ -170,7 +170,7 @@ function isColorActive(color: string): boolean {
170
170
 
171
171
  <VMenu v-model="colorPicker" :close-on-content-click="false">
172
172
  <template #activator="{ props: menuProps }">
173
- <VBtn v-bind="menuProps" variant="flat" block>
173
+ <VBtn v-bind="menuProps" color="default" variant="flat" block>
174
174
  <template #prepend>
175
175
  <div
176
176
  class="tiptapify-style-color-picker"
@@ -198,7 +198,7 @@ function isColorActive(color: string): boolean {
198
198
 
199
199
  <VDivider class="mt-2 mb-2" />
200
200
 
201
- <VBtn @click="unsetColor" block variant="flat">
201
+ <VBtn @click="unsetColor" color="default" block variant="flat">
202
202
  {{ t('style.color.unset') }}
203
203
  </VBtn>
204
204
  </VSheet>
@@ -77,10 +77,7 @@ defineExpose({
77
77
  @click="selectItem(index)"
78
78
  size="small"
79
79
  >
80
- <VIcon v-if="item.icon" :icon="mdi[`mdi${item.icon}`]" size="16" />
81
- <span v-else>
82
- {{ item.title }}
83
- </span>
80
+ <VIcon :icon="`mdiSvg:${mdi[`mdi${item.icon}`]}` || `mdiSvg:${mdi.mdiImageBrokenVariant}`" size="16" />
84
81
  </VBtn>
85
82
  </template>
86
83
  <div class="item" v-else>No result</div>