@zipify/wysiwyg 1.0.0-dev.92 → 1.0.0-dev.95

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
 
@@ -734,9 +734,6 @@ $font-height--xs: 1.33;
734
734
  $font-height--sm: 1.43;
735
735
  $font-height--md: 1.72;
736
736
  */
737
- .zw-wysiwyg [contenteditable] {
738
- outline: none;
739
- }
740
737
  .zw-wysiwyg__placeholder:first-child:last-child::before {
741
738
  content: attr(data-placeholder);
742
739
  color: rgb(var(--zw-color-n70));
@@ -783,6 +780,8 @@ $font-height--md: 1.72;
783
780
  /* ProseMirror styles */
784
781
  .ProseMirror {
785
782
  position: relative;
783
+ outline: none;
784
+ overflow: auto;
786
785
  }
787
786
  .ProseMirror {
788
787
  word-wrap: break-word;
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
  );
@@ -19588,7 +19588,9 @@ const _ContentNormalizer = class {
19588
19588
  return;
19589
19589
  const fragment = new DocumentFragment();
19590
19590
  const children = Array.from(parentElement.childNodes);
19591
- let capturingParagraph = document.createElement("p");
19591
+ const parentTemplate = parentElement.cloneNode(true);
19592
+ parentTemplate.innerHTML = "";
19593
+ let capturingParagraph = parentTemplate.cloneNode();
19592
19594
  const append2 = (node) => {
19593
19595
  this._assignElementProperties(node, parentElement, _ContentNormalizer.BLOCK_STYLES);
19594
19596
  fragment.append(node);
@@ -19596,7 +19598,7 @@ const _ContentNormalizer = class {
19596
19598
  for (const child of children) {
19597
19599
  if (child.tagName === "BR") {
19598
19600
  append2(capturingParagraph);
19599
- capturingParagraph = document.createElement("p");
19601
+ capturingParagraph = parentTemplate.cloneNode();
19600
19602
  continue;
19601
19603
  }
19602
19604
  capturingParagraph.append(child);
@@ -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>
@@ -206,7 +206,10 @@ export class ContentNormalizer {
206
206
 
207
207
  const fragment = new DocumentFragment();
208
208
  const children = Array.from(parentElement.childNodes);
209
- let capturingParagraph = document.createElement('p');
209
+ const parentTemplate = parentElement.cloneNode(true);
210
+
211
+ parentTemplate.innerHTML = '';
212
+ let capturingParagraph = parentTemplate.cloneNode();
210
213
 
211
214
  const append = (node) => {
212
215
  this._assignElementProperties(node, parentElement, ContentNormalizer.BLOCK_STYLES);
@@ -216,7 +219,7 @@ export class ContentNormalizer {
216
219
  for (const child of children) {
217
220
  if (child.tagName === 'BR') {
218
221
  append(capturingParagraph);
219
- capturingParagraph = document.createElement('p');
222
+ capturingParagraph = parentTemplate.cloneNode();
220
223
  continue;
221
224
  }
222
225
 
@@ -154,4 +154,11 @@ describe('normalize text content', () => {
154
154
 
155
155
  expect(ContentNormalizer.normalize(input)).toBe(output);
156
156
  });
157
+
158
+ test('should duplicate parent tag on normalize br', () => {
159
+ const input = '<h1><br></h1>';
160
+ const output = '<h1><br></h1>';
161
+
162
+ expect(ContentNormalizer.normalize(input)).toBe(output);
163
+ });
157
164
  });
@@ -1,7 +1,3 @@
1
- .zw-wysiwyg [contenteditable] {
2
- outline: none;
3
- }
4
-
5
1
  .zw-wysiwyg__placeholder:first-child:last-child::before {
6
2
  content: attr(data-placeholder);
7
3
  color: rgb(var(--zw-color-n70));
@@ -59,6 +55,8 @@
59
55
 
60
56
  .ProseMirror {
61
57
  position: relative;
58
+ outline: none;
59
+ overflow: auto;
62
60
  }
63
61
 
64
62
  .ProseMirror {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zipify/wysiwyg",
3
- "version": "1.0.0-dev.92",
3
+ "version": "1.0.0-dev.95",
4
4
  "description": "Zipify modification of TipTap text editor",
5
5
  "main": "dist/wysiwyg.mjs",
6
6
  "repository": {