@zipify/wysiwyg 1.0.0-dev.2 → 1.0.0-dev.22

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 (150) hide show
  1. package/.eslintignore +1 -0
  2. package/.github/dependabot.yaml +1 -0
  3. package/.release-it.json +3 -1
  4. package/.stylelintignore +1 -0
  5. package/README.md +3 -1
  6. package/config/jest/setupTests.js +7 -1
  7. package/config/webpack/example.config.js +2 -0
  8. package/config/webpack/lib.config.js +44 -0
  9. package/config/webpack/loaders/style-loader.js +3 -1
  10. package/config/webpack/loaders/svg-loader.js +1 -1
  11. package/dist/wysiwyg.css +1226 -0
  12. package/dist/wysiwyg.js +7024 -0
  13. package/example/ExampleApp.vue +51 -32
  14. package/example/example.js +26 -0
  15. package/example/pageBlocks.js +31 -0
  16. package/example/presets.js +4 -2
  17. package/lib/Wysiwyg.vue +41 -21
  18. package/lib/assets/icons/alignment-center.svg +3 -0
  19. package/lib/assets/icons/alignment-justify.svg +3 -0
  20. package/lib/assets/icons/alignment-left.svg +3 -0
  21. package/lib/assets/icons/alignment-right.svg +3 -0
  22. package/lib/assets/icons/arrow.svg +3 -0
  23. package/lib/assets/icons/background-color.svg +3 -0
  24. package/lib/assets/icons/case-style.svg +3 -0
  25. package/lib/assets/icons/font-color.svg +5 -0
  26. package/lib/assets/icons/italic.svg +3 -0
  27. package/lib/assets/icons/line-height.svg +3 -0
  28. package/lib/assets/icons/link.svg +3 -0
  29. package/lib/assets/icons/list-circle.svg +3 -0
  30. package/lib/assets/icons/list-decimal.svg +3 -0
  31. package/lib/assets/icons/list-disc.svg +3 -0
  32. package/lib/assets/icons/list-latin.svg +3 -0
  33. package/lib/assets/icons/list-roman.svg +3 -0
  34. package/lib/assets/icons/list-square.svg +3 -0
  35. package/lib/assets/icons/remove-format.svg +3 -0
  36. package/lib/assets/icons/reset-styles.svg +3 -0
  37. package/lib/assets/icons/strike-through.svg +3 -0
  38. package/lib/assets/icons/superscript.svg +3 -0
  39. package/lib/assets/icons/underline.svg +3 -0
  40. package/lib/assets/icons/unlink.svg +3 -0
  41. package/lib/components/base/Button.vue +21 -1
  42. package/lib/components/base/Checkbox.vue +89 -0
  43. package/lib/components/base/FieldLabel.vue +2 -1
  44. package/lib/components/base/Icon.vue +18 -10
  45. package/lib/components/base/Modal.vue +0 -1
  46. package/lib/components/base/TextField.vue +106 -0
  47. package/lib/components/base/__tests__/Icon.test.js +6 -13
  48. package/lib/components/base/__tests__/TextField.test.js +57 -0
  49. package/lib/components/base/__tests__/__snapshots__/TextField.test.js.snap +9 -0
  50. package/lib/components/base/colorPicker/composables/usePickerHotkeys.js +2 -1
  51. package/lib/components/base/composables/index.js +1 -0
  52. package/lib/components/base/composables/useValidator.js +19 -0
  53. package/lib/components/base/dropdown/Dropdown.vue +15 -3
  54. package/lib/components/base/dropdown/DropdownActivator.vue +19 -3
  55. package/lib/components/base/index.js +3 -1
  56. package/lib/components/toolbar/Toolbar.vue +49 -9
  57. package/lib/components/toolbar/ToolbarFull.vue +10 -2
  58. package/lib/components/toolbar/__tests__/Toolbar.test.js +6 -0
  59. package/lib/components/toolbar/controls/FontSizeControl.vue +7 -0
  60. package/lib/components/toolbar/controls/ListControl.vue +1 -5
  61. package/lib/components/toolbar/controls/UnderlineControl.vue +2 -2
  62. package/lib/components/toolbar/controls/__tests__/UnderlineControl.test.js +4 -0
  63. package/lib/components/toolbar/controls/index.js +1 -0
  64. package/lib/components/toolbar/controls/link/LinkControl.vue +152 -0
  65. package/lib/components/toolbar/controls/link/LinkControlApply.vue +35 -0
  66. package/lib/components/toolbar/controls/link/LinkControlHeader.vue +67 -0
  67. package/lib/components/toolbar/controls/link/composables/index.js +1 -0
  68. package/lib/components/toolbar/controls/link/composables/useLink.js +61 -0
  69. package/lib/components/toolbar/controls/link/destination/LinkControlDestination.vue +103 -0
  70. package/lib/components/toolbar/controls/link/destination/LinkControlPageBlock.vue +54 -0
  71. package/lib/components/toolbar/controls/link/destination/LinkControlUrl.vue +52 -0
  72. package/lib/components/toolbar/controls/link/destination/index.js +1 -0
  73. package/lib/components/toolbar/controls/link/index.js +1 -0
  74. package/lib/composables/__tests__/useEditor.test.js +14 -5
  75. package/lib/composables/useEditor.js +13 -8
  76. package/lib/composables/useToolbar.js +14 -29
  77. package/lib/directives/outClick.js +20 -4
  78. package/lib/enums/LinkDestinations.js +4 -0
  79. package/lib/enums/LinkTargets.js +4 -0
  80. package/lib/enums/TextSettings.js +3 -1
  81. package/lib/enums/index.js +2 -0
  82. package/lib/extensions/Alignment.js +21 -3
  83. package/lib/extensions/BackgroundColor.js +16 -1
  84. package/lib/extensions/FontColor.js +16 -1
  85. package/lib/extensions/FontFamily.js +26 -2
  86. package/lib/extensions/FontSize.js +28 -3
  87. package/lib/extensions/FontStyle.js +23 -2
  88. package/lib/extensions/FontWeight.js +33 -1
  89. package/lib/extensions/LineHeight.js +29 -3
  90. package/lib/extensions/Link.js +101 -0
  91. package/lib/extensions/StylePreset.js +36 -6
  92. package/lib/extensions/TextDecoration.js +29 -3
  93. package/lib/extensions/__tests__/Alignment.test.js +30 -3
  94. package/lib/extensions/__tests__/BackgroundColor.test.js +38 -3
  95. package/lib/extensions/__tests__/CaseStyle.test.js +4 -3
  96. package/lib/extensions/__tests__/FontColor.test.js +38 -3
  97. package/lib/extensions/__tests__/FontFamily.test.js +59 -5
  98. package/lib/extensions/__tests__/FontSize.test.js +38 -3
  99. package/lib/extensions/__tests__/FontStyle.test.js +46 -3
  100. package/lib/extensions/__tests__/FontWeight.test.js +66 -3
  101. package/lib/extensions/__tests__/LineHeight.test.js +49 -3
  102. package/lib/extensions/__tests__/StylePreset.test.js +143 -4
  103. package/lib/extensions/__tests__/TextDecoration.test.js +87 -3
  104. package/lib/extensions/__tests__/__snapshots__/Alignment.test.js.snap +70 -2
  105. package/lib/extensions/__tests__/__snapshots__/BackgroundColor.test.js.snap +121 -1
  106. package/lib/extensions/__tests__/__snapshots__/FontColor.test.js.snap +109 -1
  107. package/lib/extensions/__tests__/__snapshots__/FontFamily.test.js.snap +179 -1
  108. package/lib/extensions/__tests__/__snapshots__/FontSize.test.js.snap +132 -2
  109. package/lib/extensions/__tests__/__snapshots__/FontStyle.test.js.snap +142 -1
  110. package/lib/extensions/__tests__/__snapshots__/FontWeight.test.js.snap +179 -1
  111. package/lib/extensions/__tests__/__snapshots__/LineHeight.test.js.snap +118 -2
  112. package/lib/extensions/__tests__/__snapshots__/StylePreset.test.js.snap +171 -2
  113. package/lib/extensions/__tests__/__snapshots__/TextDecoration.test.js.snap +300 -3
  114. package/lib/extensions/core/CopyPasteProcessor.js +10 -0
  115. package/lib/extensions/core/TextProcessor.js +10 -0
  116. package/lib/extensions/core/__tests__/NodeProcessor.test.js +4 -3
  117. package/lib/extensions/core/__tests__/SelectionProcessor.test.js +9 -6
  118. package/lib/extensions/core/__tests__/TextProcessor.test.js +139 -10
  119. package/lib/extensions/core/__tests__/__snapshots__/TextProcessor.test.js.snap +26 -0
  120. package/lib/extensions/core/index.js +11 -2
  121. package/lib/extensions/core/plugins/PastePlugin.js +48 -0
  122. package/lib/extensions/core/plugins/ProseMirrorPlugin.js +20 -0
  123. package/lib/extensions/core/plugins/index.js +1 -0
  124. package/lib/extensions/index.js +41 -33
  125. package/lib/extensions/list/List.js +34 -0
  126. package/lib/extensions/list/__tests__/List.test.js +115 -5
  127. package/lib/extensions/list/__tests__/__snapshots__/List.test.js.snap +481 -0
  128. package/lib/injectionTokens.js +2 -1
  129. package/lib/services/ContentNormalizer.js +157 -0
  130. package/lib/services/ContextWidnow.js +23 -0
  131. package/lib/services/Storage.js +1 -13
  132. package/lib/services/__tests__/ContentNormalizer.test.js +74 -0
  133. package/lib/services/__tests__/FavoriteColors.test.js +20 -0
  134. package/lib/services/__tests__/JsonSerializer.test.js +23 -0
  135. package/lib/services/__tests__/Storage.test.js +79 -0
  136. package/lib/services/index.js +2 -0
  137. package/lib/styles/content.css +96 -9
  138. package/lib/styles/helpers/offsets.css +16 -0
  139. package/lib/styles/variables.css +6 -0
  140. package/lib/utils/__tests__/__snapshots__/renderInlineSetting.test.js.snap +4 -4
  141. package/lib/utils/__tests__/convertColor.test.js +19 -0
  142. package/lib/utils/__tests__/createKeyboardShortcut.test.js +25 -0
  143. package/lib/utils/__tests__/renderInlineSetting.test.js +26 -0
  144. package/lib/utils/convertColor.js +7 -0
  145. package/lib/utils/importIcon.js +12 -0
  146. package/lib/utils/index.js +2 -0
  147. package/lib/utils/renderInlineSetting.js +2 -2
  148. package/package.json +18 -14
  149. package/lib/assets/icons.svg +0 -69
  150. package/lib/composables/__tests__/useToolbar.test.js +0 -56
@@ -0,0 +1,1226 @@
1
+ /*!**************************************************************************************************************************************************************************************************************************************************************************!*\
2
+ !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./lib/components/toolbar/ToolbarDivider.vue?vue&type=style&index=0&id=034e1143&scoped=true&lang=css& ***!
3
+ \**************************************************************************************************************************************************************************************************************************************************************************/
4
+
5
+ .zw-toolbar__divider[data-v-034e1143] {
6
+ border-color: rgba(var(--zw-color-n90), 0.1);
7
+ border-style: solid;
8
+ border-width: 0;
9
+ }
10
+ .zw-toolbar__divider--vertical[data-v-034e1143] {
11
+ border-left-width: 1px;
12
+ }
13
+ .zw-toolbar__divider--horizontal[data-v-034e1143] {
14
+ border-bottom-width: 1px;
15
+ }
16
+
17
+ /*!**********************************************************************************************************************************************************************************************************************************************************************!*\
18
+ !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./lib/components/toolbar/ToolbarRow.vue?vue&type=style&index=0&id=65916ef8&scoped=true&lang=css& ***!
19
+ \**********************************************************************************************************************************************************************************************************************************************************************/
20
+
21
+ .zw-toolbar__row[data-v-65916ef8] {
22
+ display: flex;
23
+ column-gap: var(--zw-offset-xs);
24
+ padding: var(--zw-offset-xxs) var(--zw-offset-xs);
25
+ }
26
+
27
+ /*!************************************************************************************************************************************************************************************************************************************************************************!*\
28
+ !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./lib/components/toolbar/ToolbarGroup.vue?vue&type=style&index=0&id=06bbae29&scoped=true&lang=css& ***!
29
+ \************************************************************************************************************************************************************************************************************************************************************************/
30
+
31
+ .zw-toolbar__group[data-v-06bbae29] {
32
+ display: flex;
33
+ column-gap: var(--zw-offset-xxs);
34
+ }
35
+
36
+ /*!***************************************************************************************************************************************************************************************************************************************************************!*\
37
+ !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./lib/components/base/Button.vue?vue&type=style&index=0&id=610825a2&scoped=true&lang=css& ***!
38
+ \***************************************************************************************************************************************************************************************************************************************************************/
39
+
40
+ .zw-button[data-v-610825a2] {
41
+ display: inline-flex;
42
+ align-items: center;
43
+ vertical-align: middle;
44
+ touch-action: manipulation;
45
+ cursor: pointer;
46
+ background-image: none;
47
+ background-color: transparent;
48
+ border: 0;
49
+ padding: 0;
50
+ white-space: nowrap;
51
+ appearance: none;
52
+ user-select: none;
53
+ text-transform: none;
54
+ letter-spacing: normal;
55
+ color: inherit;
56
+ transition: 0.1s opacity ease-out;
57
+ will-change: opacity;
58
+ }
59
+ .zw-button[data-v-610825a2]::-moz-focus-inner {
60
+ border: 0 !important;
61
+ }
62
+ .zw-button[data-v-610825a2]:hover,
63
+ .zw-button[data-v-610825a2]:focus {
64
+ text-decoration: none;
65
+ outline: none;
66
+ }
67
+ .zw-button[data-v-610825a2]:disabled {
68
+ user-select: none;
69
+ box-shadow: none;
70
+ cursor: not-allowed;
71
+ opacity: 0.35;
72
+ }
73
+ .zw-button--toolbar[data-v-610825a2] {
74
+ border-radius: 1px;
75
+ min-height: 28px;
76
+ font-weight: var(--zw-font-weight-semibold);
77
+ font-size: var(--zw-font-size-xs);
78
+ line-height: var(--zw-line-height-xxs);
79
+ color: rgb(var(--zw-color-n70));
80
+ transition-property: background-color, color, opacity;
81
+ will-change: background-color, color, opacity;
82
+ }
83
+ .zw-button--primary[data-v-610825a2] {
84
+ background-color: rgb(var(--zw-color-green));
85
+ color: rgb(var(--zw-color-white));
86
+ padding: var(--zw-offset-xxs) var(--zw-offset-sm);
87
+ line-height: var(--zw-line-height-md);
88
+ }
89
+ .zw-button--primary[data-v-610825a2],
90
+ .zw-button--secondary[data-v-610825a2] {
91
+ color: rgb(var(--zw-color-white));
92
+ padding: var(--zw-offset-xxs) var(--zw-offset-sm);
93
+ font-weight: 600;
94
+ font-size: var(--zw-font-size-xs);
95
+ }
96
+ .zw-button--primary[data-v-610825a2]:not(:disabled):hover,
97
+ .zw-button--secondary[data-v-610825a2]:not(:disabled):hover {
98
+ opacity: 0.9;
99
+ }
100
+ .zw-button--toolbar[data-v-610825a2]:not(.zw-button--icon) {
101
+ padding: var(--zw-offset-xxs) var(--zw-offset-xs);
102
+ }
103
+ .zw-button--toolbar[data-v-610825a2]:not(:disabled):hover,
104
+ .zw-button--toolbar[data-v-610825a2]:not(:disabled):focus,
105
+ .zw-button--toolbar.zw-button--active[data-v-610825a2]:not(:disabled) {
106
+ color: rgb(var(--zw-color-white));
107
+ background-color: rgb(var(--zw-color-n5));
108
+ }
109
+
110
+ /*!*********************************************************************************************************************************************************************************************************************************************************************!*\
111
+ !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./lib/components/base/ButtonToggle.vue?vue&type=style&index=0&id=de5fa53a&scoped=true&lang=css& ***!
112
+ \*********************************************************************************************************************************************************************************************************************************************************************/
113
+
114
+ .zw-button-toggle[data-v-de5fa53a] {
115
+ display: flex;
116
+ column-gap: var(--zw-offset-xxs);
117
+ }
118
+
119
+ /*!*************************************************************************************************************************************************************************************************************************************************************!*\
120
+ !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./lib/components/base/Icon.vue?vue&type=style&index=0&id=d4624794&scoped=true&lang=css& ***!
121
+ \*************************************************************************************************************************************************************************************************************************************************************/
122
+
123
+ .zw-icon[data-v-d4624794] {
124
+ display: flex;
125
+ }
126
+ .zw-icon--auto-color[data-v-d4624794] {
127
+ --zw-icon-foreground: currentColor;
128
+ }
129
+
130
+ /*!*********************************************************************************************!*\
131
+ !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/simplebar/dist/simplebar.css ***!
132
+ \*********************************************************************************************/
133
+ [data-simplebar] {
134
+ position: relative;
135
+ flex-direction: column;
136
+ flex-wrap: wrap;
137
+ justify-content: flex-start;
138
+ align-content: flex-start;
139
+ align-items: flex-start;
140
+ }
141
+
142
+ .simplebar-wrapper {
143
+ overflow: hidden;
144
+ width: inherit;
145
+ height: inherit;
146
+ max-width: inherit;
147
+ max-height: inherit;
148
+ }
149
+
150
+ .simplebar-mask {
151
+ direction: inherit;
152
+ position: absolute;
153
+ overflow: hidden;
154
+ padding: 0;
155
+ margin: 0;
156
+ left: 0;
157
+ top: 0;
158
+ bottom: 0;
159
+ right: 0;
160
+ width: auto !important;
161
+ height: auto !important;
162
+ z-index: 0;
163
+ }
164
+
165
+ .simplebar-offset {
166
+ direction: inherit !important;
167
+ box-sizing: inherit !important;
168
+ resize: none !important;
169
+ position: absolute;
170
+ top: 0;
171
+ left: 0;
172
+ bottom: 0;
173
+ right: 0;
174
+ padding: 0;
175
+ margin: 0;
176
+ -webkit-overflow-scrolling: touch;
177
+ }
178
+
179
+ .simplebar-content-wrapper {
180
+ direction: inherit;
181
+ box-sizing: border-box !important;
182
+ position: relative;
183
+ display: block;
184
+ height: 100%; /* Required for horizontal native scrollbar to not appear if parent is taller than natural height */
185
+ width: auto;
186
+ max-width: 100%; /* Not required for horizontal scroll to trigger */
187
+ max-height: 100%; /* Needed for vertical scroll to trigger */
188
+ scrollbar-width: none;
189
+ -ms-overflow-style: none;
190
+ }
191
+
192
+ .simplebar-content-wrapper::-webkit-scrollbar,
193
+ .simplebar-hide-scrollbar::-webkit-scrollbar {
194
+ width: 0;
195
+ height: 0;
196
+ }
197
+
198
+ .simplebar-content:before,
199
+ .simplebar-content:after {
200
+ content: ' ';
201
+ display: table;
202
+ }
203
+
204
+ .simplebar-placeholder {
205
+ max-height: 100%;
206
+ max-width: 100%;
207
+ width: 100%;
208
+ pointer-events: none;
209
+ }
210
+
211
+ .simplebar-height-auto-observer-wrapper {
212
+ box-sizing: inherit !important;
213
+ height: 100%;
214
+ width: 100%;
215
+ max-width: 1px;
216
+ position: relative;
217
+ float: left;
218
+ max-height: 1px;
219
+ overflow: hidden;
220
+ z-index: -1;
221
+ padding: 0;
222
+ margin: 0;
223
+ pointer-events: none;
224
+ flex-grow: inherit;
225
+ flex-shrink: 0;
226
+ flex-basis: 0;
227
+ }
228
+
229
+ .simplebar-height-auto-observer {
230
+ box-sizing: inherit;
231
+ display: block;
232
+ opacity: 0;
233
+ position: absolute;
234
+ top: 0;
235
+ left: 0;
236
+ height: 1000%;
237
+ width: 1000%;
238
+ min-height: 1px;
239
+ min-width: 1px;
240
+ overflow: hidden;
241
+ pointer-events: none;
242
+ z-index: -1;
243
+ }
244
+
245
+ .simplebar-track {
246
+ z-index: 1;
247
+ position: absolute;
248
+ right: 0;
249
+ bottom: 0;
250
+ pointer-events: none;
251
+ overflow: hidden;
252
+ }
253
+
254
+ [data-simplebar].simplebar-dragging .simplebar-content {
255
+ pointer-events: none;
256
+ user-select: none;
257
+ -webkit-user-select: none;
258
+ }
259
+
260
+ [data-simplebar].simplebar-dragging .simplebar-track {
261
+ pointer-events: all;
262
+ }
263
+
264
+ .simplebar-scrollbar {
265
+ position: absolute;
266
+ left: 0;
267
+ right: 0;
268
+ min-height: 10px;
269
+ }
270
+
271
+ .simplebar-scrollbar:before {
272
+ position: absolute;
273
+ content: '';
274
+ background: black;
275
+ border-radius: 7px;
276
+ left: 2px;
277
+ right: 2px;
278
+ opacity: 0;
279
+ transition: opacity 0.2s linear;
280
+ }
281
+
282
+ .simplebar-scrollbar.simplebar-visible:before {
283
+ /* When hovered, remove all transitions from drag handle */
284
+ opacity: 0.5;
285
+ transition: opacity 0s linear;
286
+ }
287
+
288
+ .simplebar-track.simplebar-vertical {
289
+ top: 0;
290
+ width: 11px;
291
+ }
292
+
293
+ .simplebar-track.simplebar-vertical .simplebar-scrollbar:before {
294
+ top: 2px;
295
+ bottom: 2px;
296
+ }
297
+
298
+ .simplebar-track.simplebar-horizontal {
299
+ left: 0;
300
+ height: 11px;
301
+ }
302
+
303
+ .simplebar-track.simplebar-horizontal .simplebar-scrollbar:before {
304
+ height: 100%;
305
+ left: 2px;
306
+ right: 2px;
307
+ }
308
+
309
+ .simplebar-track.simplebar-horizontal .simplebar-scrollbar {
310
+ right: auto;
311
+ left: 0;
312
+ top: 2px;
313
+ height: 7px;
314
+ min-height: 0;
315
+ min-width: 10px;
316
+ width: auto;
317
+ }
318
+
319
+ /* Rtl support */
320
+ [data-simplebar-direction='rtl'] .simplebar-track.simplebar-vertical {
321
+ right: auto;
322
+ left: 0;
323
+ }
324
+
325
+ .hs-dummy-scrollbar-size {
326
+ direction: rtl;
327
+ position: fixed;
328
+ opacity: 0;
329
+ visibility: hidden;
330
+ height: 500px;
331
+ width: 500px;
332
+ overflow-y: hidden;
333
+ overflow-x: scroll;
334
+ }
335
+
336
+ .simplebar-hide-scrollbar {
337
+ position: fixed;
338
+ left: 0;
339
+ visibility: hidden;
340
+ overflow-y: scroll;
341
+ scrollbar-width: none;
342
+ -ms-overflow-style: none;
343
+ }
344
+
345
+ /*!*******************************************************************************************************************************************************************************************************************************************************************!*\
346
+ !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./lib/components/base/ScrollView.vue?vue&type=style&index=0&id=56dc828f&scoped=true&lang=css& ***!
347
+ \*******************************************************************************************************************************************************************************************************************************************************************/
348
+
349
+ .zw-scroll-view[data-v-56dc828f] .simplebar-placeholder {
350
+ display: none;
351
+ }
352
+ .zw-scroll-view[data-v-56dc828f] .simplebar-track {
353
+ width: 4px;
354
+ background-color: rgb(var(--zw-color-n20));
355
+ pointer-events: initial;
356
+ }
357
+ .zw-scroll-view[data-v-56dc828f] .simplebar-scrollbar {
358
+ width: 4px;
359
+ }
360
+ .zw-scroll-view[data-v-56dc828f] .simplebar-scrollbar::before {
361
+ top: 0;
362
+ left: 0;
363
+ background-color: rgb(var(--zw-color-n5));
364
+ cursor: pointer;
365
+ height: 100%;
366
+ width: 100%;
367
+ opacity: 1;
368
+ border-radius: 0;
369
+ }
370
+
371
+ /*!*******************************************************************************************************************************************************************************************************************************************************************!*\
372
+ !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./lib/components/base/FieldLabel.vue?vue&type=style&index=0&id=2be4d197&scoped=true&lang=css& ***!
373
+ \*******************************************************************************************************************************************************************************************************************************************************************/
374
+
375
+ .zw-field-label[data-v-2be4d197] {
376
+ font-weight: var(--zw-font-weight-thin);
377
+ font-size: var(--zw-font-size-xxs);
378
+ line-height: var(--zw-line-height-xxs);
379
+ color: rgb(var(--zw-color-n70));
380
+ display: block;
381
+ }
382
+
383
+ /*!**************************************************************************************************************************************************************************************************************************************************************!*\
384
+ !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./lib/components/base/Range.vue?vue&type=style&index=0&id=4cc06850&scoped=true&lang=css& ***!
385
+ \**************************************************************************************************************************************************************************************************************************************************************/
386
+
387
+ .zw-range[data-v-4cc06850] {
388
+ width: 100%;
389
+ height: 32px;
390
+ background: none;
391
+ cursor: pointer;
392
+ flex-grow: 1;
393
+ -webkit-appearance: none;
394
+
395
+ --zw-range-track-background-color: transparent;
396
+ --zw-range-track-background-image: linear-gradient(to right, #B3B3B3 var(--zw-range-progress), #3B3B3B var(--zw-range-progress));
397
+ --zw-range-thumb-background: rgb(var(--zw-color-white));
398
+ --zw-range-thumb-box-shadow: -1px -1px 3px rgba(59, 59, 59, 0.35), 1px 1px 3px rgba(59, 59, 59, 0.35);
399
+ }
400
+ .zw-range[data-v-4cc06850]::-webkit-slider-runnable-track {
401
+ width: 100%;
402
+ height: 4px;
403
+ border: 0;
404
+ border-radius: 0;
405
+ background-size: 100%;
406
+ background-color: var(--zw-range-track-background-color);
407
+ background-image: var(--zw-range-track-background-image);
408
+ }
409
+ .zw-range[data-v-4cc06850]::-moz-range-track {
410
+ width: 100%;
411
+ height: 4px;
412
+ border: 0;
413
+ border-radius: 0;
414
+ background-size: 100%;
415
+ background-color: var(--zw-range-track-background-color);
416
+ background-image: var(--zw-range-track-background-image);
417
+ }
418
+ .zw-range[data-v-4cc06850]::-ms-track {
419
+ width: 100%;
420
+ height: 4px;
421
+ border: 0;
422
+ border-radius: 0;
423
+ background-size: 100%;
424
+ background-color: var(--zw-range-track-background-color);
425
+ background-image: var(--zw-range-track-background-image);
426
+ }
427
+ .zw-range[data-v-4cc06850]::-webkit-slider-thumb {
428
+ height: 13px;
429
+ width: 13px;
430
+ border-radius: 100%;
431
+ margin-top: -5px;
432
+ background: var(--zw-range-thumb-background);
433
+ box-shadow: var(--zw-range-thumb-box-shadow);
434
+ -webkit-appearance: none;
435
+ transition: box-shadow 150ms cubic-bezier(0, 0, 0.2, 1);
436
+ }
437
+ .zw-range[data-v-4cc06850]::-moz-range-thumb {
438
+ height: 13px;
439
+ width: 13px;
440
+ border-radius: 100%;
441
+ margin-top: -5px;
442
+ background: var(--zw-range-thumb-background);
443
+ box-shadow: var(--zw-range-thumb-box-shadow);
444
+ -webkit-appearance: none;
445
+ transition: box-shadow 150ms cubic-bezier(0, 0, 0.2, 1);
446
+ }
447
+ .zw-range[data-v-4cc06850]::-ms-thumb {
448
+ height: 13px;
449
+ width: 13px;
450
+ border-radius: 100%;
451
+ margin-top: -5px;
452
+ background: var(--zw-range-thumb-background);
453
+ box-shadow: var(--zw-range-thumb-box-shadow);
454
+ -webkit-appearance: none;
455
+ transition: box-shadow 150ms cubic-bezier(0, 0, 0.2, 1);
456
+ }
457
+
458
+ /* Browser hacks */
459
+ .zw-range[data-v-4cc06850]::-moz-focus-outer,
460
+ .zw-range[data-v-4cc06850]::-moz-range-thumb {
461
+ border: 0;
462
+ }
463
+
464
+ /* In IE don't know how it count margin for thumb */
465
+ /* but it works */
466
+ .zw-range[data-v-4cc06850]::-ms-thumb {
467
+ margin-top: -2px;
468
+ }
469
+
470
+ /* END browser hacks */
471
+ .zw-range[data-v-4cc06850]:focus {
472
+ outline: none;
473
+ }
474
+ .zw-range[data-v-4cc06850]:disabled {
475
+ cursor: not-allowed;
476
+ opacity: 0.6;
477
+ --zw-range-track-background-color: #3B3B3B;
478
+ --zw-range-track-background-image: linear-gradient(to right, #B3B3B3 var(--zw-range-progress), #3B3B3B var(--zw-range-progress));
479
+ }
480
+ .zw-range[data-v-4cc06850]:disabled {
481
+ --zw-range-thumb-background: #B3B3B3;
482
+ --zw-range-thumb-box-shadow: 0 0 6px rgba(0, 0, 0, 0.35);
483
+ }
484
+ .zw-range[data-v-4cc06850]:not(:disabled):hover {
485
+ --zw-range-thumb-box-shadow: 0 0 0 8px rgba(240, 240, 240, 0.15);
486
+ }
487
+ .zw-range[data-v-4cc06850]:not(:disabled):active {
488
+ --zw-range-thumb-box-shadow: 0 0 0 12px rgba(240, 240, 240, 0.15);
489
+ }
490
+
491
+ /*!*********************************************************************************************************************************************************************************************************************************************************************!*\
492
+ !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./lib/components/base/NumberField.vue?vue&type=style&index=0&id=289baff8&lang=scss&scoped=true& ***!
493
+ \*********************************************************************************************************************************************************************************************************************************************************************/
494
+
495
+ .zw-number-field[data-v-289baff8] {
496
+ --border-color: rgb(var(--zw-color-n60));
497
+ --text-color: rgb(var(--zw-color-n85));
498
+ --buttons-color: rgb(var(--zw-color-n70));
499
+
500
+ padding: 2px 4px;
501
+ border: solid 1px var(--border-color);
502
+ align-items: stretch;
503
+ display: flex;
504
+ }
505
+ .zw-number-field[data-v-289baff8]:hover {
506
+ --border-color: rgb(var(--zw-color-n80));
507
+ --text-color: rgb(var(--zw-color-n85));
508
+ }
509
+ .zw-number-field[data-v-289baff8]:focus,
510
+ .zw-number-field[data-v-289baff8]:focus-within {
511
+ --border-color: rgb(var(--zw-color-white));
512
+ --text-color: rgb(var(--zw-color-white));
513
+ }
514
+ .zw-number-field__input[data-v-289baff8] {
515
+ color: var(--text-color);
516
+ background-color: rgb(var(--zw-color-n15));
517
+ border: 0;
518
+ display: block;
519
+ width: 100%;
520
+ outline: none !important;
521
+ line-height: var(--zw-line-height-md);
522
+ font-size: var(--zw-font-size-xs);
523
+ -moz-appearance: textfield;
524
+ }
525
+ .zw-number-field__buttons[data-v-289baff8] {
526
+ display: none;
527
+ flex-direction: column;
528
+ height: 100%;
529
+ }
530
+ .zw-number-field:hover .zw-number-field__buttons[data-v-289baff8],
531
+ .zw-number-field:focus .zw-number-field__buttons[data-v-289baff8],
532
+ .zw-number-field:focus-within .zw-number-field__buttons[data-v-289baff8] {
533
+ display: flex;
534
+ }
535
+ .zw-number-field__input[data-v-289baff8]::placeholder {
536
+ color: var(--text-color);
537
+ }
538
+ .zw-number-field__input[data-v-289baff8]::-webkit-outer-spin-button,
539
+ .zw-number-field__input[data-v-289baff8]::-webkit-inner-spin-button {
540
+ color: var(--text-color);
541
+ -webkit-appearance: none;
542
+ }
543
+ .zw-number-field__controls[data-v-289baff8] {
544
+ min-width: var(--zw-offset-sm);
545
+ }
546
+ .zw-number-field--disabled[data-v-289baff8] {
547
+ opacity: 0.5;
548
+ }
549
+ .zw-number-field--disabled[data-v-289baff8],
550
+ .zw-number-field--disabled .zw-number-field__input[data-v-289baff8] {
551
+ cursor: not-allowed;
552
+ }
553
+ .zw-number-field__increment-button[data-v-289baff8],
554
+ .zw-number-field__decrement-button[data-v-289baff8] {
555
+ width: 100%;
556
+ height: 50%;
557
+ display: flex;
558
+ align-items: center;
559
+ justify-content: center;
560
+ }
561
+ .zw-number-field__increment-button[data-v-289baff8]::after,
562
+ .zw-number-field__decrement-button[data-v-289baff8]::after {
563
+ content: "";
564
+ border-left: 3px solid transparent;
565
+ border-right: 3px solid transparent;
566
+ }
567
+ .zw-number-field__increment-button[data-v-289baff8]::after {
568
+ border-bottom: 3px solid var(--buttons-color);
569
+ }
570
+ .zw-number-field__decrement-button[data-v-289baff8]::after {
571
+ border-top: 3px solid var(--buttons-color);
572
+ }
573
+ .zw-number-field__increment-button[data-v-289baff8]:hover,
574
+ .zw-number-field__decrement-button[data-v-289baff8]:hover {
575
+ background-color: rgb(var(--zw-color-n20));
576
+ --buttons-color: rgb(var(--zw-color-white));
577
+ }
578
+ .zw-number-field__units[data-v-289baff8] {
579
+ color: rgb(var(--zw-color-n70));
580
+ font-size: var(--zw-font-size-xs);
581
+ line-height: var(--zw-line-height-md);
582
+ text-align: center;
583
+ display: inline-block;
584
+ width: 100%;
585
+ }
586
+ .zw-number-field:hover .zw-number-field__units[data-v-289baff8],
587
+ .zw-number-field:focus .zw-number-field__units[data-v-289baff8] {
588
+ display: none;
589
+ }
590
+
591
+ /*!**************************************************************************************************************************************************************************************************************************************************************!*\
592
+ !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./lib/components/base/Modal.vue?vue&type=style&index=0&id=0a3c1c80&scoped=true&lang=css& ***!
593
+ \**************************************************************************************************************************************************************************************************************************************************************/
594
+
595
+ .zw-modal[data-v-0a3c1c80] {
596
+ border-radius: 2px;
597
+ box-shadow: 0 0 4px rgba(var(--zw-color-black), 0.3);
598
+ background-color: rgb(var(--zw-color-n15));
599
+ max-height: var(--zw-modal-max-height);
600
+ max-width: var(--zw-modal-max-width);
601
+ z-index: 1000;
602
+ will-change: transform;
603
+ }
604
+ .zw-modal--enter-active[data-v-0a3c1c80] {
605
+ transition: opacity 0.15s ease-out;
606
+ }
607
+ .zw-modal--enter[data-v-0a3c1c80],
608
+ .zw-modal--leave-to[data-v-0a3c1c80] {
609
+ opacity: 0;
610
+ }
611
+ .zw-modal--leave-active[data-v-0a3c1c80] {
612
+ transition: opacity 0.1s ease-in;
613
+ }
614
+
615
+ /* Scrollbar overrides in modal */
616
+ .zw-modal[data-v-0a3c1c80] .simplebar-offset,
617
+ .zw-modal[data-v-0a3c1c80] .simplebar-mask {
618
+ position: initial;
619
+ }
620
+ .zw-modal[data-v-0a3c1c80] .simplebar-content {
621
+ max-height: var(--zw-modal-max-height);
622
+ padding: 0 !important;
623
+ }
624
+ .zw-modal[data-v-0a3c1c80] .simplebar-content-wrapper {
625
+ overscroll-behavior: contain;
626
+ }
627
+
628
+ /*!*******************************************************************************************************************************************************************************************************************************************************************!*\
629
+ !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./lib/components/base/TextField.vue?vue&type=style&index=0&id=49291160&lang=scss&scoped=true& ***!
630
+ \*******************************************************************************************************************************************************************************************************************************************************************/
631
+
632
+ .zw-field[data-v-49291160] {
633
+ display: flex;
634
+ flex-direction: column;
635
+ }
636
+ .zw-field__input[data-v-49291160] {
637
+ --border-color: rgb(var(--zw-color-n60));
638
+ --text-color: rgb(var(--zw-color-n85));
639
+
640
+ border: 1px solid var(--border-color);
641
+ background-color: transparent;
642
+ color: var(--text-color);
643
+ font-size: var(--zw-font-size-xxs);
644
+ outline: none;
645
+ padding: 6px;
646
+ line-height: var(--zw-line-height-xxs);
647
+ }
648
+ .zw-field__input[data-v-49291160]:hover {
649
+ --border-color: rgb(var(--zw-color-n80));
650
+ --text-color: rgb(var(--zw-color-n85));
651
+ }
652
+ .zw-field__input[data-v-49291160]:focus,
653
+ .zw-field__input[data-v-49291160]:focus-within {
654
+ --border-color: rgb(var(--zw-color-white));
655
+ --text-color: rgb(var(--zw-color-white));
656
+ }
657
+ .zw-field__label[data-v-49291160] {
658
+ display: inline-block;
659
+ font-size: var(--zw-font-size-xxs);
660
+ padding-bottom: var(--zw-offset-xxs);
661
+ line-height: var(--zw-line-height-xxs);
662
+ }
663
+ .zw-field__label--error[data-v-49291160] {
664
+ font-size: var(--zw-font-size-xxs);
665
+ margin: var(--zw-offset-xxs) 0 0;
666
+ color: rgb(var(--zw-color-red));
667
+ }
668
+
669
+ /*!*****************************************************************************************************************************************************************************************************************************************************************!*\
670
+ !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./lib/components/base/Checkbox.vue?vue&type=style&index=0&id=f7eea800&scoped=true&lang=css& ***!
671
+ \*****************************************************************************************************************************************************************************************************************************************************************/
672
+
673
+ .zw-checkbox[data-v-f7eea800] {
674
+ display: inline-flex;
675
+ align-items: center;
676
+ position: relative;
677
+ cursor: pointer;
678
+ padding: var(--zw-offset-xxs) var(--zw-offset-xxs) var(--zw-offset-xxs) 0;
679
+ }
680
+ .zw-checkbox__field + .zw-checkbox__indicator[data-v-f7eea800] {
681
+ color: var(--zw-color-n200);
682
+ box-shadow: inset 0 0 0 2px currentColor;
683
+ }
684
+ .zw-checkbox:hover .zw-checkbox__indicator[data-v-f7eea800] {
685
+ box-shadow: inset 0 0 0 2px rgb(var(--zw-color-green));
686
+ }
687
+ .zw-checkbox__field:checked + .zw-checkbox__indicator[data-v-f7eea800] {
688
+ color: rgb(var(--zw-color-green))
689
+ }
690
+ .zw-checkbox .zw-checkbox__field:checked + .zw-checkbox__indicator[data-v-f7eea800] {
691
+ background-color: rgb(var(--zw-color-green));
692
+ }
693
+ .zw-checkbox .zw-checkbox__indicator[data-v-f7eea800]::after {
694
+ content: "";
695
+ display: block;
696
+ height: 16px;
697
+ transform: scale(0.6);
698
+ transition: transform 0.2s ease-out;
699
+ width: 16px;
700
+ background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNiAyNiIgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiPgogIDxwYXRoIGZpbGw9IiNGRkYiIGQ9Ik0uMyAxNGMtLjItLjItLjMtLjUtLjMtLjdzLjEtLjUuMy0uN2wxLjQtMS40Yy40LS40IDEtLjQgMS40IDBsLjEuMSA1LjUgNS45Yy4yLjIuNS4yLjcgMEwyMi44IDMuM2guMWMuNC0uNCAxLS40IDEuNCAwbDEuNCAxLjRjLjQuNC40IDEgMCAxLjRsLTE2IDE2LjZjLS4yLjItLjQuMy0uNy4zLS4zIDAtLjUtLjEtLjctLjNMLjUgMTQuMy4zIDE0eiIvPgo8L3N2Zz4K);
701
+ background-repeat: no-repeat;
702
+ background-size: 16px;
703
+ background-position: center center;
704
+ }
705
+ .zw-checkbox__field:not(:checked) + .zw-checkbox__indicator[data-v-f7eea800]::after {
706
+ transform: scale(0);
707
+ }
708
+ .zw-checkbox__field[data-v-f7eea800] {
709
+ position: absolute;
710
+ opacity: 0;
711
+ height: 0;
712
+ width: 0;
713
+ }
714
+ .zw-checkbox__label[data-v-f7eea800] {
715
+ font-size: var(--zw-font-size-xs);
716
+ }
717
+
718
+ /*!***********************************************************************************************************************************************************************************************************************************************************************************!*\
719
+ !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./lib/components/base/dropdown/DropdownActivator.vue?vue&type=style&index=0&id=4865ea7a&scoped=true&lang=css& ***!
720
+ \***********************************************************************************************************************************************************************************************************************************************************************************/
721
+
722
+ .zw-dropdown__activator[data-v-4865ea7a] {
723
+ width: 100%;
724
+ }
725
+ .zw-dropdown__activator-title[data-v-4865ea7a] {
726
+ margin-right: var(--zw-offset-xs);
727
+ }
728
+ .zw-dropdown__activator-arrow[data-v-4865ea7a] {
729
+ margin-left: auto;
730
+ }
731
+ .zw-dropdown__activator--active .zw-dropdown__activator-arrow[data-v-4865ea7a] {
732
+ transform: rotateX(180deg);
733
+ }
734
+ .zw-dropdown__activator--gray[data-v-4865ea7a] {
735
+ background-color: rgb(var(--zw-color-n20));
736
+ font-size: var(--zw-font-size-xxs);
737
+ color: rgb(var(--zw-color-white));
738
+ }
739
+
740
+ /*!********************************************************************************************************************************************************************************************************************************************************************************!*\
741
+ !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./lib/components/base/dropdown/DropdownOption.vue?vue&type=style&index=0&id=10a0f0b7&scoped=true&lang=css& ***!
742
+ \********************************************************************************************************************************************************************************************************************************************************************************/
743
+
744
+ .zw-dropdown__option[data-v-10a0f0b7] {
745
+ width: 100%;
746
+ display: block;
747
+ color: rgb(var(--zw-color-white));
748
+ padding-top: var(--zw-offset-xxs);
749
+ padding-right: var(--zw-offset-sm);
750
+ padding-left: calc(var(--zw-offset-sm) + var(--zw-option-offset, 0px));
751
+ padding-bottom: var(--zw-offset-xxs);
752
+ text-align: left;
753
+ transition: 0.1s background-color ease-out;
754
+ will-change: background-color;
755
+ }
756
+ .zw-dropdown__option[data-v-10a0f0b7]:hover,
757
+ .zw-dropdown__option[data-v-10a0f0b7]:focus,
758
+ .zw-dropdown__option--active[data-v-10a0f0b7] {
759
+ background-color: rgb(var(--zw-color-n30));
760
+ }
761
+
762
+ /*!*******************************************************************************************************************************************************************************************************************************************************************************!*\
763
+ !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./lib/components/base/dropdown/DropdownGroup.vue?vue&type=style&index=0&id=207aa7a6&scoped=true&lang=css& ***!
764
+ \*******************************************************************************************************************************************************************************************************************************************************************************/
765
+
766
+ .zw-dropdown__group[data-v-207aa7a6] {
767
+ padding-top: var(--zw-offset-xs);
768
+ padding-bottom: var(--zw-offset-xs);
769
+ --zw-option-offset: var(--zw-offset-xs);
770
+ }
771
+ .zw-dropdown__group-title[data-v-207aa7a6] {
772
+ color: var(--zw-color-n70);
773
+ font-weight: var(--zw-font-weight-semibold);
774
+ padding-left: var(--zw-offset-sm);
775
+ padding-right: var(--zw-offset-sm);
776
+ margin-top: 0;
777
+ margin-bottom: var(--zw-offset-xs);
778
+ }
779
+
780
+ /*!*********************************************************************************************************************************************************************************************************************************************************************************!*\
781
+ !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./lib/components/base/dropdown/DropdownDivider.vue?vue&type=style&index=0&id=72e4c372&scoped=true&lang=css& ***!
782
+ \*********************************************************************************************************************************************************************************************************************************************************************************/
783
+
784
+ .zw-dropdown__divider[data-v-72e4c372] {
785
+ padding: 0 var(--zw-offset-sm);
786
+ }
787
+ .zw-dropdown__divider[data-v-72e4c372]::before {
788
+ content: "";
789
+ display: block;
790
+ border-bottom: 1px solid rgb(var(--zw-color-n30));
791
+ }
792
+
793
+ /*!******************************************************************************************************************************************************************************************************************************************************!*\
794
+ !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./lib/components/base/dropdown/DropdownMenu.vue?vue&type=style&index=0&lang=css& ***!
795
+ \******************************************************************************************************************************************************************************************************************************************************/
796
+
797
+ .zw-dropdown__menu {
798
+ padding-top: var(--zw-offset-xs);
799
+ padding-bottom: var(--zw-offset-xs);
800
+ }
801
+
802
+ /*!**************************************************************************************************************************************************************************************************************************************************************************!*\
803
+ !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./lib/components/base/dropdown/Dropdown.vue?vue&type=style&index=0&id=35f81e22&scoped=true&lang=css& ***!
804
+ \**************************************************************************************************************************************************************************************************************************************************************************/
805
+
806
+ .zw-dropdown[data-v-35f81e22] {
807
+ position: relative;
808
+ font-size: var(--zw-font-size-xs);
809
+ line-height: var(--zw-line-height-xxs);
810
+ }
811
+
812
+ /*!***************************************************************************************************************************************************************************************************************************************************************************************!*\
813
+ !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./lib/components/toolbar/controls/StylePresetControl.vue?vue&type=style&index=0&id=0f6b31b1&scoped=true&lang=css& ***!
814
+ \***************************************************************************************************************************************************************************************************************************************************************************************/
815
+
816
+ .zw-style-preset-control[data-v-0f6b31b1] {
817
+ display: flex;
818
+ align-items: center;
819
+ }
820
+ .zw-style-preset-control__dropdown[data-v-0f6b31b1] {
821
+ width: 96px;
822
+ }
823
+ .zw-style-preset-control__reset[data-v-0f6b31b1] {
824
+ color: rgb(var(--zw-color-n70));
825
+ }
826
+ .zw-style-preset-control__reset[data-v-0f6b31b1]:not(:disabled):hover,
827
+ .zw-style-preset-control__reset[data-v-0f6b31b1]:not(:disabled):focus,
828
+ .zw-style-preset-control__reset[data-v-0f6b31b1]:not(:disabled):focus-within {
829
+ color: rgb(var(--zw-color-white));
830
+ }
831
+
832
+ /*!**************************************************************************************************************************************************************************************************************************************************************************************!*\
833
+ !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./lib/components/toolbar/controls/FontFamilyControl.vue?vue&type=style&index=0&id=2e95c716&scoped=true&lang=css& ***!
834
+ \**************************************************************************************************************************************************************************************************************************************************************************************/
835
+
836
+ .zw-font-family-control[data-v-2e95c716] {
837
+ width: 96px;
838
+ }
839
+ .zw-font-family-control__option[data-v-2e95c716] {
840
+ font-weight: 400;
841
+ font-family: var(--zw-font-family-option);
842
+ width: 150px;
843
+ }
844
+
845
+ /*!************************************************************************************************************************************************************************************************************************************************************************************!*\
846
+ !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./lib/components/toolbar/controls/FontSizeControl.vue?vue&type=style&index=0&id=a2e458ce&scoped=true&lang=css& ***!
847
+ \************************************************************************************************************************************************************************************************************************************************************************************/
848
+
849
+ .zw-font-size-control[data-v-a2e458ce] {
850
+ width: 64px;
851
+ }
852
+
853
+ /*!*******************************************************************************************************************************************************************************************************************************************************************************************!*\
854
+ !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./lib/components/toolbar/controls/AlignmentDeviceControl.vue?vue&type=style&index=0&id=9713d430&scoped=true&lang=css& ***!
855
+ \*******************************************************************************************************************************************************************************************************************************************************************************************/
856
+
857
+ .zw-alignment-control__modal[data-v-9713d430] {
858
+ padding: var(--zw-offset-xxs);
859
+ }
860
+ .zw-alignment-control__toggle[data-v-9713d430] {
861
+ flex-direction: column;
862
+ }
863
+
864
+ /*!**************************************************************************************************************************************************************************************************************************************************************************************!*\
865
+ !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./lib/components/toolbar/controls/LineHeightControl.vue?vue&type=style&index=0&id=b87c3724&scoped=true&lang=css& ***!
866
+ \**************************************************************************************************************************************************************************************************************************************************************************************/
867
+
868
+ .zw-line-height-control__modal[data-v-b87c3724] {
869
+ padding: var(--zw-offset-sm);
870
+ }
871
+ .zw-line-height-control__row[data-v-b87c3724] {
872
+ display: flex;
873
+ align-items: center;
874
+ }
875
+ .zw-line-height-control__range[data-v-b87c3724] {
876
+ width: 156px;
877
+ }
878
+ .zw-line-height-control__field[data-v-b87c3724] {
879
+ width: 52px;
880
+ margin-left: var(--zw-offset-sm);
881
+ }
882
+
883
+ /*!********************************************************************************************************************************************************************************************************************************************************************************!*\
884
+ !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./lib/components/toolbar/controls/ListControl.vue?vue&type=style&index=0&id=305d852b&scoped=true&lang=css& ***!
885
+ \********************************************************************************************************************************************************************************************************************************************************************************/
886
+
887
+ .zw-list-control__option[data-v-305d852b] {
888
+ padding: 0 var(--zw-offset-xs);
889
+ display: flex;
890
+ }
891
+
892
+ /*!*******************************************************************************************************************************************************************************************************************************************************************************************!*\
893
+ !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./lib/components/toolbar/controls/link/LinkControlHeader.vue?vue&type=style&index=0&id=1b67b282&scoped=true&lang=css& ***!
894
+ \*******************************************************************************************************************************************************************************************************************************************************************************************/
895
+
896
+ .zw-link-modal-header[data-v-1b67b282] {
897
+ display: flex;
898
+ align-items: center;
899
+ justify-content: space-between;
900
+ padding: var(--zw-offset-sm);
901
+ border-bottom: 2px solid rgb(var(--zw-color-n5));
902
+ }
903
+ .zw-link-modal-header__title[data-v-1b67b282] {
904
+ text-transform: uppercase;
905
+ font-weight: var(--zw-font-weight-semibold);
906
+ font-size: var(--zw-font-size-xxs);
907
+ color: rgb(var(--zw-color-white));
908
+ }
909
+ .zw-link-modal-header__unlink-icon[data-v-1b67b282] {
910
+ margin-right: var(--zw-offset-xxs);
911
+ }
912
+ .zw-link-modal-header__unlink-button[data-v-1b67b282] {
913
+ color: rgb(var(--zw-color-n80));
914
+ font-size: var(--zw-font-size-xxs);
915
+ transition: 0.1s opacity ease-out;
916
+ will-change: opacity;
917
+ }
918
+ .zw-link-modal-header__unlink-button[data-v-1b67b282]:disabled {
919
+ opacity: 0.35;
920
+ }
921
+ .zw-link-modal-header__unlink-button[data-v-1b67b282]:hover {
922
+ color: rgb(var(--zw-color-white));
923
+ }
924
+
925
+ /*!******************************************************************************************************************************************************************************************************************************************************************************************!*\
926
+ !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./lib/components/toolbar/controls/link/LinkControlApply.vue?vue&type=style&index=0&id=77b6c3ac&scoped=true&lang=css& ***!
927
+ \******************************************************************************************************************************************************************************************************************************************************************************************/
928
+
929
+ .zw-link-modal__apply[data-v-77b6c3ac] {
930
+ display: flex;
931
+ justify-content: flex-end;
932
+ }
933
+
934
+ /*!*************************************************************************************************************************************************************************************************************************************************************************************!*\
935
+ !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./lib/components/toolbar/controls/link/LinkControl.vue?vue&type=style&index=0&id=30870bdc&scoped=true&lang=css& ***!
936
+ \*************************************************************************************************************************************************************************************************************************************************************************************/
937
+
938
+ .zw-link-modal[data-v-30870bdc] {
939
+ width: 266px;
940
+ }
941
+ .zw-link-modal__body[data-v-30870bdc] {
942
+ padding: var(--zw-offset-sm);
943
+ }
944
+ [data-v-30870bdc] .zw-link-modal-dropdown__option {
945
+ width: 234px;
946
+ }
947
+
948
+ /*!*******************************************************************************************************************************************************************************************************************************************************************!*\
949
+ !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./lib/components/toolbar/Toolbar.vue?vue&type=style&index=0&id=05accea6&scoped=true&lang=css& ***!
950
+ \*******************************************************************************************************************************************************************************************************************************************************************/
951
+
952
+ .zw-toolbar[data-v-05accea6] {
953
+ border-radius: 2px;
954
+ background-color: rgb(var(--zw-color-n15));
955
+ color: rgb(var(--zw-color-n70));
956
+ z-index: 999999;
957
+ }
958
+ .zw-toolbar[data-v-05accea6]::before,
959
+ .zw-toolbar[data-v-05accea6]::after {
960
+ content: "";
961
+ display: block;
962
+ width: 100%;
963
+ height: calc(var(--zw-toolbar-offset-y) + 4px);
964
+ position: absolute;
965
+ --zw-toolbar-safe-zone: calc(-1 * var(--zw-toolbar-offset-y));
966
+ }
967
+ .zw-toolbar[data-v-05accea6]::before {
968
+ top: var(--zw-toolbar-safe-zone);
969
+ }
970
+ .zw-toolbar[data-v-05accea6]::after {
971
+ bottom: var(--zw-toolbar-safe-zone);
972
+ }
973
+ .zw-toolbar--enter-active[data-v-05accea6],
974
+ .zw-toolbar--leave-active[data-v-05accea6] {
975
+ transition: opacity 150ms ease-out;
976
+ }
977
+ .zw-toolbar--leave-active[data-v-05accea6] {
978
+ transition: opacity 0s ease-in;
979
+ }
980
+ .zw-toolbar--enter[data-v-05accea6],
981
+ .zw-toolbar--leave-to[data-v-05accea6] {
982
+ opacity: 0;
983
+ }
984
+
985
+ /*!****************************************************************************!*\
986
+ !*** css ./node_modules/css-loader/dist/cjs.js!./lib/styles/variables.css ***!
987
+ \****************************************************************************/
988
+ .zw-wysiwyg {
989
+ --zw-color-n5: 13, 13, 13; /* #0D0D0D; */
990
+ --zw-color-n15: 38, 38, 38; /* #262626; */
991
+ --zw-color-n20: 59, 59, 59; /* #3B3B3B; */
992
+ --zw-color-n30: 77, 77, 77; /* #4D4D4D; */
993
+ --zw-color-n60: 153, 153, 153; /* #999999 */
994
+ --zw-color-n70: 179, 179, 179; /* #B3B3B3 */
995
+ --zw-color-n80: 196, 196, 196; /* #C4C4C4 */
996
+ --zw-color-n85: 217, 217, 217; /* #D9D9D9 */
997
+ --zw-color-n90: 230, 230, 230; /* #E6E6E6 */
998
+ --zw-color-n200: 194, 200, 209; /* #C2C8D1 */
999
+ --zw-color-black: 0, 0, 0;
1000
+ --zw-color-white: 255, 255, 255;
1001
+ --zw-color-green: 59, 180, 74; /* #3BB44A */
1002
+ --zw-color-red: 234, 58, 58; /* #EA3A3A */
1003
+
1004
+ --zw-offset-xxs: 4px;
1005
+ --zw-offset-xs: 8px;
1006
+ --zw-offset-xsm: 12px;
1007
+ --zw-offset-sm: 16px;
1008
+ --zw-offset-md: 24px;
1009
+
1010
+ --zw-font-weight-thin: 400;
1011
+ --zw-font-weight-semibold: 500;
1012
+
1013
+ --zw-font-size-xxs: 12px;
1014
+ --zw-font-size-xs: 14px;
1015
+
1016
+ --zw-line-height-xxs: 1.21;
1017
+ --zw-line-height-md: 1.72;
1018
+ }
1019
+
1020
+ /*
1021
+ $builder-N5: #0D0D0D;
1022
+ $builder-N10: #1A1A1A;
1023
+ $builder-N15: #262626;
1024
+ $builder-N20: #3B3B3B;
1025
+ $builder-N30: #4D4D4D;
1026
+ $builder-N40: #666;
1027
+ $builder-N50: #808080;
1028
+ $builder-N60: #999;
1029
+ $builder-N70: #B3B3B3;
1030
+ $builder-N80: #C4C4C4;
1031
+ $builder-N85: #D9D9D9;
1032
+ $builder-N90: #E6E6E6;
1033
+ $builder-N94: #F0F0F0;
1034
+ $builder-N96: #F5F5F5;
1035
+ $builder-N98: #FAFAFA;
1036
+ $builder-N200: #C2C8D1;
1037
+ $builder-R50: #EA3A3A;
1038
+
1039
+ $font-size-xxs: 12px;
1040
+ $font-size-xs: 14px;
1041
+ $font-size-sm: 16px;
1042
+ $font-size-md: 18px;
1043
+ $font-size-lmd: 20px;
1044
+ $font-size-lg: 24px;
1045
+
1046
+ $font-height--xxs: 1.2;
1047
+ $font-height--xs: 1.33;
1048
+ $font-height--sm: 1.43;
1049
+ $font-height--md: 1.72;
1050
+ */
1051
+
1052
+ /*!**************************************************************************!*\
1053
+ !*** css ./node_modules/css-loader/dist/cjs.js!./lib/styles/content.css ***!
1054
+ \**************************************************************************/
1055
+ .zw-wysiwyg [contenteditable] {
1056
+ outline: none;
1057
+ }
1058
+
1059
+ .zw-wysiwyg__placeholder:first-child:last-child::before {
1060
+ content: attr(data-placeholder);
1061
+ color: rgb(var(--zw-color-n70));
1062
+ float: left;
1063
+ height: 0;
1064
+ pointer-events: none;
1065
+ }
1066
+
1067
+ .zw-style {
1068
+ font-weight: var(--zw-font-weight, var(--zw-preset-font-weight));
1069
+ font-family: var(--zw-font-family, var(--zw-preset-font-family));
1070
+ color: var(--zw-font-color, var(--zw-preset-color));
1071
+ font-style: var(--zw-font-style, var(--zw-preset-font-style));
1072
+ text-decoration: var(--zw-text-decoration, var(--zw-preset-text-decoration));
1073
+ background-color: var(--zw-background-color, var(--zw-preset-background-color));
1074
+ }
1075
+
1076
+ @media (min-width: 1200px) {
1077
+
1078
+ .zw-style {
1079
+ font-size: var(--zw-font-size-desktop, var(--zw-preset-desktop-font-size));
1080
+ text-align: var(--zw-text-align-desktop, var(--zw-preset-desktop-text-align));
1081
+ line-height: var(--zw-line-height-desktop, var(--zw-preset-desktop-line-height));
1082
+ }
1083
+ }
1084
+
1085
+ @media (min-width: 769px) and (max-width: 1199.98px) {
1086
+
1087
+ .zw-style {
1088
+ font-size: var(--zw-font-size-tablet, var(--zw-preset-tablet-font-size));
1089
+ text-align: var(--zw-text-align-tablet, var(--zw-preset-tablet-text-align));
1090
+ line-height: var(--zw-line-height-tablet, var(--zw-preset-tablet-line-height));
1091
+ }
1092
+ }
1093
+
1094
+ @media (max-width: 768.98px) {
1095
+
1096
+ .zw-style {
1097
+ font-size: var(--zw-font-size-mobile, var(--zw-preset-mobile-font-size));
1098
+ text-align: var(--zw-text-align-mobile, var(--zw-preset-mobile-text-align));
1099
+ line-height: var(--zw-line-height-mobile, var(--zw-preset-mobile-line-height));
1100
+ }
1101
+ }
1102
+
1103
+ /* ProseMirror styles */
1104
+
1105
+ .ProseMirror {
1106
+ position: relative;
1107
+ }
1108
+
1109
+ .ProseMirror {
1110
+ word-wrap: break-word;
1111
+ white-space: pre-wrap;
1112
+ white-space: break-spaces;
1113
+ -webkit-font-variant-ligatures: none;
1114
+ font-variant-ligatures: none;
1115
+ font-feature-settings: "liga" 0; /* the above doesn't seem to work in Edge */
1116
+ }
1117
+
1118
+ .ProseMirror [contenteditable="false"] {
1119
+ white-space: normal;
1120
+ }
1121
+
1122
+ .ProseMirror [contenteditable="false"] [contenteditable="true"] {
1123
+ white-space: pre-wrap;
1124
+ }
1125
+
1126
+ .ProseMirror pre {
1127
+ white-space: pre-wrap;
1128
+ }
1129
+
1130
+ img.ProseMirror-separator {
1131
+ display: inline !important;
1132
+ border: none !important;
1133
+ margin: 0 !important;
1134
+ width: 1px !important;
1135
+ height: 1px !important;
1136
+ }
1137
+
1138
+ .ProseMirror-gapcursor {
1139
+ display: none;
1140
+ pointer-events: none;
1141
+ position: absolute;
1142
+ margin: 0;
1143
+ }
1144
+
1145
+ .ProseMirror-gapcursor::after {
1146
+ content: "";
1147
+ display: block;
1148
+ position: absolute;
1149
+ top: -2px;
1150
+ width: 20px;
1151
+ border-top: 1px solid #000;
1152
+ animation: ProseMirror-cursor-blink 1.1s steps(2, start) infinite;
1153
+ }
1154
+
1155
+ @keyframes ProseMirror-cursor-blink {
1156
+
1157
+ to {
1158
+ visibility: hidden;
1159
+ }
1160
+ }
1161
+
1162
+ .ProseMirror-hideselection *::selection {
1163
+ background: transparent;
1164
+ }
1165
+
1166
+ .ProseMirror-hideselection *::-moz-selection {
1167
+ background: transparent;
1168
+ }
1169
+
1170
+ .ProseMirror-hideselection * {
1171
+ caret-color: transparent;
1172
+ }
1173
+
1174
+ .ProseMirror-focused .ProseMirror-gapcursor {
1175
+ display: block;
1176
+ }
1177
+
1178
+ .tippy-box[data-animation=fade][data-state=hidden] {
1179
+ opacity: 0
1180
+ }
1181
+
1182
+ /*!*******************************************************************************!*\
1183
+ !*** css ./node_modules/css-loader/dist/cjs.js!./lib/styles/helpers/text.css ***!
1184
+ \*******************************************************************************/
1185
+ .zw-text--truncate {
1186
+ white-space: nowrap;
1187
+ overflow: hidden;
1188
+ text-overflow: ellipsis;
1189
+ max-width: 100%;
1190
+ }
1191
+
1192
+ /*!*********************************************************************************!*\
1193
+ !*** css ./node_modules/css-loader/dist/cjs.js!./lib/styles/helpers/common.css ***!
1194
+ \*********************************************************************************/
1195
+ .zw-position--relative {
1196
+ position: relative;
1197
+ }
1198
+
1199
+ /*!**********************************************************************************!*\
1200
+ !*** css ./node_modules/css-loader/dist/cjs.js!./lib/styles/helpers/offsets.css ***!
1201
+ \**********************************************************************************/
1202
+ .zw-margin-bottom--xxs {
1203
+ margin-bottom: var(--zw-offset-xxs);
1204
+ }
1205
+
1206
+ .zw-margin-bottom--xs {
1207
+ margin-bottom: var(--zw-offset-xs);
1208
+ }
1209
+
1210
+ .zw-margin-bottom--sm {
1211
+ margin-bottom: var(--zw-offset-sm);
1212
+ }
1213
+
1214
+ .zw-margin-bottom--md {
1215
+ margin-bottom: var(--zw-offset-md);
1216
+ }
1217
+
1218
+ .zw-margin-right--xs {
1219
+ margin-right: var(--zw-offset-xs);
1220
+ }
1221
+
1222
+ /*!*****************************************************************************************************************************************************************!*\
1223
+ !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./lib/styles/main.css?vue&type=style&index=0&lang=css& ***!
1224
+ \*****************************************************************************************************************************************************************/
1225
+
1226
+