@withwiz/block-editor 0.1.0

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 (40) hide show
  1. package/README.md +219 -0
  2. package/dist/blocks/built-in.d.ts +6 -0
  3. package/dist/blocks/built-in.js +11 -0
  4. package/dist/chunk-3R3HAGQL.js +102 -0
  5. package/dist/chunk-62BAOSP6.js +100 -0
  6. package/dist/chunk-CJGZUEQO.js +270 -0
  7. package/dist/chunk-CLC3FEL2.js +313 -0
  8. package/dist/chunk-CYMYM7LP.js +25 -0
  9. package/dist/chunk-EERQYNER.js +123 -0
  10. package/dist/chunk-G6J2DCC5.js +77 -0
  11. package/dist/chunk-N3ETBM74.js +24 -0
  12. package/dist/chunk-PPVXNJWI.js +28 -0
  13. package/dist/chunk-QR225IXX.js +148 -0
  14. package/dist/chunk-VIJV6FLT.js +250 -0
  15. package/dist/components/ArtistEditor.d.ts +12 -0
  16. package/dist/components/ArtistEditor.js +11 -0
  17. package/dist/components/BlockEditor.d.ts +24 -0
  18. package/dist/components/BlockEditor.js +16 -0
  19. package/dist/components/BlockRenderer.d.ts +10 -0
  20. package/dist/components/BlockRenderer.js +12 -0
  21. package/dist/components/ImageUploadField.d.ts +11 -0
  22. package/dist/components/ImageUploadField.js +11 -0
  23. package/dist/context/BlockEditorProvider.d.ts +21 -0
  24. package/dist/context/BlockEditorProvider.js +10 -0
  25. package/dist/core/html-renderer.d.ts +13 -0
  26. package/dist/core/html-renderer.js +11 -0
  27. package/dist/core/image-resize.d.ts +17 -0
  28. package/dist/core/image-resize.js +11 -0
  29. package/dist/core/serializer.d.ts +9 -0
  30. package/dist/core/serializer.js +7 -0
  31. package/dist/hooks/useImageDropZone.d.ts +23 -0
  32. package/dist/hooks/useImageDropZone.js +10 -0
  33. package/dist/index.d.ts +11 -0
  34. package/dist/index.js +57 -0
  35. package/dist/types.d.ts +67 -0
  36. package/dist/types.js +0 -0
  37. package/package.json +43 -0
  38. package/styles/artist.css +332 -0
  39. package/styles/editor.css +394 -0
  40. package/styles/preview.css +203 -0
@@ -0,0 +1,203 @@
1
+ /* ═══════════════════════════════════════════════
2
+ @withwiz/block-editor — Default Preview Styles
3
+ CSS prefix: nbe-pvb-*
4
+ ═══════════════════════════════════════════════
5
+ These styles render the HTML output produced by
6
+ createHtmlRenderer("nbe-pvb"). Host projects using
7
+ a different prefix should create matching styles.
8
+ ═══════════════════════════════════════════════ */
9
+
10
+ /* ═══ CSS Variables (override in host project) ═══ */
11
+ .nbe-pvb-body {
12
+ --bg: #faf9f7;
13
+ --bgw: #f5f3ef;
14
+ --gold: #8a8070;
15
+ --gl: #8a8070;
16
+ --th: #1a1510;
17
+ --tb: #2a2520;
18
+ --tm: #4a4540;
19
+ --td: #6a6560;
20
+ --dv: rgba(138,128,112,0.15);
21
+ --cs: #8a8070;
22
+ --cb: #97746c;
23
+ --cp: #5b6d8a;
24
+ --cn: #5f8a7a;
25
+
26
+ padding: 0 40px 40px;
27
+ font-family: 'Noto Sans KR', sans-serif;
28
+ -webkit-font-smoothing: antialiased;
29
+ }
30
+
31
+ /* ═══ Text Blocks ═══ */
32
+ .nbe-pvb-lead {
33
+ font-family: 'Noto Serif KR', serif;
34
+ font-size: 1.25rem;
35
+ line-height: 2;
36
+ font-weight: 400;
37
+ color: var(--th);
38
+ margin-bottom: 2rem;
39
+ }
40
+ .nbe-pvb-p {
41
+ font-size: 1.05rem;
42
+ line-height: 2.1;
43
+ font-weight: 400;
44
+ color: var(--tb);
45
+ margin-bottom: 1.5rem;
46
+ }
47
+ .nbe-pvb-sh {
48
+ font-family: 'Noto Serif KR', serif;
49
+ font-size: 1.5rem;
50
+ font-weight: 400;
51
+ color: var(--th);
52
+ line-height: 1.7;
53
+ margin: 2.5rem 0 0.75rem;
54
+ }
55
+ .nbe-pvb-sh-en {
56
+ font-family: 'Cormorant Garamond', serif;
57
+ font-size: 0.75rem;
58
+ letter-spacing: 2.5px;
59
+ text-transform: uppercase;
60
+ color: var(--cat-main, var(--gold));
61
+ margin: 2.5rem 0 0.5rem;
62
+ }
63
+ .nbe-pvb-sh-en + .nbe-pvb-sh { margin-top: 0.25rem; }
64
+ .nbe-pvb-hr { height: 1px; background: var(--dv); margin: 2rem 0; }
65
+
66
+ /* ═══ Images ═══ */
67
+ .nbe-pvb-imgf { margin: 2.5rem -40px; overflow: hidden; }
68
+ .nbe-pvb-imgf img { width: 100%; display: block; aspect-ratio: 16/9; object-fit: cover; }
69
+ .nbe-pvb-imgf .nbe-pvb-cap { padding: 0.75rem 40px; font-size: 0.85rem; color: var(--td); font-weight: 300; }
70
+
71
+ .nbe-pvb-imgi { margin: 2.5rem auto; }
72
+ .nbe-pvb-imgi img { width: 100%; display: block; aspect-ratio: 3/2; object-fit: cover; }
73
+ .nbe-pvb-imgi .nbe-pvb-cap { padding: 0.75rem 0; font-size: 0.85rem; color: var(--td); font-weight: 300; text-align: center; }
74
+
75
+ .nbe-pvb-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 2.5rem 0; }
76
+ .nbe-pvb-pair img { width: 100%; display: block; aspect-ratio: 4/3; object-fit: cover; }
77
+ .nbe-pvb-pair .nbe-pvb-cap { grid-column: 1/-1; font-size: 0.85rem; color: var(--td); font-weight: 300; padding-top: 0.5rem; }
78
+
79
+ .nbe-pvb-gal { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; margin: 2.5rem 0; }
80
+ .nbe-pvb-gal img { width: 100%; display: block; aspect-ratio: 1/1; object-fit: cover; }
81
+ .nbe-pvb-gal .nbe-pvb-cap { grid-column: 1/-1; font-size: 0.85rem; color: var(--td); font-weight: 300; padding-top: 0.5rem; }
82
+
83
+ /* ═══ Profile (img-text) ═══ */
84
+ .nbe-pvb-prof { display: flex; gap: 2rem; margin: 2.5rem 0; align-items: start; }
85
+ .nbe-pvb-prof img { width: 160px; display: block; aspect-ratio: 3/4; object-fit: cover; }
86
+ .nbe-pvb-prof .nbe-pvb-nm { font-family: 'Noto Serif KR', serif; font-size: 1.25rem; font-weight: 600; color: var(--th); margin-bottom: 0.25rem; }
87
+ .nbe-pvb-prof .nbe-pvb-rl { font-size: 0.95rem; color: var(--cat-main, var(--tm)); margin-bottom: 1rem; font-weight: 400; }
88
+ .nbe-pvb-prof .nbe-pvb-bio { font-size: 1rem; line-height: 1.9; font-weight: 400; color: var(--tb); }
89
+
90
+ /* ═══ Quote ═══ */
91
+ .nbe-pvb-q { margin: 2rem 0; padding: 1.25rem 1.5rem; border-left: 3px solid var(--cat-main, var(--gl)); background: var(--cat-bg-quote, var(--bgw)); }
92
+ .nbe-pvb-q p { font-family: 'Noto Serif KR', serif; font-size: 1.05rem; line-height: 2; color: var(--tb); font-style: italic; margin: 0; }
93
+ .nbe-pvb-q .nbe-pvb-at { font-style: normal; font-size: 0.9rem; color: var(--tm); margin-top: 0.75rem; }
94
+
95
+ /* ═══ Quote Large ═══ */
96
+ .nbe-pvb-ql { margin: 3rem -40px; padding: 3rem 3.5rem; text-align: center; background: var(--cat-bg-quote, var(--bgw)); border-top: 1px solid var(--dv); border-bottom: 1px solid var(--dv); }
97
+ .nbe-pvb-ql .nbe-pvb-mk { font-family: 'Cormorant Garamond', serif; font-size: 3.5rem; color: var(--cat-main, var(--gl)); opacity: 0.4; line-height: 1; }
98
+ .nbe-pvb-ql p { font-family: 'Noto Serif KR', serif; font-size: 1.25rem; line-height: 2; color: var(--th); font-weight: 400; margin: 0; }
99
+ .nbe-pvb-ql .nbe-pvb-at { font-family: 'Cormorant Garamond', serif; font-size: 1rem; color: var(--tm); margin-top: 1rem; letter-spacing: 1px; }
100
+
101
+ /* ═══ Stats ═══ */
102
+ .nbe-pvb-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; margin: 2.5rem 0; background: var(--dv); }
103
+ .nbe-pvb-stat { background: var(--cat-bg-tint, var(--bg)); padding: 1.5rem 1rem; text-align: center; }
104
+ .nbe-pvb-stat .nbe-pvb-n { font-family: 'Cormorant Garamond', serif; font-size: 2.5rem; font-weight: 300; color: var(--cat-main, var(--gold)); line-height: 1; margin-bottom: 0.5rem; }
105
+ .nbe-pvb-stat .nbe-pvb-l { font-size: 0.85rem; color: var(--tm); font-weight: 300; }
106
+
107
+ /* ═══ Infobox ═══ */
108
+ .nbe-pvb-ib { background: var(--cat-bg-tint, var(--bgw)); border: 1px solid var(--cat-border, transparent); padding: 2rem 2.5rem; margin: 2.5rem 0; font-size: 1rem; line-height: 2.1; font-weight: 400; color: var(--tb); }
109
+ .nbe-pvb-ib .nbe-pvb-lbl {
110
+ font-family: 'Cormorant Garamond', serif;
111
+ font-size: 1rem;
112
+ letter-spacing: 2.5px;
113
+ text-transform: uppercase;
114
+ color: var(--cat-main);
115
+ margin-bottom: 1rem;
116
+ padding-bottom: 0.75rem;
117
+ border-bottom: 1px solid var(--dv);
118
+ font-weight: 600;
119
+ }
120
+ .nbe-pvb-ib .nbe-pvb-lbl.onstage { color: #8a8070; }
121
+ .nbe-pvb-ib .nbe-pvb-lbl.backstage { color: #97746c; }
122
+ .nbe-pvb-ib .nbe-pvb-lbl.press { color: #5b6d8a; }
123
+ .nbe-pvb-ib .nbe-pvb-lbl.notice { color: #5f8a7a; }
124
+ .nbe-pvb-ib strong { font-weight: 500; color: var(--th); }
125
+
126
+ /* ═══ Callout ═══ */
127
+ .nbe-pvb-co { margin: 2.5rem 0; padding: 1.5rem 2rem; border-left: 3px solid var(--cat-main, var(--gold)); background: var(--cat-bg-tint, rgba(138,128,112,0.04)); }
128
+ .nbe-pvb-co .nbe-pvb-ct { font-family: 'Noto Serif KR', serif; font-size: 1.1rem; font-weight: 400; color: var(--cat-main, var(--th)); margin-bottom: 0.5rem; }
129
+ .nbe-pvb-co p { font-size: 1rem; line-height: 1.9; font-weight: 400; color: var(--tb); margin: 0; }
130
+
131
+ /* ═══ Number Cards ═══ */
132
+ .nbe-pvb-nc { margin: 2rem 0; }
133
+ .nbe-pvb-nci { padding: 1.5rem 2rem; background: #fff; border: 1px solid var(--cat-border, var(--dv)); border-left: 3px solid var(--cat-main, var(--gold)); margin-bottom: 1rem; }
134
+ .nbe-pvb-nci .nbe-pvb-num { font-family: 'Cormorant Garamond', serif; font-size: 1.5rem; font-weight: 300; color: var(--cat-main, var(--gold)); margin-bottom: 0.25rem; }
135
+ .nbe-pvb-nci h3 { font-family: 'Noto Serif KR', serif; font-size: 1.1rem; font-weight: 400; color: var(--th); margin: 0 0 0.5rem; line-height: 1.5; }
136
+ .nbe-pvb-nci p { font-size: 0.95rem; line-height: 1.8; color: var(--tb); font-weight: 300; margin: 0; }
137
+
138
+ /* ═══ Q&A ═══ */
139
+ .nbe-pvb-qa { margin: 2rem 0; }
140
+ .nbe-pvb-qai { margin-bottom: 2rem; }
141
+ .nbe-pvb-qai .nbe-pvb-qaq { font-family: 'Noto Serif KR', serif; font-size: 1.05rem; font-weight: 400; color: var(--th); line-height: 1.7; margin-bottom: 0.75rem; padding-left: 1rem; border-left: 2px solid var(--cat-main, var(--cb)); }
142
+ .nbe-pvb-qai .nbe-pvb-qaa { font-size: 1rem; line-height: 2; font-weight: 400; padding-left: 1rem; margin: 0; }
143
+
144
+ /* ═══ Press List ═══ */
145
+ .nbe-pvb-pl { margin: 2rem 0; }
146
+ .nbe-pvb-pli { padding: 1.25rem 0; border-bottom: 1px solid var(--dv); display: grid; grid-template-columns: 100px 1fr; gap: 1.25rem; }
147
+ .nbe-pvb-pli:last-child { border-bottom: 0; }
148
+ .nbe-pvb-pli .nbe-pvb-src { font-size: 0.8rem; letter-spacing: 1px; text-transform: uppercase; color: var(--cat-main, var(--cp)); font-weight: 400; padding-top: 0.25rem; }
149
+ .nbe-pvb-pli .nbe-pvb-pd { display: block; font-family: 'Cormorant Garamond', serif; font-size: 0.85rem; color: var(--td); letter-spacing: 0; text-transform: none; margin-top: 0.25rem; }
150
+ .nbe-pvb-pli .nbe-pvb-ptt { font-family: 'Noto Serif KR', serif; font-size: 1.05rem; font-weight: 400; color: var(--th); line-height: 1.5; margin-bottom: 0.25rem; }
151
+ .nbe-pvb-pli .nbe-pvb-pex { font-size: 0.9rem; line-height: 1.7; color: var(--tb); font-weight: 300; }
152
+ .nbe-pvb-pli .nbe-pvb-plk { display: inline-block; margin-top: 0.5rem; font-family: 'Cormorant Garamond', serif; font-size: 0.85rem; letter-spacing: 1px; color: var(--cat-main, var(--cp)); text-decoration: none; cursor: pointer; transition: opacity 0.2s ease; }
153
+ .nbe-pvb-pli .nbe-pvb-plk:hover { opacity: 0.7; }
154
+
155
+ /* ═══ Timeline ═══ */
156
+ .nbe-pvb-tl { margin: 2.5rem 0; padding-left: 1.5rem; border-left: 1px solid var(--dv); }
157
+ .nbe-pvb-tli { padding: 0 0 1.5rem 1.25rem; position: relative; }
158
+ .nbe-pvb-tli:last-child { padding-bottom: 0; }
159
+ .nbe-pvb-tli::before { content: ''; position: absolute; left: -1.85rem; top: 0.4rem; width: 8px; height: 8px; background: var(--cat-main, var(--gold)); border-radius: 50%; }
160
+ .nbe-pvb-tli .nbe-pvb-td { font-family: 'Cormorant Garamond', serif; font-size: 0.9rem; color: var(--cat-main, var(--gold)); margin-bottom: 0.25rem; }
161
+ .nbe-pvb-tli .nbe-pvb-tt { font-family: 'Noto Serif KR', serif; font-size: 1.05rem; font-weight: 400; color: var(--th); margin-bottom: 0.25rem; line-height: 1.5; }
162
+ .nbe-pvb-tli p { font-size: 0.9rem; line-height: 1.8; color: var(--tb); font-weight: 300; margin: 0; }
163
+
164
+ /* ═══ Video ═══ */
165
+ .nbe-pvb-vid { margin: 2.5rem 0; }
166
+ .nbe-pvb-vid .nbe-pvb-vw { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; background: #1a1917; }
167
+ .nbe-pvb-vid .nbe-pvb-vw iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0; }
168
+ .nbe-pvb-vid .nbe-pvb-cap { padding: 0.75rem 0; font-size: 0.85rem; color: var(--td); font-weight: 300; }
169
+
170
+ /* ═══ CTA ═══ */
171
+ .nbe-pvb-cta { text-align: center; padding: 3rem 2rem; border-top: 1px solid var(--dv); margin-top: 2rem; }
172
+ .nbe-pvb-cta p { font-family: 'Noto Sans KR', sans-serif; font-size: 1.05rem; color: var(--th); font-weight: 400; margin-bottom: 1.5rem; }
173
+ .nbe-pvb-cta-btn {
174
+ display: inline-block;
175
+ padding: 14px 40px;
176
+ font-family: 'Noto Sans KR', sans-serif;
177
+ font-size: 0.95rem;
178
+ letter-spacing: 1px;
179
+ color: #fff;
180
+ text-decoration: none;
181
+ font-weight: 400;
182
+ transition: opacity 0.3s;
183
+ }
184
+ .nbe-pvb-cta-btn:hover { opacity: 0.85; }
185
+ .nbe-pvb-cta-btn.onstage { background: #8a8070; }
186
+ .nbe-pvb-cta-btn.backstage { background: #97746c; }
187
+ .nbe-pvb-cta-btn.press { background: #5b6d8a; }
188
+ .nbe-pvb-cta-btn.notice { background: #5f8a7a; }
189
+
190
+ /* ═══ Responsive ═══ */
191
+ @media (max-width: 768px) {
192
+ .nbe-pvb-body { padding: 0 20px 20px; }
193
+ .nbe-pvb-imgf { margin: 1.5rem -20px; }
194
+ .nbe-pvb-imgf .nbe-pvb-cap { padding: 0.5rem 20px; }
195
+ .nbe-pvb-ql { margin: 2rem -20px; padding: 2rem 1.5rem; }
196
+ .nbe-pvb-pair { grid-template-columns: 1fr; gap: 8px; }
197
+ .nbe-pvb-gal { grid-template-columns: 1fr 1fr; }
198
+ .nbe-pvb-prof { flex-direction: column; gap: 1rem; }
199
+ .nbe-pvb-prof img { width: 120px; }
200
+ .nbe-pvb-pli { grid-template-columns: 1fr; gap: 0.5rem; }
201
+ .nbe-pvb-stats { grid-template-columns: 1fr 1fr; }
202
+ .nbe-pvb-ib { padding: 1.5rem; }
203
+ }