vobi_document 1.0.2 → 1.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 (96) hide show
  1. package/README.md +23 -6
  2. package/dist/blocks.cjs +100 -0
  3. package/dist/blocks.cjs.map +1 -0
  4. package/dist/blocks.d.cts +201 -0
  5. package/dist/blocks.d.ts +201 -0
  6. package/dist/blocks.js +7 -0
  7. package/dist/blocks.js.map +1 -0
  8. package/dist/catalogContext-DenbX-OW.d.cts +15 -0
  9. package/dist/catalogContext-HGMU-w_4.d.ts +15 -0
  10. package/dist/chunk-2EBYURIX.js +90 -0
  11. package/dist/chunk-2EBYURIX.js.map +1 -0
  12. package/dist/chunk-6GRYRVU5.js +824 -0
  13. package/dist/chunk-6GRYRVU5.js.map +1 -0
  14. package/dist/chunk-ABIEQHS2.js +159 -0
  15. package/dist/chunk-ABIEQHS2.js.map +1 -0
  16. package/dist/chunk-AQ5FAAP6.cjs +168 -0
  17. package/dist/chunk-AQ5FAAP6.cjs.map +1 -0
  18. package/dist/chunk-ERKU5FDV.cjs +407 -0
  19. package/dist/chunk-ERKU5FDV.cjs.map +1 -0
  20. package/dist/chunk-FKX46GKE.cjs +36 -0
  21. package/dist/chunk-FKX46GKE.cjs.map +1 -0
  22. package/dist/chunk-HMTCQOEV.js +1319 -0
  23. package/dist/chunk-HMTCQOEV.js.map +1 -0
  24. package/dist/chunk-IRFFN74K.cjs +89 -0
  25. package/dist/chunk-IRFFN74K.cjs.map +1 -0
  26. package/dist/chunk-IUDN2CGP.js +863 -0
  27. package/dist/chunk-IUDN2CGP.js.map +1 -0
  28. package/dist/chunk-JEVWEGSE.js +95 -0
  29. package/dist/chunk-JEVWEGSE.js.map +1 -0
  30. package/dist/chunk-KCZKC3OG.js +61 -0
  31. package/dist/chunk-KCZKC3OG.js.map +1 -0
  32. package/dist/chunk-KUB3TYG2.cjs +102 -0
  33. package/dist/chunk-KUB3TYG2.cjs.map +1 -0
  34. package/dist/chunk-L5FXGEKX.cjs +114 -0
  35. package/dist/chunk-L5FXGEKX.cjs.map +1 -0
  36. package/dist/chunk-LNBAFOVK.cjs +14 -0
  37. package/dist/chunk-LNBAFOVK.cjs.map +1 -0
  38. package/dist/chunk-M2TPAU2F.js +79 -0
  39. package/dist/chunk-M2TPAU2F.js.map +1 -0
  40. package/dist/chunk-MHTTFNK2.cjs +890 -0
  41. package/dist/chunk-MHTTFNK2.cjs.map +1 -0
  42. package/dist/chunk-NDHTMYPA.cjs +844 -0
  43. package/dist/chunk-NDHTMYPA.cjs.map +1 -0
  44. package/dist/chunk-PLQNNXS2.js +382 -0
  45. package/dist/chunk-PLQNNXS2.js.map +1 -0
  46. package/dist/chunk-QYBWIJXZ.js +98 -0
  47. package/dist/chunk-QYBWIJXZ.js.map +1 -0
  48. package/dist/chunk-U56KVTK5.cjs +68 -0
  49. package/dist/chunk-U56KVTK5.cjs.map +1 -0
  50. package/dist/chunk-X2BLERM5.cjs +1346 -0
  51. package/dist/chunk-X2BLERM5.cjs.map +1 -0
  52. package/dist/chunk-ZOJBDFKU.js +12 -0
  53. package/dist/chunk-ZOJBDFKU.js.map +1 -0
  54. package/dist/chunk-ZXWOZZXO.cjs +94 -0
  55. package/dist/chunk-ZXWOZZXO.cjs.map +1 -0
  56. package/dist/editor.cjs +60 -0
  57. package/dist/editor.cjs.map +1 -0
  58. package/dist/editor.d.cts +190 -0
  59. package/dist/editor.d.ts +190 -0
  60. package/dist/editor.js +7 -0
  61. package/dist/editor.js.map +1 -0
  62. package/dist/index.cjs +412 -3753
  63. package/dist/index.cjs.map +1 -1
  64. package/dist/index.d.cts +72 -7892
  65. package/dist/index.d.ts +72 -7892
  66. package/dist/index.js +22 -3662
  67. package/dist/index.js.map +1 -1
  68. package/dist/messages-Bi0JxNIH.d.cts +23 -0
  69. package/dist/messages-Bi0JxNIH.d.ts +23 -0
  70. package/dist/print.cjs +354 -0
  71. package/dist/print.cjs.map +1 -0
  72. package/dist/print.d.cts +43 -0
  73. package/dist/print.d.ts +43 -0
  74. package/dist/print.js +336 -0
  75. package/dist/print.js.map +1 -0
  76. package/dist/puck.cjs +8 -8
  77. package/dist/puck.cjs.map +1 -1
  78. package/dist/render.cjs +72 -0
  79. package/dist/render.cjs.map +1 -0
  80. package/dist/render.d.cts +93 -0
  81. package/dist/render.d.ts +93 -0
  82. package/dist/render.js +7 -0
  83. package/dist/render.js.map +1 -0
  84. package/dist/theme-BuEFpQeZ.d.cts +112 -0
  85. package/dist/theme-BuEFpQeZ.d.ts +112 -0
  86. package/dist/types-BgIugNWW.d.cts +25 -0
  87. package/dist/types-BgIugNWW.d.ts +25 -0
  88. package/dist/types-CvKSS1Sy.d.cts +38 -0
  89. package/dist/types-CvKSS1Sy.d.ts +38 -0
  90. package/dist/variables.cjs +95 -0
  91. package/dist/variables.cjs.map +1 -0
  92. package/dist/variables.d.cts +74 -0
  93. package/dist/variables.d.ts +74 -0
  94. package/dist/variables.js +6 -0
  95. package/dist/variables.js.map +1 -0
  96. package/package.json +39 -8
@@ -0,0 +1,98 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+
3
+ // src/editor/blockIcons.tsx
4
+ var base = {
5
+ width: 16,
6
+ height: 16,
7
+ viewBox: "0 0 24 24",
8
+ fill: "none",
9
+ stroke: "currentColor",
10
+ strokeWidth: 2,
11
+ strokeLinecap: "round",
12
+ strokeLinejoin: "round"
13
+ };
14
+ function TextIcon() {
15
+ return /* @__PURE__ */ jsx("svg", { ...base, children: /* @__PURE__ */ jsx("path", { d: "M4 6h16M4 12h16M4 18h10" }) });
16
+ }
17
+ function ImageIcon() {
18
+ return /* @__PURE__ */ jsxs("svg", { ...base, children: [
19
+ /* @__PURE__ */ jsx("rect", { x: "3", y: "4", width: "18", height: "16", rx: "2" }),
20
+ /* @__PURE__ */ jsx("circle", { cx: "8.5", cy: "9.5", r: "1.5" }),
21
+ /* @__PURE__ */ jsx("path", { d: "m21 16-5-5L5 20" })
22
+ ] });
23
+ }
24
+ function ButtonIcon() {
25
+ return /* @__PURE__ */ jsx("svg", { ...base, children: /* @__PURE__ */ jsx("rect", { x: "3", y: "8", width: "18", height: "8", rx: "4" }) });
26
+ }
27
+ function DividerIcon() {
28
+ return /* @__PURE__ */ jsx("svg", { ...base, children: /* @__PURE__ */ jsx("path", { d: "M3 12h18" }) });
29
+ }
30
+ function PageBreakIcon() {
31
+ return /* @__PURE__ */ jsxs("svg", { ...base, children: [
32
+ /* @__PURE__ */ jsx("path", { d: "M6 4h8l4 4v4M6 4v6M3 14h18", strokeDasharray: "0 0" }),
33
+ /* @__PURE__ */ jsx("path", { d: "M3 14h18", strokeDasharray: "3 3" }),
34
+ /* @__PURE__ */ jsx("path", { d: "M6 18v2M18 18v2" })
35
+ ] });
36
+ }
37
+ function TableIcon() {
38
+ return /* @__PURE__ */ jsxs("svg", { ...base, children: [
39
+ /* @__PURE__ */ jsx("rect", { x: "3", y: "4", width: "18", height: "16", rx: "1" }),
40
+ /* @__PURE__ */ jsx("path", { d: "M3 10h18M3 15h18M9 4v16M15 4v16" })
41
+ ] });
42
+ }
43
+ function ImageGridIcon() {
44
+ return /* @__PURE__ */ jsxs("svg", { ...base, children: [
45
+ /* @__PURE__ */ jsx("rect", { x: "3", y: "3", width: "8", height: "8", rx: "1" }),
46
+ /* @__PURE__ */ jsx("rect", { x: "13", y: "3", width: "8", height: "8", rx: "1" }),
47
+ /* @__PURE__ */ jsx("rect", { x: "3", y: "13", width: "8", height: "8", rx: "1" }),
48
+ /* @__PURE__ */ jsx("rect", { x: "13", y: "13", width: "8", height: "8", rx: "1" })
49
+ ] });
50
+ }
51
+ function IconTextIcon() {
52
+ return /* @__PURE__ */ jsxs("svg", { ...base, children: [
53
+ /* @__PURE__ */ jsx("circle", { cx: "6", cy: "12", r: "3" }),
54
+ /* @__PURE__ */ jsx("path", { d: "M12 9h9M12 14h6" })
55
+ ] });
56
+ }
57
+ function ImageTextIcon() {
58
+ return /* @__PURE__ */ jsxs("svg", { ...base, children: [
59
+ /* @__PURE__ */ jsx("rect", { x: "3", y: "6", width: "7", height: "12", rx: "1" }),
60
+ /* @__PURE__ */ jsx("path", { d: "M13 8h8M13 12h8M13 16h5" })
61
+ ] });
62
+ }
63
+ function TwoColumnsIcon() {
64
+ return /* @__PURE__ */ jsxs("svg", { ...base, children: [
65
+ /* @__PURE__ */ jsx("rect", { x: "3", y: "4", width: "8", height: "16", rx: "1" }),
66
+ /* @__PURE__ */ jsx("rect", { x: "13", y: "4", width: "8", height: "16", rx: "1" })
67
+ ] });
68
+ }
69
+ function BlockIcon() {
70
+ return /* @__PURE__ */ jsxs("svg", { ...base, children: [
71
+ /* @__PURE__ */ jsx("rect", { x: "4", y: "4", width: "7", height: "7", rx: "1" }),
72
+ /* @__PURE__ */ jsx("rect", { x: "13", y: "4", width: "7", height: "7", rx: "1" }),
73
+ /* @__PURE__ */ jsx("rect", { x: "4", y: "13", width: "7", height: "7", rx: "1" }),
74
+ /* @__PURE__ */ jsx("rect", { x: "13", y: "13", width: "7", height: "7", rx: "1" })
75
+ ] });
76
+ }
77
+ function HeadingIcon() {
78
+ return /* @__PURE__ */ jsx("svg", { ...base, children: /* @__PURE__ */ jsx("path", { d: "M6 4v16M18 4v16M6 12h12" }) });
79
+ }
80
+ function ListIcon() {
81
+ return /* @__PURE__ */ jsx("svg", { ...base, children: /* @__PURE__ */ jsx("path", { d: "M8 6h13M8 12h13M8 18h13M3 6h.01M3 12h.01M3 18h.01" }) });
82
+ }
83
+ function QuoteIcon() {
84
+ return /* @__PURE__ */ jsxs("svg", { ...base, children: [
85
+ /* @__PURE__ */ jsx("path", { d: "M4 5v14" }),
86
+ /* @__PURE__ */ jsx("path", { d: "M10 8h9M10 12h9M10 16h6" })
87
+ ] });
88
+ }
89
+ function SpacerIcon() {
90
+ return /* @__PURE__ */ jsxs("svg", { ...base, children: [
91
+ /* @__PURE__ */ jsx("path", { d: "M4 5h16M4 19h16M12 9v6" }),
92
+ /* @__PURE__ */ jsx("path", { d: "m9 12 3-3 3 3M9 16l3 3 3-3" })
93
+ ] });
94
+ }
95
+
96
+ export { BlockIcon, ButtonIcon, DividerIcon, HeadingIcon, IconTextIcon, ImageGridIcon, ImageIcon, ImageTextIcon, ListIcon, PageBreakIcon, QuoteIcon, SpacerIcon, TableIcon, TextIcon, TwoColumnsIcon };
97
+ //# sourceMappingURL=chunk-QYBWIJXZ.js.map
98
+ //# sourceMappingURL=chunk-QYBWIJXZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/editor/blockIcons.tsx"],"names":[],"mappings":";;;AAEA,IAAM,IAAA,GAAO;AAAA,EACX,KAAA,EAAO,EAAA;AAAA,EACP,MAAA,EAAQ,EAAA;AAAA,EACR,OAAA,EAAS,WAAA;AAAA,EACT,IAAA,EAAM,MAAA;AAAA,EACN,MAAA,EAAQ,cAAA;AAAA,EACR,WAAA,EAAa,CAAA;AAAA,EACb,aAAA,EAAe,OAAA;AAAA,EACf,cAAA,EAAgB;AAClB,CAAA;AAEO,SAAS,QAAA,GAAsB;AACpC,EAAA,uBACE,GAAA,CAAC,SAAK,GAAG,IAAA,EACP,8BAAC,MAAA,EAAA,EAAK,CAAA,EAAE,2BAA0B,CAAA,EACpC,CAAA;AAEJ;AAEO,SAAS,SAAA,GAAuB;AACrC,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAK,GAAG,IAAA,EACP,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,GAAA,EAAI,CAAA,EAAE,GAAA,EAAI,OAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,EAAA,EAAG,GAAA,EAAI,CAAA;AAAA,wBAC/C,QAAA,EAAA,EAAO,EAAA,EAAG,OAAM,EAAA,EAAG,KAAA,EAAM,GAAE,KAAA,EAAM,CAAA;AAAA,oBAClC,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,iBAAA,EAAkB;AAAA,GAAA,EAC5B,CAAA;AAEJ;AAEO,SAAS,UAAA,GAAwB;AACtC,EAAA,2BACG,KAAA,EAAA,EAAK,GAAG,IAAA,EACP,QAAA,kBAAA,GAAA,CAAC,UAAK,CAAA,EAAE,GAAA,EAAI,CAAA,EAAE,GAAA,EAAI,OAAM,IAAA,EAAK,MAAA,EAAO,GAAA,EAAI,EAAA,EAAG,KAAI,CAAA,EACjD,CAAA;AAEJ;AAEO,SAAS,WAAA,GAAyB;AACvC,EAAA,uBACE,GAAA,CAAC,SAAK,GAAG,IAAA,EACP,8BAAC,MAAA,EAAA,EAAK,CAAA,EAAE,YAAW,CAAA,EACrB,CAAA;AAEJ;AAEO,SAAS,aAAA,GAA2B;AACzC,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAK,GAAG,IAAA,EACP,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,4BAAA,EAA6B,eAAA,EAAgB,KAAA,EAAM,CAAA;AAAA,oBAC3D,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,UAAA,EAAW,iBAAgB,KAAA,EAAM,CAAA;AAAA,oBACzC,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,iBAAA,EAAkB;AAAA,GAAA,EAC5B,CAAA;AAEJ;AAEO,SAAS,SAAA,GAAuB;AACrC,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAK,GAAG,IAAA,EACP,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,GAAA,EAAI,CAAA,EAAE,GAAA,EAAI,OAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,EAAA,EAAG,GAAA,EAAI,CAAA;AAAA,oBAChD,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,iCAAA,EAAkC;AAAA,GAAA,EAC5C,CAAA;AAEJ;AAEO,SAAS,aAAA,GAA2B;AACzC,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAK,GAAG,IAAA,EACP,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,GAAA,EAAI,CAAA,EAAE,GAAA,EAAI,OAAM,GAAA,EAAI,MAAA,EAAO,GAAA,EAAI,EAAA,EAAG,GAAA,EAAI,CAAA;AAAA,oBAC9C,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,IAAA,EAAK,CAAA,EAAE,GAAA,EAAI,KAAA,EAAM,GAAA,EAAI,MAAA,EAAO,GAAA,EAAI,EAAA,EAAG,GAAA,EAAI,CAAA;AAAA,oBAC/C,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,GAAA,EAAI,CAAA,EAAE,IAAA,EAAK,KAAA,EAAM,GAAA,EAAI,MAAA,EAAO,GAAA,EAAI,EAAA,EAAG,GAAA,EAAI,CAAA;AAAA,oBAC/C,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,IAAA,EAAK,CAAA,EAAE,IAAA,EAAK,KAAA,EAAM,GAAA,EAAI,MAAA,EAAO,GAAA,EAAI,EAAA,EAAG,GAAA,EAAI;AAAA,GAAA,EAClD,CAAA;AAEJ;AAEO,SAAS,YAAA,GAA0B;AACxC,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAK,GAAG,IAAA,EACP,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,YAAO,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,IAAA,EAAK,GAAE,GAAA,EAAI,CAAA;AAAA,oBAC7B,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,iBAAA,EAAkB;AAAA,GAAA,EAC5B,CAAA;AAEJ;AAEO,SAAS,aAAA,GAA2B;AACzC,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAK,GAAG,IAAA,EACP,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,GAAA,EAAI,CAAA,EAAE,GAAA,EAAI,OAAM,GAAA,EAAI,MAAA,EAAO,IAAA,EAAK,EAAA,EAAG,GAAA,EAAI,CAAA;AAAA,oBAC/C,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,yBAAA,EAA0B;AAAA,GAAA,EACpC,CAAA;AAEJ;AAEO,SAAS,cAAA,GAA4B;AAC1C,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAK,GAAG,IAAA,EACP,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,GAAA,EAAI,CAAA,EAAE,GAAA,EAAI,OAAM,GAAA,EAAI,MAAA,EAAO,IAAA,EAAK,EAAA,EAAG,GAAA,EAAI,CAAA;AAAA,oBAC/C,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,IAAA,EAAK,CAAA,EAAE,GAAA,EAAI,KAAA,EAAM,GAAA,EAAI,MAAA,EAAO,IAAA,EAAK,EAAA,EAAG,GAAA,EAAI;AAAA,GAAA,EAClD,CAAA;AAEJ;AAGO,SAAS,SAAA,GAAuB;AACrC,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAK,GAAG,IAAA,EACP,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,GAAA,EAAI,CAAA,EAAE,GAAA,EAAI,OAAM,GAAA,EAAI,MAAA,EAAO,GAAA,EAAI,EAAA,EAAG,GAAA,EAAI,CAAA;AAAA,oBAC9C,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,IAAA,EAAK,CAAA,EAAE,GAAA,EAAI,KAAA,EAAM,GAAA,EAAI,MAAA,EAAO,GAAA,EAAI,EAAA,EAAG,GAAA,EAAI,CAAA;AAAA,oBAC/C,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,GAAA,EAAI,CAAA,EAAE,IAAA,EAAK,KAAA,EAAM,GAAA,EAAI,MAAA,EAAO,GAAA,EAAI,EAAA,EAAG,GAAA,EAAI,CAAA;AAAA,oBAC/C,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,IAAA,EAAK,CAAA,EAAE,IAAA,EAAK,KAAA,EAAM,GAAA,EAAI,MAAA,EAAO,GAAA,EAAI,EAAA,EAAG,GAAA,EAAI;AAAA,GAAA,EAClD,CAAA;AAEJ;AAEO,SAAS,WAAA,GAAyB;AACvC,EAAA,uBACE,GAAA,CAAC,SAAK,GAAG,IAAA,EACP,8BAAC,MAAA,EAAA,EAAK,CAAA,EAAE,2BAA0B,CAAA,EACpC,CAAA;AAEJ;AAEO,SAAS,QAAA,GAAsB;AACpC,EAAA,uBACE,GAAA,CAAC,SAAK,GAAG,IAAA,EACP,8BAAC,MAAA,EAAA,EAAK,CAAA,EAAE,qDAAoD,CAAA,EAC9D,CAAA;AAEJ;AAEO,SAAS,SAAA,GAAuB;AACrC,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAK,GAAG,IAAA,EACP,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,GAAE,SAAA,EAAU,CAAA;AAAA,oBAClB,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,yBAAA,EAA0B;AAAA,GAAA,EACpC,CAAA;AAEJ;AAEO,SAAS,UAAA,GAAwB;AACtC,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAK,GAAG,IAAA,EACP,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,GAAE,wBAAA,EAAyB,CAAA;AAAA,oBACjC,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,4BAAA,EAA6B;AAAA,GAAA,EACvC,CAAA;AAEJ","file":"chunk-QYBWIJXZ.js","sourcesContent":["import type { ReactNode } from 'react';\n\nconst base = {\n width: 16,\n height: 16,\n viewBox: '0 0 24 24',\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: 2,\n strokeLinecap: 'round' as const,\n strokeLinejoin: 'round' as const\n};\n\nexport function TextIcon(): ReactNode {\n return (\n <svg {...base}>\n <path d=\"M4 6h16M4 12h16M4 18h10\" />\n </svg>\n );\n}\n\nexport function ImageIcon(): ReactNode {\n return (\n <svg {...base}>\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"16\" rx=\"2\" />\n <circle cx=\"8.5\" cy=\"9.5\" r=\"1.5\" />\n <path d=\"m21 16-5-5L5 20\" />\n </svg>\n );\n}\n\nexport function ButtonIcon(): ReactNode {\n return (\n <svg {...base}>\n <rect x=\"3\" y=\"8\" width=\"18\" height=\"8\" rx=\"4\" />\n </svg>\n );\n}\n\nexport function DividerIcon(): ReactNode {\n return (\n <svg {...base}>\n <path d=\"M3 12h18\" />\n </svg>\n );\n}\n\nexport function PageBreakIcon(): ReactNode {\n return (\n <svg {...base}>\n <path d=\"M6 4h8l4 4v4M6 4v6M3 14h18\" strokeDasharray=\"0 0\" />\n <path d=\"M3 14h18\" strokeDasharray=\"3 3\" />\n <path d=\"M6 18v2M18 18v2\" />\n </svg>\n );\n}\n\nexport function TableIcon(): ReactNode {\n return (\n <svg {...base}>\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"16\" rx=\"1\" />\n <path d=\"M3 10h18M3 15h18M9 4v16M15 4v16\" />\n </svg>\n );\n}\n\nexport function ImageGridIcon(): ReactNode {\n return (\n <svg {...base}>\n <rect x=\"3\" y=\"3\" width=\"8\" height=\"8\" rx=\"1\" />\n <rect x=\"13\" y=\"3\" width=\"8\" height=\"8\" rx=\"1\" />\n <rect x=\"3\" y=\"13\" width=\"8\" height=\"8\" rx=\"1\" />\n <rect x=\"13\" y=\"13\" width=\"8\" height=\"8\" rx=\"1\" />\n </svg>\n );\n}\n\nexport function IconTextIcon(): ReactNode {\n return (\n <svg {...base}>\n <circle cx=\"6\" cy=\"12\" r=\"3\" />\n <path d=\"M12 9h9M12 14h6\" />\n </svg>\n );\n}\n\nexport function ImageTextIcon(): ReactNode {\n return (\n <svg {...base}>\n <rect x=\"3\" y=\"6\" width=\"7\" height=\"12\" rx=\"1\" />\n <path d=\"M13 8h8M13 12h8M13 16h5\" />\n </svg>\n );\n}\n\nexport function TwoColumnsIcon(): ReactNode {\n return (\n <svg {...base}>\n <rect x=\"3\" y=\"4\" width=\"8\" height=\"16\" rx=\"1\" />\n <rect x=\"13\" y=\"4\" width=\"8\" height=\"16\" rx=\"1\" />\n </svg>\n );\n}\n\n/** Generic fallback for blocks that don't declare an icon. */\nexport function BlockIcon(): ReactNode {\n return (\n <svg {...base}>\n <rect x=\"4\" y=\"4\" width=\"7\" height=\"7\" rx=\"1\" />\n <rect x=\"13\" y=\"4\" width=\"7\" height=\"7\" rx=\"1\" />\n <rect x=\"4\" y=\"13\" width=\"7\" height=\"7\" rx=\"1\" />\n <rect x=\"13\" y=\"13\" width=\"7\" height=\"7\" rx=\"1\" />\n </svg>\n );\n}\n\nexport function HeadingIcon(): ReactNode {\n return (\n <svg {...base}>\n <path d=\"M6 4v16M18 4v16M6 12h12\" />\n </svg>\n );\n}\n\nexport function ListIcon(): ReactNode {\n return (\n <svg {...base}>\n <path d=\"M8 6h13M8 12h13M8 18h13M3 6h.01M3 12h.01M3 18h.01\" />\n </svg>\n );\n}\n\nexport function QuoteIcon(): ReactNode {\n return (\n <svg {...base}>\n <path d=\"M4 5v14\" />\n <path d=\"M10 8h9M10 12h9M10 16h6\" />\n </svg>\n );\n}\n\nexport function SpacerIcon(): ReactNode {\n return (\n <svg {...base}>\n <path d=\"M4 5h16M4 19h16M12 9v6\" />\n <path d=\"m9 12 3-3 3 3M9 16l3 3 3-3\" />\n </svg>\n );\n}\n"]}
@@ -0,0 +1,68 @@
1
+ 'use strict';
2
+
3
+ var chunkNDHTMYPA_cjs = require('./chunk-NDHTMYPA.cjs');
4
+ var react = require('react');
5
+ var core = require('@puckeditor/core');
6
+ var styled = require('styled-components');
7
+ var jsxRuntime = require('react/jsx-runtime');
8
+
9
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
10
+
11
+ var styled__default = /*#__PURE__*/_interopDefault(styled);
12
+
13
+ var A4Box = styled__default.default.div`
14
+ aspect-ratio: 210 / 297;
15
+ width: 100%;
16
+ overflow: hidden;
17
+ container-type: inline-size;
18
+ `;
19
+ function CoverEditable({
20
+ templateId,
21
+ fields,
22
+ accent,
23
+ theme,
24
+ textColor,
25
+ bgColor,
26
+ selected,
27
+ onFieldsChange,
28
+ onImagePick
29
+ }) {
30
+ const Template = chunkNDHTMYPA_cjs.COVER_TEMPLATES[templateId] ?? chunkNDHTMYPA_cjs.COVER_TEMPLATES["model-1"];
31
+ const resolved = chunkNDHTMYPA_cjs.resolveCoverColors(templateId, { accent, textColor, bgColor }, theme);
32
+ const boxRef = react.useRef(null);
33
+ react.useEffect(() => {
34
+ const el = boxRef.current;
35
+ if (!el || !selected) return void 0;
36
+ try {
37
+ return core.registerOverlayPortal(el, { disableDrag: true });
38
+ } catch {
39
+ return void 0;
40
+ }
41
+ }, [selected]);
42
+ const contextValue = react.useMemo(
43
+ () => ({
44
+ editable: true,
45
+ onFieldChange: (name, value) => onFieldsChange({ ...fields, [name]: value }),
46
+ onImagePick
47
+ }),
48
+ [fields, onFieldsChange, onImagePick]
49
+ );
50
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkNDHTMYPA_cjs.CoverEditContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxRuntime.jsx(A4Box, { ref: boxRef, children: /* @__PURE__ */ jsxRuntime.jsx(Template, { fields, theme, ...resolved }) }) });
51
+ }
52
+ function CoverTemplateStatic({
53
+ templateId,
54
+ fields,
55
+ accent,
56
+ theme,
57
+ textColor,
58
+ bgColor
59
+ }) {
60
+ const Template = chunkNDHTMYPA_cjs.COVER_TEMPLATES[templateId] ?? chunkNDHTMYPA_cjs.COVER_TEMPLATES["model-1"];
61
+ const resolved = chunkNDHTMYPA_cjs.resolveCoverColors(templateId, { accent, textColor, bgColor }, theme);
62
+ return /* @__PURE__ */ jsxRuntime.jsx(A4Box, { children: /* @__PURE__ */ jsxRuntime.jsx(Template, { fields, theme, ...resolved }) });
63
+ }
64
+
65
+ exports.CoverEditable = CoverEditable;
66
+ exports.CoverTemplateStatic = CoverTemplateStatic;
67
+ //# sourceMappingURL=chunk-U56KVTK5.cjs.map
68
+ //# sourceMappingURL=chunk-U56KVTK5.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/render/chrome/covers/CoverEditable.tsx","../src/render/chrome/covers/CoverTemplateStatic.tsx"],"names":["styled","COVER_TEMPLATES","resolveCoverColors","useRef","useEffect","registerOverlayPortal","useMemo","CoverEditContext","jsx"],"mappings":";;;;;;;;;;;;AASO,IAAM,QAAQA,uBAAA,CAAO,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AAmBrB,SAAS,aAAA,CAAc;AAAA,EAC5B,UAAA;AAAA,EACA,MAAA;AAAA,EACA,MAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,cAAA;AAAA,EACA;AACF,CAAA,EAAuB;AACrB,EAAA,MAAM,QAAA,GAAWC,iCAAA,CAAgB,UAAU,CAAA,IAAKA,kCAAgB,SAAS,CAAA;AACzE,EAAA,MAAM,QAAA,GAAWC,qCAAmB,UAAA,EAAY,EAAE,QAAQ,SAAA,EAAW,OAAA,IAAW,KAAK,CAAA;AACrF,EAAA,MAAM,MAAA,GAASC,aAAuB,IAAI,CAAA;AAO1C,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,MAAM,KAAK,MAAA,CAAO,OAAA;AAClB,IAAA,IAAI,CAAC,EAAA,IAAM,CAAC,QAAA,EAAU,OAAO,MAAA;AAC7B,IAAA,IAAI;AACF,MAAA,OAAOC,0BAAA,CAAsB,EAAA,EAAI,EAAE,WAAA,EAAa,MAAM,CAAA;AAAA,IACxD,CAAA,CAAA,MAAQ;AACN,MAAA,OAAO,MAAA;AAAA,IACT;AAAA,EACF,CAAA,EAAG,CAAC,QAAQ,CAAC,CAAA;AAEb,EAAA,MAAM,YAAA,GAAeC,aAAA;AAAA,IACnB,OAAO;AAAA,MACL,QAAA,EAAU,IAAA;AAAA,MACV,aAAA,EAAe,CAAC,IAAA,EAAyB,KAAA,KAAkB,cAAA,CAAe,EAAE,GAAG,MAAA,EAAQ,CAAC,IAAI,GAAG,KAAA,EAAO,CAAA;AAAA,MACtG;AAAA,KACF,CAAA;AAAA,IACA,CAAC,MAAA,EAAQ,cAAA,EAAgB,WAAW;AAAA,GACtC;AACA,EAAA,sCACGC,kCAAA,CAAiB,QAAA,EAAjB,EAA0B,KAAA,EAAO,cAChC,QAAA,kBAAAC,cAAA,CAAC,KAAA,EAAA,EAAM,GAAA,EAAK,MAAA,EACV,yCAAC,QAAA,EAAA,EAAS,MAAA,EAAgB,OAAe,GAAG,QAAA,EAAU,GACxD,CAAA,EACF,CAAA;AAEJ;AC5DO,SAAS,mBAAA,CAAoB;AAAA,EAClC,UAAA;AAAA,EACA,MAAA;AAAA,EACA,MAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA,EAA6B;AAC3B,EAAA,MAAM,QAAA,GAAWP,iCAAA,CAAgB,UAAU,CAAA,IAAKA,kCAAgB,SAAS,CAAA;AACzE,EAAA,MAAM,QAAA,GAAWC,qCAAmB,UAAA,EAAY,EAAE,QAAQ,SAAA,EAAW,OAAA,IAAW,KAAK,CAAA;AACrF,EAAA,uBACEM,cAAAA,CAAC,KAAA,EAAA,EACC,QAAA,kBAAAA,cAAAA,CAAC,YAAS,MAAA,EAAgB,KAAA,EAAe,GAAG,QAAA,EAAU,CAAA,EACxD,CAAA;AAEJ","file":"chunk-U56KVTK5.cjs","sourcesContent":["import { useEffect, useMemo, useRef } from 'react';\nimport { registerOverlayPortal } from '@puckeditor/core';\nimport styled from 'styled-components';\nimport type { CoverFields, Theme } from '../../../schema/theme';\nimport { CoverEditContext } from './primitives';\nimport { COVER_TEMPLATES, resolveCoverColors } from './index';\n\n// container-type habilita unidades cqw nos templates: o cover fica proporcional\n// à largura do container (preview A4, tela de edição ~420px, miniatura) — sem px fixo.\nexport const A4Box = styled.div`\n aspect-ratio: 210 / 297;\n width: 100%;\n overflow: hidden;\n container-type: inline-size;\n`;\n\nexport type CoverEditableProps = {\n templateId: string;\n fields: CoverFields;\n accent?: string;\n theme?: Theme;\n textColor?: string;\n bgColor?: string;\n selected?: boolean;\n onFieldsChange: (next: CoverFields) => void;\n onImagePick: () => void;\n};\n\nexport function CoverEditable({\n templateId,\n fields,\n accent,\n theme,\n textColor,\n bgColor,\n selected,\n onFieldsChange,\n onImagePick\n}: CoverEditableProps) {\n const Template = COVER_TEMPLATES[templateId] ?? COVER_TEMPLATES['model-1'];\n const resolved = resolveCoverColors(templateId, { accent, textColor, bgColor }, theme);\n const boxRef = useRef<HTMLDivElement>(null);\n\n // Campos sempre editáveis; o overlay portal só é registrado QUANDO o bloco está\n // selecionado (deps [selected]). Fluxo: bloco não-selecionado → sem portal → 1º\n // clique seleciona o bloco; selecionado → portal ativo (disableDrag) → edita inline\n // SEM soltar a seleção. A afinação visual (borda serrilhada) é só no hover/focus de\n // cada campo (covers.styles), então nada \"pisca\" ao selecionar.\n useEffect(() => {\n const el = boxRef.current;\n if (!el || !selected) return undefined;\n try {\n return registerOverlayPortal(el, { disableDrag: true });\n } catch {\n return undefined;\n }\n }, [selected]);\n\n const contextValue = useMemo(\n () => ({\n editable: true,\n onFieldChange: (name: keyof CoverFields, value: string) => onFieldsChange({ ...fields, [name]: value }),\n onImagePick\n }),\n [fields, onFieldsChange, onImagePick]\n );\n return (\n <CoverEditContext.Provider value={contextValue}>\n <A4Box ref={boxRef}>\n <Template fields={fields} theme={theme} {...resolved} />\n </A4Box>\n </CoverEditContext.Provider>\n );\n}\n","import type { CoverFields, Theme } from '../../../schema/theme';\nimport { COVER_TEMPLATES, resolveCoverColors } from './index';\nimport { A4Box } from './CoverEditable';\n\nexport type CoverTemplateStaticProps = {\n templateId: string;\n fields: CoverFields;\n accent?: string;\n theme?: Theme;\n textColor?: string;\n bgColor?: string;\n};\n\nexport function CoverTemplateStatic({\n templateId,\n fields,\n accent,\n theme,\n textColor,\n bgColor\n}: CoverTemplateStaticProps) {\n const Template = COVER_TEMPLATES[templateId] ?? COVER_TEMPLATES['model-1'];\n const resolved = resolveCoverColors(templateId, { accent, textColor, bgColor }, theme);\n return (\n <A4Box>\n <Template fields={fields} theme={theme} {...resolved} />\n </A4Box>\n );\n}\n"]}