@inkandswitch/patchwork-pkg-base 0.0.17 → 0.0.19

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 (384) hide show
  1. package/init.js +0 -1
  2. package/modules.json +1 -11
  3. package/package.json +1 -1
  4. package/packages/raw/raw-editor.js +2 -2
  5. package/packages/account-picker/dist/AccountPicker-7VBUJTTB.js +0 -8860
  6. package/packages/account-picker/dist/AccountPicker-7VBUJTTB.js.map +0 -7
  7. package/packages/account-picker/dist/AccountPicker-CN73XGEW.css +0 -371
  8. package/packages/account-picker/dist/AccountPicker-CN73XGEW.css.map +0 -7
  9. package/packages/account-picker/dist/chunk-5WRI5ZAA.js +0 -31
  10. package/packages/account-picker/dist/chunk-5WRI5ZAA.js.map +0 -7
  11. package/packages/account-picker/dist/tool.css +0 -371
  12. package/packages/account-picker/dist/tool.css.map +0 -7
  13. package/packages/account-picker/dist/tool.js +0 -19
  14. package/packages/account-picker/dist/tool.js.map +0 -7
  15. package/packages/account-picker/package.json +0 -39
  16. package/packages/codemirror-base/dist/chunk-KMEIRH3R.js +0 -490
  17. package/packages/codemirror-base/dist/chunk-KMEIRH3R.js.map +0 -7
  18. package/packages/codemirror-base/dist/lib/codemirror.js +0 -7
  19. package/packages/codemirror-base/dist/lib/codemirror.js.map +0 -7
  20. package/packages/codemirror-base/dist/main.js +0 -17
  21. package/packages/codemirror-base/dist/main.js.map +0 -7
  22. package/packages/codemirror-base/dist/tool.js +0 -1799
  23. package/packages/codemirror-base/dist/tool.js.map +0 -7
  24. package/packages/codemirror-base/package.json +0 -55
  25. package/packages/codemirror-markdown/dist/apl-QAIM2KBM.js +0 -142
  26. package/packages/codemirror-markdown/dist/apl-QAIM2KBM.js.map +0 -7
  27. package/packages/codemirror-markdown/dist/asciiarmor-G7UKQURA.js +0 -58
  28. package/packages/codemirror-markdown/dist/asciiarmor-G7UKQURA.js.map +0 -7
  29. package/packages/codemirror-markdown/dist/asn1-JTUXKWKT.js +0 -144
  30. package/packages/codemirror-markdown/dist/asn1-JTUXKWKT.js.map +0 -7
  31. package/packages/codemirror-markdown/dist/asterisk-NM6JCXOL.js +0 -351
  32. package/packages/codemirror-markdown/dist/asterisk-NM6JCXOL.js.map +0 -7
  33. package/packages/codemirror-markdown/dist/brainfuck-X7FFM55E.js +0 -55
  34. package/packages/codemirror-markdown/dist/brainfuck-X7FFM55E.js.map +0 -7
  35. package/packages/codemirror-markdown/dist/chunk-46Z6CXSY.js +0 -1062
  36. package/packages/codemirror-markdown/dist/chunk-46Z6CXSY.js.map +0 -7
  37. package/packages/codemirror-markdown/dist/chunk-6JT2ASRP.js +0 -1111
  38. package/packages/codemirror-markdown/dist/chunk-6JT2ASRP.js.map +0 -7
  39. package/packages/codemirror-markdown/dist/chunk-CSJO4DNL.js +0 -1424
  40. package/packages/codemirror-markdown/dist/chunk-CSJO4DNL.js.map +0 -7
  41. package/packages/codemirror-markdown/dist/chunk-FLC3A4DL.js +0 -133
  42. package/packages/codemirror-markdown/dist/chunk-FLC3A4DL.js.map +0 -7
  43. package/packages/codemirror-markdown/dist/chunk-M3X2FRO3.js +0 -998
  44. package/packages/codemirror-markdown/dist/chunk-M3X2FRO3.js.map +0 -7
  45. package/packages/codemirror-markdown/dist/chunk-MAW6NPUW.js +0 -4930
  46. package/packages/codemirror-markdown/dist/chunk-MAW6NPUW.js.map +0 -7
  47. package/packages/codemirror-markdown/dist/chunk-MBTMKYFQ.js +0 -1779
  48. package/packages/codemirror-markdown/dist/chunk-MBTMKYFQ.js.map +0 -7
  49. package/packages/codemirror-markdown/dist/chunk-NEI7FGV4.js +0 -697
  50. package/packages/codemirror-markdown/dist/chunk-NEI7FGV4.js.map +0 -7
  51. package/packages/codemirror-markdown/dist/chunk-PPGERYN5.js +0 -2528
  52. package/packages/codemirror-markdown/dist/chunk-PPGERYN5.js.map +0 -7
  53. package/packages/codemirror-markdown/dist/clike-DOBZTBQN.js +0 -808
  54. package/packages/codemirror-markdown/dist/clike-DOBZTBQN.js.map +0 -7
  55. package/packages/codemirror-markdown/dist/clojure-PTADSDNF.js +0 -851
  56. package/packages/codemirror-markdown/dist/clojure-PTADSDNF.js.map +0 -7
  57. package/packages/codemirror-markdown/dist/cmake-5HAC7YMH.js +0 -73
  58. package/packages/codemirror-markdown/dist/cmake-5HAC7YMH.js.map +0 -7
  59. package/packages/codemirror-markdown/dist/cobol-HAM4C42S.js +0 -131
  60. package/packages/codemirror-markdown/dist/cobol-HAM4C42S.js.map +0 -7
  61. package/packages/codemirror-markdown/dist/coffeescript-IBRKASSJ.js +0 -310
  62. package/packages/codemirror-markdown/dist/coffeescript-IBRKASSJ.js.map +0 -7
  63. package/packages/codemirror-markdown/dist/commonlisp-KMRPB5EW.js +0 -132
  64. package/packages/codemirror-markdown/dist/commonlisp-KMRPB5EW.js.map +0 -7
  65. package/packages/codemirror-markdown/dist/crystal-2MDF4EKJ.js +0 -400
  66. package/packages/codemirror-markdown/dist/crystal-2MDF4EKJ.js.map +0 -7
  67. package/packages/codemirror-markdown/dist/css-VQQXA3AY.js +0 -1795
  68. package/packages/codemirror-markdown/dist/css-VQQXA3AY.js.map +0 -7
  69. package/packages/codemirror-markdown/dist/cypher-ZZEGDGDJ.js +0 -123
  70. package/packages/codemirror-markdown/dist/cypher-ZZEGDGDJ.js.map +0 -7
  71. package/packages/codemirror-markdown/dist/d-5S6PJOOT.js +0 -187
  72. package/packages/codemirror-markdown/dist/d-5S6PJOOT.js.map +0 -7
  73. package/packages/codemirror-markdown/dist/datatype.js +0 -48
  74. package/packages/codemirror-markdown/dist/datatype.js.map +0 -7
  75. package/packages/codemirror-markdown/dist/diff-S77XBOWF.js +0 -27
  76. package/packages/codemirror-markdown/dist/diff-S77XBOWF.js.map +0 -7
  77. package/packages/codemirror-markdown/dist/dist-2C6IPJHB.js +0 -98
  78. package/packages/codemirror-markdown/dist/dist-2C6IPJHB.js.map +0 -7
  79. package/packages/codemirror-markdown/dist/dist-2H653DKD.js +0 -170
  80. package/packages/codemirror-markdown/dist/dist-2H653DKD.js.map +0 -7
  81. package/packages/codemirror-markdown/dist/dist-2O4EI6YQ.js +0 -140
  82. package/packages/codemirror-markdown/dist/dist-2O4EI6YQ.js.map +0 -7
  83. package/packages/codemirror-markdown/dist/dist-2UJRV4FH.js +0 -75
  84. package/packages/codemirror-markdown/dist/dist-2UJRV4FH.js.map +0 -7
  85. package/packages/codemirror-markdown/dist/dist-52S6W6Z3.js +0 -15
  86. package/packages/codemirror-markdown/dist/dist-52S6W6Z3.js.map +0 -7
  87. package/packages/codemirror-markdown/dist/dist-5KN6ODPO.js +0 -340
  88. package/packages/codemirror-markdown/dist/dist-5KN6ODPO.js.map +0 -7
  89. package/packages/codemirror-markdown/dist/dist-BOGB4NCA.js +0 -20
  90. package/packages/codemirror-markdown/dist/dist-BOGB4NCA.js.map +0 -7
  91. package/packages/codemirror-markdown/dist/dist-DZ4PW5HP.js +0 -318
  92. package/packages/codemirror-markdown/dist/dist-DZ4PW5HP.js.map +0 -7
  93. package/packages/codemirror-markdown/dist/dist-FDBKXKIA.js +0 -100
  94. package/packages/codemirror-markdown/dist/dist-FDBKXKIA.js.map +0 -7
  95. package/packages/codemirror-markdown/dist/dist-G2KVVLNT.js +0 -381
  96. package/packages/codemirror-markdown/dist/dist-G2KVVLNT.js.map +0 -7
  97. package/packages/codemirror-markdown/dist/dist-HHNZE2GE.js +0 -193
  98. package/packages/codemirror-markdown/dist/dist-HHNZE2GE.js.map +0 -7
  99. package/packages/codemirror-markdown/dist/dist-HNH74YPL.js +0 -32
  100. package/packages/codemirror-markdown/dist/dist-HNH74YPL.js.map +0 -7
  101. package/packages/codemirror-markdown/dist/dist-LBQUKRIG.js +0 -27
  102. package/packages/codemirror-markdown/dist/dist-LBQUKRIG.js.map +0 -7
  103. package/packages/codemirror-markdown/dist/dist-MFKCWPLQ.js +0 -416
  104. package/packages/codemirror-markdown/dist/dist-MFKCWPLQ.js.map +0 -7
  105. package/packages/codemirror-markdown/dist/dist-NISFJM3T.js +0 -423
  106. package/packages/codemirror-markdown/dist/dist-NISFJM3T.js.map +0 -7
  107. package/packages/codemirror-markdown/dist/dist-Q7P6VH6H.js +0 -786
  108. package/packages/codemirror-markdown/dist/dist-Q7P6VH6H.js.map +0 -7
  109. package/packages/codemirror-markdown/dist/dist-RWF5A5GN.js +0 -451
  110. package/packages/codemirror-markdown/dist/dist-RWF5A5GN.js.map +0 -7
  111. package/packages/codemirror-markdown/dist/dist-UHUU7KLC.js +0 -748
  112. package/packages/codemirror-markdown/dist/dist-UHUU7KLC.js.map +0 -7
  113. package/packages/codemirror-markdown/dist/dist-WJMBFK7W.js +0 -360
  114. package/packages/codemirror-markdown/dist/dist-WJMBFK7W.js.map +0 -7
  115. package/packages/codemirror-markdown/dist/dist-XJYSXJ7H.js +0 -115
  116. package/packages/codemirror-markdown/dist/dist-XJYSXJ7H.js.map +0 -7
  117. package/packages/codemirror-markdown/dist/dist-YY24ZXZD.js +0 -212
  118. package/packages/codemirror-markdown/dist/dist-YY24ZXZD.js.map +0 -7
  119. package/packages/codemirror-markdown/dist/dockerfile-JECCOJWP.js +0 -209
  120. package/packages/codemirror-markdown/dist/dockerfile-JECCOJWP.js.map +0 -7
  121. package/packages/codemirror-markdown/dist/dtd-MNDWTW4Z.js +0 -116
  122. package/packages/codemirror-markdown/dist/dtd-MNDWTW4Z.js.map +0 -7
  123. package/packages/codemirror-markdown/dist/dylan-VQ4IHJDS.js +0 -317
  124. package/packages/codemirror-markdown/dist/dylan-VQ4IHJDS.js.map +0 -7
  125. package/packages/codemirror-markdown/dist/ebnf-IDZBFTCG.js +0 -142
  126. package/packages/codemirror-markdown/dist/ebnf-IDZBFTCG.js.map +0 -7
  127. package/packages/codemirror-markdown/dist/ecl-X3ROY7E6.js +0 -180
  128. package/packages/codemirror-markdown/dist/ecl-X3ROY7E6.js.map +0 -7
  129. package/packages/codemirror-markdown/dist/eiffel-WB3M7Y2E.js +0 -136
  130. package/packages/codemirror-markdown/dist/eiffel-WB3M7Y2E.js.map +0 -7
  131. package/packages/codemirror-markdown/dist/elm-VHXR6ZA3.js +0 -178
  132. package/packages/codemirror-markdown/dist/elm-VHXR6ZA3.js.map +0 -7
  133. package/packages/codemirror-markdown/dist/erlang-7ZBDDQDV.js +0 -676
  134. package/packages/codemirror-markdown/dist/erlang-7ZBDDQDV.js.map +0 -7
  135. package/packages/codemirror-markdown/dist/extensions/embed.js +0 -325
  136. package/packages/codemirror-markdown/dist/extensions/embed.js.map +0 -7
  137. package/packages/codemirror-markdown/dist/extensions/links.js +0 -118
  138. package/packages/codemirror-markdown/dist/extensions/links.js.map +0 -7
  139. package/packages/codemirror-markdown/dist/extensions/markdown.js +0 -3476
  140. package/packages/codemirror-markdown/dist/extensions/markdown.js.map +0 -7
  141. package/packages/codemirror-markdown/dist/factor-IKT2GQE2.js +0 -70
  142. package/packages/codemirror-markdown/dist/factor-IKT2GQE2.js.map +0 -7
  143. package/packages/codemirror-markdown/dist/fcl-CNBUVGUC.js +0 -143
  144. package/packages/codemirror-markdown/dist/fcl-CNBUVGUC.js.map +0 -7
  145. package/packages/codemirror-markdown/dist/forth-4BTPWSFZ.js +0 -118
  146. package/packages/codemirror-markdown/dist/forth-4BTPWSFZ.js.map +0 -7
  147. package/packages/codemirror-markdown/dist/fortran-V6F5DQPK.js +0 -469
  148. package/packages/codemirror-markdown/dist/fortran-V6F5DQPK.js.map +0 -7
  149. package/packages/codemirror-markdown/dist/gas-4DLP6BC4.js +0 -296
  150. package/packages/codemirror-markdown/dist/gas-4DLP6BC4.js.map +0 -7
  151. package/packages/codemirror-markdown/dist/gherkin-OSGPX6HI.js +0 -117
  152. package/packages/codemirror-markdown/dist/gherkin-OSGPX6HI.js.map +0 -7
  153. package/packages/codemirror-markdown/dist/groovy-R2JW63QF.js +0 -225
  154. package/packages/codemirror-markdown/dist/groovy-R2JW63QF.js.map +0 -7
  155. package/packages/codemirror-markdown/dist/haskell-GG7T4J6H.js +0 -461
  156. package/packages/codemirror-markdown/dist/haskell-GG7T4J6H.js.map +0 -7
  157. package/packages/codemirror-markdown/dist/haxe-ESFUJKSE.js +0 -521
  158. package/packages/codemirror-markdown/dist/haxe-ESFUJKSE.js.map +0 -7
  159. package/packages/codemirror-markdown/dist/http-SZLSACOW.js +0 -81
  160. package/packages/codemirror-markdown/dist/http-SZLSACOW.js.map +0 -7
  161. package/packages/codemirror-markdown/dist/idl-V7UH35RP.js +0 -987
  162. package/packages/codemirror-markdown/dist/idl-V7UH35RP.js.map +0 -7
  163. package/packages/codemirror-markdown/dist/javascript-MGRPKFDN.js +0 -13
  164. package/packages/codemirror-markdown/dist/javascript-MGRPKFDN.js.map +0 -7
  165. package/packages/codemirror-markdown/dist/julia-CWCVZVPG.js +0 -409
  166. package/packages/codemirror-markdown/dist/julia-CWCVZVPG.js.map +0 -7
  167. package/packages/codemirror-markdown/dist/livescript-IGKT2FL7.js +0 -303
  168. package/packages/codemirror-markdown/dist/livescript-IGKT2FL7.js.map +0 -7
  169. package/packages/codemirror-markdown/dist/lua-GHK7GCTS.js +0 -258
  170. package/packages/codemirror-markdown/dist/lua-GHK7GCTS.js.map +0 -7
  171. package/packages/codemirror-markdown/dist/main.js +0 -58
  172. package/packages/codemirror-markdown/dist/main.js.map +0 -7
  173. package/packages/codemirror-markdown/dist/mathematica-W5LMQI3M.js +0 -112
  174. package/packages/codemirror-markdown/dist/mathematica-W5LMQI3M.js.map +0 -7
  175. package/packages/codemirror-markdown/dist/mbox-A7CXJ4HZ.js +0 -119
  176. package/packages/codemirror-markdown/dist/mbox-A7CXJ4HZ.js.map +0 -7
  177. package/packages/codemirror-markdown/dist/mirc-WYJEQUBY.js +0 -109
  178. package/packages/codemirror-markdown/dist/mirc-WYJEQUBY.js.map +0 -7
  179. package/packages/codemirror-markdown/dist/mllike-C2YS6SJI.js +0 -340
  180. package/packages/codemirror-markdown/dist/mllike-C2YS6SJI.js.map +0 -7
  181. package/packages/codemirror-markdown/dist/modelica-BMJSLZS7.js +0 -149
  182. package/packages/codemirror-markdown/dist/modelica-BMJSLZS7.js.map +0 -7
  183. package/packages/codemirror-markdown/dist/mscgen-5BORDYHW.js +0 -137
  184. package/packages/codemirror-markdown/dist/mscgen-5BORDYHW.js.map +0 -7
  185. package/packages/codemirror-markdown/dist/mumps-BYE6H7ZX.js +0 -95
  186. package/packages/codemirror-markdown/dist/mumps-BYE6H7ZX.js.map +0 -7
  187. package/packages/codemirror-markdown/dist/nginx-Y54HR7MQ.js +0 -143
  188. package/packages/codemirror-markdown/dist/nginx-Y54HR7MQ.js.map +0 -7
  189. package/packages/codemirror-markdown/dist/nsis-UZLPE2DL.js +0 -67
  190. package/packages/codemirror-markdown/dist/nsis-UZLPE2DL.js.map +0 -7
  191. package/packages/codemirror-markdown/dist/ntriples-SAI3J2VH.js +0 -155
  192. package/packages/codemirror-markdown/dist/ntriples-SAI3J2VH.js.map +0 -7
  193. package/packages/codemirror-markdown/dist/octave-TLUBYOUX.js +0 -213
  194. package/packages/codemirror-markdown/dist/octave-TLUBYOUX.js.map +0 -7
  195. package/packages/codemirror-markdown/dist/oz-F6LNIR6Q.js +0 -233
  196. package/packages/codemirror-markdown/dist/oz-F6LNIR6Q.js.map +0 -7
  197. package/packages/codemirror-markdown/dist/pascal-WINE2FE6.js +0 -107
  198. package/packages/codemirror-markdown/dist/pascal-WINE2FE6.js.map +0 -7
  199. package/packages/codemirror-markdown/dist/perl-NZG3EIBE.js +0 -1107
  200. package/packages/codemirror-markdown/dist/perl-NZG3EIBE.js.map +0 -7
  201. package/packages/codemirror-markdown/dist/pig-U7OFLRCV.js +0 -105
  202. package/packages/codemirror-markdown/dist/pig-U7OFLRCV.js.map +0 -7
  203. package/packages/codemirror-markdown/dist/powershell-ZSUS7P6D.js +0 -330
  204. package/packages/codemirror-markdown/dist/powershell-ZSUS7P6D.js.map +0 -7
  205. package/packages/codemirror-markdown/dist/properties-IJRU6UJW.js +0 -60
  206. package/packages/codemirror-markdown/dist/properties-IJRU6UJW.js.map +0 -7
  207. package/packages/codemirror-markdown/dist/protobuf-2KETQIQ5.js +0 -80
  208. package/packages/codemirror-markdown/dist/protobuf-2KETQIQ5.js.map +0 -7
  209. package/packages/codemirror-markdown/dist/pug-IQCJJAZU.js +0 -410
  210. package/packages/codemirror-markdown/dist/pug-IQCJJAZU.js.map +0 -7
  211. package/packages/codemirror-markdown/dist/puppet-YIIDDH6A.js +0 -139
  212. package/packages/codemirror-markdown/dist/puppet-YIIDDH6A.js.map +0 -7
  213. package/packages/codemirror-markdown/dist/python-A6P3XTMX.js +0 -429
  214. package/packages/codemirror-markdown/dist/python-A6P3XTMX.js.map +0 -7
  215. package/packages/codemirror-markdown/dist/q-2KXN5RX7.js +0 -135
  216. package/packages/codemirror-markdown/dist/q-2KXN5RX7.js.map +0 -7
  217. package/packages/codemirror-markdown/dist/r-BB4MIIBH.js +0 -174
  218. package/packages/codemirror-markdown/dist/r-BB4MIIBH.js.map +0 -7
  219. package/packages/codemirror-markdown/dist/rpm-LMR25AQ3.js +0 -111
  220. package/packages/codemirror-markdown/dist/rpm-LMR25AQ3.js.map +0 -7
  221. package/packages/codemirror-markdown/dist/ruby-TSD6FT73.js +0 -333
  222. package/packages/codemirror-markdown/dist/ruby-TSD6FT73.js.map +0 -7
  223. package/packages/codemirror-markdown/dist/sas-6X4WWIGV.js +0 -209
  224. package/packages/codemirror-markdown/dist/sas-6X4WWIGV.js.map +0 -7
  225. package/packages/codemirror-markdown/dist/scheme-E3I46HBL.js +0 -230
  226. package/packages/codemirror-markdown/dist/scheme-E3I46HBL.js.map +0 -7
  227. package/packages/codemirror-markdown/dist/shell-GX3PRI4I.js +0 -224
  228. package/packages/codemirror-markdown/dist/shell-GX3PRI4I.js.map +0 -7
  229. package/packages/codemirror-markdown/dist/sieve-V65ZPL4F.js +0 -137
  230. package/packages/codemirror-markdown/dist/sieve-V65ZPL4F.js.map +0 -7
  231. package/packages/codemirror-markdown/dist/smalltalk-OVKP2CVW.js +0 -123
  232. package/packages/codemirror-markdown/dist/smalltalk-OVKP2CVW.js.map +0 -7
  233. package/packages/codemirror-markdown/dist/solr-C4DLQJCF.js +0 -71
  234. package/packages/codemirror-markdown/dist/solr-C4DLQJCF.js.map +0 -7
  235. package/packages/codemirror-markdown/dist/sparql-REKUW7B3.js +0 -251
  236. package/packages/codemirror-markdown/dist/sparql-REKUW7B3.js.map +0 -7
  237. package/packages/codemirror-markdown/dist/spreadsheet-S7NN2YTQ.js +0 -89
  238. package/packages/codemirror-markdown/dist/spreadsheet-S7NN2YTQ.js.map +0 -7
  239. package/packages/codemirror-markdown/dist/sql-ML2Q43YF.js +0 -358
  240. package/packages/codemirror-markdown/dist/sql-ML2Q43YF.js.map +0 -7
  241. package/packages/codemirror-markdown/dist/stex-TCOGKBT4.js +0 -233
  242. package/packages/codemirror-markdown/dist/stex-TCOGKBT4.js.map +0 -7
  243. package/packages/codemirror-markdown/dist/stylus-3ONNYZOM.js +0 -591
  244. package/packages/codemirror-markdown/dist/stylus-3ONNYZOM.js.map +0 -7
  245. package/packages/codemirror-markdown/dist/swift-CNWGZ22Y.js +0 -293
  246. package/packages/codemirror-markdown/dist/swift-CNWGZ22Y.js.map +0 -7
  247. package/packages/codemirror-markdown/dist/tcl-77IMAZYE.js +0 -116
  248. package/packages/codemirror-markdown/dist/tcl-77IMAZYE.js.map +0 -7
  249. package/packages/codemirror-markdown/dist/textile-6IWIIKFM.js +0 -416
  250. package/packages/codemirror-markdown/dist/textile-6IWIIKFM.js.map +0 -7
  251. package/packages/codemirror-markdown/dist/tiddlywiki-IJSZMUSA.js +0 -231
  252. package/packages/codemirror-markdown/dist/tiddlywiki-IJSZMUSA.js.map +0 -7
  253. package/packages/codemirror-markdown/dist/tiki-HG37JJIT.js +0 -276
  254. package/packages/codemirror-markdown/dist/tiki-HG37JJIT.js.map +0 -7
  255. package/packages/codemirror-markdown/dist/toml-NINU2IMM.js +0 -78
  256. package/packages/codemirror-markdown/dist/toml-NINU2IMM.js.map +0 -7
  257. package/packages/codemirror-markdown/dist/troff-AOQJ4Q4C.js +0 -63
  258. package/packages/codemirror-markdown/dist/troff-AOQJ4Q4C.js.map +0 -7
  259. package/packages/codemirror-markdown/dist/ttcn-TLOZ3FX3.js +0 -211
  260. package/packages/codemirror-markdown/dist/ttcn-TLOZ3FX3.js.map +0 -7
  261. package/packages/codemirror-markdown/dist/ttcn-cfg-3B6QY7QE.js +0 -141
  262. package/packages/codemirror-markdown/dist/ttcn-cfg-3B6QY7QE.js.map +0 -7
  263. package/packages/codemirror-markdown/dist/turtle-3N5KCGXP.js +0 -132
  264. package/packages/codemirror-markdown/dist/turtle-3N5KCGXP.js.map +0 -7
  265. package/packages/codemirror-markdown/dist/vb-I7M5DRLP.js +0 -204
  266. package/packages/codemirror-markdown/dist/vb-I7M5DRLP.js.map +0 -7
  267. package/packages/codemirror-markdown/dist/vbscript-U2ARSJLD.js +0 -482
  268. package/packages/codemirror-markdown/dist/vbscript-U2ARSJLD.js.map +0 -7
  269. package/packages/codemirror-markdown/dist/velocity-R3AYP5XJ.js +0 -151
  270. package/packages/codemirror-markdown/dist/velocity-R3AYP5XJ.js.map +0 -7
  271. package/packages/codemirror-markdown/dist/verilog-7VEWVDW6.js +0 -456
  272. package/packages/codemirror-markdown/dist/verilog-7VEWVDW6.js.map +0 -7
  273. package/packages/codemirror-markdown/dist/vhdl-JZUPPGBA.js +0 -162
  274. package/packages/codemirror-markdown/dist/vhdl-JZUPPGBA.js.map +0 -7
  275. package/packages/codemirror-markdown/dist/webidl-SLQFEELK.js +0 -206
  276. package/packages/codemirror-markdown/dist/webidl-SLQFEELK.js.map +0 -7
  277. package/packages/codemirror-markdown/dist/xquery-VXP5KJ6N.js +0 -532
  278. package/packages/codemirror-markdown/dist/xquery-VXP5KJ6N.js.map +0 -7
  279. package/packages/codemirror-markdown/dist/yacas-JRBC4BEV.js +0 -132
  280. package/packages/codemirror-markdown/dist/yacas-JRBC4BEV.js.map +0 -7
  281. package/packages/codemirror-markdown/dist/z80-AJF6WLUV.js +0 -95
  282. package/packages/codemirror-markdown/dist/z80-AJF6WLUV.js.map +0 -7
  283. package/packages/codemirror-markdown/example.js +0 -46
  284. package/packages/codemirror-markdown/package.json +0 -62
  285. package/packages/commands/dist/main.js +0 -504
  286. package/packages/commands/dist/main.js.map +0 -7
  287. package/packages/commands/package.json +0 -28
  288. package/packages/contact/dist/ContactAvatar-FP32ZZH2.js +0 -161
  289. package/packages/contact/dist/ContactAvatar-FP32ZZH2.js.map +0 -7
  290. package/packages/contact/dist/ContactViewer-ZHEE6INW.js +0 -60
  291. package/packages/contact/dist/ContactViewer-ZHEE6INW.js.map +0 -7
  292. package/packages/contact/dist/InlineContactAvatar-VZDPEZV2.js +0 -46
  293. package/packages/contact/dist/InlineContactAvatar-VZDPEZV2.js.map +0 -7
  294. package/packages/contact/dist/chunk-MOZI4Y4O.js +0 -54
  295. package/packages/contact/dist/chunk-MOZI4Y4O.js.map +0 -7
  296. package/packages/contact/dist/datatype-ABVDVPWS.js +0 -27
  297. package/packages/contact/dist/datatype-ABVDVPWS.js.map +0 -7
  298. package/packages/contact/dist/tool.css +0 -81
  299. package/packages/contact/dist/tool.css.map +0 -7
  300. package/packages/contact/dist/tool.js +0 -70
  301. package/packages/contact/dist/tool.js.map +0 -7
  302. package/packages/contact/package.json +0 -46
  303. package/packages/folder/dist/datatype-HWGUFBTQ.js +0 -27
  304. package/packages/folder/dist/datatype-HWGUFBTQ.js.map +0 -7
  305. package/packages/folder/dist/index.js +0 -27
  306. package/packages/folder/dist/index.js.map +0 -7
  307. package/packages/folder/dist/tool-62JZAZRP.js +0 -366
  308. package/packages/folder/dist/tool-62JZAZRP.js.map +0 -7
  309. package/packages/folder/package.json +0 -32
  310. package/packages/sideboard/dist/account-bar-OJQC3J6W.js +0 -2
  311. package/packages/sideboard/dist/account-bar-OJQC3J6W.js.map +0 -7
  312. package/packages/sideboard/dist/chunk-32FICX7K.js +0 -26
  313. package/packages/sideboard/dist/chunk-32FICX7K.js.map +0 -7
  314. package/packages/sideboard/dist/chunk-3OYP6TVA.js +0 -2
  315. package/packages/sideboard/dist/chunk-3OYP6TVA.js.map +0 -7
  316. package/packages/sideboard/dist/chunk-FW4363Y4.js +0 -2
  317. package/packages/sideboard/dist/chunk-FW4363Y4.js.map +0 -7
  318. package/packages/sideboard/dist/chunk-QKYKEZU4.js +0 -2
  319. package/packages/sideboard/dist/chunk-QKYKEZU4.js.map +0 -7
  320. package/packages/sideboard/dist/document-list-panel-42LSXXCO.js +0 -2
  321. package/packages/sideboard/dist/document-list-panel-42LSXXCO.js.map +0 -7
  322. package/packages/sideboard/dist/index.css +0 -2
  323. package/packages/sideboard/dist/index.css.map +0 -7
  324. package/packages/sideboard/dist/index.js +0 -2
  325. package/packages/sideboard/dist/index.js.map +0 -7
  326. package/packages/sideboard/dist/sideboard/sideboard.js +0 -2
  327. package/packages/sideboard/dist/sideboard/sideboard.js.map +0 -7
  328. package/packages/sideboard/package.json +0 -56
  329. package/packages/theming/dist/active-theme-K27UXDBG.js +0 -26
  330. package/packages/theming/dist/active-theme-K27UXDBG.js.map +0 -7
  331. package/packages/theming/dist/chunk-K4OOO2TK.js +0 -281
  332. package/packages/theming/dist/chunk-K4OOO2TK.js.map +0 -7
  333. package/packages/theming/dist/chunk-RATW7VZI.js +0 -11
  334. package/packages/theming/dist/chunk-RATW7VZI.js.map +0 -7
  335. package/packages/theming/dist/chunk-U7SC4JPE.js +0 -86
  336. package/packages/theming/dist/chunk-U7SC4JPE.js.map +0 -7
  337. package/packages/theming/dist/codemirror-theme.js +0 -2415
  338. package/packages/theming/dist/codemirror-theme.js.map +0 -7
  339. package/packages/theming/dist/datatype-UUJVIZM7.js +0 -16
  340. package/packages/theming/dist/datatype-UUJVIZM7.js.map +0 -7
  341. package/packages/theming/dist/gloom-JYQPEOHI.css +0 -102
  342. package/packages/theming/dist/lychee-BMLMUNP6.css +0 -114
  343. package/packages/theming/dist/main.js +0 -112
  344. package/packages/theming/dist/main.js.map +0 -7
  345. package/packages/theming/dist/theme-RC7MV6WP.css +0 -691
  346. package/packages/theming/dist/theme-editor-datatype-CIXRKEFF.js +0 -11
  347. package/packages/theming/dist/theme-editor-datatype-CIXRKEFF.js.map +0 -7
  348. package/packages/theming/dist/theme-editor.js +0 -576
  349. package/packages/theming/dist/theme-editor.js.map +0 -7
  350. package/packages/theming/dist/theme-titlebar-P2CODQGF.js +0 -21
  351. package/packages/theming/dist/theme-titlebar-P2CODQGF.js.map +0 -7
  352. package/packages/theming/dist/theme-tray-5L2KGCGD.js +0 -351
  353. package/packages/theming/dist/theme-tray-5L2KGCGD.js.map +0 -7
  354. package/packages/theming/dist/tool.js +0 -405
  355. package/packages/theming/dist/tool.js.map +0 -7
  356. package/packages/theming/package.json +0 -48
  357. package/packages/threepane/dist/IsolatedDocumentArea-LFSDWMIY.js +0 -2
  358. package/packages/threepane/dist/IsolatedDocumentArea-LFSDWMIY.js.map +0 -7
  359. package/packages/threepane/dist/PatchworkFrame-JTNZ6365.js +0 -2
  360. package/packages/threepane/dist/PatchworkFrame-JTNZ6365.js.map +0 -7
  361. package/packages/threepane/dist/chunk-7YXO2YGV.js +0 -2
  362. package/packages/threepane/dist/chunk-7YXO2YGV.js.map +0 -7
  363. package/packages/threepane/dist/chunk-FOMAU6H2.js +0 -972
  364. package/packages/threepane/dist/chunk-FOMAU6H2.js.map +0 -7
  365. package/packages/threepane/dist/chunk-FW4363Y4.js +0 -2
  366. package/packages/threepane/dist/chunk-FW4363Y4.js.map +0 -7
  367. package/packages/threepane/dist/datatypes-FKBTWAO7.js +0 -2
  368. package/packages/threepane/dist/datatypes-FKBTWAO7.js.map +0 -7
  369. package/packages/threepane/dist/index.js +0 -2
  370. package/packages/threepane/dist/index.js.map +0 -7
  371. package/packages/threepane/package.json +0 -42
  372. package/packages/tldraw4/dist/chunk-IKZWERSR.js +0 -38
  373. package/packages/tldraw4/dist/chunk-IKZWERSR.js.map +0 -7
  374. package/packages/tldraw4/dist/chunk-VF5CY24G.js +0 -140894
  375. package/packages/tldraw4/dist/chunk-VF5CY24G.js.map +0 -7
  376. package/packages/tldraw4/dist/datatype.js +0 -46
  377. package/packages/tldraw4/dist/datatype.js.map +0 -7
  378. package/packages/tldraw4/dist/main.css +0 -3202
  379. package/packages/tldraw4/dist/main.css.map +0 -7
  380. package/packages/tldraw4/dist/main.js +0 -42
  381. package/packages/tldraw4/dist/main.js.map +0 -7
  382. package/packages/tldraw4/dist/tool.js +0 -8767
  383. package/packages/tldraw4/dist/tool.js.map +0 -7
  384. package/packages/tldraw4/package.json +0 -62
@@ -1,161 +0,0 @@
1
- import {
2
- createAvatar,
3
- getInitials,
4
- setAvatarFallback,
5
- setAvatarImage
6
- } from "./chunk-MOZI4Y4O.js";
7
-
8
- // src/ui.ts
9
- var USER_COLOR_PALETTE = [
10
- { name: "Sky Blue", value: "hsl(200, 70%, 50%)" },
11
- { name: "Coral", value: "hsl(10, 75%, 58%)" },
12
- { name: "Emerald", value: "hsl(145, 70%, 45%)" },
13
- { name: "Violet", value: "hsl(270, 70%, 55%)" },
14
- { name: "Amber", value: "hsl(38, 85%, 50%)" },
15
- { name: "Rose", value: "hsl(350, 70%, 55%)" },
16
- { name: "Teal", value: "hsl(178, 70%, 45%)" },
17
- { name: "Indigo", value: "hsl(235, 70%, 58%)" },
18
- { name: "Lime", value: "hsl(85, 70%, 45%)" },
19
- { name: "Fuchsia", value: "hsl(310, 70%, 55%)" },
20
- { name: "Orange", value: "hsl(25, 80%, 52%)" },
21
- { name: "Cyan", value: "hsl(188, 75%, 48%)" }
22
- ];
23
- function generateColorFromString(str) {
24
- const hash = Math.abs(
25
- str.split("").reduce((acc, char) => acc + char.charCodeAt(0), 0)
26
- );
27
- const colorIndex = hash % USER_COLOR_PALETTE.length;
28
- return USER_COLOR_PALETTE[colorIndex].value;
29
- }
30
-
31
- // src/components/ContactAvatar.ts
32
- import { getImportableUrlFromAutomergeUrl } from "@inkandswitch/patchwork-filesystem";
33
-
34
- // ../node_modules/.pnpm/@inkandswitch+patchwork-providers@0.2.2_@automerge+automerge-repo@2.6.0-subduction.39_supports-color@7.2.0_/node_modules/@inkandswitch/patchwork-providers/dist/index.js
35
- function subscribe(element, selector, listener) {
36
- const view = element.closest("patchwork-view");
37
- const dispatchEl = view ?? element;
38
- const channel = new MessageChannel();
39
- const port = channel.port2;
40
- const controller = new AbortController();
41
- const { signal } = controller;
42
- port.addEventListener("message", (event) => {
43
- if (event.data?.type === "change")
44
- listener(event.data.value);
45
- }, { signal });
46
- port.start();
47
- const detail = {
48
- selector,
49
- port: channel.port1
50
- };
51
- dispatchEl.dispatchEvent(new CustomEvent("patchwork:subscribe", {
52
- detail,
53
- bubbles: true,
54
- composed: true
55
- }));
56
- return () => {
57
- if (signal.aborted)
58
- return;
59
- controller.abort();
60
- port.postMessage({ type: "unsubscribe" });
61
- port.close();
62
- };
63
- }
64
-
65
- // src/components/ContactAvatar.ts
66
- function renderContactAvatar(handle, element) {
67
- const avatar = createAvatar("default");
68
- element.appendChild(avatar);
69
- let selfName = "me";
70
- const cleanups = [];
71
- const heartbeats = {};
72
- let presenceTimer;
73
- function onEphemeralMessage(message) {
74
- if (message.senderId) {
75
- heartbeats[message.senderId] = Date.now();
76
- }
77
- updatePresence();
78
- }
79
- function updatePresence() {
80
- const docUrl = handle.url;
81
- const now = Date.now();
82
- const timeout = 3e4;
83
- const isPresent = Object.entries(heartbeats).some(
84
- ([id, ts]) => id !== selfName && now - ts < timeout
85
- );
86
- const contact = handle.doc();
87
- const userColor = contact && "color" in contact && contact.color ? contact.color : generateColorFromString(docUrl);
88
- if (isPresent) {
89
- avatar.classList.add("contact-avatar--present");
90
- avatar.style.setProperty("--contact-presence-color", userColor);
91
- } else {
92
- avatar.classList.remove("contact-avatar--present");
93
- avatar.style.removeProperty("--contact-presence-color");
94
- }
95
- }
96
- handle.on("ephemeral-message", onEphemeralMessage);
97
- cleanups.push(() => handle.off("ephemeral-message", onEphemeralMessage));
98
- presenceTimer = setInterval(updatePresence, 5e3);
99
- cleanups.push(() => clearInterval(presenceTimer));
100
- const unsubscribe = subscribe(
101
- element,
102
- { type: "patchwork:contact" },
103
- (contactUrl) => {
104
- element.repo.find(contactUrl).then((selfHandle) => {
105
- const selfDoc = selfHandle.doc();
106
- if (selfDoc?.type === "registered") {
107
- selfName = selfDoc.name;
108
- }
109
- });
110
- }
111
- );
112
- cleanups.push(unsubscribe);
113
- if (window.accountDocHandle) {
114
- element.repo.find(window.accountDocHandle.url).then((accountHandle) => {
115
- const accountDoc = accountHandle.doc();
116
- if (accountDoc?.contactUrl) {
117
- element.repo.find(accountDoc.contactUrl).then((selfHandle) => {
118
- const selfDoc = selfHandle.doc();
119
- if (selfDoc?.type === "registered") {
120
- selfName = selfDoc.name;
121
- }
122
- });
123
- }
124
- });
125
- }
126
- async function update() {
127
- const contact = handle.doc();
128
- if (!contact) {
129
- avatar.style.display = "none";
130
- return;
131
- }
132
- avatar.style.display = "";
133
- const isRegistered = contact.type === "registered";
134
- const name = isRegistered ? contact.name : "Anonymous";
135
- let avatarImgUrl;
136
- if (isRegistered && contact.avatarUrl) {
137
- try {
138
- const avatarHandle = await element.repo.find(contact.avatarUrl);
139
- avatarImgUrl = getImportableUrlFromAutomergeUrl(avatarHandle.url);
140
- } catch {
141
- }
142
- }
143
- setAvatarImage(avatar, avatarImgUrl, name);
144
- if (isRegistered && name) {
145
- setAvatarFallback(avatar, { initials: getInitials(name) });
146
- } else {
147
- setAvatarFallback(avatar, { iconSize: 20 });
148
- }
149
- updatePresence();
150
- }
151
- handle.on("change", update);
152
- cleanups.push(() => handle.off("change", update));
153
- update();
154
- return () => {
155
- for (const cleanup of cleanups) cleanup();
156
- };
157
- }
158
- export {
159
- renderContactAvatar
160
- };
161
- //# sourceMappingURL=ContactAvatar-FP32ZZH2.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/ui.ts", "../src/components/ContactAvatar.ts", "../../node_modules/.pnpm/@inkandswitch+patchwork-providers@0.2.2_@automerge+automerge-repo@2.6.0-subduction.39_supports-color@7.2.0_/node_modules/@inkandswitch/patchwork-providers/dist/index.js"],
4
- "sourcesContent": ["/**\n * TODO: establish a system for referencing styles that\n * are shared across multiple tools.\n * This palette is also defined in the account-picker.\n *\n * User color palette for presence indicators (cursors, avatars, etc.)\n *\n * Colors are selected to:\n * - Be easily distinguishable from each other\n * - Work well on both light and dark backgrounds\n * - Be accessible and readable\n * - Look professional and modern\n */\nexport const USER_COLOR_PALETTE = [\n { name: \"Sky Blue\", value: \"hsl(200, 70%, 50%)\" },\n { name: \"Coral\", value: \"hsl(10, 75%, 58%)\" },\n { name: \"Emerald\", value: \"hsl(145, 70%, 45%)\" },\n { name: \"Violet\", value: \"hsl(270, 70%, 55%)\" },\n { name: \"Amber\", value: \"hsl(38, 85%, 50%)\" },\n { name: \"Rose\", value: \"hsl(350, 70%, 55%)\" },\n { name: \"Teal\", value: \"hsl(178, 70%, 45%)\" },\n { name: \"Indigo\", value: \"hsl(235, 70%, 58%)\" },\n { name: \"Lime\", value: \"hsl(85, 70%, 45%)\" },\n { name: \"Fuchsia\", value: \"hsl(310, 70%, 55%)\" },\n { name: \"Orange\", value: \"hsl(25, 80%, 52%)\" },\n { name: \"Cyan\", value: \"hsl(188, 75%, 48%)\" },\n] as const;\n\n/**\n * Generate a deterministic color from a string (like userId)\n * Useful for fallback when user hasn't chosen a color\n */\nexport function generateColorFromString(str: string): string {\n const hash = Math.abs(\n str.split(\"\").reduce((acc, char) => acc + char.charCodeAt(0), 0)\n );\n const colorIndex = hash % USER_COLOR_PALETTE.length;\n return USER_COLOR_PALETTE[colorIndex].value;\n}\n", "import type { AutomergeUrl, DocHandle } from \"@automerge/automerge-repo\";\nimport type { ToolElement } from \"@inkandswitch/patchwork-plugins\";\nimport type { ContactDoc } from \"../types\";\nimport { createAvatar, setAvatarImage, setAvatarFallback, getInitials } from \"./Avatar\";\nimport { generateColorFromString } from \"../ui\";\nimport { getImportableUrlFromAutomergeUrl } from \"@inkandswitch/patchwork-filesystem\";\nimport { subscribe } from \"@inkandswitch/patchwork-providers\";\n\ndeclare global {\n interface Window {\n accountDocHandle?: { url: AutomergeUrl };\n }\n}\n\ntype TinyPatchworkLayoutDoc = {\n contactUrl: AutomergeUrl;\n};\n\nexport function renderContactAvatar(\n handle: DocHandle<ContactDoc>,\n element: ToolElement\n) {\n const avatar = createAvatar(\"default\");\n element.appendChild(avatar);\n\n let selfName = \"me\";\n const cleanups: (() => void)[] = [];\n\n // Track presence via ephemeral messages\n const heartbeats: Record<string, number> = {};\n let presenceTimer: ReturnType<typeof setInterval>;\n\n function onEphemeralMessage(message: { senderId: string; message: unknown }) {\n // useRemoteAwareness tracks heartbeats from ephemeral messages\n if (message.senderId) {\n heartbeats[message.senderId] = Date.now();\n }\n updatePresence();\n }\n\n function updatePresence() {\n const docUrl = handle.url;\n const now = Date.now();\n const timeout = 30000;\n const isPresent = Object.entries(heartbeats).some(\n ([id, ts]) => id !== selfName && now - ts < timeout\n );\n\n const contact = handle.doc();\n const userColor =\n contact && \"color\" in contact && contact.color\n ? contact.color\n : generateColorFromString(docUrl);\n\n if (isPresent) {\n avatar.classList.add(\"contact-avatar--present\");\n avatar.style.setProperty(\"--contact-presence-color\", userColor);\n } else {\n avatar.classList.remove(\"contact-avatar--present\");\n avatar.style.removeProperty(\"--contact-presence-color\");\n }\n }\n\n handle.on(\"ephemeral-message\", onEphemeralMessage);\n cleanups.push(() => handle.off(\"ephemeral-message\", onEphemeralMessage));\n\n // Periodically clean up stale heartbeats\n presenceTimer = setInterval(updatePresence, 5000);\n cleanups.push(() => clearInterval(presenceTimer));\n\n // Get own contact via provider subscription\n const unsubscribe = subscribe<string>(\n element,\n { type: \"patchwork:contact\" },\n (contactUrl) => {\n element.repo\n .find<ContactDoc>(contactUrl as AutomergeUrl)\n .then((selfHandle) => {\n const selfDoc = selfHandle.doc();\n if (selfDoc?.type === \"registered\") {\n selfName = selfDoc.name;\n }\n });\n }\n );\n cleanups.push(unsubscribe);\n\n // Fallback: use window.accountDocHandle\n if (window.accountDocHandle) {\n element.repo\n .find<TinyPatchworkLayoutDoc>(window.accountDocHandle.url)\n .then((accountHandle) => {\n const accountDoc = accountHandle.doc();\n if (accountDoc?.contactUrl) {\n element.repo\n .find<ContactDoc>(accountDoc.contactUrl)\n .then((selfHandle) => {\n const selfDoc = selfHandle.doc();\n if (selfDoc?.type === \"registered\") {\n selfName = selfDoc.name;\n }\n });\n }\n });\n }\n\n async function update() {\n const contact = handle.doc();\n if (!contact) {\n avatar.style.display = \"none\";\n return;\n }\n avatar.style.display = \"\";\n\n const isRegistered = contact.type === \"registered\";\n const name = isRegistered ? contact.name : \"Anonymous\";\n\n // avatar image\n let avatarImgUrl: string | undefined;\n if (isRegistered && contact.avatarUrl) {\n try {\n const avatarHandle = await element.repo.find(contact.avatarUrl);\n avatarImgUrl = getImportableUrlFromAutomergeUrl(avatarHandle.url);\n } catch {\n // ignore failed avatar lookup\n }\n }\n setAvatarImage(avatar, avatarImgUrl, name);\n\n // fallback\n if (isRegistered && name) {\n setAvatarFallback(avatar, { initials: getInitials(name) });\n } else {\n setAvatarFallback(avatar, { iconSize: 20 });\n }\n\n updatePresence();\n }\n\n handle.on(\"change\", update);\n cleanups.push(() => handle.off(\"change\", update));\n update();\n\n return () => {\n for (const cleanup of cleanups) cleanup();\n };\n}\n", "/**\n * Open a streaming subscription. Dispatches a `patchwork:subscribe` for the\n * given `selector` carrying a fresh `MessageChannel` port; the answering\n * provider pushes values back over that channel for as long as the\n * subscription is live. `listener` is invoked once per emission (the first\n * delivery is always async because `MessagePort.postMessage` queues a task).\n *\n * The event is dispatched from the nearest enclosing `<patchwork-view>` so\n * callers can pass any node inside a provider subtree. An unclaimed\n * subscription is never settled: if no provider answers, `listener` simply\n * never fires.\n *\n * Returns an unsubscribe function. Calling it tells the provider to tear down\n * (via an `unsubscribe` message) and closes the consumer's port; any values\n * the provider emits after that are dropped.\n */\nexport function subscribe(element, selector, listener) {\n const view = element.closest(\"patchwork-view\");\n const dispatchEl = view ?? element;\n const channel = new MessageChannel();\n const port = channel.port2;\n const controller = new AbortController();\n const { signal } = controller;\n port.addEventListener(\"message\", (event) => {\n if (event.data?.type === \"change\")\n listener(event.data.value);\n }, { signal });\n // addEventListener (unlike assigning onmessage) does not implicitly start\n // the port, so message delivery has to be kicked off explicitly.\n port.start();\n const detail = {\n selector,\n port: channel.port1,\n };\n dispatchEl.dispatchEvent(new CustomEvent(\"patchwork:subscribe\", {\n detail,\n bubbles: true,\n composed: true,\n }));\n return () => {\n if (signal.aborted)\n return;\n controller.abort();\n port.postMessage({ type: \"unsubscribe\" });\n port.close();\n };\n}\n/**\n * Answer a `patchwork:subscribe`. The `producer` receives a `respond`\n * callback it can call any number of times to push values to the consumer,\n * and may return a teardown that runs when the consumer unsubscribes. Stops\n * propagation so ancestor providers don't double-answer. Values emitted after\n * the consumer unsubscribes are dropped.\n */\nexport function accept(event, producer) {\n event.stopPropagation();\n const port = event.detail.port;\n let alive = true;\n const respond = (value) => {\n if (!alive)\n return;\n port.postMessage({ type: \"change\", value });\n };\n let teardown;\n try {\n teardown = producer(respond);\n }\n catch (err) {\n console.error(\"[patchwork-providers] subscribe producer threw:\", err);\n }\n const stop = () => {\n if (!alive)\n return;\n alive = false;\n try {\n teardown?.();\n }\n catch (err) {\n console.error(\"[patchwork-providers] subscribe teardown threw:\", err);\n }\n port.close();\n };\n port.onmessage = (event) => {\n if (event.data?.type === \"unsubscribe\")\n stop();\n };\n}\n/**\n * One-shot convenience wrapper over {@link subscribe}: opens a subscription\n * for `selector`, resolves with the first value a provider emits, then\n * immediately unsubscribes. Because there is no fallback provider, an\n * unclaimed selector never resolves \u2014 use `subscribe` directly if you need to\n * handle the \"no provider\" case.\n */\nexport function request(element, selector) {\n return new Promise((resolve) => {\n const unsubscribe = subscribe(element, selector, (value) => {\n // The first emission is always async (postMessage queues a task), so\n // `unsubscribe` is assigned by the time this fires.\n unsubscribe();\n resolve(value);\n });\n });\n}\nexport { registerRepoProviderElement, } from \"./repo-provider.js\";\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,60 +0,0 @@
1
- import {
2
- createAvatar,
3
- getInitials,
4
- setAvatarFallback,
5
- setAvatarImage
6
- } from "./chunk-MOZI4Y4O.js";
7
-
8
- // src/components/ContactViewer.ts
9
- import { automergeUrlToServiceWorkerUrl } from "@inkandswitch/patchwork-filesystem";
10
- function renderContactViewer(handle, element) {
11
- const wrapper = document.createElement("div");
12
- wrapper.className = "contact-viewer";
13
- const avatar = createAvatar("lg");
14
- const nameEl = document.createElement("h2");
15
- nameEl.className = "contact-viewer-name";
16
- const labelEl = document.createElement("p");
17
- labelEl.className = "contact-viewer-label";
18
- labelEl.textContent = "Unregistered user";
19
- wrapper.append(avatar, nameEl);
20
- element.appendChild(wrapper);
21
- async function update() {
22
- const contact = handle.doc();
23
- if (!contact) {
24
- wrapper.style.display = "none";
25
- return;
26
- }
27
- wrapper.style.display = "";
28
- const isRegistered = contact.type === "registered";
29
- const name = isRegistered ? contact.name : "Anonymous";
30
- nameEl.textContent = name;
31
- let avatarImgUrl;
32
- if (isRegistered && contact.avatarUrl) {
33
- try {
34
- const avatarHandle = await element.repo.find(contact.avatarUrl);
35
- avatarImgUrl = automergeUrlToServiceWorkerUrl(avatarHandle.url);
36
- } catch {
37
- }
38
- }
39
- setAvatarImage(avatar, avatarImgUrl, name);
40
- if (isRegistered && name) {
41
- setAvatarFallback(avatar, { initials: getInitials(name) });
42
- } else {
43
- setAvatarFallback(avatar, { iconSize: 32 });
44
- }
45
- if (!isRegistered) {
46
- if (!wrapper.contains(labelEl)) wrapper.appendChild(labelEl);
47
- } else {
48
- labelEl.remove();
49
- }
50
- }
51
- handle.on("change", update);
52
- update();
53
- return () => {
54
- handle.off("change", update);
55
- };
56
- }
57
- export {
58
- renderContactViewer
59
- };
60
- //# sourceMappingURL=ContactViewer-ZHEE6INW.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/components/ContactViewer.ts"],
4
- "sourcesContent": ["import type { DocHandle } from \"@automerge/automerge-repo\";\nimport type { ToolElement } from \"@inkandswitch/patchwork-plugins\";\nimport type { ContactDoc } from \"../types\";\nimport { createAvatar, setAvatarImage, setAvatarFallback, getInitials } from \"./Avatar\";\nimport { automergeUrlToServiceWorkerUrl } from \"@inkandswitch/patchwork-filesystem\";\n\nexport function renderContactViewer(\n handle: DocHandle<ContactDoc>,\n element: ToolElement\n) {\n const wrapper = document.createElement(\"div\");\n wrapper.className = \"contact-viewer\";\n\n const avatar = createAvatar(\"lg\");\n const nameEl = document.createElement(\"h2\");\n nameEl.className = \"contact-viewer-name\";\n const labelEl = document.createElement(\"p\");\n labelEl.className = \"contact-viewer-label\";\n labelEl.textContent = \"Unregistered user\";\n\n wrapper.append(avatar, nameEl);\n element.appendChild(wrapper);\n\n async function update() {\n const contact = handle.doc();\n if (!contact) {\n wrapper.style.display = \"none\";\n return;\n }\n wrapper.style.display = \"\";\n\n const isRegistered = contact.type === \"registered\";\n const name = isRegistered ? contact.name : \"Anonymous\";\n\n nameEl.textContent = name;\n\n // avatar image\n let avatarImgUrl: string | undefined;\n if (isRegistered && contact.avatarUrl) {\n try {\n const avatarHandle = await element.repo.find(contact.avatarUrl);\n avatarImgUrl = automergeUrlToServiceWorkerUrl(avatarHandle.url);\n } catch {\n // ignore failed avatar lookup\n }\n }\n setAvatarImage(avatar, avatarImgUrl, name);\n\n // fallback\n if (isRegistered && name) {\n setAvatarFallback(avatar, { initials: getInitials(name) });\n } else {\n setAvatarFallback(avatar, { iconSize: 32 });\n }\n\n // label\n if (!isRegistered) {\n if (!wrapper.contains(labelEl)) wrapper.appendChild(labelEl);\n } else {\n labelEl.remove();\n }\n }\n\n handle.on(\"change\", update);\n update();\n\n return () => {\n handle.off(\"change\", update);\n };\n}\n"],
5
- "mappings": ";;;;;;;;AAIA,SAAS,sCAAsC;AAExC,SAAS,oBACd,QACA,SACA;AACA,QAAM,UAAU,SAAS,cAAc,KAAK;AAC5C,UAAQ,YAAY;AAEpB,QAAM,SAAS,aAAa,IAAI;AAChC,QAAM,SAAS,SAAS,cAAc,IAAI;AAC1C,SAAO,YAAY;AACnB,QAAM,UAAU,SAAS,cAAc,GAAG;AAC1C,UAAQ,YAAY;AACpB,UAAQ,cAAc;AAEtB,UAAQ,OAAO,QAAQ,MAAM;AAC7B,UAAQ,YAAY,OAAO;AAE3B,iBAAe,SAAS;AACtB,UAAM,UAAU,OAAO,IAAI;AAC3B,QAAI,CAAC,SAAS;AACZ,cAAQ,MAAM,UAAU;AACxB;AAAA,IACF;AACA,YAAQ,MAAM,UAAU;AAExB,UAAM,eAAe,QAAQ,SAAS;AACtC,UAAM,OAAO,eAAe,QAAQ,OAAO;AAE3C,WAAO,cAAc;AAGrB,QAAI;AACJ,QAAI,gBAAgB,QAAQ,WAAW;AACrC,UAAI;AACF,cAAM,eAAe,MAAM,QAAQ,KAAK,KAAK,QAAQ,SAAS;AAC9D,uBAAe,+BAA+B,aAAa,GAAG;AAAA,MAChE,QAAQ;AAAA,MAER;AAAA,IACF;AACA,mBAAe,QAAQ,cAAc,IAAI;AAGzC,QAAI,gBAAgB,MAAM;AACxB,wBAAkB,QAAQ,EAAE,UAAU,YAAY,IAAI,EAAE,CAAC;AAAA,IAC3D,OAAO;AACL,wBAAkB,QAAQ,EAAE,UAAU,GAAG,CAAC;AAAA,IAC5C;AAGA,QAAI,CAAC,cAAc;AACjB,UAAI,CAAC,QAAQ,SAAS,OAAO,EAAG,SAAQ,YAAY,OAAO;AAAA,IAC7D,OAAO;AACL,cAAQ,OAAO;AAAA,IACjB;AAAA,EACF;AAEA,SAAO,GAAG,UAAU,MAAM;AAC1B,SAAO;AAEP,SAAO,MAAM;AACX,WAAO,IAAI,UAAU,MAAM;AAAA,EAC7B;AACF;",
6
- "names": []
7
- }
@@ -1,46 +0,0 @@
1
- import {
2
- createAvatar,
3
- getInitials,
4
- setAvatarFallback,
5
- setAvatarImage
6
- } from "./chunk-MOZI4Y4O.js";
7
-
8
- // src/components/InlineContactAvatar.ts
9
- import { automergeUrlToServiceWorkerUrl } from "@inkandswitch/patchwork-filesystem";
10
- function renderInlineContactAvatar(handle, element) {
11
- const avatar = createAvatar("sm");
12
- element.appendChild(avatar);
13
- async function update() {
14
- const contact = handle.doc();
15
- if (!contact) {
16
- avatar.style.display = "none";
17
- return;
18
- }
19
- avatar.style.display = "";
20
- const isRegistered = contact.type === "registered";
21
- const name = isRegistered ? contact.name : "Anonymous";
22
- let avatarImgUrl;
23
- if (isRegistered && contact.avatarUrl) {
24
- try {
25
- const avatarHandle = await element.repo.find(contact.avatarUrl);
26
- avatarImgUrl = automergeUrlToServiceWorkerUrl(avatarHandle.url);
27
- } catch {
28
- }
29
- }
30
- setAvatarImage(avatar, avatarImgUrl, name);
31
- if (isRegistered && name) {
32
- setAvatarFallback(avatar, { initials: getInitials(name) });
33
- } else {
34
- setAvatarFallback(avatar, { iconSize: 16 });
35
- }
36
- }
37
- handle.on("change", update);
38
- update();
39
- return () => {
40
- handle.off("change", update);
41
- };
42
- }
43
- export {
44
- renderInlineContactAvatar
45
- };
46
- //# sourceMappingURL=InlineContactAvatar-VZDPEZV2.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/components/InlineContactAvatar.ts"],
4
- "sourcesContent": ["import type { DocHandle } from \"@automerge/automerge-repo\";\nimport type { ToolElement } from \"@inkandswitch/patchwork-plugins\";\nimport type { ContactDoc } from \"../types\";\nimport { createAvatar, setAvatarImage, setAvatarFallback, getInitials } from \"./Avatar\";\nimport { automergeUrlToServiceWorkerUrl } from \"@inkandswitch/patchwork-filesystem\";\n\nexport function renderInlineContactAvatar(\n handle: DocHandle<ContactDoc>,\n element: ToolElement\n) {\n const avatar = createAvatar(\"sm\");\n element.appendChild(avatar);\n\n async function update() {\n const contact = handle.doc();\n if (!contact) {\n avatar.style.display = \"none\";\n return;\n }\n avatar.style.display = \"\";\n\n const isRegistered = contact.type === \"registered\";\n const name = isRegistered ? contact.name : \"Anonymous\";\n\n // avatar image\n let avatarImgUrl: string | undefined;\n if (isRegistered && contact.avatarUrl) {\n try {\n const avatarHandle = await element.repo.find(contact.avatarUrl);\n avatarImgUrl = automergeUrlToServiceWorkerUrl(avatarHandle.url);\n } catch {\n // ignore failed avatar lookup\n }\n }\n setAvatarImage(avatar, avatarImgUrl, name);\n\n // fallback\n if (isRegistered && name) {\n setAvatarFallback(avatar, { initials: getInitials(name) });\n } else {\n setAvatarFallback(avatar, { iconSize: 16 });\n }\n }\n\n handle.on(\"change\", update);\n update();\n\n return () => {\n handle.off(\"change\", update);\n };\n}\n"],
5
- "mappings": ";;;;;;;;AAIA,SAAS,sCAAsC;AAExC,SAAS,0BACd,QACA,SACA;AACA,QAAM,SAAS,aAAa,IAAI;AAChC,UAAQ,YAAY,MAAM;AAE1B,iBAAe,SAAS;AACtB,UAAM,UAAU,OAAO,IAAI;AAC3B,QAAI,CAAC,SAAS;AACZ,aAAO,MAAM,UAAU;AACvB;AAAA,IACF;AACA,WAAO,MAAM,UAAU;AAEvB,UAAM,eAAe,QAAQ,SAAS;AACtC,UAAM,OAAO,eAAe,QAAQ,OAAO;AAG3C,QAAI;AACJ,QAAI,gBAAgB,QAAQ,WAAW;AACrC,UAAI;AACF,cAAM,eAAe,MAAM,QAAQ,KAAK,KAAK,QAAQ,SAAS;AAC9D,uBAAe,+BAA+B,aAAa,GAAG;AAAA,MAChE,QAAQ;AAAA,MAER;AAAA,IACF;AACA,mBAAe,QAAQ,cAAc,IAAI;AAGzC,QAAI,gBAAgB,MAAM;AACxB,wBAAkB,QAAQ,EAAE,UAAU,YAAY,IAAI,EAAE,CAAC;AAAA,IAC3D,OAAO;AACL,wBAAkB,QAAQ,EAAE,UAAU,GAAG,CAAC;AAAA,IAC5C;AAAA,EACF;AAEA,SAAO,GAAG,UAAU,MAAM;AAC1B,SAAO;AAEP,SAAO,MAAM;AACX,WAAO,IAAI,UAAU,MAAM;AAAA,EAC7B;AACF;",
6
- "names": []
7
- }
@@ -1,54 +0,0 @@
1
- // src/components/Avatar.ts
2
- var sizeClass = {
3
- default: "",
4
- sm: "contact-avatar--sm",
5
- lg: "contact-avatar--lg"
6
- };
7
- var USER_ICON_SVGS = {
8
- 16: `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/></svg>`,
9
- 20: `<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/></svg>`,
10
- 32: `<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/></svg>`
11
- };
12
- function createAvatar(size = "default") {
13
- const root = document.createElement("span");
14
- root.className = ["contact-avatar", sizeClass[size]].filter(Boolean).join(" ");
15
- return root;
16
- }
17
- function setAvatarImage(root, src, alt) {
18
- let img = root.querySelector(".contact-avatar-image");
19
- if (src) {
20
- if (!img) {
21
- img = document.createElement("img");
22
- img.className = "contact-avatar-image";
23
- root.prepend(img);
24
- }
25
- img.src = src;
26
- img.alt = alt;
27
- } else if (img) {
28
- img.remove();
29
- }
30
- }
31
- function setAvatarFallback(root, content) {
32
- let fallback = root.querySelector(".contact-avatar-fallback");
33
- if (!fallback) {
34
- fallback = document.createElement("span");
35
- fallback.className = "contact-avatar-fallback";
36
- root.appendChild(fallback);
37
- }
38
- if ("initials" in content) {
39
- fallback.textContent = content.initials;
40
- } else {
41
- fallback.innerHTML = USER_ICON_SVGS[content.iconSize] ?? USER_ICON_SVGS[20];
42
- }
43
- }
44
- function getInitials(name) {
45
- return name.split(" ").map((word) => word[0]).join("");
46
- }
47
-
48
- export {
49
- createAvatar,
50
- setAvatarImage,
51
- setAvatarFallback,
52
- getInitials
53
- };
54
- //# sourceMappingURL=chunk-MOZI4Y4O.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/components/Avatar.ts"],
4
- "sourcesContent": ["export type AvatarSize = \"default\" | \"sm\" | \"lg\";\n\nconst sizeClass: Record<AvatarSize, string> = {\n default: \"\",\n sm: \"contact-avatar--sm\",\n lg: \"contact-avatar--lg\",\n};\n\nconst USER_ICON_SVGS: Record<number, string> = {\n 16: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"/><circle cx=\"12\" cy=\"7\" r=\"4\"/></svg>`,\n 20: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"/><circle cx=\"12\" cy=\"7\" r=\"4\"/></svg>`,\n 32: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"/><circle cx=\"12\" cy=\"7\" r=\"4\"/></svg>`,\n};\n\nexport function createAvatar(size: AvatarSize = \"default\"): HTMLElement {\n const root = document.createElement(\"span\");\n root.className = [\"contact-avatar\", sizeClass[size]]\n .filter(Boolean)\n .join(\" \");\n return root;\n}\n\nexport function setAvatarImage(\n root: HTMLElement,\n src: string | undefined,\n alt: string\n) {\n let img = root.querySelector<HTMLImageElement>(\".contact-avatar-image\");\n if (src) {\n if (!img) {\n img = document.createElement(\"img\");\n img.className = \"contact-avatar-image\";\n root.prepend(img);\n }\n img.src = src;\n img.alt = alt;\n } else if (img) {\n img.remove();\n }\n}\n\nexport function setAvatarFallback(\n root: HTMLElement,\n content: { initials: string } | { iconSize: number }\n) {\n let fallback = root.querySelector<HTMLElement>(\".contact-avatar-fallback\");\n if (!fallback) {\n fallback = document.createElement(\"span\");\n fallback.className = \"contact-avatar-fallback\";\n root.appendChild(fallback);\n }\n if (\"initials\" in content) {\n fallback.textContent = content.initials;\n } else {\n fallback.innerHTML = USER_ICON_SVGS[content.iconSize] ?? USER_ICON_SVGS[20];\n }\n}\n\nexport function getInitials(name: string): string {\n return name\n .split(\" \")\n .map((word) => word[0])\n .join(\"\");\n}\n"],
5
- "mappings": ";AAEA,IAAM,YAAwC;AAAA,EAC5C,SAAS;AAAA,EACT,IAAI;AAAA,EACJ,IAAI;AACN;AAEA,IAAM,iBAAyC;AAAA,EAC7C,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAEO,SAAS,aAAa,OAAmB,WAAwB;AACtE,QAAM,OAAO,SAAS,cAAc,MAAM;AAC1C,OAAK,YAAY,CAAC,kBAAkB,UAAU,IAAI,CAAC,EAChD,OAAO,OAAO,EACd,KAAK,GAAG;AACX,SAAO;AACT;AAEO,SAAS,eACd,MACA,KACA,KACA;AACA,MAAI,MAAM,KAAK,cAAgC,uBAAuB;AACtE,MAAI,KAAK;AACP,QAAI,CAAC,KAAK;AACR,YAAM,SAAS,cAAc,KAAK;AAClC,UAAI,YAAY;AAChB,WAAK,QAAQ,GAAG;AAAA,IAClB;AACA,QAAI,MAAM;AACV,QAAI,MAAM;AAAA,EACZ,WAAW,KAAK;AACd,QAAI,OAAO;AAAA,EACb;AACF;AAEO,SAAS,kBACd,MACA,SACA;AACA,MAAI,WAAW,KAAK,cAA2B,0BAA0B;AACzE,MAAI,CAAC,UAAU;AACb,eAAW,SAAS,cAAc,MAAM;AACxC,aAAS,YAAY;AACrB,SAAK,YAAY,QAAQ;AAAA,EAC3B;AACA,MAAI,cAAc,SAAS;AACzB,aAAS,cAAc,QAAQ;AAAA,EACjC,OAAO;AACL,aAAS,YAAY,eAAe,QAAQ,QAAQ,KAAK,eAAe,EAAE;AAAA,EAC5E;AACF;AAEO,SAAS,YAAY,MAAsB;AAChD,SAAO,KACJ,MAAM,GAAG,EACT,IAAI,CAAC,SAAS,KAAK,CAAC,CAAC,EACrB,KAAK,EAAE;AACZ;",
6
- "names": []
7
- }
@@ -1,27 +0,0 @@
1
- // src/datatype.ts
2
- var init = (doc) => {
3
- Object.assign(doc, {
4
- type: "anonymous"
5
- });
6
- };
7
- var getTitle = (doc) => {
8
- if (doc.type === "registered") {
9
- return doc.name;
10
- }
11
- return "Anonymous";
12
- };
13
- var setTitle = (doc, title) => {
14
- if (doc.type === "registered") {
15
- doc.name = title;
16
- }
17
- };
18
- var ContactDatatype = {
19
- init,
20
- getTitle,
21
- setTitle
22
- };
23
- export {
24
- ContactDatatype,
25
- init
26
- };
27
- //# sourceMappingURL=datatype-ABVDVPWS.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/datatype.ts"],
4
- "sourcesContent": ["import { type DatatypeImplementation } from \"@inkandswitch/patchwork-plugins\";\nimport type { ContactDoc } from \"./types\";\n\nexport const init = (doc: ContactDoc) => {\n Object.assign(doc, {\n type: \"anonymous\",\n } as ContactDoc);\n};\n\nconst getTitle = (doc: ContactDoc) => {\n if (doc.type === \"registered\") {\n return doc.name;\n }\n return \"Anonymous\";\n};\n\nconst setTitle = (doc: ContactDoc, title: string) => {\n if (doc.type === \"registered\") {\n doc.name = title;\n }\n};\n\nexport const ContactDatatype: DatatypeImplementation<ContactDoc> = {\n init,\n getTitle,\n setTitle,\n};\n"],
5
- "mappings": ";AAGO,IAAM,OAAO,CAAC,QAAoB;AACvC,SAAO,OAAO,KAAK;AAAA,IACjB,MAAM;AAAA,EACR,CAAe;AACjB;AAEA,IAAM,WAAW,CAAC,QAAoB;AACpC,MAAI,IAAI,SAAS,cAAc;AAC7B,WAAO,IAAI;AAAA,EACb;AACA,SAAO;AACT;AAEA,IAAM,WAAW,CAAC,KAAiB,UAAkB;AACnD,MAAI,IAAI,SAAS,cAAc;AAC7B,QAAI,OAAO;AAAA,EACb;AACF;AAEO,IAAM,kBAAsD;AAAA,EACjE;AAAA,EACA;AAAA,EACA;AACF;",
6
- "names": []
7
- }
@@ -1,81 +0,0 @@
1
- /* src/styles.css */
2
- @layer package {
3
- :root,
4
- :host,
5
- [theme] {
6
- --contact-fg: var(--editor-line, black);
7
- --contact-muted-fg: var(--editor-line-offset-50, #999);
8
- --contact-border: var(--editor-fill-offset-10, #e5e5e5);
9
- --contact-fallback-bg: var(--editor-fill-offset-20, #ccc);
10
- --contact-fallback-fg: var(--editor-line-offset-30, #4d4d4d);
11
- }
12
- }
13
- .contact-avatar {
14
- position: relative;
15
- display: inline-flex;
16
- flex-shrink: 0;
17
- overflow: hidden;
18
- border-radius: 9999px;
19
- border: 1px solid var(--contact-border);
20
- min-width: 2rem;
21
- min-height: 2rem;
22
- max-width: 2rem;
23
- max-height: 2rem;
24
- height: 100%;
25
- width: 100%;
26
- }
27
- .contact-avatar--sm {
28
- min-width: initial;
29
- min-height: initial;
30
- max-width: initial;
31
- max-height: initial;
32
- width: 1.5rem;
33
- height: 1.5rem;
34
- }
35
- .contact-avatar--lg {
36
- min-width: initial;
37
- min-height: initial;
38
- max-width: initial;
39
- max-height: initial;
40
- width: 64px;
41
- height: 64px;
42
- }
43
- .contact-avatar--present {
44
- box-shadow: 0 0 0 2px var(--contact-presence-color);
45
- }
46
- .contact-avatar-image {
47
- position: absolute;
48
- inset: 0;
49
- z-index: 1;
50
- width: 100%;
51
- height: 100%;
52
- object-fit: cover;
53
- }
54
- .contact-avatar-fallback {
55
- position: absolute;
56
- inset: 0;
57
- display: flex;
58
- align-items: center;
59
- justify-content: center;
60
- border-radius: 9999px;
61
- background: var(--contact-fallback-bg);
62
- color: var(--contact-fallback-fg);
63
- }
64
- .contact-viewer {
65
- display: flex;
66
- flex-direction: column;
67
- align-items: center;
68
- gap: 0.5rem;
69
- color: var(--contact-fg);
70
- }
71
- .contact-viewer-name {
72
- margin: 0;
73
- font-size: 1.25rem;
74
- font-weight: 600;
75
- }
76
- .contact-viewer-label {
77
- margin: 0;
78
- font-size: 0.875rem;
79
- color: var(--contact-muted-fg);
80
- }
81
- /*# sourceMappingURL=tool.css.map */
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/styles.css"],
4
- "sourcesContent": ["@layer package {\n:root,\n:host,\n[theme] {\n --contact-fg: var(--editor-line, black);\n --contact-muted-fg: var(--editor-line-offset-50, #999);\n --contact-border: var(--editor-fill-offset-10, #e5e5e5);\n --contact-fallback-bg: var(--editor-fill-offset-20, #ccc);\n --contact-fallback-fg: var(--editor-line-offset-30, #4d4d4d);\n}\n}\n\n/* Avatar */\n\n.contact-avatar {\n position: relative;\n display: inline-flex;\n flex-shrink: 0;\n overflow: hidden;\n border-radius: 9999px;\n border: 1px solid var(--contact-border);\n min-width: 2rem;\n min-height: 2rem;\n max-width: 2rem;\n max-height: 2rem;\n height: 100%;\n width: 100%;\n}\n\n.contact-avatar--sm {\n min-width: initial;\n min-height: initial;\n max-width: initial;\n max-height: initial;\n width: 1.5rem;\n height: 1.5rem;\n}\n\n.contact-avatar--lg {\n min-width: initial;\n min-height: initial;\n max-width: initial;\n max-height: initial;\n width: 64px;\n height: 64px;\n}\n\n.contact-avatar--present {\n box-shadow: 0 0 0 2px var(--contact-presence-color);\n}\n\n.contact-avatar-image {\n position: absolute;\n inset: 0;\n z-index: 1;\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n\n.contact-avatar-fallback {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 9999px;\n background: var(--contact-fallback-bg);\n color: var(--contact-fallback-fg);\n}\n\n/* Contact Viewer */\n\n.contact-viewer {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 0.5rem;\n color: var(--contact-fg);\n}\n\n.contact-viewer-name {\n margin: 0;\n font-size: 1.25rem;\n font-weight: 600;\n}\n\n.contact-viewer-label {\n margin: 0;\n font-size: 0.875rem;\n color: var(--contact-muted-fg);\n}\n"],
5
- "mappings": ";AAAA;AACA;AAAA,EACA;AAAA,EACA,CAAC;AACC,kBAAc,IAAI,aAAa,EAAE;AACjC,wBAAoB,IAAI,uBAAuB,EAAE;AACjD,sBAAkB,IAAI,uBAAuB,EAAE;AAC/C,2BAAuB,IAAI,uBAAuB,EAAE;AACpD,2BAAuB,IAAI,uBAAuB,EAAE;AACtD;AACA;AAIA,CAAC;AACC,YAAU;AACV,WAAS;AACT,eAAa;AACb,YAAU;AACV,iBAAe;AACf,UAAQ,IAAI,MAAM,IAAI;AACtB,aAAW;AACX,cAAY;AACZ,aAAW;AACX,cAAY;AACZ,UAAQ;AACR,SAAO;AACT;AAEA,CAAC;AACC,aAAW;AACX,cAAY;AACZ,aAAW;AACX,cAAY;AACZ,SAAO;AACP,UAAQ;AACV;AAEA,CAAC;AACC,aAAW;AACX,cAAY;AACZ,aAAW;AACX,cAAY;AACZ,SAAO;AACP,UAAQ;AACV;AAEA,CAAC;AACC,cAAY,EAAE,EAAE,EAAE,IAAI,IAAI;AAC5B;AAEA,CAAC;AACC,YAAU;AACV,SAAO;AACP,WAAS;AACT,SAAO;AACP,UAAQ;AACR,cAAY;AACd;AAEA,CAAC;AACC,YAAU;AACV,SAAO;AACP,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,iBAAe;AACf,cAAY,IAAI;AAChB,SAAO,IAAI;AACb;AAIA,CAAC;AACC,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK;AACL,SAAO,IAAI;AACb;AAEA,CAAC;AACC,UAAQ;AACR,aAAW;AACX,eAAa;AACf;AAEA,CAAC;AACC,UAAQ;AACR,aAAW;AACX,SAAO,IAAI;AACb;",
6
- "names": []
7
- }
@@ -1,70 +0,0 @@
1
- // src/tool.ts
2
- function addStyles(element, textContent) {
3
- const id = "contact-styles";
4
- const el = element.querySelector(`#${id}`) ?? document.createElement("style");
5
- Object.assign(el, { textContent, id });
6
- element.append(el);
7
- }
8
- async function loadStyles() {
9
- const url = new URL("./tool.css", import.meta.url);
10
- return (await fetch(url)).text();
11
- }
12
- var plugins = [
13
- {
14
- type: "patchwork:datatype",
15
- id: "contact",
16
- name: "Contact",
17
- icon: "User",
18
- unlisted: true,
19
- async load() {
20
- const { ContactDatatype } = await import("./datatype-ABVDVPWS.js");
21
- return ContactDatatype;
22
- }
23
- },
24
- {
25
- type: "patchwork:tool",
26
- id: "contact",
27
- name: "Contact Viewer",
28
- supportedDatatypes: ["contact"],
29
- async load() {
30
- const { renderContactViewer } = await import("./ContactViewer-ZHEE6INW.js");
31
- const css = await loadStyles();
32
- return (handle, element) => {
33
- addStyles(document.head, css);
34
- return renderContactViewer(handle, element);
35
- };
36
- }
37
- },
38
- {
39
- type: "patchwork:tool",
40
- id: "contact-avatar",
41
- name: "Contact Avatar",
42
- supportedDatatypes: ["contact"],
43
- async load() {
44
- const { renderContactAvatar } = await import("./ContactAvatar-FP32ZZH2.js");
45
- const css = await loadStyles();
46
- return (handle, element) => {
47
- addStyles(document.head, css);
48
- return renderContactAvatar(handle, element);
49
- };
50
- }
51
- },
52
- {
53
- type: "patchwork:tool",
54
- id: "contact-inline",
55
- name: "Inline Contact Avatar",
56
- supportedDatatypes: ["contact"],
57
- async load() {
58
- const { renderInlineContactAvatar } = await import("./InlineContactAvatar-VZDPEZV2.js");
59
- const css = await loadStyles();
60
- return (handle, element) => {
61
- addStyles(document.head, css);
62
- return renderInlineContactAvatar(handle, element);
63
- };
64
- }
65
- }
66
- ];
67
- export {
68
- plugins
69
- };
70
- //# sourceMappingURL=tool.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/tool.ts"],
4
- "sourcesContent": ["import type { ToolImplementation } from \"@inkandswitch/patchwork-plugins\";\nimport \"./styles.css\";\n\nfunction addStyles(element: HTMLElement, textContent: string) {\n const id = \"contact-styles\";\n const el = element.querySelector(`#${id}`) ?? document.createElement(\"style\");\n Object.assign(el, { textContent, id });\n element.append(el);\n}\n\nasync function loadStyles() {\n const url = new URL(\"./tool.css\", import.meta.url);\n return (await fetch(url)).text();\n}\n\nexport const plugins = [\n {\n type: \"patchwork:datatype\",\n id: \"contact\",\n name: \"Contact\",\n icon: \"User\",\n unlisted: true,\n async load() {\n const { ContactDatatype } = await import(\"./datatype\");\n return ContactDatatype;\n },\n },\n {\n type: \"patchwork:tool\",\n id: \"contact\",\n name: \"Contact Viewer\",\n supportedDatatypes: [\"contact\"],\n async load(): Promise<ToolImplementation> {\n const { renderContactViewer } =\n await import(\"./components/ContactViewer\");\n const css = await loadStyles();\n return (handle, element) => {\n addStyles(document.head, css);\n return renderContactViewer(handle, element);\n };\n },\n },\n {\n type: \"patchwork:tool\",\n id: \"contact-avatar\",\n name: \"Contact Avatar\",\n supportedDatatypes: [\"contact\"],\n async load(): Promise<ToolImplementation> {\n const { renderContactAvatar } =\n await import(\"./components/ContactAvatar\");\n const css = await loadStyles();\n return (handle, element) => {\n addStyles(document.head, css);\n return renderContactAvatar(handle, element);\n };\n },\n },\n {\n type: \"patchwork:tool\",\n id: \"contact-inline\",\n name: \"Inline Contact Avatar\",\n supportedDatatypes: [\"contact\"],\n async load(): Promise<ToolImplementation> {\n const { renderInlineContactAvatar } =\n await import(\"./components/InlineContactAvatar\");\n const css = await loadStyles();\n return (handle, element) => {\n addStyles(document.head, css);\n return renderInlineContactAvatar(handle, element);\n };\n },\n },\n];\n"],
5
- "mappings": ";AAGA,SAAS,UAAU,SAAsB,aAAqB;AAC5D,QAAM,KAAK;AACX,QAAM,KAAK,QAAQ,cAAc,IAAI,EAAE,EAAE,KAAK,SAAS,cAAc,OAAO;AAC5E,SAAO,OAAO,IAAI,EAAE,aAAa,GAAG,CAAC;AACrC,UAAQ,OAAO,EAAE;AACnB;AAEA,eAAe,aAAa;AAC1B,QAAM,MAAM,IAAI,IAAI,cAAc,YAAY,GAAG;AACjD,UAAQ,MAAM,MAAM,GAAG,GAAG,KAAK;AACjC;AAEO,IAAM,UAAU;AAAA,EACrB;AAAA,IACE,MAAM;AAAA,IACN,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,MAAM;AAAA,IACN,UAAU;AAAA,IACV,MAAM,OAAO;AACX,YAAM,EAAE,gBAAgB,IAAI,MAAM,OAAO,wBAAY;AACrD,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,oBAAoB,CAAC,SAAS;AAAA,IAC9B,MAAM,OAAoC;AACxC,YAAM,EAAE,oBAAoB,IAC1B,MAAM,OAAO,6BAA4B;AAC3C,YAAM,MAAM,MAAM,WAAW;AAC7B,aAAO,CAAC,QAAQ,YAAY;AAC1B,kBAAU,SAAS,MAAM,GAAG;AAC5B,eAAO,oBAAoB,QAAQ,OAAO;AAAA,MAC5C;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,oBAAoB,CAAC,SAAS;AAAA,IAC9B,MAAM,OAAoC;AACxC,YAAM,EAAE,oBAAoB,IAC1B,MAAM,OAAO,6BAA4B;AAC3C,YAAM,MAAM,MAAM,WAAW;AAC7B,aAAO,CAAC,QAAQ,YAAY;AAC1B,kBAAU,SAAS,MAAM,GAAG;AAC5B,eAAO,oBAAoB,QAAQ,OAAO;AAAA,MAC5C;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,oBAAoB,CAAC,SAAS;AAAA,IAC9B,MAAM,OAAoC;AACxC,YAAM,EAAE,0BAA0B,IAChC,MAAM,OAAO,mCAAkC;AACjD,YAAM,MAAM,MAAM,WAAW;AAC7B,aAAO,CAAC,QAAQ,YAAY;AAC1B,kBAAU,SAAS,MAAM,GAAG;AAC5B,eAAO,0BAA0B,QAAQ,OAAO;AAAA,MAClD;AAAA,IACF;AAAA,EACF;AACF;",
6
- "names": []
7
- }