vobi_document 1.1.3 → 1.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/blocks.cjs +25 -25
- package/dist/blocks.d.cts +2 -2
- package/dist/blocks.d.ts +2 -2
- package/dist/blocks.js +1 -1
- package/dist/{chunk-CJFNHGYH.cjs → chunk-3F5SJWGQ.cjs} +52 -17
- package/dist/chunk-3F5SJWGQ.cjs.map +1 -0
- package/dist/{chunk-Z3SAVLTS.js → chunk-4BAC7SQD.js} +3 -3
- package/dist/{chunk-Z3SAVLTS.js.map → chunk-4BAC7SQD.js.map} +1 -1
- package/dist/{chunk-S3FCX5TC.cjs → chunk-GDLKTYDB.cjs} +9 -4
- package/dist/chunk-GDLKTYDB.cjs.map +1 -0
- package/dist/{chunk-OUSXJTQ5.js → chunk-K6ZKB5EA.js} +9 -4
- package/dist/chunk-K6ZKB5EA.js.map +1 -0
- package/dist/{chunk-HANC7MNV.cjs → chunk-LQAZBMG4.cjs} +8 -8
- package/dist/{chunk-HANC7MNV.cjs.map → chunk-LQAZBMG4.cjs.map} +1 -1
- package/dist/{chunk-QBNPQGAL.js → chunk-MFBZNNYC.js} +99 -102
- package/dist/chunk-MFBZNNYC.js.map +1 -0
- package/dist/{chunk-7QF2U74X.js → chunk-NPNQGHGK.js} +13 -10
- package/dist/chunk-NPNQGHGK.js.map +1 -0
- package/dist/{chunk-XHKS4BTC.js → chunk-QQHKBSAG.js} +45 -10
- package/dist/chunk-QQHKBSAG.js.map +1 -0
- package/dist/{chunk-GWSTB65K.cjs → chunk-RKYQRL6M.cjs} +111 -114
- package/dist/chunk-RKYQRL6M.cjs.map +1 -0
- package/dist/{chunk-KQDH7LRX.cjs → chunk-USMVHVHF.cjs} +13 -10
- package/dist/chunk-USMVHVHF.cjs.map +1 -0
- package/dist/editor.cjs +14 -14
- package/dist/editor.d.cts +1 -1
- package/dist/editor.d.ts +1 -1
- package/dist/editor.js +2 -2
- package/dist/index.cjs +83 -83
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +6 -6
- package/dist/print.cjs +22 -21
- package/dist/print.cjs.map +1 -1
- package/dist/print.d.cts +1 -1
- package/dist/print.d.ts +1 -1
- package/dist/print.js +8 -7
- package/dist/print.js.map +1 -1
- package/dist/render.cjs +18 -18
- package/dist/render.d.cts +1 -1
- package/dist/render.d.ts +1 -1
- package/dist/render.js +3 -3
- package/dist/{theme-BuEFpQeZ.d.cts → theme-DWRLG-2_.d.cts} +1 -1
- package/dist/{theme-BuEFpQeZ.d.ts → theme-DWRLG-2_.d.ts} +1 -1
- package/package.json +1 -1
- package/dist/chunk-7QF2U74X.js.map +0 -1
- package/dist/chunk-CJFNHGYH.cjs.map +0 -1
- package/dist/chunk-GWSTB65K.cjs.map +0 -1
- package/dist/chunk-KQDH7LRX.cjs.map +0 -1
- package/dist/chunk-OUSXJTQ5.js.map +0 -1
- package/dist/chunk-QBNPQGAL.js.map +0 -1
- package/dist/chunk-S3FCX5TC.cjs.map +0 -1
- package/dist/chunk-XHKS4BTC.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkGDLKTYDB_cjs = require('./chunk-GDLKTYDB.cjs');
|
|
4
4
|
var chunkQJ5W5EED_cjs = require('./chunk-QJ5W5EED.cjs');
|
|
5
5
|
var chunkSP5LCPDG_cjs = require('./chunk-SP5LCPDG.cjs');
|
|
6
6
|
var react = require('react');
|
|
@@ -23,9 +23,9 @@ function DocumentRenderer({
|
|
|
23
23
|
unresolvedDisplay = "placeholder",
|
|
24
24
|
metadata
|
|
25
25
|
}) {
|
|
26
|
-
const config = react.useMemo(() =>
|
|
26
|
+
const config = react.useMemo(() => chunkGDLKTYDB_cjs.buildConfig(registry), [registry]);
|
|
27
27
|
const [resolved, setResolved] = react.useState(resolvedVariables ?? {});
|
|
28
|
-
|
|
28
|
+
chunkGDLKTYDB_cjs.useDocumentFont(theme.documentFont);
|
|
29
29
|
const keysHash = react.useMemo(() => chunkSP5LCPDG_cjs.extractBindingKeys(data).sort().join("|"), [data]);
|
|
30
30
|
const ctxHash = JSON.stringify(ctx);
|
|
31
31
|
react.useEffect(() => {
|
|
@@ -39,7 +39,7 @@ function DocumentRenderer({
|
|
|
39
39
|
};
|
|
40
40
|
}, [resolvedVariables, resolver, catalog, keysHash, ctxHash]);
|
|
41
41
|
const effective = resolvedVariables ?? resolved;
|
|
42
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
42
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkGDLKTYDB_cjs.DocumentThemeProvider, { theme, children: /* @__PURE__ */ jsxRuntime.jsx(chunkSP5LCPDG_cjs.CatalogProvider, { catalog, children: /* @__PURE__ */ jsxRuntime.jsx(chunkSP5LCPDG_cjs.ResolvedProvider, { resolved: effective, unresolvedDisplay, children: /* @__PURE__ */ jsxRuntime.jsx(core.Render, { config, data, metadata }) }) }) });
|
|
43
43
|
}
|
|
44
44
|
var CoverEditContext = react.createContext({ editable: false });
|
|
45
45
|
function CoverField({ name, value, placeholder, as: Tag = "span", className }) {
|
|
@@ -101,7 +101,6 @@ var CoverFrame = styled6__default.default.div`
|
|
|
101
101
|
|
|
102
102
|
[data-cover-field][contenteditable] {
|
|
103
103
|
cursor: text;
|
|
104
|
-
border-radius: 3px;
|
|
105
104
|
outline: 1px dashed transparent;
|
|
106
105
|
outline-offset: 3px;
|
|
107
106
|
transition: outline-color 0.12s ease;
|
|
@@ -164,95 +163,17 @@ styled6__default.default.div`
|
|
|
164
163
|
letter-spacing: 0.04em;
|
|
165
164
|
opacity: 0.8;
|
|
166
165
|
`;
|
|
167
|
-
var HAIRLINE = "#d9d9d9";
|
|
168
|
-
var Chrome = styled6__default.default.div`
|
|
169
|
-
position: relative;
|
|
170
|
-
display: flex;
|
|
171
|
-
flex-direction: column;
|
|
172
|
-
justify-content: space-between;
|
|
173
|
-
height: 100%;
|
|
174
|
-
padding: 0 7cqw 8cqw;
|
|
175
|
-
`;
|
|
176
|
-
var TopRow = styled6__default.default.div`
|
|
177
|
-
display: flex;
|
|
178
|
-
justify-content: space-between;
|
|
179
|
-
align-items: flex-start;
|
|
180
|
-
gap: 4cqw;
|
|
181
|
-
`;
|
|
182
|
-
var Logo = styled6__default.default(CoverLogoImg)`
|
|
183
|
-
max-width: 17cqw;
|
|
184
|
-
max-height: 17cqw;
|
|
185
|
-
`;
|
|
186
|
-
var Company = styled6__default.default(CoverField)`
|
|
187
|
-
display: block;
|
|
188
|
-
margin-top: 5cqw;
|
|
189
|
-
max-width: 45cqw;
|
|
190
|
-
font-size: 2.94cqw;
|
|
191
|
-
font-weight: 800;
|
|
192
|
-
line-height: 1.15;
|
|
193
|
-
letter-spacing: 0.3cqw;
|
|
194
|
-
text-align: right;
|
|
195
|
-
text-transform: uppercase;
|
|
196
|
-
`;
|
|
197
|
-
var Head = styled6__default.default.div`
|
|
198
|
-
display: flex;
|
|
199
|
-
flex-direction: column;
|
|
200
|
-
|
|
201
|
-
&::before,
|
|
202
|
-
&::after {
|
|
203
|
-
content: '';
|
|
204
|
-
width: 19cqw;
|
|
205
|
-
height: 0.9cqw;
|
|
206
|
-
background: ${HAIRLINE};
|
|
207
|
-
}
|
|
208
|
-
&::before {
|
|
209
|
-
margin-bottom: 6cqw;
|
|
210
|
-
}
|
|
211
|
-
&::after {
|
|
212
|
-
margin-top: 6cqw;
|
|
213
|
-
}
|
|
214
|
-
`;
|
|
215
|
-
var Title = styled6__default.default(CoverField)`
|
|
216
|
-
display: block;
|
|
217
|
-
font-size: 8.82cqw;
|
|
218
|
-
font-weight: 800;
|
|
219
|
-
line-height: 1.15;
|
|
220
|
-
letter-spacing: 0.88cqw;
|
|
221
|
-
text-transform: uppercase;
|
|
222
|
-
`;
|
|
223
|
-
var Subtitle = styled6__default.default(CoverField)`
|
|
224
|
-
display: block;
|
|
225
|
-
margin-top: 3cqw;
|
|
226
|
-
font-size: 3.53cqw;
|
|
227
|
-
font-weight: 400;
|
|
228
|
-
line-height: 1.3;
|
|
229
|
-
`;
|
|
230
|
-
function Model1({ fields, theme, accent, textColor, bgColor }) {
|
|
231
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(CoverFrame, { $font: chunkS3FCX5TC_cjs.fontStack(theme?.documentFont), $bg: fields.imageUrl ? void 0 : bgColor, $color: textColor, children: [
|
|
232
|
-
fields.imageUrl ? /* @__PURE__ */ jsxRuntime.jsx(FullBleedImage, { $overlay: accent, $overlayOpacity: 0.85, children: /* @__PURE__ */ jsxRuntime.jsx(CoverImage, { src: fields.imageUrl }) }) : null,
|
|
233
|
-
/* @__PURE__ */ jsxRuntime.jsxs(Chrome, { children: [
|
|
234
|
-
/* @__PURE__ */ jsxRuntime.jsxs(TopRow, { children: [
|
|
235
|
-
theme?.logo?.url ? /* @__PURE__ */ jsxRuntime.jsx(Logo, { src: theme.logo.url, alt: "" }) : /* @__PURE__ */ jsxRuntime.jsx("span", {}),
|
|
236
|
-
/* @__PURE__ */ jsxRuntime.jsx(Company, { name: "presentedBy", value: fields.presentedBy, placeholder: "Nome da empresa" })
|
|
237
|
-
] }),
|
|
238
|
-
/* @__PURE__ */ jsxRuntime.jsxs(Head, { children: [
|
|
239
|
-
/* @__PURE__ */ jsxRuntime.jsx(Title, { name: "title", value: fields.title, placeholder: "Digite o t\xEDtulo..." }),
|
|
240
|
-
/* @__PURE__ */ jsxRuntime.jsx(Subtitle, { name: "subtitle", value: fields.subtitle, placeholder: "Digite o subt\xEDtulo..." })
|
|
241
|
-
] })
|
|
242
|
-
] })
|
|
243
|
-
] });
|
|
244
|
-
}
|
|
245
166
|
var BAND_BG = "#e8ecf1";
|
|
246
|
-
var
|
|
167
|
+
var HAIRLINE = "#d5dae1";
|
|
247
168
|
var Hairline = styled6__default.default.div`
|
|
248
169
|
position: absolute;
|
|
249
170
|
left: 4.7%;
|
|
250
171
|
top: 3%;
|
|
251
172
|
height: 94%;
|
|
252
173
|
width: 1px;
|
|
253
|
-
background: ${
|
|
174
|
+
background: ${HAIRLINE};
|
|
254
175
|
`;
|
|
255
|
-
var
|
|
176
|
+
var Logo = styled6__default.default(CoverLogoImg)`
|
|
256
177
|
position: absolute;
|
|
257
178
|
left: 10.9%;
|
|
258
179
|
top: 6%;
|
|
@@ -267,7 +188,7 @@ var AccentBar = styled6__default.default.div`
|
|
|
267
188
|
height: 28.7%;
|
|
268
189
|
background: ${(p) => p.$accent};
|
|
269
190
|
`;
|
|
270
|
-
var
|
|
191
|
+
var Head = styled6__default.default.div`
|
|
271
192
|
position: absolute;
|
|
272
193
|
left: 10.9%;
|
|
273
194
|
right: 6%;
|
|
@@ -275,7 +196,7 @@ var Head2 = styled6__default.default.div`
|
|
|
275
196
|
display: flex;
|
|
276
197
|
flex-direction: column;
|
|
277
198
|
`;
|
|
278
|
-
var
|
|
199
|
+
var Title = styled6__default.default(CoverField)`
|
|
279
200
|
display: block;
|
|
280
201
|
font-weight: 800;
|
|
281
202
|
font-size: 12.6cqw;
|
|
@@ -316,18 +237,18 @@ var Value = styled6__default.default(CoverField)`
|
|
|
316
237
|
line-height: 1.3;
|
|
317
238
|
text-transform: uppercase;
|
|
318
239
|
`;
|
|
319
|
-
function
|
|
240
|
+
function Model1({ fields, theme, accent, textColor, bgColor }) {
|
|
320
241
|
const { editable } = react.useContext(CoverEditContext);
|
|
321
242
|
const showHead = editable || Boolean(fields.title || fields.date);
|
|
322
243
|
const showPrepared = editable || Boolean(fields.preparedFor);
|
|
323
244
|
const showPresented = editable || Boolean(fields.presentedBy);
|
|
324
245
|
const hasBand = showPrepared || showPresented;
|
|
325
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(CoverFrame, { $font:
|
|
326
|
-
theme?.logo?.url ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
246
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(CoverFrame, { $font: chunkGDLKTYDB_cjs.fontStack(theme?.documentFont), $bg: bgColor, $color: textColor, children: [
|
|
247
|
+
theme?.logo?.url ? /* @__PURE__ */ jsxRuntime.jsx(Logo, { src: theme.logo.url, alt: "" }) : null,
|
|
327
248
|
showHead ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
328
249
|
/* @__PURE__ */ jsxRuntime.jsx(AccentBar, { $accent: accent }),
|
|
329
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
330
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
250
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Head, { "data-cover-head": true, children: [
|
|
251
|
+
/* @__PURE__ */ jsxRuntime.jsx(Title, { name: "title", value: fields.title, placeholder: "Digite o t\xEDtulo..." }),
|
|
331
252
|
/* @__PURE__ */ jsxRuntime.jsx(DateLine, { name: "date", value: fields.date, placeholder: "M\xEAs e ano" })
|
|
332
253
|
] })
|
|
333
254
|
] }) : null,
|
|
@@ -344,6 +265,84 @@ function Model2({ fields, theme, accent, textColor, bgColor }) {
|
|
|
344
265
|
/* @__PURE__ */ jsxRuntime.jsx(Hairline, {})
|
|
345
266
|
] });
|
|
346
267
|
}
|
|
268
|
+
var HAIRLINE2 = "#d9d9d9";
|
|
269
|
+
var Chrome = styled6__default.default.div`
|
|
270
|
+
position: relative;
|
|
271
|
+
display: flex;
|
|
272
|
+
flex-direction: column;
|
|
273
|
+
justify-content: space-between;
|
|
274
|
+
height: 100%;
|
|
275
|
+
padding: 0 7cqw 8cqw;
|
|
276
|
+
`;
|
|
277
|
+
var TopRow = styled6__default.default.div`
|
|
278
|
+
display: flex;
|
|
279
|
+
justify-content: space-between;
|
|
280
|
+
align-items: flex-start;
|
|
281
|
+
gap: 4cqw;
|
|
282
|
+
`;
|
|
283
|
+
var Logo2 = styled6__default.default(CoverLogoImg)`
|
|
284
|
+
max-width: 17cqw;
|
|
285
|
+
max-height: 17cqw;
|
|
286
|
+
`;
|
|
287
|
+
var Company = styled6__default.default(CoverField)`
|
|
288
|
+
display: block;
|
|
289
|
+
margin-top: 5cqw;
|
|
290
|
+
max-width: 45cqw;
|
|
291
|
+
font-size: 2.94cqw;
|
|
292
|
+
font-weight: 800;
|
|
293
|
+
line-height: 1.15;
|
|
294
|
+
letter-spacing: 0.3cqw;
|
|
295
|
+
text-align: right;
|
|
296
|
+
text-transform: uppercase;
|
|
297
|
+
`;
|
|
298
|
+
var Head2 = styled6__default.default.div`
|
|
299
|
+
display: flex;
|
|
300
|
+
flex-direction: column;
|
|
301
|
+
|
|
302
|
+
&::before,
|
|
303
|
+
&::after {
|
|
304
|
+
content: '';
|
|
305
|
+
width: 19cqw;
|
|
306
|
+
height: 0.9cqw;
|
|
307
|
+
background: ${HAIRLINE2};
|
|
308
|
+
}
|
|
309
|
+
&::before {
|
|
310
|
+
margin-bottom: 6cqw;
|
|
311
|
+
}
|
|
312
|
+
&::after {
|
|
313
|
+
margin-top: 6cqw;
|
|
314
|
+
}
|
|
315
|
+
`;
|
|
316
|
+
var Title2 = styled6__default.default(CoverField)`
|
|
317
|
+
display: block;
|
|
318
|
+
font-size: 8.82cqw;
|
|
319
|
+
font-weight: 800;
|
|
320
|
+
line-height: 1.15;
|
|
321
|
+
letter-spacing: 0.88cqw;
|
|
322
|
+
text-transform: uppercase;
|
|
323
|
+
`;
|
|
324
|
+
var Subtitle = styled6__default.default(CoverField)`
|
|
325
|
+
display: block;
|
|
326
|
+
margin-top: 3cqw;
|
|
327
|
+
font-size: 3.53cqw;
|
|
328
|
+
font-weight: 400;
|
|
329
|
+
line-height: 1.3;
|
|
330
|
+
`;
|
|
331
|
+
function Model2({ fields, theme, textColor, bgColor }) {
|
|
332
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(CoverFrame, { $font: chunkGDLKTYDB_cjs.fontStack(theme?.documentFont), $bg: fields.imageUrl ? void 0 : bgColor, $color: textColor, children: [
|
|
333
|
+
fields.imageUrl ? /* @__PURE__ */ jsxRuntime.jsx(FullBleedImage, { $overlay: bgColor, $overlayOpacity: 0.85, children: /* @__PURE__ */ jsxRuntime.jsx(CoverImage, { src: fields.imageUrl }) }) : null,
|
|
334
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Chrome, { children: [
|
|
335
|
+
/* @__PURE__ */ jsxRuntime.jsxs(TopRow, { children: [
|
|
336
|
+
theme?.logo?.url ? /* @__PURE__ */ jsxRuntime.jsx(Logo2, { src: theme.logo.url, alt: "" }) : /* @__PURE__ */ jsxRuntime.jsx("span", {}),
|
|
337
|
+
/* @__PURE__ */ jsxRuntime.jsx(Company, { name: "presentedBy", value: fields.presentedBy, placeholder: "Nome da empresa" })
|
|
338
|
+
] }),
|
|
339
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Head2, { children: [
|
|
340
|
+
/* @__PURE__ */ jsxRuntime.jsx(Title2, { name: "title", value: fields.title, placeholder: "Digite o t\xEDtulo..." }),
|
|
341
|
+
/* @__PURE__ */ jsxRuntime.jsx(Subtitle, { name: "subtitle", value: fields.subtitle, placeholder: "Digite o subt\xEDtulo..." })
|
|
342
|
+
] })
|
|
343
|
+
] })
|
|
344
|
+
] });
|
|
345
|
+
}
|
|
347
346
|
var ImageBand = styled6__default.default.div`
|
|
348
347
|
position: relative;
|
|
349
348
|
width: 100%;
|
|
@@ -412,7 +411,7 @@ function Model3({ fields, theme, textColor, bgColor }) {
|
|
|
412
411
|
const { editable } = react.useContext(CoverEditContext);
|
|
413
412
|
const showPresented = editable || Boolean(fields.presentedBy);
|
|
414
413
|
const showPrepared = editable || Boolean(fields.preparedFor);
|
|
415
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(CoverFrame, { $font:
|
|
414
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(CoverFrame, { $font: chunkGDLKTYDB_cjs.fontStack(theme?.documentFont), $bg: bgColor, $color: textColor, children: [
|
|
416
415
|
/* @__PURE__ */ jsxRuntime.jsxs(ImageBand, { children: [
|
|
417
416
|
fields.imageUrl ? /* @__PURE__ */ jsxRuntime.jsx(CoverImage, { src: fields.imageUrl }) : null,
|
|
418
417
|
theme?.logo?.url ? /* @__PURE__ */ jsxRuntime.jsx(Logo3, { src: theme.logo.url, alt: "" }) : null
|
|
@@ -459,7 +458,6 @@ var DateChip = styled6__default.default(CoverField)`
|
|
|
459
458
|
padding: 1.18cqw 2.94cqw;
|
|
460
459
|
font-size: 2.94cqw;
|
|
461
460
|
font-weight: 400;
|
|
462
|
-
letter-spacing: -0.29cqw;
|
|
463
461
|
color: #ffffff;
|
|
464
462
|
`;
|
|
465
463
|
var Title4 = styled6__default.default(CoverField)`
|
|
@@ -469,7 +467,6 @@ var Title4 = styled6__default.default(CoverField)`
|
|
|
469
467
|
font-size: 14.1cqw;
|
|
470
468
|
font-weight: 300;
|
|
471
469
|
line-height: 1.1;
|
|
472
|
-
letter-spacing: -1.41cqw;
|
|
473
470
|
`;
|
|
474
471
|
var Footer = styled6__default.default.div`
|
|
475
472
|
margin-top: auto;
|
|
@@ -484,7 +481,6 @@ var Party = styled6__default.default.div`
|
|
|
484
481
|
var Label3 = styled6__default.default.div`
|
|
485
482
|
font-size: 3.53cqw;
|
|
486
483
|
font-weight: 300;
|
|
487
|
-
letter-spacing: -0.35cqw;
|
|
488
484
|
opacity: 0.72;
|
|
489
485
|
`;
|
|
490
486
|
var Value3 = styled6__default.default(CoverField)`
|
|
@@ -492,13 +488,12 @@ var Value3 = styled6__default.default(CoverField)`
|
|
|
492
488
|
margin-top: 1.5cqw;
|
|
493
489
|
font-size: 4.12cqw;
|
|
494
490
|
font-weight: 500;
|
|
495
|
-
letter-spacing: -0.41cqw;
|
|
496
491
|
`;
|
|
497
492
|
function Model4({ fields, theme, accent, textColor, bgColor }) {
|
|
498
493
|
const { editable } = react.useContext(CoverEditContext);
|
|
499
494
|
const showPrepared = editable || Boolean(fields.preparedFor);
|
|
500
495
|
const showPresented = editable || Boolean(fields.presentedBy);
|
|
501
|
-
return /* @__PURE__ */ jsxRuntime.jsx(CoverFrame, { $font:
|
|
496
|
+
return /* @__PURE__ */ jsxRuntime.jsx(CoverFrame, { $font: chunkGDLKTYDB_cjs.fontStack(theme?.documentFont), $bg: bgColor, $color: textColor, children: /* @__PURE__ */ jsxRuntime.jsxs(Body2, { children: [
|
|
502
497
|
theme?.logo?.url ? /* @__PURE__ */ jsxRuntime.jsx(Logo4, { src: theme.logo.url, alt: "" }) : /* @__PURE__ */ jsxRuntime.jsx("span", {}),
|
|
503
498
|
/* @__PURE__ */ jsxRuntime.jsxs(Head3, { children: [
|
|
504
499
|
/* @__PURE__ */ jsxRuntime.jsx(DateChip, { name: "date", value: fields.date, placeholder: "M\xEAs e ano", $accent: accent }),
|
|
@@ -588,7 +583,7 @@ var PresentedValue = styled6__default.default(CoverField)`
|
|
|
588
583
|
function Model5({ fields, theme, accent, textColor, bgColor }) {
|
|
589
584
|
const { editable } = react.useContext(CoverEditContext);
|
|
590
585
|
const showPresented = editable || Boolean(fields.presentedBy);
|
|
591
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(CoverFrame, { $font:
|
|
586
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(CoverFrame, { $font: chunkGDLKTYDB_cjs.fontStack(theme?.documentFont), $bg: bgColor, $color: textColor, children: [
|
|
592
587
|
/* @__PURE__ */ jsxRuntime.jsx(Spacer, {}),
|
|
593
588
|
/* @__PURE__ */ jsxRuntime.jsx(ImageBand2, { children: fields.imageUrl ? /* @__PURE__ */ jsxRuntime.jsx(FullBleedImage, { $overlay: accent, $overlayOpacity: 0.5, children: /* @__PURE__ */ jsxRuntime.jsx(CoverImage, { src: fields.imageUrl }) }) : null }),
|
|
594
589
|
/* @__PURE__ */ jsxRuntime.jsxs(Bottom, { children: [
|
|
@@ -617,28 +612,30 @@ var COVER_TEMPLATES = {
|
|
|
617
612
|
"model-5": Model5
|
|
618
613
|
};
|
|
619
614
|
var COVER_TEMPLATE_IDS = Object.keys(COVER_TEMPLATES);
|
|
620
|
-
var resolveCoverAccent = (accent, theme) => accent ?? theme?.colors?.brand ??
|
|
615
|
+
var resolveCoverAccent = (accent, theme) => accent ?? theme?.colors?.brand ?? chunkGDLKTYDB_cjs.DEFAULT_DOCUMENT_COLORS.brand;
|
|
621
616
|
var COVER_SURFACES = {
|
|
622
|
-
"model-1": "
|
|
623
|
-
"model-2": "
|
|
617
|
+
"model-1": "background",
|
|
618
|
+
"model-2": "brand",
|
|
624
619
|
"model-3": "brand",
|
|
625
|
-
"model-4": "
|
|
620
|
+
"model-4": "dark",
|
|
626
621
|
"model-5": "background"
|
|
627
622
|
};
|
|
628
623
|
var ON_BRAND_TEXT = "#FFFFFF";
|
|
624
|
+
var DARK_SURFACE_BG = "#131B2C";
|
|
629
625
|
var resolveCoverColors = (templateId, { accent, textColor, bgColor }, theme) => {
|
|
630
|
-
const colors = { ...
|
|
631
|
-
const
|
|
626
|
+
const colors = { ...chunkGDLKTYDB_cjs.DEFAULT_DOCUMENT_COLORS, ...theme?.colors };
|
|
627
|
+
const surface = COVER_SURFACES[templateId ?? ""] ?? COVER_SURFACES["model-1"];
|
|
632
628
|
const resolvedAccent = resolveCoverAccent(accent, theme);
|
|
629
|
+
const surfaceBg = { brand: resolvedAccent, dark: DARK_SURFACE_BG, background: colors.background }[surface];
|
|
633
630
|
return {
|
|
634
631
|
accent: resolvedAccent,
|
|
635
|
-
textColor: textColor ?? (
|
|
636
|
-
bgColor: bgColor ??
|
|
632
|
+
textColor: textColor ?? (surface === "background" ? colors.text : ON_BRAND_TEXT),
|
|
633
|
+
bgColor: bgColor ?? surfaceBg
|
|
637
634
|
};
|
|
638
635
|
};
|
|
639
636
|
function CoverPage({ templateId, accent, fields, theme, textColor, bgColor }) {
|
|
640
637
|
if (!templateId) return null;
|
|
641
|
-
const colors = { ...
|
|
638
|
+
const colors = { ...chunkGDLKTYDB_cjs.DEFAULT_DOCUMENT_COLORS, ...theme?.colors };
|
|
642
639
|
const vars = {
|
|
643
640
|
["--doc-brand"]: colors.brand,
|
|
644
641
|
["--doc-text"]: colors.text,
|
|
@@ -712,7 +709,7 @@ var HeaderLayout = styled6__default.default.div`
|
|
|
712
709
|
flex-direction: ${(props) => props.$reverse ? "row-reverse" : "row"};
|
|
713
710
|
gap: 16px;
|
|
714
711
|
height: 100%;
|
|
715
|
-
padding:
|
|
712
|
+
padding: 20px 0;
|
|
716
713
|
`;
|
|
717
714
|
var HeaderInfo = styled6__default.default.div`
|
|
718
715
|
display: flex;
|
|
@@ -780,7 +777,7 @@ function HeaderBar({ config, companyInfo = {}, logoUrl, documentFont }) {
|
|
|
780
777
|
(key) => config.info?.[key] && companyInfo[key]
|
|
781
778
|
);
|
|
782
779
|
const logoLeft = config.logoPosition === "left";
|
|
783
|
-
return /* @__PURE__ */ jsxRuntime.jsx(HeaderRoot, { className: "dg-running-header", $color: config.color ?? "#3F4759", $font:
|
|
780
|
+
return /* @__PURE__ */ jsxRuntime.jsx(HeaderRoot, { className: "dg-running-header", $color: config.color ?? "#3F4759", $font: chunkGDLKTYDB_cjs.fontStack(documentFont), children: /* @__PURE__ */ jsxRuntime.jsxs(HeaderLayout, { $reverse: logoLeft, children: [
|
|
784
781
|
/* @__PURE__ */ jsxRuntime.jsx(HeaderInfo, { $alignEnd: logoLeft, children: lines.map((key) => /* @__PURE__ */ jsxRuntime.jsxs(InfoLine, { $strong: key === "companyName", $iconAfter: logoLeft, children: [
|
|
785
782
|
COMPANY_INFO_ICONS[key],
|
|
786
783
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: companyInfo[key] })
|
|
@@ -811,7 +808,7 @@ function FooterBar({ config, companyInfo = {}, documentFont }) {
|
|
|
811
808
|
(key) => config?.info?.[key] && companyInfo[key]
|
|
812
809
|
) : [];
|
|
813
810
|
const justify = ALIGNMENT_TO_JUSTIFY[config?.alignment ?? "center"];
|
|
814
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(FooterRoot, { className: "dg-running-footer", $color: config?.color ?? "#3F4759", $font:
|
|
811
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(FooterRoot, { className: "dg-running-footer", $color: config?.color ?? "#3F4759", $font: chunkGDLKTYDB_cjs.fontStack(documentFont), children: [
|
|
815
812
|
showPageNumber ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "dg-page-number" }) : null,
|
|
816
813
|
showBand ? /* @__PURE__ */ jsxRuntime.jsx(FooterLayout, { children: lines.length ? /* @__PURE__ */ jsxRuntime.jsx(FooterInfoRows, { $justify: justify, children: lines.map((key) => /* @__PURE__ */ jsxRuntime.jsxs(FooterItem, { children: [
|
|
817
814
|
COMPANY_INFO_ICONS[key],
|
|
@@ -840,5 +837,5 @@ exports.HEADER_INFO_ORDER = HEADER_INFO_ORDER;
|
|
|
840
837
|
exports.HeaderBar = HeaderBar;
|
|
841
838
|
exports.resolveCoverAccent = resolveCoverAccent;
|
|
842
839
|
exports.resolveCoverColors = resolveCoverColors;
|
|
843
|
-
//# sourceMappingURL=chunk-
|
|
844
|
-
//# sourceMappingURL=chunk-
|
|
840
|
+
//# sourceMappingURL=chunk-RKYQRL6M.cjs.map
|
|
841
|
+
//# sourceMappingURL=chunk-RKYQRL6M.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/render/DocumentRenderer.tsx","../src/render/chrome/covers/primitives.tsx","../src/render/chrome/covers/covers.styles.ts","../src/render/chrome/covers/Model1.tsx","../src/render/chrome/covers/Model2.tsx","../src/render/chrome/covers/Model3.tsx","../src/render/chrome/covers/Model4.tsx","../src/render/chrome/covers/Model5.tsx","../src/render/chrome/covers/index.ts","../src/render/chrome/CoverPage.tsx","../src/render/chrome/icons.tsx","../src/render/chrome/chrome.styles.ts","../src/render/chrome/HeaderBar.tsx","../src/render/chrome/FooterBar.tsx","../src/render/messages.ts"],"names":["useMemo","buildConfig","useState","useDocumentFont","extractBindingKeys","useEffect","resolveDocumentVariables","DocumentThemeProvider","CatalogProvider","ResolvedProvider","Render","createContext","useContext","jsx","styled","jsxs","fontStack","Fragment","HAIRLINE","Logo","Head","Title","Subtitle","Label","Value","Body","ImageBand","DEFAULT_DOCUMENT_COLORS"],"mappings":"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","file":"chunk-RKYQRL6M.cjs","sourcesContent":["import { useEffect, useMemo, useState } from 'react';\nimport { type Data, type Metadata, Render } from '@puckeditor/core';\nimport { buildConfig } from '../core/buildConfig';\nimport type { Registry } from '../blocks/types';\nimport type { Theme } from '../schema/theme';\nimport { useDocumentFont } from '../surface/useDocumentFont';\nimport { DocumentThemeProvider } from '../surface/themeContext';\nimport { CatalogProvider } from '../variables/catalogContext';\nimport { ResolvedProvider } from '../variables/resolvedContext';\nimport { resolveDocumentVariables } from '../variables/resolve';\nimport { extractBindingKeys } from '../variables/bindings';\nimport type {\n ResolvedVariables,\n UnresolvedDisplay,\n VariableContext,\n VariableDef,\n VariableResolver\n} from '../variables/types';\n\nexport type DocumentRendererProps = {\n registry: Registry;\n data: Data;\n theme?: Theme;\n catalog?: VariableDef[];\n /** Live resolution (browser preview). Called in an effect. */\n resolver?: VariableResolver;\n ctx?: VariableContext;\n resolvedVariables?: ResolvedVariables;\n unresolvedDisplay?: UnresolvedDisplay;\n metadata?: Metadata;\n};\n\nexport function DocumentRenderer({\n registry,\n data,\n theme = {},\n catalog = [],\n resolver,\n ctx = {},\n resolvedVariables,\n unresolvedDisplay = 'placeholder',\n metadata\n}: DocumentRendererProps) {\n // Sem `theme`: ele chega pelo DocumentThemeProvider (config estável — ver docs/architecture.md).\n const config = useMemo(() => buildConfig(registry), [registry]);\n const [resolved, setResolved] = useState<ResolvedVariables>(resolvedVariables ?? {});\n\n useDocumentFont(theme.documentFont);\n\n const keysHash = useMemo(() => extractBindingKeys(data).sort().join('|'), [data]);\n const ctxHash = JSON.stringify(ctx);\n\n useEffect(() => {\n if (resolvedVariables || !resolver || keysHash === '') return undefined;\n let active = true;\n resolveDocumentVariables(data, catalog, resolver, ctx).then(next => {\n if (active) setResolved(next);\n });\n return () => {\n active = false;\n };\n // Keyado por keysHash/ctxHash (não por data) — evita refetch por edição.\n }, [resolvedVariables, resolver, catalog, keysHash, ctxHash]);\n\n const effective = resolvedVariables ?? resolved;\n\n return (\n <DocumentThemeProvider theme={theme}>\n <CatalogProvider catalog={catalog}>\n <ResolvedProvider resolved={effective} unresolvedDisplay={unresolvedDisplay}>\n <Render config={config} data={data} metadata={metadata} />\n </ResolvedProvider>\n </CatalogProvider>\n </DocumentThemeProvider>\n );\n}\n","import { createContext, useContext, type ElementType, type KeyboardEvent, type FocusEvent } from 'react';\nimport type { Theme, CoverFields } from '../../../schema/theme';\n\nexport type CoverEditCtx = {\n editable: boolean;\n onFieldChange?: (name: keyof CoverFields, value: string) => void;\n onImagePick?: () => void;\n};\n\nexport const CoverEditContext = createContext<CoverEditCtx>({ editable: false });\n\nexport type CoverTemplateProps = {\n fields: CoverFields;\n theme?: Theme;\n accent: string;\n textColor: string;\n bgColor: string;\n};\n\ntype CoverFieldProps = {\n name: keyof CoverFields;\n value?: string;\n placeholder: string;\n as?: ElementType;\n className?: string;\n};\n\nexport function CoverField({ name, value, placeholder, as: Tag = 'span', className }: CoverFieldProps) {\n const { editable, onFieldChange } = useContext(CoverEditContext);\n if (!editable) return value ? <Tag className={className}>{value}</Tag> : null;\n return (\n <Tag\n className={className}\n data-cover-field={name}\n data-placeholder={placeholder}\n contentEditable\n suppressContentEditableWarning\n onBlur={(e: FocusEvent<HTMLElement>) => onFieldChange?.(name, e.currentTarget.textContent?.trim() ?? '')}\n onKeyDown={(e: KeyboardEvent<HTMLElement>) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n (e.currentTarget as HTMLElement).blur();\n }\n }}\n >\n {value}\n </Tag>\n );\n}\n\ntype CoverImageProps = { src?: string; className?: string };\n\nexport function CoverImage({ src, className }: CoverImageProps) {\n const { editable, onImagePick } = useContext(CoverEditContext);\n if (!editable) {\n return src ? (\n <div className={className} data-cover-image>\n <img src={src} alt=\"\" />\n </div>\n ) : null;\n }\n return (\n <div\n className={className}\n data-cover-image\n role=\"button\"\n tabIndex={0}\n onClick={() => onImagePick?.()}\n onKeyDown={(e: KeyboardEvent<HTMLElement>) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onImagePick?.();\n }\n }}\n >\n {src ? <img src={src} alt=\"\" /> : <span>Adicionar imagem</span>}\n </div>\n );\n}\n","import styled from 'styled-components';\n\n// Página A4 inteira; cores/fonte por props (capa é irmã do PageFrame, não herda --doc-*).\nexport const CoverFrame = styled.div<{ $font: string; $bg?: string; $color?: string }>`\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n font-family: ${p => p.$font};\n background: ${p => p.$bg ?? '#FFFFFF'};\n color: ${p => p.$color ?? '#111827'};\n overflow-wrap: break-word;\n\n [data-cover-field][contenteditable] {\n cursor: text;\n outline: 1px dashed transparent;\n outline-offset: 3px;\n transition: outline-color 0.12s ease;\n }\n [data-cover-field][contenteditable]:hover {\n outline-color: rgba(0, 90, 195, 0.45);\n }\n [data-cover-field][contenteditable]:focus {\n outline: 1px solid rgba(0, 90, 195, 0.8);\n }\n [data-cover-field][contenteditable]:empty::before {\n content: attr(data-placeholder);\n opacity: 0.45;\n font-style: italic;\n }\n [data-cover-image][role='button'] {\n cursor: pointer;\n outline: 1px dashed transparent;\n outline-offset: 3px;\n transition: outline-color 0.12s ease;\n }\n [data-cover-image][role='button']:hover {\n outline-color: rgba(0, 90, 195, 0.45);\n }\n [data-cover-image] img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n }\n`;\n\nexport const FullBleedImage = styled.div<{ $overlay: string; $overlayOpacity?: number }>`\n position: absolute;\n inset: 0;\n\n & > [data-cover-image] {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #ffffff;\n }\n\n &::after {\n content: '';\n position: absolute;\n inset: 0;\n background: ${p => p.$overlay};\n opacity: ${p => p.$overlayOpacity ?? 0.55};\n }\n`;\n\nexport const CoverLogoImg = styled.img`\n max-height: 48px;\n max-width: 160px;\n object-fit: contain;\n`;\n\nexport const LabelSmall = styled.div`\n font-size: 11px;\n letter-spacing: 0.04em;\n opacity: 0.8;\n`;\n","import { useContext } from 'react';\nimport styled from 'styled-components';\nimport { fontStack } from '../../../surface/fonts';\nimport { CoverEditContext, CoverField, type CoverTemplateProps } from './primitives';\nimport { CoverFrame, CoverLogoImg } from './covers.styles';\n\nconst BAND_BG = '#e8ecf1';\nconst HAIRLINE = '#d5dae1';\n\nconst Hairline = styled.div`\n position: absolute;\n left: 4.7%;\n top: 3%;\n height: 94%;\n width: 1px;\n background: ${HAIRLINE};\n`;\n\nconst Logo = styled(CoverLogoImg)`\n position: absolute;\n left: 10.9%;\n top: 6%;\n max-height: 13.6cqw;\n max-width: 32.7cqw;\n`;\n\nconst AccentBar = styled.div<{ $accent: string }>`\n position: absolute;\n left: 4.7%;\n top: 22.3%;\n width: 1.13cqw;\n height: 28.7%;\n background: ${p => p.$accent};\n`;\n\nconst Head = styled.div`\n position: absolute;\n left: 10.9%;\n right: 6%;\n top: 22.3%;\n display: flex;\n flex-direction: column;\n`;\n\nconst Title = styled(CoverField)`\n display: block;\n font-weight: 800;\n font-size: 12.6cqw;\n line-height: 1.2;\n letter-spacing: -0.63cqw;\n text-transform: uppercase;\n`;\n\nconst DateLine = styled(CoverField)`\n display: block;\n margin-top: 3.3cqw;\n font-size: 4.5cqw;\n font-weight: 400;\n`;\n\nconst Band = styled.div`\n position: absolute;\n left: 0;\n bottom: 0;\n width: 100%;\n height: 29.2%;\n background: ${BAND_BG};\n display: flex;\n flex-direction: column;\n justify-content: center;\n gap: 4.3cqw;\n padding-left: 10.9%;\n padding-right: 6%;\n box-sizing: border-box;\n`;\n\nconst Label = styled.div`\n font-size: 2.77cqw;\n font-weight: 400;\n`;\n\nconst Value = styled(CoverField)`\n display: block;\n margin-top: 1cqw;\n font-size: 3.4cqw;\n font-weight: 700;\n line-height: 1.3;\n text-transform: uppercase;\n`;\n\nexport function Model1({ fields, theme, accent, textColor, bgColor }: CoverTemplateProps) {\n const { editable } = useContext(CoverEditContext);\n const showHead = editable || Boolean(fields.title || fields.date);\n const showPrepared = editable || Boolean(fields.preparedFor);\n const showPresented = editable || Boolean(fields.presentedBy);\n const hasBand = showPrepared || showPresented;\n return (\n <CoverFrame $font={fontStack(theme?.documentFont)} $bg={bgColor} $color={textColor}>\n {theme?.logo?.url ? <Logo src={theme.logo.url} alt=\"\" /> : null}\n {showHead ? (\n <>\n <AccentBar $accent={accent} />\n <Head data-cover-head>\n <Title name=\"title\" value={fields.title} placeholder=\"Digite o título...\" />\n <DateLine name=\"date\" value={fields.date} placeholder=\"Mês e ano\" />\n </Head>\n </>\n ) : null}\n {hasBand ? (\n <Band data-cover-band>\n {showPrepared ? (\n <div>\n <Label>Preparada para</Label>\n <Value name=\"preparedFor\" value={fields.preparedFor} placeholder=\"Nome do cliente\" />\n </div>\n ) : null}\n {showPresented ? (\n <div>\n <Label>Apresentada por</Label>\n <Value name=\"presentedBy\" value={fields.presentedBy} placeholder=\"Nome da empresa\" />\n </div>\n ) : null}\n </Band>\n ) : null}\n <Hairline />\n </CoverFrame>\n );\n}\n","import styled from 'styled-components';\nimport { fontStack } from '../../../surface/fonts';\nimport { CoverField, CoverImage, type CoverTemplateProps } from './primitives';\nimport { CoverFrame, FullBleedImage, CoverLogoImg } from './covers.styles';\n\nconst HAIRLINE = '#d9d9d9';\n\nconst Chrome = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n height: 100%;\n padding: 0 7cqw 8cqw;\n`;\n\nconst TopRow = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 4cqw;\n`;\n\nconst Logo = styled(CoverLogoImg)`\n max-width: 17cqw;\n max-height: 17cqw;\n`;\n\nconst Company = styled(CoverField)`\n display: block;\n margin-top: 5cqw;\n max-width: 45cqw;\n font-size: 2.94cqw;\n font-weight: 800;\n line-height: 1.15;\n letter-spacing: 0.3cqw;\n text-align: right;\n text-transform: uppercase;\n`;\n\nconst Head = styled.div`\n display: flex;\n flex-direction: column;\n\n &::before,\n &::after {\n content: '';\n width: 19cqw;\n height: 0.9cqw;\n background: ${HAIRLINE};\n }\n &::before {\n margin-bottom: 6cqw;\n }\n &::after {\n margin-top: 6cqw;\n }\n`;\n\nconst Title = styled(CoverField)`\n display: block;\n font-size: 8.82cqw;\n font-weight: 800;\n line-height: 1.15;\n letter-spacing: 0.88cqw;\n text-transform: uppercase;\n`;\n\nconst Subtitle = styled(CoverField)`\n display: block;\n margin-top: 3cqw;\n font-size: 3.53cqw;\n font-weight: 400;\n line-height: 1.3;\n`;\n\nexport function Model2({ fields, theme, textColor, bgColor }: CoverTemplateProps) {\n return (\n <CoverFrame $font={fontStack(theme?.documentFont)} $bg={fields.imageUrl ? undefined : bgColor} $color={textColor}>\n {fields.imageUrl ? (\n <FullBleedImage $overlay={bgColor} $overlayOpacity={0.85}>\n <CoverImage src={fields.imageUrl} />\n </FullBleedImage>\n ) : null}\n <Chrome>\n <TopRow>\n {theme?.logo?.url ? <Logo src={theme.logo.url} alt=\"\" /> : <span />}\n <Company name=\"presentedBy\" value={fields.presentedBy} placeholder=\"Nome da empresa\" />\n </TopRow>\n <Head>\n <Title name=\"title\" value={fields.title} placeholder=\"Digite o título...\" />\n <Subtitle name=\"subtitle\" value={fields.subtitle} placeholder=\"Digite o subtítulo...\" />\n </Head>\n </Chrome>\n </CoverFrame>\n );\n}\n","import { useContext } from 'react';\nimport styled from 'styled-components';\nimport { fontStack } from '../../../surface/fonts';\nimport { CoverEditContext, CoverField, CoverImage, type CoverTemplateProps } from './primitives';\nimport { CoverFrame, CoverLogoImg } from './covers.styles';\n\nconst ImageBand = styled.div`\n position: relative;\n width: 100%;\n height: 42.9cqw;\n flex-shrink: 0;\n overflow: hidden;\n background: #1a1a1a;\n\n & > [data-cover-image] {\n position: absolute;\n inset: 0;\n }\n`;\n\nconst Logo = styled(CoverLogoImg)`\n position: absolute;\n top: 1.2cqw;\n right: 5.9cqw;\n max-width: 14.7cqw;\n max-height: 14.7cqw;\n`;\n\nconst Body = styled.div`\n flex: 1;\n display: flex;\n flex-direction: column;\n padding: 11.5cqw 9.4cqw 7.35cqw;\n`;\n\nconst DateField = styled(CoverField)`\n display: block;\n font-size: 2.94cqw;\n font-weight: 400;\n opacity: 0.5;\n`;\n\nconst Title = styled(CoverField)`\n display: block;\n margin-top: 2.35cqw;\n font-size: 10.6cqw;\n font-weight: 800;\n line-height: 1.2;\n text-transform: uppercase;\n`;\n\nconst Subtitle = styled(CoverField)`\n display: block;\n margin-top: 4.7cqw;\n font-size: 3.53cqw;\n font-weight: 400;\n opacity: 0.62;\n`;\n\nconst Parties = styled.div`\n margin-top: 13.8cqw;\n display: flex;\n flex-direction: column;\n gap: 4.7cqw;\n`;\n\nconst Label = styled.div`\n font-size: 3.53cqw;\n font-weight: 600;\n`;\n\nconst Value = styled(CoverField)`\n display: block;\n margin-top: 0.7cqw;\n font-size: 3.53cqw;\n font-weight: 400;\n opacity: 0.62;\n`;\n\nexport function Model3({ fields, theme, textColor, bgColor }: CoverTemplateProps) {\n const { editable } = useContext(CoverEditContext);\n const showPresented = editable || Boolean(fields.presentedBy);\n const showPrepared = editable || Boolean(fields.preparedFor);\n return (\n <CoverFrame $font={fontStack(theme?.documentFont)} $bg={bgColor} $color={textColor}>\n <ImageBand>\n {fields.imageUrl ? <CoverImage src={fields.imageUrl} /> : null}\n {theme?.logo?.url ? <Logo src={theme.logo.url} alt=\"\" /> : null}\n </ImageBand>\n <Body>\n <DateField name=\"date\" value={fields.date} placeholder=\"Mês e ano\" />\n <Title name=\"title\" value={fields.title} placeholder=\"Digite o título...\" />\n <Subtitle name=\"subtitle\" value={fields.subtitle} placeholder=\"Digite o subtítulo...\" />\n {showPresented || showPrepared ? (\n <Parties data-cover-parties>\n {showPresented ? (\n <div>\n <Label>Apresentada por</Label>\n <Value name=\"presentedBy\" value={fields.presentedBy} placeholder=\"Nome da empresa\" />\n </div>\n ) : null}\n {showPrepared ? (\n <div>\n <Label>Preparada para</Label>\n <Value name=\"preparedFor\" value={fields.preparedFor} placeholder=\"Nome do cliente\" />\n </div>\n ) : null}\n </Parties>\n ) : null}\n </Body>\n </CoverFrame>\n );\n}\n","import { useContext } from 'react';\nimport styled from 'styled-components';\nimport { fontStack } from '../../../surface/fonts';\nimport { CoverEditContext, CoverField, type CoverTemplateProps } from './primitives';\nimport { CoverFrame, CoverLogoImg } from './covers.styles';\n\nconst Body = styled.div`\n display: flex;\n flex-direction: column;\n height: 100%;\n padding: 4.12cqw 9.4cqw 0;\n`;\n\nconst Logo = styled(CoverLogoImg)`\n max-width: 14.7cqw;\n max-height: 14.7cqw;\n`;\n\nconst Head = styled.div`\n margin-top: 23.2cqw;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n`;\n\nconst DateChip = styled(CoverField)<{ $accent: string }>`\n display: inline-block;\n align-self: flex-start;\n max-width: 100%;\n background: ${p => p.$accent};\n border-radius: 1000px;\n padding: 1.18cqw 2.94cqw;\n font-size: 2.94cqw;\n font-weight: 400;\n color: #ffffff;\n`;\n\nconst Title = styled(CoverField)`\n display: block;\n align-self: stretch;\n margin-top: 3.5cqw;\n font-size: 14.1cqw;\n font-weight: 300;\n line-height: 1.1;\n`;\n\nconst Footer = styled.div`\n margin-top: auto;\n padding-bottom: 11cqw;\n display: flex;\n gap: 6cqw;\n`;\n\nconst Party = styled.div`\n flex: 1;\n min-width: 0;\n`;\n\nconst Label = styled.div`\n font-size: 3.53cqw;\n font-weight: 300;\n opacity: 0.72;\n`;\n\nconst Value = styled(CoverField)`\n display: block;\n margin-top: 1.5cqw;\n font-size: 4.12cqw;\n font-weight: 500;\n`;\n\nexport function Model4({ fields, theme, accent, textColor, bgColor }: CoverTemplateProps) {\n const { editable } = useContext(CoverEditContext);\n const showPrepared = editable || Boolean(fields.preparedFor);\n const showPresented = editable || Boolean(fields.presentedBy);\n return (\n <CoverFrame $font={fontStack(theme?.documentFont)} $bg={bgColor} $color={textColor}>\n <Body>\n {theme?.logo?.url ? <Logo src={theme.logo.url} alt=\"\" /> : <span />}\n <Head>\n <DateChip name=\"date\" value={fields.date} placeholder=\"Mês e ano\" $accent={accent} />\n <Title name=\"title\" value={fields.title} placeholder=\"Digite o título...\" />\n </Head>\n {showPrepared || showPresented ? (\n <Footer data-cover-footer>\n {showPrepared ? (\n <Party>\n <Label>Apresentada para</Label>\n <Value name=\"preparedFor\" value={fields.preparedFor} placeholder=\"Nome do cliente\" />\n </Party>\n ) : null}\n {showPresented ? (\n <Party>\n <Label>Apresentada por</Label>\n <Value name=\"presentedBy\" value={fields.presentedBy} placeholder=\"Nome da empresa\" />\n </Party>\n ) : null}\n </Footer>\n ) : null}\n </Body>\n </CoverFrame>\n );\n}\n","import { useContext } from 'react';\nimport styled from 'styled-components';\nimport { fontStack } from '../../../surface/fonts';\nimport { CoverEditContext, CoverField, CoverImage, type CoverTemplateProps } from './primitives';\nimport { CoverFrame, FullBleedImage, CoverLogoImg } from './covers.styles';\n\nconst Spacer = styled.div`\n height: 24.4cqw;\n flex-shrink: 0;\n`;\n\nconst ImageBand = styled.div`\n position: relative;\n width: 100%;\n height: 64.4cqw;\n flex-shrink: 0;\n overflow: hidden;\n background: #e8eef7;\n`;\n\nconst Bar = styled.div<{ $accent: string }>`\n position: absolute;\n width: 47.9cqw;\n height: 2.06cqw;\n background: ${p => p.$accent};\n`;\n\nconst BarTop = styled(Bar)`\n top: 0;\n right: 0;\n`;\n\nconst BarBottom = styled(Bar)`\n bottom: 0;\n left: 0;\n`;\n\nconst Bottom = styled.div`\n flex: 1;\n display: flex;\n align-items: center;\n gap: 7cqw;\n padding: 0 4.7cqw 4cqw 7cqw;\n`;\n\nconst LogoCol = styled.div`\n flex-shrink: 0;\n width: 29.4cqw;\n`;\n\nconst Logo = styled(CoverLogoImg)`\n max-width: 29.4cqw;\n max-height: 29.4cqw;\n`;\n\nconst TextCol = styled.div`\n flex: 1;\n min-width: 0;\n`;\n\nconst Title = styled(CoverField)`\n display: block;\n font-size: 7.06cqw;\n font-weight: 700;\n line-height: 1.2;\n text-transform: uppercase;\n`;\n\nconst Subtitle = styled(CoverField)`\n display: block;\n margin-top: 2.47cqw;\n font-size: 2.94cqw;\n font-weight: 400;\n line-height: 1.2;\n opacity: 0.72;\n`;\n\nconst Presented = styled.div`\n margin-top: 3.5cqw;\n font-size: 2.94cqw;\n font-weight: 600;\n line-height: 1.2;\n`;\n\nconst PresentedValue = styled(CoverField)`\n font-weight: 600;\n`;\n\nexport function Model5({ fields, theme, accent, textColor, bgColor }: CoverTemplateProps) {\n const { editable } = useContext(CoverEditContext);\n const showPresented = editable || Boolean(fields.presentedBy);\n return (\n <CoverFrame $font={fontStack(theme?.documentFont)} $bg={bgColor} $color={textColor}>\n <Spacer />\n <ImageBand>\n {fields.imageUrl ? (\n <FullBleedImage $overlay={accent} $overlayOpacity={0.5}>\n <CoverImage src={fields.imageUrl} />\n </FullBleedImage>\n ) : null}\n </ImageBand>\n <Bottom>\n <LogoCol>{theme?.logo?.url ? <Logo src={theme.logo.url} alt=\"\" /> : null}</LogoCol>\n <TextCol>\n <Title name=\"title\" value={fields.title} placeholder=\"Digite o título...\" />\n <Subtitle name=\"subtitle\" value={fields.subtitle} placeholder=\"Digite o subtítulo...\" />\n {showPresented ? (\n <Presented>\n Apresentada por:{' '}\n <PresentedValue name=\"presentedBy\" value={fields.presentedBy} placeholder=\"Nome da empresa\" />\n </Presented>\n ) : null}\n </TextCol>\n </Bottom>\n <BarTop $accent={accent} />\n <BarBottom $accent={accent} />\n </CoverFrame>\n );\n}\n","import type { ComponentType } from 'react';\nimport type { Theme } from '../../../schema/theme';\nimport { DEFAULT_DOCUMENT_COLORS } from '../../../surface/surface';\nimport type { CoverTemplateProps } from './primitives';\nimport { Model1 } from './Model1';\nimport { Model2 } from './Model2';\nimport { Model3 } from './Model3';\nimport { Model4 } from './Model4';\nimport { Model5 } from './Model5';\n\nexport const COVER_TEMPLATES: Record<string, ComponentType<CoverTemplateProps>> = {\n 'model-1': Model1,\n 'model-2': Model2,\n 'model-3': Model3,\n 'model-4': Model4,\n 'model-5': Model5\n};\n\nexport const COVER_TEMPLATE_IDS = Object.keys(COVER_TEMPLATES);\n\nexport const resolveCoverAccent = (accent?: string, theme?: Theme): string =>\n accent ?? theme?.colors?.brand ?? DEFAULT_DOCUMENT_COLORS.brand;\n\nconst COVER_SURFACES: Record<string, 'brand' | 'background' | 'dark'> = {\n 'model-1': 'background',\n 'model-2': 'brand',\n 'model-3': 'brand',\n 'model-4': 'dark',\n 'model-5': 'background'\n};\n\nconst ON_BRAND_TEXT = '#FFFFFF';\n\nconst DARK_SURFACE_BG = '#131B2C';\n\nexport type CoverColorOverrides = { accent?: string; textColor?: string; bgColor?: string };\n\nexport type CoverColors = { accent: string; textColor: string; bgColor: string };\n\nexport const resolveCoverColors = (\n templateId: string | undefined,\n { accent, textColor, bgColor }: CoverColorOverrides,\n theme?: Theme\n): CoverColors => {\n const colors = { ...DEFAULT_DOCUMENT_COLORS, ...theme?.colors };\n const surface = COVER_SURFACES[templateId ?? ''] ?? COVER_SURFACES['model-1'];\n const resolvedAccent = resolveCoverAccent(accent, theme);\n const surfaceBg = { brand: resolvedAccent, dark: DARK_SURFACE_BG, background: colors.background }[surface];\n\n return {\n accent: resolvedAccent,\n textColor: textColor ?? (surface === 'background' ? colors.text : ON_BRAND_TEXT),\n bgColor: bgColor ?? surfaceBg\n };\n};\n","import type { CSSProperties } from 'react';\nimport type { CoverFields, Theme } from '../../schema/theme';\nimport { DEFAULT_DOCUMENT_COLORS } from '../../surface/surface';\nimport { COVER_TEMPLATES, resolveCoverColors } from './covers';\n\nexport type CoverPageProps = {\n templateId?: string;\n accent?: string;\n fields?: CoverFields;\n theme?: Theme;\n textColor?: string;\n bgColor?: string;\n};\n\nexport function CoverPage({ templateId, accent, fields, theme, textColor, bgColor }: CoverPageProps) {\n if (!templateId) return null;\n\n // CoverPage é IRMÃO do PageFrame no body (buildDocumentHtml), não descendente —\n // não pode contar com as --doc-* vars setadas lá, precisa das próprias.\n const colors = { ...DEFAULT_DOCUMENT_COLORS, ...theme?.colors };\n const vars: CSSProperties = {\n ['--doc-brand' as keyof CSSProperties]: colors.brand,\n ['--doc-text' as keyof CSSProperties]: colors.text,\n ['--doc-bg' as keyof CSSProperties]: colors.background\n } as CSSProperties;\n\n const Template = COVER_TEMPLATES[templateId] ?? COVER_TEMPLATES['model-1'];\n const resolved = resolveCoverColors(templateId, { accent, textColor, bgColor }, theme);\n\n // Layout (width/height/overflow) vem do CSS gerado (buildPageCss.ts): .dg-cover\n // já define width, e o escopo .pagedjs_page_content .dg-cover define height/overflow\n // para a página impressa. Inline aqui só carrega as --doc-* vars.\n return (\n <section className=\"dg-cover\" style={vars}>\n <Template fields={fields ?? {}} theme={theme} {...resolved} />\n </section>\n );\n}\n","import type { ReactNode } from 'react';\nimport type { CompanyInfo } from './types';\n\nconst BOX: { width: number; height: number; 'aria-hidden': true } = { width: 14, height: 14, 'aria-hidden': true };\n\nconst stroke = (inner: string): ReactNode => (\n <svg\n {...BOX}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n // eslint-disable-next-line react/no-danger -- markup estático deste arquivo, nunca entrada do host\n dangerouslySetInnerHTML={{ __html: inner }}\n />\n);\n\nconst brand = (viewBox: string, d: string): ReactNode => (\n <svg {...BOX} viewBox={viewBox} fill=\"currentColor\">\n <path d={d} />\n </svg>\n);\n\nexport const COMPANY_INFO_ICONS: Record<keyof CompanyInfo, ReactNode> = {\n companyName: stroke(\n '<path d=\"M12 10h.01\" /><path d=\"M12 14h.01\" /><path d=\"M12 6h.01\" /><path d=\"M16 10h.01\" /><path d=\"M16 14h.01\" /><path d=\"M16 6h.01\" /><path d=\"M8 10h.01\" /><path d=\"M8 14h.01\" /><path d=\"M8 6h.01\" /><path d=\"M9 22v-3a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v3\" /><rect x=\"4\" y=\"2\" width=\"16\" height=\"20\" rx=\"2\" />'\n ),\n cnpj: stroke(\n '<path d=\"M16 10h2\" /><path d=\"M16 14h2\" /><path d=\"M6.17 15a3 3 0 0 1 5.66 0\" /><circle cx=\"9\" cy=\"11\" r=\"2\" /><rect x=\"2\" y=\"5\" width=\"20\" height=\"14\" rx=\"2\" />'\n ),\n phone: stroke(\n '<path d=\"M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384\" />'\n ),\n email: stroke(\n '<path d=\"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7\" /><rect x=\"2\" y=\"4\" width=\"20\" height=\"16\" rx=\"2\" />'\n ),\n address: stroke(\n '<path d=\"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0\" /><circle cx=\"12\" cy=\"10\" r=\"3\" />'\n ),\n site: stroke(\n '<circle cx=\"12\" cy=\"12\" r=\"10\" /><path d=\"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20\" /><path d=\"M2 12h20\" />'\n ),\n instagram: brand(\n '0 0 448 512',\n 'M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z'\n ),\n facebook: brand(\n '0 0 320 512',\n 'M80 299.3V512H196V299.3h86.5l18-97.8H196V166.9c0-51.7 20.3-71.5 72.7-71.5c16.3 0 29.4 .4 37 1.2V7.9C291.4 4 256.4 0 236.2 0C129.3 0 80 50.5 80 159.4v42.1H14v97.8H80z'\n ),\n twitter: brand(\n '0 0 512 512',\n 'M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z'\n ),\n linkedin: brand(\n '0 0 448 512',\n 'M100.28 448H7.4V148.9h92.88zM53.79 108.1C24.09 108.1 0 83.5 0 53.8a53.79 53.79 0 0 1 107.58 0c0 29.7-24.1 54.3-53.79 54.3zM447.9 448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29 0-55.69 37.7-55.69 76.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5 42.69-48.3 87.88-48.3 94 0 111.28 61.9 111.28 142.3V448z'\n )\n};\n","import styled from 'styled-components';\n\n// Chrome roda dentro das margin boxes do Paged.js — fora do PageFrame, sem herdar\n// font-family nem --doc-* vars; cada root recebe fonte e cores via props.\n// O Paged.js força `display: block` no filho direto da margin box com especificidade\n// (0,4,0) — por isso o root é block e o layout flex fica num wrapper interno.\n// O fundo da faixa NÃO fica aqui: é pintado na row inteira do Paged.js (corners\n// inclusos) pelo buildPageCss, pra faixa ser full-bleed até as bordas da página.\nexport const HeaderRoot = styled.header<{ $color: string; $font: string }>`\n height: 100%;\n color: ${props => props.$color};\n font-family: ${props => props.$font};\n line-height: 1.5;\n`;\n\nexport const HeaderLayout = styled.div<{ $reverse: boolean }>`\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-direction: ${props => (props.$reverse ? 'row-reverse' : 'row')};\n gap: 16px;\n height: 100%;\n padding: 20px 0;\n`;\n\nexport const HeaderInfo = styled.div<{ $alignEnd?: boolean }>`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: ${props => (props.$alignEnd ? 'flex-end' : 'flex-start')};\n min-width: 0;\n font-size: 12px;\n text-align: ${props => (props.$alignEnd ? 'right' : 'left')};\n`;\n\n// Ícone fica sempre na borda externa da página: infos à direita (logo left) → texto, ícone.\nexport const InfoLine = styled.span<{ $strong?: boolean; $iconAfter?: boolean }>`\n display: flex;\n flex-direction: ${props => (props.$iconAfter ? 'row-reverse' : 'row')};\n align-items: center;\n gap: 8px;\n height: 22px;\n font-weight: ${props => (props.$strong ? 600 : 400)};\n font-size: ${props => (props.$strong ? '12.5px' : '12px')};\n\n svg {\n flex-shrink: 0;\n }\n`;\n\nexport const HeaderLogo = styled.img`\n max-height: 44px;\n max-width: 180px;\n object-fit: contain;\n`;\n\nexport const FooterRoot = styled.footer<{ $color: string; $font: string }>`\n height: 100%;\n color: ${props => props.$color};\n font-family: ${props => props.$font};\n line-height: 1.5;\n`;\n\nexport const FooterLayout = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n height: 100%;\n padding: 12px 0;\n`;\n\nexport const FooterInfoRows = styled.div<{ $justify: string }>`\n display: flex;\n align-items: center;\n justify-content: ${props => props.$justify};\n flex-wrap: wrap;\n column-gap: 24px;\n font-size: 12px;\n`;\n\nexport const FooterItem = styled.span`\n display: inline-flex;\n align-items: center;\n gap: 6px;\n height: 22px;\n white-space: nowrap;\n\n svg {\n flex-shrink: 0;\n }\n`;\n","import type { HeaderConfig } from '../../schema/theme';\nimport type { CompanyInfo } from './types';\nimport { fontStack } from '../../surface/fonts';\nimport { COMPANY_INFO_ICONS } from './icons';\nimport { HeaderInfo, HeaderLayout, HeaderLogo, HeaderRoot, InfoLine } from './chrome.styles';\n\n/** Ordem em que as informações da empresa aparecem no cabeçalho. */\nexport const HEADER_INFO_ORDER: Array<keyof CompanyInfo> = ['companyName', 'cnpj', 'phone', 'email', 'address'];\n\nexport type HeaderBarProps = {\n config?: Partial<HeaderConfig>;\n companyInfo?: CompanyInfo;\n logoUrl?: string;\n documentFont?: string;\n};\n\nexport function HeaderBar({ config, companyInfo = {}, logoUrl, documentFont }: HeaderBarProps) {\n if (!config?.enabled) return null;\n\n const lines = HEADER_INFO_ORDER.filter(\n key => config.info?.[key as keyof NonNullable<HeaderConfig['info']>] && companyInfo[key]\n );\n const logoLeft = config.logoPosition === 'left';\n\n return (\n <HeaderRoot className=\"dg-running-header\" $color={config.color ?? '#3F4759'} $font={fontStack(documentFont)}>\n <HeaderLayout $reverse={logoLeft}>\n <HeaderInfo $alignEnd={logoLeft}>\n {lines.map(key => (\n <InfoLine key={key} $strong={key === 'companyName'} $iconAfter={logoLeft}>\n {COMPANY_INFO_ICONS[key]}\n <span>{companyInfo[key]}</span>\n </InfoLine>\n ))}\n </HeaderInfo>\n {logoUrl ? <HeaderLogo src={logoUrl} alt=\"\" /> : null}\n </HeaderLayout>\n </HeaderRoot>\n );\n}\n","import type { FooterConfig } from '../../schema/theme';\nimport type { CompanyInfo } from './types';\nimport { fontStack } from '../../surface/fonts';\nimport { COMPANY_INFO_ICONS } from './icons';\nimport { FooterInfoRows, FooterItem, FooterLayout, FooterRoot } from './chrome.styles';\n\nexport const FOOTER_INFO_ORDER: Array<keyof CompanyInfo> = [\n 'phone',\n 'site',\n 'instagram',\n 'facebook',\n 'twitter',\n 'linkedin',\n 'email',\n 'address'\n];\n\nconst ALIGNMENT_TO_JUSTIFY: Record<NonNullable<FooterConfig['alignment']>, string> = {\n left: 'flex-start',\n center: 'center',\n right: 'flex-end'\n};\n\nexport type FooterBarProps = {\n config?: Partial<FooterConfig>;\n companyInfo?: CompanyInfo;\n documentFont?: string;\n};\n\nexport function FooterBar({ config, companyInfo = {}, documentFont }: FooterBarProps) {\n const showBand = Boolean(config?.enabled);\n const showPageNumber = Boolean(config?.pageNumber);\n if (!showBand && !showPageNumber) return null;\n\n const lines = showBand\n ? FOOTER_INFO_ORDER.filter(\n key => config?.info?.[key as keyof NonNullable<FooterConfig['info']>] && companyInfo[key]\n )\n : [];\n const justify = ALIGNMENT_TO_JUSTIFY[config?.alignment ?? 'center'];\n\n return (\n <FooterRoot className=\"dg-running-footer\" $color={config?.color ?? '#3F4759'} $font={fontStack(documentFont)}>\n {showPageNumber ? <span className=\"dg-page-number\" /> : null}\n {showBand ? (\n <FooterLayout>\n {lines.length ? (\n <FooterInfoRows $justify={justify}>\n {lines.map(key => (\n <FooterItem key={key}>\n {COMPANY_INFO_ICONS[key]}\n <span>{companyInfo[key]}</span>\n </FooterItem>\n ))}\n </FooterInfoRows>\n ) : null}\n </FooterLayout>\n ) : null}\n </FooterRoot>\n );\n}\n","/**\n * Protocolo `postMessage` entre o documento gerado (iframe) e o host.\n * Módulo separado do `previewBootstrap` de propósito: o host precisa destas\n * constantes no browser, e o bootstrap só existe no caminho de impressão.\n */\nexport const DG_MESSAGE_SOURCE = 'document-generator';\nexport const DG_READY = 'dg-ready';\nexport const DG_ERROR = 'dg-error';\n"]}
|
|
@@ -18,7 +18,7 @@ function defineBlock(entry) {
|
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
// src/blocks/primitives/proseCss.ts
|
|
21
|
-
var DOCUMENT_TEXT_CSS = `font-size:
|
|
21
|
+
var DOCUMENT_TEXT_CSS = `font-size: 14px;
|
|
22
22
|
line-height: 1.5;
|
|
23
23
|
overflow-wrap: break-word;
|
|
24
24
|
word-break: break-word;`;
|
|
@@ -57,7 +57,10 @@ li {
|
|
|
57
57
|
strong, b { font-weight: 600; }
|
|
58
58
|
em, i { font-style: italic; }
|
|
59
59
|
|
|
60
|
-
a {
|
|
60
|
+
a {
|
|
61
|
+
color: var(--doc-brand, #001a43);
|
|
62
|
+
text-decoration: underline;
|
|
63
|
+
}
|
|
61
64
|
|
|
62
65
|
img { max-width: 100%; }
|
|
63
66
|
|
|
@@ -92,8 +95,8 @@ var Prose = styled4__default.default.div`
|
|
|
92
95
|
.${chunkI22MGPXO_cjs.CHIP_CLASS} {
|
|
93
96
|
padding: 1px 6px;
|
|
94
97
|
border-radius: 4px;
|
|
95
|
-
background: color-mix(in srgb, var(--doc-brand, #
|
|
96
|
-
color: var(--doc-brand, #
|
|
98
|
+
background: color-mix(in srgb, var(--doc-brand, #001a43) 12%, transparent);
|
|
99
|
+
color: var(--doc-brand, #001a43);
|
|
97
100
|
}
|
|
98
101
|
|
|
99
102
|
.${chunkI22MGPXO_cjs.INVALID_CHIP_CLASS} {
|
|
@@ -163,7 +166,7 @@ var List = styled4__default.default.ul`
|
|
|
163
166
|
margin-bottom: 4px;
|
|
164
167
|
}
|
|
165
168
|
li::marker {
|
|
166
|
-
color: var(--doc-brand, #
|
|
169
|
+
color: var(--doc-brand, #001a43);
|
|
167
170
|
}
|
|
168
171
|
`;
|
|
169
172
|
var ListBlock = defineBlock({
|
|
@@ -201,7 +204,7 @@ var ListBlock = defineBlock({
|
|
|
201
204
|
var Callout = styled4__default.default.blockquote`
|
|
202
205
|
margin: 0;
|
|
203
206
|
padding: 12px 0 12px 16px;
|
|
204
|
-
border-left: 3px solid var(--doc-brand, #
|
|
207
|
+
border-left: 3px solid var(--doc-brand, #001a43);
|
|
205
208
|
`;
|
|
206
209
|
var Author = styled4__default.default.footer`
|
|
207
210
|
margin-top: 6px;
|
|
@@ -736,7 +739,7 @@ function ContentIcon({
|
|
|
736
739
|
}
|
|
737
740
|
var IconSlot = styled4__default.default.span`
|
|
738
741
|
flex: none;
|
|
739
|
-
color: var(--doc-brand, #
|
|
742
|
+
color: var(--doc-brand, #001a43);
|
|
740
743
|
line-height: 1;
|
|
741
744
|
`;
|
|
742
745
|
var Body = styled4__default.default.div`
|
|
@@ -807,7 +810,7 @@ var Grid2 = styled4__default.default.table`
|
|
|
807
810
|
|
|
808
811
|
th {
|
|
809
812
|
font-weight: 600;
|
|
810
|
-
background: color-mix(in srgb, var(--doc-brand, #
|
|
813
|
+
background: color-mix(in srgb, var(--doc-brand, #001a43) 8%, transparent);
|
|
811
814
|
}
|
|
812
815
|
`;
|
|
813
816
|
var TableBlock = defineBlock({
|
|
@@ -934,5 +937,5 @@ exports.blocksByKey = blocksByKey;
|
|
|
934
937
|
exports.defaultBlocks = defaultBlocks;
|
|
935
938
|
exports.defineBlock = defineBlock;
|
|
936
939
|
exports.overrideBlock = overrideBlock;
|
|
937
|
-
//# sourceMappingURL=chunk-
|
|
938
|
-
//# sourceMappingURL=chunk-
|
|
940
|
+
//# sourceMappingURL=chunk-USMVHVHF.cjs.map
|
|
941
|
+
//# sourceMappingURL=chunk-USMVHVHF.cjs.map
|