@zipify/wysiwyg 2.0.0-1 → 2.0.0-11

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 (97) hide show
  1. package/config/build/cli.config.js +8 -2
  2. package/dist/cli.js +3 -3
  3. package/dist/wysiwyg.css +41 -31
  4. package/dist/wysiwyg.mjs +2015 -1359
  5. package/example/ExampleApp.vue +10 -1
  6. package/lib/Wysiwyg.vue +3 -2
  7. package/lib/__tests__/utils/buildTestExtensions.js +2 -1
  8. package/lib/assets/icons/indicator.svg +4 -0
  9. package/lib/cli/commands/Command.js +39 -0
  10. package/lib/cli/commands/ToJsonCommand.js +55 -0
  11. package/lib/cli/commands/VersionCommand.js +11 -0
  12. package/lib/cli/commands/index.js +2 -0
  13. package/lib/cli/index.js +1 -0
  14. package/lib/components/base/Button.vue +6 -0
  15. package/lib/components/base/dropdown/Dropdown.vue +7 -1
  16. package/lib/components/base/dropdown/DropdownActivator.vue +25 -4
  17. package/lib/components/base/dropdown/__tests__/DropdownActivator.test.js +23 -1
  18. package/lib/components/toolbar/controls/AlignmentControl.vue +12 -1
  19. package/lib/components/toolbar/controls/FontColorControl.vue +14 -0
  20. package/lib/components/toolbar/controls/FontFamilyControl.vue +4 -0
  21. package/lib/components/toolbar/controls/FontSizeControl.vue +6 -1
  22. package/lib/components/toolbar/controls/FontWeightControl.vue +12 -0
  23. package/lib/components/toolbar/controls/ItalicControl.vue +14 -0
  24. package/lib/components/toolbar/controls/LineHeightControl.vue +15 -0
  25. package/lib/components/toolbar/controls/UnderlineControl.vue +13 -0
  26. package/lib/components/toolbar/controls/__tests__/AlignmentControl.test.js +72 -5
  27. package/lib/components/toolbar/controls/__tests__/FontColorControl.test.js +22 -1
  28. package/lib/components/toolbar/controls/__tests__/FontFamilyControl.test.js +1 -0
  29. package/lib/components/toolbar/controls/__tests__/FontSizeControl.test.js +1 -0
  30. package/lib/components/toolbar/controls/__tests__/FontWeightControl.test.js +1 -0
  31. package/lib/components/toolbar/controls/__tests__/ItalicControl.test.js +23 -1
  32. package/lib/components/toolbar/controls/__tests__/LineHeightControl.test.js +23 -1
  33. package/lib/components/toolbar/controls/__tests__/StylePresetControl.test.js +4 -4
  34. package/lib/components/toolbar/controls/__tests__/UnderlineControl.test.js +25 -1
  35. package/lib/composables/__tests__/useEditor.test.js +1 -1
  36. package/lib/composables/useEditor.js +9 -8
  37. package/lib/directives/__tests__/tooltip.test.js +22 -4
  38. package/lib/directives/tooltip.js +4 -1
  39. package/lib/entry-cli.js +7 -20
  40. package/lib/entry-lib.js +1 -1
  41. package/lib/enums/MarkGroups.js +4 -0
  42. package/lib/enums/TextSettings.js +1 -1
  43. package/lib/enums/index.js +1 -0
  44. package/lib/extensions/BackgroundColor.js +0 -1
  45. package/lib/extensions/FontColor.js +2 -2
  46. package/lib/extensions/FontFamily.js +3 -3
  47. package/lib/extensions/FontSize.js +2 -2
  48. package/lib/extensions/FontStyle.js +2 -2
  49. package/lib/extensions/FontWeight.js +2 -2
  50. package/lib/extensions/StylePreset.js +9 -2
  51. package/lib/extensions/Superscript.js +5 -2
  52. package/lib/extensions/TextDecoration.js +7 -0
  53. package/lib/extensions/__tests__/Alignment.test.js +2 -2
  54. package/lib/extensions/__tests__/BackgroundColor.test.js +4 -3
  55. package/lib/extensions/__tests__/FontColor.test.js +4 -3
  56. package/lib/extensions/__tests__/FontFamily.test.js +6 -6
  57. package/lib/extensions/__tests__/FontSize.test.js +9 -8
  58. package/lib/extensions/__tests__/FontStyle.test.js +6 -5
  59. package/lib/extensions/__tests__/LineHeight.test.js +2 -1
  60. package/lib/extensions/__tests__/StylePreset.test.js +51 -0
  61. package/lib/extensions/__tests__/Superscript.test.js +102 -0
  62. package/lib/extensions/__tests__/TextDecoration.test.js +20 -0
  63. package/lib/extensions/__tests__/__snapshots__/BackgroundColor.test.js.snap +25 -25
  64. package/lib/extensions/__tests__/__snapshots__/Superscript.test.js.snap +107 -0
  65. package/lib/extensions/core/Document.js +2 -1
  66. package/lib/extensions/core/Heading.js +2 -1
  67. package/lib/extensions/core/NodeProcessor.js +42 -21
  68. package/lib/extensions/core/Paragraph.js +2 -1
  69. package/lib/extensions/core/__tests__/NodeProcessor.test.js +309 -11
  70. package/lib/extensions/core/__tests__/TextProcessor.test.js +1 -1
  71. package/lib/extensions/core/__tests__/__snapshots__/NodeProcessor.test.js.snap +249 -0
  72. package/lib/extensions/core/steps/AddNodeMarkStep.js +6 -0
  73. package/lib/extensions/core/steps/AttrStep.js +6 -0
  74. package/lib/extensions/core/steps/RemoveNodeMarkStep.js +6 -0
  75. package/lib/extensions/list/List.js +70 -9
  76. package/lib/extensions/list/ListItem.js +27 -5
  77. package/lib/extensions/list/__tests__/List.test.js +26 -17
  78. package/lib/extensions/list/__tests__/__snapshots__/List.test.js.snap +36 -36
  79. package/lib/services/NodeFactory.js +69 -3
  80. package/lib/services/__tests__/NodeFactory.test.js +124 -0
  81. package/lib/services/__tests__/__snapshots__/NodeFactory.test.js.snap +326 -0
  82. package/lib/services/normalizer/HtmlNormalizer.js +54 -2
  83. package/lib/services/normalizer/JsonNormalizer.js +6 -5
  84. package/lib/services/normalizer/__tests__/HtmlNormalizer.test.js +14 -0
  85. package/lib/services/normalizer/__tests__/JsonNormalizer.test.js +20 -3
  86. package/lib/services/normalizer/__tests__/__snapshots__/JsonNormalizer.test.js.snap +37 -0
  87. package/lib/utils/__tests__/findMarkByType.test.js +17 -0
  88. package/lib/utils/__tests__/isMarkAppliedToParent.test.js +53 -0
  89. package/lib/utils/__tests__/isNodeFullySelected.test.js +44 -0
  90. package/lib/utils/__tests__/resolveTextPosition.test.js +39 -0
  91. package/lib/utils/copyMark.js +5 -0
  92. package/lib/utils/index.js +1 -1
  93. package/lib/utils/isMarkAppliedToParent.js +1 -1
  94. package/lib/utils/isNodeFullySelected.js +4 -7
  95. package/lib/utils/resolveTextPosition.js +4 -6
  96. package/package.json +37 -27
  97. package/lib/utils/resolveNodePosition.js +0 -6
package/dist/wysiwyg.css CHANGED
@@ -23,7 +23,7 @@
23
23
  column-gap: var(--zw-offset-xxs);
24
24
  }
25
25
 
26
- .zw-button[data-v-562f4e4a] {
26
+ .zw-button[data-v-1ea5f7a2] {
27
27
  display: inline-flex;
28
28
  align-items: center;
29
29
  vertical-align: middle;
@@ -43,21 +43,21 @@
43
43
  transition: 0.1s opacity ease-out;
44
44
  will-change: opacity;
45
45
  }
46
- .zw-button[data-v-562f4e4a]::-moz-focus-inner {
46
+ .zw-button[data-v-1ea5f7a2]::-moz-focus-inner {
47
47
  border: 0 !important;
48
48
  }
49
- .zw-button[data-v-562f4e4a]:hover,
50
- .zw-button[data-v-562f4e4a]:focus {
49
+ .zw-button[data-v-1ea5f7a2]:hover,
50
+ .zw-button[data-v-1ea5f7a2]:focus {
51
51
  text-decoration: none;
52
52
  outline: none;
53
53
  }
54
- .zw-button[data-v-562f4e4a]:disabled {
54
+ .zw-button[data-v-1ea5f7a2]:disabled {
55
55
  user-select: none;
56
56
  box-shadow: none;
57
57
  cursor: not-allowed;
58
58
  opacity: 0.35;
59
59
  }
60
- .zw-button--toolbar[data-v-562f4e4a] {
60
+ .zw-button--toolbar[data-v-1ea5f7a2] {
61
61
  border-radius: 1px;
62
62
  min-height: 28px;
63
63
  font-weight: var(--zw-font-weight-semibold);
@@ -67,32 +67,37 @@
67
67
  transition-property: background-color, color, opacity;
68
68
  will-change: background-color, color, opacity;
69
69
  }
70
- .zw-button--primary[data-v-562f4e4a] {
70
+ .zw-button--primary[data-v-1ea5f7a2] {
71
71
  background-color: rgb(var(--zw-color-green));
72
72
  color: rgb(var(--zw-color-white));
73
73
  padding: var(--zw-offset-xxs) var(--zw-offset-sm);
74
74
  line-height: var(--zw-line-height-md);
75
75
  }
76
- .zw-button--primary[data-v-562f4e4a],
77
- .zw-button--secondary[data-v-562f4e4a] {
76
+ .zw-button--primary[data-v-1ea5f7a2],
77
+ .zw-button--secondary[data-v-1ea5f7a2] {
78
78
  color: rgb(var(--zw-color-white));
79
79
  padding: var(--zw-offset-xxs) var(--zw-offset-sm);
80
80
  font-weight: 600;
81
81
  font-size: var(--zw-font-size-xs);
82
82
  }
83
- .zw-button--primary[data-v-562f4e4a]:not(:disabled):hover,
84
- .zw-button--secondary[data-v-562f4e4a]:not(:disabled):hover {
83
+ .zw-button--primary[data-v-1ea5f7a2]:not(:disabled):hover,
84
+ .zw-button--secondary[data-v-1ea5f7a2]:not(:disabled):hover {
85
85
  opacity: 0.9;
86
86
  }
87
- .zw-button--toolbar[data-v-562f4e4a]:not(.zw-button--icon) {
87
+ .zw-button--toolbar[data-v-1ea5f7a2]:not(.zw-button--icon) {
88
88
  padding: var(--zw-offset-xxs) var(--zw-offset-xs);
89
89
  }
90
- .zw-button--toolbar[data-v-562f4e4a]:not(:disabled):hover,
91
- .zw-button--toolbar[data-v-562f4e4a]:not(:disabled):focus,
92
- .zw-button--toolbar.zw-button--active[data-v-562f4e4a]:not(:disabled) {
90
+ .zw-button--toolbar[data-v-1ea5f7a2]:not(:disabled):hover,
91
+ .zw-button--toolbar[data-v-1ea5f7a2]:not(:disabled):focus,
92
+ .zw-button--toolbar.zw-button--active[data-v-1ea5f7a2]:not(:disabled) {
93
93
  color: rgb(var(--zw-color-white));
94
94
  background-color: rgb(var(--zw-color-n5));
95
95
  }
96
+ .zw-button__customized-indicator[data-v-1ea5f7a2] {
97
+ position: absolute;
98
+ top: 0;
99
+ right: 2px;
100
+ }
96
101
 
97
102
  .zw-button-toggle[data-v-a02f12aa] {
98
103
  display: flex;
@@ -455,23 +460,24 @@
455
460
  font-size: var(--zw-font-size-xs);
456
461
  }
457
462
 
458
- .zw-dropdown__activator[data-v-021ac370] {
463
+ .zw-dropdown__activator[data-v-0f1c87fd] {
459
464
  width: 100%;
460
465
  }
461
- .zw-dropdown__activator-title[data-v-021ac370] {
462
- margin-right: var(--zw-offset-xs);
463
- }
464
- .zw-dropdown__activator-arrow[data-v-021ac370] {
466
+ .zw-dropdown__activator-arrow[data-v-0f1c87fd] {
465
467
  margin-left: auto;
466
468
  }
467
- .zw-dropdown__activator--active .zw-dropdown__activator-arrow[data-v-021ac370] {
469
+ .zw-dropdown__activator--active .zw-dropdown__activator-arrow[data-v-0f1c87fd] {
468
470
  transform: rotateX(180deg);
469
471
  }
470
- .zw-dropdown__activator--gray[data-v-021ac370] {
472
+ .zw-dropdown__activator--gray[data-v-0f1c87fd] {
471
473
  background-color: rgb(var(--zw-color-n20));
472
474
  font-size: var(--zw-font-size-xxs);
473
475
  color: rgb(var(--zw-color-white));
474
476
  }
477
+ .zw-dropdown__customized-indicator[data-v-0f1c87fd] {
478
+ position: relative;
479
+ top: calc(0px - var(--zw-offset-xs));
480
+ }
475
481
 
476
482
  .zw-dropdown__option[data-v-1355d08c] {
477
483
  width: 100%;
@@ -519,7 +525,7 @@
519
525
  padding-bottom: var(--zw-offset-xs);
520
526
  }
521
527
 
522
- .zw-dropdown[data-v-885109ea] {
528
+ .zw-dropdown[data-v-29e6a104] {
523
529
  position: relative;
524
530
  font-size: var(--zw-font-size-xs);
525
531
  line-height: var(--zw-line-height-xxs);
@@ -541,17 +547,21 @@
541
547
  color: rgb(var(--zw-color-white));
542
548
  }
543
549
 
544
- .zw-font-family-control[data-v-07a47462] {
550
+ .zw-font-family-control[data-v-5f8e49dc] {
545
551
  width: 96px;
546
552
  }
547
- .zw-font-family-control__option[data-v-07a47462] {
553
+ .zw-font-family-control__option[data-v-5f8e49dc] {
548
554
  font-weight: 400;
549
555
  font-family: var(--zw-font-family-option);
550
556
  width: 150px;
551
557
  }
552
558
 
553
- .zw-font-size-control[data-v-71dd7ffc] {
554
- width: 64px;
559
+ .zw-font-weight-control[data-v-00378d67] {
560
+ width: 60px;
561
+ }
562
+
563
+ .zw-font-size-control[data-v-13bfe2fe] {
564
+ width: 72px;
555
565
  }
556
566
 
557
567
  .zw-alignment-control__modal[data-v-cef30e1a] {
@@ -561,17 +571,17 @@
561
571
  flex-direction: column;
562
572
  }
563
573
 
564
- .zw-line-height-control__modal[data-v-9ea28b80] {
574
+ .zw-line-height-control__modal[data-v-2f58c40f] {
565
575
  padding: var(--zw-offset-sm);
566
576
  }
567
- .zw-line-height-control__row[data-v-9ea28b80] {
577
+ .zw-line-height-control__row[data-v-2f58c40f] {
568
578
  display: flex;
569
579
  align-items: center;
570
580
  }
571
- .zw-line-height-control__range[data-v-9ea28b80] {
581
+ .zw-line-height-control__range[data-v-2f58c40f] {
572
582
  width: 156px;
573
583
  }
574
- .zw-line-height-control__field[data-v-9ea28b80] {
584
+ .zw-line-height-control__field[data-v-2f58c40f] {
575
585
  width: 64px;
576
586
  margin-left: var(--zw-offset-sm);
577
587
  }