@zipify/wysiwyg 1.0.0-dev.94 → 1.0.0-dev.97

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/wysiwyg.css CHANGED
@@ -240,7 +240,7 @@
240
240
  --zw-range-thumb-box-shadow: 0 0 0 12px rgba(240, 240, 240, 0.15);
241
241
  }
242
242
 
243
- .zw-number-field[data-v-746d73f1] {
243
+ .zw-number-field[data-v-2e210d91] {
244
244
  --border-color: rgb(var(--zw-color-n60));
245
245
  --text-color: rgb(var(--zw-color-n85));
246
246
  --buttons-color: rgb(var(--zw-color-n70));
@@ -250,16 +250,16 @@
250
250
  align-items: stretch;
251
251
  display: flex;
252
252
  }
253
- .zw-number-field[data-v-746d73f1]:hover {
253
+ .zw-number-field[data-v-2e210d91]:hover {
254
254
  --border-color: rgb(var(--zw-color-n80));
255
255
  --text-color: rgb(var(--zw-color-n85));
256
256
  }
257
- .zw-number-field[data-v-746d73f1]:focus,
258
- .zw-number-field[data-v-746d73f1]:focus-within {
257
+ .zw-number-field[data-v-2e210d91]:focus,
258
+ .zw-number-field[data-v-2e210d91]:focus-within {
259
259
  --border-color: rgb(var(--zw-color-white));
260
260
  --text-color: rgb(var(--zw-color-white));
261
261
  }
262
- .zw-number-field__input[data-v-746d73f1] {
262
+ .zw-number-field__input[data-v-2e210d91] {
263
263
  color: var(--text-color);
264
264
  background-color: rgb(var(--zw-color-n15));
265
265
  border: 0;
@@ -270,60 +270,60 @@
270
270
  font-size: var(--zw-font-size-xs);
271
271
  -moz-appearance: textfield;
272
272
  }
273
- .zw-number-field__buttons[data-v-746d73f1] {
273
+ .zw-number-field__buttons[data-v-2e210d91] {
274
274
  display: none;
275
275
  flex-direction: column;
276
276
  height: 100%;
277
277
  }
278
- .zw-number-field:hover .zw-number-field__buttons[data-v-746d73f1],
279
- .zw-number-field:focus .zw-number-field__buttons[data-v-746d73f1],
280
- .zw-number-field:focus-within .zw-number-field__buttons[data-v-746d73f1] {
278
+ .zw-number-field:hover .zw-number-field__buttons[data-v-2e210d91],
279
+ .zw-number-field:focus .zw-number-field__buttons[data-v-2e210d91],
280
+ .zw-number-field:focus-within .zw-number-field__buttons[data-v-2e210d91] {
281
281
  display: flex;
282
282
  }
283
- .zw-number-field__input[data-v-746d73f1]::placeholder {
283
+ .zw-number-field__input[data-v-2e210d91]::placeholder {
284
284
  color: var(--text-color);
285
285
  }
286
- .zw-number-field__input[data-v-746d73f1]::-webkit-outer-spin-button,
287
- .zw-number-field__input[data-v-746d73f1]::-webkit-inner-spin-button {
286
+ .zw-number-field__input[data-v-2e210d91]::-webkit-outer-spin-button,
287
+ .zw-number-field__input[data-v-2e210d91]::-webkit-inner-spin-button {
288
288
  color: var(--text-color);
289
289
  -webkit-appearance: none;
290
290
  }
291
- .zw-number-field__controls[data-v-746d73f1] {
291
+ .zw-number-field__controls[data-v-2e210d91] {
292
292
  min-width: var(--zw-offset-sm);
293
293
  }
294
- .zw-number-field--disabled[data-v-746d73f1] {
294
+ .zw-number-field--disabled[data-v-2e210d91] {
295
295
  opacity: 0.5;
296
296
  }
297
- .zw-number-field--disabled[data-v-746d73f1],
298
- .zw-number-field--disabled .zw-number-field__input[data-v-746d73f1] {
297
+ .zw-number-field--disabled[data-v-2e210d91],
298
+ .zw-number-field--disabled .zw-number-field__input[data-v-2e210d91] {
299
299
  cursor: not-allowed;
300
300
  }
301
- .zw-number-field__increment-button[data-v-746d73f1],
302
- .zw-number-field__decrement-button[data-v-746d73f1] {
301
+ .zw-number-field__increment-button[data-v-2e210d91],
302
+ .zw-number-field__decrement-button[data-v-2e210d91] {
303
303
  width: 100%;
304
304
  height: 50%;
305
305
  display: flex;
306
306
  align-items: center;
307
307
  justify-content: center;
308
308
  }
309
- .zw-number-field__increment-button[data-v-746d73f1]::after,
310
- .zw-number-field__decrement-button[data-v-746d73f1]::after {
309
+ .zw-number-field__increment-button[data-v-2e210d91]::after,
310
+ .zw-number-field__decrement-button[data-v-2e210d91]::after {
311
311
  content: "";
312
312
  border-left: 3px solid transparent;
313
313
  border-right: 3px solid transparent;
314
314
  }
315
- .zw-number-field__increment-button[data-v-746d73f1]::after {
315
+ .zw-number-field__increment-button[data-v-2e210d91]::after {
316
316
  border-bottom: 3px solid var(--buttons-color);
317
317
  }
318
- .zw-number-field__decrement-button[data-v-746d73f1]::after {
318
+ .zw-number-field__decrement-button[data-v-2e210d91]::after {
319
319
  border-top: 3px solid var(--buttons-color);
320
320
  }
321
- .zw-number-field__increment-button[data-v-746d73f1]:hover,
322
- .zw-number-field__decrement-button[data-v-746d73f1]:hover {
321
+ .zw-number-field__increment-button[data-v-2e210d91]:hover,
322
+ .zw-number-field__decrement-button[data-v-2e210d91]:hover {
323
323
  background-color: rgb(var(--zw-color-n20));
324
324
  --buttons-color: rgb(var(--zw-color-white));
325
325
  }
326
- .zw-number-field__units[data-v-746d73f1] {
326
+ .zw-number-field__units[data-v-2e210d91] {
327
327
  color: rgb(var(--zw-color-n70));
328
328
  font-size: var(--zw-font-size-xs);
329
329
  line-height: var(--zw-line-height-md);
@@ -331,8 +331,8 @@
331
331
  display: inline-block;
332
332
  width: 100%;
333
333
  }
334
- .zw-number-field:hover .zw-number-field__units[data-v-746d73f1],
335
- .zw-number-field:focus .zw-number-field__units[data-v-746d73f1] {
334
+ .zw-number-field:hover .zw-number-field__units[data-v-2e210d91],
335
+ .zw-number-field:focus .zw-number-field__units[data-v-2e210d91] {
336
336
  display: none;
337
337
  }
338
338
 
@@ -561,18 +561,18 @@
561
561
  flex-direction: column;
562
562
  }
563
563
 
564
- .zw-line-height-control__modal[data-v-532367c1] {
564
+ .zw-line-height-control__modal[data-v-9ea28b80] {
565
565
  padding: var(--zw-offset-sm);
566
566
  }
567
- .zw-line-height-control__row[data-v-532367c1] {
567
+ .zw-line-height-control__row[data-v-9ea28b80] {
568
568
  display: flex;
569
569
  align-items: center;
570
570
  }
571
- .zw-line-height-control__range[data-v-532367c1] {
571
+ .zw-line-height-control__range[data-v-9ea28b80] {
572
572
  width: 156px;
573
573
  }
574
- .zw-line-height-control__field[data-v-532367c1] {
575
- width: 52px;
574
+ .zw-line-height-control__field[data-v-9ea28b80] {
575
+ width: 64px;
576
576
  margin-left: var(--zw-offset-sm);
577
577
  }
578
578
 
@@ -851,17 +851,17 @@ to {
851
851
  position: relative;
852
852
  }
853
853
  .zw-margin-bottom--xxs {
854
- margin-bottom: var(--zw-offset-xxs);
854
+ margin-bottom: var(--zw-offset-xxs) !important;
855
855
  }
856
856
  .zw-margin-bottom--xs {
857
- margin-bottom: var(--zw-offset-xs);
857
+ margin-bottom: var(--zw-offset-xs) !important;
858
858
  }
859
859
  .zw-margin-bottom--sm {
860
- margin-bottom: var(--zw-offset-sm);
860
+ margin-bottom: var(--zw-offset-sm) !important;
861
861
  }
862
862
  .zw-margin-bottom--md {
863
- margin-bottom: var(--zw-offset-md);
863
+ margin-bottom: var(--zw-offset-md) !important;
864
864
  }
865
865
  .zw-margin-right--xs {
866
- margin-right: var(--zw-offset-xs);
866
+ margin-right: var(--zw-offset-xs) !important;
867
867
  }
package/dist/wysiwyg.mjs CHANGED
@@ -19256,7 +19256,7 @@ var render$A = function __render__10() {
19256
19256
  var _vm = this;
19257
19257
  var _h = _vm.$createElement;
19258
19258
  var _c = _vm._self._c || _h;
19259
- return _c("div", {
19259
+ return _c("label", {
19260
19260
  staticClass: "zw-number-field",
19261
19261
  "class": _vm.elementClasses
19262
19262
  }, [_c("input", {
@@ -19379,7 +19379,7 @@ var __component__$A = /* @__PURE__ */ normalizeComponent(
19379
19379
  staticRenderFns$A,
19380
19380
  false,
19381
19381
  __vue2_injectStyles$A,
19382
- "746d73f1",
19382
+ "2e210d91",
19383
19383
  null,
19384
19384
  null
19385
19385
  );
@@ -19455,6 +19455,7 @@ const _ContentNormalizer = class {
19455
19455
  }
19456
19456
  _normalizeTextContent() {
19457
19457
  this._dom = this._parser.parseFromString(this._content.replace(/(\r)?\n/g, ""), "text/html");
19458
+ this._removeComments();
19458
19459
  this._iterateNodes(this._normalizeBreakLines, (node) => node.tagName === "BR");
19459
19460
  this._iterateNodes(this._removeEmptyNodes, this._isBlockNode);
19460
19461
  this._iterateNodes(this._normalizeListItems, (node) => node.tagName === "LI");
@@ -19462,10 +19463,17 @@ const _ContentNormalizer = class {
19462
19463
  this._iterateNodes(this._normalizeStyles, (node) => node.tagName !== "SPAN");
19463
19464
  return this._dom.body.innerHTML;
19464
19465
  }
19466
+ _removeComments() {
19467
+ const iterator = this._dom.createNodeIterator(this._dom.body, NodeFilter.SHOW_COMMENT);
19468
+ this._runIterator(iterator, (node) => node.remove());
19469
+ }
19465
19470
  _iterateNodes(handler, condition = () => true) {
19466
19471
  const iterator = this._dom.createNodeIterator(this._dom.body, NodeFilter.SHOW_ELEMENT, {
19467
19472
  acceptNode: (node) => condition.call(this, node) ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT
19468
19473
  });
19474
+ this._runIterator(iterator, handler);
19475
+ }
19476
+ _runIterator(iterator, handler) {
19469
19477
  let currentNode = iterator.nextNode();
19470
19478
  while (currentNode) {
19471
19479
  handler.call(this, currentNode);
@@ -21788,7 +21796,7 @@ var __component__$c = /* @__PURE__ */ normalizeComponent(
21788
21796
  staticRenderFns$c,
21789
21797
  false,
21790
21798
  __vue2_injectStyles$c,
21791
- "532367c1",
21799
+ "9ea28b80",
21792
21800
  null,
21793
21801
  null
21794
21802
  );
@@ -179,4 +179,6 @@ p, h1, h2, h3, h4 {
179
179
  margin-top: 0.3em;
180
180
  margin-bottom: 0.3em;
181
181
  }
182
+
183
+ *, *::before, *::after { box-sizing: border-box }
182
184
  </style>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div :class="elementClasses" class="zw-number-field">
2
+ <label :class="elementClasses" class="zw-number-field">
3
3
  <input
4
4
  type="number"
5
5
  class="zw-number-field__input"
@@ -32,7 +32,7 @@
32
32
  {{ units }}
33
33
  </p>
34
34
  </div>
35
- </div>
35
+ </label>
36
36
  </template>
37
37
 
38
38
  <script>
@@ -96,7 +96,7 @@ export default {
96
96
  }
97
97
 
98
98
  .zw-line-height-control__field {
99
- width: 52px;
99
+ width: 64px;
100
100
  margin-left: var(--zw-offset-sm);
101
101
  }
102
102
  </style>
@@ -40,6 +40,7 @@ export class ContentNormalizer {
40
40
  _normalizeTextContent() {
41
41
  this._dom = this._parser.parseFromString(this._content.replace(/(\r)?\n/g, ''), 'text/html');
42
42
 
43
+ this._removeComments();
43
44
  this._iterateNodes(this._normalizeBreakLines, (node) => node.tagName === 'BR');
44
45
  this._iterateNodes(this._removeEmptyNodes, this._isBlockNode);
45
46
  this._iterateNodes(this._normalizeListItems, (node) => node.tagName === 'LI');
@@ -49,10 +50,21 @@ export class ContentNormalizer {
49
50
  return this._dom.body.innerHTML;
50
51
  }
51
52
 
53
+ _removeComments() {
54
+ const iterator = this._dom.createNodeIterator(this._dom.body, NodeFilter.SHOW_COMMENT);
55
+
56
+ this._runIterator(iterator, (node) => node.remove());
57
+ }
58
+
52
59
  _iterateNodes(handler, condition = () => true) {
53
60
  const iterator = this._dom.createNodeIterator(this._dom.body, NodeFilter.SHOW_ELEMENT, {
54
61
  acceptNode: (node) => condition.call(this, node) ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT
55
62
  });
63
+
64
+ this._runIterator(iterator, handler);
65
+ }
66
+
67
+ _runIterator(iterator, handler) {
56
68
  let currentNode = iterator.nextNode();
57
69
 
58
70
  while (currentNode) {
@@ -161,4 +161,11 @@ describe('normalize text content', () => {
161
161
 
162
162
  expect(ContentNormalizer.normalize(input)).toBe(output);
163
163
  });
164
+
165
+ test('should remove comments', () => {
166
+ const input = '<p>lorem ipsum</p><p style="color: red;">Hello <!-- world --></p>';
167
+ const output = '<p>lorem ipsum</p><p><span style="color: red;">Hello </span></p>';
168
+
169
+ expect(ContentNormalizer.normalize(input)).toBe(output);
170
+ });
164
171
  });
@@ -1,19 +1,19 @@
1
1
  .zw-margin-bottom--xxs {
2
- margin-bottom: var(--zw-offset-xxs);
2
+ margin-bottom: var(--zw-offset-xxs) !important;
3
3
  }
4
4
 
5
5
  .zw-margin-bottom--xs {
6
- margin-bottom: var(--zw-offset-xs);
6
+ margin-bottom: var(--zw-offset-xs) !important;
7
7
  }
8
8
 
9
9
  .zw-margin-bottom--sm {
10
- margin-bottom: var(--zw-offset-sm);
10
+ margin-bottom: var(--zw-offset-sm) !important;
11
11
  }
12
12
 
13
13
  .zw-margin-bottom--md {
14
- margin-bottom: var(--zw-offset-md);
14
+ margin-bottom: var(--zw-offset-md) !important;
15
15
  }
16
16
 
17
17
  .zw-margin-right--xs {
18
- margin-right: var(--zw-offset-xs);
18
+ margin-right: var(--zw-offset-xs) !important;
19
19
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zipify/wysiwyg",
3
- "version": "1.0.0-dev.94",
3
+ "version": "1.0.0-dev.97",
4
4
  "description": "Zipify modification of TipTap text editor",
5
5
  "main": "dist/wysiwyg.mjs",
6
6
  "repository": {