@tienne/gestalt 0.110.0 → 0.112.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 (164) hide show
  1. package/CLAUDE.md +3 -3
  2. package/README.ko.md +1 -1
  3. package/README.md +1 -1
  4. package/dist/package.json +3 -1
  5. package/dist/plugin/role-agents/lens-context/AGENT.md +8 -7
  6. package/dist/plugin/role-agents/lens-reader/AGENT.md +48 -2
  7. package/dist/plugin/skills/lens/SKILL.md +22 -15
  8. package/dist/src/architecture/doc-fresh.d.ts.map +1 -1
  9. package/dist/src/architecture/doc-fresh.js +3 -1
  10. package/dist/src/architecture/doc-fresh.js.map +1 -1
  11. package/dist/src/cli/commands/lens.d.ts +8 -1
  12. package/dist/src/cli/commands/lens.d.ts.map +1 -1
  13. package/dist/src/cli/commands/lens.js +29 -2
  14. package/dist/src/cli/commands/lens.js.map +1 -1
  15. package/dist/src/cli/commands/peer.d.ts +19 -0
  16. package/dist/src/cli/commands/peer.d.ts.map +1 -1
  17. package/dist/src/cli/commands/peer.js +188 -11
  18. package/dist/src/cli/commands/peer.js.map +1 -1
  19. package/dist/src/cli/index.d.ts.map +1 -1
  20. package/dist/src/cli/index.js +43 -4
  21. package/dist/src/cli/index.js.map +1 -1
  22. package/dist/src/digest/lens-schema.d.ts +150 -3
  23. package/dist/src/digest/lens-schema.d.ts.map +1 -1
  24. package/dist/src/digest/lens-schema.js +14 -1
  25. package/dist/src/digest/lens-schema.js.map +1 -1
  26. package/dist/src/digest/lens-widget-schema.d.ts +2 -2
  27. package/dist/src/digest/lint-lens.d.ts +2 -1
  28. package/dist/src/digest/lint-lens.d.ts.map +1 -1
  29. package/dist/src/digest/lint-lens.js +68 -7
  30. package/dist/src/digest/lint-lens.js.map +1 -1
  31. package/dist/src/digest/ocr.d.ts +1 -1
  32. package/dist/src/digest/ocr.d.ts.map +1 -1
  33. package/dist/src/digest/ocr.js +10 -4
  34. package/dist/src/digest/ocr.js.map +1 -1
  35. package/dist/src/digest/render-html.d.ts +5 -0
  36. package/dist/src/digest/render-html.d.ts.map +1 -1
  37. package/dist/src/digest/render-html.js +31 -10
  38. package/dist/src/digest/render-html.js.map +1 -1
  39. package/dist/src/digest/render-lens.d.ts +1 -1
  40. package/dist/src/digest/render-lens.d.ts.map +1 -1
  41. package/dist/src/digest/render-lens.js +17 -2
  42. package/dist/src/digest/render-lens.js.map +1 -1
  43. package/dist/src/digest/schema.d.ts +62 -62
  44. package/dist/src/digest/server.d.ts.map +1 -1
  45. package/dist/src/digest/server.js +7 -4
  46. package/dist/src/digest/server.js.map +1 -1
  47. package/dist/src/digest/theme-diary.d.ts +10 -0
  48. package/dist/src/digest/theme-diary.d.ts.map +1 -0
  49. package/dist/src/digest/theme-diary.js +111 -0
  50. package/dist/src/digest/theme-diary.js.map +1 -0
  51. package/dist/src/digest/viewer-js.d.ts +6 -0
  52. package/dist/src/digest/viewer-js.d.ts.map +1 -1
  53. package/dist/src/digest/viewer-js.js +78 -4
  54. package/dist/src/digest/viewer-js.js.map +1 -1
  55. package/dist/src/lens/attach.d.ts +741 -0
  56. package/dist/src/lens/attach.d.ts.map +1 -1
  57. package/dist/src/lens/attach.js +41 -11
  58. package/dist/src/lens/attach.js.map +1 -1
  59. package/dist/src/lens/context-input.d.ts +17 -0
  60. package/dist/src/lens/context-input.d.ts.map +1 -0
  61. package/dist/src/lens/context-input.js +31 -0
  62. package/dist/src/lens/context-input.js.map +1 -0
  63. package/dist/src/lens/ingest.d.ts +19 -1
  64. package/dist/src/lens/ingest.d.ts.map +1 -1
  65. package/dist/src/lens/ingest.js +92 -14
  66. package/dist/src/lens/ingest.js.map +1 -1
  67. package/dist/src/lens/pdf-extract-py.d.ts +2 -0
  68. package/dist/src/lens/pdf-extract-py.d.ts.map +1 -1
  69. package/dist/src/lens/pdf-extract-py.js +37 -2
  70. package/dist/src/lens/pdf-extract-py.js.map +1 -1
  71. package/dist/src/mcp/schemas.d.ts +23 -0
  72. package/dist/src/mcp/schemas.d.ts.map +1 -1
  73. package/dist/src/mcp/schemas.js +20 -0
  74. package/dist/src/mcp/schemas.js.map +1 -1
  75. package/dist/src/mcp/server.d.ts.map +1 -1
  76. package/dist/src/mcp/server.js +6 -1
  77. package/dist/src/mcp/server.js.map +1 -1
  78. package/dist/src/mcp/tools/architecture-passthrough.d.ts.map +1 -1
  79. package/dist/src/mcp/tools/architecture-passthrough.js +1 -1
  80. package/dist/src/mcp/tools/architecture-passthrough.js.map +1 -1
  81. package/dist/src/mcp/tools/peer.d.ts +21 -0
  82. package/dist/src/mcp/tools/peer.d.ts.map +1 -0
  83. package/dist/src/mcp/tools/peer.js +71 -0
  84. package/dist/src/mcp/tools/peer.js.map +1 -0
  85. package/dist/src/peer/codex.d.ts +49 -0
  86. package/dist/src/peer/codex.d.ts.map +1 -0
  87. package/dist/src/peer/codex.js +240 -0
  88. package/dist/src/peer/codex.js.map +1 -0
  89. package/dist/src/peer/daemon.d.ts +52 -1
  90. package/dist/src/peer/daemon.d.ts.map +1 -1
  91. package/dist/src/peer/daemon.js +356 -16
  92. package/dist/src/peer/daemon.js.map +1 -1
  93. package/dist/src/peer/feed.d.ts +24 -2
  94. package/dist/src/peer/feed.d.ts.map +1 -1
  95. package/dist/src/peer/feed.js.map +1 -1
  96. package/dist/src/peer/inbox.d.ts +31 -0
  97. package/dist/src/peer/inbox.d.ts.map +1 -0
  98. package/dist/src/peer/inbox.js +80 -0
  99. package/dist/src/peer/inbox.js.map +1 -0
  100. package/dist/src/peer/locate.d.ts +3 -0
  101. package/dist/src/peer/locate.d.ts.map +1 -1
  102. package/dist/src/peer/locate.js +4 -2
  103. package/dist/src/peer/locate.js.map +1 -1
  104. package/dist/src/peer/message.d.ts +104 -0
  105. package/dist/src/peer/message.d.ts.map +1 -0
  106. package/dist/src/peer/message.js +171 -0
  107. package/dist/src/peer/message.js.map +1 -0
  108. package/dist/src/peer/mirror.d.ts +50 -1
  109. package/dist/src/peer/mirror.d.ts.map +1 -1
  110. package/dist/src/peer/mirror.js +138 -0
  111. package/dist/src/peer/mirror.js.map +1 -1
  112. package/dist/src/peer/network.d.ts +247 -0
  113. package/dist/src/peer/network.d.ts.map +1 -1
  114. package/dist/src/peer/network.js +1119 -43
  115. package/dist/src/peer/network.js.map +1 -1
  116. package/dist/src/peer/paths.d.ts +6 -0
  117. package/dist/src/peer/paths.d.ts.map +1 -1
  118. package/dist/src/peer/paths.js +8 -0
  119. package/dist/src/peer/paths.js.map +1 -1
  120. package/dist/src/peer/protocol.d.ts +96 -4
  121. package/dist/src/peer/protocol.d.ts.map +1 -1
  122. package/dist/src/peer/protocol.js.map +1 -1
  123. package/dist/src/peer/relay.d.ts +14 -0
  124. package/dist/src/peer/relay.d.ts.map +1 -1
  125. package/dist/src/peer/relay.js +102 -7
  126. package/dist/src/peer/relay.js.map +1 -1
  127. package/dist/src/peer/roster.d.ts +2 -0
  128. package/dist/src/peer/roster.d.ts.map +1 -1
  129. package/dist/src/peer/roster.js +5 -0
  130. package/dist/src/peer/roster.js.map +1 -1
  131. package/dist/src/peer/share.d.ts +48 -1
  132. package/dist/src/peer/share.d.ts.map +1 -1
  133. package/dist/src/peer/share.js +163 -2
  134. package/dist/src/peer/share.js.map +1 -1
  135. package/dist/src/peer/state.d.ts +12 -1
  136. package/dist/src/peer/state.d.ts.map +1 -1
  137. package/dist/src/peer/state.js +15 -0
  138. package/dist/src/peer/state.js.map +1 -1
  139. package/dist/src/peer/transform.d.ts +27 -0
  140. package/dist/src/peer/transform.d.ts.map +1 -1
  141. package/dist/src/peer/transform.js +37 -33
  142. package/dist/src/peer/transform.js.map +1 -1
  143. package/dist/src/peer/transport.d.ts +7 -3
  144. package/dist/src/peer/transport.d.ts.map +1 -1
  145. package/dist/src/peer/transport.js +12 -4
  146. package/dist/src/peer/transport.js.map +1 -1
  147. package/dist/src/peer/viewer-html.d.ts +1 -1
  148. package/dist/src/peer/viewer-html.d.ts.map +1 -1
  149. package/dist/src/peer/viewer-html.js +151 -1
  150. package/dist/src/peer/viewer-html.js.map +1 -1
  151. package/dist/src/peer/viewer.d.ts +30 -1
  152. package/dist/src/peer/viewer.d.ts.map +1 -1
  153. package/dist/src/peer/viewer.js +103 -5
  154. package/dist/src/peer/viewer.js.map +1 -1
  155. package/dist/src/peer/wire.d.ts +9 -2
  156. package/dist/src/peer/wire.d.ts.map +1 -1
  157. package/dist/src/peer/wire.js.map +1 -1
  158. package/package.json +3 -1
  159. package/plugin/.codex-plugin/plugin.json +1 -1
  160. package/plugin/.mcp.json +1 -1
  161. package/plugin/mcp.json +1 -1
  162. package/plugin/role-agents/lens-context/AGENT.md +8 -7
  163. package/plugin/role-agents/lens-reader/AGENT.md +48 -2
  164. package/plugin/skills/lens/SKILL.md +22 -15
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/digest/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/digest/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/E,OAAO,EAAE,YAAY,IAAI,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EAAE,YAAY,EAA0D,MAAM,WAAW,CAAC;AACjG,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAExE,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAExC,MAAM,IAAI,GAA2B;IACnC,OAAO,EAAE,0BAA0B;IACnC,KAAK,EAAE,8BAA8B;IACrC,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,WAAW;CACpB,CAAC;AAEF,MAAM,UAAU,GAA2B;IACzC,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,iBAAiB;IACzB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,kBAAkB;IAC1B,kCAAkC;IAClC,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,WAAW;IACpB,OAAO,EAAE,YAAY;CACtB,CAAC;AAUF;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,MAA0B,EAAE,IAAY;IACrE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACpE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAAE,OAAO,MAAM,CAAC;IACtD,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QAChB,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC;QAC7B,IAAI,MAAM,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC;YAAE,OAAO,eAAe,CAAC;QACvD,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC;IAC9D,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC;IAC5B,6EAA6E;IAC7E,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,GAAG,KAAK;QAAE,OAAO,MAAM,CAAC;IACxD,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,eAAe,CAAC;IAC1C,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;IACvE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AACxB,CAAC;AAED,qDAAqD;AACrD,mGAAmG;AACnG,mFAAmF;AACnF,4FAA4F;AAC5F,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,oBAAoB;IACpB,6BAA6B,oBAAoB,aAAa,gBAAgB,+CAA+C;IAC7H,oEAAoE;IACpE,0CAA0C;IAC1C,kBAAkB;IAClB,+DAA+D;IAC/D,2CAA2C;IAC3C,oBAAoB;IACpB,iBAAiB;IACjB,oBAAoB;IACpB,mBAAmB;IACnB,wBAAwB;CACzB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,YAAY,GAAG;IACnB,wBAAwB,EAAE,SAAS;IACnC,0CAA0C;IAC1C,iBAAiB,EAAE,iCAAiC;IACpD,eAAe,EAAE,UAAU;CAC5B,CAAC;AAEF,SAAS,eAAe,CAAC,IAAY;IACnC,OAAO,IAAI,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC1B,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7D,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,6DAA6D;AAC7D,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,KAAK,GAAG,mBAAmB,EAAE,QAAQ,GAAG,EAAE;IAC7E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,IAAI,MAAM,eAAe,CAAC,KAAK,GAAG,CAAC,CAAC;YAAE,OAAO,KAAK,GAAG,CAAC,CAAC;IACzD,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,MAAM,KAAK,GAAG,QAAQ,GAAG,CAAC,eAAe,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,UAAU,CAAC,GAAW;IAC7B,IAAI,CAAC;QACH,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,YAAY;IACf,MAAM,GAAkB,IAAI,CAAC;IACpB,IAAI,CAAS;IAC9B,4EAA4E;IAC3D,UAAU,GAAG,IAAI,GAAG,EAAyD,CAAC;IAE/F,YAAY,IAAY;QACtB,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,IAAY;QAChB,OAAO,IAAI,OAAO,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE;YAC1C,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBACtC,IAAI,CAAC;oBACH,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBACxB,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA6B,GAAa,CAAC,OAAO,IAAI,CAAC,CAAC;oBAC7E,IAAI,CAAC,GAAG,CAAC,WAAW;wBAAE,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,2BAA2B,EAAE,CAAC,CAAC;oBAC1F,GAAG,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE;gBACzC,IAAI,CAAC,MAAO,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAClC,YAAY,EAAE,CAAC;YACjB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI;QACF,OAAO,IAAI,OAAO,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YAClC,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,EAAE,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnB,IAAI,GAAG;oBAAE,MAAM,CAAC,GAAG,CAAC,CAAC;;oBAChB,IAAI,EAAE,CAAC;YACd,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,IAAI;QACN,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;QACpC,OAAO,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAClE,CAAC;IAEO,IAAI,CACV,GAAmB,EACnB,MAAc,EACd,IAAY,EACZ,QAAgC,EAAE;QAElC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE;YACpB,GAAG,YAAY;YACf,cAAc,EAAE,2BAA2B;YAC3C,GAAG,KAAK;SACT,CAAC,CAAC;QACH,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAEO,MAAM,CAAC,GAAoB,EAAE,GAAmB;QACtD,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAClD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,oBAAoB,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;QAC3E,CAAC;QACD,8CAA8C;QAC9C,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,WAAW;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;QAE1F,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC;QAC5D,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC;QAC1F,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC;QACtE,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC;YAC5F,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;QAC9C,CAAC;QACD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QACvC,+CAA+C;QAC/C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;QAE5F,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;QACjE,wCAAwC;QACxC,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;YAClE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;QAC1C,CAAC;QAED,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;YACjB,GAAG,YAAY;YACf,cAAc,EAAE,IAAI,CAAC,GAAG,CAAE;YAC1B,GAAG,CAAC,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,yBAAyB,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtE,CAAC,CAAC;QACH,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM;YAAE,OAAO,KAAK,GAAG,CAAC,GAAG,EAAE,CAAC;QACjD,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACK,UAAU,CAAC,GAAoB,EAAE,GAAmB,EAAE,IAAY;QACxE,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;QACpD,yDAAyD;QACzD,IAAI,IAAY,CAAC;QACjB,IAAI,IAAiC,CAAC;QACtC,IAAI,CAAC;YACH,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YACtB,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;gBAC1F,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;QAC1C,CAAC;QACD,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;QAErE,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3D,IAAI,KAAK,KAAK,eAAe,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,uBAAuB,EAAE;gBAClD,eAAe,EAAE,WAAW,IAAI,CAAC,IAAI,EAAE;aACxC,CAAC,CAAC;QACL,CAAC;QACD,MAAM,OAAO,GAAG,EAAE,GAAG,YAAY,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC;QACpF,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACrB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,EAAE,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1E,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;gBACjB,GAAG,OAAO;gBACV,eAAe,EAAE,SAAS,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE;gBACjE,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;aACtD,CAAC,CAAC;QACL,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM;YAAE,OAAO,KAAK,GAAG,CAAC,GAAG,EAAE,CAAC;QACjD,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC/D,CAAC;IAEO,SAAS,CAAC,IAAY;QAC5B,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC;QAChE,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC;QAC7C,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,KAAK,OAAO;YAAE,OAAO,GAAG,CAAC,KAAK,CAAC;QAErD,MAAM,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACrE,MAAM,IAAI,GAAG,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACnD,IAAI,KAAK,GAAsB,IAAI,CAAC;QACpC,wCAAwC;QACxC,MAAM,KAAK,GACT,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3F,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC;gBACH,KAAK,GAAG,EAAE,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9E,CAAC;YAAC,MAAM,CAAC;gBACP,KAAK,GAAG,IAAI,CAAC;YACf,CAAC;QACH,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9C,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,MAAM,CAAC,GAAmB,EAAE,IAAY,EAAE,KAAsC;QACtF,0EAA0E;QAC1E,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE;YACnD,IAAI,CAAC,GAAG;gBAAE,OAAO;YACjB,qCAAqC;YACrC,IAAK,GAA6B,CAAC,IAAI,KAAK,4BAA4B,EAAE,CAAC;gBACzE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;YACnE,CAAC;YACD,GAAG,CAAC,OAAO,EAAE,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAW;IAC7C,IAAI,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA4B,GAAa,CAAC,OAAO,IAAI,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * 영상 요약과 읽기 렌즈가 같이 쓰는 다이어리 테마. 본문을 줄 노트 한 장으로 그리고 제목은 손글씨로 쓴다.
3
+ * render-html이 body에 is-diary를 붙여 모든 요약에 건다. 렌즈 전용 칸(한눈에 보기, 의심 표시)은 영상에 없어서 같이 둬도 영향이 없다.
4
+ * 템플릿 리터럴 안이라 백틱과 달러 중괄호를 쓰지 않는다. 바깥 값은 문자열 연결로 끼운다.
5
+ * 폴라로이드(--polaroid)는 다크에서도 흰 종이라 캡션 색을 고정값으로 두고 다크 팔레트에서 다시 정하지 않는다
6
+ */
7
+ /** 손글씨 제목 글꼴. 오프라인이면 받지 못하고 --hand의 다음 글꼴로 보인다. 서버 CSP가 이 두 주소를 연다 */
8
+ export declare const DIARY_FONT_LINK = "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\"><link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin><link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css2?family=Nanum+Pen+Script&display=swap\">\n";
9
+ export declare const DIARY_CSS: string;
10
+ //# sourceMappingURL=theme-diary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-diary.d.ts","sourceRoot":"","sources":["../../../src/digest/theme-diary.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,sEAAsE;AACtE,eAAO,MAAM,eAAe,uPAC8M,CAAC;AAM3O,eAAO,MAAM,SAAS,QAoGrB,CAAC"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * 영상 요약과 읽기 렌즈가 같이 쓰는 다이어리 테마. 본문을 줄 노트 한 장으로 그리고 제목은 손글씨로 쓴다.
3
+ * render-html이 body에 is-diary를 붙여 모든 요약에 건다. 렌즈 전용 칸(한눈에 보기, 의심 표시)은 영상에 없어서 같이 둬도 영향이 없다.
4
+ * 템플릿 리터럴 안이라 백틱과 달러 중괄호를 쓰지 않는다. 바깥 값은 문자열 연결로 끼운다.
5
+ * 폴라로이드(--polaroid)는 다크에서도 흰 종이라 캡션 색을 고정값으로 두고 다크 팔레트에서 다시 정하지 않는다
6
+ */
7
+ /** 손글씨 제목 글꼴. 오프라인이면 받지 못하고 --hand의 다음 글꼴로 보인다. 서버 CSP가 이 두 주소를 연다 */
8
+ export const DIARY_FONT_LINK = '<link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Nanum+Pen+Script&display=swap">\n';
9
+ /** 다크 팔레트. OS 설정을 따를 때와 다크를 고른 때가 같은 값을 쓴다 */
10
+ const DARK_PALETTE = '--bg:#29292a;--page:#333334;--rule:rgba(255,255,255,.07);--margin:rgba(255,130,130,.35);--fg:#ededed;--muted:#adadad;--line:#4a4a4b;--card:#3c3c3d;--chip:#444445;--accent:#6fd3cf;--warn:#ff8a7a;--hl:rgba(255,226,80,.3);--on-accent:#29292a;--sticky:#5a5130;--tape:rgba(255,170,200,.22);--ink-red:#ff8a7a;--ink-blue:#8db7ff;--ink-green:#7fd6a0;--ink-orange:#ffb35c';
11
+ export const DIARY_CSS = `
12
+ .is-diary{--bg:#e9e1d1;--page:#fffdf7;--rule:rgba(70,110,170,.14);--margin:rgba(214,72,72,.42);--fg:#2d2a26;--muted:#7b7368;--line:#e4d9c6;--card:#fffaf0;--chip:#f2e9d6;--accent:#1f7a7a;--warn:#c4362b;--hl:#fff08a;--on-accent:#fff;--sticky:#fff3a6;--tape:rgba(240,150,170,.45);--ink-red:#c4362b;--ink-blue:#2f5d9e;--ink-green:#2e8a57;--ink-orange:#d0700e;--hand:"Nanum Pen Script","Gaegu","AppleMyungjo",serif;--polaroid:#fdfdfb;--polaroid-ink:#555;--polaroid-accent:#1f7a7a;--sans:-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Pretendard",sans-serif}
13
+ ` +
14
+ '@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .is-diary{' +
15
+ DARK_PALETTE +
16
+ '}}\n:root[data-theme="dark"] .is-diary{' +
17
+ DARK_PALETTE +
18
+ `}
19
+ .is-diary .main{--lh:1.85em;--mx:60px;max-width:52rem;margin:20px 0 40px;padding:32px 44px 96px calc(var(--mx) + 24px);font-size:1.0625rem;line-height:1.85;letter-spacing:-.005em;word-break:keep-all;overflow-wrap:break-word;background-color:var(--page);background-image:radial-gradient(circle at 26px 36px,var(--bg) 0 8px,transparent 9px),linear-gradient(90deg,transparent var(--mx),var(--margin) var(--mx),var(--margin) calc(var(--mx) + 1px),transparent calc(var(--mx) + 1px),transparent calc(var(--mx) + 4px),var(--margin) calc(var(--mx) + 4px),var(--margin) calc(var(--mx) + 5px),transparent calc(var(--mx) + 5px)),repeating-linear-gradient(transparent 0,transparent calc(var(--lh) - 1px),var(--rule) calc(var(--lh) - 1px),var(--rule) var(--lh));background-size:52px 72px,100% 100%,100% var(--lh);background-repeat:repeat-y,no-repeat,repeat;border-radius:3px 10px 10px 3px;box-shadow:0 1px 2px rgba(0,0,0,.08),0 12px 32px rgba(60,40,10,.12)}
20
+ .is-diary .head{padding-bottom:18px;border-bottom:2px dashed var(--line)}
21
+ .is-diary .head h1{font-family:var(--hand);font-weight:400;font-size:2.7em;line-height:1.15;letter-spacing:0;margin-top:8px}
22
+ .is-diary .head h1::before{display:block;width:max-content;margin-bottom:12px;padding:1px 10px;border:2px solid var(--warn);border-radius:6px;color:var(--warn);font-family:var(--sans);font-size:.26em;font-weight:800;letter-spacing:.2em;line-height:1.6;transform:rotate(-3deg)}
23
+ .is-diary .tools button,.is-diary .report-bar button:not([aria-pressed="true"]){background:none}
24
+ .is-diary .lead{border-left:0;padding:0;margin:30px 0 40px}
25
+ .is-diary .lead .q{font-family:var(--hand);font-size:1.55em;font-weight:400;line-height:1.3;color:var(--accent);margin:0 0 10px}
26
+ .is-diary .lead .q::before{content:"Q. "}
27
+ .is-diary .lead .q+p{font-size:1.08em;line-height:1.85;font-weight:500;margin:0 0 22px}
28
+ .is-diary .lead .takeaway{position:relative;margin:8px 4px 0;padding:18px 20px 14px;background:var(--sticky);color:var(--fg);font-family:var(--hand);font-size:1.45em;line-height:1.4;transform:rotate(-1deg);box-shadow:0 6px 14px rgba(0,0,0,.12)}
29
+ .is-diary .lead .takeaway::before{content:"";position:absolute;top:-11px;left:50%;width:96px;height:22px;margin-left:-48px;background:var(--tape);transform:rotate(2deg)}
30
+ .is-diary .coverage{margin-top:22px;padding:0;background:none;font-size:.8em}
31
+ .is-diary .glance{border:0;border-radius:0;background:none;padding:0;margin:0 0 40px}
32
+ .is-diary .glance h2,.is-diary .toc h2,.is-diary .extra h2{display:inline-block;font-family:var(--hand);font-size:1.7em;font-weight:400;letter-spacing:0;color:var(--fg);margin:0 0 6px;background:linear-gradient(transparent 58%,var(--hl) 58%,var(--hl) 92%,transparent 92%)}
33
+ .is-diary .glance dl{display:block;margin:0;border-top:0}
34
+ .is-diary .glance dl>div{display:grid;grid-template-columns:4.5em minmax(0,1fr);gap:12px;border-top:0;border-bottom:1px dashed var(--line);padding:8px 0}
35
+ .is-diary .glance dt{font-family:var(--hand);font-size:1.45em;font-weight:400;line-height:1.2;color:var(--accent)}
36
+ .is-diary .glance .glance-problem dt,.is-diary .glance .glance-claim dt{color:var(--ink-red)}
37
+ .is-diary .glance .glance-method dt,.is-diary .glance .glance-evidence dt{color:var(--ink-blue)}
38
+ .is-diary .glance .glance-result dt,.is-diary .glance .glance-topic dt{color:var(--ink-green)}
39
+ .is-diary .glance .glance-limit dt{color:var(--ink-orange)}
40
+ .is-diary .glance dd{margin:0}
41
+ .is-diary .glance .glance-limit dd{color:var(--muted)}
42
+ .is-diary .toc{border:0;background:none;padding:0;margin:0 0 48px}
43
+ .is-diary .toc ol{margin:0}
44
+ .is-diary .toc>ol>li{font-family:var(--hand);font-size:1.4em;line-height:1.45}
45
+ .is-diary .toc ol ol{padding-left:1.2em;margin-bottom:6px;font-family:var(--sans);font-size:.62em;line-height:1.9}
46
+ .is-diary .toc ol ol a{color:var(--muted)}
47
+ .is-diary .toc a:hover{color:var(--accent)}
48
+ .is-diary .sec{padding-top:30px;margin-top:24px;border-top:2px dashed var(--line)}
49
+ .is-diary .sec h2{font-family:var(--hand);font-size:2.3em;font-weight:400;line-height:1.2;letter-spacing:0;border-bottom:0;padding-bottom:0;margin:4px 0 12px}
50
+ .is-diary .sec h2 .num{display:inline-flex;align-items:center;justify-content:center;width:1.25em;height:1.25em;margin-right:.2em;border:2px solid var(--accent);border-radius:50%;color:var(--accent);font-size:.7em;vertical-align:.12em}
51
+ .is-diary .sub h3{font-family:var(--hand);font-size:1.65em;font-weight:400;line-height:1.25;margin:30px 0 4px}
52
+ .is-diary .sub h3 .num{color:var(--accent)}
53
+ .is-diary h2 .loc,.is-diary h3 .loc{font-family:var(--sans);font-size:.68rem;font-weight:500;vertical-align:.3em;margin-left:4px}
54
+ .is-diary .sec-intro{font-size:.92em}
55
+ .is-diary .conclusion{font-size:1.05em}
56
+ .is-diary .main ul{padding-left:1.2em}
57
+ .is-diary .main li{margin:4px 0}
58
+ .is-diary .main li::marker{color:var(--accent)}
59
+ .is-diary strong{background:linear-gradient(100deg,transparent 0,var(--hl) 4%,var(--hl) 96%,transparent 100%) 0 70%/100% 46% no-repeat}
60
+ .is-diary .cite{color:var(--muted);font-size:.7em}
61
+ .is-diary .cite:hover,.is-diary .cite[aria-expanded="true"]{color:var(--accent)}
62
+ .is-diary .doubt{margin:8px 0 10px;padding:8px 12px;border:1.5px dashed var(--warn);border-radius:10px;background:none;font-size:.9em}
63
+ .is-diary .doubt-badge{border:0;padding:0;margin-right:6px;font-family:var(--hand);font-size:1.35em;font-weight:400}
64
+ .is-diary .doubt-badge::before{content:"✎ "}
65
+ .is-diary .doubt .ev-list{display:flex;margin:6px 0 0}
66
+ .is-diary .src-table,.is-diary .src-figure{position:relative;border:0;border-radius:2px;background:var(--card);padding:20px 16px 12px;margin:30px 0;box-shadow:0 2px 8px rgba(0,0,0,.08)}
67
+ .is-diary .src-table::before,.is-diary .src-figure::before{content:"";position:absolute;top:-10px;left:22px;width:84px;height:20px;background:var(--tape);transform:rotate(-4deg)}
68
+ .is-diary .src-table figcaption,.is-diary .src-figure figcaption{color:var(--muted);font-size:.85em}
69
+ .is-diary .src-table figcaption b,.is-diary .src-figure figcaption b{font-family:var(--hand);font-size:1.45em;font-weight:400;color:var(--accent)}
70
+ .is-diary .src-grid th{font-weight:600}
71
+ .is-diary .limits{border:2px dashed var(--warn);border-radius:14px;background:none;padding:6px 18px 10px;margin:52px 0 24px}
72
+ .is-diary .limits h2{font-family:var(--hand);font-size:1.7em;font-weight:400}
73
+ .is-diary .limits h2::before{content:"✎ "}
74
+ .is-diary .ctx-card,.is-diary .kn-card{border-radius:6px}
75
+ .is-diary .extra{margin-top:44px;padding-top:12px;border-top:2px dashed var(--line);font-size:.88em;color:var(--muted)}
76
+ .is-diary .minimap a{width:8px;height:8px;border:0;background:var(--line);font-size:0}
77
+ .is-diary .minimap a.is-current{background:var(--accent);height:20px;border-radius:4px}
78
+ .is-diary .minimap{gap:8px}
79
+ .is-diary .doc-hl{background:color-mix(in srgb,var(--hl) 55%,transparent);outline:2px solid color-mix(in srgb,var(--accent) 75%,transparent)}
80
+ .is-diary .doc-hl.is-key{background:color-mix(in srgb,var(--hl) 80%,transparent)}
81
+ .is-diary .src-grid td.is-ref,.is-diary .thumb-hl{outline-color:var(--accent)}
82
+ .is-diary :focus-visible{outline:2px solid var(--accent);outline-offset:2px}
83
+ .is-lens .head h1::before{content:"읽기 렌즈";content:"읽기 렌즈" / ""}
84
+ .is-diary:not(.is-lens) .head h1::before{content:"영상 요약";content:"영상 요약" / ""}
85
+ .is-diary h2 .ts,.is-diary h3 .ts{display:inline-block;font-family:var(--sans);font-size:.68rem;font-weight:500;line-height:1.6;background:var(--chip);border-radius:4px;padding:0 5px;vertical-align:.3em;margin-left:4px}
86
+ .is-diary .ts{color:var(--accent)}
87
+ .is-diary .player{border-radius:6px;box-shadow:0 4px 14px rgba(0,0,0,.18)}
88
+ .is-diary .script{background:var(--page);border-color:var(--line);border-radius:10px;box-shadow:0 2px 10px rgba(0,0,0,.08)}
89
+ .is-diary .script h2{font-family:var(--hand);font-size:1.5em;font-weight:400;border-bottom-style:dashed}
90
+ .is-diary .script h2 small{font-family:var(--sans);font-size:.5em}
91
+ .is-diary .frame,.is-diary .shot{position:relative;background:var(--polaroid);padding:10px 10px 6px;box-shadow:0 4px 14px rgba(0,0,0,.16)}
92
+ .is-diary .frame{display:inline-block;max-width:min(100%,560px);margin:22px 0 16px;transform:rotate(-1deg)}
93
+ .is-diary .shot{transform:rotate(-.8deg)}
94
+ .is-diary .shot:nth-child(even){transform:rotate(.8deg)}
95
+ .is-diary .frame::before,.is-diary .shot::before{content:"";position:absolute;z-index:1;top:-10px;left:50%;width:84px;height:20px;margin-left:-42px;background:var(--tape);transform:rotate(3deg)}
96
+ .is-diary .frame img,.is-diary .shot img{border:0;border-radius:0;background:none;max-height:none}
97
+ .is-diary .frame figcaption,.is-diary .shot figcaption{margin-top:4px;color:var(--polaroid-ink);font-size:.9em}
98
+ .is-diary .frame figcaption{text-align:right}
99
+ .is-diary .frame figcaption :is(.ts,.cite),.is-diary .shot figcaption :is(.ts,.cite){color:var(--polaroid-accent)}
100
+ .is-diary .tabs [role="tab"]{font-family:var(--hand);font-size:1.4em;line-height:1.2}
101
+ .is-diary .ext h2{font-family:var(--hand);font-size:2.1em;font-weight:400;border-bottom:2px dashed var(--line)}
102
+ .is-diary .ext h3{font-family:var(--hand);font-size:1.55em;font-weight:400}
103
+ .is-diary .quiz-q{background:var(--card);border:1.5px dashed var(--line)}
104
+ @media (max-width:900px){
105
+ .is-diary .main{--mx:28px;max-width:none;margin:8px -8px 24px;padding-top:20px;padding-right:18px;padding-left:calc(var(--mx) + 12px);background-size:0 0,100% 100%,100% var(--lh);background-image:none,linear-gradient(90deg,transparent var(--mx),var(--margin) var(--mx),var(--margin) calc(var(--mx) + 1px),transparent calc(var(--mx) + 1px)),repeating-linear-gradient(transparent 0,transparent calc(var(--lh) - 1px),var(--rule) calc(var(--lh) - 1px),var(--rule) var(--lh))}
106
+ .is-diary .head h1{font-size:2.2em;margin-top:4px}
107
+ .is-diary .glance dl>div{grid-template-columns:3.6em minmax(0,1fr)}
108
+ .is-diary:not(.is-doc) .main{padding-bottom:calc(var(--float-w) * 9 / 16 + 32px + env(safe-area-inset-bottom, 0px))}
109
+ }
110
+ `;
111
+ //# sourceMappingURL=theme-diary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-diary.js","sourceRoot":"","sources":["../../../src/digest/theme-diary.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,sEAAsE;AACtE,MAAM,CAAC,MAAM,eAAe,GAC1B,wOAAwO,CAAC;AAE3O,8CAA8C;AAC9C,MAAM,YAAY,GAChB,4WAA4W,CAAC;AAE/W,MAAM,CAAC,MAAM,SAAS,GACpB;;CAED;IACC,+EAA+E;IAC/E,YAAY;IACZ,yCAAyC;IACzC,YAAY;IACZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4FD,CAAC"}
@@ -1,4 +1,10 @@
1
+ /** 테마 저장 키. VIEWER_JS의 setupTheme과 THEME_BOOT_JS가 같이 쓴다 */
2
+ export declare const THEME_STORAGE_KEY = "gestalt-digest-theme";
1
3
  export declare const VIEWER_JS: string;
2
4
  /** CSP script-src에 싣는 VIEWER_JS 해시. 렌더가 이 문자열을 그대로 인라인으로 싣는다 */
3
5
  export declare const VIEWER_JS_SHA256: string;
6
+ /** 첫 화면이 깜빡이지 않게 head에서 저장된 테마를 먼저 붙이는 스크립트. VIEWER_JS는 body 끝에서 돌아서 따로 둔다 */
7
+ export declare const THEME_BOOT_JS: string;
8
+ /** CSP script-src에 싣는 THEME_BOOT_JS 해시 */
9
+ export declare const THEME_BOOT_JS_SHA256: string;
4
10
  //# sourceMappingURL=viewer-js.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"viewer-js.d.ts","sourceRoot":"","sources":["../../../src/digest/viewer-js.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,SAAS,QAs1BrB,CAAC;AAEF,gEAAgE;AAChE,eAAO,MAAM,gBAAgB,QAAkE,CAAC"}
1
+ {"version":3,"file":"viewer-js.d.ts","sourceRoot":"","sources":["../../../src/digest/viewer-js.ts"],"names":[],"mappings":"AAGA,2DAA2D;AAC3D,eAAO,MAAM,iBAAiB,yBAAyB,CAAC;AAGxD,eAAO,MAAM,SAAS,QAs5BrB,CAAC;AAEF,gEAAgE;AAChE,eAAO,MAAM,gBAAgB,QAAkE,CAAC;AAEhG,8EAA8E;AAC9E,eAAO,MAAM,aAAa,QAGwE,CAAC;AAEnG,0CAA0C;AAC1C,eAAO,MAAM,oBAAoB,QAEd,CAAC"}
@@ -1,7 +1,12 @@
1
1
  import { createHash } from 'node:crypto';
2
2
  import { VIEWER_LOGIC_JS } from './viewer-logic.js';
3
- // 템플릿 리터럴 안이라 백틱과 달러 중괄호를 쓰지 않는다
3
+ /** 테마 저장 키. VIEWER_JS의 setupTheme과 THEME_BOOT_JS가 같이 쓴다 */
4
+ export const THEME_STORAGE_KEY = 'gestalt-digest-theme';
5
+ // 템플릿 리터럴 안이라 백틱과 달러 중괄호를 쓰지 않는다. 바깥 값은 문자열 연결로 끼운다
4
6
  export const VIEWER_JS = VIEWER_LOGIC_JS +
7
+ "var THEME_STORAGE_KEY = '" +
8
+ THEME_STORAGE_KEY +
9
+ "';" +
5
10
  `
6
11
  (function(){
7
12
  var dataEl = document.getElementById('digest-data');
@@ -52,6 +57,24 @@ export const VIEWER_JS = VIEWER_LOGIC_JS +
52
57
  if (range) range.addEventListener('input', function(){ setScale(range.value); });
53
58
  }
54
59
 
60
+ // 테마 전환. 자동이면 data-theme을 지워 OS 설정을 따르고 라이트와 다크는 고른 값을 기억한다.
61
+ // 첫 화면이 깜빡이지 않게 head의 짧은 스크립트가 저장된 값을 먼저 붙인다
62
+ function setupTheme() {
63
+ var THEME_KEY = THEME_STORAGE_KEY;
64
+ var btns = document.querySelectorAll('[data-theme-set]');
65
+ function setTheme(t) {
66
+ if (t !== 'light' && t !== 'dark') t = 'auto';
67
+ if (t === 'auto') root.removeAttribute('data-theme');
68
+ else root.setAttribute('data-theme', t);
69
+ btns.forEach(function(b){ b.setAttribute('aria-pressed', b.getAttribute('data-theme-set') === t ? 'true' : 'false'); });
70
+ try { if (t === 'auto') localStorage.removeItem(THEME_KEY); else localStorage.setItem(THEME_KEY, t); } catch (e) {}
71
+ }
72
+ var saved = 'auto';
73
+ try { saved = localStorage.getItem(THEME_KEY) || 'auto'; } catch (e) {}
74
+ setTheme(saved);
75
+ btns.forEach(function(b){ b.addEventListener('click', function(){ setTheme(b.getAttribute('data-theme-set')); }); });
76
+ }
77
+
55
78
  // 플레이어 어댑터. 유튜브와 로컬 영상이 같은 꼴을 내서 따라가기 코드는 둘을 가리지 않는다
56
79
  function createPlayer() {
57
80
  var player = { live: false, seek: function(){}, cue: function(){}, currentTime: function(){ return null; }, state: function(){ return -1; } };
@@ -193,7 +216,7 @@ export const VIEWER_JS = VIEWER_LOGIC_JS +
193
216
 
194
217
  // 글 자료의 원문 창. 문단 칩을 누르면 PDF는 그 쪽으로 가서 문단 자리를 칠하고 웹 글은 그 문단으로 스크롤한다
195
218
  function setupDocPane() {
196
- var api = { reveal: function(){} };
219
+ var api = { reveal: function(){}, closeSheet: function(){ return false; } };
197
220
  if (!data.doc) return api;
198
221
  var pagesBox = document.getElementById('doc-pages');
199
222
  var textBox = document.getElementById('script-body');
@@ -252,11 +275,53 @@ export const VIEWER_JS = VIEWER_LOGIC_JS +
252
275
  scrollWithin(textBox, li.offsetTop - textBox.clientHeight / 4);
253
276
  }
254
277
  };
278
+ // 좁은 화면에서는 원문 창이 시트로 접혀 있다. 문단 칩을 누르면 시트를 연 뒤 자리를 찾는다
279
+ // 900px은 render-lens.ts LENS_CSS의 시트 미디어 쿼리와 짝이다
280
+ var narrow = window.matchMedia ? window.matchMedia('(max-width: 900px)') : null;
281
+ var openBtn = document.getElementById('doc-open');
282
+ var side = document.getElementById('side');
283
+ var lastFocus = null;
284
+ function isSheetOpen() { return document.body.classList.contains('doc-sheet-open'); }
285
+ // 열 때는 닫기 버튼으로 포커스를 옮기고, 닫기 버튼과 Esc로 닫을 때만 연 자리로 되돌린다.
286
+ // 화면이 넓어져 닫힐 때는 사용자가 보던 자리를 건드리지 않는다
287
+ function setSheet(open, restore) {
288
+ var wasOpen = isSheetOpen();
289
+ if (open && !wasOpen) lastFocus = document.activeElement;
290
+ document.body.classList.toggle('doc-sheet-open', open);
291
+ if (openBtn) openBtn.setAttribute('aria-expanded', open ? 'true' : 'false');
292
+ if (open && !wasOpen) {
293
+ var closeBtn = side ? side.querySelector('.doc-close') : null;
294
+ if (closeBtn) closeBtn.focus();
295
+ } else if (!open && wasOpen && restore) {
296
+ var back = lastFocus && lastFocus.isConnected && lastFocus.getClientRects().length > 0 ? lastFocus : openBtn;
297
+ if (back) back.focus();
298
+ lastFocus = null;
299
+ }
300
+ }
301
+ function markDialog() {
302
+ if (!side) return;
303
+ if (narrow && narrow.matches) { side.setAttribute('role', 'dialog'); side.setAttribute('aria-label', '원문'); }
304
+ else { side.removeAttribute('role'); side.removeAttribute('aria-label'); }
305
+ }
306
+ markDialog();
307
+ if (narrow && narrow.addEventListener) narrow.addEventListener('change', function(){
308
+ markDialog();
309
+ if (!narrow.matches) setSheet(false, false);
310
+ });
311
+ if (openBtn) openBtn.addEventListener('click', function(){ setSheet(true); });
312
+ document.querySelectorAll('.doc-close').forEach(function(b){ b.addEventListener('click', function(){ setSheet(false, true); }); });
313
+ api.closeSheet = function() {
314
+ if (!isSheetOpen()) return false;
315
+ setSheet(false, true);
316
+ return true;
317
+ };
255
318
  document.addEventListener('click', function(ev){
256
319
  var el = ev.target.closest ? ev.target.closest('[data-unit]') : null;
257
320
  if (!el) return;
258
321
  ev.preventDefault();
259
322
  var i = Number(el.getAttribute('data-unit'));
323
+ var inSheet = el.closest && el.closest('#side');
324
+ if (narrow && narrow.matches && !inSheet) setSheet(true);
260
325
  api.reveal(i, i, i);
261
326
  });
262
327
  return api;
@@ -823,6 +888,7 @@ export const VIEWER_JS = VIEWER_LOGIC_JS +
823
888
  if (target && target.tagName.toLowerCase() === 'details') target.open = true;
824
889
  });
825
890
  setupFontScale();
891
+ setupTheme();
826
892
  setupTranslation();
827
893
  // 요약 앵커로 스크롤하려면 요약 패널이 먼저 보여야 해서 탭을 리포트보다 먼저 연다
828
894
  var tabs = setupTabs();
@@ -847,14 +913,22 @@ export const VIEWER_JS = VIEWER_LOGIC_JS +
847
913
  ev.preventDefault();
848
914
  el.dispatchEvent(new MouseEvent('click', { bubbles: true }));
849
915
  });
850
- // 툴팁과 메뉴, 미니 플레이어가 함께 열려 있으면 Escape 한 번에 하나씩 닫는다
916
+ // 툴팁과 원문 시트, 메뉴, 미니 플레이어가 함께 열려 있으면 Escape 한 번에 하나씩 닫는다
851
917
  document.addEventListener('keydown', function(ev){
852
918
  if (ev.key !== 'Escape' || zoom.isOpen()) return;
853
919
  if (popups.isOpen()) popups.closeAndReturn();
854
- else if (!more.close()) mini.close();
920
+ else if (!docPane.closeSheet() && !more.close()) mini.close();
855
921
  });
856
922
  })();
857
923
  `;
858
924
  /** CSP script-src에 싣는 VIEWER_JS 해시. 렌더가 이 문자열을 그대로 인라인으로 싣는다 */
859
925
  export const VIEWER_JS_SHA256 = createHash('sha256').update(VIEWER_JS, 'utf8').digest('base64');
926
+ /** 첫 화면이 깜빡이지 않게 head에서 저장된 테마를 먼저 붙이는 스크립트. VIEWER_JS는 body 끝에서 돌아서 따로 둔다 */
927
+ export const THEME_BOOT_JS = "try{var t=localStorage.getItem('" +
928
+ THEME_STORAGE_KEY +
929
+ "');if(t==='light'||t==='dark')document.documentElement.setAttribute('data-theme',t)}catch(e){}";
930
+ /** CSP script-src에 싣는 THEME_BOOT_JS 해시 */
931
+ export const THEME_BOOT_JS_SHA256 = createHash('sha256')
932
+ .update(THEME_BOOT_JS, 'utf8')
933
+ .digest('base64');
860
934
  //# sourceMappingURL=viewer-js.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"viewer-js.js","sourceRoot":"","sources":["../../../src/digest/viewer-js.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,iCAAiC;AACjC,MAAM,CAAC,MAAM,SAAS,GACpB,eAAe;IACf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAo1BD,CAAC;AAEF,gEAAgE;AAChE,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC"}
1
+ {"version":3,"file":"viewer-js.js","sourceRoot":"","sources":["../../../src/digest/viewer-js.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,2DAA2D;AAC3D,MAAM,CAAC,MAAM,iBAAiB,GAAG,sBAAsB,CAAC;AAExD,oDAAoD;AACpD,MAAM,CAAC,MAAM,SAAS,GACpB,eAAe;IACf,2BAA2B;IAC3B,iBAAiB;IACjB,IAAI;IACJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAi5BD,CAAC;AAEF,gEAAgE;AAChE,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAEhG,8EAA8E;AAC9E,MAAM,CAAC,MAAM,aAAa,GACxB,kCAAkC;IAClC,iBAAiB;IACjB,gGAAgG,CAAC;AAEnG,0CAA0C;AAC1C,MAAM,CAAC,MAAM,oBAAoB,GAAG,UAAU,CAAC,QAAQ,CAAC;KACrD,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC;KAC7B,MAAM,CAAC,QAAQ,CAAC,CAAC"}