@redvars/peacock 3.8.5 → 3.8.6

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 (44) hide show
  1. package/dist/button.js +4 -0
  2. package/dist/button.js.map +1 -1
  3. package/dist/custom-elements-jsdocs.json +185 -15
  4. package/dist/custom-elements.json +886 -177
  5. package/dist/floating-controller-CZYwnRVu.js +185 -0
  6. package/dist/floating-controller-CZYwnRVu.js.map +1 -0
  7. package/dist/{floating-controller-CnUZnOhK.js → floating-ui.dom-oQieRCpS.js} +2 -183
  8. package/dist/floating-ui.dom-oQieRCpS.js.map +1 -0
  9. package/dist/html-editor.js +3 -21091
  10. package/dist/html-editor.js.map +1 -1
  11. package/dist/index-DcbiqHpf.js +21091 -0
  12. package/dist/index-DcbiqHpf.js.map +1 -0
  13. package/dist/index.js +5 -2
  14. package/dist/index.js.map +1 -1
  15. package/dist/loader.js +7 -2
  16. package/dist/loader.js.map +1 -1
  17. package/dist/markdown-editor.js +4439 -0
  18. package/dist/markdown-editor.js.map +1 -0
  19. package/dist/menu.js +2 -1
  20. package/dist/menu.js.map +1 -1
  21. package/dist/popover.js +2 -1
  22. package/dist/popover.js.map +1 -1
  23. package/dist/{select-D85kpjUt.js → select-CnnPbvpQ.js} +68 -71
  24. package/dist/select-CnnPbvpQ.js.map +1 -0
  25. package/dist/src/index.d.ts +1 -0
  26. package/dist/src/input/input.d.ts +5 -5
  27. package/dist/src/markdown-editor/index.d.ts +2 -0
  28. package/dist/src/markdown-editor/markdown-editor.d.ts +116 -0
  29. package/dist/sub-menu.js +2 -1
  30. package/dist/sub-menu.js.map +1 -1
  31. package/dist/tooltip.js +2 -1
  32. package/dist/tooltip.js.map +1 -1
  33. package/dist/tsconfig.tsbuildinfo +1 -1
  34. package/package.json +5 -1
  35. package/readme.md +2 -2
  36. package/src/button/button/button-sizes.scss +4 -0
  37. package/src/index.ts +1 -0
  38. package/src/input/input.ts +85 -82
  39. package/src/loader.ts +4 -0
  40. package/src/markdown-editor/index.ts +3 -0
  41. package/src/markdown-editor/markdown-editor.scss +378 -0
  42. package/src/markdown-editor/markdown-editor.ts +994 -0
  43. package/dist/floating-controller-CnUZnOhK.js.map +0 -1
  44. package/dist/select-D85kpjUt.js.map +0 -1
@@ -0,0 +1,378 @@
1
+ @use '../../scss/mixin';
2
+
3
+ @include mixin.base-styles;
4
+
5
+ :host {
6
+ display: block;
7
+ width: 100%;
8
+ position: relative;
9
+ }
10
+
11
+ // ── Field wrapper overrides ─────────────────────────────────────────────────
12
+
13
+ .markdown-editor-field {
14
+ --field-height: auto;
15
+ --field-padding-block: 0;
16
+ --code-editor-height: var(--markdown-editor-min-height, 12rem);
17
+
18
+ width: 100%;
19
+ }
20
+
21
+ // ── Editable content area ───────────────────────────────────────────────────
22
+
23
+ .markdown-editor-content {
24
+ min-height: var(--markdown-editor-min-height, 12rem);
25
+ // Left padding is wider to create a gutter for the block handle panel.
26
+ padding: var(--spacing-200, 1rem) var(--spacing-200, 1rem)
27
+ var(--spacing-200, 1rem) 2.5rem;
28
+ outline: none;
29
+ color: var(--color-on-surface, #1c1b1f);
30
+ font-family: var(--typography-body-large-font-family, inherit);
31
+ font-size: var(--typography-body-large-font-size, 1rem);
32
+ line-height: var(--typography-body-large-line-height, 1.6);
33
+ cursor: text;
34
+ word-break: break-word;
35
+ overflow-wrap: break-word;
36
+
37
+ &.hidden {
38
+ display: none;
39
+ }
40
+
41
+ .tiptap-root,
42
+ .ProseMirror {
43
+ outline: none;
44
+ min-height: calc(var(--markdown-editor-min-height, 12rem) - 2rem);
45
+ }
46
+
47
+ .ProseMirror p.is-editor-empty:first-child::before {
48
+ content: attr(data-placeholder);
49
+ color: var(--color-on-surface-variant, #49454f);
50
+ opacity: 0.55;
51
+ pointer-events: none;
52
+ float: left;
53
+ height: 0;
54
+ }
55
+
56
+ // ── Notion-like block typography ──────────────────────────────────────────
57
+
58
+ .ProseMirror {
59
+ h1 {
60
+ font-size: 1.875rem;
61
+ font-weight: 700;
62
+ line-height: 1.25;
63
+ margin: 1.4rem 0 0.4rem;
64
+ }
65
+
66
+ h2 {
67
+ font-size: 1.5rem;
68
+ font-weight: 700;
69
+ line-height: 1.3;
70
+ margin: 1.2rem 0 0.35rem;
71
+ }
72
+
73
+ h3 {
74
+ font-size: 1.25rem;
75
+ font-weight: 600;
76
+ line-height: 1.35;
77
+ margin: 1rem 0 0.3rem;
78
+ }
79
+
80
+ p {
81
+ margin: 0.25rem 0;
82
+ }
83
+
84
+ ul,
85
+ ol {
86
+ padding-inline-start: 1.5rem;
87
+ margin: 0.35rem 0;
88
+ }
89
+
90
+ li > p {
91
+ margin: 0.1rem 0;
92
+ }
93
+
94
+ blockquote {
95
+ margin: 0.6rem 0;
96
+ padding: 0.25rem 0 0.25rem 0.85rem;
97
+ border-inline-start: 3px solid
98
+ var(--color-outline-variant, #cac4d0);
99
+ color: var(--color-on-surface-variant, #49454f);
100
+ }
101
+
102
+ pre {
103
+ background: var(--color-surface-container-high, #ece6f0);
104
+ color: var(--color-on-surface, #1c1b1f);
105
+ padding: 0.75rem 1rem;
106
+ border-radius: var(--shape-corner-small, 0.5rem);
107
+ font-family: var(--typography-code-font-family, monospace);
108
+ font-size: 0.85rem;
109
+ line-height: 1.5;
110
+ overflow-x: auto;
111
+ margin: 0.6rem 0;
112
+ }
113
+
114
+ code {
115
+ font-family: var(--typography-code-font-family, monospace);
116
+ font-size: 0.85em;
117
+ background: color-mix(
118
+ in srgb,
119
+ var(--color-on-surface, #1c1b1f) 8%,
120
+ transparent
121
+ );
122
+ padding: 0.1em 0.35em;
123
+ border-radius: var(--shape-corner-extra-small, 0.25rem);
124
+ }
125
+
126
+ pre code {
127
+ background: transparent;
128
+ padding: 0;
129
+ border-radius: 0;
130
+ }
131
+
132
+ hr {
133
+ border: none;
134
+ border-top: 1px solid var(--color-outline-variant, #cac4d0);
135
+ margin: 1rem 0;
136
+ }
137
+
138
+ a {
139
+ color: var(--color-primary, #6750a4);
140
+ text-decoration: underline;
141
+ }
142
+
143
+ strong,
144
+ b {
145
+ font-weight: 600;
146
+ }
147
+ }
148
+ }
149
+
150
+ .markdown-source {
151
+ &.hidden {
152
+ display: none;
153
+ }
154
+ }
155
+
156
+ // ── Bottom mode switcher ────────────────────────────────────────────────────
157
+
158
+ .mode-switcher {
159
+ display: flex;
160
+ justify-content: flex-end;
161
+ padding: var(--spacing-050, 0.25rem) var(--spacing-100, 0.5rem)
162
+ var(--spacing-075, 0.375rem);
163
+ border-block-start: 1px solid
164
+ var(--color-outline-variant, #cac4d0);
165
+ }
166
+
167
+ // ── Floating bubble menu (selection toolbar) ────────────────────────────────
168
+
169
+ .bubble-menu {
170
+ position: fixed;
171
+ z-index: 50;
172
+ display: none;
173
+ align-items: center;
174
+ gap: var(--spacing-025, 0.125rem);
175
+ padding: var(--spacing-025, 0.125rem);
176
+ background: var(
177
+ --markdown-editor-bubble-background,
178
+ var(--color-surface-container-highest, #e6e0e9)
179
+ );
180
+ border: 1px solid var(--color-outline-variant, #cac4d0);
181
+ border-radius: var(--shape-corner-small, 0.5rem);
182
+ box-shadow: var(
183
+ --elevation-2,
184
+ 0 2px 6px rgba(0, 0, 0, 0.12),
185
+ 0 1px 2px rgba(0, 0, 0, 0.08)
186
+ );
187
+
188
+ &.open {
189
+ display: inline-flex;
190
+ }
191
+ }
192
+
193
+ // ── Floating slash command menu ─────────────────────────────────────────────
194
+
195
+ .slash-menu {
196
+ position: fixed;
197
+ z-index: 50;
198
+ display: none;
199
+ flex-direction: column;
200
+ min-width: 14rem;
201
+ max-height: 18rem;
202
+ overflow-y: auto;
203
+ padding: var(--spacing-050, 0.25rem);
204
+ background: var(
205
+ --markdown-editor-slash-background,
206
+ var(--color-surface-container-highest, #e6e0e9)
207
+ );
208
+ border: 1px solid var(--color-outline-variant, #cac4d0);
209
+ border-radius: var(--shape-corner-small, 0.5rem);
210
+ box-shadow: var(
211
+ --elevation-2,
212
+ 0 4px 10px rgba(0, 0, 0, 0.14),
213
+ 0 1px 3px rgba(0, 0, 0, 0.08)
214
+ );
215
+
216
+ &.open {
217
+ display: flex;
218
+ }
219
+ }
220
+
221
+ .slash-item {
222
+ display: flex;
223
+ align-items: center;
224
+ gap: var(--spacing-100, 0.5rem);
225
+ padding: var(--spacing-075, 0.375rem) var(--spacing-100, 0.5rem);
226
+ border: none;
227
+ background: transparent;
228
+ border-radius: var(--shape-corner-extra-small, 0.25rem);
229
+ cursor: pointer;
230
+ color: var(--color-on-surface, #1c1b1f);
231
+ font-size: 0.875rem;
232
+ text-align: start;
233
+
234
+ &:hover,
235
+ &.active {
236
+ background: color-mix(
237
+ in srgb,
238
+ var(--color-primary, #6750a4) 12%,
239
+ transparent
240
+ );
241
+ }
242
+
243
+ .slash-item-label {
244
+ font-weight: 500;
245
+ }
246
+
247
+ .slash-item-hint {
248
+ margin-inline-start: auto;
249
+ color: var(--color-on-surface-variant, #49454f);
250
+ font-size: 0.75rem;
251
+ opacity: 0.75;
252
+ }
253
+ }
254
+
255
+ // ── Toolbar buttons (used inside bubble menu) ───────────────────────────────
256
+
257
+ .toolbar-btn {
258
+ display: inline-flex;
259
+ align-items: center;
260
+ justify-content: center;
261
+ width: 1.75rem;
262
+ height: 1.75rem;
263
+ padding: 0;
264
+ border: none;
265
+ border-radius: var(--shape-corner-extra-small, 0.25rem);
266
+ background: transparent;
267
+ color: var(--color-on-surface-variant, #49454f);
268
+ cursor: pointer;
269
+ transition:
270
+ background 120ms ease,
271
+ color 120ms ease;
272
+
273
+ &:hover:not(:disabled) {
274
+ background: color-mix(
275
+ in srgb,
276
+ var(--color-on-surface-variant, #49454f) 10%,
277
+ transparent
278
+ );
279
+ }
280
+
281
+ &.active {
282
+ background: color-mix(
283
+ in srgb,
284
+ var(--color-primary, #6750a4) 16%,
285
+ transparent
286
+ );
287
+ color: var(--color-primary, #6750a4);
288
+ }
289
+
290
+ &:disabled {
291
+ opacity: 0.38;
292
+ cursor: not-allowed;
293
+ }
294
+
295
+ wc-icon {
296
+ pointer-events: none;
297
+ }
298
+ }
299
+
300
+ // ── Block handle (insert + drag) ────────────────────────────────────────────
301
+
302
+ .block-handle {
303
+ position: fixed;
304
+ z-index: 50;
305
+ display: none;
306
+ flex-direction: column;
307
+ gap: var(--spacing-025, 0.125rem);
308
+
309
+ &.visible {
310
+ display: flex;
311
+ }
312
+ }
313
+
314
+ .block-handle-btn {
315
+ display: inline-flex;
316
+ align-items: center;
317
+ justify-content: center;
318
+ width: 1.75rem;
319
+ height: 1.75rem;
320
+ padding: 0;
321
+ border: 1px solid var(--color-outline-variant, #cac4d0);
322
+ border-radius: var(--shape-corner-extra-small, 0.25rem);
323
+ background: var(--color-surface-container-highest, #e6e0e9);
324
+ color: var(--color-on-surface-variant, #49454f);
325
+ cursor: pointer;
326
+ transition:
327
+ background 120ms ease,
328
+ color 120ms ease;
329
+
330
+ &:hover:not(:disabled) {
331
+ background: color-mix(
332
+ in srgb,
333
+ var(--color-on-surface-variant, #49454f) 12%,
334
+ transparent
335
+ );
336
+ }
337
+
338
+ &:disabled {
339
+ opacity: 0.38;
340
+ cursor: not-allowed;
341
+ }
342
+
343
+ &.drag-btn {
344
+ cursor: grab;
345
+
346
+ &:active {
347
+ cursor: grabbing;
348
+ }
349
+ }
350
+
351
+ wc-icon {
352
+ pointer-events: none;
353
+ }
354
+ }
355
+
356
+ // ProseMirror drop cursor shown during block drag
357
+ .ProseMirror-dropcursor {
358
+ border-top: 2px solid var(--color-primary, #6750a4) !important;
359
+ }
360
+
361
+ // ── Read-only tag ───────────────────────────────────────────────────────────
362
+
363
+ .read-only-tag {
364
+ margin: var(--spacing-050, 0.25rem);
365
+ }
366
+
367
+ // ── Disabled / readonly host states ─────────────────────────────────────────
368
+
369
+ :host([disabled]) .markdown-editor-content,
370
+ :host([readonly]) .markdown-editor-content {
371
+ cursor: not-allowed;
372
+ opacity: 0.6;
373
+ }
374
+
375
+ :host([disabled]) .markdown-source,
376
+ :host([readonly]) .markdown-source {
377
+ opacity: 0.7;
378
+ }