@storkspear/post-editor-react 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 (192) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +12 -0
  3. package/dist/ColorPicker.d.ts +11 -0
  4. package/dist/ColorPicker.d.ts.map +1 -0
  5. package/dist/ColorPicker.js +30 -0
  6. package/dist/ColorPicker.js.map +1 -0
  7. package/dist/DrawioModal.d.ts +9 -0
  8. package/dist/DrawioModal.d.ts.map +1 -0
  9. package/dist/DrawioModal.js +97 -0
  10. package/dist/DrawioModal.js.map +1 -0
  11. package/dist/FontMenu.d.ts +14 -0
  12. package/dist/FontMenu.d.ts.map +1 -0
  13. package/dist/FontMenu.js +14 -0
  14. package/dist/FontMenu.js.map +1 -0
  15. package/dist/Icon.d.ts +69 -0
  16. package/dist/Icon.d.ts.map +1 -0
  17. package/dist/Icon.js +47 -0
  18. package/dist/Icon.js.map +1 -0
  19. package/dist/InsertHandle.d.ts +14 -0
  20. package/dist/InsertHandle.d.ts.map +1 -0
  21. package/dist/InsertHandle.js +60 -0
  22. package/dist/InsertHandle.js.map +1 -0
  23. package/dist/PickMenu.d.ts +61 -0
  24. package/dist/PickMenu.d.ts.map +1 -0
  25. package/dist/PickMenu.js +57 -0
  26. package/dist/PickMenu.js.map +1 -0
  27. package/dist/Popover.d.ts +20 -0
  28. package/dist/Popover.d.ts.map +1 -0
  29. package/dist/Popover.js +22 -0
  30. package/dist/Popover.js.map +1 -0
  31. package/dist/PostTitle.d.ts +33 -0
  32. package/dist/PostTitle.d.ts.map +1 -0
  33. package/dist/PostTitle.js +171 -0
  34. package/dist/PostTitle.js.map +1 -0
  35. package/dist/SelectionBubble.d.ts +6 -0
  36. package/dist/SelectionBubble.d.ts.map +1 -0
  37. package/dist/SelectionBubble.js +71 -0
  38. package/dist/SelectionBubble.js.map +1 -0
  39. package/dist/TableTools.d.ts +10 -0
  40. package/dist/TableTools.d.ts.map +1 -0
  41. package/dist/TableTools.js +200 -0
  42. package/dist/TableTools.js.map +1 -0
  43. package/dist/Toolbar.d.ts +17 -0
  44. package/dist/Toolbar.d.ts.map +1 -0
  45. package/dist/Toolbar.js +333 -0
  46. package/dist/Toolbar.js.map +1 -0
  47. package/dist/UrlPrompt.d.ts +24 -0
  48. package/dist/UrlPrompt.d.ts.map +1 -0
  49. package/dist/UrlPrompt.js +53 -0
  50. package/dist/UrlPrompt.js.map +1 -0
  51. package/dist/VariantMenu.d.ts +47 -0
  52. package/dist/VariantMenu.d.ts.map +1 -0
  53. package/dist/VariantMenu.js +21 -0
  54. package/dist/VariantMenu.js.map +1 -0
  55. package/dist/WidthToggle.d.ts +19 -0
  56. package/dist/WidthToggle.d.ts.map +1 -0
  57. package/dist/WidthToggle.js +17 -0
  58. package/dist/WidthToggle.js.map +1 -0
  59. package/dist/bubbleShows.d.ts +10 -0
  60. package/dist/bubbleShows.d.ts.map +1 -0
  61. package/dist/bubbleShows.js +29 -0
  62. package/dist/bubbleShows.js.map +1 -0
  63. package/dist/content-baked.d.ts +22 -0
  64. package/dist/content-baked.d.ts.map +1 -0
  65. package/dist/content-baked.js +21 -0
  66. package/dist/content-baked.js.map +1 -0
  67. package/dist/content.d.ts +29 -0
  68. package/dist/content.d.ts.map +1 -0
  69. package/dist/content.js +35 -0
  70. package/dist/content.js.map +1 -0
  71. package/dist/extensions/DiagramView.d.ts +26 -0
  72. package/dist/extensions/DiagramView.d.ts.map +1 -0
  73. package/dist/extensions/DiagramView.js +146 -0
  74. package/dist/extensions/DiagramView.js.map +1 -0
  75. package/dist/extensions/FigureView.d.ts +3 -0
  76. package/dist/extensions/FigureView.d.ts.map +1 -0
  77. package/dist/extensions/FigureView.js +108 -0
  78. package/dist/extensions/FigureView.js.map +1 -0
  79. package/dist/index.d.ts +100 -0
  80. package/dist/index.d.ts.map +1 -0
  81. package/dist/index.js +166 -0
  82. package/dist/index.js.map +1 -0
  83. package/dist/objects/ObjectFloat.d.ts +11 -0
  84. package/dist/objects/ObjectFloat.d.ts.map +1 -0
  85. package/dist/objects/ObjectFloat.js +42 -0
  86. package/dist/objects/ObjectFloat.js.map +1 -0
  87. package/dist/objects/ObjectLayer.d.ts +10 -0
  88. package/dist/objects/ObjectLayer.d.ts.map +1 -0
  89. package/dist/objects/ObjectLayer.js +20 -0
  90. package/dist/objects/ObjectLayer.js.map +1 -0
  91. package/dist/objects/blockSize.d.ts +30 -0
  92. package/dist/objects/blockSize.d.ts.map +1 -0
  93. package/dist/objects/blockSize.js +56 -0
  94. package/dist/objects/blockSize.js.map +1 -0
  95. package/dist/objects/code.d.ts +3 -0
  96. package/dist/objects/code.d.ts.map +1 -0
  97. package/dist/objects/code.js +55 -0
  98. package/dist/objects/code.js.map +1 -0
  99. package/dist/objects/diagram.d.ts +21 -0
  100. package/dist/objects/diagram.d.ts.map +1 -0
  101. package/dist/objects/diagram.js +109 -0
  102. package/dist/objects/diagram.js.map +1 -0
  103. package/dist/objects/diagramGlyphs.d.ts +12 -0
  104. package/dist/objects/diagramGlyphs.d.ts.map +1 -0
  105. package/dist/objects/diagramGlyphs.js +49 -0
  106. package/dist/objects/diagramGlyphs.js.map +1 -0
  107. package/dist/objects/divider.d.ts +22 -0
  108. package/dist/objects/divider.d.ts.map +1 -0
  109. package/dist/objects/divider.js +60 -0
  110. package/dist/objects/divider.js.map +1 -0
  111. package/dist/objects/figure.d.ts +3 -0
  112. package/dist/objects/figure.d.ts.map +1 -0
  113. package/dist/objects/figure.js +62 -0
  114. package/dist/objects/figure.js.map +1 -0
  115. package/dist/objects/imageRow.d.ts +3 -0
  116. package/dist/objects/imageRow.d.ts.map +1 -0
  117. package/dist/objects/imageRow.js +29 -0
  118. package/dist/objects/imageRow.js.map +1 -0
  119. package/dist/objects/quote.d.ts +6 -0
  120. package/dist/objects/quote.d.ts.map +1 -0
  121. package/dist/objects/quote.js +13 -0
  122. package/dist/objects/quote.js.map +1 -0
  123. package/dist/objects/quoteGlyphs.d.ts +6 -0
  124. package/dist/objects/quoteGlyphs.d.ts.map +1 -0
  125. package/dist/objects/quoteGlyphs.js +28 -0
  126. package/dist/objects/quoteGlyphs.js.map +1 -0
  127. package/dist/objects/quoteRow.d.ts +3 -0
  128. package/dist/objects/quoteRow.d.ts.map +1 -0
  129. package/dist/objects/quoteRow.js +61 -0
  130. package/dist/objects/quoteRow.js.map +1 -0
  131. package/dist/objects/registry.d.ts +60 -0
  132. package/dist/objects/registry.d.ts.map +1 -0
  133. package/dist/objects/registry.js +45 -0
  134. package/dist/objects/registry.js.map +1 -0
  135. package/dist/objects/table.d.ts +11 -0
  136. package/dist/objects/table.d.ts.map +1 -0
  137. package/dist/objects/table.js +136 -0
  138. package/dist/objects/table.js.map +1 -0
  139. package/dist/objects/useDomRect.d.ts +14 -0
  140. package/dist/objects/useDomRect.d.ts.map +1 -0
  141. package/dist/objects/useDomRect.js +32 -0
  142. package/dist/objects/useDomRect.js.map +1 -0
  143. package/dist/objects/useEngaged.d.ts +14 -0
  144. package/dist/objects/useEngaged.d.ts.map +1 -0
  145. package/dist/objects/useEngaged.js +41 -0
  146. package/dist/objects/useEngaged.js.map +1 -0
  147. package/dist/pickItems.d.ts +36 -0
  148. package/dist/pickItems.d.ts.map +1 -0
  149. package/dist/pickItems.js +40 -0
  150. package/dist/pickItems.js.map +1 -0
  151. package/dist/recentColors.d.ts +7 -0
  152. package/dist/recentColors.d.ts.map +1 -0
  153. package/dist/recentColors.js +30 -0
  154. package/dist/recentColors.js.map +1 -0
  155. package/dist/seeds/drawio/aws.d.ts +15 -0
  156. package/dist/seeds/drawio/aws.d.ts.map +1 -0
  157. package/dist/seeds/drawio/aws.js +15 -0
  158. package/dist/seeds/drawio/aws.js.map +1 -0
  159. package/dist/seeds/drawio/azure.d.ts +14 -0
  160. package/dist/seeds/drawio/azure.d.ts.map +1 -0
  161. package/dist/seeds/drawio/azure.js +14 -0
  162. package/dist/seeds/drawio/azure.js.map +1 -0
  163. package/dist/seeds/drawio/ec2docker.d.ts +15 -0
  164. package/dist/seeds/drawio/ec2docker.d.ts.map +1 -0
  165. package/dist/seeds/drawio/ec2docker.js +15 -0
  166. package/dist/seeds/drawio/ec2docker.js.map +1 -0
  167. package/dist/seeds/drawio/userflow.d.ts +21 -0
  168. package/dist/seeds/drawio/userflow.d.ts.map +1 -0
  169. package/dist/seeds/drawio/userflow.js +21 -0
  170. package/dist/seeds/drawio/userflow.js.map +1 -0
  171. package/dist/seeds/mermaid.d.ts +19 -0
  172. package/dist/seeds/mermaid.d.ts.map +1 -0
  173. package/dist/seeds/mermaid.js +82 -0
  174. package/dist/seeds/mermaid.js.map +1 -0
  175. package/dist/useAnchoredPos.d.ts +22 -0
  176. package/dist/useAnchoredPos.d.ts.map +1 -0
  177. package/dist/useAnchoredPos.js +57 -0
  178. package/dist/useAnchoredPos.js.map +1 -0
  179. package/dist/useDismiss.d.ts +17 -0
  180. package/dist/useDismiss.d.ts.map +1 -0
  181. package/dist/useDismiss.js +36 -0
  182. package/dist/useDismiss.js.map +1 -0
  183. package/dist/useLastVariant.d.ts +9 -0
  184. package/dist/useLastVariant.d.ts.map +1 -0
  185. package/dist/useLastVariant.js +33 -0
  186. package/dist/useLastVariant.js.map +1 -0
  187. package/dist/useUploadCount.d.ts +3 -0
  188. package/dist/useUploadCount.d.ts.map +1 -0
  189. package/dist/useUploadCount.js +9 -0
  190. package/dist/useUploadCount.js.map +1 -0
  191. package/package.json +57 -0
  192. package/src/editor-ui.css +737 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableTools.js","sourceRoot":"","sources":["../src/TableTools.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAExD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,wDAAwD,CAAA;AAczF,MAAM,KAAK,GAAa,EAAE,CAAA;AAE1B;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,EAAE,MAAM,EAAsB;IACvD,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAa,IAAI,CAAC,CAAA;IAChD,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,QAAQ,CAC5B,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAClD,CAAA;IACD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEvC,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE;QAC/B,IAAI,CAAC,MAAM,EAAE,UAAU;YAAE,OAAO,MAAM,CAAC,IAAI,CAAC,CAAA;QAC5C,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,CAAA;QAC9B,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,SAAS,CAAA;QAChC,IAAI,GAAG,GAAuB,IAAI,CAAA;QAClC,IAAI,CAAC;YAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAmB,CAAA;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAA;QAAC,CAAC;QACnF,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAuB,CAAA;QAChF,MAAM,KAAK,GAAG,EAAE,EAAE,OAAO,CAAC,OAAO,CAA4B,CAAA;QAC7D,IAAI,CAAC,KAAK,EAAE,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAAC,OAAM;QAAC,CAAC;QAEpD,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAA;QAC1B,IAAI,CAAC,EAAE,CAAC,MAAM;YAAE,OAAO,MAAM,CAAC,IAAI,CAAC,CAAA;QACnC,MAAM,KAAK,GAAG,KAAK,CAAC,qBAAqB,EAAE,CAAA;QAC3C,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;QAE/B,MAAM,IAAI,GAAW,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACpC,MAAM,CAAC,GAAG,CAAC,CAAC,qBAAqB,EAAE,CAAA;YACnC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;QAC1E,CAAC,CAAC,CAAA;QACF,MAAM,IAAI,GAAW,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAClC,MAAM,CAAC,GAAG,GAAG,CAAC,qBAAqB,EAAE,CAAA;YACrC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAA;QAC3E,CAAC,CAAC,CAAA;QACF,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC,CAAA;QACnE,MAAM,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC,CAAA;QAEhE,MAAM,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC;YAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAA;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,CAAC,CAAC,CAAA;QAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAChG,MAAM,UAAU,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC,CAAA;QAEtE,MAAM,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAC7B,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACvB,IAAI,CAAC;gBAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAA;YAAC,CAAC;YAAC,MAAM,CAAC;gBAAC,OAAO,CAAC,CAAC,CAAA;YAAC,CAAC;QAC5D,CAAC,CAAC,CACH,CAAA;QAED,gEAAgE;QAChE,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,CAAuB,CAAA;QACjE,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,EAAE,GAAI,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,KAA4B,IAAI,EAAE,CAAA;YAC5E,MAAM,CAAC,GAAG,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YAC1C,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;YACtC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;QAC3C,CAAC;QAED,MAAM,CAAC;YACL,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE;YACrF,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU;SAC5D,CAAC,CAAA;QAEF,MAAM,QAAQ,GAAG,KAAK,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAA;QACxD,MAAM,KAAK,GAAG,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAA;QACpD,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,CAAA;QAClD,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,qBAAqB,EAAE,CAAA;QACnE,MAAM,CAAC;YACL,KAAK,EAAE,QAAQ,CAAC,MAAM;YACtB,UAAU,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,KAAK;YAC5D,UAAU,EAAE,KAAK,IAAI,IAAI;gBACvB,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;oBACzE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;oBAC1E,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE;gBACjF,CAAC,CAAC,IAAI;SACT,CAAC,CAAA;IACJ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IAEZ,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,EAAE,CAAA;QACT,MAAM,CAAC,EAAE,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAA;QACrC,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;QACjC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;QAChD,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAC1C,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAA;YACtC,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;YAClC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;YACnD,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAC/C,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IAErB,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAA;IACrB,MAAM,CAAC,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAA;IACtC,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAA;IAEvB,MAAM,cAAc,GAAG,CAAC,CAAS,EAAE,EAAE;QACnC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QACnD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,gBAAgB,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,CAAA;IACtH,CAAC,CAAA;IACD,MAAM,cAAc,GAAG,CAAC,CAAS,EAAE,EAAE;QACnC,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAA;QAC3B,IAAI,GAAG,CAAC,MAAM;YAAE,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,gBAAgB,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,CAAA;IACpI,CAAC,CAAA;IAED,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,EAAE;QAC9B,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC3D,IAAI,MAAM,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;YAAE,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,gBAAgB,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,CAAA;IACrH,CAAC,CAAA;IACD,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,EAAE;QAC9B,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAA;QAC3B,IAAI,GAAG,CAAC,MAAM;YAAE,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,gBAAgB,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAA;IACtH,CAAC,CAAA;IACD,MAAM,SAAS,GAAG,GAAG,EAAE;QACrB,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QACxF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,gBAAgB,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAA;IACrG,CAAC,CAAA;IACD,mCAAmC;IACnC,MAAM,YAAY,GAAG,CAAC,CAAS,EAAE,EAAiB,EAAE,EAAE;QACpD,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QACxB,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,GAAG,CAAC;YAAE,OAAM;QAChC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACxC,IAAI,CAAC,IAAI;YAAE,OAAM;QACjB,MAAM,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAClF,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAClG,CAAC,CAAA;IAED;;;;;OAKG;IACH,MAAM,YAAY,GAAG,CAAC,EAAsB,EAAE,CAAS,EAAE,EAAE;QACzD,EAAE,CAAC,cAAc,EAAE,CAAC;QAAC,EAAE,CAAC,eAAe,EAAE,CAAA;QACzC,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAA;QACzB,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,OAAO,CAAA;QAC3C,MAAM,MAAM,GAAG,EAAE,CAAC,aAA4B,CAAA;QAC9C,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC,SAAS,CAAC,CAAA;QACtC,MAAM,IAAI,GAAG,CAAC,CAAe,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAA;QAChF,MAAM,EAAE,GAAG,GAAG,EAAE;YACd,IAAI,CAAC;gBAAC,MAAM,CAAC,qBAAqB,CAAC,EAAE,CAAC,SAAS,CAAC,CAAA;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,gBAAgB,CAAC,CAAC;YAC7E,MAAM,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,CAAA;YAC/C,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;YAC3C,MAAM,CAAC,mBAAmB,CAAC,eAAe,EAAE,EAAE,CAAC,CAAA;QACjD,CAAC,CAAA;QACD,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,CAAA;QAC5C,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;QACxC,MAAM,CAAC,gBAAgB,CAAC,eAAe,EAAE,EAAE,CAAC,CAAA;IAC9C,CAAC,CAAA;IAED,kDAAkD;IAClD,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,CAAA;QAC9B,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAA;QACnB,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YAChC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;gBACvE,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ;oBAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;YAC5F,CAAC;QACH,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QACjB,OAAO,CAAC,KAAK,CAAC,CAAA;IAChB,CAAC,CAAA;IAED,OAAO,CACL,eAAK,SAAS,EAAC,UAAU,oBAAgB,EAAE,aAEzC,iBAAQ,SAAS,EAAC,WAAW,EAAC,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,EAAE,EACzF,KAAK,EAAC,kCAAS,EAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,SAAS,GAAI,EAG/E,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACtB,iBAAsB,SAAS,EAAC,SAAS,EAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAC7G,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,IADlF,GAAG,GAAG,CAAC,CAC+E,CACpG,CAAC,EAED,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACtB,iBAAsB,SAAS,EAAC,SAAS,EAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAC7G,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,IADlF,GAAG,GAAG,CAAC,CAC+E,CACpG,CAAC,EAGD,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAC1B,iBAAuB,SAAS,EAAC,SAAS,EAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,EAAE,EACxF,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,EACrE,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,YAChC,KAAC,SAAS,KAAG,IAHF,IAAI,GAAG,CAAC,CAIZ,CACV,CAAC,EAED,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAC1B,iBAAuB,SAAS,EAAC,SAAS,EAAC,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,EACzF,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,EACtE,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,YAChC,KAAC,SAAS,KAAG,IAHF,IAAI,GAAG,CAAC,CAIZ,CACV,CAAC,EAGD,GAAG,CAAC,UAAU,IAAI,CACjB,iBAAQ,SAAS,EAAC,UAAU,EAAC,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,EAAE,EAC9G,KAAK,EAAC,qBAAM,EAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,YAC3F,KAAC,UAAU,KAAG,GACP,CACV,EAGA,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAC1B,cAAoB,SAAS,EAAC,YAAY,EACxC,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,EACnE,KAAK,EAAC,sHAA4B,EAClC,aAAa,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,EAC1C,aAAa,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,IAJlC,IAAI,GAAG,CAAC,CAI8B,CACjD,CAAC,EAKD,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU,IAAI,CACrD,eAAK,SAAS,EAAC,WAAW,EAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,aAC7D,iBAAQ,SAAS,EAAC,SAAS,EAAC,KAAK,EAAC,qBAAM,EAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,EAC7E,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,uBAAY,EAC9C,IAAI,IAAI,CACP,eAAK,SAAS,EAAC,SAAS,EAAC,IAAI,EAAC,MAAM,aAClC,kBAAQ,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC,aAAE,KAAC,IAAI,IAAC,IAAI,EAAC,SAAS,GAAG,4BAAc,EACxG,kBAAQ,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC,aAAE,KAAC,IAAI,IAAC,IAAI,EAAC,SAAS,GAAG,4BAAc,EACvG,kBAAQ,OAAO,EAAE,UAAU,aAAE,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,GAAG,kCAAe,EACjE,eAAM,SAAS,EAAC,aAAa,GAAG,EAChC,kBAAQ,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC,aAAE,KAAC,UAAU,KAAG,4BAAc,EAC9F,kBAAQ,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC,aAAE,KAAC,UAAU,KAAG,4BAAc,EACjG,kBAAQ,SAAS,EAAC,QAAQ,EAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC,aAAE,KAAC,UAAU,KAAG,4BAAc,IAC/G,CACP,IACG,CACP,IACG,CACP,CAAA;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,QAAQ,CAAC,GAAQ,EAAE,CAAO;IACjC,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC;QAC/E,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC;KACrC,CAAA;AACH,CAAC;AAED,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,CACtB,cAAK,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,KAAK,EAAC,aAAa,EAAC,OAAO,YACvH,eAAM,CAAC,EAAC,kBAAkB,GAAG,GACzB,CACP,CAAA;AACD,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,CACvB,cAAK,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,KAAK,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,YAC9I,eAAM,CAAC,EAAC,yFAAyF,GAAG,GAChG,CACP,CAAA"}
@@ -0,0 +1,17 @@
1
+ import { type Editor } from '@tiptap/react';
2
+ import type { ProseWidth } from '@storkspear/post-editor-core/proseWidth';
3
+ import type { TitleValue } from './PostTitle.js';
4
+ export declare function Toolbar({ editor, title, width, onWidth, stickyTop }: {
5
+ editor: Editor;
6
+ /** 제목 입력칸에 손이 가 있을 때 — 아랫줄이 제목 서식으로 바뀐다 */
7
+ title?: {
8
+ value: TitleValue;
9
+ onChange: (v: TitleValue) => void;
10
+ } | null;
11
+ /** 본문 폭 — 넣기 줄 오른쪽 끝의 고르개가 쓴다. `onWidth` 가 없으면 고르개를 안 그린다. */
12
+ width?: ProseWidth;
13
+ onWidth?: (v: ProseWidth) => void;
14
+ /** 띠가 붙을 자리 — 위에 이미 고정돼 있는 것의 높이 */
15
+ stickyTop?: number | string;
16
+ }): import("react").JSX.Element;
17
+ //# sourceMappingURL=Toolbar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Toolbar.d.ts","sourceRoot":"","sources":["../src/Toolbar.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAkB,KAAK,MAAM,EAAE,MAAM,eAAe,CAAA;AAS3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAA;AAOzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAyW7C,wBAAgB,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE;IACpE,MAAM,EAAE,MAAM,CAAA;IACd,2CAA2C;IAC3C,KAAK,CAAC,EAAE;QAAE,KAAK,EAAE,UAAU,CAAC;QAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAA;KAAE,GAAG,IAAI,CAAA;IACvE,8DAA8D;IAC9D,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAA;IACjC,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAC5B,+BA+SA"}
@@ -0,0 +1,333 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useLayoutEffect, useRef, useState } from 'react';
3
+ import { insertImageFiles, pickImageFiles } from '@storkspear/post-editor-core/image';
4
+ import { useEngaged } from './objects/useEngaged.js';
5
+ import { useEditorState } from '@tiptap/react';
6
+ import { Icon } from './Icon.js';
7
+ import { VariantMenu } from './VariantMenu.js';
8
+ import { OBJECTS, findActiveObject } from './objects/registry.js';
9
+ import { DividerExtras, dividerItems } from './objects/divider.js';
10
+ import { quoteItems, QUOTE_LABEL } from './objects/quote.js';
11
+ import { DIVIDER_LABEL } from './objects/divider.js';
12
+ import { WidthToggle } from './WidthToggle.js';
13
+ import { PRESET_LABEL, presetItems } from './objects/table.js';
14
+ import { diagramRows, loadDiagramSeed } from './objects/diagram.js';
15
+ import { useLastVariant } from './useLastVariant.js';
16
+ import { ColorPicker } from './ColorPicker.js';
17
+ import { useRecentColors } from './recentColors.js';
18
+ import { DIVIDER_KINDS, FONT_SIZE_DEFAULT, QUOTE_VARIANTS, TABLE_PRESETS, TITLE_SIZES } from '@storkspear/post-editor-core/vocab';
19
+ import { DIVIDER_TONES, DIVIDER_WEIGHTS } from '@storkspear/post-editor-core/vocab';
20
+ import { IconMenu, PickMenu, Picker } from './PickMenu.js';
21
+ import { UrlPrompt } from './UrlPrompt.js';
22
+ import { ALIGN_ITEMS, BLOCK_ITEMS, LANG_ITEMS, LH_ITEMS, SIZE_ITEMS, fontItems, } from './pickItems.js';
23
+ /** 미리보기는 진짜 목록을 그린다 — 아이콘으로 따로 그리면 실제 렌더와 어긋난다 */
24
+ const listPreview = (tag, marker) => {
25
+ const style = { listStyleType: marker, paddingLeft: '1.1em', fontSize: '0.62rem', lineHeight: 1.5 };
26
+ const items = (_jsxs(_Fragment, { children: [_jsx("li", { children: "\uAC00\uB098\uB2E4" }), _jsx("li", { children: "\uB77C\uB9C8\uBC14" })] }));
27
+ return tag === 'ol' ? _jsx("ol", { style: style, children: items }) : _jsx("ul", { style: style, children: items });
28
+ };
29
+ const BULLET_MARKERS = [
30
+ { value: 'disc', label: '채운 원', preview: listPreview('ul', 'disc') },
31
+ { value: 'circle', label: '빈 원', preview: listPreview('ul', 'circle') },
32
+ { value: 'square', label: '네모', preview: listPreview('ul', 'square') },
33
+ ];
34
+ /** 모양 덧줄에 쓰는 글리프 — 36px 칸에 「가나다」를 넣으면 줄이 접혀 못 읽는다 */
35
+ const MARKER_GLYPH = {
36
+ disc: '●', circle: '○', square: '■',
37
+ decimal: '1.', 'lower-alpha': 'a.', 'lower-roman': 'i.',
38
+ };
39
+ const ORDERED_MARKERS = [
40
+ { value: 'decimal', label: '숫자', preview: listPreview('ol', 'decimal') },
41
+ { value: 'lower-alpha', label: '알파벳', preview: listPreview('ol', 'lower-alpha') },
42
+ { value: 'lower-roman', label: '로마자', preview: listPreview('ol', 'lower-roman') },
43
+ ];
44
+ const LIST_KINDS = [
45
+ { value: 'bullet', icon: 'bullet', label: '글머리 기호 목록' },
46
+ { value: 'ordered', icon: 'ordered', label: '번호 목록' },
47
+ { value: 'none', icon: 'none', label: '목록 없음' },
48
+ ];
49
+ /** 목록 메뉴 — 아이콘 셋을 세로로. 네이버 블로그와 같은 모양. */
50
+ function ListMenu({ editor, anchorRef, kind, marker, onClose }) {
51
+ const c = () => editor.chain().focus();
52
+ const pick = (k) => {
53
+ const bullet = kind === 'bullet', ordered = kind === 'ordered';
54
+ if (k === 'bullet') {
55
+ if (!bullet)
56
+ c().toggleBulletList().run();
57
+ }
58
+ else if (k === 'ordered') {
59
+ if (!ordered)
60
+ c().toggleOrderedList().run();
61
+ }
62
+ else if (bullet)
63
+ c().toggleBulletList().run();
64
+ else if (ordered)
65
+ c().toggleOrderedList().run();
66
+ };
67
+ const markers = kind === 'ordered' ? ORDERED_MARKERS : kind === 'bullet' ? BULLET_MARKERS : [];
68
+ return (_jsx(IconMenu, { ariaLabel: "\uBAA9\uB85D", anchorRef: anchorRef, items: LIST_KINDS, value: kind, onPick: pick, onClose: onClose, footer: markers.length > 0 && (
69
+ /* 모양(● ○ ■ / 1. a. i.)은 우리 것이라 네이버엔 없다. 목록 안일 때만 아래에 덧붙인다. */
70
+ _jsx("div", { className: "tb-listmarkers", children: markers.map((m) => (_jsx("button", { type: "button", title: m.label, "aria-label": m.label, className: marker === m.value ? 'is-on' : '', onMouseDown: (e) => e.preventDefault(), onClick: () => { c().setListMarker(m.value).run(); onClose(); }, children: MARKER_GLYPH[m.value] }, m.value))) })) }));
71
+ }
72
+ const TITLE_SIZE_ITEMS = TITLE_SIZES.map((z) => ({ value: String(z), label: String(z) }));
73
+ /**
74
+ * 제목의 서식줄 — **서체·크기·정렬·색 넷뿐이다.**
75
+ *
76
+ * 굵게·밑줄·취소선·인라인 코드·글자 배경색은 일부러 없다. 제목은 한 덩어리로만 꾸미는 물건이고,
77
+ * 애초에 홑 입력칸이라 부분 서식이 들어갈 자리가 없다.
78
+ * 크기도 본문(11~36)이 아니라 제목용 넷(26·32·38·44)을 쓴다.
79
+ */
80
+ function TitleRow({ value, onChange }) {
81
+ const [alignMenu, setAlignMenu] = useState(false);
82
+ const alignAnchor = useRef(null);
83
+ const [pick, setPick] = useState(false);
84
+ const colorAnchor = useRef(null);
85
+ const { recent, remember } = useRecentColors();
86
+ // 제목은 양쪽 정렬을 주지 않는다 — 한 줄짜리라 뜻이 없다
87
+ const ALIGN3 = ALIGN_ITEMS.filter((a) => a.value !== 'justify');
88
+ return (_jsxs(_Fragment, { children: [_jsx("span", { className: "tb-hint", children: "\uC81C\uBAA9" }), _jsx("span", { className: "tb-div" }), _jsx(Picker, { title: "\uAE00\uAF34", className: "tb-font", width: 200, items: fontItems(), value: value.font ?? '', style: { fontFamily: value.font || 'var(--font-body)' }, onPick: (v) => onChange({ ...value, font: v || null }) }), _jsx(Picker, { title: "\uC81C\uBAA9 \uD06C\uAE30 (px)", className: "tb-size", width: 78, align: "center", items: TITLE_SIZE_ITEMS, value: String(value.size), onPick: (v) => onChange({ ...value, size: Number(v) }) }), _jsx("span", { className: "tb-div" }), _jsxs("div", { className: "tb-anchor", ref: alignAnchor, children: [_jsx("button", { type: "button", className: `tb-btn${alignMenu ? ' is-on' : ''}`, title: "\uC815\uB82C", "aria-label": "\uC815\uB82C", "aria-haspopup": "menu", "aria-expanded": alignMenu, onMouseDown: (e) => e.preventDefault(), onClick: () => setAlignMenu((v) => !v), children: _jsx(Icon, { name: (ALIGN3.find((a) => a.value === value.align) ?? ALIGN3[0]).icon }) }), alignMenu && (_jsx(IconMenu, { ariaLabel: "\uC815\uB82C", anchorRef: alignAnchor, items: ALIGN3, value: value.align, onPick: (v) => onChange({ ...value, align: v }), onClose: () => setAlignMenu(false) }))] }), _jsxs("div", { className: "tb-anchor", ref: colorAnchor, children: [_jsxs("button", { type: "button", className: "tb-btn tb-color", "aria-label": "\uAE00\uC790\uC0C9", title: "\uAE00\uC790\uC0C9", onMouseDown: (e) => e.preventDefault(), onClick: () => setPick((v) => !v), children: [_jsx("span", { className: "tb-color-swatch", style: { background: value.color || '#1a1a1a' } }), _jsx("b", { className: "tb-color-letter", children: "\uAC00" })] }), pick && (_jsx(ColorPicker, { label: "\uC81C\uBAA9 \uAE00\uC790\uC0C9", value: value.color ?? '', recent: recent, anchorRef: colorAnchor, onPick: (hex) => { remember(hex); onChange({ ...value, color: hex }); }, onClear: () => onChange({ ...value, color: null }), onClose: () => setPick(false) }))] })] }));
89
+ }
90
+ function Btn({ on, active, disabled, title, children }) {
91
+ return (_jsx("button", { type: "button", className: `tb-btn${active ? ' is-on' : ''}`, title: title, "aria-label": title, "aria-pressed": active, disabled: disabled, onMouseDown: (e) => e.preventDefault(), onClick: on, children: children }));
92
+ }
93
+ function Tile({ on, active, title, label, children }) {
94
+ return (_jsxs("button", { type: "button", className: `tb-tile${active ? ' is-on' : ''}`, title: title, "aria-label": title, onMouseDown: (e) => e.preventDefault(), onClick: on, children: [_jsx("span", { className: "tb-tile-ico", children: children }), _jsx("span", { className: "tb-tile-label", children: label })] }));
95
+ }
96
+ /**
97
+ * 본체와 ▾ 가 갈린 타일 (네이버 구조).
98
+ * 본체를 누르면 **바로 넣고**, ▾ 를 눌러야 모양 목록이 열린다.
99
+ * 본체만 누르는 사람이 다수라 그쪽을 한 번에 끝내 준다.
100
+ */
101
+ function SplitTile({ onMain, onCaret, active, open, title, caretTitle, label, children }) {
102
+ return (_jsxs("span", { className: `tb-split${active ? ' is-on' : ''}${open ? ' is-open' : ''}`, children: [_jsxs("button", { type: "button", className: "tb-tile tb-split-main", title: title, "aria-label": title, onMouseDown: (e) => e.preventDefault(), onClick: onMain, children: [_jsx("span", { className: "tb-tile-ico", children: children }), _jsx("span", { className: "tb-tile-label", children: label })] }), _jsx("button", { type: "button", className: "tb-split-caret", title: caretTitle, "aria-label": caretTitle, "aria-haspopup": "menu", "aria-expanded": !!open, onMouseDown: (e) => e.preventDefault(), onClick: onCaret, children: _jsx("i", { className: "tb-caret" }) })] }));
103
+ }
104
+ /** 평소의 아랫줄 — 글자 서식 */
105
+ function TextRow({ editor }) {
106
+ const [listMenu, setListMenu] = useState(false);
107
+ const listAnchor = useRef(null);
108
+ const [alignMenu, setAlignMenu] = useState(false);
109
+ const alignAnchor = useRef(null);
110
+ // 색 고르는 방식을 글자 버블과 **하나로** 맞춘다 — 같은 팔레트, 같은 최근 목록
111
+ const [pick, setPick] = useState(null);
112
+ const colorAnchor = useRef(null);
113
+ const hlAnchor = useRef(null);
114
+ const { recent, remember } = useRecentColors();
115
+ const s = useEditorState({
116
+ editor,
117
+ selector: ({ editor: e }) => ({
118
+ bold: e.isActive('bold'), italic: e.isActive('italic'), underline: e.isActive('underline'),
119
+ strike: e.isActive('strike'), code: e.isActive('code'), hl: e.isActive('highlight'),
120
+ h2: e.isActive('heading', { level: 2 }), h3: e.isActive('heading', { level: 3 }),
121
+ h4: e.isActive('heading', { level: 4 }),
122
+ bullet: e.isActive('bulletList'), ordered: e.isActive('orderedList'),
123
+ marker: (e.getAttributes('bulletList').marker ?? e.getAttributes('orderedList').marker ?? null),
124
+ alignC: e.isActive({ textAlign: 'center' }), alignR: e.isActive({ textAlign: 'right' }),
125
+ alignJ: e.isActive({ textAlign: 'justify' }),
126
+ // 줄 간격은 문단·제목이 나눠 가지므로 둘 다 본다 (지금 커서가 있는 쪽만 값이 있다)
127
+ lh: (e.getAttributes('paragraph').lineHeight ?? e.getAttributes('heading').lineHeight ?? null),
128
+ size: e.getAttributes('textStyle').fontSize ?? '',
129
+ font: e.getAttributes('textStyle').fontFamily ?? '',
130
+ color: e.getAttributes('textStyle').color ?? '',
131
+ hlColor: e.getAttributes('highlight').color ?? '',
132
+ }),
133
+ });
134
+ const c = () => editor.chain().focus();
135
+ const inList = s.bullet || s.ordered;
136
+ const block = s.h2 ? 'h2' : s.h3 ? 'h3' : s.h4 ? 'h4' : 'p';
137
+ // 안 정했으면 왼쪽이다 — 메뉴는 늘 넷 중 하나를 켜 둔다
138
+ const align = s.alignC ? 'center' : s.alignR ? 'right' : s.alignJ ? 'justify' : 'left';
139
+ return (_jsxs(_Fragment, { children: [_jsx(Picker, { title: "\uAE00\uAF34", className: "tb-font", width: 200, items: fontItems(), value: s.font, style: { fontFamily: s.font || 'var(--font-body)' }, onPick: (v) => (v ? c().setFontFamily(v).run() : c().unsetFontFamily().run()) }), _jsx(Picker, { title: "\uBB38\uB2E8 \uC2A4\uD0C0\uC77C", className: "tb-block", width: 132, items: BLOCK_ITEMS, value: block, onPick: (v) => (v === 'p'
140
+ ? c().setParagraph().run()
141
+ : c().setHeading({ level: Number(v.slice(1)) }).run()) }), _jsx(Picker, { title: "\uAE00\uC790 \uD06C\uAE30 (px)", className: "tb-size", width: 78, align: "center", items: SIZE_ITEMS, value: String(s.size ? parseInt(s.size, 10) : FONT_SIZE_DEFAULT), onPick: (v) => c().setFontSize(`${v}px`).run() }), _jsx("span", { className: "tb-div" }), _jsx(Btn, { title: "\uAD75\uAC8C", active: s.bold, on: () => c().toggleBold().run(), children: _jsx(Icon, { name: "bold" }) }), _jsx(Btn, { title: "\uAE30\uC6B8\uC784", active: s.italic, on: () => c().toggleItalic().run(), children: _jsx(Icon, { name: "italic" }) }), _jsx(Btn, { title: "\uBC11\uC904", active: s.underline, on: () => c().toggleUnderline().run(), children: _jsx(Icon, { name: "underline" }) }), _jsx(Btn, { title: "\uCDE8\uC18C\uC120", active: s.strike, on: () => c().toggleStrike().run(), children: _jsx(Icon, { name: "strike" }) }), _jsx(Btn, { title: "\uC778\uB77C\uC778 \uCF54\uB4DC", active: s.code, on: () => c().toggleCode().run(), children: _jsx(Icon, { name: "code" }) }), _jsx("span", { className: "tb-div" }), _jsxs("div", { className: "tb-anchor", ref: colorAnchor, children: [_jsxs("button", { type: "button", className: "tb-btn tb-color", title: "\uAE00\uC790\uC0C9", "aria-label": "\uAE00\uC790\uC0C9", onMouseDown: (e) => e.preventDefault(), onClick: () => setPick(pick === 'color' ? null : 'color'), children: [_jsx("span", { className: "tb-color-swatch", style: { background: s.color || '#1a1a1a' } }), _jsx("b", { className: "tb-color-letter", children: "\uAC00" })] }), pick === 'color' && (_jsx(ColorPicker, { label: "\uAE00\uC790\uC0C9", value: s.color, recent: recent, anchorRef: colorAnchor, onPick: (hex) => { remember(hex); c().setColor(hex).run(); }, onClear: () => c().unsetColor().run(), onClose: () => setPick(null) }))] }), _jsxs("div", { className: "tb-anchor", ref: hlAnchor, children: [_jsx("button", { type: "button", className: `tb-btn tb-color${s.hl ? ' is-on' : ''}`, title: "\uAE00\uC790 \uBC30\uACBD\uC0C9", "aria-label": "\uAE00\uC790 \uBC30\uACBD\uC0C9", onMouseDown: (e) => e.preventDefault(), onClick: () => setPick(pick === 'highlight' ? null : 'highlight'), children: _jsx("b", { className: "tb-color-letter tb-hl-letter", style: { background: s.hlColor || '#fff2a8' }, children: "\uAC00" }) }), pick === 'highlight' && (_jsx(ColorPicker, { label: "\uAE00\uC790 \uBC30\uACBD\uC0C9", value: s.hlColor, recent: recent, anchorRef: hlAnchor, onPick: (hex) => { remember(hex); c().setHighlight({ color: hex }).run(); }, onClear: () => c().unsetHighlight().run(), onClose: () => setPick(null) }))] }), _jsx("span", { className: "tb-div" }), _jsxs("div", { className: "tb-anchor", ref: alignAnchor, children: [_jsx("button", { type: "button", className: `tb-btn${alignMenu ? ' is-on' : ''}`, title: "\uC815\uB82C", "aria-label": "\uC815\uB82C", "aria-haspopup": "menu", "aria-expanded": alignMenu, onMouseDown: (e) => e.preventDefault(), onClick: () => setAlignMenu((v) => !v), children: _jsx(Icon, { name: ALIGN_ITEMS.find((a) => a.value === align).icon }) }), alignMenu && (_jsx(IconMenu, { ariaLabel: "\uC815\uB82C", anchorRef: alignAnchor, items: ALIGN_ITEMS, value: align, onPick: (v) => c().setTextAlign(v).run(), onClose: () => setAlignMenu(false) }))] }), _jsx(Picker, { title: "\uC904 \uAC04\uACA9", className: "tb-iconselect", width: 108, align: "center", items: LH_ITEMS, value: s.lh == null ? '' : String(s.lh), onPick: (v) => c().setLineHeight(v ? Number(v) : null).run(), children: _jsx(Icon, { name: "lineHeight" }) }), _jsx("span", { className: "tb-div" }), _jsxs("div", { className: "tb-anchor", ref: listAnchor, children: [_jsx("button", { type: "button", className: `tb-btn${inList || listMenu ? ' is-on' : ''}`, title: "\uBAA9\uB85D", "aria-label": "\uBAA9\uB85D", "aria-haspopup": "menu", "aria-expanded": listMenu, onMouseDown: (e) => e.preventDefault(), onClick: () => setListMenu((v) => !v), children: _jsx(Icon, { name: s.ordered ? 'ordered' : 'bullet' }) }), listMenu && (_jsx(ListMenu, { editor: editor, anchorRef: listAnchor, kind: s.ordered ? 'ordered' : s.bullet ? 'bullet' : 'none', marker: s.marker, onClose: () => setListMenu(false) }))] })] }));
142
+ }
143
+ /**
144
+ * 도구 띠가 **뚫고 나가야 할 좌우 여백**을 잰다.
145
+ *
146
+ * 띠는 화면(정확히는 스크롤되는 상자)을 가로지르는 물건인데, 편집기는 보통 좌우 여백이
147
+ * 있는 열 안에 놓인다. 그 차이만큼 음수 마진으로 빠져나가야 띠가 띠로 보인다.
148
+ *
149
+ * 예전엔 `--editor-gutter` 를 소비자가 CSS 로 넣게 했다. 그러면 **변수 이름이 곧 숨은 API** 라,
150
+ * 안 넣은 소비자에게서는 띠가 카드처럼 떠 보인다(실제로 그랬다).
151
+ * 값으로 받지 않고 **재는** 이유: 소비자마다 패딩이 다르고, 창 크기에 따라 변하기도 한다.
152
+ */
153
+ function useGutter(ref) {
154
+ useLayoutEffect(() => {
155
+ const el = ref.current;
156
+ if (!el)
157
+ return;
158
+ const scroller = (() => {
159
+ let p = el.parentElement;
160
+ while (p && p !== document.body) {
161
+ const o = getComputedStyle(p).overflowY;
162
+ if (o === 'auto' || o === 'scroll')
163
+ return p;
164
+ p = p.parentElement;
165
+ }
166
+ return document.documentElement;
167
+ })();
168
+ /**
169
+ * **재는 것은 자기 자신이 아니라 부모다.**
170
+ * 띠에 음수 마진을 주면 띠의 폭이 변하고, 그 변화가 다시 측정을 바꾼다 —
171
+ * 자기를 재면 「넓어짐 → 여백 0 → 좁아짐 → 여백 56 → …」 로 되먹임이 돌아
172
+ * 0 으로 수렴한다(실제로 그랬다). 부모의 자리는 마진과 무관하게 고정이다.
173
+ */
174
+ const host = el.parentElement;
175
+ if (!host)
176
+ return;
177
+ const put = () => {
178
+ const a = host.getBoundingClientRect();
179
+ const b = scroller.getBoundingClientRect();
180
+ // 부모의 **패딩 안쪽**이 띠가 원래 서는 자리다. 테두리 상자만 재면 패딩으로 여백을
181
+ // 준 소비자에게서 0 이 나와 띠가 안 펴진다.
182
+ const cs = getComputedStyle(host);
183
+ const left = Math.max(0, Math.round(a.left + parseFloat(cs.paddingLeft || '0') - b.left));
184
+ const right = Math.max(0, Math.round(b.right - (a.right - parseFloat(cs.paddingRight || '0'))));
185
+ // 좌우가 다르면 작은 쪽에 맞춘다 — 한쪽만 튀어나오면 삐뚤어 보인다
186
+ el.style.setProperty('--editor-gutter', `${Math.min(left, right)}px`);
187
+ };
188
+ put();
189
+ const ro = new ResizeObserver(put);
190
+ ro.observe(host);
191
+ ro.observe(scroller);
192
+ return () => ro.disconnect();
193
+ }, [ref]);
194
+ }
195
+ export function Toolbar({ editor, title, width, onWidth, stickyTop }) {
196
+ const [menu, setMenu] = useState(null);
197
+ /** 폰에서 윗줄(넣기)을 시트로 펼쳤는지 */
198
+ const [sheet, setSheet] = useState(false);
199
+ /** 마지막에 고른 모양을 기억해 본체 클릭 한 번으로 넣게 한다 */
200
+ const [lastQuote, rememberQuote] = useLastVariant('quote', 'bar', QUOTE_VARIANTS);
201
+ const [lastDivider, rememberDivider] = useLastVariant('divider', 'short', DIVIDER_KINDS);
202
+ /**
203
+ * 넣기 메뉴에서도 두께·색을 고른다 — 넣고 나서 다시 잡아 고치게 하면 손이 두 번 간다
204
+ *. 모양처럼 **마지막에 고른 값을 기억**해 본체 클릭에도 실린다.
205
+ * `''` 가 「안 정함」이다 — localStorage 는 null 을 못 담는다.
206
+ */
207
+ const [lastWeight, rememberWeight] = useLastVariant('dividerWeight', '', ['', ...DIVIDER_WEIGHTS]);
208
+ const [lastTone, rememberTone] = useLastVariant('dividerTone', '', ['', ...DIVIDER_TONES]);
209
+ const dividerAttrs = { weight: lastWeight || null, tone: lastTone || null };
210
+ const [lastLang, rememberLang] = useLastVariant('codeLang', '');
211
+ const [lastPreset, rememberPreset] = useLastVariant('tablePreset', 'grid', TABLE_PRESETS);
212
+ const quoteAnchor = useRef(null);
213
+ const dividerAnchor = useRef(null);
214
+ const calloutAnchor = useRef(null);
215
+ const codeAnchor = useRef(null);
216
+ const diagramAnchor = useRef(null);
217
+ const tableAnchor = useRef(null);
218
+ const videoAnchor = useRef(null);
219
+ const linkAnchor = useRef(null);
220
+ const close = () => setMenu(null);
221
+ /**
222
+ * 다이어그램을 넣는다. **빈 것을 넣지 않는다** — 빈 캔버스 앞에서 문법을 떠올리게 하는
223
+ * 것보다, 고칠 수 있는 샘플을 주는 쪽이 낫다. 코드 블록이 언어를 미리 고르게 두는 것과 같다.
224
+ *
225
+ * Draw.io 샘플만 `await` 한다 — 구운 그림을 같이 싣느라 파일이 수십 KB 라 동적 import 로
226
+ * 떼어 놨다. mermaid 는 글자뿐이라 기다릴 것이 없다.
227
+ */
228
+ const insertDiagram = (seed) => {
229
+ close();
230
+ void loadDiagramSeed(seed).then(({ engine, src, svg }) => {
231
+ c().insertContent({
232
+ type: 'diagram',
233
+ attrs: { engine, src, svg, align: 'center', width: 100, caption: 'below' },
234
+ }).run();
235
+ });
236
+ };
237
+ const rootRef = useRef(null);
238
+ useGutter(rootRef);
239
+ /**
240
+ * 붙을 자리는 **이 요소에만** 건다. 전역(`:root`)에 박으면 한 화면에 편집기가 둘일 때
241
+ * 서로 덮어쓰고, 떠난 뒤에도 값이 남는다.
242
+ */
243
+ useLayoutEffect(() => {
244
+ const el = rootRef.current;
245
+ if (!el)
246
+ return;
247
+ if (stickyTop == null)
248
+ el.style.removeProperty('--editor-sticky-top');
249
+ else
250
+ el.style.setProperty('--editor-sticky-top', typeof stickyTop === 'number' ? `${stickyTop}px` : stickyTop);
251
+ }, [stickyTop]);
252
+ const s = useEditorState({
253
+ editor,
254
+ selector: ({ editor: e }) => ({
255
+ link: e.isActive('link'), href: e.getAttributes('link').href ?? '',
256
+ quote: e.isActive('blockquote'), pull: e.isActive('pullQuote'),
257
+ lang: e.getAttributes('codeBlock').language ?? '',
258
+ quoteVariant: (e.getAttributes('blockquote').variant ?? null),
259
+ codeBlock: e.isActive('codeBlock'),
260
+ table: e.isActive('table'),
261
+ diagram: e.isActive('diagram'),
262
+ tablePreset: (e.getAttributes('table').preset ?? 'grid'),
263
+ note: e.isActive('callout', { tone: 'note' }), tip: e.isActive('callout', { tone: 'tip' }), warn: e.isActive('callout', { tone: 'warn' }),
264
+ }),
265
+ });
266
+ // 아랫줄 슬롯: 어떤 객체가 잡혀 있는가
267
+ const obj = useEditorState({ editor, selector: () => findActiveObject(editor) });
268
+ const kind = obj ? OBJECTS[obj.kind] : null;
269
+ const engaged = useEngaged(editor);
270
+ /**
271
+ * 편집기 밖(글 제목 입력칸 등)에 손이 가 있으면 **글자 서식줄을 잠근다.**
272
+ *
273
+ * 잠그지 않으면 `chain().focus()` 가 포커스를 편집기로 끌어오면서 아까 잡아 둔 자리로
274
+ * **화면을 통째로 스크롤한다.** 제목을 쓰다 글꼴을 바꿨더니 본문 맨 아래 사진으로
275
+ * 튀어 내려갔다.
276
+ * 게다가 제목은 문서 밖이라 서식이 걸리지도 않는다. 안 되는 일을 조용히 하느니 잠근다.
277
+ *
278
+ * 판단은 `editor.isFocused` 가 아니라 `useEngaged` 로 한다 — 창이 OS 포커스를 잃으면
279
+ * 편집기도 blur 되므로, isFocused 로 잠그면 다른 앱을 봤다 돌아올 때마다 줄이 회색이 된다.
280
+ */
281
+ const c = () => editor.chain().focus();
282
+ /**
283
+ * 표를 넣고 **바로 스타일을 입힌다.**
284
+ *
285
+ * `insertTable` 은 스타일을 모르므로 넣은 뒤 커서가 든 표에 속성을 얹는다.
286
+ * 한 묶음(chain)으로 해야 실행 취소가 한 번에 되돌린다 — 두 번 나누면
287
+ * ⌘Z 를 두 번 눌러야 표가 사라진다.
288
+ */
289
+ const insertTable = (preset) => c().insertTable({ rows: 3, cols: 3, withHeaderRow: true }).setTablePreset(preset).run();
290
+ // 진짜 사진을 고른다. 끌어다 놓기·붙여넣기는 Figure 확장이 따로 받는다.
291
+ const addImage = async () => {
292
+ const files = await pickImageFiles();
293
+ if (files.length)
294
+ await insertImageFiles(editor, files);
295
+ };
296
+ return (_jsxs("div", { "data-editor-ui": "", ref: rootRef, className: `toolbar2${sheet ? ' sheet-open' : ''}`, children: [sheet && _jsx("div", { className: "tb-sheet-backdrop", onClick: () => setSheet(false) }), _jsxs("div", { className: "tb-row tb-row-insert", role: "toolbar", "aria-label": "\uB123\uAE30", onClick: () => setSheet(false), children: [_jsx(Tile, { title: "\uC0AC\uC9C4 \uB123\uAE30 \u2014 \uB04C\uC5B4\uB2E4 \uB193\uAC70\uB098 \uBD99\uC5EC\uB123\uC5B4\uB3C4 \uB429\uB2C8\uB2E4", label: "\uC0AC\uC9C4", on: addImage, children: _jsx(Icon, { name: "image", size: 20, stroke: 1.6 }) }), _jsxs("div", { className: "tb-anchor", ref: quoteAnchor, children: [_jsx(SplitTile, { label: "\uC778\uC6A9\uAD6C", active: s.quote || s.pull, open: menu === 'quote', title: `인용 넣기 — ${QUOTE_LABEL[lastQuote]}`, caretTitle: "\uC778\uC6A9 \uBAA8\uC591 \uACE0\uB974\uAE30", onMain: () => c().setQuoteVariant(lastQuote).run(), onCaret: () => setMenu(menu === 'quote' ? null : 'quote'), children: _jsx(Icon, { name: "quote", size: 20, stroke: 1.6 }) }), menu === 'quote' && (_jsx(VariantMenu, { ariaLabel: "\uC778\uC6A9 \uBAA8\uC591", columns: 1, anchorRef: quoteAnchor, items: [
297
+ ...quoteItems,
298
+ { value: 'pull', label: '큰 인용',
299
+ preview: _jsx("p", { "data-pull-quote": "", style: { margin: 0, fontSize: '0.62rem', lineHeight: 1.25 }, children: "\uD55C \uC904" }) },
300
+ ], value: s.pull ? 'pull' : s.quoteVariant, onPick: (v) => {
301
+ if (v === 'pull') {
302
+ c().togglePullQuote().run();
303
+ return;
304
+ }
305
+ rememberQuote(v);
306
+ c().setQuoteVariant(v).run();
307
+ }, onClose: close }))] }), _jsxs("div", { className: "tb-anchor", ref: dividerAnchor, children: [_jsx(SplitTile, { label: "\uAD6C\uBD84\uC120", open: menu === 'divider', title: `구분선 넣기 — ${DIVIDER_LABEL[lastDivider]}`, caretTitle: "\uAD6C\uBD84\uC120 \uBAA8\uC591\u00B7\uB450\uAED8\u00B7\uC0C9", onMain: () => c().setDivider({ kind: lastDivider, align: 'center', ...dividerAttrs }).run(), onCaret: () => setMenu(menu === 'divider' ? null : 'divider'), children: _jsx(Icon, { name: "divider", size: 20, stroke: 1.6 }) }), menu === 'divider' && (_jsx(VariantMenu, { ariaLabel: "\uAD6C\uBD84\uC120 \uBAA8\uC591", columns: 4, anchorRef: dividerAnchor, items: dividerItems, value: lastDivider, onPick: (k) => { rememberDivider(k); c().setDivider({ kind: k, align: 'center', ...dividerAttrs }).run(); }, onClose: close, footer:
308
+ /* 두께·색은 고르기만 하고 **닫지 않는다** — 여기서 정해 두고 모양을 눌러 넣는다 */
309
+ _jsx(DividerExtras, { kind: lastDivider, weight: dividerAttrs.weight, tone: dividerAttrs.tone, onWeight: (w) => rememberWeight(w ?? ''), onTone: (t) => rememberTone(t ?? '') }) }))] }), _jsxs("div", { className: "tb-anchor", ref: codeAnchor, children: [_jsx(SplitTile, { label: "\uC18C\uC2A4\uCF54\uB4DC", active: s.codeBlock, open: menu === 'code', title: `소스코드 넣기 — ${LANG_ITEMS.find((l) => l.value === lastLang)?.label ?? '텍스트'}`, caretTitle: "\uC5B8\uC5B4 \uACE0\uB974\uAE30", onMain: () => c().toggleCodeBlock(lastLang ? { language: lastLang } : undefined).run(), onCaret: () => setMenu(menu === 'code' ? null : 'code'), children: _jsx(Icon, { name: "codeBlock", size: 20, stroke: 1.6 }) }), menu === 'code' && (_jsx(PickMenu, { ariaLabel: "\uC5B8\uC5B4", width: 168, items: LANG_ITEMS, value: s.codeBlock ? s.lang : lastLang, anchorRef: codeAnchor, onClose: close, onPick: (v) => {
310
+ rememberLang(v);
311
+ if (s.codeBlock)
312
+ c().setCodeAttrs({ language: v || null }).run();
313
+ else
314
+ c().toggleCodeBlock(v ? { language: v } : undefined).run();
315
+ } }))] }), _jsxs("div", { className: "tb-anchor", ref: calloutAnchor, children: [_jsx(SplitTile, { label: "\uAC15\uC870\uBC15\uC2A4", active: s.note || s.tip || s.warn, open: menu === 'callout', title: "\uAC15\uC870 \uBC15\uC2A4 \uB123\uAE30 (\uCC38\uACE0)", caretTitle: "\uAC15\uC870 \uBC15\uC2A4 \uC885\uB958 \uACE0\uB974\uAE30", onMain: () => c().toggleCallout('note').run(), onCaret: () => setMenu(menu === 'callout' ? null : 'callout'), children: _jsx(Icon, { name: "callout", size: 20, stroke: 1.6 }) }), menu === 'callout' && (_jsx(VariantMenu, { ariaLabel: "\uAC15\uC870 \uBC15\uC2A4 \uC885\uB958", columns: 1, anchorRef: calloutAnchor, items: ['note', 'tip', 'warn'].map((tone) => ({
316
+ value: tone,
317
+ label: tone === 'note' ? '참고' : tone === 'tip' ? '팁' : '주의',
318
+ desc: tone === 'note' ? '차분한 파랑' : tone === 'tip' ? '초록' : '주황',
319
+ preview: (_jsx("aside", { "data-callout": "", "data-tone": tone, style: { fontSize: '0.58rem', padding: '0.4em 0.5em', lineHeight: 1.4 }, children: _jsx("p", { children: "\uAC15\uC870" }) })),
320
+ })), value: s.note ? 'note' : s.tip ? 'tip' : s.warn ? 'warn' : null, onPick: (tone) => c().toggleCallout(tone).run(), onClose: close }))] }), _jsxs("div", { className: "tb-anchor", ref: tableAnchor, children: [_jsx(SplitTile, { label: "\uD45C", active: s.table, open: menu === 'table', title: `표 넣기 (3×3) — ${PRESET_LABEL[lastPreset]}`, caretTitle: "\uD45C \uC2A4\uD0C0\uC77C \uACE0\uB974\uAE30", onMain: () => insertTable(lastPreset), onCaret: () => setMenu(menu === 'table' ? null : 'table'), children: _jsx(Icon, { name: "table", size: 20, stroke: 1.6 }) }), menu === 'table' && (_jsx(VariantMenu, { ariaLabel: "\uD45C \uC2A4\uD0C0\uC77C", columns: 4, anchorRef: tableAnchor, items: presetItems, value: s.table ? s.tablePreset : lastPreset, onPick: (p) => {
321
+ rememberPreset(p);
322
+ // 표 안이면 **새로 넣지 않고** 그 표의 스타일만 바꾼다 — 표 안에 표가 생기면 안 된다
323
+ if (s.table)
324
+ c().setTablePreset(p).run();
325
+ else
326
+ insertTable(p);
327
+ }, onClose: close }))] }), _jsxs("div", { className: "tb-anchor", ref: diagramAnchor, children: [_jsx(SplitTile, { label: "\uB2E4\uC774\uC5B4\uADF8\uB7A8", active: s.diagram, open: menu === 'diagram', title: "\uB2E4\uC774\uC5B4\uADF8\uB7A8 \uB123\uAE30 \u2014 \uC2DC\uD000\uC2A4 (Mermaid)", caretTitle: "\uC885\uB958 \uACE0\uB974\uAE30", onMain: () => insertDiagram('sequence'), onCaret: () => setMenu(menu === 'diagram' ? null : 'diagram'), children: _jsx(Icon, { name: "diagram", size: 20, stroke: 1.6 }) }), menu === 'diagram' && (_jsx(VariantMenu, { ariaLabel: "\uB2E4\uC774\uC5B4\uADF8\uB7A8 \uC0D8\uD50C", columns: 4, anchorRef: diagramAnchor, items: diagramRows, onClose: close, onPick: (v) => insertDiagram(v) }))] }), _jsxs("div", { className: "tb-anchor", ref: linkAnchor, children: [_jsx(Tile, { title: "\uB9C1\uD06C", label: "\uB9C1\uD06C", active: s.link || menu === 'link', on: () => setMenu(menu === 'link' ? null : 'link'), children: _jsx(Icon, { name: "link", size: 20, stroke: 1.6 }) }), menu === 'link' && (_jsx(UrlPrompt, { label: "\uB9C1\uD06C \uC8FC\uC18C", placeholder: "https://", initial: s.href, anchorRef: linkAnchor, hint: s.link ? '비우고 「걸기」를 누르면 링크가 풀립니다' : undefined, submitLabel: "\uAC78\uAE30", onClose: close, onSubmit: (url) => {
328
+ if (url === '')
329
+ return c().unsetLink().run();
330
+ return c().setLink({ href: url }).run();
331
+ } }))] }), _jsxs("div", { className: "tb-anchor", ref: videoAnchor, children: [_jsx(Tile, { title: "YouTube \uC8FC\uC18C\uB85C \uC601\uC0C1 \uB123\uAE30", label: "\uBE44\uB514\uC624 \uB9C1\uD06C", active: menu === 'video', on: () => setMenu(menu === 'video' ? null : 'video'), children: _jsx(Icon, { name: "video", size: 20, stroke: 1.6 }) }), menu === 'video' && (_jsx(UrlPrompt, { label: "YouTube \uC8FC\uC18C", placeholder: "https://www.youtube.com/watch?v=...", hint: "youtube.com \u00B7 youtu.be \uC8FC\uC18C\uB97C \uBD99\uC5EC\uB123\uC73C\uC138\uC694", anchorRef: videoAnchor, onClose: close, onSubmit: (url) => !!url && c().setYoutubeVideo({ src: url }).run() }))] }), onWidth && (_jsx("div", { className: "tb-right", children: _jsx(WidthToggle, { value: width ?? 'measure', onChange: onWidth }) }))] }), _jsxs("div", { className: `tb-row tb-row-format${title || engaged ? '' : ' is-idle'}`, role: "toolbar", "aria-label": "\uC11C\uC2DD", children: [_jsx("button", { type: "button", className: "tb-sheet-btn", title: "\uB123\uAE30", "aria-label": "\uB123\uAE30", "aria-expanded": sheet, onMouseDown: (e) => e.preventDefault(), onClick: () => setSheet((v) => !v), children: _jsx(Icon, { name: "plus", size: 18 }) }), title ? (_jsx(TitleRow, { value: title.value, onChange: title.onChange })) : obj && kind && engaged && !kind.allowsText ? (kind.Row ? _jsx(kind.Row, { editor: editor, m: obj }) : null) : (_jsxs(_Fragment, { children: [_jsx(TextRow, { editor: editor }), obj && kind && engaged && kind.Row && (_jsxs(_Fragment, { children: [_jsx("span", { className: "tb-div" }), _jsx(kind.Row, { editor: editor, m: obj })] }))] }))] })] }));
332
+ }
333
+ //# sourceMappingURL=Toolbar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Toolbar.js","sourceRoot":"","sources":["../src/Toolbar.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { type RefObject } from 'react';
2
+ /**
3
+ * 주소를 받는 작은 팝오버 — `window.prompt` 를 대신한다.
4
+ *
5
+ * `prompt()` 를 쓰면 브라우저의 시스템 대화상자가 떠서 편집기와 아무 상관 없는 모양이 되고
6
+ *, 무엇보다 **잘못 넣었을 때 알려 줄 자리가 없다** —
7
+ * 유튜브가 아닌 주소를 넣으면 그냥 아무 일도 안 일어났다.
8
+ *
9
+ * 다른 팝오버와 같은 규약: `data-editor-ui` · 바깥 클릭/Esc 로 닫기 · 여는 버튼 아래 고정.
10
+ * 입력칸이 편집면(.ProseMirror) 밖에 있으므로 한글 조합이 ProseMirror 로 새지 않는다.
11
+ */
12
+ export declare function UrlPrompt({ label, placeholder, initial, hint, anchorRef, onSubmit, onClose, submitLabel, width, }: {
13
+ label: string;
14
+ placeholder: string;
15
+ initial?: string;
16
+ hint?: string;
17
+ anchorRef: RefObject<HTMLElement | null>;
18
+ /** 참을 돌려주면 닫는다. 거짓이면 열어 둔 채 「주소를 못 읽었다」고 알린다. */
19
+ onSubmit: (value: string) => boolean;
20
+ onClose: () => void;
21
+ submitLabel?: string;
22
+ width?: number;
23
+ }): import("react").JSX.Element;
24
+ //# sourceMappingURL=UrlPrompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UrlPrompt.d.ts","sourceRoot":"","sources":["../src/UrlPrompt.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAKzE;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,EACxB,KAAK,EAAE,WAAW,EAAE,OAAY,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAkB,EAAE,KAAW,GACtG,EAAE;IACD,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;IACxC,iDAAiD;IACjD,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAA;IACpC,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,+BAiDA"}
@@ -0,0 +1,53 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useLayoutEffect, useRef, useState } from 'react';
3
+ import { useDismiss } from './useDismiss.js';
4
+ import { useAnchoredPos } from './useAnchoredPos.js';
5
+ import { Portal } from './Popover.js';
6
+ /**
7
+ * 주소를 받는 작은 팝오버 — `window.prompt` 를 대신한다.
8
+ *
9
+ * `prompt()` 를 쓰면 브라우저의 시스템 대화상자가 떠서 편집기와 아무 상관 없는 모양이 되고
10
+ *, 무엇보다 **잘못 넣었을 때 알려 줄 자리가 없다** —
11
+ * 유튜브가 아닌 주소를 넣으면 그냥 아무 일도 안 일어났다.
12
+ *
13
+ * 다른 팝오버와 같은 규약: `data-editor-ui` · 바깥 클릭/Esc 로 닫기 · 여는 버튼 아래 고정.
14
+ * 입력칸이 편집면(.ProseMirror) 밖에 있으므로 한글 조합이 ProseMirror 로 새지 않는다.
15
+ */
16
+ export function UrlPrompt({ label, placeholder, initial = '', hint, anchorRef, onSubmit, onClose, submitLabel = '넣기', width = 330, }) {
17
+ const ref = useRef(null);
18
+ const input = useRef(null);
19
+ const [value, setValue] = useState(initial);
20
+ const [bad, setBad] = useState(false);
21
+ const pos = useAnchoredPos(anchorRef, true, width, ref);
22
+ useDismiss(true, ref, onClose, anchorRef);
23
+ /**
24
+ * 포커스는 **포털로 옮겨간 뒤**에 준다.
25
+ * 첫 렌더에서는 좌표가 없어 제자리에 그려지고, 좌표가 잡히면 body 로 옮겨진다.
26
+ * 옮겨질 때 입력칸 DOM 이 새로 만들어지므로 먼저 준 포커스는 그대로 날아간다.
27
+ */
28
+ const focused = useRef(false);
29
+ useLayoutEffect(() => {
30
+ if (!pos || focused.current)
31
+ return;
32
+ focused.current = true;
33
+ input.current?.focus();
34
+ input.current?.select();
35
+ }, [pos]);
36
+ const submit = () => {
37
+ if (onSubmit(value.trim()))
38
+ onClose();
39
+ else {
40
+ setBad(true);
41
+ input.current?.focus();
42
+ }
43
+ };
44
+ return (_jsx(Portal, { active: !!pos, children: _jsxs("div", { "data-editor-ui": "", ref: ref, role: "dialog", "aria-label": label, className: `up${pos ? ' is-fixed' : ''}`, style: { width, ...(pos ? { position: 'fixed', left: pos.left, top: pos.top } : null) }, children: [_jsx("div", { className: "up-head", children: label }), _jsx("input", { ref: input, className: `up-input${bad ? ' is-bad' : ''}`, type: "url", inputMode: "url", placeholder: placeholder, value: value, spellCheck: false, onChange: (e) => { setValue(e.target.value); setBad(false); }, onKeyDown: (e) => {
45
+ if (e.key === 'Enter') {
46
+ e.preventDefault();
47
+ submit();
48
+ }
49
+ // Esc 는 useDismiss 가 받는다. 여기서 멈춰 두지 않으면 편집면까지 흘러간다.
50
+ e.stopPropagation();
51
+ } }), (bad || hint) && (_jsx("p", { className: `up-hint${bad ? ' is-bad' : ''}`, children: bad ? '주소를 읽지 못했습니다. 다시 확인해 주세요.' : hint })), _jsxs("div", { className: "up-foot", children: [_jsx("button", { type: "button", className: "up-cancel", onMouseDown: (e) => e.preventDefault(), onClick: onClose, children: "\uCDE8\uC18C" }), _jsx("button", { type: "button", className: "up-ok", onMouseDown: (e) => e.preventDefault(), onClick: submit, children: submitLabel })] })] }) }));
52
+ }
53
+ //# sourceMappingURL=UrlPrompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UrlPrompt.js","sourceRoot":"","sources":["../src/UrlPrompt.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAA;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAElC;;;;;;;;;GASG;AACH,MAAM,UAAU,SAAS,CAAC,EACxB,KAAK,EAAE,WAAW,EAAE,OAAO,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI,EAAE,KAAK,GAAG,GAAG,GAYtG;IACC,MAAM,GAAG,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IACxC,MAAM,KAAK,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAA;IAC5C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC3C,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACrC,MAAM,GAAG,GAAG,cAAc,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;IACvD,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;IACzC;;;;OAIG;IACH,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IAC7B,eAAe,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,OAAO;YAAE,OAAM;QACnC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAA;QACtB,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,CAAA;QACtB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,CAAA;IACzB,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;IAET,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAAE,OAAO,EAAE,CAAA;aAChC,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,CAAA;QAAC,CAAC;IAC/C,CAAC,CAAA;IAED,OAAO,CACL,KAAC,MAAM,IAAC,MAAM,EAAE,CAAC,CAAC,GAAG,YACnB,iCAAoB,EAAE,EAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAC,QAAQ,gBAAa,KAAK,EAC9D,SAAS,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,EACxC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,aACvF,cAAK,SAAS,EAAC,SAAS,YAAE,KAAK,GAAO,EACtC,gBAAO,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAC,KAAK,EAAC,SAAS,EAAC,KAAK,EACzF,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EACzD,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC,EAC5D,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;wBACf,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;4BAAC,CAAC,CAAC,cAAc,EAAE,CAAC;4BAAC,MAAM,EAAE,CAAA;wBAAC,CAAC;wBACvD,oDAAoD;wBACpD,CAAC,CAAC,eAAe,EAAE,CAAA;oBACrB,CAAC,GAAI,EACN,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAChB,YAAG,SAAS,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,YAAG,GAAG,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,IAAI,GAAK,CAC/F,EACD,eAAK,SAAS,EAAC,SAAS,aACtB,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,WAAW,EAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,OAAO,6BAAa,EACjH,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,OAAO,EAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,MAAM,YAAG,WAAW,GAAU,IACnH,IACF,GACC,CACV,CAAA;AACH,CAAC"}