ompchamber 0.3.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 (938) hide show
  1. package/README.md +253 -0
  2. package/dist/client/apple-touch-icon.png +0 -0
  3. package/dist/client/icon-192x192.png +0 -0
  4. package/dist/client/icon-512x512.png +0 -0
  5. package/dist/client/icon-maskable-512x512.png +0 -0
  6. package/dist/client/icon.svg +60 -0
  7. package/dist/client/index.html +41 -0
  8. package/dist/client/manifest.webmanifest +38 -0
  9. package/dist/client/static/css/g.f36aa429fa.css +1 -0
  10. package/dist/client/static/css/index.a0f07455bd.css +2 -0
  11. package/dist/client/static/css/katex-vendor.ca3a0600e8.css +1 -0
  12. package/dist/client/static/font/KaTeX_AMS-Regular.1608a09b4a.woff +0 -0
  13. package/dist/client/static/font/KaTeX_AMS-Regular.4aafdb685c.ttf +0 -0
  14. package/dist/client/static/font/KaTeX_AMS-Regular.a79f1c3119.woff2 +0 -0
  15. package/dist/client/static/font/KaTeX_Caligraphic-Bold.b67709187b.woff +0 -0
  16. package/dist/client/static/font/KaTeX_Caligraphic-Bold.cce5b8ecea.ttf +0 -0
  17. package/dist/client/static/font/KaTeX_Caligraphic-Bold.ec17d13264.woff2 +0 -0
  18. package/dist/client/static/font/KaTeX_Caligraphic-Regular.07ef19e7b0.ttf +0 -0
  19. package/dist/client/static/font/KaTeX_Caligraphic-Regular.55fac25845.woff2 +0 -0
  20. package/dist/client/static/font/KaTeX_Caligraphic-Regular.dad44a7fc6.woff +0 -0
  21. package/dist/client/static/font/KaTeX_Fraktur-Bold.9f256b8593.woff +0 -0
  22. package/dist/client/static/font/KaTeX_Fraktur-Bold.b18f59e1d1.ttf +0 -0
  23. package/dist/client/static/font/KaTeX_Fraktur-Bold.d42a5579b0.woff2 +0 -0
  24. package/dist/client/static/font/KaTeX_Fraktur-Regular.7c1871215e.woff +0 -0
  25. package/dist/client/static/font/KaTeX_Fraktur-Regular.d3c882a649.woff2 +0 -0
  26. package/dist/client/static/font/KaTeX_Fraktur-Regular.ed38e79f57.ttf +0 -0
  27. package/dist/client/static/font/KaTeX_Main-Bold.b74a1a8b2c.ttf +0 -0
  28. package/dist/client/static/font/KaTeX_Main-Bold.c3fb5ac22f.woff2 +0 -0
  29. package/dist/client/static/font/KaTeX_Main-Bold.d181c4650d.woff +0 -0
  30. package/dist/client/static/font/KaTeX_Main-BoldItalic.6f2bb1dff2.woff2 +0 -0
  31. package/dist/client/static/font/KaTeX_Main-BoldItalic.70d8b0a530.ttf +0 -0
  32. package/dist/client/static/font/KaTeX_Main-BoldItalic.e3f82f9d27.woff +0 -0
  33. package/dist/client/static/font/KaTeX_Main-Italic.47373d1e51.ttf +0 -0
  34. package/dist/client/static/font/KaTeX_Main-Italic.8916142bec.woff2 +0 -0
  35. package/dist/client/static/font/KaTeX_Main-Italic.9024d815ba.woff +0 -0
  36. package/dist/client/static/font/KaTeX_Main-Regular.0462f03bdf.woff2 +0 -0
  37. package/dist/client/static/font/KaTeX_Main-Regular.7f51fe0340.woff +0 -0
  38. package/dist/client/static/font/KaTeX_Main-Regular.b7f8fe9b5f.ttf +0 -0
  39. package/dist/client/static/font/KaTeX_Math-BoldItalic.572d331f69.woff2 +0 -0
  40. package/dist/client/static/font/KaTeX_Math-BoldItalic.a879cf8383.ttf +0 -0
  41. package/dist/client/static/font/KaTeX_Math-BoldItalic.f1035d8d5d.woff +0 -0
  42. package/dist/client/static/font/KaTeX_Math-Italic.5295ba483a.woff +0 -0
  43. package/dist/client/static/font/KaTeX_Math-Italic.939bc64440.ttf +0 -0
  44. package/dist/client/static/font/KaTeX_Math-Italic.f28c23acad.woff2 +0 -0
  45. package/dist/client/static/font/KaTeX_SansSerif-Bold.8c5b5494b6.woff2 +0 -0
  46. package/dist/client/static/font/KaTeX_SansSerif-Bold.94e1e8dc5f.ttf +0 -0
  47. package/dist/client/static/font/KaTeX_SansSerif-Bold.bf59d231c3.woff +0 -0
  48. package/dist/client/static/font/KaTeX_SansSerif-Italic.3b1e59b3ba.woff2 +0 -0
  49. package/dist/client/static/font/KaTeX_SansSerif-Italic.7c9bc82b17.woff +0 -0
  50. package/dist/client/static/font/KaTeX_SansSerif-Italic.b4c20c84d8.ttf +0 -0
  51. package/dist/client/static/font/KaTeX_SansSerif-Regular.740484788f.woff +0 -0
  52. package/dist/client/static/font/KaTeX_SansSerif-Regular.ba21ed5f84.woff2 +0 -0
  53. package/dist/client/static/font/KaTeX_SansSerif-Regular.d4d7ba4804.ttf +0 -0
  54. package/dist/client/static/font/KaTeX_Script-Regular.03e9641d6f.woff2 +0 -0
  55. package/dist/client/static/font/KaTeX_Script-Regular.0750571032.woff +0 -0
  56. package/dist/client/static/font/KaTeX_Script-Regular.fe9cbbe1a0.ttf +0 -0
  57. package/dist/client/static/font/KaTeX_Size1-Regular.e1e279cbdd.woff +0 -0
  58. package/dist/client/static/font/KaTeX_Size1-Regular.eae34984b3.woff2 +0 -0
  59. package/dist/client/static/font/KaTeX_Size1-Regular.fabc004aab.ttf +0 -0
  60. package/dist/client/static/font/KaTeX_Size2-Regular.577270225e.woff +0 -0
  61. package/dist/client/static/font/KaTeX_Size2-Regular.5916a24fa3.woff2 +0 -0
  62. package/dist/client/static/font/KaTeX_Size2-Regular.d6b476ecd3.ttf +0 -0
  63. package/dist/client/static/font/KaTeX_Size3-Regular.9acaf01c64.woff +0 -0
  64. package/dist/client/static/font/KaTeX_Size3-Regular.a144ef5840.ttf +0 -0
  65. package/dist/client/static/font/KaTeX_Size4-Regular.10d95fd3a2.woff2 +0 -0
  66. package/dist/client/static/font/KaTeX_Size4-Regular.7a996c9da2.woff +0 -0
  67. package/dist/client/static/font/KaTeX_Size4-Regular.fbccdabe0a.ttf +0 -0
  68. package/dist/client/static/font/KaTeX_Typewriter-Regular.6258592bdc.woff +0 -0
  69. package/dist/client/static/font/KaTeX_Typewriter-Regular.a8709e3622.woff2 +0 -0
  70. package/dist/client/static/font/KaTeX_Typewriter-Regular.d97aaf4a1e.ttf +0 -0
  71. package/dist/client/static/font/fira-code-cyrillic-400-normal.5971438a4a.woff2 +0 -0
  72. package/dist/client/static/font/fira-code-cyrillic-400-normal.9bb7bfea9c.woff +0 -0
  73. package/dist/client/static/font/fira-code-cyrillic-500-normal.5486265b18.woff2 +0 -0
  74. package/dist/client/static/font/fira-code-cyrillic-500-normal.89f92bfb31.woff +0 -0
  75. package/dist/client/static/font/fira-code-cyrillic-600-normal.2805b497e5.woff +0 -0
  76. package/dist/client/static/font/fira-code-cyrillic-600-normal.86e0df22a3.woff2 +0 -0
  77. package/dist/client/static/font/fira-code-cyrillic-700-normal.505a88f22a.woff +0 -0
  78. package/dist/client/static/font/fira-code-cyrillic-700-normal.76f5e8d2e2.woff2 +0 -0
  79. package/dist/client/static/font/fira-code-cyrillic-ext-400-normal.3c4b15e57d.woff2 +0 -0
  80. package/dist/client/static/font/fira-code-cyrillic-ext-400-normal.61323debaa.woff +0 -0
  81. package/dist/client/static/font/fira-code-cyrillic-ext-500-normal.0f34210f2a.woff2 +0 -0
  82. package/dist/client/static/font/fira-code-cyrillic-ext-500-normal.2497cfa1aa.woff +0 -0
  83. package/dist/client/static/font/fira-code-cyrillic-ext-600-normal.40fce94af9.woff2 +0 -0
  84. package/dist/client/static/font/fira-code-cyrillic-ext-600-normal.6c8774b829.woff +0 -0
  85. package/dist/client/static/font/fira-code-cyrillic-ext-700-normal.4b742eb865.woff +0 -0
  86. package/dist/client/static/font/fira-code-cyrillic-ext-700-normal.e75eb4fccc.woff2 +0 -0
  87. package/dist/client/static/font/fira-code-greek-400-normal.bb900468b6.woff2 +0 -0
  88. package/dist/client/static/font/fira-code-greek-400-normal.be76e699ba.woff +0 -0
  89. package/dist/client/static/font/fira-code-greek-500-normal.176c9fb001.woff2 +0 -0
  90. package/dist/client/static/font/fira-code-greek-500-normal.d2c596136b.woff +0 -0
  91. package/dist/client/static/font/fira-code-greek-600-normal.490c3deed7.woff +0 -0
  92. package/dist/client/static/font/fira-code-greek-600-normal.7df14376d9.woff2 +0 -0
  93. package/dist/client/static/font/fira-code-greek-700-normal.c82b6072fc.woff2 +0 -0
  94. package/dist/client/static/font/fira-code-greek-700-normal.d5f2b2917b.woff +0 -0
  95. package/dist/client/static/font/fira-code-greek-ext-400-normal.4849a79781.woff +0 -0
  96. package/dist/client/static/font/fira-code-greek-ext-400-normal.7f5bfc4538.woff2 +0 -0
  97. package/dist/client/static/font/fira-code-greek-ext-500-normal.aaccca4075.woff2 +0 -0
  98. package/dist/client/static/font/fira-code-greek-ext-500-normal.e383181256.woff +0 -0
  99. package/dist/client/static/font/fira-code-greek-ext-600-normal.78cb4bff8e.woff +0 -0
  100. package/dist/client/static/font/fira-code-greek-ext-600-normal.d6c93d54f9.woff2 +0 -0
  101. package/dist/client/static/font/fira-code-greek-ext-700-normal.57ec7c92d9.woff +0 -0
  102. package/dist/client/static/font/fira-code-greek-ext-700-normal.8fafdae5e8.woff2 +0 -0
  103. package/dist/client/static/font/fira-code-latin-400-normal.2655b10c55.woff2 +0 -0
  104. package/dist/client/static/font/fira-code-latin-400-normal.973295532b.woff +0 -0
  105. package/dist/client/static/font/fira-code-latin-500-normal.7ae2be8fb8.woff +0 -0
  106. package/dist/client/static/font/fira-code-latin-500-normal.92a991f204.woff2 +0 -0
  107. package/dist/client/static/font/fira-code-latin-600-normal.1dbbe5bc27.woff +0 -0
  108. package/dist/client/static/font/fira-code-latin-600-normal.43788eb7f1.woff2 +0 -0
  109. package/dist/client/static/font/fira-code-latin-700-normal.2667215d33.woff2 +0 -0
  110. package/dist/client/static/font/fira-code-latin-700-normal.497a70148b.woff +0 -0
  111. package/dist/client/static/font/fira-code-latin-ext-400-normal.9dfae29aaf.woff +0 -0
  112. package/dist/client/static/font/fira-code-latin-ext-400-normal.e534ae46e2.woff2 +0 -0
  113. package/dist/client/static/font/fira-code-latin-ext-500-normal.24c7b781b0.woff +0 -0
  114. package/dist/client/static/font/fira-code-latin-ext-500-normal.aad44ab072.woff2 +0 -0
  115. package/dist/client/static/font/fira-code-latin-ext-600-normal.7bed0f2f7e.woff +0 -0
  116. package/dist/client/static/font/fira-code-latin-ext-600-normal.c509a7c9f1.woff2 +0 -0
  117. package/dist/client/static/font/fira-code-latin-ext-700-normal.6c66c8b0a9.woff2 +0 -0
  118. package/dist/client/static/font/fira-code-latin-ext-700-normal.88f64e2822.woff +0 -0
  119. package/dist/client/static/font/fira-code-symbols2-400-normal.97d3f4b17c.woff +0 -0
  120. package/dist/client/static/font/fira-code-symbols2-500-normal.b06f1a06e4.woff +0 -0
  121. package/dist/client/static/font/fira-code-symbols2-600-normal.304b653b93.woff +0 -0
  122. package/dist/client/static/font/fira-code-symbols2-700-normal.d8ce0ad586.woff +0 -0
  123. package/dist/client/static/js/async/0.8e59f2eb5b.js +1 -0
  124. package/dist/client/static/js/async/0k.5852e6b4fa.js +1 -0
  125. package/dist/client/static/js/async/0w.9ed36d5860.js +1 -0
  126. package/dist/client/static/js/async/1.f387c12b63.js +1 -0
  127. package/dist/client/static/js/async/12.d091f91c99.js +1 -0
  128. package/dist/client/static/js/async/13.8f810a8a6c.js +1 -0
  129. package/dist/client/static/js/async/19.6fe909d55a.js +160 -0
  130. package/dist/client/static/js/async/1b.23f1141a38.js +1 -0
  131. package/dist/client/static/js/async/1k.544adbf77d.js +2 -0
  132. package/dist/client/static/js/async/1k.544adbf77d.js.LICENSE.txt +6 -0
  133. package/dist/client/static/js/async/1p.0d5cddda96.js +1 -0
  134. package/dist/client/static/js/async/2.b589f1733b.js +1 -0
  135. package/dist/client/static/js/async/2v.96165101de.js +1 -0
  136. package/dist/client/static/js/async/3.0cacc08423.js +1 -0
  137. package/dist/client/static/js/async/37.b28b2f61cd.js +1 -0
  138. package/dist/client/static/js/async/3d.5085fb913f.js +1 -0
  139. package/dist/client/static/js/async/3j.a2fcea99be.js +2 -0
  140. package/dist/client/static/js/async/3j.a2fcea99be.js.LICENSE.txt +11 -0
  141. package/dist/client/static/js/async/3p.bcf32a0983.js +1 -0
  142. package/dist/client/static/js/async/3r.3a69e98ee0.js +64 -0
  143. package/dist/client/static/js/async/3u.1228460e2a.js +1 -0
  144. package/dist/client/static/js/async/3y.22075aa079.js +198 -0
  145. package/dist/client/static/js/async/3y.22075aa079.js.LICENSE.txt +5 -0
  146. package/dist/client/static/js/async/4.9442eeb472.js +1 -0
  147. package/dist/client/static/js/async/4e.678285ca55.js +1 -0
  148. package/dist/client/static/js/async/4k.33a0c7eeb4.js +1 -0
  149. package/dist/client/static/js/async/4q.aad20dab25.js +1 -0
  150. package/dist/client/static/js/async/5.ebaf8b89cc.js +36 -0
  151. package/dist/client/static/js/async/51.1938cec320.js +2 -0
  152. package/dist/client/static/js/async/51.1938cec320.js.LICENSE.txt +6 -0
  153. package/dist/client/static/js/async/5b.d88304bc13.js +1 -0
  154. package/dist/client/static/js/async/5j.d6407c4248.js +287 -0
  155. package/dist/client/static/js/async/5o.88316d4460.js +62 -0
  156. package/dist/client/static/js/async/6.7929428505.js +1 -0
  157. package/dist/client/static/js/async/66.5dfa29f957.js +93 -0
  158. package/dist/client/static/js/async/69.a18a10882f.js +1 -0
  159. package/dist/client/static/js/async/6o.5b1a06a382.js +1 -0
  160. package/dist/client/static/js/async/7.e4a9288dd0.js +1 -0
  161. package/dist/client/static/js/async/73.50280ce58d.js +1 -0
  162. package/dist/client/static/js/async/7e.a1cc9bfd88.js +1 -0
  163. package/dist/client/static/js/async/7l.7a6a377ecc.js +1 -0
  164. package/dist/client/static/js/async/8.5067439d8c.js +1 -0
  165. package/dist/client/static/js/async/8j.ea110663fb.js +1 -0
  166. package/dist/client/static/js/async/a.bce4542392.js +1 -0
  167. package/dist/client/static/js/async/aa.65d3852576.js +1 -0
  168. package/dist/client/static/js/async/ar.9dc8b1992a.js +2 -0
  169. package/dist/client/static/js/async/ar.9dc8b1992a.js.LICENSE.txt +6 -0
  170. package/dist/client/static/js/async/az.d656062b0f.js +1 -0
  171. package/dist/client/static/js/async/b.b4f6f06515.js +1 -0
  172. package/dist/client/static/js/async/bi.cbfe8eaa8e.js +1 -0
  173. package/dist/client/static/js/async/bq.586bc738d1.js +1 -0
  174. package/dist/client/static/js/async/c.cd45b0ac45.js +1 -0
  175. package/dist/client/static/js/async/c0.0af1e640d3.js +24 -0
  176. package/dist/client/static/js/async/ca.8a52cfd447.js +1 -0
  177. package/dist/client/static/js/async/cf.d34fff5d67.js +1 -0
  178. package/dist/client/static/js/async/ct.38d9da8a5a.js +1 -0
  179. package/dist/client/static/js/async/cx.ca5feec570.js +226 -0
  180. package/dist/client/static/js/async/d.a5fc8fe1b3.js +1 -0
  181. package/dist/client/static/js/async/da.f62c70f6c8.js +1 -0
  182. package/dist/client/static/js/async/dp.1725d6432c.js +1 -0
  183. package/dist/client/static/js/async/e.93214d622b.js +79 -0
  184. package/dist/client/static/js/async/f.ab50467719.js +19 -0
  185. package/dist/client/static/js/async/f.ab50467719.js.LICENSE.txt +12 -0
  186. package/dist/client/static/js/async/f8.bbf0dbae70.js +1 -0
  187. package/dist/client/static/js/async/fw.fb1a08b92d.js +6 -0
  188. package/dist/client/static/js/async/fw.fb1a08b92d.js.LICENSE.txt +6 -0
  189. package/dist/client/static/js/async/h.4e790471e4.js +27 -0
  190. package/dist/client/static/js/async/h1.e8d5aa8e80.js +1 -0
  191. package/dist/client/static/js/async/h3.216e9798ab.js +148 -0
  192. package/dist/client/static/js/async/hd.0da931b622.js +1 -0
  193. package/dist/client/static/js/async/hk.ba7fb04d41.js +1 -0
  194. package/dist/client/static/js/async/hn.7568bdb58b.js +1 -0
  195. package/dist/client/static/js/async/ho.475a5e1ae4.js +1 -0
  196. package/dist/client/static/js/async/hp.e9fe2e395a.js +2 -0
  197. package/dist/client/static/js/async/hp.e9fe2e395a.js.LICENSE.txt +17 -0
  198. package/dist/client/static/js/async/hs.6d480d0ded.js +41 -0
  199. package/dist/client/static/js/async/i.7c148e8440.js +1 -0
  200. package/dist/client/static/js/async/id.573df20f29.js +1 -0
  201. package/dist/client/static/js/async/j.ab925882d8.js +1 -0
  202. package/dist/client/static/js/async/jd.63886a1f09.js +1 -0
  203. package/dist/client/static/js/async/jg.69a4beade8.js +86 -0
  204. package/dist/client/static/js/async/jl.874d352278.js +1 -0
  205. package/dist/client/static/js/async/jll.11313b455a.js +1 -0
  206. package/dist/client/static/js/async/js.67182759ef.js +1 -0
  207. package/dist/client/static/js/async/jsc.23b70d6f40.js +1 -0
  208. package/dist/client/static/js/async/jse.334588ff5d.js +1 -0
  209. package/dist/client/static/js/async/jz.72eb929106.js +77 -0
  210. package/dist/client/static/js/async/k.e878dd350f.js +217 -0
  211. package/dist/client/static/js/async/ka.c1990ecaa3.js +115 -0
  212. package/dist/client/static/js/async/ku.29c8a59d0c.js +1 -0
  213. package/dist/client/static/js/async/ky.8dab1dade0.js +1 -0
  214. package/dist/client/static/js/async/l.102a97fce6.js +104 -0
  215. package/dist/client/static/js/async/l6.45f3b62e15.js +1 -0
  216. package/dist/client/static/js/async/l9.949710adaf.js +83 -0
  217. package/dist/client/static/js/async/l9.949710adaf.js.LICENSE.txt +13 -0
  218. package/dist/client/static/js/async/m.3fc017a055.js +28 -0
  219. package/dist/client/static/js/async/m.3fc017a055.js.LICENSE.txt +6 -0
  220. package/dist/client/static/js/async/me.8ace414f80.js +23 -0
  221. package/dist/client/static/js/async/mt.0352e976d8.js +1 -0
  222. package/dist/client/static/js/async/n.a9f1c51701.js +1 -0
  223. package/dist/client/static/js/async/na.a36cd532d6.js +1 -0
  224. package/dist/client/static/js/async/nk.6de011832e.js +1 -0
  225. package/dist/client/static/js/async/o.36353dfb88.js +1 -0
  226. package/dist/client/static/js/async/oc.9c060c9779.js +8 -0
  227. package/dist/client/static/js/async/og.ae7acf03ac.js +193 -0
  228. package/dist/client/static/js/async/p.48ecfcd14e.js +1 -0
  229. package/dist/client/static/js/async/px.783b6f91f2.js +1 -0
  230. package/dist/client/static/js/async/q.0b6fb9bf8d.js +21 -0
  231. package/dist/client/static/js/async/q.0b6fb9bf8d.js.LICENSE.txt +6 -0
  232. package/dist/client/static/js/async/q5.e683f7c26e.js +286 -0
  233. package/dist/client/static/js/async/qs.2a9ddb3c72.js +1 -0
  234. package/dist/client/static/js/async/r.51010ad87c.js +1 -0
  235. package/dist/client/static/js/async/rd.b77011ab7f.js +2 -0
  236. package/dist/client/static/js/async/rd.b77011ab7f.js.LICENSE.txt +4 -0
  237. package/dist/client/static/js/async/rf.cfbde7f744.js +2 -0
  238. package/dist/client/static/js/async/rf.cfbde7f744.js.LICENSE.txt +6 -0
  239. package/dist/client/static/js/async/s.c7d521a8ae.js +2 -0
  240. package/dist/client/static/js/async/s.c7d521a8ae.js.LICENSE.txt +6 -0
  241. package/dist/client/static/js/async/sy.7345abcd67.js +94 -0
  242. package/dist/client/static/js/async/t.0dcb01dfde.js +1 -0
  243. package/dist/client/static/js/async/t9.d44f57d518.js +1 -0
  244. package/dist/client/static/js/async/ta.973534bbec.js +1 -0
  245. package/dist/client/static/js/async/ty.3d93cf5f5f.js +1 -0
  246. package/dist/client/static/js/async/u.0871ac5b22.js +1 -0
  247. package/dist/client/static/js/async/up.ea990da0ff.js +32 -0
  248. package/dist/client/static/js/async/uw.8890abbabc.js +1 -0
  249. package/dist/client/static/js/async/v.5c7a4b087b.js +1 -0
  250. package/dist/client/static/js/async/vn.e98e2f3b61.js +309 -0
  251. package/dist/client/static/js/async/vp.9b13bf8610.js +1 -0
  252. package/dist/client/static/js/async/vu.311f1d202c.js +34 -0
  253. package/dist/client/static/js/async/w.08ac210f60.js +1 -0
  254. package/dist/client/static/js/async/wt.ad92393a90.js +1 -0
  255. package/dist/client/static/js/async/x.563f72ca6b.js +1 -0
  256. package/dist/client/static/js/async/x0.475516418f.js +1 -0
  257. package/dist/client/static/js/async/x1.da8687159b.js +90 -0
  258. package/dist/client/static/js/async/xl.a3c562a58c.js +1 -0
  259. package/dist/client/static/js/async/xn.afecebbbd9.js +2 -0
  260. package/dist/client/static/js/async/xn.afecebbbd9.js.LICENSE.txt +12 -0
  261. package/dist/client/static/js/async/y.1a9ed7a5d8.js +1 -0
  262. package/dist/client/static/js/async/y6.43c57defe4.js +1 -0
  263. package/dist/client/static/js/async/yb.8c1342401d.js +1 -0
  264. package/dist/client/static/js/async/ybq.4491f2f2dc.js +1 -0
  265. package/dist/client/static/js/async/yg.9bd4e09ecb.js +149 -0
  266. package/dist/client/static/js/async/yq.917ddd7ba2.js +1 -0
  267. package/dist/client/static/js/async/ys.00687cf82d.js +38 -0
  268. package/dist/client/static/js/async/yv.593a3f7d54.js +1 -0
  269. package/dist/client/static/js/async/z.56f61a4374.js +1 -0
  270. package/dist/client/static/js/async/zi.5fdb07b86a.js +24 -0
  271. package/dist/client/static/js/async/zj.654f37e8ff.js +1 -0
  272. package/dist/client/static/js/async/zn.966d6f1cc6.js +1 -0
  273. package/dist/client/static/js/async/zo.26213b40c0.js +1 -0
  274. package/dist/client/static/js/async/zx.e9f4105e00.js +1 -0
  275. package/dist/client/static/js/g.124fba0826.js +139 -0
  276. package/dist/client/static/js/g.124fba0826.js.LICENSE.txt +8 -0
  277. package/dist/client/static/js/index.907fd4670e.js +68 -0
  278. package/dist/client/static/js/index.907fd4670e.js.LICENSE.txt +4 -0
  279. package/dist/client/static/js/katex-vendor.95e48cf65a.js +1 -0
  280. package/dist/client/static/js/markdown-vendor.9da142c67b.js +144 -0
  281. package/dist/client/static/js/shiki-vendor.cb8452ddcd.js +1 -0
  282. package/dist/client/sw.js +15 -0
  283. package/package.json +75 -0
  284. package/src/cli/lib/args.js +233 -0
  285. package/src/cli/lib/commands/logs.js +108 -0
  286. package/src/cli/lib/commands/restart.js +28 -0
  287. package/src/cli/lib/commands/serve.js +109 -0
  288. package/src/cli/lib/commands/status.js +63 -0
  289. package/src/cli/lib/commands/stop.js +63 -0
  290. package/src/cli/lib/commands/update.js +120 -0
  291. package/src/cli/lib/output.js +136 -0
  292. package/src/cli/lib/path-utils.js +48 -0
  293. package/src/cli/lib/path-utils.test.js +71 -0
  294. package/src/cli/lib/paths.js +60 -0
  295. package/src/cli/lib/process-lifecycle.js +110 -0
  296. package/src/cli/lib/runtime.js +280 -0
  297. package/src/cli/ompchamber.js +56 -0
  298. package/src/client/App.tsx +95 -0
  299. package/src/client/bootstrap.d.ts +12 -0
  300. package/src/client/components/common/ComposerPicker.tsx +116 -0
  301. package/src/client/components/common/ComposerTextarea.tsx +131 -0
  302. package/src/client/components/common/CopyButton.tsx +73 -0
  303. package/src/client/components/common/FolderPicker.tsx +270 -0
  304. package/src/client/components/common/MarkdownRenderer.tsx +107 -0
  305. package/src/client/components/common/Modal.tsx +75 -0
  306. package/src/client/components/common/PWAInstallButton.tsx +113 -0
  307. package/src/client/components/common/StatCard.tsx +52 -0
  308. package/src/client/components/common/StreamStatusDot.tsx +28 -0
  309. package/src/client/components/common/SubagentStatusIcon.tsx +27 -0
  310. package/src/client/components/common/Toast.tsx +79 -0
  311. package/src/client/components/common/ToastStack.tsx +18 -0
  312. package/src/client/components/common/ViewportSelector.tsx +206 -0
  313. package/src/client/components/common/code-editor/index.tsx +343 -0
  314. package/src/client/components/common/code-surface/index.tsx +75 -0
  315. package/src/client/components/common/file-icon/brand-paths.ts +62 -0
  316. package/src/client/components/common/file-icon/index.tsx +127 -0
  317. package/src/client/components/common/lazy-panels.tsx +80 -0
  318. package/src/client/components/common/session-state-provider/index.tsx +55 -0
  319. package/src/client/components/common/sort-menu/index.tsx +63 -0
  320. package/src/client/components/common/sort-menu/options.ts +24 -0
  321. package/src/client/components/common/viewport.ts +21 -0
  322. package/src/client/components/common/workspace-options-menu/index.tsx +84 -0
  323. package/src/client/components/layout/RightActivityBar.tsx +95 -0
  324. package/src/client/components/layout/desktop-layout/ResizeHandle.tsx +10 -0
  325. package/src/client/components/layout/desktop-layout/TopNavbar.tsx +94 -0
  326. package/src/client/components/layout/desktop-layout/WorkspacePanels.tsx +175 -0
  327. package/src/client/components/layout/desktop-layout/index.tsx +280 -0
  328. package/src/client/components/layout/desktop-layout/resizer/index.tsx +344 -0
  329. package/src/client/components/layout/session-sidebar/CategoryItem.tsx +264 -0
  330. package/src/client/components/layout/session-sidebar/Footer.tsx +28 -0
  331. package/src/client/components/layout/session-sidebar/Header.tsx +29 -0
  332. package/src/client/components/layout/session-sidebar/Modals.tsx +209 -0
  333. package/src/client/components/layout/session-sidebar/SessionItem.tsx +145 -0
  334. package/src/client/components/layout/session-sidebar/SessionList.tsx +52 -0
  335. package/src/client/components/layout/session-sidebar/Skeleton.tsx +36 -0
  336. package/src/client/components/layout/session-sidebar/SubagentList.tsx +152 -0
  337. package/src/client/components/layout/session-sidebar/Toolbar.tsx +123 -0
  338. package/src/client/components/layout/session-sidebar/about-modal/SocialLinks.tsx +43 -0
  339. package/src/client/components/layout/session-sidebar/about-modal/UpdateSection.tsx +172 -0
  340. package/src/client/components/layout/session-sidebar/about-modal/index.tsx +63 -0
  341. package/src/client/components/layout/session-sidebar/index.tsx +174 -0
  342. package/src/client/components/mobile/LayoutWrapper.tsx +221 -0
  343. package/src/client/components/mobile/MainView.tsx +68 -0
  344. package/src/client/components/mobile/RightSidebar.tsx +217 -0
  345. package/src/client/components/mobile/SessionSidebar.tsx +175 -0
  346. package/src/client/components/mobile/mobile-main-view/Header.tsx +264 -0
  347. package/src/client/components/mobile/mobile-right-sidebar/FullDiff.tsx +80 -0
  348. package/src/client/components/mobile/mobile-right-sidebar/FullEditor.tsx +141 -0
  349. package/src/client/components/mobile/mobile-right-sidebar/Header.tsx +121 -0
  350. package/src/client/components/mobile/mobile-session-sidebar/Footer.tsx +69 -0
  351. package/src/client/components/mobile/mobile-session-sidebar/Header.tsx +34 -0
  352. package/src/client/components/mobile/mobile-session-sidebar/Item.tsx +168 -0
  353. package/src/client/components/mobile/mobile-session-sidebar/List.tsx +53 -0
  354. package/src/client/components/mobile/mobile-session-sidebar/SessionRow.tsx +99 -0
  355. package/src/client/components/mobile/mobile-session-sidebar/Skeleton.tsx +36 -0
  356. package/src/client/components/mobile/mobile-session-sidebar/Toolbar.tsx +176 -0
  357. package/src/client/components/settings/LoadingState.tsx +22 -0
  358. package/src/client/components/settings/Modal.tsx +277 -0
  359. package/src/client/components/settings/ProjectSelectorDropdown.tsx +142 -0
  360. package/src/client/components/settings/SettingsSidebarList.tsx +122 -0
  361. package/src/client/components/settings/Sidebar.tsx +153 -0
  362. package/src/client/components/settings/categories/AgentSettings.tsx +84 -0
  363. package/src/client/components/settings/categories/AppearanceSettings.tsx +50 -0
  364. package/src/client/components/settings/categories/BehaviorSettings.tsx +73 -0
  365. package/src/client/components/settings/categories/ChatSettings.tsx +24 -0
  366. package/src/client/components/settings/categories/CommandSettings.tsx +81 -0
  367. package/src/client/components/settings/categories/McpSettings.tsx +142 -0
  368. package/src/client/components/settings/categories/NotificationSettings.tsx +97 -0
  369. package/src/client/components/settings/categories/OmpSettings.tsx +312 -0
  370. package/src/client/components/settings/categories/OtherSettings.tsx +16 -0
  371. package/src/client/components/settings/categories/ProjectSettings.tsx +176 -0
  372. package/src/client/components/settings/categories/ProviderSettings.tsx +146 -0
  373. package/src/client/components/settings/categories/SkillCatalogSettings.tsx +309 -0
  374. package/src/client/components/settings/categories/SkillSettings.tsx +69 -0
  375. package/src/client/components/settings/categories/TokenUsageSettings.tsx +264 -0
  376. package/src/client/components/settings/categories/UsageSettings.tsx +77 -0
  377. package/src/client/components/settings/categories/agent-settings/DetailPane.tsx +333 -0
  378. package/src/client/components/settings/categories/agent-settings/SidebarList.tsx +42 -0
  379. package/src/client/components/settings/categories/behavior-settings/Editor.tsx +244 -0
  380. package/src/client/components/settings/categories/chat-settings/FollowUpSection.tsx +120 -0
  381. package/src/client/components/settings/categories/chat-settings/KeybindingsSection.tsx +107 -0
  382. package/src/client/components/settings/categories/chat-settings/TransportSection.tsx +101 -0
  383. package/src/client/components/settings/categories/command-settings/DetailPane.tsx +292 -0
  384. package/src/client/components/settings/categories/command-settings/SidebarList.tsx +39 -0
  385. package/src/client/components/settings/categories/mcp-settings/ConnectionTest.tsx +89 -0
  386. package/src/client/components/settings/categories/mcp-settings/DetailPane.tsx +311 -0
  387. package/src/client/components/settings/categories/mcp-settings/ImportModal.tsx +161 -0
  388. package/src/client/components/settings/categories/mcp-settings/SidebarList.tsx +120 -0
  389. package/src/client/components/settings/categories/omp-settings/ConfigTabs.tsx +243 -0
  390. package/src/client/components/settings/categories/omp-settings/ExtensionsPanel.tsx +61 -0
  391. package/src/client/components/settings/categories/omp-settings/RoleEditor.tsx +66 -0
  392. package/src/client/components/settings/categories/omp-settings/RowEditor.tsx +337 -0
  393. package/src/client/components/settings/categories/project-settings/AccentPalette.tsx +76 -0
  394. package/src/client/components/settings/categories/project-settings/DetailsForm.tsx +71 -0
  395. package/src/client/components/settings/categories/project-settings/DetailsHeader.tsx +38 -0
  396. package/src/client/components/settings/categories/project-settings/IconGrid.tsx +152 -0
  397. package/src/client/components/settings/categories/project-settings/ModelDropdown.tsx +95 -0
  398. package/src/client/components/settings/categories/project-settings/NameInput.tsx +26 -0
  399. package/src/client/components/settings/categories/project-settings/SidebarList.tsx +100 -0
  400. package/src/client/components/settings/categories/provider-settings/AddProviderModal.tsx +201 -0
  401. package/src/client/components/settings/categories/provider-settings/AuthSection.tsx +121 -0
  402. package/src/client/components/settings/categories/provider-settings/Header.tsx +22 -0
  403. package/src/client/components/settings/categories/provider-settings/Icons.tsx +35 -0
  404. package/src/client/components/settings/categories/provider-settings/LoginModal.tsx +224 -0
  405. package/src/client/components/settings/categories/provider-settings/ModelCapabilitiesModal.tsx +114 -0
  406. package/src/client/components/settings/categories/provider-settings/ModelConfigModal.tsx +155 -0
  407. package/src/client/components/settings/categories/provider-settings/ModelsList.tsx +191 -0
  408. package/src/client/components/settings/categories/provider-settings/ReconnectModal.tsx +163 -0
  409. package/src/client/components/settings/categories/provider-settings/SidebarList.tsx +133 -0
  410. package/src/client/components/settings/categories/skill-catalog/AddSourceModal.tsx +133 -0
  411. package/src/client/components/settings/categories/skill-settings/DetailPane.tsx +210 -0
  412. package/src/client/components/settings/categories/skill-settings/SidebarList.tsx +164 -0
  413. package/src/client/components/settings/categories/token-usage-settings/Breakdown.tsx +127 -0
  414. package/src/client/components/settings/categories/token-usage-settings/Chart.tsx +74 -0
  415. package/src/client/components/settings/categories/token-usage-settings/MetricsGrid.tsx +44 -0
  416. package/src/client/components/settings/categories/usage-settings/DeepSeekCard.tsx +66 -0
  417. package/src/client/components/settings/categories/usage-settings/KenariCard.tsx +68 -0
  418. package/src/client/components/settings/categories/usage-settings/ProviderCard.tsx +52 -0
  419. package/src/client/components/settings/categories/usage-settings/ProviderDetail.tsx +39 -0
  420. package/src/client/components/settings/categories/usage-settings/QuotaSection.tsx +93 -0
  421. package/src/client/components/settings/categories/usage-settings/SidebarList.tsx +77 -0
  422. package/src/client/components/settings/categories/usage-settings/UsageTable.tsx +66 -0
  423. package/src/client/components/settings/categories/usage-settings/format.ts +63 -0
  424. package/src/client/components/settings/categories/usage-settings/providers.ts +45 -0
  425. package/src/client/components/workspace/SearchPanel.tsx +259 -0
  426. package/src/client/components/workspace/browser-panel/ActivityToasts.tsx +46 -0
  427. package/src/client/components/workspace/browser-panel/AddressBar.tsx +84 -0
  428. package/src/client/components/workspace/browser-panel/Screencast.tsx +109 -0
  429. package/src/client/components/workspace/browser-panel/index.tsx +69 -0
  430. package/src/client/components/workspace/browser-toolbar/ZoomControls.tsx +48 -0
  431. package/src/client/components/workspace/browser-toolbar/index.tsx +140 -0
  432. package/src/client/components/workspace/chat-timeline/AiMessageFooter.tsx +250 -0
  433. package/src/client/components/workspace/chat-timeline/AttachmentChips.tsx +119 -0
  434. package/src/client/components/workspace/chat-timeline/ComposerDock.tsx +121 -0
  435. package/src/client/components/workspace/chat-timeline/EmptyWorkspacePrompt.tsx +220 -0
  436. package/src/client/components/workspace/chat-timeline/GeneratingIndicator.tsx +94 -0
  437. package/src/client/components/workspace/chat-timeline/MessageItem.tsx +321 -0
  438. package/src/client/components/workspace/chat-timeline/MessageList.tsx +122 -0
  439. package/src/client/components/workspace/chat-timeline/MinimapShortcuts.tsx +47 -0
  440. package/src/client/components/workspace/chat-timeline/NewChatModal.tsx +69 -0
  441. package/src/client/components/workspace/chat-timeline/QueueList.tsx +94 -0
  442. package/src/client/components/workspace/chat-timeline/SessionSkeleton.tsx +89 -0
  443. package/src/client/components/workspace/chat-timeline/SubagentView.tsx +148 -0
  444. package/src/client/components/workspace/chat-timeline/SystemNotice.tsx +209 -0
  445. package/src/client/components/workspace/chat-timeline/TaskResultContent.tsx +175 -0
  446. package/src/client/components/workspace/chat-timeline/ThinkingSection.tsx +130 -0
  447. package/src/client/components/workspace/chat-timeline/TimelineBody.tsx +130 -0
  448. package/src/client/components/workspace/chat-timeline/ToolCallCard.tsx +291 -0
  449. package/src/client/components/workspace/chat-timeline/ToolCallingSection.tsx +96 -0
  450. package/src/client/components/workspace/chat-timeline/UndoConfirmModal.tsx +83 -0
  451. package/src/client/components/workspace/chat-timeline/chat-input/AccessDropdown.tsx +53 -0
  452. package/src/client/components/workspace/chat-timeline/chat-input/AttachmentToolbar.tsx +63 -0
  453. package/src/client/components/workspace/chat-timeline/chat-input/ThinkingLevelDropdown.tsx +49 -0
  454. package/src/client/components/workspace/chat-timeline/chat-input/Toolbar.tsx +108 -0
  455. package/src/client/components/workspace/chat-timeline/chat-input/access-levels.ts +14 -0
  456. package/src/client/components/workspace/chat-timeline/chat-input/index.tsx +341 -0
  457. package/src/client/components/workspace/chat-timeline/index.tsx +290 -0
  458. package/src/client/components/workspace/chat-timeline/tool-renderers/ask-dialog/Footer.tsx +97 -0
  459. package/src/client/components/workspace/chat-timeline/tool-renderers/ask-dialog/Header.tsx +52 -0
  460. package/src/client/components/workspace/chat-timeline/tool-renderers/ask-dialog/Lazy.tsx +24 -0
  461. package/src/client/components/workspace/chat-timeline/tool-renderers/ask-dialog/SelectBody.tsx +110 -0
  462. package/src/client/components/workspace/chat-timeline/tool-renderers/ask-dialog/index.tsx +321 -0
  463. package/src/client/components/workspace/chat-timeline/tool-renderers/hashline-patch/index.tsx +92 -0
  464. package/src/client/components/workspace/chat-timeline/tool-renderers/index.tsx +160 -0
  465. package/src/client/components/workspace/chat-timeline/tool-renderers/panels/Ask.tsx +205 -0
  466. package/src/client/components/workspace/chat-timeline/tool-renderers/panels/AstEdit.tsx +202 -0
  467. package/src/client/components/workspace/chat-timeline/tool-renderers/panels/Bash.tsx +223 -0
  468. package/src/client/components/workspace/chat-timeline/tool-renderers/panels/Checkpoint.tsx +49 -0
  469. package/src/client/components/workspace/chat-timeline/tool-renderers/panels/ContextNotes.tsx +66 -0
  470. package/src/client/components/workspace/chat-timeline/tool-renderers/panels/Debug.tsx +91 -0
  471. package/src/client/components/workspace/chat-timeline/tool-renderers/panels/Edit.tsx +288 -0
  472. package/src/client/components/workspace/chat-timeline/tool-renderers/panels/Eval.tsx +202 -0
  473. package/src/client/components/workspace/chat-timeline/tool-renderers/panels/Github.tsx +91 -0
  474. package/src/client/components/workspace/chat-timeline/tool-renderers/panels/Goal.tsx +247 -0
  475. package/src/client/components/workspace/chat-timeline/tool-renderers/panels/Hub.tsx +273 -0
  476. package/src/client/components/workspace/chat-timeline/tool-renderers/panels/Lsp.tsx +276 -0
  477. package/src/client/components/workspace/chat-timeline/tool-renderers/panels/ManageSkill.tsx +93 -0
  478. package/src/client/components/workspace/chat-timeline/tool-renderers/panels/Mcp.tsx +143 -0
  479. package/src/client/components/workspace/chat-timeline/tool-renderers/panels/Memory.tsx +93 -0
  480. package/src/client/components/workspace/chat-timeline/tool-renderers/panels/Read.tsx +246 -0
  481. package/src/client/components/workspace/chat-timeline/tool-renderers/panels/Resolve.tsx +96 -0
  482. package/src/client/components/workspace/chat-timeline/tool-renderers/panels/SearchFs.tsx +132 -0
  483. package/src/client/components/workspace/chat-timeline/tool-renderers/panels/SearchTool.tsx +317 -0
  484. package/src/client/components/workspace/chat-timeline/tool-renderers/panels/SecurityScan.tsx +102 -0
  485. package/src/client/components/workspace/chat-timeline/tool-renderers/panels/TaskResult.tsx +240 -0
  486. package/src/client/components/workspace/chat-timeline/tool-renderers/panels/Think.tsx +52 -0
  487. package/src/client/components/workspace/chat-timeline/tool-renderers/panels/Todo.tsx +141 -0
  488. package/src/client/components/workspace/chat-timeline/tool-renderers/panels/WebSearch.tsx +118 -0
  489. package/src/client/components/workspace/chat-timeline/tool-renderers/shared/DiffView.tsx +150 -0
  490. package/src/client/components/workspace/chat-timeline/tool-renderers/shared/FallbackOutput.tsx +107 -0
  491. package/src/client/components/workspace/chat-timeline/tool-renderers/shared/JsonCodeBlock.tsx +79 -0
  492. package/src/client/components/workspace/chat-timeline/tool-renderers/shared/ToolCardShell.tsx +151 -0
  493. package/src/client/components/workspace/chat-timeline/tool-renderers/shared/read-line-meta.ts +95 -0
  494. package/src/client/components/workspace/chat-timeline/tool-renderers/shared/tool-input.ts +18 -0
  495. package/src/client/components/workspace/chat-timeline/tool-renderers/shared/truncate.ts +18 -0
  496. package/src/client/components/workspace/context-panel/CostBreakdownPopover.tsx +74 -0
  497. package/src/client/components/workspace/context-panel/LastMessageCard.tsx +34 -0
  498. package/src/client/components/workspace/context-panel/RawJsonViewer.tsx +94 -0
  499. package/src/client/components/workspace/context-panel/RawMessagesList.tsx +293 -0
  500. package/src/client/components/workspace/context-panel/StatsGrid.tsx +64 -0
  501. package/src/client/components/workspace/context-panel/TokenDistributionBar.tsx +62 -0
  502. package/src/client/components/workspace/context-panel/WindowCard.tsx +35 -0
  503. package/src/client/components/workspace/context-panel/index.tsx +142 -0
  504. package/src/client/components/workspace/context-panel/raw-messages.ts +54 -0
  505. package/src/client/components/workspace/diff-panel/SplitView.tsx +165 -0
  506. package/src/client/components/workspace/diff-panel/Toolbar.tsx +177 -0
  507. package/src/client/components/workspace/diff-panel/UnifiedView.tsx +117 -0
  508. package/src/client/components/workspace/diff-panel/index.tsx +213 -0
  509. package/src/client/components/workspace/editor/Tabs.tsx +149 -0
  510. package/src/client/components/workspace/editor/Toolbar.tsx +90 -0
  511. package/src/client/components/workspace/editor/index.tsx +189 -0
  512. package/src/client/components/workspace/file-explorer/GitRepoDropdown.tsx +143 -0
  513. package/src/client/components/workspace/file-explorer/Modals.tsx +236 -0
  514. package/src/client/components/workspace/file-explorer/TreeItem.tsx +289 -0
  515. package/src/client/components/workspace/file-explorer/index.tsx +193 -0
  516. package/src/client/components/workspace/git-panel/BranchToolbar.tsx +188 -0
  517. package/src/client/components/workspace/git-panel/ChangesList.tsx +168 -0
  518. package/src/client/components/workspace/git-panel/CommitBox.tsx +48 -0
  519. package/src/client/components/workspace/git-panel/FileItem.tsx +91 -0
  520. package/src/client/components/workspace/git-panel/Modals.tsx +97 -0
  521. package/src/client/components/workspace/git-panel/RepoHeader.tsx +137 -0
  522. package/src/client/components/workspace/git-panel/TreeItem.tsx +186 -0
  523. package/src/client/components/workspace/git-panel/TreeView.tsx +36 -0
  524. package/src/client/components/workspace/git-panel/commit-modal/CommitActions.tsx +97 -0
  525. package/src/client/components/workspace/git-panel/commit-modal/CommitDiffViewer.tsx +205 -0
  526. package/src/client/components/workspace/git-panel/commit-modal/CommitRow.tsx +179 -0
  527. package/src/client/components/workspace/git-panel/commit-modal/GraphCanvas.tsx +164 -0
  528. package/src/client/components/workspace/git-panel/commit-modal/Header.tsx +127 -0
  529. package/src/client/components/workspace/git-panel/commit-modal/index.tsx +269 -0
  530. package/src/client/components/workspace/git-panel/index.tsx +326 -0
  531. package/src/client/components/workspace/model-dropdown/Footer.tsx +21 -0
  532. package/src/client/components/workspace/model-dropdown/Header.tsx +50 -0
  533. package/src/client/components/workspace/model-dropdown/Item.tsx +137 -0
  534. package/src/client/components/workspace/model-dropdown/Panel.tsx +146 -0
  535. package/src/client/components/workspace/model-dropdown/Section.tsx +87 -0
  536. package/src/client/components/workspace/model-dropdown/Skeleton.tsx +39 -0
  537. package/src/client/components/workspace/model-dropdown/SpecsTooltip.tsx +91 -0
  538. package/src/client/components/workspace/model-dropdown/groups.ts +62 -0
  539. package/src/client/components/workspace/model-dropdown/index.tsx +245 -0
  540. package/src/client/components/workspace/model-dropdown/use-catalog.ts +111 -0
  541. package/src/client/components/workspace/terminal-panel/Header.tsx +50 -0
  542. package/src/client/components/workspace/terminal-panel/InputBar.tsx +82 -0
  543. package/src/client/components/workspace/terminal-panel/LogEntry.tsx +70 -0
  544. package/src/client/components/workspace/terminal-panel/QuickActions.tsx +39 -0
  545. package/src/client/components/workspace/terminal-panel/RealtimeXtermView.tsx +340 -0
  546. package/src/client/components/workspace/terminal-panel/index.tsx +110 -0
  547. package/src/client/components/workspace/usage-panel/ProviderSelect.tsx +208 -0
  548. package/src/client/components/workspace/usage-panel/index.tsx +98 -0
  549. package/src/client/components/workspace/user-browser-panel/AddressBar.tsx +134 -0
  550. package/src/client/components/workspace/user-browser-panel/Frame.tsx +72 -0
  551. package/src/client/components/workspace/user-browser-panel/index.tsx +87 -0
  552. package/src/client/data/agent-data/builtin.ts +31 -0
  553. package/src/client/data/agent-data/index.ts +10 -0
  554. package/src/client/data/agent-data/orchestrator.ts +113 -0
  555. package/src/client/data/agent-data/specialist.ts +245 -0
  556. package/src/client/data/context-data/index.test.ts +88 -0
  557. package/src/client/data/context-data/index.ts +310 -0
  558. package/src/client/data/context-data/presets.ts +128 -0
  559. package/src/client/data/mock/chat.ts +236 -0
  560. package/src/client/data/mock/git-commits.ts +304 -0
  561. package/src/client/data/mock/subagents.ts +212 -0
  562. package/src/client/data/mock/token-usage.ts +129 -0
  563. package/src/client/data/models/catalog.ts +293 -0
  564. package/src/client/data/samples/dialogue-session.ts +285 -0
  565. package/src/client/data/samples/sample-subagents/scout-raw.ts +341 -0
  566. package/src/client/data/samples/sample-subagents/sleeper-raw.ts +294 -0
  567. package/src/client/data/samples/sample-tools/built-in-part1.ts +265 -0
  568. package/src/client/data/samples/sample-tools/built-in-part2.ts +180 -0
  569. package/src/client/data/samples/sample-tools/other.ts +162 -0
  570. package/src/client/data/samples/subagent-session.ts +99 -0
  571. package/src/client/data/samples/tools-session.ts +85 -0
  572. package/src/client/data/samples/virtual-devices-session.ts +333 -0
  573. package/src/client/data/settings/behavior.ts +12 -0
  574. package/src/client/data/settings/command.ts +188 -0
  575. package/src/client/data/settings/mcp.ts +28 -0
  576. package/src/client/data/settings/omp-schema.json +1 -0
  577. package/src/client/data/settings/project.ts +58 -0
  578. package/src/client/data/settings/provider.ts +185 -0
  579. package/src/client/data/settings/skill.ts +340 -0
  580. package/src/client/data/theme/terminal.ts +150 -0
  581. package/src/client/hooks/browser/use-screencast.ts +178 -0
  582. package/src/client/hooks/browser/use-user-browser.ts +105 -0
  583. package/src/client/hooks/chat/composer/index.ts +181 -0
  584. package/src/client/hooks/chat/composer/items.ts +47 -0
  585. package/src/client/hooks/chat/omp/index.ts +348 -0
  586. package/src/client/hooks/chat/omp/revalidation-throttle.ts +71 -0
  587. package/src/client/hooks/chat/omp/session-list.tsx +148 -0
  588. package/src/client/hooks/chat/omp/session-sidebar-controller.ts +249 -0
  589. package/src/client/hooks/chat/omp/session-statuses.ts +83 -0
  590. package/src/client/hooks/chat/omp/status.ts +31 -0
  591. package/src/client/hooks/chat/omp/stream-poll.ts +37 -0
  592. package/src/client/hooks/chat/omp/stream.ts +108 -0
  593. package/src/client/hooks/chat/stream.ts +228 -0
  594. package/src/client/hooks/chat/subagent/index.ts +290 -0
  595. package/src/client/hooks/chat/timeline/actions.ts +322 -0
  596. package/src/client/hooks/chat/timeline/auto-scroll.ts +58 -0
  597. package/src/client/hooks/chat/timeline/browser-context.ts +40 -0
  598. package/src/client/hooks/chat/timeline/extension-dialog.ts +56 -0
  599. package/src/client/hooks/chat/timeline/index.ts +333 -0
  600. package/src/client/hooks/chat/timeline/queue.ts +87 -0
  601. package/src/client/hooks/chat/timeline/scroll.ts +134 -0
  602. package/src/client/hooks/chat/timeline/send.ts +348 -0
  603. package/src/client/hooks/chat/timeline/session-load.ts +334 -0
  604. package/src/client/hooks/chat/timeline/session-title.ts +40 -0
  605. package/src/client/hooks/chat/timeline/subagent-view.ts +92 -0
  606. package/src/client/hooks/chat/timeline/undo-confirmation.ts +29 -0
  607. package/src/client/hooks/editor/use-file-editor.ts +302 -0
  608. package/src/client/hooks/models/use-model-names.ts +17 -0
  609. package/src/client/hooks/models/use-models-catalog.ts +45 -0
  610. package/src/client/hooks/models/use-provider-names.ts +18 -0
  611. package/src/client/hooks/settings/crud-list.ts +187 -0
  612. package/src/client/hooks/settings/instruction-file.ts +91 -0
  613. package/src/client/hooks/settings/providers.ts +295 -0
  614. package/src/client/hooks/settings/skill-catalog.ts +37 -0
  615. package/src/client/hooks/settings/use-chamber-setting.ts +12 -0
  616. package/src/client/hooks/settings/useUsageReport.ts +41 -0
  617. package/src/client/hooks/ui/clipboard.ts +33 -0
  618. package/src/client/hooks/ui/copy-flag.ts +27 -0
  619. package/src/client/hooks/ui/inline-rename.ts +93 -0
  620. package/src/client/hooks/ui/notification-sound.ts +108 -0
  621. package/src/client/hooks/ui/on-click-outside.ts +22 -0
  622. package/src/client/hooks/ui/open-file.ts +42 -0
  623. package/src/client/hooks/ui/scrollbar-fade.ts +33 -0
  624. package/src/client/hooks/ui/show-more.ts +23 -0
  625. package/src/client/hooks/ui/syntax-ready.ts +17 -0
  626. package/src/client/hooks/ui/theme.ts +76 -0
  627. package/src/client/hooks/ui/toasts.ts +22 -0
  628. package/src/client/hooks/ui/updates.ts +108 -0
  629. package/src/client/hooks/ui/visibility-refresh.ts +66 -0
  630. package/src/client/hooks/ui/window-event.ts +52 -0
  631. package/src/client/hooks/workspace/commit-interactions.ts +111 -0
  632. package/src/client/hooks/workspace/commit-pagination.ts +106 -0
  633. package/src/client/hooks/workspace/file-tabs.ts +136 -0
  634. package/src/client/hooks/workspace/git-status.ts +89 -0
  635. package/src/client/hooks/workspace/git-tree.ts +146 -0
  636. package/src/client/hooks/workspace/panel-refresh.ts +72 -0
  637. package/src/client/hooks/workspace/panel-widths.ts +59 -0
  638. package/src/client/hooks/workspace/search-stream.ts +76 -0
  639. package/src/client/hooks/workspace/session-state/context.ts +15 -0
  640. package/src/client/hooks/workspace/session-state/index.ts +62 -0
  641. package/src/client/hooks/workspace/terminal-output.ts +66 -0
  642. package/src/client/hooks/workspace/terminal.ts +283 -0
  643. package/src/client/hooks/workspace/workspace-folder-actions.ts +110 -0
  644. package/src/client/lib/router/fetcher.ts +100 -0
  645. package/src/client/lib/router/search-params.ts +82 -0
  646. package/src/client/main.tsx +23 -0
  647. package/src/client/tailwind.css +364 -0
  648. package/src/server/db.server.ts +338 -0
  649. package/src/server/index.ts +19 -0
  650. package/src/server/lib/browser/runtime.test.ts +110 -0
  651. package/src/server/lib/browser/runtime.ts +160 -0
  652. package/src/server/lib/chat/session-store.server.ts +61 -0
  653. package/src/server/lib/db/client.ts +55 -0
  654. package/src/server/lib/db/settings-store.ts +148 -0
  655. package/src/server/lib/fs/atomic-write.ts +27 -0
  656. package/src/server/lib/fs/git-diff.ts +116 -0
  657. package/src/server/lib/fs/git-log.ts +174 -0
  658. package/src/server/lib/fs/repo-scope.ts +14 -0
  659. package/src/server/lib/fs/root.ts +77 -0
  660. package/src/server/lib/fs/shell.ts +71 -0
  661. package/src/server/lib/fs/terminal-cwd.ts +49 -0
  662. package/src/server/lib/models/provider-registry.server.ts +269 -0
  663. package/src/server/lib/omp/config/agents.ts +162 -0
  664. package/src/server/lib/omp/config/behavior.ts +113 -0
  665. package/src/server/lib/omp/config/config-cli.ts +94 -0
  666. package/src/server/lib/omp/config/disabled-providers.ts +68 -0
  667. package/src/server/lib/omp/config/extensions.ts +90 -0
  668. package/src/server/lib/omp/config/instructions.ts +81 -0
  669. package/src/server/lib/omp/config/mcp-test.ts +346 -0
  670. package/src/server/lib/omp/config/mcp.ts +258 -0
  671. package/src/server/lib/omp/config/providers.ts +276 -0
  672. package/src/server/lib/omp/config/roles.ts +46 -0
  673. package/src/server/lib/omp/config/skills-catalog.ts +93 -0
  674. package/src/server/lib/omp/config/skills.ts +118 -0
  675. package/src/server/lib/omp/config/yaml.ts +48 -0
  676. package/src/server/lib/omp/core/auth-credentials.ts +87 -0
  677. package/src/server/lib/omp/core/cli.ts +69 -0
  678. package/src/server/lib/omp/core/paths.ts +154 -0
  679. package/src/server/lib/omp/core/registry.ts +140 -0
  680. package/src/server/lib/omp/core/worktree.ts +106 -0
  681. package/src/server/lib/omp/rpc/constants.ts +185 -0
  682. package/src/server/lib/omp/rpc/errors.ts +27 -0
  683. package/src/server/lib/omp/rpc/kill-tree.ts +49 -0
  684. package/src/server/lib/omp/rpc/lines.ts +38 -0
  685. package/src/server/lib/omp/rpc/manager.ts +310 -0
  686. package/src/server/lib/omp/rpc/pending-ui-dialogs.ts +55 -0
  687. package/src/server/lib/omp/rpc/process-helpers.ts +82 -0
  688. package/src/server/lib/omp/rpc/process.ts +319 -0
  689. package/src/server/lib/omp/rpc/session-commands.ts +218 -0
  690. package/src/server/lib/omp/rpc/session-registry.ts +300 -0
  691. package/src/server/lib/omp/rpc/utility.ts +199 -0
  692. package/src/server/lib/omp/rpc/web-state.ts +94 -0
  693. package/src/server/lib/omp/session/files.ts +282 -0
  694. package/src/server/lib/omp/session/locator.ts +60 -0
  695. package/src/server/lib/omp/session/messages.ts +222 -0
  696. package/src/server/lib/omp/session/reader.ts +150 -0
  697. package/src/server/lib/omp/session/sidebar-data.server.ts +195 -0
  698. package/src/server/lib/omp/session/stats.ts +85 -0
  699. package/src/server/lib/omp/session/subagent-presence.ts +74 -0
  700. package/src/server/lib/omp/session/telemetry/compute.ts +188 -0
  701. package/src/server/lib/omp/session/telemetry/format.ts +110 -0
  702. package/src/server/lib/omp/session/telemetry/index.ts +4 -0
  703. package/src/server/lib/omp/session/telemetry/scan.ts +21 -0
  704. package/src/server/lib/omp/session/telemetry-raw.ts +96 -0
  705. package/src/server/lib/omp/session/telemetry.test.ts +154 -0
  706. package/src/server/lib/omp/session/title-slot.ts +203 -0
  707. package/src/server/lib/omp/session/usage.ts +298 -0
  708. package/src/server/lib/omp/subagent/history/fold.ts +196 -0
  709. package/src/server/lib/omp/subagent/history/index.ts +110 -0
  710. package/src/server/lib/omp/subagent/history/paths.ts +29 -0
  711. package/src/server/lib/omp/subagent/history/transcript.test.ts +87 -0
  712. package/src/server/lib/omp/subagent/history/transcript.ts +122 -0
  713. package/src/server/lib/remix-compat.ts +29 -0
  714. package/src/server/lib/route-adapter.ts +144 -0
  715. package/src/server/lib/sse.ts +248 -0
  716. package/src/server/lib/updates/apply.ts +46 -0
  717. package/src/server/lib/updates/check.ts +41 -0
  718. package/src/server/lib/updates/github.ts +71 -0
  719. package/src/server/lib/updates/install-method.ts +73 -0
  720. package/src/server/lib/updates/install.test.ts +74 -0
  721. package/src/server/lib/updates/install.ts +294 -0
  722. package/src/server/lib/updates/omp.ts +86 -0
  723. package/src/server/lib/usage/deepseek.ts +59 -0
  724. package/src/server/lib/usage/kenari.ts +251 -0
  725. package/src/server/lib/usage/provider-key.ts +83 -0
  726. package/src/server/mock.server.ts +33 -0
  727. package/src/server/plugins/compress.ts +51 -0
  728. package/src/server/plugins/dev-assets.ts +49 -0
  729. package/src/server/plugins/ssr.ts +100 -0
  730. package/src/server/plugins/static.ts +81 -0
  731. package/src/server/routes/agent/command.ts +81 -0
  732. package/src/server/routes/agent/events.ts +56 -0
  733. package/src/server/routes/agent/index.ts +12 -0
  734. package/src/server/routes/agent/new.ts +83 -0
  735. package/src/server/routes/agent/prewarm.ts +27 -0
  736. package/src/server/routes/agent/ws.ts +168 -0
  737. package/src/server/routes/browser/index.ts +6 -0
  738. package/src/server/routes/browser/stream.ts +217 -0
  739. package/src/server/routes/chat/index.ts +12 -0
  740. package/src/server/routes/chat/rewind.ts +162 -0
  741. package/src/server/routes/chat/root.ts +78 -0
  742. package/src/server/routes/chat/session.ts +339 -0
  743. package/src/server/routes/chat/stream.ts +111 -0
  744. package/src/server/routes/files/index.ts +10 -0
  745. package/src/server/routes/files/root.ts +29 -0
  746. package/src/server/routes/files/toggle.ts +20 -0
  747. package/src/server/routes/folders/create.ts +98 -0
  748. package/src/server/routes/folders/folder.ts +78 -0
  749. package/src/server/routes/folders/index.ts +16 -0
  750. package/src/server/routes/fs/action.ts +84 -0
  751. package/src/server/routes/fs/git.ts +334 -0
  752. package/src/server/routes/fs/index.ts +19 -0
  753. package/src/server/routes/fs/read.ts +258 -0
  754. package/src/server/routes/fs/replace.ts +69 -0
  755. package/src/server/routes/fs/search.ts +135 -0
  756. package/src/server/routes/fs/validate.ts +61 -0
  757. package/src/server/routes/health/index.ts +6 -0
  758. package/src/server/routes/health/probe.ts +27 -0
  759. package/src/server/routes/index.ts +38 -0
  760. package/src/server/routes/models/index.ts +8 -0
  761. package/src/server/routes/models/roles.ts +31 -0
  762. package/src/server/routes/models/root.ts +328 -0
  763. package/src/server/routes/omp/commands.ts +29 -0
  764. package/src/server/routes/omp/extensions.ts +34 -0
  765. package/src/server/routes/omp/index.ts +20 -0
  766. package/src/server/routes/omp/login.ts +112 -0
  767. package/src/server/routes/omp/plugins.ts +82 -0
  768. package/src/server/routes/omp/pricing.ts +65 -0
  769. package/src/server/routes/omp/session-stats.ts +30 -0
  770. package/src/server/routes/omp/sidebar.ts +40 -0
  771. package/src/server/routes/omp/state.ts +22 -0
  772. package/src/server/routes/sessions/folder.ts +16 -0
  773. package/src/server/routes/sessions/index.ts +25 -0
  774. package/src/server/routes/sessions/list.ts +23 -0
  775. package/src/server/routes/sessions/session.ts +331 -0
  776. package/src/server/routes/sessions/subagents.ts +82 -0
  777. package/src/server/routes/settings/agents.ts +128 -0
  778. package/src/server/routes/settings/behavior.ts +125 -0
  779. package/src/server/routes/settings/commands.ts +89 -0
  780. package/src/server/routes/settings/index.ts +28 -0
  781. package/src/server/routes/settings/mcp-test.ts +71 -0
  782. package/src/server/routes/settings/mcp.ts +261 -0
  783. package/src/server/routes/settings/omp-config.ts +47 -0
  784. package/src/server/routes/settings/projects.ts +84 -0
  785. package/src/server/routes/settings/provider-models.ts +278 -0
  786. package/src/server/routes/settings/providers.ts +137 -0
  787. package/src/server/routes/settings/root.ts +40 -0
  788. package/src/server/routes/settings/skills.ts +175 -0
  789. package/src/server/routes/settings/usage.ts +81 -0
  790. package/src/server/routes/telemetry/context.ts +52 -0
  791. package/src/server/routes/telemetry/index.ts +10 -0
  792. package/src/server/routes/telemetry/raw-messages.ts +80 -0
  793. package/src/server/routes/telemetry/tokens.ts +163 -0
  794. package/src/server/routes/terminal/index.ts +8 -0
  795. package/src/server/routes/terminal/run.ts +135 -0
  796. package/src/server/routes/terminal/stream.ts +100 -0
  797. package/src/server/routes/updates/apply.ts +25 -0
  798. package/src/server/routes/updates/check.ts +27 -0
  799. package/src/server/routes/updates/index.ts +8 -0
  800. package/src/server/routes/well-known/devtools.ts +9 -0
  801. package/src/server/routes/well-known/index.ts +6 -0
  802. package/src/shared/lib/browser/activity.ts +115 -0
  803. package/src/shared/lib/browser/cdp.ts +201 -0
  804. package/src/shared/lib/browser/connection.ts +81 -0
  805. package/src/shared/lib/browser/observer.ts +129 -0
  806. package/src/shared/lib/browser/page-context.ts +20 -0
  807. package/src/shared/lib/browser/targets.test.ts +45 -0
  808. package/src/shared/lib/browser/targets.ts +74 -0
  809. package/src/shared/lib/browser/url.ts +21 -0
  810. package/src/shared/lib/browser/util.ts +20 -0
  811. package/src/shared/lib/browser/viewer.ts +303 -0
  812. package/src/shared/lib/browser/watcher.ts +75 -0
  813. package/src/shared/lib/chat/attachments.ts +62 -0
  814. package/src/shared/lib/chat/capitalize.ts +9 -0
  815. package/src/shared/lib/chat/composer/client.ts +210 -0
  816. package/src/shared/lib/chat/composer/filter.ts +62 -0
  817. package/src/shared/lib/chat/composer/translate.ts +103 -0
  818. package/src/shared/lib/chat/composer/trigger.ts +53 -0
  819. package/src/shared/lib/chat/detect-format.ts +38 -0
  820. package/src/shared/lib/chat/duration.ts +82 -0
  821. package/src/shared/lib/chat/omp/agent-events.test.ts +152 -0
  822. package/src/shared/lib/chat/omp/agent-events.ts +347 -0
  823. package/src/shared/lib/chat/omp/file-mutations.ts +42 -0
  824. package/src/shared/lib/chat/omp/socket.ts +95 -0
  825. package/src/shared/lib/chat/omp/sse.ts +53 -0
  826. package/src/shared/lib/chat/omp/status.ts +45 -0
  827. package/src/shared/lib/chat/omp/transport.ts +50 -0
  828. package/src/shared/lib/chat/order.ts +40 -0
  829. package/src/shared/lib/chat/read-sse.ts +99 -0
  830. package/src/shared/lib/chat/stream-service.ts +273 -0
  831. package/src/shared/lib/chat/task-result-parser.ts +166 -0
  832. package/src/shared/lib/chat/timeline/omp-callbacks.ts +293 -0
  833. package/src/shared/lib/chat/timeline/stream-callbacks.ts +202 -0
  834. package/src/shared/lib/chat/timeline/stream-raf.ts +59 -0
  835. package/src/shared/lib/chat/timeline/tool-phrases.ts +224 -0
  836. package/src/shared/lib/chat/timeline/tool-verbs.ts +160 -0
  837. package/src/shared/lib/chat/timeline/turns.ts +30 -0
  838. package/src/shared/lib/chat/title-case.ts +293 -0
  839. package/src/shared/lib/chat/todo-parser.ts +257 -0
  840. package/src/shared/lib/chat/tool-status.ts +20 -0
  841. package/src/shared/lib/code/ansi.ts +24 -0
  842. package/src/shared/lib/code/editor-utils.ts +16 -0
  843. package/src/shared/lib/code/format.ts +17 -0
  844. package/src/shared/lib/code/highlighter.ts +135 -0
  845. package/src/shared/lib/code/parser.ts +237 -0
  846. package/src/shared/lib/code/shiki-langs.ts +93 -0
  847. package/src/shared/lib/code/shiki-themes.ts +14 -0
  848. package/src/shared/lib/code/syntax-highlight.test.ts +153 -0
  849. package/src/shared/lib/code/syntax-highlight.ts +290 -0
  850. package/src/shared/lib/db/transaction.server.ts +20 -0
  851. package/src/shared/lib/format/number.ts +69 -0
  852. package/src/shared/lib/format/time.ts +39 -0
  853. package/src/shared/lib/fs/diff-parser.ts +135 -0
  854. package/src/shared/lib/fs/file-tree.ts +26 -0
  855. package/src/shared/lib/fs/git-graph.ts +184 -0
  856. package/src/shared/lib/fs/git-status.ts +161 -0
  857. package/src/shared/lib/markdown/marked.ts +228 -0
  858. package/src/shared/lib/markdown/mermaid.ts +153 -0
  859. package/src/shared/lib/markdown/sanitize.ts +138 -0
  860. package/src/shared/lib/models/catalog.ts +88 -0
  861. package/src/shared/lib/models/client.ts +51 -0
  862. package/src/shared/lib/models/identity.ts +21 -0
  863. package/src/shared/lib/models/provider-cleanup.ts +20 -0
  864. package/src/shared/lib/models/provider-connection.ts +41 -0
  865. package/src/shared/lib/models/provider-label.ts +40 -0
  866. package/src/shared/lib/models/provider-models.ts +97 -0
  867. package/src/shared/lib/models/provider-presets.ts +29 -0
  868. package/src/shared/lib/models/remote-list.ts +125 -0
  869. package/src/shared/lib/models/server-cache.ts +27 -0
  870. package/src/shared/lib/models/thinking-levels.ts +68 -0
  871. package/src/shared/lib/omp/config/access-mode.server.ts +27 -0
  872. package/src/shared/lib/omp/config/access-mode.ts +31 -0
  873. package/src/shared/lib/omp/config/schema-extras.ts +230 -0
  874. package/src/shared/lib/omp/config/schema-types.ts +49 -0
  875. package/src/shared/lib/omp/config/schema.ts +81 -0
  876. package/src/shared/lib/omp/rpc/frame.ts +134 -0
  877. package/src/shared/lib/omp/session/default-title.test.ts +50 -0
  878. package/src/shared/lib/omp/session/default-title.ts +51 -0
  879. package/src/shared/lib/omp/session/hashline-patch.test.ts +89 -0
  880. package/src/shared/lib/omp/session/hashline-patch.ts +134 -0
  881. package/src/shared/lib/omp/session/jsonl.ts +197 -0
  882. package/src/shared/lib/omp/session/mapper.ts +145 -0
  883. package/src/shared/lib/omp/session/messages-map.ts +179 -0
  884. package/src/shared/lib/omp/session/messages-parse.ts +69 -0
  885. package/src/shared/lib/omp/session/parse-message-blocks.ts +223 -0
  886. package/src/shared/lib/omp/session/prewarm.ts +41 -0
  887. package/src/shared/lib/omp/session/sidebar.ts +77 -0
  888. package/src/shared/lib/omp/session/stream-state.server.ts +106 -0
  889. package/src/shared/lib/omp/session/telemetry-blocks.ts +60 -0
  890. package/src/shared/lib/omp/session/timestamps.ts +20 -0
  891. package/src/shared/lib/omp/session/turn-error.ts +40 -0
  892. package/src/shared/lib/omp/subagent/history/client.ts +76 -0
  893. package/src/shared/lib/omp/subagent/history/settlement.ts +113 -0
  894. package/src/shared/lib/omp/subagent/history/status.ts +40 -0
  895. package/src/shared/lib/omp/subagent/parse.ts +284 -0
  896. package/src/shared/lib/omp/subagent/result-details.ts +53 -0
  897. package/src/shared/lib/omp/subagent/transcript-client.ts +178 -0
  898. package/src/shared/lib/settings/client.test.ts +62 -0
  899. package/src/shared/lib/settings/client.ts +96 -0
  900. package/src/shared/lib/updates/semver.ts +34 -0
  901. package/src/shared/lib/util/guards.ts +14 -0
  902. package/src/shared/lib/workspace/active-project.ts +42 -0
  903. package/src/shared/lib/workspace/panel-widths.test.ts +72 -0
  904. package/src/shared/lib/workspace/panel-widths.ts +79 -0
  905. package/src/shared/lib/workspace/project-icon.ts +29 -0
  906. package/src/shared/lib/workspace/project-settings-migration.ts +62 -0
  907. package/src/shared/lib/workspace/project-settings.ts +139 -0
  908. package/src/shared/lib/workspace/refresh-cadence.ts +128 -0
  909. package/src/shared/lib/workspace/relative-time.ts +25 -0
  910. package/src/shared/lib/workspace/right-panels.ts +51 -0
  911. package/src/shared/lib/workspace/schema-migrations.ts +19 -0
  912. package/src/shared/lib/workspace/session-state/store.ts +267 -0
  913. package/src/shared/lib/workspace/sidebar-expanded.ts +23 -0
  914. package/src/shared/lib/workspace/sidebar-sort.test.ts +200 -0
  915. package/src/shared/lib/workspace/sidebar-sort.ts +131 -0
  916. package/src/shared/types/browser.ts +58 -0
  917. package/src/shared/types/chat.ts +289 -0
  918. package/src/shared/types/context.ts +87 -0
  919. package/src/shared/types/fs.ts +36 -0
  920. package/src/shared/types/git.ts +60 -0
  921. package/src/shared/types/index.ts +22 -0
  922. package/src/shared/types/omp/agent.ts +109 -0
  923. package/src/shared/types/omp/instructions.ts +38 -0
  924. package/src/shared/types/omp/session.ts +153 -0
  925. package/src/shared/types/omp/subagent.ts +176 -0
  926. package/src/shared/types/settings/agent.ts +16 -0
  927. package/src/shared/types/settings/command.ts +12 -0
  928. package/src/shared/types/settings/mcp.ts +22 -0
  929. package/src/shared/types/settings/project.ts +18 -0
  930. package/src/shared/types/settings/provider.ts +42 -0
  931. package/src/shared/types/settings/skill.ts +35 -0
  932. package/src/shared/types/settings/state.ts +59 -0
  933. package/src/shared/types/settings/usage.ts +99 -0
  934. package/src/shared/types/terminal.ts +19 -0
  935. package/src/shared/types/tokenUsage.ts +44 -0
  936. package/src/shared/types/updates.ts +38 -0
  937. package/src/shared/types/workspace.ts +56 -0
  938. package/tsconfig.json +26 -0
@@ -0,0 +1,13 @@
1
+ /*! Bundled license information:
2
+
3
+ lodash-es/lodash.js:
4
+ (**
5
+ * @license
6
+ * Lodash (Custom Build) <https://lodash.com/>
7
+ * Build: `lodash modularize exports="es" -o ./`
8
+ * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
9
+ * Released under MIT license <https://lodash.com/license>
10
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
11
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
12
+ *)
13
+ */
@@ -0,0 +1,28 @@
1
+ /*! LICENSE: m.3fc017a055.js.LICENSE.txt */
2
+ "use strict";(self.rspackChunkompchamber=self.rspackChunkompchamber||[]).push([["m"],{AB(e,t,n){n.d(t,{GitPanel:()=>ea});var s=n("j"),a=n("H"),r=n("Xk"),i=n("E6"),o=n("DB"),l=n("tR"),c=n("hw"),d=n("Wb0"),h=n("S"),p=n("t");function m(e){let{isGraphMode:t,onToggleMode:n,searchQuery:a,onSearchChange:r,onRefresh:i,onClose:l,isRefreshing:m,totalCommits:f,totalCount:u}=e;return(0,s.FD)("div",{className:"flex flex-col gap-2 px-3 lg:px-5 py-3 border-b border-ink/10 bg-paper select-none\n pl-[max(0.75rem,env(safe-area-inset-left,0px))] pr-[max(0.75rem,env(safe-area-inset-right,0px))]",children:[(0,s.FD)("div",{className:"flex items-center justify-between gap-2 lg:gap-4",children:[(0,s.FD)("div",{className:"flex flex-col min-w-0",children:[(0,s.FD)("div",{className:"flex items-center gap-2.5 min-w-0",children:[(0,s.Y)("h2",{className:"text-base font-semibold text-ink tracking-tight",children:t?"Graph":"History"}),(0,s.Y)("span",{className:"text-[11px] font-mono px-2 py-0.5 rounded-full bg-ink/5 text-ink/50 border border-ink/10 whitespace-nowrap",children:u&&u>f?`${f} of ${u}`:`${f} commits`})]}),(0,s.Y)("p",{className:"text-xs text-ink/50 mt-0.5 hidden lg:block",children:"Browse recent commits and inspect changed files."})]}),(0,s.FD)("div",{className:"flex items-center gap-1.5 lg:gap-2 flex-shrink-0",children:[(0,s.FD)("div",{className:"flex items-center bg-ink/5 p-0.5 rounded-lg border border-ink/10 text-xs",children:[(0,s.FD)("button",{type:"button",onClick:()=>n(!1),title:"History view",className:`flex items-center gap-1.5 px-2.5 py-1 rounded-md font-medium transition-colors cursor-pointer ${!t?"bg-paper text-ink shadow-xs":"text-ink/60 hover:text-ink hover:bg-ink/5"}`,children:[(0,s.Y)(c.A,{size:13}),(0,s.Y)("span",{className:"hidden lg:inline",children:"History"})]}),(0,s.FD)("button",{type:"button",onClick:()=>n(!0),title:"Graph view",className:`flex items-center gap-1.5 px-2.5 py-1 rounded-md font-medium transition-colors cursor-pointer ${t?"bg-paper text-ink shadow-xs":"text-ink/60 hover:text-ink hover:bg-ink/5"}`,children:[(0,s.Y)(o.A,{size:13}),(0,s.Y)("span",{className:"hidden lg:inline",children:"Graph"})]})]}),(0,s.FD)("button",{type:"button",onClick:i,disabled:m,className:"flex items-center gap-1.5 px-2.5 py-1.5 rounded-md border border-ink/15 hover:bg-ink/5 text-ink/70 hover:text-ink transition-colors cursor-pointer text-xs disabled:opacity-40",title:"Refresh commit history",children:[(0,s.Y)(d.A,{size:13,className:m?"animate-spin text-ink":""}),(0,s.Y)("span",{className:"hidden lg:inline",children:"refresh"})]}),(0,s.Y)("button",{type:"button",onClick:l,className:"p-2 -mr-1 rounded-md hover:bg-ink/5 text-ink/60 hover:text-ink transition-colors cursor-pointer",title:"Close modal",children:(0,s.Y)(h.A,{size:16})})]})]}),(0,s.FD)("div",{className:"relative mt-1",children:[(0,s.Y)(p.A,{size:13,className:"absolute left-2.5 top-1/2 -translate-y-1/2 text-ink/40"}),(0,s.Y)("input",{type:"text",value:a,onChange:e=>r(e.currentTarget.value),placeholder:"Filter commits by message, author, or hash...",className:"w-full bg-ink/[0.03] border border-ink/15 rounded-md pl-8 pr-3 py-1.5 text-xs text-ink placeholder-ink/40 focus:outline-none focus:border-ink/40 transition-colors font-mono"}),a&&(0,s.Y)("button",{type:"button",onClick:()=>r(""),className:"absolute right-2.5 top-1/2 -translate-y-1/2 text-ink/40 hover:text-ink cursor-pointer",children:(0,s.Y)(h.A,{size:12})})]})]})}let f=["#38bdf8","#f97316","#a855f7","#10b981","#ec4899","#eab308","#06b6d4","#6366f1"];function u(e,t){if(!e||!t)return!1;if(e===t)return!0;let n=Math.min(e.length,t.length);return n>=4&&e.substring(0,n)===t.substring(0,n)}function x(e){let t=new Map,n=[];for(let s of e){if("number"==typeof s.lane){t.set(s.hash,s.lane);continue}let e=n.findIndex(e=>u(e,s.hash)||u(e,s.shortHash));-1===e&&(-1===(e=n.indexOf(null))?(e=n.length,n.push(s.hash)):n[e]=s.hash),t.set(s.hash,e);let a=s.parents&&s.parents[0];if(a?n[e]=a:n[e]=null,s.parents&&s.parents.length>1)for(let e=1;e<s.parents.length;e++){let t=s.parents[e];if(!n.some(e=>u(e,t))){let e=n.indexOf(null);-1===e?n.push(t):n[e]=t}}}return t}function b(e){let{commits:t,nodePositions:n,selectedHash:r,hoveredHash:i,isGraphMode:o,laneWidth:l=18,paddingLeft:c=16,totalHeight:d}=e,h=(0,a.Kr)(()=>{if(!o){let e=new Map;return t.forEach(t=>e.set(t.hash,0)),e}return x(t)},[t,o]),p=(0,a.Kr)(()=>{let e=0;return h.forEach(t=>{t>e&&(e=t)}),e},[h]),m=o?(p+1)*l+2*c:36,u=(0,a.Kr)(()=>{if(!o){let e=[];for(let s=0;s<t.length-1;s++){let a=n[t[s].hash]??60*s+20,r=n[t[s+1].hash]??(s+1)*60+20;e.push({fromHash:t[s].hash,toHash:t[s+1].hash,fromLane:0,toLane:0,fromY:a,toY:r,color:"var(--theme-ink)"})}return e}return function(e,t,n,s){let a=[],r=new Map;for(let i of(e.forEach((e,t)=>{r.set(e.hash,t),e.shortHash&&r.set(e.shortHash,t),e.hash.length>=7&&r.set(e.hash.substring(0,7),t)}),e)){let o=t.get(i.hash)??0,l=n[i.hash]??0,c=f[o%f.length];if(i.parents&&0!==i.parents.length)for(let d of i.parents){let h=r.get(d);if("number"!=typeof h&&d.length>=7&&(h=r.get(d.substring(0,7))),"number"==typeof h){let s=e[h],r=t.get(s.hash)??o,c=n[s.hash]??l+60;a.push({fromHash:i.hash,toHash:s.hash,fromLane:o,toLane:r,fromY:l,toY:c,color:f[o%f.length]})}else a.push({fromHash:i.hash,toHash:"tail-"+i.hash,fromLane:o,toLane:o,fromY:l,toY:Math.max(l+80,s),color:c})}}return a}(t,h,n,d)},[t,h,n,d,o]);return(0,s.Y)("div",{className:"absolute top-0 left-0 pointer-events-none z-10",style:{width:m,height:d},children:(0,s.FD)("svg",{className:"w-full h-full overflow-visible",style:{width:m,height:d},children:[(0,s.Y)("defs",{children:(0,s.Y)("filter",{id:"node-glow",x:"-20%",y:"-20%",width:"140%",height:"140%",children:(0,s.Y)("feDropShadow",{dx:"0",dy:"0",stdDeviation:"2",floodOpacity:"0.35"})})}),u.map(e=>{let t=o?c+e.fromLane*l:16,n=o?c+e.toLane*l:16,a=o?e.color:"currentColor",r=o?.95:.25,i=function(e,t,n,s){if(1>Math.abs(e-n))return`M ${e} ${t} L ${n} ${s}`;let a=s-t;return`M ${e} ${t} C ${e} ${t+.45*a}, ${n} ${s-.45*a}, ${n} ${s}`}(t,e.fromY,n,e.toY);return(0,s.Y)("path",{d:i,fill:"none",stroke:a,strokeWidth:o?2.25:1.5,strokeLinecap:"round",strokeLinejoin:"round",strokeOpacity:r},`${e.fromHash}->${e.toHash}`)}),t.map(e=>{let t=h.get(e.hash)??0,a=o?c+t*l:16,d=n[e.hash]??20,p=r===e.hash||r===e.shortHash,m=i===e.hash||i===e.shortHash,u=o?f[t%f.length]:"var(--theme-success)";return(0,s.FD)("g",{children:[(p||m)&&(0,s.Y)("circle",{cx:a,cy:d,r:8,fill:u,fillOpacity:p?.35:.2,stroke:u,strokeWidth:1}),(0,s.Y)("circle",{cx:a,cy:d,r:o?4:4.5,fill:o?"var(--theme-paper)":u,stroke:u,strokeWidth:o?2.5:1.5,filter:"url(#node-glow)"}),o&&(0,s.Y)("circle",{cx:a,cy:d,r:1.8,fill:u})]},`node-${e.hash}`)})]})})}var g=n("z"),k=n("b0"),v=n("Go"),y=n("Nf");function w(e){let{commit:t,onAction:n,isBusy:a}=e;return(0,s.FD)("div",{className:"flex flex-wrap items-center gap-1.5 pt-1.5 pb-2",children:[(0,s.Y)("button",{type:"button",disabled:a,onClick:e=>{e.stopPropagation(),n("checkout",t)},className:"px-2.5 py-1 text-[11px] font-mono rounded border border-ink/20 hover:bg-ink/5 text-ink/80 hover:text-ink transition-colors cursor-pointer disabled:opacity-40",children:"checkout"}),(0,s.Y)("button",{type:"button",disabled:a,onClick:e=>{e.stopPropagation(),n("create_branch_here",t)},className:"px-2.5 py-1 text-[11px] font-mono rounded border border-ink/20 hover:bg-ink/5 text-ink/80 hover:text-ink transition-colors cursor-pointer disabled:opacity-40",children:"create branch here"}),(0,s.Y)("button",{type:"button",disabled:a,onClick:e=>{e.stopPropagation(),n("cherry_pick",t)},className:"px-2.5 py-1 text-[11px] font-mono rounded border border-ink/20 hover:bg-ink/5 text-ink/80 hover:text-ink transition-colors cursor-pointer disabled:opacity-40",children:"cherry-pick"}),(0,s.Y)("button",{type:"button",disabled:a,onClick:e=>{e.stopPropagation(),n("revert",t)},className:"px-2.5 py-1 text-[11px] font-mono rounded border border-ink/20 hover:bg-ink/5 text-ink/80 hover:text-ink transition-colors cursor-pointer disabled:opacity-40",children:"revert"}),(0,s.Y)("button",{type:"button",disabled:a,onClick:e=>{e.stopPropagation(),n("reset",t)},className:"px-2.5 py-1 text-[11px] font-mono rounded border border-ink/20 hover:bg-ink/5 text-ink/80 hover:text-ink transition-colors cursor-pointer disabled:opacity-40",children:"reset..."}),(0,s.Y)("button",{type:"button",disabled:a,onClick:e=>{e.stopPropagation(),n("merge",t)},className:"px-2.5 py-1 text-[11px] font-mono rounded border border-ink/20 hover:bg-ink/5 text-ink/80 hover:text-ink transition-colors cursor-pointer disabled:opacity-40",children:"merge into current"}),(0,s.Y)("button",{type:"button",disabled:a,onClick:e=>{e.stopPropagation(),n("rebase",t)},className:"px-2.5 py-1 text-[11px] font-mono rounded border border-ink/20 hover:bg-ink/5 text-ink/80 hover:text-ink transition-colors cursor-pointer disabled:opacity-40",children:"rebase onto this"})]})}var N=n("Wb"),Y=n("qg"),C=n("Po");function A(e){let{diffText:t,isLoading:n,filePath:r}=e,[i,o]=(0,a.J0)(!1),l=(0,C.w)(),c=(0,a.Kr)(()=>{if(!t)return[];let e=[],n=1,s=1,a=t.split(/\r?\n/);for(let t of a.some(e=>e.startsWith("@@"))?a:[`@@ -0,0 +1,${a.length} @@`,...a.map(e=>e.startsWith("+")||e.startsWith("-")?e:`+${e}`)])if(!(t.startsWith("diff --git")||t.startsWith("index ")||t.startsWith("---")||t.startsWith("+++")||t.startsWith("new file mode")||t.startsWith("deleted file mode")||t.startsWith("similarity index")||t.startsWith("old mode")||t.startsWith("new mode")||t.startsWith("\\ No newline")))if(t.startsWith("@@")){let a=t.match(/@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@/);a&&(n=parseInt(a[1],10),s=parseInt(a[2],10)),e.push({type:"meta",text:t})}else if(t.startsWith("+"))e.push({type:"add",text:t.slice(1),newNum:s++});else if(t.startsWith("-"))e.push({type:"del",text:t.slice(1),oldNum:n++});else{let a=t.startsWith(" ")?t.slice(1):t;e.push({type:"context",text:a,oldNum:n++,newNum:s++})}return e},[t]),d=(0,Y.sQ)(r),h=(0,a.Kr)(()=>{let e=Array(c.length).fill(""),t=-1,n=n=>{if(t<0)return;let s=(0,Y.O9)(c.slice(t,n).map(e=>e.text).join("\n"),d);for(let a=t;a<n;a++)e[a]=s[a-t]??"";t=-1};return c.forEach((e,s)=>{"meta"===e.type?n(s):t<0&&(t=s)}),n(c.length),e},[c,d,l]);return n?(0,s.Y)("div",{className:"my-2 p-4 rounded bg-canvas border border-ink/10 text-ink/40 font-mono text-xs flex items-center justify-center",children:"Loading commit diff..."}):t&&0!==c.length?(0,s.FD)("div",{className:"my-2 rounded border border-ink/15 bg-paper overflow-hidden text-[11px] font-mono leading-relaxed shadow-xs text-ink",children:[(0,s.FD)("div",{className:"flex items-center justify-between px-3 py-1.5 bg-canvas border-b border-ink/10 text-ink/70 text-[10.5px]",children:[(0,s.Y)("span",{className:"font-semibold text-meta",children:"Diff preview"}),(0,s.Y)("button",{type:"button",onClick:()=>o(!i),className:"hover:text-ink flex items-center gap-1 cursor-pointer transition-colors",children:i?(0,s.FD)(s.FK,{children:[(0,s.Y)(N.A,{size:12})," Collapse context"]}):(0,s.FD)(s.FK,{children:[(0,s.Y)(v.A,{size:12})," Expand all context"]})})]}),(0,s.Y)("div",{className:"overflow-x-auto max-h-72 select-text",children:(0,s.Y)("div",{className:"w-max min-w-full divide-y divide-ink/[0.04]",children:c.map((e,t)=>{if("meta"===e.type)return(0,s.FD)("div",{className:"flex items-center gap-2 px-3 py-1 bg-canvas border-y border-ink/10 text-meta text-[10px] font-semibold",children:[(0,s.Y)("span",{children:"↕"}),(0,s.Y)("span",{children:e.text})]},t);let n="add"===e.type,a="del"===e.type;return(0,s.FD)("div",{className:`flex items-start font-mono ${n?"bg-success/10 hover:bg-success/15":a?"bg-error/10 hover:bg-error/15":"text-ink hover:bg-ink/[0.02]"}`,children:[(0,s.Y)("div",{className:`w-10 flex-shrink-0 text-right pr-2 py-0.5 select-none border-r border-ink/10 text-[10px] tabular-nums font-mono ${a?"bg-error/15 text-error font-semibold":n?"bg-success/15 text-success/70":"bg-canvas/50 text-ink/40"}`,children:e.oldNum??(n?"+":"")}),(0,s.Y)("div",{className:`w-10 flex-shrink-0 text-right pr-2 py-0.5 select-none border-r border-ink/10 text-[10px] tabular-nums font-mono ${n?"bg-success/15 text-success font-semibold":a?"bg-error/15 text-error/70":"bg-canvas/50 text-ink/40"}`,children:e.newNum??(a?"-":"")}),(0,s.Y)("div",{className:`w-4 flex-shrink-0 text-center py-0.5 select-none font-bold ${n?"text-success":a?"text-error":"opacity-0"}`,children:n?"+":a?"-":" "}),(0,s.Y)("div",{className:"flex-1 py-0.5 pr-3 whitespace-pre text-ink",children:e.text?(0,s.Y)("span",{className:"shiki",dangerouslySetInnerHTML:{__html:h[t]}}):" "})]},t)})})})]}):(0,s.Y)("div",{className:"my-2 p-3 rounded bg-canvas border border-ink/10 text-ink/40 font-mono text-xs text-center",children:"No diff content available for this file."})}function F(e){let{commit:t,isSelected:n,isGraphMode:r,onSelect:i,onAction:o,onToggleFile:l,isExpandedFile:c,isLoadingFile:d,fileDiffs:h,headerRef:p}=e,[m,f]=(0,a.J0)(!1);return(0,s.Y)("div",{onClick:()=>i(t),className:`border-b border-ink/5 transition-colors cursor-pointer ${n?"bg-ink/[0.03]":"hover:bg-ink/[0.015]"}`,children:(0,s.FD)("div",{className:"py-2.5 pr-4 pl-1 flex flex-col",children:[(0,s.FD)("div",{className:"flex flex-col gap-1",children:[t.refs&&t.refs.length>0&&(0,s.Y)("div",{className:"flex flex-wrap items-center gap-1.5 pb-0.5",children:t.refs.map((e,t)=>{let n=e.includes("stash"),a=e.includes("HEAD")||e.includes("main")||e.includes("master");return(0,s.Y)("span",{className:`px-2 py-0.5 rounded text-[10px] font-mono border ${n?"bg-warning/10 text-warning border-warning/25 font-semibold":a?"bg-ink/10 text-ink font-semibold border-ink/20":"bg-canvas text-meta border-ink/10 font-medium"}`,children:e},t)})}),(0,s.Y)("div",{ref:p,className:"text-[13px] font-semibold text-ink leading-snug break-words",children:t.message}),(0,s.FD)("div",{className:"flex items-center gap-2 text-[11px] text-ink/50 font-mono flex-wrap",children:[(0,s.Y)("span",{children:t.author}),(0,s.Y)("span",{children:"•"}),(0,s.Y)("span",{children:t.date}),(0,s.Y)("span",{children:"•"}),(0,s.FD)("button",{type:"button",onClick:e=>{e.stopPropagation(),navigator.clipboard.writeText(t.hash),f(!0),setTimeout(()=>f(!1),2e3)},title:"Copy commit hash",className:"inline-flex items-center gap-1 hover:text-ink transition-colors cursor-pointer text-ink/70",children:[(0,s.Y)("span",{children:t.shortHash}),m?(0,s.Y)(g.A,{size:11,className:"text-success"}):(0,s.Y)(k.A,{size:11})]})]})]}),(n||r)&&(0,s.Y)("div",{className:"mt-2",children:(0,s.Y)(w,{commit:t,onAction:o})}),t.files&&t.files.length>0&&(0,s.Y)("div",{className:"mt-2 flex flex-col gap-1",children:t.files.map((e,n)=>{let a=c(t.hash,e.file),r=`${t.hash}:${e.file}`,i=void 0!==h[r]?h[r]:e.diff,o=d(t.hash,e.file),p="A"===e.status?"text-success font-bold":"D"===e.status?"text-error font-bold":"R"===e.status?"text-meta font-bold":"text-info font-bold";return(0,s.FD)("div",{className:"flex flex-col",children:[(0,s.FD)("div",{onClick:n=>{n.stopPropagation(),l(t.hash,e)},className:"flex items-center gap-2 py-1 px-2 rounded hover:bg-ink/5 text-[11.5px] font-mono text-ink/80 transition-colors group cursor-pointer border border-transparent hover:border-ink/10",children:[(0,s.Y)("span",{className:`w-3.5 text-center flex-shrink-0 text-[11px] ${p}`,children:e.status||"M"}),(0,s.Y)("span",{className:"truncate flex-1 min-w-0 text-ink/90 group-hover:text-ink font-medium",children:e.file}),(0,s.FD)("span",{className:"flex items-center gap-1 text-[10.5px] tabular-nums flex-shrink-0 font-medium",children:[(0,s.FD)("span",{className:"text-success",children:["+",e.additions]}),(0,s.Y)("span",{className:"text-ink/30",children:"/"}),(0,s.FD)("span",{className:"text-error",children:["-",e.deletions]})]}),(0,s.Y)("span",{className:"text-ink/40 group-hover:text-ink flex-shrink-0",children:a?(0,s.Y)(v.A,{size:13}):(0,s.Y)(y.A,{size:13})})]}),a&&(0,s.Y)("div",{className:"pl-4 pr-1",children:(0,s.Y)(A,{diffText:i,isLoading:o,filePath:e.file})})]},n)})})]})})}let D=[{hash:"8f8ca583e7162b190f898394e1e3ad81472a1290",shortHash:"8f8ca583",author:"Wijarnako Putra Rajeb",date:"Sep 10, 2026, 12:40 PM",message:"feat(chat): persist composer draft and attachments per session",parents:["6d3bac50"],refs:["HEAD -> main","origin/main"],lane:0,files:[{file:"app/hooks/chat/timeline/index.ts",status:"M",additions:3,deletions:2,diff:`@@ -7,6 +7,7 @@
3
+ import { useChatTimelineActions } from '@/client/hooks/chat/timeline/actions';
4
+ import { useChatTimelineSend } from '@/client/hooks/chat/timeline/send';
5
+ import { normalizeNoticePositions } from '@/shared/lib/chat/order';
6
+ import { createOmpAgentCallbacks } from '@/shared/lib/chat/timeline/omp-callbacks';
7
+ +import { useSessionState } from '@/client/hooks/workspace/session-state';
8
+
9
+ interface UseChatTimelineOptions {
10
+ folders?: any[];
11
+ appSettings?: Record<string, any>;
12
+ @@ -38,6 +39,7 @@
13
+ }, [setSearchParams]);
14
+
15
+ const { scrollRef, showScrollBottom, isScrolling, handleScroll, scrollToBottom } = useChatTimelineScroll();
16
+
17
+ - const [inputValue, setInputValue] = useState('');
18
+ - const [inputAttachments, setInputAttachments] = useState<Attachment[]>([]);
19
+ + const { draft, setDraft, attachments, setAttachments } = useSessionState(sessionId);
20
+ + const [inputValue, setInputValue] = useState(draft);`},{file:"app/components/workspace/SearchPanel.tsx",status:"M",additions:11,deletions:10},{file:"app/components/workspace/context-panel/RawMessagesList.tsx",status:"M",additions:4,deletions:3},{file:"app/components/workspace/git-panel/ChangesList.tsx",status:"M",additions:3,deletions:3},{file:"app/components/workspace/git-panel/RepoHeader.tsx",status:"M",additions:3,deletions:2},{file:"app/components/workspace/git-panel/index.tsx",status:"M",additions:3,deletions:2},{file:"app/hooks/workspace/git-tree.ts",status:"M",additions:22,deletions:16}]},{hash:"6d3bac504561a0e5b7218679124a91cfb23190ab",shortHash:"6d3bac50",author:"Wijarnako Putra Rajeb",date:"Sep 10, 2026, 12:40 PM",message:"feat(panels): persist git, search, and context panel state per session",parents:["ce7e5189"],lane:0,files:[{file:"app/components/workspace/SearchPanel.tsx",status:"M",additions:11,deletions:10},{file:"app/components/workspace/context-panel/RawMessagesList.tsx",status:"M",additions:4,deletions:3},{file:"app/components/workspace/git-panel/ChangesList.tsx",status:"M",additions:3,deletions:3},{file:"app/components/workspace/git-panel/RepoHeader.tsx",status:"M",additions:3,deletions:2},{file:"app/components/workspace/git-panel/index.tsx",status:"M",additions:3,deletions:2},{file:"app/hooks/workspace/git-tree.ts",status:"M",additions:22,deletions:16}]},{hash:"ce7e5189001b2a3c4d5e6f7a8b9c0d1e2f3a4b5c",shortHash:"ce7e5189",author:"Wijarnako Putra Rajeb",date:"Sep 10, 2026, 12:40 PM",message:"feat(panels): persist editor, file-explorer, browser, and terminal state per session",parents:["c087fa59"],lane:0,files:[{file:"app/components/workspace/editor/index.tsx",status:"M",additions:8,deletions:4},{file:"app/components/workspace/terminal-panel/index.tsx",status:"M",additions:12,deletions:5}]},{hash:"c087fa59123456789abcdef0123456789abcdef0",shortHash:"c087fa59",author:"Wijarnako Putra Rajeb",date:"Sep 10, 2026, 12:39 PM",message:"feat(layout): persist active right panel and opened files per session",parents:["221aa007"],lane:0,files:[{file:"app/components/layout/RightActivityBar.tsx",status:"M",additions:5,deletions:2},{file:"app/components/layout/desktop-layout/index.tsx",status:"M",additions:7,deletions:3}]},{hash:"221aa007abcdef0123456789abcdef0123456789",shortHash:"221aa007",author:"Wijarnako Putra Rajeb",date:"Sep 10, 2026, 12:39 PM",message:"feat(terminal): add per-session terminal output snapshot helpers",parents:["faf45f6f"],lane:0,files:[{file:"app/hooks/workspace/terminal-output.ts",status:"A",additions:45,deletions:0}]},{hash:"faf45f6f11223344556677889900aabbccddeeff",shortHash:"faf45f6f",author:"Wijarnako Putra Rajeb",date:"Sep 10, 2026, 12:39 PM",message:"feat(workspace): add per-session ui state persistence core",parents:["190196bd"],lane:0,files:[{file:"app/lib/workspace/session-state/store.ts",status:"M",additions:30,deletions:12}]},{hash:"190196bd99887766554433221100ffeeddccbbaa",shortHash:"190196bd",author:"Wijarnako Putra Rajeb",date:"Sep 10, 2026, 11:03 AM",message:"refactor(omp): unify live and reload message parsing behind shared core parser",parents:["c6944825"],lane:0,files:[{file:"app/lib/omp/session/parse-message-blocks.ts",status:"M",additions:18,deletions:24}]},{hash:"c694482500aabbccddee11223344556677889900",shortHash:"c6944825",author:"Wijarnako Putra Rajeb",date:"Sep 10, 2026, 10:55 AM",message:"fix(ui): use real session model in mobile view and drop fake fallbacks",parents:["aef783a5"],lane:0,files:[{file:"app/components/mobile/ScreenSwitcher.tsx",status:"M",additions:6,deletions:9}]},{hash:"aef783a512312312312312312312312312312312",shortHash:"aef783a5",author:"Wijarnako Putra Rajeb",date:"Sep 10, 2026, 10:54 AM",message:"fix(agent): fall back to persisted model selection on new-session spawn",parents:["3537f24b"],lane:0,files:[{file:"app/lib/omp/rpc/manager.ts",status:"M",additions:4,deletions:2}]},{hash:"3537f24b45645645645645645645645645645645",shortHash:"3537f24b",author:"Wijarnako Putra Rajeb",date:"Sep 10, 2026, 10:54 AM",message:"fix(omp): lift tool intent to message level in live mapper",parents:["e39af6e8"],lane:0,files:[{file:"app/lib/omp/session/mapper.ts",status:"M",additions:14,deletions:8}]},{hash:"e39af6e878978978978978978978978978978978",shortHash:"e39af6e8",author:"Wijarnako Putra Rajeb",date:"Sep 1, 2026, 07:00 PM",message:"refactor(ui): route inline alert/error banners through toast notifications",parents:["131681d9"],lane:0,files:[{file:"src/App.tsx",status:"M",additions:4,deletions:1},{file:"src/components/Header.tsx",status:"M",additions:3,deletions:0},{file:"src/components/LoginModalView.tsx",status:"M",additions:5,deletions:11},{file:"src/components/crd/CrdForm.tsx",status:"M",additions:5,deletions:17},{file:"src/components/sync/SyncLogsView.tsx",status:"M",additions:7,deletions:16},{file:"src/components/ui/ApiConfigModal.tsx",status:"M",additions:15,deletions:36}]},{hash:"131681d9aaaabbbbccccddddeeeeffff00001111",shortHash:"131681d9",author:"Wijarnako Putra Rajeb",date:"Sep 1, 2026, 03:46 PM",message:"fix(docker): persist sqlite data with named volume",parents:["008cbe07"],lane:0,files:[{file:".dockerignore",status:"M",additions:1,deletions:0,diff:`@@ -1,7 +1,8 @@
21
+ node_modules
22
+ dist
23
+ +data
24
+ .env
25
+ .env.*
26
+ !.env.example
27
+ .git
28
+ 2 unmodified lines`},{file:"docker-compose.yml",status:"M",additions:5,deletions:0}]},{hash:"008cbe0711112222333344445555666677778888",shortHash:"008cbe07",author:"Wijarnako Putra Rajeb",date:"Sep 1, 2026, 01:25 PM",message:"feat(logging): structured timestamped logging across all web flows, bridged to docker logs",parents:["81ad44d5","b3b71ed5"],refs:["origin/feat/whatsapp-notification","feat/whatsapp-notification"],lane:0,files:[{file:"server.ts",status:"M",additions:19,deletions:3}]},{hash:"81ad44d522223333444455556666777788889999",shortHash:"81ad44d5",author:"Wijarnako Putra Rajeb",date:"Sep 1, 2026, 01:07 PM",message:"WIP on main: b3b71ed fix(pbpmd): history modal reads live BOFIS API instead of sqlite cache",parents:["9616fad9"],refs:["refs/stash"],lane:1,files:[{file:"app/routes/api/pb-pmd/$id.history.ts",status:"M",additions:22,deletions:6}]},{hash:"9616fad933334444555566667777888899990000",shortHash:"9616fad9",author:"Wijarnako Putra Rajeb",date:"Sep 1, 2026, 01:07 PM",message:"index on main: b3b71ed fix(pbpmd): history modal reads live BOFIS API instead of sqlite cache",parents:["b3b71ed5"],lane:1,files:[{file:"app/routes/api/pb-pmd/$id.history.ts",status:"M",additions:15,deletions:4}]},{hash:"b3b71ed544445555666677778888999900001111",shortHash:"b3b71ed5",author:"Wijarnako Putra Rajeb",date:"Sep 1, 2026, 12:55 PM",message:"fix(pbpmd): history modal reads live BOFIS API instead of sqlite cache",parents:["4dc73776"],lane:0,files:[{file:"app/routes/api/pb-pmd/$id.history.ts",status:"M",additions:8,deletions:12}]},{hash:"4dc7377655556666777788889999000011112222",shortHash:"4dc73776",author:"Wijarnako Putra Rajeb",date:"Sep 1, 2026, 12:50 PM",message:"feat(ui): 13th KPI card TOTAL MANDAYS + gapless 6-col dashboard grid",parents:["acab6465"],lane:0,files:[{file:"app/components/dashboard/KPIGrid.tsx",status:"M",additions:35,deletions:7}]},{hash:"acab646566667777888899990000111122223333",shortHash:"acab6465",author:"Wijarnako Putra Rajeb",date:"Sep 1, 2026, 12:45 PM",message:"feat(pbpmd): history modal table layout, wider modal, drop edit scenario action",parents:["86a6d6c5"],lane:0,files:[{file:"app/components/pbpmd/HistoryModal.tsx",status:"M",additions:24,deletions:18}]},{hash:"86a6d6c577778888999900001111222233334444",shortHash:"86a6d6c5",author:"Wijarnako Putra Rajeb",date:"Sep 1, 2026, 12:45 PM",message:"feat(pbpmd): pb history modal reads sqlite cache via /api/pb-pmd/:id/history",parents:["9ffea446"],lane:0,files:[{file:"app/routes/api/pb-pmd/$id.history.ts",status:"M",additions:42,deletions:5}]},{hash:"9ffea44688889999000011112222333344445555",shortHash:"9ffea446",author:"Wijarnako Putra Rajeb",date:"Sep 1, 2026, 12:45 PM",message:"feat(dashboard): crdApproved threshold shifted 5 minutes from history date_end",parents:[],lane:0,files:[{file:"app/lib/dashboard/calculator.ts",status:"M",additions:12,deletions:2}]}];function M(e){let{output:t,onClose:n,onRefresh:r,onExecuteAction:i,rootPath:o,activeRepo:c}=e;if(!t)return null;let d=t.title.toLowerCase().includes("graph"),[h,p]=(0,a.J0)(d),[f,u]=(0,a.J0)(""),[g,k]=(0,a.J0)(""),[v,y]=(0,a.J0)(!1),{commits:w,hasMore:N,totalCount:Y,isLoadingMore:C,handleLoadMore:A}=function(e){let{output:t,isGraphMode:n,rootPath:s,activeRepo:r}=e,[i,o]=(0,a.J0)(!1),[l,c]=(0,a.J0)(t?.hasMore??t?.data?.length===50),[d,h]=(0,a.J0)(t?.total),p=(0,a.Kr)(()=>{let e=t?.data||[];return 0===e.length?D:e[0]&&"object"==typeof e[0]&&("hash"in e[0]||"shortHash"in e[0])?e.map(e=>({hash:e.hash||e.shortHash||"unknown",shortHash:e.shortHash||(e.hash?e.hash.slice(0,8):"unknown"),author:e.author||"Unknown",date:e.date||e.time||"",message:e.message||"",parents:Array.isArray(e.parents)?e.parents:[],refs:Array.isArray(e.refs)?e.refs:[],files:Array.isArray(e.files)?e.files:[],lane:"number"==typeof e.lane?e.lane:void 0})):D},[t?.data]),[m,f]=(0,a.J0)(p);(0,a.vJ)(()=>{f(p),c(t?.hasMore??t?.data?.length===50),"number"==typeof t?.total&&h(t.total)},[p,t?.hasMore,t?.data?.length,t?.total]);let u=(0,a.hb)(async()=>{if(!i&&l){o(!0);try{let e=new FormData;e.set("actionType",n?"graph":"history"),e.set("limit","50"),e.set("skip",String(m.length)),s&&e.set("root",s),r&&e.set("repo",r);let t=await fetch("/api/fs/git",{method:"POST",body:e}),a=await t.json();if(a.success&&Array.isArray(a.data)){let e=a.data.map(e=>({hash:e.hash||e.shortHash||"unknown",shortHash:e.shortHash||(e.hash?e.hash.slice(0,8):"unknown"),author:e.author||"Unknown",date:e.date||e.time||"",message:e.message||"",parents:Array.isArray(e.parents)?e.parents:[],refs:Array.isArray(e.refs)?e.refs:[],files:Array.isArray(e.files)?e.files:[],lane:"number"==typeof e.lane?e.lane:void 0}));f(t=>{let n=new Set(t.map(e=>e.hash));return[...t,...e.filter(e=>!n.has(e.hash))]}),c(!!(a.hasMore??50===e.length)),"number"==typeof a.total&&h(a.total)}else c(!1)}catch(e){console.error("Failed to load more commits:",e)}finally{o(!1)}}},[i,l,n,m.length,s,r]);return{commits:m,setCommits:f,hasMore:l,totalCount:d,isLoadingMore:i,handleLoadMore:u}}({output:t,isGraphMode:h,rootPath:o,activeRepo:c}),{fileDiffs:M,expandedFiles:S,loadingFiles:j,handleToggleFile:P,handleCommitAction:$}=function(e){let{onExecuteAction:t,rootPath:n,activeRepo:s}=e,[r,i]=(0,a.J0)({}),[o,l]=(0,a.J0)(new Set),[c,d]=(0,a.J0)(new Set),h=(0,a.hb)(async(e,t)=>{let a=`${e}:${t.file}`,c=o.has(a);if(l(e=>{let t=new Set(e);return t.has(a)?t.delete(a):t.add(a),t}),!c&&void 0===r[a]&&!t.diff){d(e=>new Set(e).add(a));try{let r=new FormData;r.set("actionType","commit_diff"),r.set("hash",e),r.set("file",t.file),n&&r.set("root",n),s&&"."!==s&&r.set("repo",s);let o=await fetch("/api/fs/git",{method:"POST",body:r}),l=await o.json();l&&"string"==typeof l.diff?i(e=>({...e,[a]:l.diff})):l&&l.error&&i(e=>({...e,[a]:`// Error: ${l.error}`}))}catch(e){console.error("Failed to load file diff:",e),i(t=>({...t,[a]:`// Error loading diff: ${e?.message||"Network error"}`}))}finally{d(e=>{let t=new Set(e);return t.delete(a),t})}}},[o,r,n,s]);return{fileDiffs:r,expandedFiles:o,loadingFiles:c,handleToggleFile:h,handleCommitAction:(0,a.hb)((e,n)=>{if(t)if("checkout"===e)t("checkout",void 0,{branch:n.hash});else if("create_branch_here"===e){let e=window.prompt(`Create new branch at commit ${n.shortHash}:`,`branch-${n.shortHash}`);e?.trim()&&t("create_branch",void 0,{branch:e.trim()})}else if("cherry_pick"===e)window.confirm(`Cherry-pick commit ${n.shortHash} onto current branch?`)&&t("cherry_pick",void 0,{hash:n.hash});else if("revert"===e)window.confirm(`Revert commit ${n.shortHash}?`)&&t("revert_commit",void 0,{hash:n.hash});else if("reset"===e){let e=window.prompt(`Reset current branch to ${n.shortHash} (soft, mixed, hard):`,"soft");e&&["soft","mixed","hard"].includes(e.toLowerCase())&&t("reset_commit",void 0,{hash:n.hash,mode:e.toLowerCase()})}else"merge"===e?window.confirm(`Merge commit ${n.shortHash} into current branch?`)&&t("merge_commit",void 0,{hash:n.hash}):"rebase"===e&&window.confirm(`Rebase current branch onto commit ${n.shortHash}?`)&&t("rebase_commit",void 0,{hash:n.hash})},[t])}}({onExecuteAction:i,rootPath:o,activeRepo:c});(0,a.vJ)(()=>{w.length>0&&!g&&k(w[0].hash)},[w,g]);let z=(0,a.Kr)(()=>{if(!f.trim())return w;let e=f.toLowerCase().trim();return w.filter(t=>t.message.toLowerCase().includes(e)||t.author.toLowerCase().includes(e)||t.shortHash.toLowerCase().includes(e)||t.hash.toLowerCase().includes(e)||t.refs?.some(t=>t.toLowerCase().includes(e)))},[w,f]),H=(0,a.li)(null),R=(0,a.li)(null),L=(0,a.li)(null),W=(0,a.li)({}),[J,T]=(0,a.J0)({}),[O,E]=(0,a.J0)(800);(0,a.vJ)(()=>{let e=L.current;if(!e||!N||C||f.trim())return;let t=new IntersectionObserver(e=>{e[0].isIntersecting&&A()},{root:H.current,threshold:.1});return t.observe(e),()=>t.disconnect()},[N,C,f,A]);let K=(0,a.hb)(()=>{if(!H.current||!R.current)return;let e=H.current.getBoundingClientRect(),t=H.current.scrollTop,n={};z.forEach((s,a)=>{let r=W.current[s.hash];if(r){let a=r.getBoundingClientRect();n[s.hash]=a.top+a.height/2-e.top+t}else n[s.hash]=60*a+20}),T(n),E(Math.max(R.current.offsetHeight,H.current.clientHeight,600))},[z]);(0,a.Nf)(()=>{K();let e=requestAnimationFrame(()=>{K()});return()=>cancelAnimationFrame(e)},[K,z,M,S,h]),(0,a.vJ)(()=>{let e=R.current;if(!e)return;let t=new ResizeObserver(()=>{K()});return t.observe(e),()=>t.disconnect()},[K]);let I=(0,a.Kr)(()=>x(z),[z]),_=(0,a.Kr)(()=>{let e=0;return I.forEach(t=>{t>e&&(e=t)}),e},[I]),B=h?(_+1)*18+32:36,G=async()=>{y(!0),r&&await r(),setTimeout(()=>y(!1),600)};return(0,s.Y)("div",{className:"fixed inset-0 z-50 bg-canvas/80 backdrop-blur-xs flex items-center justify-center p-0 lg:p-5",onClick:n,role:"dialog","aria-modal":"true",children:(0,s.FD)("div",{className:"bg-paper border-ink/20 shadow-2xl flex flex-col overflow-hidden\n w-full h-full rounded-none border-0\n lg:w-[min(96vw,980px)] lg:h-[88vh] lg:rounded-xl lg:border\n pt-[env(safe-area-inset-top,0px)] lg:pt-0",onClick:e=>e.stopPropagation(),children:[(0,s.Y)(m,{isGraphMode:h,onToggleMode:p,searchQuery:f,onSearchChange:u,onRefresh:G,onClose:n,isRefreshing:v,totalCommits:z.length,totalCount:Y}),(0,s.Y)("div",{ref:H,className:"flex-1 overflow-y-auto scrollbar-overlay-container relative select-text",children:0===z.length?(0,s.Y)("div",{className:"flex flex-col items-center justify-center py-20 text-ink/40 font-mono text-xs",children:"No matching commits found."}):(0,s.FD)("div",{className:"relative min-h-full pb-8",children:[(0,s.Y)(b,{commits:z,nodePositions:J,selectedHash:g,isGraphMode:h,laneWidth:18,paddingLeft:16,totalHeight:O}),(0,s.FD)("div",{ref:R,className:"flex flex-col relative z-20",style:{paddingLeft:`${B}px`},children:[z.map(e=>(0,s.Y)(F,{commit:e,isSelected:g===e.hash,isGraphMode:h,onSelect:e=>k(e.hash),onAction:$,onToggleFile:P,isExpandedFile:(e,t)=>S.has(`${e}:${t}`),isLoadingFile:(e,t)=>j.has(`${e}:${t}`),fileDiffs:M,headerRef:t=>{W.current[e.hash]=t}},e.hash)),(0,s.Y)("div",{ref:L,className:"pt-3 pb-4 px-4 flex items-center justify-center",children:C?(0,s.FD)("div",{className:"flex items-center gap-2 text-xs text-ink/60 font-mono py-2",children:[(0,s.Y)(l.A,{size:14,className:"animate-spin text-info"}),(0,s.Y)("span",{children:"Loading more commits..."})]}):N&&!f.trim()?(0,s.Y)("button",{type:"button",onClick:A,className:"px-3 py-1.5 text-xs font-mono text-ink/70 hover:text-ink bg-ink/5 hover:bg-ink/10 rounded-md border border-ink/10 transition-colors cursor-pointer",children:"Load more commits..."}):z.length>10?(0,s.FD)("div",{className:"text-[11px] font-mono text-ink/40 py-2",children:["End of commit history (",z.length," commits)"]}):null})]})]})})]})})}function S(e){let{children:t,onClose:n,wide:a}=e;return(0,s.Y)("div",{className:"fixed inset-0 z-50 bg-canvas/80 flex items-center justify-center p-4",onClick:n,role:"dialog","aria-modal":"true",children:(0,s.Y)("div",{className:`bg-paper border border-ink/20 rounded-lg shadow-xl flex flex-col overflow-hidden ${a?"w-[min(94vw,680px)] max-h-[82vh]":"w-[min(94vw,420px)] max-h-[80vh]"}`,onClick:e=>e.stopPropagation(),children:t})})}function j(e){let{modal:t,onClose:n,onConfirm:a}=e;return t?(0,s.FD)(S,{onClose:n,children:[(0,s.FD)("div",{className:"flex items-center gap-3 px-4 py-3 border-b border-ink/10",children:[(0,s.Y)(i.A,{size:16,className:"text-error flex-shrink-0"}),(0,s.Y)("h3",{className:"text-sm font-semibold text-ink",children:"Confirm Action"})]}),(0,s.Y)("div",{className:"px-4 py-4 text-xs text-ink/80 leading-relaxed",children:t.message}),(0,s.FD)("div",{className:"flex items-center justify-end gap-2 px-4 py-3 border-t border-ink/10",children:[(0,s.Y)("button",{type:"button",onClick:n,className:"px-3 py-1.5 rounded border border-ink/20 text-ink/70 hover:bg-ink/5 hover:text-ink transition-colors cursor-pointer text-xs",children:"Cancel"}),(0,s.Y)("button",{type:"button",onClick:a,className:"px-3 py-1.5 rounded bg-error text-canvas hover:bg-error/90 transition-colors cursor-pointer text-xs font-medium",children:"Confirm"})]})]}):null}function P(e){let{isOpen:t,branchName:n,inputRef:r,onChange:i,onClose:l,onCreate:c}=e;if(!t)return null;let d=(0,a.hb)(()=>{n.trim()&&c()},[n,c]);return(0,s.FD)(S,{onClose:l,children:[(0,s.FD)("div",{className:"flex items-center gap-3 px-4 py-3 border-b border-ink/10",children:[(0,s.Y)(o.A,{size:16,className:"text-ink/60 flex-shrink-0"}),(0,s.Y)("h3",{className:"text-sm font-semibold text-ink",children:"Create New Branch"})]}),(0,s.Y)("div",{className:"px-4 py-4",children:(0,s.Y)("input",{ref:r,type:"text",value:n,onChange:e=>i(e.currentTarget.value),onKeyDown:e=>{"Enter"===e.key&&d(),"Escape"===e.key&&l()},placeholder:"branch-name",className:"w-full bg-canvas border border-ink/20 rounded px-3 py-2 text-xs focus:outline-none focus:border-ink/40 text-ink placeholder-ink/40 transition-colors"})}),(0,s.FD)("div",{className:"flex items-center justify-end gap-2 px-4 py-3 border-t border-ink/10",children:[(0,s.Y)("button",{type:"button",onClick:l,className:"px-3 py-1.5 rounded border border-ink/20 text-ink/70 hover:bg-ink/5 hover:text-ink transition-colors cursor-pointer text-xs",children:"Cancel"}),(0,s.Y)("button",{type:"button",onClick:d,disabled:!n.trim(),className:"px-3 py-1.5 rounded bg-ink text-canvas hover:bg-ink/90 transition-colors cursor-pointer text-xs font-medium disabled:opacity-40 disabled:cursor-not-allowed",children:"Create"})]})]})}function $(e){let{message:t,hasStagedChanges:n,isBusy:a=!1,onChangeMessage:r,onCommit:i}=e,o=n&&t.trim().length>0&&!a;return(0,s.FD)("div",{className:"border-t border-ink/10 bg-canvas/50 p-3 flex flex-col gap-2",children:[(0,s.Y)("textarea",{value:t,onChange:e=>r(e.currentTarget.value),onKeyDown:e=>{"Enter"===e.key&&(e.metaKey||e.ctrlKey)&&o&&(e.preventDefault(),i())},placeholder:"Commit message (⌘/Ctrl+Enter to commit)",rows:5,className:"w-full resize-y min-h-[100px] max-h-[200px] bg-paper border border-ink/20 rounded px-2.5 py-1.5 text-xs text-ink placeholder-ink/40 focus:outline-none focus:border-ink/40 transition-colors font-mono"}),(0,s.FD)("button",{type:"button",onClick:i,disabled:!o,title:n?"Commit staged changes":"Stage changes first",className:"flex items-center justify-center gap-1.5 px-3 py-1.5 rounded bg-ink text-canvas hover:bg-ink/90 transition-colors cursor-pointer text-xs font-medium disabled:opacity-40 disabled:cursor-not-allowed",children:[(0,s.Y)(g.A,{size:12}),"Commit"]})]})}var z=n("vZ"),H=n("r"),R=n("nV"),L=n("Sj"),W=n("y");let J=(0,W.A)({name:"list",size:24,node:[["path",{d:"M3 5h.01",key:"18ugdj"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 19h.01",key:"noohij"}],["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 19h13",key:"m83p4d"}]]}),T=(0,W.A)({name:"folder-tree",size:24,node:[["path",{d:"M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"hod4my"}],["path",{d:"M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"w4yl2u"}],["path",{d:"M3 5a2 2 0 0 0 2 2h3",key:"f2jnh7"}],["path",{d:"M3 3v13a2 2 0 0 0 2 2h3",key:"k8epm1"}]]});function O(e){let{branchRef:t,showBranchMenu:n,setShowBranchMenu:a,branch:r,branches:i,remoteBranches:l,onCheckout:d,onOpenBranchPrompt:h,optionsRef:p,showOptions:m,setShowOptions:f,onHistory:u,onGraph:x,viewMode:b,setViewMode:k,isBusy:y=!1,syncCount:w={ahead:0,behind:0},onSync:N}=e;return(0,s.FD)("div",{className:"p-3 border-b border-ink/10 bg-canvas/50 flex items-center justify-between",children:[(0,s.FD)("div",{className:"relative",ref:t,children:[(0,s.FD)("button",{onClick:()=>a(!n),className:"flex items-center space-x-1.5 hover:bg-ink/5 px-2 py-1 -ml-2 rounded transition-colors text-[11px] text-ink/80 font-medium",children:[(0,s.Y)(z.A,{size:12,className:"text-ink/60"}),(0,s.Y)("span",{className:"truncate max-w-[140px]",children:r}),(0,s.Y)(v.A,{size:12,className:"text-ink/40"})]}),n&&(0,s.Y)("div",{className:"absolute top-full left-0 mt-1 w-48 bg-paper border border-ink/20 rounded-md shadow-lg z-50 flex flex-col overflow-hidden text-xs",children:(0,s.FD)("div",{className:"max-h-48 scrollbar-overlay-container scrollbar-overlay-static py-1",children:[i.length>0&&(0,s.FD)(s.FK,{children:[(0,s.Y)("div",{className:"px-3 py-1 text-[9px] uppercase tracking-wider text-ink/40 font-semibold",children:"Local"}),i.map(e=>(0,s.FD)("button",{onClick:()=>{d(e),a(!1)},className:"w-full text-left px-3 py-2 hover:bg-ink/5 flex items-center justify-between transition-colors",children:[(0,s.Y)("span",{className:"truncate",children:e}),r===e&&(0,s.Y)(g.A,{size:12,className:"text-ink"})]},e))]}),l.length>0&&(0,s.FD)(s.FK,{children:[(0,s.Y)("div",{className:"px-3 py-1 text-[9px] uppercase tracking-wider text-ink/40 font-semibold",children:"Remote"}),l.map(e=>(0,s.FD)("button",{onClick:()=>{d(e),a(!1)},className:"w-full text-left px-3 py-2 hover:bg-ink/5 flex items-center justify-between transition-colors",children:[(0,s.Y)("span",{className:"truncate",children:e}),r===e&&(0,s.Y)(g.A,{size:12,className:"text-ink"})]},e))]}),(0,s.Y)("div",{className:"w-full h-px bg-ink/10 my-1"}),(0,s.FD)("button",{onClick:()=>{h(),a(!1)},className:"w-full text-left px-3 py-2 hover:bg-ink/5 flex items-center space-x-2 transition-colors text-ink/80 italic",children:[(0,s.Y)(H.A,{size:12}),(0,s.Y)("span",{children:"Create new branch..."})]})]})})]}),(0,s.FD)("div",{className:"flex items-center space-x-2 text-ink/40 relative",ref:p,children:[(0,s.FD)("button",{type:"button",onClick:N,disabled:y||0===w.ahead&&0===w.behind,title:w.ahead>0&&w.behind>0?`Pull ${w.behind} then push ${w.ahead} commit(s)`:w.ahead>0?`Push ${w.ahead} commit(s)`:w.behind>0?`Pull ${w.behind} commit(s)`:"Up to date",className:"flex items-center gap-1 p-1 rounded hover:text-ink hover:bg-ink/5 cursor-pointer transition-colors disabled:opacity-40 disabled:cursor-not-allowed",children:[(0,s.Y)(R.A,{size:13}),(0,s.FD)("span",{className:"font-mono tabular-nums text-[10px]",children:["↑",w.ahead," ↓",w.behind]})]}),(0,s.Y)("button",{type:"button",onClick:u,title:"Commit History",className:"p-1 rounded hover:text-ink hover:bg-ink/5 cursor-pointer transition-colors",children:(0,s.Y)(c.A,{size:13})}),(0,s.Y)("button",{type:"button",onClick:x,title:"Git Graph",className:"p-1 rounded hover:text-ink hover:bg-ink/5 cursor-pointer transition-colors",children:(0,s.Y)(o.A,{size:13})}),(0,s.Y)("button",{type:"button",onClick:()=>f(!m),title:"View Options",className:"p-1 rounded hover:text-ink hover:bg-ink/5 cursor-pointer transition-colors",children:(0,s.Y)(L.A,{size:13})}),m&&(0,s.FD)("div",{className:"absolute right-0 top-full mt-1 w-36 bg-paper border border-ink/15 rounded-md shadow-lg z-50 py-1 font-mono text-xs",children:[(0,s.FD)("button",{type:"button",onClick:()=>{k("flat"),f(!1)},className:"w-full px-3 py-1.5 text-left text-ink hover:bg-ink/5 flex items-center justify-between transition-colors",children:[(0,s.FD)("div",{className:"flex items-center space-x-1.5",children:[(0,s.Y)(J,{size:12,className:"text-ink/60"}),(0,s.Y)("span",{children:"View as List"})]}),"flat"===b&&(0,s.Y)(g.A,{size:12,className:"text-ink"})]}),(0,s.FD)("button",{type:"button",onClick:()=>{k("tree"),f(!1)},className:"w-full px-3 py-1.5 text-left text-ink hover:bg-ink/5 flex items-center justify-between transition-colors",children:[(0,s.FD)("div",{className:"flex items-center space-x-1.5",children:[(0,s.Y)(T,{size:12,className:"text-ink/60"}),(0,s.Y)("span",{children:"View as Tree"})]}),"tree"===b&&(0,s.Y)(g.A,{size:12,className:"text-ink"})]})]})]})]})}var E=n("rm"),K=n("I"),I=n("FL");function _(e){let{repoRef:t,showRepoMenu:n,setShowRepoMenu:a,activeRepo:r,repos:i,isLoading:o,rootPath:l,reposScanning:c,onSelectRepo:d,onRefresh:h,onRefreshRepos:m}=e,[f,u]=(0,I.bL)("git.repoQuery",""),x=function(e){if(!e)return"workspace root";let t=e.replace(/\\/g,"/").split("/").filter(Boolean);return t.length>0?t[t.length-1]:"workspace root"}(l),b=e=>"."===e?x:e,k=i.filter(e=>!f.trim()||b(e).toLowerCase().includes(f.toLowerCase()));return(0,s.FD)("div",{className:"p-3 border-b border-ink/10 flex items-center justify-between",children:[(0,s.FD)("div",{className:"relative",ref:t,children:[(0,s.FD)("button",{onClick:()=>a(!n),className:"flex items-center space-x-1.5 hover:bg-ink/5 px-2 py-1 -ml-2 rounded transition-colors text-xs text-ink/80 font-medium",children:[(0,s.Y)(E.A,{size:12,className:"text-ink/60"}),(0,s.FD)("span",{className:"flex items-center space-x-1 truncate max-w-[150px]",children:[(0,s.Y)("span",{className:"text-ink/50 font-normal uppercase tracking-wider text-[10px]",children:"GIT"}),(0,s.Y)("span",{className:"text-ink/30",children:"•"}),(0,s.Y)("span",{children:"."===r?x:r.split("/").pop()})]}),(0,s.Y)(v.A,{size:12,className:"text-ink/40"})]}),n&&(0,s.FD)("div",{className:"absolute top-full left-0 mt-1 w-52 bg-paper border border-ink/20 rounded-md shadow-lg z-50 flex flex-col overflow-hidden text-xs",children:[(0,s.FD)("div",{className:"px-2 py-1.5 border-b border-ink/10 flex items-center space-x-1.5",children:[(0,s.Y)(p.A,{size:11,className:"text-ink/40 flex-shrink-0"}),(0,s.Y)("input",{type:"text",value:f,onChange:e=>u(e.currentTarget.value),placeholder:"Search repos...",title:"Search repositories",className:"w-full bg-transparent outline-none text-xs text-ink placeholder-ink/40",autoFocus:!0}),f&&(0,s.Y)("button",{type:"button",onClick:()=>u(""),title:"Clear search",className:"text-ink/40 hover:text-ink flex-shrink-0",children:"×"}),(0,s.Y)("button",{type:"button",onClick:m,title:"Refresh nested repos",disabled:c,className:"text-ink/40 hover:text-ink flex-shrink-0 transition-colors disabled:opacity-40 disabled:hover:text-ink/40",children:(0,s.Y)(K.A,{size:11,className:c?"animate-spin":""})})]}),(0,s.Y)("div",{className:"max-h-48 scrollbar-overlay-container scrollbar-overlay-static py-1",children:0===k.length?(0,s.Y)("div",{className:"px-3 py-2 text-ink/40 italic",children:"No repos found"}):k.map(e=>(0,s.FD)("button",{onClick:()=>{d(e),a(!1),u("")},title:b(e),className:"w-full text-left px-3 py-2 hover:bg-ink/5 flex items-center justify-between transition-colors",children:[(0,s.Y)("span",{className:"truncate",children:b(e)}),r===e&&(0,s.Y)(g.A,{size:12,className:"text-ink"})]},e))})]})]}),(0,s.Y)("div",{className:"flex space-x-2 text-ink/40",children:(0,s.Y)("button",{type:"button",onClick:h,title:"Refresh",className:"hover:text-ink cursor-pointer inline-flex",children:(0,s.Y)(K.A,{size:14,className:o?"animate-spin":""})})})]})}var B=n("DV"),G=n("Ih"),V=n("cx"),U=n("LQ");function q(e){let{change:t,isStaged:n,repo:a,rootPath:r,onAction:i}=e,o=(0,U.R)(t.status,n),l=o.charStatus,c=o.colorClass,d=t.file.split("/"),h=d.pop()||t.file,p=d.length>0?d.join("/"):"";return(0,s.FD)("div",{className:"flex items-center justify-between px-3 py-1 hover:bg-ink/5 cursor-pointer group text-[11px] transition-colors",onClick:()=>{window.dispatchEvent(new CustomEvent("omp:open-diff",{detail:{file:t.file,staged:n,status:l,repo:a||".",root:r}}))},children:[(0,s.FD)("div",{className:"flex items-center space-x-1.5 flex-1 min-w-0 pr-2",children:[(0,s.Y)("span",{className:`font-bold font-mono text-[9px] w-3 flex-shrink-0 text-center ${c}`,title:`Status: ${o.label}`,children:l}),(0,s.Y)(V.o,{name:h,size:12,className:"flex-shrink-0"}),(0,s.Y)("span",{className:`truncate ${c}`,title:t.file,children:h}),p&&(0,s.Y)("span",{className:"text-[9px] text-ink/40 truncate ml-1",children:p})]}),(0,s.Y)("div",{className:"flex items-center space-x-1 text-ink/40 flex-shrink-0",children:(0,s.FD)("div",{className:"flex items-center opacity-0 group-hover:opacity-100 space-x-1",children:[!n&&(0,s.FD)(s.FK,{children:[(0,s.Y)("button",{type:"button",onClick:()=>i("revert",t.file),title:"Discard Changes",className:"w-5 h-5 flex items-center justify-center rounded hover:text-error hover:bg-error/10 cursor-pointer transition-colors",children:(0,s.Y)(G.A,{size:11})}),(0,s.Y)("button",{type:"button",onClick:()=>i("stage",t.file),title:"Stage Changes",className:"w-5 h-5 flex items-center justify-center rounded hover:text-ink hover:bg-ink/10 cursor-pointer transition-colors",children:(0,s.Y)(H.A,{size:11})})]}),n&&(0,s.Y)("button",{type:"button",onClick:()=>i("unstage",t.file),title:"Unstage Changes",className:"w-5 h-5 flex items-center justify-center rounded hover:text-ink hover:bg-ink/10 cursor-pointer transition-colors",children:(0,s.Y)(B.A,{size:11})})]})})]})}function Q(e){let{node:t,isStaged:n,isFolderOpen:a,toggleFolder:r,onAction:i,depth:o=0,repo:l,rootPath:c}=e,d="folder"===t.type,h=!!d&&a(t.id);if(d)return(0,s.FD)("div",{className:"select-none",children:[(0,s.FD)("div",{className:"flex items-center justify-between px-2 py-1 hover:bg-ink/5 cursor-pointer rounded group transition-colors text-[11px]",onClick:()=>r(t.id),children:[(0,s.FD)("div",{className:"flex items-center space-x-1.5 flex-1 min-w-0 pr-1",children:[(0,s.Y)("span",{className:"w-3.5 h-3.5 flex items-center justify-center text-ink/40 flex-shrink-0",children:h?(0,s.Y)(v.A,{size:12}):(0,s.Y)(y.A,{size:12})}),(0,s.Y)(V.o,{name:t.name,isFolder:!0,isOpen:h,size:13,className:"flex-shrink-0"}),(0,s.Y)("span",{className:"font-medium text-ink truncate",children:t.name}),(0,s.Y)("span",{className:"text-[9px] text-ink/40 font-normal px-1 py-0.2 bg-ink/5 rounded-full ml-1",children:t.changeCount})]}),(0,s.Y)("div",{className:"flex items-center space-x-1 text-ink/40 flex-shrink-0",children:(0,s.Y)("div",{className:"flex items-center opacity-0 group-hover:opacity-100 space-x-1",children:n?(0,s.Y)("button",{type:"button",onClick:e=>{e.stopPropagation(),i("unstage",t.path)},title:`Unstage ${t.name}`,className:"w-5 h-5 flex items-center justify-center rounded hover:text-ink hover:bg-ink/10 cursor-pointer transition-colors",children:(0,s.Y)(B.A,{size:11})}):(0,s.FD)(s.FK,{children:[(0,s.Y)("button",{type:"button",onClick:e=>{e.stopPropagation(),i("revert",t.path)},title:`Discard changes in ${t.name}`,className:"w-5 h-5 flex items-center justify-center rounded hover:text-error hover:bg-error/10 cursor-pointer transition-colors",children:(0,s.Y)(G.A,{size:11})}),(0,s.Y)("button",{type:"button",onClick:e=>{e.stopPropagation(),i("stage",t.path)},title:`Stage ${t.name}`,className:"w-5 h-5 flex items-center justify-center rounded hover:text-ink hover:bg-ink/10 cursor-pointer transition-colors",children:(0,s.Y)(H.A,{size:11})})]})})})]}),h&&t.children&&t.children.length>0&&(0,s.Y)("div",{className:"ml-3 border-l border-ink/10 pl-1",children:t.children.map(e=>(0,s.Y)(Q,{node:e,isStaged:n,isFolderOpen:a,toggleFolder:r,onAction:i,depth:o+1,repo:l,rootPath:c},e.id))})]});let p=t.change,m=(0,U.R)(p?.status||"M",n),f=m.charStatus,u=m.colorClass,x=p?p.file:t.path;return(0,s.FD)("div",{className:"flex items-center justify-between px-2 py-0.5 hover:bg-ink/5 cursor-pointer rounded group transition-colors text-[11px]",onClick:()=>{window.dispatchEvent(new CustomEvent("omp:open-diff",{detail:{file:x,staged:n,status:f,repo:l||".",root:c}}))},children:[(0,s.FD)("div",{className:"flex items-center space-x-1.5 flex-1 min-w-0 pr-1",children:[(0,s.Y)("span",{className:"w-3.5 h-3.5 flex items-center justify-center flex-shrink-0",children:(0,s.Y)("span",{className:`font-bold font-mono text-[9px] ${u}`,title:`Status: ${m.label}`,children:f})}),(0,s.Y)(V.o,{name:t.name,size:12,className:"flex-shrink-0"}),(0,s.Y)("span",{className:`truncate ${u}`,title:x,children:t.name})]}),(0,s.Y)("div",{className:"flex items-center space-x-1 text-ink/40 flex-shrink-0",children:(0,s.Y)("div",{className:"flex items-center opacity-0 group-hover:opacity-100 space-x-1",children:n?(0,s.Y)("button",{type:"button",onClick:()=>i("unstage",x),title:"Unstage Changes",className:"w-5 h-5 flex items-center justify-center rounded hover:text-ink hover:bg-ink/10 cursor-pointer transition-colors",children:(0,s.Y)(B.A,{size:11})}):(0,s.FD)(s.FK,{children:[(0,s.Y)("button",{type:"button",onClick:()=>i("revert",x),title:"Discard Changes",className:"w-5 h-5 flex items-center justify-center rounded hover:text-error hover:bg-error/10 cursor-pointer transition-colors",children:(0,s.Y)(G.A,{size:11})}),(0,s.Y)("button",{type:"button",onClick:()=>i("stage",x),title:"Stage Changes",className:"w-5 h-5 flex items-center justify-center rounded hover:text-ink hover:bg-ink/10 cursor-pointer transition-colors",children:(0,s.Y)(H.A,{size:11})})]})})})]})}function Z(e){let{changes:t,isStaged:n,repo:r,rootPath:i,onAction:o}=e,{tree:l,isFolderOpen:c,toggleFolder:d}=function(e){let{sessionId:t,ready:n,read:s}=(0,I.p0)(),r=(0,a.Kr)(()=>(function(e){let t={id:"",name:"",path:"",type:"folder",children:[],changeCount:0};for(let n of e){let e=n.file.replace(/^[./]+/,""),s=e.endsWith("/"),a=e.replace(/\/$/,"").split("/").filter(Boolean),r=t,i="";for(let e=0;e<a.length;e++){let t=a[e];i=i?`${i}/${t}`:t;let o=e===a.length-1;if(o&&!s)r.children.push({id:i,name:t,path:i,type:"file",change:n,children:[],changeCount:1});else{let e=r.children.find(e=>"folder"===e.type&&e.name===t);e||(e={id:i,name:t,path:i,type:"folder",children:[],changeCount:0,change:o&&s?n:void 0},r.children.push(e)),r=e}}}return!function e(t){if("file"===t.type)return 1;let n=+!!t.change;for(let s of t.children)n+=e(s);return t.changeCount=n,t.children.sort((e,t)=>"folder"===e.type&&"file"===t.type?-1:"file"===e.type&&"folder"===t.type?1:e.name.localeCompare(t.name)),n}(t),t.children})(e),[e]),i=(0,a.Kr)(()=>{let e=new Set;return!function t(n){for(let s of n)"folder"===s.type&&(e.add(s.id),s.children&&s.children.length>0&&t(s.children))}(r),e},[r]),[o,l]=(0,I.bL)("git.expandedFolders",[]),c=(0,a.Kr)(()=>new Set(o),[o]),d=(0,a.li)(null);(0,a.vJ)(()=>{!n||d.current===t||0===i.size||(d.current=t,s("git.expandedFolders",[]).length>0||l(Array.from(i)))},[n,t,i,s,l]);let h=(0,a.hb)(e=>{l(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),Array.from(n)})},[l]),p=(0,a.hb)(e=>c.has(e),[c]);return{tree:r,expandedFolders:c,toggleFolder:h,isFolderOpen:p,expandAll:()=>l(Array.from(i)),collapseAll:()=>l([])}}(t);return 0===l.length?null:(0,s.Y)("div",{className:"py-0.5",children:l.map(e=>(0,s.Y)(Q,{node:e,isStaged:n,isFolderOpen:c,toggleFolder:d,onAction:o,repo:r,rootPath:i},e.id))})}function X(e){let{changes:t,isLoading:n,viewMode:a,repo:r,rootPath:i,onAction:o}=e,[l,c]=(0,I.bL)("git.stagedExpanded",!0),[d,h]=(0,I.bL)("git.unstagedExpanded",!0),p=t.filter(e=>{let t=e.status;return t&&" "!==t[0]&&"?"!==t[0]}),m=t.filter(e=>{let t=e.status;return t&&" "!==t[1]&&"?"!==t[1]||"??"===t});return n&&0===t.length?(0,s.Y)("div",{className:"flex-1 scrollbar-overlay-container scrollbar-overlay-static font-mono text-[11px] text-ink/80",children:(0,s.Y)("div",{className:"p-4 text-center text-ink/40 italic",children:"Loading..."})}):0===t.length?(0,s.Y)("div",{className:"flex-1 scrollbar-overlay-container scrollbar-overlay-static font-mono text-[11px] text-ink/80",children:(0,s.Y)("div",{className:"p-4 text-center text-ink/40 italic",children:"No changes found."})}):(0,s.Y)("div",{className:"flex-1 scrollbar-overlay-container scrollbar-overlay-static font-mono text-[11px] text-ink/80",children:(0,s.FD)("div",{className:"py-1",children:[p.length>0&&(0,s.FD)("div",{className:"mb-2",children:[(0,s.FD)("div",{className:"flex items-center justify-between px-3 py-1 group hover:bg-ink/5 cursor-pointer transition-colors",onClick:()=>c(!l),children:[(0,s.FD)("div",{className:"flex items-center space-x-1 font-semibold text-ink text-xs",children:[(0,s.Y)("span",{className:"w-3 text-center",children:l?"▾":"▸"}),(0,s.Y)("span",{children:"Staged Changes"}),(0,s.Y)("span",{className:"text-ink/40 font-normal ml-1 border border-ink/20 rounded-full px-1.5 text-[9px] bg-paper",children:p.length})]}),(0,s.Y)("div",{className:"opacity-0 group-hover:opacity-100 flex items-center space-x-1 text-ink/40 flex-shrink-0",children:(0,s.Y)("button",{type:"button",onClick:e=>{e.stopPropagation(),o("unstage_all")},title:"Unstage All Changes",className:"w-5 h-5 flex items-center justify-center rounded hover:text-ink hover:bg-ink/10 cursor-pointer transition-colors",children:(0,s.Y)(B.A,{size:12})})})]}),l&&("tree"===a?(0,s.Y)(Z,{changes:p,isStaged:!0,repo:r,rootPath:i,onAction:o}):p.map(e=>(0,s.Y)(q,{change:e,isStaged:!0,repo:r,rootPath:i,onAction:o},e.file+"staged")))]}),m.length>0&&(0,s.FD)("div",{children:[(0,s.FD)("div",{className:"flex items-center justify-between px-3 py-1 group hover:bg-ink/5 cursor-pointer transition-colors",onClick:()=>h(!d),children:[(0,s.FD)("div",{className:"flex items-center space-x-1 font-semibold text-ink text-xs",children:[(0,s.Y)("span",{className:"w-3 text-center",children:d?"▾":"▸"}),(0,s.Y)("span",{children:"Changes"}),(0,s.Y)("span",{className:"text-ink/40 font-normal ml-1 border border-ink/20 rounded-full px-1.5 text-[9px] bg-paper",children:m.length})]}),(0,s.FD)("div",{className:"opacity-0 group-hover:opacity-100 flex items-center space-x-1 text-ink/40 flex-shrink-0",children:[(0,s.Y)("button",{type:"button",onClick:e=>{e.stopPropagation(),o("revert_all")},title:"Discard All Changes",className:"w-5 h-5 flex items-center justify-center rounded hover:text-error hover:bg-error/10 cursor-pointer transition-colors",children:(0,s.Y)(G.A,{size:12})}),(0,s.Y)("button",{type:"button",onClick:e=>{e.stopPropagation(),o("stage_all")},title:"Stage All Changes",className:"w-5 h-5 flex items-center justify-center rounded hover:text-ink hover:bg-ink/10 cursor-pointer transition-colors",children:(0,s.Y)(H.A,{size:12})})]})]}),d&&("tree"===a?(0,s.Y)(Z,{changes:m,isStaged:!1,repo:r,rootPath:i,onAction:o}):m.map(e=>(0,s.Y)(q,{change:e,isStaged:!1,repo:r,rootPath:i,onAction:o},e.file+"unstaged")))]})]})})}var ee=n("wu"),et=n("oZ"),en=n("Af"),es=n("oj");function ea(e){let{className:t="",enabled:n=!0,rootPath:i,refreshKey:o=0}=e,l=(0,r.L)(),c=(0,r.L)(),[d,h,p]=(0,I.bL)("git.activeRepo","."),m=l.data?.activeRepo||d||".",f=e=>{if(!n)return;let t=void 0!==e?e:d,s=new URLSearchParams;i&&s.set("root",i),t&&"."!==t&&s.set("repo",t),s.set("t",String(Date.now())),l.load(`/api/fs/git?${s.toString()}`)},[u,x]=(0,I.bL)("git.commitDraft",""),[b,g]=(0,I.bL)("git.viewMode","flat"),[k,v]=(0,a.J0)(!1),y=(0,a.li)(null),[w,N]=(0,a.J0)(!1),Y=(0,a.li)(null),[C,A]=(0,a.J0)(!1),F=(0,a.li)(null),[D,S]=(0,a.J0)(null),[z,H]=(0,a.J0)(!1),[R,L]=(0,a.J0)(""),W=(0,a.li)(null),[J,T]=(0,a.J0)(null),[E,K]=(0,a.J0)(!1),{toasts:B,pushToast:G,dismissToast:V}=(0,et.Y)(),[U,q]=(0,a.J0)(null),[Q,Z]=(0,a.J0)(!1),[ea,er]=(0,a.J0)(!1);(0,a.vJ)(()=>{K(!0)},[]),(0,a.vJ)(()=>{p&&f(d)},[o,i,n,p]),(0,en.n)(()=>f(d),n&&p),(0,en.w)(()=>f(d),n&&p),(0,a.vJ)(()=>{l.data?.activeRepo&&l.data.activeRepo!==d&&h(l.data.activeRepo)},[l.data?.activeRepo,d,h]),(0,a.vJ)(()=>{l.data?.reposPending&&Z(!0)},[l.data]),(0,a.vJ)(()=>{ea&&l.data&&!l.data.reposPending&&Array.isArray(l.data.repos)&&(q(l.data.repos),er(!1))},[l.data,ea]),(0,a.vJ)(()=>{if(!Q)return;let e=new URLSearchParams({reposOnly:"1"});i&&e.set("root",i);let t=setInterval(async()=>{let t=await fetch(`/api/fs/git?${e.toString()}`).then(e=>e.json()).catch(()=>null);t&&!t.reposPending&&Array.isArray(t.repos)&&(q(t.repos),Z(!1),er(!1),f(d))},1500);return()=>clearInterval(t)},[Q,i,d]),(0,a.vJ)(()=>{z&&W.current&&W.current.focus()},[z]),(0,a.vJ)(()=>{"idle"===c.state&&c.data&&("history"===c.data.type?T({title:"Commit History",data:c.data.data||[]}):"graph"===c.data.type?T({title:"Git Graph",data:c.data.data||[]}):c.data.success?f(m):G(c.data.error||"Git operation failed"))},[c.state,c.data]),(0,es.W)(y,()=>v(!1)),(0,es.W)(Y,()=>N(!1)),(0,es.W)(F,()=>A(!1));let ei=(e,t,n)=>{let s=new FormData;s.append("actionType",e),s.append("repo",m),i&&s.append("root",i),t&&s.append("file",t),n&&Object.entries(n).forEach(e=>{let[t,n]=e;return s.append(t,n)}),c.submit(s,{method:"POST",action:"/api/fs/git"}),"commit"===e&&x("")},eo=l.data?.branch||"main",el=l.data?.branches||["main"],ec=l.data?.remoteBranches||[],ed=U??(l.data?.repos||["."]),eh=l.data?.changes||[],ep="loading"===l.state||"idle"!==c.state,em=eh.filter(e=>{let t=e.status;return t&&" "!==t[0]&&"?"!==t[0]});return n?(0,s.FD)("div",{className:`flex flex-col h-full bg-paper relative ${t}`,children:[E&&(0,s.FD)(s.FK,{children:[(0,s.Y)(j,{modal:D,onClose:()=>S(null),onConfirm:()=>{D&&(ei(D.type,D.file),S(null))}}),(0,s.Y)(P,{isOpen:z,branchName:R,inputRef:W,onChange:L,onClose:()=>{H(!1),L("")},onCreate:()=>{R.trim()&&(ei("create_branch",void 0,{branch:R.trim()}),H(!1),L(""))}}),(0,s.Y)(M,{output:J,onClose:()=>T(null),onRefresh:()=>{J&&ei(J.title.toLowerCase().includes("graph")?"graph":"history")},onExecuteAction:(e,t,n)=>ei(e,t,n),rootPath:i,activeRepo:m})]}),(0,s.Y)(ee.y,{toasts:B,onDismiss:V}),(0,s.Y)(_,{repoRef:Y,showRepoMenu:w,setShowRepoMenu:N,activeRepo:m,repos:ed,isLoading:ep,rootPath:i,reposScanning:Q||ea,onSelectRepo:e=>{h(e),f(e)},onRefresh:()=>f(m),onRefreshRepos:()=>{if(!n||Q||ea)return;q(ed),er(!0);let e=new URLSearchParams({rescan:"1"});i&&e.set("root",i),"."!==m&&e.set("repo",m),e.set("t",String(Date.now())),l.load(`/api/fs/git?${e.toString()}`)}}),(0,s.Y)(O,{branchRef:F,showBranchMenu:C,setShowBranchMenu:A,branch:eo,branches:el,remoteBranches:ec,onCheckout:e=>ei("checkout",void 0,{branch:e}),onOpenBranchPrompt:()=>H(!0),optionsRef:y,showOptions:k,setShowOptions:v,onHistory:()=>ei("history"),onGraph:()=>ei("graph"),viewMode:b,setViewMode:g,isBusy:ep,syncCount:l.data?.syncCount,onSync:()=>ei("sync")}),(0,s.Y)($,{message:u,hasStagedChanges:em.length>0,isBusy:ep,onChangeMessage:x,onCommit:()=>ei("commit",void 0,{message:u})}),(0,s.Y)(X,{changes:eh,isLoading:ep,viewMode:b,repo:m,rootPath:i,onAction:(e,t,n)=>{"revert"===e?S({type:e,file:t,message:`Are you sure you want to discard changes in ${t}?`}):"revert_all"===e?S({type:e,message:"Are you sure you want to discard ALL unstaged changes? This cannot be undone."}):ei(e,t,n)}})]}):(0,s.Y)("div",{className:`flex flex-col h-full bg-paper items-center justify-center text-ink/40 ${t}`,children:(0,s.Y)("span",{className:"text-xs font-mono",children:"No session selected"})})}},rm(e,t,n){let s=(0,n("y").A)({name:"folder-git-2",size:24,node:[["path",{d:"M18 19a5 5 0 0 1-5-5v8",key:"sz5oeg"}],["path",{d:"M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v5",key:"1w6njk"}],["circle",{cx:"13",cy:"12",r:"2",key:"1j92g6"}],["circle",{cx:"20",cy:"19",r:"2",key:"1obnsp"}]]});n.d(t,{},{A:s})},Wb0(e,t,n){let s=(0,n("y").A)({name:"rotate-cw",size:24,node:[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]]});n.d(t,{},{A:s})}}]);
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license lucide-preact v1.47.0 - ISC
3
+ *
4
+ * This source code is licensed under the ISC license.
5
+ * See the LICENSE file in the root directory of this source tree.
6
+ */
@@ -0,0 +1,23 @@
1
+ "use strict";(self.rspackChunkompchamber=self.rspackChunkompchamber||[]).push([["me"],{sV(t,e,n){n.d(e,{diagram:()=>tp});var s,i=n("MM"),r=n("NH"),l=n("Yr");n("M4");var a=n("Gt"),o=n("El"),h=n("HAv"),c=n("bg"),u=(t,e)=>(0,c.A)(t,"a",-e),f=n("CM"),d=n("xh");function y(t,e){let n=function(t){let e=[];for(let n=0;n<t.length;++n)for(let s=n+1;s<t.length;++s)for(let i of m(t[n],t[s]))i.parentIndex=[n,s],e.push(i);return e}(t),s=n.filter(e=>{var n;return n=e,t.every(t=>x(n,t)<t.radius+1e-10)}),i=0,r=0,l=[];if(s.length>1){let e=b(s);for(let t=0;t<s.length;++t){let n=s[t];n.angle=Math.atan2(n.x-e.x,n.y-e.y)}s.sort((t,e)=>e.angle-t.angle);let n=s[s.length-1];for(let e=0;e<s.length;++e){let a=s[e];r+=(n.x+a.x)*(a.y-n.y);let o={x:(a.x+n.x)/2,y:(a.y+n.y)/2},h=null;for(let e=0;e<a.parentIndex.length;++e)if(n.parentIndex.includes(a.parentIndex[e])){let s=t[a.parentIndex[e]],i=Math.atan2(a.x-s.x,a.y-s.y),r=Math.atan2(n.x-s.x,n.y-s.y),l=r-i;l<0&&(l+=2*Math.PI);let c=r-l/2,u=x(o,{x:s.x+s.radius*Math.sin(c),y:s.y+s.radius*Math.cos(c)});u>2*s.radius&&(u=2*s.radius),(null==h||h.width>u)&&(h={circle:s,width:u,p1:a,p2:n,large:u>s.radius,sweep:!0})}null!=h&&(l.push(h),i+=g(h.circle.radius,h.width),n=a)}}else{let e=t[0];for(let n=1;n<t.length;++n)t[n].radius<e.radius&&(e=t[n]);let n=!1;for(let s=0;s<t.length;++s)if(x(t[s],e)>Math.abs(e.radius-t[s].radius)){n=!0;break}n?i=r=0:(i=e.radius*e.radius*Math.PI,l.push({circle:e,p1:{x:e.x,y:e.y+e.radius},p2:{x:e.x-1e-10,y:e.y+e.radius},width:2*e.radius,large:!0,sweep:!0}))}return r/=2,e&&(e.area=i+r,e.arcArea=i,e.polygonArea=r,e.arcs=l,e.innerPoints=s,e.intersectionPoints=n),i+r}function g(t,e){return t*t*Math.acos(1-e/t)-(t-e)*Math.sqrt(e*(2*t-e))}function x(t,e){return Math.sqrt((t.x-e.x)*(t.x-e.x)+(t.y-e.y)*(t.y-e.y))}function p(t,e,n){return n>=t+e?0:n<=Math.abs(t-e)?Math.PI*Math.min(t,e)*Math.min(t,e):g(t,t-(n*n-e*e+t*t)/(2*n))+g(e,e-(n*n-t*t+e*e)/(2*n))}function m(t,e){let n=x(t,e),s=t.radius,i=e.radius;if(n>=s+i||n<=Math.abs(s-i))return[];let r=(s*s-i*i+n*n)/(2*n),l=Math.sqrt(s*s-r*r),a=t.x+r*(e.x-t.x)/n,o=t.y+r*(e.y-t.y)/n,h=-(e.y-t.y)*(l/n),c=-(e.x-t.x)*(l/n);return[{x:a+h,y:o-c},{x:a-h,y:o+c}]}function b(t){let e={x:0,y:0};for(let n of t)e.x+=n.x,e.y+=n.y;return e.x/=t.length,e.y/=t.length,e}function v(t){let e=Array(t);for(let n=0;n<t;++n)e[n]=0;return e}function M(t,e){return v(t).map(()=>v(e))}function I(t,e){let n=0;for(let s=0;s<t.length;++s)n+=t[s]*e[s];return n}function k(t){return Math.sqrt(I(t,t))}function _(t,e,n){for(let s=0;s<e.length;++s)t[s]=e[s]*n}function w(t,e,n,s,i){for(let r=0;r<t.length;++r)t[r]=e*n[r]+s*i[r]}function S(t,e,n){let s,i=(n=n||{}).maxIterations||200*e.length,r=n.nonZeroDelta||1.05,l=n.zeroDelta||.001,a=n.minErrorDelta||1e-6,o=n.minErrorDelta||1e-5,h=void 0!==n.rho?n.rho:1,c=void 0!==n.chi?n.chi:2,u=void 0!==n.psi?n.psi:-.5,f=void 0!==n.sigma?n.sigma:.5,d=e.length,y=Array(d+1);y[0]=e,y[0].fx=t(e),y[0].id=0;for(let n=0;n<d;++n){let s=e.slice();s[n]=s[n]?s[n]*r:l,y[n+1]=s,y[n+1].fx=t(s),y[n+1].id=n+1}function g(t){for(let e=0;e<t.length;e++)y[d][e]=t[e];y[d].fx=t.fx}let x=(t,e)=>t.fx-e.fx,p=e.slice(),m=e.slice(),b=e.slice(),v=e.slice();for(let e=0;e<i;++e){if(y.sort(x),n.history){let t=y.map(t=>{let e=t.slice();return e.fx=t.fx,e.id=t.id,e});t.sort((t,e)=>t.id-e.id),n.history.push({x:y[0].slice(),fx:y[0].fx,simplex:t})}s=0;for(let t=0;t<d;++t)s=Math.max(s,Math.abs(y[0][t]-y[1][t]));if(Math.abs(y[0].fx-y[d].fx)<a&&s<o)break;for(let t=0;t<d;++t){p[t]=0;for(let e=0;e<d;++e)p[t]+=y[e][t];p[t]/=d}let e=y[d];if(w(m,1+h,p,-h,e),m.fx=t(m),m.fx<y[0].fx)w(v,1+c,p,-c,e),v.fx=t(v),g(v.fx<m.fx?v:m);else if(m.fx>=y[d-1].fx){let n=!1;if(m.fx>e.fx?(w(b,1+u,p,-u,e),b.fx=t(b),b.fx<e.fx?g(b):n=!0):(w(b,1-u*h,p,u*h,e),b.fx=t(b),b.fx<m.fx?g(b):n=!0),n){if(f>=1)break;for(let e=1;e<y.length;++e)w(y[e],1-f,y[0],f,y[e]),y[e].fx=t(y[e])}}else g(m)}return y.sort(x),{fx:y[0].fx,x:y[0]}}function E(t,e={}){e.maxIterations=e.maxIterations||500;let n=e.initialLayout||T,s=e.lossFunction||A,i=function(t,e={}){let n=e.distinct,s=t.map(t=>Object.assign({},t));function i(t){return t.join(";")}if(n){let t=new Map;for(let e of s)for(let n=0;n<e.sets.length;n++){let s=String(e.sets[n]);t.set(s,e.size+(t.get(s)||0));for(let i=n+1;i<e.sets.length;i++){let n=String(e.sets[i]),r=`${s};${n}`,l=`${n};${s}`;t.set(r,e.size+(t.get(r)||0)),t.set(l,e.size+(t.get(l)||0))}}for(let e of s)e.sets.length<3&&(e.size=t.get(i(e.sets)))}let r=[],l=new Set;for(let t of s)if(1===t.sets.length)r.push(t.sets[0]);else if(2===t.sets.length){let e=t.sets[0],n=t.sets[1];l.add(i(t.sets)),l.add(i([n,e]))}r.sort((t,e)=>t===e?0:t<e?-1:1);for(let t=0;t<r.length;++t){let e=r[t];for(let n=t+1;n<r.length;++n){let t=r[n];l.has(i([e,t]))||s.push({sets:[e,t],size:0})}}return s}(t,e),r=n(i,e),l=Object.keys(r),a=[];for(let t of l)a.push(r[t].x),a.push(r[t].y);let o=S(t=>{let e={};for(let n=0;n<l.length;++n){let s=l[n];e[s]={x:t[2*n],y:t[2*n+1],radius:r[s].radius}}return s(e,i)},a,e).x;for(let t=0;t<l.length;++t){let e=l[t];r[e].x=o[2*t],r[e].y=o[2*t+1]}return r}function z(t,e,n){return Math.min(t,e)*Math.min(t,e)*Math.PI<=n+1e-10?Math.abs(t-e):function(t,e,n,s){let i=(s=s||{}).maxIterations||100,r=s.tolerance||1e-10,l=t(e),a=t(n),o=n-e;if(l*a>0)throw"Initial bisect points must have opposite signs";if(0===l)return e;if(0===a)return n;for(let n=0;n<i;++n){let n=e+(o/=2),s=t(n);if(s*l>=0&&(e=n),Math.abs(o)<r||0===s)return n}return e+o}(s=>p(t,e,s)-n,0,t+e)}function T(t,e={}){let n=function(t,e){let n=e&&e.lossFunction?e.lossFunction:A,s={},i={};for(let e of t)if(1===e.sets.length){let t=e.sets[0];s[t]={x:1e10,y:1e10,rowid:s.length,size:e.size,radius:Math.sqrt(e.size/Math.PI)},i[t]=[]}for(let e of t=t.filter(t=>2===t.sets.length)){let t=null!=e.weight?e.weight:1,n=e.sets[0],r=e.sets[1];e.size+1e-10>=Math.min(s[n].size,s[r].size)&&(t=0),i[n].push({set:r,size:e.size,weight:t}),i[r].push({set:n,size:e.size,weight:t})}let r=[];function l(t,e){return e.size-t.size}Object.keys(i).forEach(t=>{let e=0;for(let n=0;n<i[t].length;++n)e+=i[t][n].size*i[t][n].weight;r.push({set:t,size:e})}),r.sort(l);let a={};function o(t){return t.set in a}function h(t,e){s[e].x=t.x,s[e].y=t.y,a[e]=!0}h({x:0,y:0},r[0].set);for(let e=1;e<r.length;++e){let a=r[e].set,u=i[a].filter(o),f=s[a];if(u.sort(l),0===u.length)throw"ERROR: missing pairwise overlap information";let d=[];for(var c=0;c<u.length;++c){let t=s[u[c].set],e=z(f.radius,t.radius,u[c].size);d.push({x:t.x+e,y:t.y}),d.push({x:t.x-e,y:t.y}),d.push({y:t.y+e,x:t.x}),d.push({y:t.y-e,x:t.x});for(let n=c+1;n<u.length;++n){let i=s[u[n].set],r=z(f.radius,i.radius,u[n].size),l=m({x:t.x,y:t.y,radius:e},{x:i.x,y:i.y,radius:r});d.push(...l)}}let y=1e50,g=d[0];for(let e of d){s[a].x=e.x,s[a].y=e.y;let i=n(s,t);i<y&&(y=i,g=e)}h(g,a)}return s}(t,e),s=e.lossFunction||A;if(t.length>=8){let i=function(t,e={}){let n,s,i=e.restarts||10,r=[],l={};for(let e of t)1===e.sets.length&&(l[e.sets[0]]=r.length,r.push(e));let{distances:a,constraints:o}=(n=M(r.length,r.length),s=M(r.length,r.length),t.filter(t=>2===t.sets.length).forEach(t=>{let e=l[t.sets[0]],i=l[t.sets[1]],a=z(Math.sqrt(r[e].size/Math.PI),Math.sqrt(r[i].size/Math.PI),t.size);n[e][i]=n[i][e]=a;let o=0;t.size+1e-10>=Math.min(r[e].size,r[i].size)?o=1:t.size<=1e-10&&(o=-1),s[e][i]=s[i][e]=o}),{distances:n,constraints:s}),h=k(a.map(k))/a.length;a=a.map(t=>t.map(t=>t/h));let c=(t,e)=>(function(t,e,n,s){for(let t=0;t<e.length;++t)e[t]=0;let i=0;for(let r=0;r<n.length;++r){let l=t[2*r],a=t[2*r+1];for(let o=r+1;o<n.length;++o){let h=t[2*o],c=t[2*o+1],u=n[r][o],f=s[r][o],d=(h-l)*(h-l)+(c-a)*(c-a),y=Math.sqrt(d),g=d-u*u;f>0&&y<=u||f<0&&y>=u||(i+=2*g*g,e[2*r]+=4*g*(l-h),e[2*r+1]+=4*g*(a-c),e[2*o]+=4*g*(h-l),e[2*o+1]+=4*g*(c-a))}}return i})(t,e,a,o),u=null;for(let t=0;t<i;++t){let t=function(t,e,n){let s,i,r,l={x:e.slice(),fx:0,fxprime:e.slice()},a={x:e.slice(),fx:0,fxprime:e.slice()},o=e.slice(),h=1;r=(n=n||{}).maxIterations||20*e.length,l.fx=t(l.x,l.fxprime),_(s=l.fxprime.slice(),l.fxprime,-1);for(let e=0;e<r;++e){if(h=function(t,e,n,s,i,r,l){let a=n.fx,o=I(n.fxprime,e),h=a,c=a,u=o,f=0;function d(c,f,d){for(let y=0;y<16;++y)if(i=(c+f)/2,w(s.x,1,n.x,i,e),h=s.fx=t(s.x,s.fxprime),u=I(s.fxprime,e),h>a+r*i*o||h>=d)f=i;else{if(Math.abs(u)<=-l*o)return i;u*(f-c)>=0&&(f=c),c=i,d=h}return 0}i=i||1,r=r||1e-6,l=l||.1;for(let y=0;y<10;++y){if(w(s.x,1,n.x,i,e),h=s.fx=t(s.x,s.fxprime),u=I(s.fxprime,e),h>a+r*i*o||y&&h>=c)return d(f,i,c);if(Math.abs(u)<=-l*o)break;if(u>=0)return d(i,f,h);c=h,f=i,i*=2}return i}(t,s,l,a,h),n.history&&n.history.push({x:l.x.slice(),fx:l.fx,fxprime:l.fxprime.slice(),alpha:h}),h){w(o,1,a.fxprime,-1,l.fxprime);let t=I(l.fxprime,l.fxprime);w(s,Math.max(0,I(o,a.fxprime)/t),s,-1,a.fxprime),i=l,l=a,a=i}else _(s,l.fxprime,-1);if(1e-5>=k(l.fxprime))break}return n.history&&n.history.push({x:l.x.slice(),fx:l.fx,fxprime:l.fxprime.slice(),alpha:h}),l}(c,v(2*a.length).map(Math.random),e);(!u||t.fx<u.fx)&&(u=t)}let f=u.x,d={};for(let t=0;t<r.length;++t){let e=r[t];d[e.sets[0]]={x:f[2*t]*h,y:f[2*t+1]*h,radius:Math.sqrt(e.size/Math.PI)}}if(e.history)for(let t of e.history)_(t.x,h);return d}(t,e);s(i,t)+1e-8<s(n,t)&&(n=i)}return n}function A(t,e){let n=0;for(let s of e){let e;if(1!==s.sets.length){if(2===s.sets.length){let n=t[s.sets[0]],i=t[s.sets[1]];e=p(n.radius,i.radius,x(n,i))}else e=y(s.sets.map(e=>t[e]));n+=(null!=s.weight?s.weight:1)*(e-s.size)*(e-s.size)}}return n}function K(t,e){let n=0;for(let s of e){let e;if(1===s.sets.length)continue;if(2===s.sets.length){let n=t[s.sets[0]],i=t[s.sets[1]];e=p(n.radius,i.radius,x(n,i))}else e=y(s.sets.map(e=>t[e]));let i=null!=s.weight?s.weight:1,r=Math.log((e+1)/(s.size+1));n+=i*r*r}return n}function R(t){let e=e=>({max:t.reduce((t,n)=>Math.max(t,n[e]+n.radius),-1/0),min:t.reduce((t,n)=>Math.min(t,n[e]-n.radius),1/0)});return{xRange:e("x"),yRange:e("y")}}function $(t,e,n){null==e&&(e=Math.PI/2);let s=C(t).map(t=>Object.assign({},t)),i=function(t){function e(t){return t.parent!==t&&(t.parent=e(t.parent)),t.parent}t.forEach(t=>{t.parent=t});for(let i=0;i<t.length;++i)for(let r=i+1;r<t.length;++r){var n,s;let l=t[i].radius+t[r].radius;x(t[i],t[r])+1e-10<l&&(n=t[r],s=t[i],e(n).parent=e(s))}let i=new Map;for(let n=0;n<t.length;++n){let s=e(t[n]).parent.setid;i.has(s)||i.set(s,[]),i.get(s).push(t[n])}return t.forEach(t=>{delete t.parent}),Array.from(i.values())}(s);for(let t of i){!function(t,e,n){if(null==n?t.sort((t,e)=>e.radius-t.radius):t.sort(n),t.length>0){let e=t[0].x,n=t[0].y;for(let s of t)s.x-=e,s.y-=n}if(2===t.length&&x(t[0],t[1])<Math.abs(t[1].radius-t[0].radius)&&(t[1].x=t[0].x+t[0].radius-t[1].radius-1e-10,t[1].y=t[0].y),t.length>1){let n=Math.atan2(t[1].x,t[1].y)-e,s=Math.cos(n),i=Math.sin(n);for(let e of t){let t=e.x,n=e.y;e.x=s*t-i*n,e.y=i*t+s*n}}if(t.length>2){let n=Math.atan2(t[2].x,t[2].y)-e;for(;n<0;)n+=2*Math.PI;for(;n>2*Math.PI;)n-=2*Math.PI;if(n>Math.PI){let e=t[1].y/(1e-10+t[1].x);for(let n of t){var s=(n.x+e*n.y)/(1+e*e);n.x=2*s-n.x,n.y=2*s*e-n.y}}}}(t,e,n);let s=R(t);t.size=(s.xRange.max-s.xRange.min)*(s.yRange.max-s.yRange.min),t.bounds=s}i.sort((t,e)=>e.size-t.size);let r=(s=i[0]).bounds,l=(r.xRange.max-r.xRange.min)/50;function a(t,e,n){let i,a;if(!t)return;let o=t.bounds;if(e)i=r.xRange.max-o.xRange.min+l;else{i=r.xRange.max-o.xRange.max;let t=(o.xRange.max-o.xRange.min)/2-(r.xRange.max-r.xRange.min)/2;t<0&&(i+=t)}if(n)a=r.yRange.max-o.yRange.min+l;else{a=r.yRange.max-o.yRange.max;let t=(o.yRange.max-o.yRange.min)/2-(r.yRange.max-r.yRange.min)/2;t<0&&(a+=t)}for(let e of t)e.x+=i,e.y+=a,s.push(e)}let o=1;for(;o<i.length;)a(i[o],!0,!1),a(i[o+1],!1,!0),a(i[o+2],!0,!0),o+=3,r=R(s);return O(s)}function N(t,e,n,s,i){let r,l,a=C(t);e-=2*s,n-=2*s;let{xRange:o,yRange:h}=R(a);if(o.max===o.min||h.max===h.min)return console.log("not scaling solution: zero size detected"),t;if(i){let t=2*Math.sqrt(i/Math.PI);r=e/t,l=n/t}else r=e/(o.max-o.min),l=n/(h.max-h.min);let c=Math.min(l,r),u=(e-(o.max-o.min)*c)/2,f=(n-(h.max-h.min)*c)/2;return O(a.map(t=>({radius:c*t.radius,x:s+u+(t.x-o.min)*c,y:s+f+(t.y-h.min)*c,setid:t.setid})))}function O(t){let e={};for(let n of t)e[n.setid]=n;return e}function C(t){return Object.keys(t).map(e=>Object.assign(t[e],{setid:e}))}function D(t,e){return function(n){let s=this,i=t[n.sets[0]].radius||50,r=e(n)||"",l=r.split(/\s+/).reverse(),a=(r.length+l.length)/3,o=l.pop(),h=[o],c=0;s.textContent=null;let u=[];function f(t){let e=s.ownerDocument.createElementNS(s.namespaceURI,"tspan");return e.textContent=t,u.push(e),s.append(e),e}let d=f(o);for(;o=l.pop();){h.push(o);let t=h.join(" ");d.textContent=t,t.length>a&&d.getComputedTextLength()>i&&(h.pop(),d.textContent=h.join(" "),h=[o],d=f(o),c++)}let y=.35-1.1*c/2,g=s.getAttribute("x"),x=s.getAttribute("y");u.forEach((t,e)=>{t.setAttribute("x",g),t.setAttribute("y",x),t.setAttribute("dy",`${y+1.1*e}em`)})}}function F(t,e,n){let s=e[0].radius-x(e[0],t);for(let n=1;n<e.length;++n){let i=e[n].radius-x(e[n],t);i<=s&&(s=i)}for(let e=0;e<n.length;++e){let i=x(n[e],t)-n[e].radius;i<=s&&(s=i)}return s}function j(t,e,n){let s={},i=function(t){let e={},n=Object.keys(t);for(let t of n)e[t]=[];for(let s=0;s<n.length;s++){let i=n[s],r=t[i];for(let l=s+1;l<n.length;++l){let s=n[l],a=t[s],o=x(r,a);o+a.radius<=r.radius+1e-10?e[s].push(i):o+r.radius<=a.radius+1e-10&&e[i].push(s)}}return e}(t);for(let r=0;r<e.length;++r){let l=e[r].sets,a={},o={};for(let t=0;t<l.length;++t){a[l[t]]=!0;let e=i[l[t]];for(let t=0;t<e.length;++t)o[e[t]]=!0}let h=[],c=[];for(let e in t)e in a?h.push(t[e]):e in o||c.push(t[e]);let u=function t(e,n,s){let i=[];for(let t of e)i.push({x:t.x,y:t.y}),i.push({x:t.x+t.radius/2,y:t.y}),i.push({x:t.x-t.radius/2,y:t.y}),i.push({x:t.x,y:t.y+t.radius/2}),i.push({x:t.x,y:t.y-t.radius/2});let r=i[0],l=F(i[0],e,n);for(let t=1;t<i.length;++t){let s=F(i[t],e,n);s>=l&&(r=i[t],l=s)}let a=S(t=>-1*F({x:t[0],y:t[1]},e,n),[r.x,r.y],{maxIterations:500,minErrorDelta:1e-10}).x,o={x:s?0:a[0],y:a[1]},h=!0;for(let t of e)if(x(o,t)>t.radius){h=!1;break}for(let t of n)if(x(o,t)<t.radius){h=!1;break}if(h)return o;if(1==e.length)return{x:e[0].x,y:e[0].y};let c={};return(y(e,c),0===c.arcs.length)?{x:0,y:-1e3,disjoint:!0}:1==c.arcs.length?{x:c.arcs[0].circle.x,y:c.arcs[0].circle.y}:n.length?t(e,[]):b(c.arcs.map(t=>t.p1))}(h,c,n);s[l]=u,u.disjoint&&e[r].size>0&&console.log("WARNING: area "+l+" not represented on screen")}return s}function L(t){if(0===t.length)return[];let e={};return y(t,e),e.arcs}function P(t,e){if(0===t.length)return"M 0 0";let n=Math.pow(10,e||0),s=null!=e?t=>Math.round(t*n)/n:t=>t;if(1==t.length){var i,r,l;let e,n=t[0].circle;return i=s(n.x),r=s(n.y),l=s(n.radius),(e=[]).push("\nM",i,r),e.push("\nm",-l,0),e.push("\na",l,l,0,1,0,2*l,0),e.push("\na",l,l,0,1,0,-(2*l),0),e.join(" ")}let a=["\nM",s(t[0].p2.x),s(t[0].p2.y)];for(let e of t){let t=s(e.circle.radius);a.push("\nA",t,t,0,+!!e.large,+!!e.sweep,s(e.p1.x),s(e.p1.y))}return a.join(" ")}var U=n("nh"),q=function(){var t=(0,a.K)(function(t,e,n,s){for(n=n||{},s=t.length;s--;n[t[s]]=e);return n},"o"),e=[5,8],n=[7,8,11,12,17,19,22,24],s=[1,17],i=[1,18],r=[7,8,11,12,14,15,16,17,19,20,21,22,24,27],l=[1,31],o=[1,39],h=[7,8,11,12,17,19,22,24,27],c=[1,57],u=[1,56],f=[1,58],d=[1,59],y=[1,60],g=[7,8,11,12,16,17,19,20,22,24,27,31,32,33],x={trace:(0,a.K)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,optNewlines:4,VENN:5,document:6,EOF:7,NEWLINE:8,line:9,statement:10,TITLE:11,SET:12,identifier:13,BRACKET_LABEL:14,COLON:15,NUMERIC:16,UNION:17,identifierList:18,TEXT:19,IDENTIFIER:20,STRING:21,INDENT_TEXT:22,indentedTextTail:23,STYLE:24,stylesOpt:25,styleField:26,COMMA:27,styleValue:28,valueTokens:29,valueToken:30,HEXCOLOR:31,RGBCOLOR:32,RGBACOLOR:33,$accept:0,$end:1},terminals_:{2:"error",5:"VENN",7:"EOF",8:"NEWLINE",11:"TITLE",12:"SET",14:"BRACKET_LABEL",15:"COLON",16:"NUMERIC",17:"UNION",19:"TEXT",20:"IDENTIFIER",21:"STRING",22:"INDENT_TEXT",24:"STYLE",27:"COMMA",31:"HEXCOLOR",32:"RGBCOLOR",33:"RGBACOLOR"},productions_:[0,[3,4],[4,0],[4,2],[6,0],[6,2],[9,1],[9,1],[10,1],[10,2],[10,3],[10,4],[10,5],[10,2],[10,3],[10,4],[10,5],[10,3],[10,3],[10,3],[10,4],[10,4],[10,2],[10,3],[23,1],[23,1],[23,1],[23,2],[23,2],[25,1],[25,3],[26,3],[28,1],[28,1],[29,1],[29,2],[30,1],[30,1],[30,1],[30,1],[30,1],[18,1],[18,3],[13,1],[13,1]],performAction:(0,a.K)(function(t,e,n,s,i,r,l){var a=r.length-1;switch(i){case 1:return r[a-1];case 2:case 3:case 4:case 6:this.$=[];break;case 5:case 35:r[a-1].push(r[a]),this.$=r[a-1];break;case 7:case 22:case 32:case 36:case 37:case 38:case 39:case 40:case 43:case 44:this.$=r[a];break;case 8:s.setDiagramTitle(r[a].substr(6)),this.$=r[a].substr(6);break;case 9:s.addSubsetData([r[a]],void 0,void 0),s.setIndentMode&&s.setIndentMode(!0);break;case 10:s.addSubsetData([r[a-1]],r[a],void 0),s.setIndentMode&&s.setIndentMode(!0);break;case 11:s.addSubsetData([r[a-2]],void 0,parseFloat(r[a])),s.setIndentMode&&s.setIndentMode(!0);break;case 12:s.addSubsetData([r[a-3]],r[a-2],parseFloat(r[a])),s.setIndentMode&&s.setIndentMode(!0);break;case 13:if(r[a].length<2)throw Error("union requires multiple identifiers");s.validateUnionIdentifiers&&s.validateUnionIdentifiers(r[a]),s.addSubsetData(r[a],void 0,void 0),s.setIndentMode&&s.setIndentMode(!0);break;case 14:if(r[a-1].length<2)throw Error("union requires multiple identifiers");s.validateUnionIdentifiers&&s.validateUnionIdentifiers(r[a-1]),s.addSubsetData(r[a-1],r[a],void 0),s.setIndentMode&&s.setIndentMode(!0);break;case 15:if(r[a-2].length<2)throw Error("union requires multiple identifiers");s.validateUnionIdentifiers&&s.validateUnionIdentifiers(r[a-2]),s.addSubsetData(r[a-2],void 0,parseFloat(r[a])),s.setIndentMode&&s.setIndentMode(!0);break;case 16:if(r[a-3].length<2)throw Error("union requires multiple identifiers");s.validateUnionIdentifiers&&s.validateUnionIdentifiers(r[a-3]),s.addSubsetData(r[a-3],r[a-2],parseFloat(r[a])),s.setIndentMode&&s.setIndentMode(!0);break;case 17:case 18:case 19:s.addTextData(r[a-1],r[a],void 0);break;case 20:case 21:s.addTextData(r[a-2],r[a-1],r[a]);break;case 23:s.addStyleData(r[a-1],r[a]);break;case 24:case 25:case 26:var o=s.getCurrentSets();if(!o)throw Error("text requires set");s.addTextData(o,r[a],void 0);break;case 27:case 28:var o=s.getCurrentSets();if(!o)throw Error("text requires set");s.addTextData(o,r[a-1],r[a]);break;case 29:case 41:case 34:this.$=[r[a]];break;case 30:case 42:this.$=[...r[a-2],r[a]];break;case 31:this.$=[r[a-2],r[a]];break;case 33:this.$=r[a].join(" ")}},"anonymous"),table:[t(e,[2,2],{3:1,4:2}),{1:[3]},{5:[1,3],8:[1,4]},t(n,[2,4],{6:5}),t(e,[2,3]),{7:[1,6],8:[1,8],9:7,10:9,11:[1,10],12:[1,11],17:[1,12],19:[1,13],22:[1,14],24:[1,15]},{1:[2,1]},t(n,[2,5]),t(n,[2,6]),t(n,[2,7]),t(n,[2,8]),{13:16,20:s,21:i},{13:20,18:19,20:s,21:i},{13:20,18:21,20:s,21:i},{16:[1,25],20:[1,23],21:[1,24],23:22},{13:20,18:26,20:s,21:i},t(n,[2,9],{14:[1,27],15:[1,28]}),t(r,[2,43]),t(r,[2,44]),t(n,[2,13],{14:[1,29],15:[1,30],27:l}),t(r,[2,41]),{16:[1,34],20:[1,32],21:[1,33],27:l},t(n,[2,22]),t(n,[2,24],{14:[1,35]}),t(n,[2,25],{14:[1,36]}),t(n,[2,26]),{20:o,25:37,26:38,27:l},t(n,[2,10],{15:[1,40]}),{16:[1,41]},t(n,[2,14],{15:[1,42]}),{16:[1,43]},{13:44,20:s,21:i},t(n,[2,17],{14:[1,45]}),t(n,[2,18],{14:[1,46]}),t(n,[2,19]),t(n,[2,27]),t(n,[2,28]),t(n,[2,23],{27:[1,47]}),t(h,[2,29]),{15:[1,48]},{16:[1,49]},t(n,[2,11]),{16:[1,50]},t(n,[2,15]),t(r,[2,42]),t(n,[2,20]),t(n,[2,21]),{20:o,26:51},{16:c,20:u,21:[1,53],28:52,29:54,30:55,31:f,32:d,33:y},t(n,[2,12]),t(n,[2,16]),t(h,[2,30]),t(h,[2,31]),t(h,[2,32]),t(h,[2,33],{30:61,16:c,20:u,31:f,32:d,33:y}),t(g,[2,34]),t(g,[2,36]),t(g,[2,37]),t(g,[2,38]),t(g,[2,39]),t(g,[2,40]),t(g,[2,35])],defaultActions:{6:[2,1]},parseError:(0,a.K)(function(t,e){if(e.recoverable)this.trace(t);else{var n=Error(t);throw n.hash=e,n}},"parseError"),parse:(0,a.K)(function(t){var e=this,n=[0],s=[],i=[null],r=[],l=this.table,o="",h=0,c=0,u=0,f=r.slice.call(arguments,1),d=Object.create(this.lexer),y={};for(var g in this.yy)Object.prototype.hasOwnProperty.call(this.yy,g)&&(y[g]=this.yy[g]);d.setInput(t,y),y.lexer=d,y.parser=this,void 0===d.yylloc&&(d.yylloc={});var x=d.yylloc;r.push(x);var p=d.options&&d.options.ranges;function m(){var t;return"number"!=typeof(t=s.pop()||d.lex()||1)&&(t instanceof Array&&(t=(s=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof y.parseError?this.parseError=y.parseError:this.parseError=Object.getPrototypeOf(this).parseError,(0,a.K)(function(t){n.length=n.length-2*t,i.length=i.length-t,r.length=r.length-t},"popStack"),(0,a.K)(m,"lex");for(var b,v,M,I,k,_,w,S,E,z={};;){if(M=n[n.length-1],this.defaultActions[M]?I=this.defaultActions[M]:(null==b&&(b=m()),I=l[M]&&l[M][b]),void 0===I||!I.length||!I[0]){var T="";for(_ in E=[],l[M])this.terminals_[_]&&_>2&&E.push("'"+this.terminals_[_]+"'");T=d.showPosition?"Parse error on line "+(h+1)+":\n"+d.showPosition()+"\nExpecting "+E.join(", ")+", got '"+(this.terminals_[b]||b)+"'":"Parse error on line "+(h+1)+": Unexpected "+(1==b?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(T,{text:d.match,token:this.terminals_[b]||b,line:d.yylineno,loc:x,expected:E})}if(I[0]instanceof Array&&I.length>1)throw Error("Parse Error: multiple actions possible at state: "+M+", token: "+b);switch(I[0]){case 1:n.push(b),i.push(d.yytext),r.push(d.yylloc),n.push(I[1]),b=null,v?(b=v,v=null):(c=d.yyleng,o=d.yytext,h=d.yylineno,x=d.yylloc,u>0&&u--);break;case 2:if(w=this.productions_[I[1]][1],z.$=i[i.length-w],z._$={first_line:r[r.length-(w||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(w||1)].first_column,last_column:r[r.length-1].last_column},p&&(z._$.range=[r[r.length-(w||1)].range[0],r[r.length-1].range[1]]),void 0!==(k=this.performAction.apply(z,[o,c,h,y,I[1],i,r].concat(f))))return k;w&&(n=n.slice(0,-1*w*2),i=i.slice(0,-1*w),r=r.slice(0,-1*w)),n.push(this.productions_[I[1]][0]),i.push(z.$),r.push(z._$),S=l[n[n.length-2]][n[n.length-1]],n.push(S);break;case 3:return!0}}return!0},"parse")};function p(){this.yy={}}return x.lexer={EOF:1,parseError:(0,a.K)(function(t,e){if(this.yy.parser)this.yy.parser.parseError(t,e);else throw Error(t)},"parseError"),setInput:(0,a.K)(function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:(0,a.K)(function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},"input"),unput:(0,a.K)(function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var s=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===s.length?this.yylloc.first_column:0)+s[s.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},"unput"),more:(0,a.K)(function(){return this._more=!0,this},"more"),reject:(0,a.K)(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"reject"),less:(0,a.K)(function(t){this.unput(this.match.slice(t))},"less"),pastInput:(0,a.K)(function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:(0,a.K)(function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:(0,a.K)(function(){var t=this.pastInput(),e=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},"showPosition"),test_match:(0,a.K)(function(t,e){var n,s,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(s=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=s.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:s?s[s.length-1].length-s[s.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack)for(var r in i)this[r]=i[r];return!1},"test_match"),next:(0,a.K)(function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var t,e,n,s,i=this._currentRules(),r=0;r<i.length;r++)if((n=this._input.match(this.rules[i[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,s=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,i[r])))return t;if(!this._backtrack)return!1;e=!1;continue}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[s]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:(0,a.K)(function(){var t=this.next();return t||this.lex()},"lex"),begin:(0,a.K)(function(t){this.conditionStack.push(t)},"begin"),popState:(0,a.K)(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:(0,a.K)(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:(0,a.K)(function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},"topState"),pushState:(0,a.K)(function(t){this.begin(t)},"pushState"),stateStackSize:(0,a.K)(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:(0,a.K)(function(t,e,n,s){switch(n){case 0:case 1:case 2:case 4:case 7:case 8:break;case 3:if(t.getIndentMode&&t.getIndentMode())return t.consumeIndentText=!0,this.begin("INITIAL"),22;break;case 5:t.setIndentMode&&t.setIndentMode(!1),this.begin("INITIAL"),this.unput(e.yytext);break;case 6:return this.begin("bol"),8;case 9:return 7;case 10:return 11;case 11:return 5;case 12:return 12;case 13:return 17;case 14:if(!t.consumeIndentText)return 19;t.consumeIndentText=!1;break;case 15:return 24;case 16:return e.yytext=e.yytext.slice(2,-2),14;case 17:return e.yytext=e.yytext.slice(1,-1).trim(),14;case 18:return 16;case 19:return 31;case 20:return 33;case 21:return 32;case 22:return 20;case 23:return 21;case 24:return 27;case 25:return 15}},"anonymous"),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[ \t]+(?=[\n\r]))/i,/^(?:[ \t]+(?=text\b))/i,/^(?:[ \t]+)/i,/^(?:[^ \t\n\r])/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:[ \t]+)/i,/^(?:$)/i,/^(?:title\s[^#\n;]+)/i,/^(?:venn-beta\b)/i,/^(?:set\b)/i,/^(?:union\b)/i,/^(?:text\b)/i,/^(?:style\b)/i,/^(?:\["[^\"]*"\])/i,/^(?:\[[^\]\"]+\])/i,/^(?:[+-]?(\d+(\.\d+)?|\.\d+))/i,/^(?:#[0-9a-fA-F]{3,8})/i,/^(?:rgba\(\s*[0-9.]+\s*[,]\s*[0-9.]+\s*[,]\s*[0-9.]+\s*[,]\s*[0-9.]+\s*\))/i,/^(?:rgb\(\s*[0-9.]+\s*[,]\s*[0-9.]+\s*[,]\s*[0-9.]+\s*\))/i,/^(?:[A-Za-z_][A-Za-z0-9\-_]*)/i,/^(?:"[^\"]*")/i,/^(?:,)/i,/^(?::)/i],conditions:{bol:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25],inclusive:!0},INITIAL:{rules:[0,1,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25],inclusive:!0}}},(0,a.K)(p,"Parser"),p.prototype=x,x.Parser=p,new p}();q.parser=q;var B=[],G=[],W=[],V=new Set,X=!1,H=(0,a.K)((t,e,n)=>{let i=tn(t).sort(),r=n??10/Math.pow(t.length,2);s=i,1===i.length&&V.add(i[0]),B.push({sets:i,size:r,label:e?Z(e):void 0})},"addSubsetData"),Y=(0,a.K)(()=>B,"getSubsetData"),Z=(0,a.K)(t=>{let e=t.trim();return e.length>=2&&e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e},"normalizeText"),J=(0,a.K)(t=>t?Z(t):t,"normalizeStyleValue"),Q=(0,a.K)((t,e,n)=>{let s=Z(e);G.push({sets:tn(t).sort(),id:s,label:n?Z(n):void 0})},"addTextData"),tt=(0,a.K)((t,e)=>{let n=tn(t).sort(),s={};for(let[t,n]of e)s[t]=J(n)??n;W.push({targets:n,styles:s})},"addStyleData"),te=(0,a.K)(()=>W,"getStyleData"),tn=(0,a.K)(t=>t.map(t=>Z(t)),"normalizeIdentifierList"),ts=(0,a.K)(t=>{let e=tn(t).filter(t=>!V.has(t));if(e.length>0)throw Error(`unknown set identifier: ${e.join(", ")}`)},"validateUnionIdentifiers"),ti=(0,a.K)(()=>G,"getTextData"),tr=(0,a.K)(()=>s,"getCurrentSets"),tl=(0,a.K)(()=>X,"getIndentMode"),ta=(0,a.K)(t=>{X=t},"setIndentMode"),to=l.UI.venn;function th(){return(0,r.$t)(to,(0,l.zj)().venn)}(0,a.K)(th,"getConfig");var tc={getConfig:th,clear:(0,a.K)(()=>{(0,l.IU)(),B.length=0,G.length=0,W.length=0,V.clear(),s=void 0,X=!1},"customClear"),setAccTitle:l.SV,getAccTitle:l.iN,setDiagramTitle:l.ke,getDiagramTitle:l.ab,getAccDescription:l.m7,setAccDescription:l.EI,addSubsetData:H,getSubsetData:Y,addTextData:Q,addStyleData:tt,validateUnionIdentifiers:ts,getTextData:ti,getStyleData:te,getCurrentSets:tr,getIndentMode:tl,setIndentMode:ta},tu=(0,a.K)(t=>`
2
+ .venn-title {
3
+ font-size: 32px;
4
+ fill: ${t.vennTitleTextColor};
5
+ font-family: ${t.fontFamily};
6
+ }
7
+
8
+ .venn-circle text {
9
+ font-size: 48px;
10
+ font-family: ${t.fontFamily};
11
+ }
12
+
13
+ .venn-intersection text {
14
+ font-size: 48px;
15
+ fill: ${t.vennSetTextColor};
16
+ font-family: ${t.fontFamily};
17
+ }
18
+
19
+ .venn-text-node {
20
+ font-family: ${t.fontFamily};
21
+ color: ${t.vennSetTextColor};
22
+ }
23
+ `,"getStyles");function tf(t){let e=new Map;for(let n of t){let t=n.targets.join("|"),s=e.get(t);s?Object.assign(s,n.styles):e.set(t,{...n.styles})}return e}(0,a.K)(tf,"buildStyleByKey");var td=(0,a.K)((t,e,n,s)=>{let r=s.db,a=r.getConfig?.(),{themeVariables:c,look:y,handDrawnSeed:g}=(0,l.zj)(),x="handDrawn"===y,p=[c.venn1,c.venn2,c.venn3,c.venn4,c.venn5,c.venn6,c.venn7,c.venn8].filter(Boolean),m=r.getDiagramTitle?.(),b=r.getSubsetData(),v=r.getTextData(),M=tf(r.getStyleData()),I=tx(b),k=a?.width??800,_=a?.height??450,w=k/1600,S=m?48*w:0,z=c.primaryTextColor??c.textColor,T=(0,i.D)(e);T.attr("viewBox",`0 0 ${k} ${_}`),m&&T.append("text").text(m).attr("class","venn-title").attr("font-size",`${32*w}px`).attr("text-anchor","middle").attr("dominant-baseline","middle").attr("x","50%").attr("y",32*w).style("fill",c.vennTitleTextColor||c.titleColor);let R=(0,o.Ltv)(document.createElement("div")),O=(function(t={}){let e=!1,n=600,s=350,i=15,r=1e3,l=Math.PI/2,a=!0,o=null,h=!0,c=!0,u=null,f=null,d=!1,y=null,g=!!t&&!!t.symmetricalTextCentre&&t.symmetricalTextCentre,x={},p=t&&t.colourScheme?t.colourScheme:t&&t.colorScheme?t.colorScheme:["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"],m=0,b=function(t){if(t in x)return x[t];var e=x[t]=p[m];return(m+=1)>=p.length&&(m=0),e},v=E,M=A;function I(x){let p=x.datum(),m=new Set;p.forEach(t=>{0==t.size&&1==t.sets.length&&m.add(t.sets[0])});let I={},k={};if((p=p.filter(t=>!t.sets.some(t=>m.has(t)))).length>0){let t=v(p,{lossFunction:M,distinct:d});a&&(t=$(t,l,f)),k=j(I=N(t,n,s,i,o),p,g)}let _={};function w(t){return t.sets in _?_[t.sets]:1==t.sets.length?""+t.sets[0]:void 0}p.forEach(t=>{t.label&&(_[t.sets]=t.label)}),x.selectAll("svg").data([I]).enter().append("svg");let S=x.select("svg");e?S.attr("viewBox",`0 0 ${n} ${s}`):S.attr("width",n).attr("height",s);let E={},z=!1;function T(t){return e=>{var i,r;return i=t.sets.map(t=>{let i=E[t],r=I[t];return i||(i={x:n/2,y:s/2,radius:1}),r||(r={x:n/2,y:s/2,radius:1}),{x:i.x*(1-e)+r.x*e,y:i.y*(1-e)+r.y*e,radius:i.radius*(1-e)+r.radius*e}}),r=y,P(L(i),r)}}S.selectAll(".venn-area path").each(function(t){let e,n=this.getAttribute("d");1==t.sets.length&&n&&!d&&(z=!0,E[t.sets[0]]={x:Number.parseFloat((e=n.split(" "))[1]),y:Number.parseFloat(e[2]),radius:-Number.parseFloat(e[4])})});let A=S.selectAll(".venn-area").data(p,t=>t.sets),K=A.enter().append("g").attr("class",t=>`venn-area venn-${1==t.sets.length?"circle":"intersection"}${t.colour||t.color?" venn-coloured":""}`).attr("data-venn-sets",t=>t.sets.join("_")),R=K.append("path"),O=K.append("text").attr("class","label").text(t=>w(t)).attr("text-anchor","middle").attr("dy",".35em").attr("x",n/2).attr("y",s/2);function C(t){return"function"==typeof t.transition?t.transition("venn").duration(r):t}c&&(R.style("fill-opacity","0").filter(t=>1==t.sets.length).style("fill",t=>t.colour?t.colour:t.color?t.color:b(t.sets)).style("fill-opacity",".25"),O.style("fill",e=>e.colour||e.color?"#FFF":t.textFill?t.textFill:1==e.sets.length?b(e.sets):"#444"));let F=x;z&&"function"==typeof F.transition?(F=C(x)).selectAll("path").attrTween("d",T):F.selectAll("path").attr("d",t=>P(L(t.sets.map(t=>I[t])),void 0),y);let U=F.selectAll("text").filter(t=>t.sets in k).text(t=>w(t)).attr("x",t=>Math.floor(k[t.sets].x)).attr("y",t=>Math.floor(k[t.sets].y));h&&(z?"on"in U?U.on("end",D(I,w)):U.each("end",D(I,w)):U.each(D(I,w)));let q=C(A.exit()).remove();"function"==typeof A.transition&&q.selectAll("path").attrTween("d",T);let B=q.selectAll("text").attr("x",n/2).attr("y",s/2);return null!==u&&(O.style("font-size","0px"),U.style("font-size",u),B.style("font-size","0px")),{circles:I,textCentres:k,nodes:A,enter:K,update:F,exit:q}}return I.wrap=function(t){return arguments.length?(h=t,I):h},I.useViewBox=function(){return e=!0,I},I.width=function(t){return arguments.length?(n=t,I):n},I.height=function(t){return arguments.length?(s=t,I):s},I.padding=function(t){return arguments.length?(i=t,I):i},I.distinct=function(t){return arguments.length?(d=t,I):d},I.colours=function(t){return arguments.length?(b=t,I):b},I.colors=function(t){return arguments.length?(b=t,I):b},I.fontSize=function(t){return arguments.length?(u=t,I):u},I.round=function(t){return arguments.length?(y=t,I):y},I.duration=function(t){return arguments.length?(r=t,I):r},I.layoutFunction=function(t){return arguments.length?(v=t,I):v},I.normalize=function(t){return arguments.length?(a=t,I):a},I.scaleToFit=function(t){return arguments.length?(o=t,I):o},I.styled=function(t){return arguments.length?(c=t,I):c},I.orientation=function(t){return arguments.length?(l=t,I):l},I.orientationOrder=function(t){return arguments.length?(f=t,I):f},I.lossFunction=function(t){return arguments.length?(M="default"===t?A:"logRatio"===t?K:t,I):M},I})().width(k).height(_-S);R.datum(I).call(O);let C=x?U.A.svg(R.select("svg").node()):void 0,F=function(t,e={}){let{lossFunction:n,layoutFunction:s=E,normalize:i=!0,orientation:r=Math.PI/2,orientationOrder:l,width:a=600,height:o=350,padding:h=15,scaleToFit:c=!1,symmetricalTextCentre:u=!1,distinct:f,round:d=2}=e,y=s(t,{lossFunction:"default"!==n&&n?"logRatio"===n?K:n:A,distinct:f});i&&(y=$(y,r,l));let g=N(y,a,o,h,c),x=j(g,t,u),p=new Map(Object.keys(g).map(t=>[t,{set:t,x:g[t].x,y:g[t].y,radius:g[t].radius}])),m=t.map(t=>{let e=t.sets.map(t=>p.get(t)),n=L(e),s=P(n,d);return{circles:e,arcs:n,path:s,area:t,has:new Set(t.sets)}});return m.map(({circles:t,arcs:e,path:n,area:s})=>({data:s,text:x[s.sets],circles:t,arcs:e,path:n,distinctPath:n+function(t){let e="";for(let n of m)n.has.size>t.length&&t.every(t=>n.has.has(t))&&(e+=" "+n.path);return e}(s.sets)}))}(I,{width:k,height:_-S,padding:a?.padding??15}),q=new Map;for(let t of F){let e=ty([...t.data.sets].sort());q.set(e,t)}v.length>0&&tg(a,q,R,v,w,M);let B=(0,h.A)(c.background||"#f4f4f4");R.selectAll(".venn-circle").each(function(t,e){let n=(0,o.Ltv)(this),s=ty([...t.sets].sort()),i=M.get(s),r=p.length>0?p[e%p.length]:void 0,l=i?.fill||r||c.primaryColor;n.classed(`venn-set-${e%8}`,!0);let a=i?.["fill-opacity"]??.1,h=i?.stroke||l,y=i?.["stroke-width"]||`${5*w}`;if(x&&C){let t=q.get(s);if(t&&t.circles.length>0){let s=t.circles[0],i=C.circle(s.x,s.y,2*s.radius,{roughness:.7,seed:g,fill:u(l,.7),fillStyle:"hachure",fillWeight:2,hachureGap:8,hachureAngle:-41+60*e,stroke:h,strokeWidth:parseFloat(String(y))});n.select("path").remove(),n.node()?.insertBefore(i,n.select("text").node())}}else n.select("path").style("fill",l).style("fill-opacity",a).style("stroke",h).style("stroke-width",y).style("stroke-opacity",.95);let m=i?.color||(B?(0,f.A)(l,30):(0,d.A)(l,30));n.select("text").style("font-size",`${48*w}px`).style("fill",m)}),x&&C?R.selectAll(".venn-intersection").each(function(t){let e=(0,o.Ltv)(this),n=ty([...t.sets].sort()),s=M.get(n),i=s?.fill;if(i){let t=e.select("path"),n=t.attr("d");if(n){let e=C.path(n,{roughness:.7,seed:g,fill:u(i,.3),fillStyle:"cross-hatch",fillWeight:2,hachureGap:6,hachureAngle:60,stroke:"none"}),s=t.node();s?.parentNode?.insertBefore(e,s),t.remove()}}else e.select("path").style("fill-opacity",0);e.select("text").style("font-size",`${48*w}px`).style("fill",s?.color??c.vennSetTextColor??z)}):(R.selectAll(".venn-intersection text").style("font-size",`${48*w}px`).style("fill",t=>{let e=ty([...t.sets].sort());return M.get(e)?.color??c.vennSetTextColor??z}),R.selectAll(".venn-intersection path").style("fill-opacity",t=>{let e=ty([...t.sets].sort());return+!!M.get(e)?.fill}).style("fill",t=>{let e=ty([...t.sets].sort());return M.get(e)?.fill??"transparent"}));let G=T.append("g").attr("transform",`translate(0, ${S})`),W=R.select("svg").node();if(W&&"childNodes"in W)for(let t of[...W.childNodes])G.node()?.appendChild(t);(0,l.a$)(T,_,k,a?.useMaxWidth??!0)},"draw");function ty(t){return t.join("|")}function tg(t,e,n,s,i,r){let l=t?.useDebugLayout??!1,a=n.select("svg").append("g").attr("class","venn-text-nodes"),o=new Map;for(let t of s){let e=ty(t.sets),n=o.get(e);n?n.push(t):o.set(e,[t])}for(let[t,n]of o.entries()){let s=e.get(t);if(!s?.text)continue;let o=s.text.x,h=s.text.y,c=Math.min(...s.circles.map(t=>t.radius)),u=Math.min(...s.circles.map(t=>t.radius-Math.hypot(o-t.x,h-t.y))),f=Number.isFinite(u)?Math.max(0,u):0;0===f&&Number.isFinite(c)&&(f=.6*c);let d=a.append("g").attr("class","venn-text-area").attr("font-size",`${40*i}px`);l&&d.append("circle").attr("class","venn-text-debug-circle").attr("cx",o).attr("cy",h).attr("r",f).attr("fill","none").attr("stroke","purple").attr("stroke-width",1.5*i).attr("stroke-dasharray",`${6*i} ${4*i}`);let y=Math.max(80*i,2*f*.95),g=Math.max(60*i,2*f*.95),x=(s.data.label&&s.data.label.length>0?Math.min(32*i,.25*f):0)+(n.length<=2?30*i:0),p=o-y/2,m=h-g/2+x,b=Math.max(1,Math.ceil(Math.sqrt(n.length))),v=Math.max(1,Math.ceil(n.length/b)),M=y/b,I=g/v;for(let[t,e]of n.entries()){let n=t%b,s=Math.floor(t/b),a=p+M*(n+.5),o=m+I*(s+.5);l&&d.append("rect").attr("class","venn-text-debug-cell").attr("x",p+M*n).attr("y",m+I*s).attr("width",M).attr("height",I).attr("fill","none").attr("stroke","teal").attr("stroke-width",+i).attr("stroke-dasharray",`${4*i} ${3*i}`);let h=.9*M,c=.9*I,u=d.append("foreignObject").attr("class","venn-text-node-fo").attr("width",h).attr("height",c).attr("x",a-h/2).attr("y",o-c/2).attr("overflow","visible"),f=r.get(e.id)?.color,y=u.append("xhtml:span").attr("class","venn-text-node").style("display","flex").style("width","100%").style("height","100%").style("white-space","normal").style("align-items","center").style("justify-content","center").style("text-align","center").style("overflow-wrap","normal").style("word-break","normal").text(e.label??e.id);f&&y.style("color",f)}}}function tx(t){let e=new Set(t.map(t=>[...t.sets].sort().join("|"))),n=new Map(t.filter(t=>1===t.sets.length&&void 0!==t.size).map(t=>[t.sets[0],t.size])),s=[];for(let i of t){if(i.sets.length<3)continue;let t=[...i.sets].sort();for(let i=0;i<t.length-1;i++)for(let r=i+1;r<t.length;r++){let l=[t[i],t[r]],a=l.join("|");if(!e.has(a)){e.add(a);let t=n.get(l[0]),i=n.get(l[1]),r=void 0!==t&&void 0!==i?Math.min(t,i)/4:2.5;s.push({sets:l,size:r,label:""})}}}return s.length>0?[...t,...s]:t}(0,a.K)(ty,"stableSetsKey"),(0,a.K)(tg,"renderTextNodes"),(0,a.K)(tx,"ensurePairwiseSubsets");var tp={parser:q,db:tc,renderer:{draw:td},styles:tu}}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.rspackChunkompchamber=self.rspackChunkompchamber||[]).push([["mt"],{Ag(e,t,n){var r=n("ix"),a=n("LC"),i=n("bQ"),d=n("Ut"),o=n("NH"),l=n("Yr"),s=n("M4"),g=n("Gt"),c=n("v2");function u(e,{edgePathsClass:t="edges edgePaths"}={}){let n=e.insert("g").attr("class","root"),r=n.insert("g").attr("class","clusters");return{clusters:r,edgePaths:n.insert("g").attr("class",t),edgeLabels:n.insert("g").attr("class","edgeLabels"),nodes:n.insert("g").attr("class","nodes"),rootGroups:n}}async function f(e,t,n){if(t.label){let{shapeSvg:r,bbox:a}=await (0,d.Zk)(e,void 0===n?t:{...t,width:n});t.labelBBox={width:a.width,height:a.height},r.remove()}else t.labelBBox={width:0,height:0}}async function h(e,t,n){let r=await (0,i.on)(e,t,n),a=r.node()?.getBBox()??{width:0,height:0};return t.width=a.width,t.height=a.height,r}function p(e,t,n){let r=e,a=new Set;for(;r;){if(r.dir)return r.dir;if(!r.parentId||a.has(r.parentId))break;a.add(r.parentId),r=t.get(r.parentId)}return n}async function w(e,t,r={}){let i=new c.T({multigraph:!0,compound:!0}),d=[...t.edges],o=(0,l.D7)(),s=u(e),{edgeLabels:g,nodes:b}=s,m=new Map,R=new Map(t.nodes.map(e=>[e.id,e])),y=t.direction,v=null!=e.node();for(let e of(await Promise.all(t.nodes.map(async e=>{if(e.isGroup){if(v){let t=r.unwrapGroupLabels&&"markdown"!==e.labelType;await f(b,e,t?1/0:void 0)}i.setNode(e.id,{...e})}else{if(v){let t=await h(b,e,{config:o,dir:p(e,R,y)});m.set(e.id,t)}i.setNode(e.id,{...e})}})),d))v&&(0,a.a6)(e)&&await (0,a.jP)(g,e),i.setEdge(e.start,e.end,{...e},e.id),t.edges.some(t=>t.id===e.id)||t.edges.push(e);if(globalThis.mermaidCaptureSizes){let{captureNodeSizes:r}=await n.e("0k").then(n.bind(n,"GE"));r(e,t)}return{graph:i,groups:s,nodeElements:m}}(0,g.K)(u,"createLayoutElementGroups"),(0,g.K)(f,"measureGroupLabel"),(0,g.K)(h,"insertMeasuredNode"),(0,g.K)(p,"resolveNodeDir"),(0,g.K)(w,"createGraphWithElements");var b=new Map,m=new Map,R=new Map,y=(0,g.K)(()=>{m.clear(),R.clear(),b.clear()},"clear"),v=(0,g.K)((e,t)=>{let n=m.get(t)||[];return s.R.trace("In isDescendant",t," ",e," = ",n.includes(e)),n.includes(e)},"isDescendant"),x=(0,g.K)((e,t)=>{let n=m.get(t)||[];return s.R.info("Descendants of ",t," is ",n),s.R.info("Edge is ",e),e.v!==t&&e.w!==t&&(n?n.includes(e.v)||v(e.v,t)||v(e.w,t)||n.includes(e.w):(s.R.debug("Tilt, ",t,",not in descendants"),!1))},"edgeInCluster"),K=(0,g.K)((e,t,n,r)=>{s.R.debug("Copying children of ",e,"root",r,"data",t.node(e),r);let a=t.children(e)||[];e!==r&&a.push(e),s.R.debug("Copying (nodes) clusterId",e,"nodes",a),a.forEach(a=>{if(t.children(a).length>0)K(a,t,n,r);else{let i=t.node(a);s.R.info("cp ",a," to ",r," with parent ",e),n.setNode(a,i),r!==t.parent(a)&&(s.R.debug("Setting parent",a,t.parent(a)),n.setParent(a,t.parent(a))),e!==r&&a!==e?(s.R.debug("Setting parent",a,e),n.setParent(a,e)):(s.R.info("In copy ",e,"root",r,"data",t.node(e),r),s.R.debug("Not Setting parent for node=",a,"cluster!==rootId",e!==r,"node!==clusterId",a!==e));let d=t.edges(a);s.R.debug("Copying Edges",d),d.forEach(a=>{s.R.info("Edge",a);let i=t.edge(a.v,a.w,a.name);s.R.info("Edge data",i,r);try{x(a,r)?(s.R.info("Copying as ",a.v,a.w,i,a.name),n.setEdge(a.v,a.w,i,a.name),s.R.info("newGraph edges ",n.edges(),n.edge(n.edges()[0]))):s.R.info("Skipping copy of edge ",a.v,"--\x3e",a.w," rootId: ",r," clusterId:",e)}catch(e){s.R.error(e)}})}s.R.debug("Removing node",a),t.removeNode(a)})},"copy"),C=(0,g.K)((e,t)=>{let n=t.children(e),r=[...n];for(let a of n)R.set(a,e),r=[...r,...C(a,t)];return r},"extractDescendants"),E=(0,g.K)((e,t,n)=>{let r=e.edges().filter(e=>e.v===t||e.w===t),a=e.edges().filter(e=>e.v===n||e.w===n),i=r.map(e=>({v:e.v===t?n:e.v,w:e.w===t?t:e.w})),d=a.map(e=>({v:e.v,w:e.w}));return i.filter(e=>d.some(t=>e.v===t.v&&e.w===t.w))},"findCommonEdges"),L=(0,g.K)((e,t,n)=>{let r,a=t.children(e);if(s.R.trace("Searching children of id ",e,a),a.length<1)return e;for(let e of a){let a=L(e,t,n),i=E(t,n,a);if(a)if(!(i.length>0))return a;else r=a}return r},"findNonClusterChild"),N=(0,g.K)(e=>b.has(e)&&b.get(e).externalConnections&&b.has(e)?b.get(e).id:e,"getAnchorId"),k=(0,g.K)((e,t)=>{if(!e||t>10)return void s.R.debug("Opting out, no graph ");for(let t of(s.R.debug("Opting in, graph "),e.nodes().forEach(function(t){e.children(t).length>0&&(s.R.debug("Cluster identified",t," Replacement id in edges: ",L(t,e,t)),m.set(t,C(t,e)),b.set(t,{id:L(t,e,t),clusterData:e.node(t)}))}),e.nodes().forEach(function(t){let n=e.children(t),r=e.edges();n.length>0?(s.R.debug("Cluster identified",t,m),r.forEach(e=>{v(e.v,t)^v(e.w,t)&&(s.R.debug("Edge: ",e," leaves cluster ",t),s.R.debug("Descendants of XXX ",t,": ",m.get(t)),b.get(t).externalConnections=!0)})):s.R.debug("Not a cluster ",t,m)}),b.keys())){let n=b.get(t).id,r=e.parent(n);r!==t&&b.has(r)&&!b.get(r).externalConnections&&(b.get(t).id=r);let a=e.edges().some(e=>e.v===t);if(n&&b.get(t)?.externalConnections&&a&&S(e,n,t)){let r=T(e,t,e.parent(n));r&&(b.get(t).id=r)}}e.edges().forEach(function(t){let n=e.edge(t);s.R.debug("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(t)),s.R.debug("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(e.edge(t)));let r=t.v,a=t.w;if(s.R.debug("Fix XXX",b,"ids:",t.v,t.w,"Translating: ",b.get(t.v)," --- ",b.get(t.w)),b.get(t.v)||b.get(t.w)){if(s.R.debug("Fixing and trying - removing XXX",t.v,t.w,t.name),r=N(t.v),a=N(t.w),e.removeEdge(t.v,t.w,t.name),r!==t.v){let a=e.parent(r);b.get(a).externalConnections=!0,n.fromCluster=t.v}if(a!==t.w){let r=e.parent(a);b.get(r).externalConnections=!0,n.toCluster=t.w}s.R.debug("Fix Replacing with XXX",r,a,t.name),e.setEdge(r,a,n,t.name)}}),I(e,0),s.R.trace(b)},"adjustClustersAndEdges"),I=(0,g.K)((e,t)=>{if(t>10)return void s.R.error("Bailing out");let n=e.nodes(),r=!1;for(let t of n){let n=e.children(t);r=r||n.length>0}if(!r)return void s.R.debug("Done, no node has children",e.nodes());for(let r of(s.R.debug("Nodes = ",n,t),n))if(s.R.debug("Extracting node",r,b,b.has(r)&&!b.get(r).externalConnections,!e.parent(r),e.node(r),e.children("D")," Depth ",t),b.has(r))if(!b.get(r).externalConnections&&e.children(r)&&e.children(r).length>0){s.R.debug("Cluster without external connections, without a parent and with children",r,t);let n="TB"===e.graph().rankdir?"LR":"TB";b.get(r)?.clusterData?.dir&&(n=b.get(r).clusterData.dir,s.R.debug("Fixing dir",b.get(r).clusterData.dir,n));let a=new c.T({multigraph:!0,compound:!0}).setGraph({rankdir:n,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});K(r,e,a,r),e.setNode(r,{clusterNode:!0,id:r,clusterData:b.get(r).clusterData,label:b.get(r).label,graph:a})}else s.R.debug("Cluster ** ",r," **not meeting the criteria !externalConnections:",!b.get(r).externalConnections," no parent: ",!e.parent(r)," children ",e.children(r)&&e.children(r).length>0,e.children("D"),t),s.R.debug(b);else s.R.debug("Not a cluster",r,t);for(let r of(n=e.nodes(),s.R.debug("New list of nodes",n),n)){let n=e.node(r);s.R.debug(" Now next level",r,n),n?.clusterNode&&I(n.graph,t+1)}},"extractor"),D=(0,g.K)((e,t)=>{if(0===t.length)return[];let n=Object.assign([],t);return t.forEach(t=>{let r=e.children(t),a=D(e,r);n=[...n,...a]}),n},"sorter"),P=(0,g.K)(e=>D(e,e.children()),"sortNodesByHierarchy"),S=(0,g.K)((e,t,n)=>{let r=e.parent(t);for(;r&&r!==n;){let t=b.get(r);if(t&&!t.externalConnections)return!0;r=e.parent(r)}return!1},"isNodeInExtractableCluster"),T=(0,g.K)((e,t,n)=>{for(let r of e.children(t)??[]){if(r===n||v(r,n))continue;let a=L(r,e,t);if(a&&!S(e,a,t))return a}return null},"findSafeAnchorNode");function M({prepareLayout:e,measureLayout:t,runLayoutCore:n,paintLayout:r,afterPaint:i,paintOptions:d}){let o=t??B;return(0,g.K)(async function(t,l,s,g){let c=l.select("g");(s?.insertMarkers??a.g0)(c,t.markers,t.type,t.diagramId),X();let u={element:c,helpers:s,options:g};u.preparedLayout=await e?.(t,u);let f=await o(t,u),h=await n(t,u),p={...u,measure:f};r?await r(t,p,h):await U(t,p,d),await i?.(t,p,h)},"render")}function X(){(0,i.IU)(),(0,a.IU)(),(0,r.IU)(),y()}async function B(e,{element:t},n){return await w(t,e,n)}async function U(e,t,n={}){let{measure:r}=t,{groups:a}=r;for(let r of n.getNodes?.(e,t)??e.nodes)n.skipNode?.(r,t)||await _(a,r,t,n);let i=$(e.nodes);for(let r of e.edges)O(r,n)||await j(a,r,i,e,n,t)}async function _(e,t,n,a){t.clusterNode?(0,i.U_)(t):G(t,n,a)?await (0,r.U)(e.clusters,t):(0,i.U_)(t)}function G(e,t,n){return!0===e.isGroup&&(n.isCluster?.(e,t)??!0)}function $(e){let t=new Map;for(let n of e)n?.id&&t.set(n.id,n);return t}function O(e,t){return e.isLayoutOnly||!!t.skipEdge?.(e)}async function j(e,t,n,r,i,d){let o=(0,a.Jo)(e.edgePaths,{...t},i.clusterDb??new Map,r.type,Q(t.start,t,n,d,i),Q(t.end,t,n,d,i),r.diagramId,A(t,i));(0,a.a6)(t)&&(a.lP.has(t.id)||await (0,a.jP)(e.edgeLabels,t),F(t,o))}function Q(e,t,n,r,a){return a.getEdgeNode?.(e,t,r)??(e?n.get(e)??{}:{})}function A(e,t){return"function"==typeof t.skipIntersect?t.skipIntersect(e):t.skipIntersect??!1}function F(e,t){let n=t?.updatedPath??t?.originalPath,r=(0,l.zj)(),{subGraphTitleTotalMargin:d}=(0,i.Oi)({flowchart:r.flowchart??{}});if(e.label){let r=a.lP.get(e.id),i=e.x,l=e.y;if(n){let r=o._K.calcLabelPosition(n);s.R.debug("Moving label "+e.label+" from (",i,",",l,") to (",r.x,",",r.y,") abc88"),t?.updatedPath&&(i=r.x,l=r.y)}r.attr("transform",`translate(${i}, ${l+d/2})`)}if(e?.startLabelLeft){let t=a.UQ.get(e.id).startLeft,r=e?.x,i=e?.y;if(n){let t=o._K.calcTerminalLabelPosition(10*!!e.arrowTypeStart,"start_left",n);r=t.x,i=t.y}t.attr("transform",`translate(${r}, ${i})`)}if(e.startLabelRight){let t=a.UQ.get(e.id).startRight,r=e.x,i=e.y;if(n){let t=o._K.calcTerminalLabelPosition(10*!!e.arrowTypeStart,"start_right",n);r=t.x,i=t.y}t.attr("transform",`translate(${r}, ${i})`)}if(e.endLabelLeft){let t=a.UQ.get(e.id).endLeft,r=e.x,i=e.y;if(n){let t=o._K.calcTerminalLabelPosition(10*!!e.arrowTypeEnd,"end_left",n);r=t.x,i=t.y}t.attr("transform",`translate(${r}, ${i})`)}if(e.endLabelRight){let t=a.UQ.get(e.id).endRight,r=e.x,i=e.y;if(n){let t=o._K.calcTerminalLabelPosition(10*!!e.arrowTypeEnd,"end_right",n);r=t.x,i=t.y}t.attr("transform",`translate(${r}, ${i})`)}}(0,g.K)(M,"createCommonLayoutRenderer"),(0,g.K)(X,"clearLayoutRenderState"),(0,g.K)(B,"defaultMeasureLayout"),(0,g.K)(U,"paintLayoutData"),(0,g.K)(_,"paintLayoutNode"),(0,g.K)(G,"shouldPaintAsCluster"),(0,g.K)($,"buildNodeLookup"),(0,g.K)(O,"shouldSkipPaintEdge"),(0,g.K)(j,"paintLayoutEdge"),(0,g.K)(Q,"getRenderedNode"),(0,g.K)(A,"shouldSkipIntersect"),(0,g.K)(F,"positionRenderedEdgeLabel"),n.d(t,{B:()=>u,OS:()=>k,QV:()=>B,dc:()=>L,ju:()=>b,sc:()=>P,sv:()=>h,xY:()=>M})}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.rspackChunkompchamber=self.rspackChunkompchamber||[]).push([["n"],{d2(e,t,n){n.r(t),t.default=[Object.freeze(JSON.parse('{"displayName":"CSS","name":"css","patterns":[{"include":"#comment-block"},{"include":"#escapes"},{"include":"#combinators"},{"include":"#selector"},{"include":"#at-rules"},{"include":"#rule-list"}],"repository":{"at-rules":{"patterns":[{"begin":"\\\\A\\\\uFEFF?(?i:(?=\\\\s*@charset\\\\b))","end":";|(?=$)","endCaptures":{"0":{"name":"punctuation.terminator.rule.css"}},"name":"meta.at-rule.charset.css","patterns":[{"captures":{"1":{"name":"invalid.illegal.not-lowercase.charset.css"},"2":{"name":"invalid.illegal.leading-whitespace.charset.css"},"3":{"name":"invalid.illegal.no-whitespace.charset.css"},"4":{"name":"invalid.illegal.whitespace.charset.css"},"5":{"name":"invalid.illegal.not-double-quoted.charset.css"},"6":{"name":"invalid.illegal.unclosed-string.charset.css"},"7":{"name":"invalid.illegal.unexpected-characters.charset.css"}},"match":"\\\\G((?!@charset)@\\\\w+)|\\\\G(\\\\s+)|(@charset\\\\S[^;]*)|(?<=@charset)( {2,}|\\\\t+)|(?<=@charset )([^\\";]+)|(\\"[^\\"]+)$|(?<=\\")([^;]+)"},{"captures":{"1":{"name":"keyword.control.at-rule.charset.css"},"2":{"name":"punctuation.definition.keyword.css"}},"match":"((@)charset)(?=\\\\s)"},{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.css"}},"end":"\\"|$","endCaptures":{"0":{"name":"punctuation.definition.string.end.css"}},"name":"string.quoted.double.css","patterns":[{"begin":"(?:\\\\G|^)(?=[^\\"]+$)","end":"$","name":"invalid.illegal.unclosed.string.css"}]}]},{"begin":"(?i)((@)import)(?:\\\\s+|$|(?=[\\"\']|/\\\\*))","beginCaptures":{"1":{"name":"keyword.control.at-rule.import.css"},"2":{"name":"punctuation.definition.keyword.css"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.rule.css"}},"name":"meta.at-rule.import.css","patterns":[{"begin":"\\\\G\\\\s*(?=/\\\\*)","end":"(?<=\\\\*/)\\\\s*","patterns":[{"include":"#comment-block"}]},{"include":"#string"},{"include":"#url"},{"include":"#media-query-list"}]},{"begin":"(?i)((@)font-face)(?=\\\\s*|\\\\{|/\\\\*|$)","beginCaptures":{"1":{"name":"keyword.control.at-rule.font-face.css"},"2":{"name":"punctuation.definition.keyword.css"}},"end":"(?!\\\\G)","name":"meta.at-rule.font-face.css","patterns":[{"include":"#comment-block"},{"include":"#escapes"},{"include":"#rule-list"}]},{"begin":"(?i)(@)page(?=[:{\\\\s]|/\\\\*|$)","captures":{"0":{"name":"keyword.control.at-rule.page.css"},"1":{"name":"punctuation.definition.keyword.css"}},"end":"(?=\\\\s*($|[:;{]))","name":"meta.at-rule.page.css","patterns":[{"include":"#rule-list"}]},{"begin":"(?i)(?=@media([(\\\\s]|/\\\\*|$))","end":"(?<=})(?!\\\\G)","patterns":[{"begin":"(?i)\\\\G(@)media","beginCaptures":{"0":{"name":"keyword.control.at-rule.media.css"},"1":{"name":"punctuation.definition.keyword.css"}},"end":"(?=\\\\s*[;{])","name":"meta.at-rule.media.header.css","patterns":[{"include":"#media-query-list"}]},{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.section.media.begin.bracket.curly.css"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.media.end.bracket.curly.css"}},"name":"meta.at-rule.media.body.css","patterns":[{"include":"$self"}]}]},{"begin":"(?i)(?=@counter-style([\\"\';{\\\\s]|/\\\\*|$))","end":"(?<=})(?!\\\\G)","patterns":[{"begin":"(?i)\\\\G(@)counter-style","beginCaptures":{"0":{"name":"keyword.control.at-rule.counter-style.css"},"1":{"name":"punctuation.definition.keyword.css"}},"end":"(?=\\\\s*\\\\{)","name":"meta.at-rule.counter-style.header.css","patterns":[{"include":"#comment-block"},{"include":"#escapes"},{"captures":{"0":{"patterns":[{"include":"#escapes"}]}},"match":"[-A-Z_a-z[^\\\\x00-\\\\x7F]](?:[-0-9A-Z_a-z[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{1,6}|.))*","name":"variable.parameter.style-name.css"}]},{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.section.property-list.begin.bracket.curly.css"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.property-list.end.bracket.curly.css"}},"name":"meta.at-rule.counter-style.body.css","patterns":[{"include":"#comment-block"},{"include":"#escapes"},{"include":"#rule-list-innards"}]}]},{"begin":"(?i)(?=@document([\\"\';{\\\\s]|/\\\\*|$))","end":"(?<=})(?!\\\\G)","patterns":[{"begin":"(?i)\\\\G(@)document","beginCaptures":{"0":{"name":"keyword.control.at-rule.document.css"},"1":{"name":"punctuation.definition.keyword.css"}},"end":"(?=\\\\s*[;{])","name":"meta.at-rule.document.header.css","patterns":[{"begin":"(?i)(?<![-\\\\w])(url-prefix|domain|regexp)(\\\\()","beginCaptures":{"1":{"name":"support.function.document-rule.css"},"2":{"name":"punctuation.section.function.begin.bracket.round.css"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.function.end.bracket.round.css"}},"name":"meta.function.document-rule.css","patterns":[{"include":"#string"},{"include":"#comment-block"},{"include":"#escapes"},{"match":"[^\\"\')\\\\s]+","name":"variable.parameter.document-rule.css"}]},{"include":"#url"},{"include":"#commas"},{"include":"#comment-block"},{"include":"#escapes"}]},{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.section.document.begin.bracket.curly.css"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.document.end.bracket.curly.css"}},"name":"meta.at-rule.document.body.css","patterns":[{"include":"$self"}]}]},{"begin":"(?i)(?=@(?:-(?:webkit|moz|o|ms)-)?keyframes([\\"\';{\\\\s]|/\\\\*|$))","end":"(?<=})(?!\\\\G)","patterns":[{"begin":"(?i)\\\\G(@)(?:-(?:webkit|moz|o|ms)-)?keyframes","beginCaptures":{"0":{"name":"keyword.control.at-rule.keyframes.css"},"1":{"name":"punctuation.definition.keyword.css"}},"end":"(?=\\\\s*\\\\{)","name":"meta.at-rule.keyframes.header.css","patterns":[{"include":"#comment-block"},{"include":"#escapes"},{"captures":{"0":{"patterns":[{"include":"#escapes"}]}},"match":"[-A-Z_a-z[^\\\\x00-\\\\x7F]](?:[-0-9A-Z_a-z[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{1,6}|.))*","name":"variable.parameter.keyframe-list.css"}]},{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.section.keyframes.begin.bracket.curly.css"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.keyframes.end.bracket.curly.css"}},"name":"meta.at-rule.keyframes.body.css","patterns":[{"include":"#comment-block"},{"include":"#escapes"},{"captures":{"1":{"name":"entity.other.keyframe-offset.css"},"2":{"name":"entity.other.keyframe-offset.percentage.css"}},"match":"(?i)(?<![-\\\\w])(from|to)(?![-\\\\w])|([-+]?(?:\\\\d+(?:\\\\.\\\\d+)?|\\\\.\\\\d+)%)"},{"include":"#rule-list"}]}]},{"begin":"(?i)(?=@supports([(\\\\s]|/\\\\*|$))","end":"(?<=})(?!\\\\G)|(?=;)","patterns":[{"begin":"(?i)\\\\G(@)supports","beginCaptures":{"0":{"name":"keyword.control.at-rule.supports.css"},"1":{"name":"punctuation.definition.keyword.css"}},"end":"(?=\\\\s*[;{])","name":"meta.at-rule.supports.header.css","patterns":[{"include":"#feature-query-operators"},{"include":"#feature-query"},{"include":"#comment-block"},{"include":"#escapes"}]},{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.section.supports.begin.bracket.curly.css"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.supports.end.bracket.curly.css"}},"name":"meta.at-rule.supports.body.css","patterns":[{"include":"$self"}]}]},{"begin":"(?i)((@)(-(ms|o)-)?viewport)(?=[\\"\';{\\\\s]|/\\\\*|$)","beginCaptures":{"1":{"name":"keyword.control.at-rule.viewport.css"},"2":{"name":"punctuation.definition.keyword.css"}},"end":"(?=\\\\s*[;@{])","name":"meta.at-rule.viewport.css","patterns":[{"include":"#comment-block"},{"include":"#escapes"}]},{"begin":"(?i)((@)font-feature-values)(?=[\\"\';{\\\\s]|/\\\\*|$)\\\\s*","beginCaptures":{"1":{"name":"keyword.control.at-rule.font-feature-values.css"},"2":{"name":"punctuation.definition.keyword.css"}},"contentName":"variable.parameter.font-name.css","end":"(?=\\\\s*[;@{])","name":"meta.at-rule.font-features.css","patterns":[{"include":"#comment-block"},{"include":"#escapes"}]},{"include":"#font-features"},{"begin":"(?i)((@)namespace)(?=[\\"\';\\\\s]|/\\\\*|$)","beginCaptures":{"1":{"name":"keyword.control.at-rule.namespace.css"},"2":{"name":"punctuation.definition.keyword.css"}},"end":";|(?=[@{])","endCaptures":{"0":{"name":"punctuation.terminator.rule.css"}},"name":"meta.at-rule.namespace.css","patterns":[{"include":"#url"},{"captures":{"1":{"patterns":[{"include":"#comment-block"}]},"2":{"name":"entity.name.function.namespace-prefix.css","patterns":[{"include":"#escapes"}]}},"match":"(?i)(?:\\\\G|^|(?<=\\\\s))(?=(?<=\\\\s|^)[-A-Z_a-z[^\\\\x00-\\\\x7F]]|\\\\s*/\\\\*(?:[^*]|\\\\*[^/])*\\\\*/)(.*?)([-A-Z_a-z[^\\\\x00-\\\\x7F]](?:[-0-9A-Z_a-z[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{1,6}|.))*)"},{"include":"#comment-block"},{"include":"#escapes"},{"include":"#string"}]},{"begin":"(?i)(?=@[-\\\\w]+[^;]+;s*$)","end":"(?<=;)(?!\\\\G)","patterns":[{"begin":"(?i)\\\\G(@)[-\\\\w]+","beginCaptures":{"0":{"name":"keyword.control.at-rule.css"},"1":{"name":"punctuation.definition.keyword.css"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.rule.css"}},"name":"meta.at-rule.header.css"}]},{"begin":"(?i)(?=@[-\\\\w]+([({\\\\s]|/\\\\*|$))","end":"(?<=})(?!\\\\G)","patterns":[{"begin":"(?i)\\\\G(@)[-\\\\w]+","beginCaptures":{"0":{"name":"keyword.control.at-rule.css"},"1":{"name":"punctuation.definition.keyword.css"}},"end":"(?=\\\\s*[;{])","name":"meta.at-rule.header.css"},{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.section.begin.bracket.curly.css"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.end.bracket.curly.css"}},"name":"meta.at-rule.body.css","patterns":[{"include":"$self"}]}]}]},"color-keywords":{"patterns":[{"match":"(?i)(?<![-\\\\w])(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)(?![-\\\\w])","name":"support.constant.color.w3c-standard-color-name.css"},{"match":"(?i)(?<![-\\\\w])(aliceblue|antiquewhite|aquamarine|azure|beige|bisque|blanchedalmond|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|gainsboro|ghostwhite|gold|goldenrod|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|limegreen|linen|magenta|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|oldlace|olivedrab|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|rebeccapurple|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|thistle|tomato|transparent|turquoise|violet|wheat|whitesmoke|yellowgreen)(?![-\\\\w])","name":"support.constant.color.w3c-extended-color-name.css"},{"match":"(?i)(?<![-\\\\w])currentColor(?![-\\\\w])","name":"support.constant.color.current.css"},{"match":"(?i)(?<![-\\\\w])(ActiveBorder|ActiveCaption|AppWorkspace|Background|ButtonFace|ButtonHighlight|ButtonShadow|ButtonText|CaptionText|GrayText|Highlight|HighlightText|InactiveBorder|InactiveCaption|InactiveCaptionText|InfoBackground|InfoText|Menu|MenuText|Scrollbar|ThreeDDarkShadow|ThreeDFace|ThreeDHighlight|ThreeDLightShadow|ThreeDShadow|Window|WindowFrame|WindowText)(?![-\\\\w])","name":"invalid.deprecated.color.system.css"}]},"combinators":{"patterns":[{"match":"/deep/|>>>","name":"invalid.deprecated.combinator.css"},{"match":">>|[+>~]","name":"keyword.operator.combinator.css"}]},"commas":{"match":",","name":"punctuation.separator.list.comma.css"},"comment-block":{"begin":"/\\\\*","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.css"}},"end":"\\\\*/","endCaptures":{"0":{"name":"punctuation.definition.comment.end.css"}},"name":"comment.block.css"},"escapes":{"patterns":[{"match":"\\\\\\\\\\\\h{1,6}","name":"constant.character.escape.codepoint.css"},{"begin":"\\\\\\\\$\\\\s*","end":"^(?<!\\\\G)","name":"constant.character.escape.newline.css"},{"match":"\\\\\\\\.","name":"constant.character.escape.css"}]},"feature-query":{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.condition.begin.bracket.round.css"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.condition.end.bracket.round.css"}},"name":"meta.feature-query.css","patterns":[{"include":"#feature-query-operators"},{"include":"#feature-query"}]},"feature-query-operators":{"patterns":[{"match":"(?i)(?<=[()\\\\s]|^|\\\\*/)(and|not|or)(?=[()\\\\s]|/\\\\*|$)","name":"keyword.operator.logical.feature.$1.css"},{"include":"#rule-list-innards"}]},"font-features":{"begin":"(?i)((@)(annotation|character-variant|ornaments|styleset|stylistic|swash))(?=[\\"\';@{\\\\s]|/\\\\*|$)","beginCaptures":{"1":{"name":"keyword.control.at-rule.${3:/downcase}.css"},"2":{"name":"punctuation.definition.keyword.css"}},"end":"(?<=})","name":"meta.at-rule.${3:/downcase}.css","patterns":[{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.section.property-list.begin.bracket.curly.css"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.property-list.end.bracket.curly.css"}},"name":"meta.property-list.font-feature.css","patterns":[{"captures":{"0":{"patterns":[{"include":"#escapes"}]}},"match":"[-A-Z_a-z[^\\\\x00-\\\\x7F]](?:[-0-9A-Z_a-z[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{1,6}|.))*","name":"variable.font-feature.css"},{"include":"#rule-list-innards"}]}]},"functional-pseudo-classes":{"patterns":[{"begin":"(?i)((:)dir)(\\\\()","beginCaptures":{"1":{"name":"entity.other.attribute-name.pseudo-class.css"},"2":{"name":"punctuation.definition.entity.css"},"3":{"name":"punctuation.section.function.begin.bracket.round.css"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.function.end.bracket.round.css"}},"patterns":[{"include":"#comment-block"},{"include":"#escapes"},{"match":"(?i)(?<![-\\\\w])(ltr|rtl)(?![-\\\\w])","name":"support.constant.text-direction.css"},{"include":"#property-values"}]},{"begin":"(?i)((:)lang)(\\\\()","beginCaptures":{"1":{"name":"entity.other.attribute-name.pseudo-class.css"},"2":{"name":"punctuation.definition.entity.css"},"3":{"name":"punctuation.section.function.begin.bracket.round.css"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.function.end.bracket.round.css"}},"patterns":[{"match":"(?<=[(,\\\\s])[A-Za-z]+(-[0-9A-Za-z]*|\\\\\\\\(?:\\\\h{1,6}|.))*(?=[),\\\\s])","name":"support.constant.language-range.css"},{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.css"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.css"}},"name":"string.quoted.double.css","patterns":[{"include":"#escapes"},{"match":"(?<=[\\"\\\\s])[*A-Za-z]+(-[*0-9A-Za-z]*)*(?=[\\"\\\\s])","name":"support.constant.language-range.css"}]},{"begin":"\'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.css"}},"end":"\'","endCaptures":{"0":{"name":"punctuation.definition.string.end.css"}},"name":"string.quoted.single.css","patterns":[{"include":"#escapes"},{"match":"(?<=[\'\\\\s])[*A-Za-z]+(-[*0-9A-Za-z]*)*(?=[\'\\\\s])","name":"support.constant.language-range.css"}]},{"include":"#commas"}]},{"begin":"(?i)((:)(?:not|has|matches|where|is))(\\\\()","beginCaptures":{"1":{"name":"entity.other.attribute-name.pseudo-class.css"},"2":{"name":"punctuation.definition.entity.css"},"3":{"name":"punctuation.section.function.begin.bracket.round.css"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.function.end.bracket.round.css"}},"patterns":[{"include":"#selector-innards"}]},{"begin":"(?i)((:)nth-(?:last-)?(?:child|of-type))(\\\\()","beginCaptures":{"1":{"name":"entity.other.attribute-name.pseudo-class.css"},"2":{"name":"punctuation.definition.entity.css"},"3":{"name":"punctuation.section.function.begin.bracket.round.css"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.function.end.bracket.round.css"}},"patterns":[{"match":"(?i)[-+]?(\\\\d+n?|n)(\\\\s*[-+]\\\\s*\\\\d+)?","name":"constant.numeric.css"},{"match":"(?i)even|odd","name":"support.constant.parity.css"}]}]},"functions":{"patterns":[{"begin":"(?i)(?<![-\\\\w])(calc)(\\\\()","beginCaptures":{"1":{"name":"support.function.calc.css"},"2":{"name":"punctuation.section.function.begin.bracket.round.css"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.function.end.bracket.round.css"}},"name":"meta.function.calc.css","patterns":[{"match":"[*/]|(?<=\\\\s|^)[-+](?=\\\\s|$)","name":"keyword.operator.arithmetic.css"},{"include":"#property-values"}]},{"begin":"(?i)(?<![-\\\\w])(rgba?|hsla?|hwb|lab|oklab|lch|oklch|color)(\\\\()","beginCaptures":{"1":{"name":"support.function.misc.css"},"2":{"name":"punctuation.section.function.begin.bracket.round.css"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.function.end.bracket.round.css"}},"name":"meta.function.color.css","patterns":[{"include":"#property-values"}]},{"begin":"(?i)(?<![-\\\\w])((?:-(?:webkit-|moz-|o-))?(?:repeating-)?(?:linear|radial|conic)-gradient)(\\\\()","beginCaptures":{"1":{"name":"support.function.gradient.css"},"2":{"name":"punctuation.section.function.begin.bracket.round.css"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.function.end.bracket.round.css"}},"name":"meta.function.gradient.css","patterns":[{"match":"(?i)(?<![-\\\\w])(from|to|at|in|hue)(?![-\\\\w])","name":"keyword.operator.gradient.css"},{"include":"#property-values"}]},{"begin":"(?i)(?<![-\\\\w])(-webkit-gradient)(\\\\()","beginCaptures":{"1":{"name":"invalid.deprecated.gradient.function.css"},"2":{"name":"punctuation.section.function.begin.bracket.round.css"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.function.end.bracket.round.css"}},"name":"meta.function.gradient.invalid.deprecated.gradient.css","patterns":[{"begin":"(?i)(?<![-\\\\w])(from|to|color-stop)(\\\\()","beginCaptures":{"1":{"name":"invalid.deprecated.function.css"},"2":{"name":"punctuation.section.function.begin.bracket.round.css"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.function.end.bracket.round.css"}},"patterns":[{"include":"#property-values"}]},{"include":"#property-values"}]},{"begin":"(?i)(?<![-\\\\w])(annotation|attr|blur|brightness|character-variant|clamp|contrast|counters?|cross-fade|drop-shadow|element|fit-content|format|grayscale|hue-rotate|color-mix|image-set|invert|local|max|min|minmax|opacity|ornaments|repeat|saturate|sepia|styleset|stylistic|swash|symbols|cos|sin|tan|acos|asin|atan2??|hypot|sqrt|pow|log|exp|abs|sign)(\\\\()","beginCaptures":{"1":{"name":"support.function.misc.css"},"2":{"name":"punctuation.section.function.begin.bracket.round.css"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.function.end.bracket.round.css"}},"name":"meta.function.misc.css","patterns":[{"match":"(?i)(?<=[\\",\\\\s]|\\\\*/|^)\\\\d+x(?=[\\"\'),\\\\s]|/\\\\*|$)","name":"constant.numeric.other.density.css"},{"include":"#property-values"},{"match":"[^\\"\'),\\\\s]+","name":"variable.parameter.misc.css"}]},{"begin":"(?i)(?<![-\\\\w])(circle|ellipse|inset|polygon|rect)(\\\\()","beginCaptures":{"1":{"name":"support.function.shape.css"},"2":{"name":"punctuation.section.function.begin.bracket.round.css"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.function.end.bracket.round.css"}},"name":"meta.function.shape.css","patterns":[{"match":"(?i)(?<=\\\\s|^|\\\\*/)(at|round)(?=\\\\s|/\\\\*|$)","name":"keyword.operator.shape.css"},{"include":"#property-values"}]},{"begin":"(?i)(?<![-\\\\w])(cubic-bezier|steps)(\\\\()","beginCaptures":{"1":{"name":"support.function.timing-function.css"},"2":{"name":"punctuation.section.function.begin.bracket.round.css"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.function.end.bracket.round.css"}},"name":"meta.function.timing-function.css","patterns":[{"match":"(?i)(?<![-\\\\w])(start|end)(?=\\\\s*\\\\)|$)","name":"support.constant.step-direction.css"},{"include":"#property-values"}]},{"begin":"(?i)(?<![-\\\\w])((?:translate|scale|rotate)(?:[XYZ]|3D)?|matrix(?:3D)?|skew[XY]?|perspective)(\\\\()","beginCaptures":{"1":{"name":"support.function.transform.css"},"2":{"name":"punctuation.section.function.begin.bracket.round.css"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.function.end.bracket.round.css"}},"patterns":[{"include":"#property-values"}]},{"include":"#url"},{"begin":"(?i)(?<![-\\\\w])(var)(\\\\()","beginCaptures":{"1":{"name":"support.function.misc.css"},"2":{"name":"punctuation.section.function.begin.bracket.round.css"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.function.end.bracket.round.css"}},"name":"meta.function.variable.css","patterns":[{"match":"--[-A-Z_a-z[^\\\\x00-\\\\x7F]](?:[-0-9A-Z_a-z[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{1,6}|.))*","name":"variable.argument.css"},{"include":"#property-values"}]}]},"media-feature-keywords":{"match":"(?i)(?<=^|[:\\\\s]|\\\\*/)(?:portrait|landscape|progressive|interlace|fullscreen|standalone|minimal-ui|browser|hover)(?=[)\\\\s]|$)","name":"support.constant.property-value.css"},"media-features":{"captures":{"1":{"name":"support.type.property-name.media.css"},"2":{"name":"support.type.property-name.media.css"},"3":{"name":"support.type.vendored.property-name.media.css"}},"match":"(?i)(?<=^|[(\\\\s]|\\\\*/)(?:((?:m(?:in-|ax-))?(?:height|width|aspect-ratio|color|color-index|monochrome|resolution)|grid|scan|orientation|display-mode|hover)|((?:m(?:in-|ax-))?device-(?:height|width|aspect-ratio))|((?:[-_](?:webkit|apple|khtml|epub|moz|ms|o|xv|ah|rim|atsc|hp|tc|wap|ro)|(?:mso|prince))-[-\\\\w]+(?=\\\\s*(?:/\\\\*(?:[^*]|\\\\*[^/])*\\\\*/)?\\\\s*[):])))(?=\\\\s|$|[):<=>]|/\\\\*)"},"media-query":{"begin":"\\\\G","end":"(?=\\\\s*[;{])","patterns":[{"include":"#comment-block"},{"include":"#escapes"},{"include":"#media-types"},{"match":"(?i)(?<=\\\\s|^|,|\\\\*/)(only|not)(?=[{\\\\s]|/\\\\*|$)","name":"keyword.operator.logical.$1.media.css"},{"match":"(?i)(?<=\\\\s|^|\\\\*/|\\\\))and(?=\\\\s|/\\\\*|$)","name":"keyword.operator.logical.and.media.css"},{"match":",(?:(?:\\\\s*,)+|(?=\\\\s*[);{]))","name":"invalid.illegal.comma.css"},{"include":"#commas"},{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.parameters.begin.bracket.round.css"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.parameters.end.bracket.round.css"}},"patterns":[{"include":"#media-features"},{"include":"#media-feature-keywords"},{"match":":","name":"punctuation.separator.key-value.css"},{"match":">=|<=|[<=>]","name":"keyword.operator.comparison.css"},{"captures":{"1":{"name":"constant.numeric.css"},"2":{"name":"keyword.operator.arithmetic.css"},"3":{"name":"constant.numeric.css"}},"match":"(\\\\d+)\\\\s*(/)\\\\s*(\\\\d+)","name":"meta.ratio.css"},{"include":"#numeric-values"},{"include":"#comment-block"}]}]},"media-query-list":{"begin":"(?=\\\\s*[^;{])","end":"(?=\\\\s*[;{])","patterns":[{"include":"#media-query"}]},"media-types":{"captures":{"1":{"name":"support.constant.media.css"},"2":{"name":"invalid.deprecated.constant.media.css"}},"match":"(?i)(?<=^|[,\\\\s]|\\\\*/)(?:(all|print|screen|speech)|(aural|braille|embossed|handheld|projection|tty|tv))(?=$|[,;{\\\\s]|/\\\\*)"},"numeric-values":{"patterns":[{"captures":{"1":{"name":"punctuation.definition.constant.css"}},"match":"(#)(?:\\\\h{3,4}|\\\\h{6}|\\\\h{8})\\\\b","name":"constant.other.color.rgb-value.hex.css"},{"captures":{"1":{"name":"keyword.other.unit.percentage.css"},"2":{"name":"keyword.other.unit.${2:/downcase}.css"}},"match":"(?i)(?<![-\\\\w])[-+]?(?:[0-9]+(?:\\\\.[0-9]+)?|\\\\.[0-9]+)(?:(?<=[0-9])E[-+]?[0-9]+)?(?:(%)|(deg|grad|rad|turn|Hz|kHz|ch|cm|em|ex|fr|in|mm|mozmm|pc|pt|px|q|rem|rch|rex|rlh|ic|ric|rcap|vh|vw|vb|vi|svh|svw|svb|svi|dvh|dvw|dvb|dvi|lvh|lvw|lvb|lvi|vmax|vmin|cqw|cqi|cqh|cqb|cqmin|cqmax|dpi|dpcm|dppx|s|ms)\\\\b)?","name":"constant.numeric.css"}]},"property-keywords":{"patterns":[{"match":"(?i)(?<![-\\\\w])(above|absolute|active|add|additive|after-edge|alias|all|all-petite-caps|all-scroll|all-small-caps|alpha|alphabetic|alternate|alternate-reverse|always|antialiased|auto|auto-fill|auto-fit|auto-pos|available|avoid|avoid-column|avoid-page|avoid-region|backwards|balance|baseline|before-edge|below|bevel|bidi-override|blink|block|block-axis|block-start|block-end|bold|bolder|border|border-box|both|bottom|bottom-outside|break-all|break-word|bullets|butt|capitalize|caption|cell|center|central|char|circle|clip|clone|close-quote|closest-corner|closest-side|col-resize|collapse|color|color-burn|color-dodge|column|column-reverse|common-ligatures|compact|condensed|contain|content|content-box|contents|context-menu|contextual|copy|cover|crisp-edges|crispEdges|crosshair|cyclic|dark|darken|dashed|decimal|default|dense|diagonal-fractions|difference|digits|disabled|disc|discretionary-ligatures|distribute|distribute-all-lines|distribute-letter|distribute-space|dot|dotted|double|double-circle|downleft|downright|e-resize|each-line|ease|ease-in|ease-in-out|ease-out|economy|ellipse|ellipsis|embed|end|evenodd|ew-resize|exact|exclude|exclusion|expanded|extends|extra-condensed|extra-expanded|fallback|farthest-corner|farthest-side|fill|fill-available|fill-box|filled|fit-content|fixed|flat|flex|flex-end|flex-start|flip|flow|flow-root|forwards|freeze|from-image|full-width|geometricPrecision|georgian|grab|grabbing|grayscale|grid|groove|hand|hanging|hard-light|help|hidden|hide|historical-forms|historical-ligatures|horizontal|horizontal-tb|hue|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|infinite|inherit|initial|inline|inline-axis|inline-block|inline-end|inline-flex|inline-grid|inline-list-item|inline-start|inline-table|inset|inside|inter-character|inter-ideograph|inter-word|intersect|invert|isolate|isolate-override|italic|jis04|jis78|jis83|jis90|justify|justify-all|kannada|keep-all|landscape|larger??|left|light|lighten|lighter|line|line-edge|line-through|linear|linearRGB|lining-nums|list-item|local|loose|lowercase|lr|lr-tb|ltr|luminance|luminosity|main-size|mandatory|manipulation|manual|margin-box|match-parent|match-source|mathematical|max-content|medium|menu|message-box|middle|min-content|miter|mixed|move|multiply|n-resize|narrower|ne-resize|nearest-neighbor|nesw-resize|newspaper|no-change|no-clip|no-close-quote|no-common-ligatures|no-contextual|no-discretionary-ligatures|no-drop|no-historical-ligatures|no-open-quote|no-repeat|none|nonzero|normal|not-allowed|nowrap|ns-resize|numbers|numeric|nw-resize|nwse-resize|oblique|oldstyle-nums|open|open-quote|optimizeLegibility|optimizeQuality|optimizeSpeed|optional|ordinal|outset|outside|over|overlay|overline|padding|padding-box|page|painted|pan-down|pan-left|pan-right|pan-up|pan-x|pan-y|paused|petite-caps|pixelated|plaintext|pointer|portrait|pre|pre-line|pre-wrap|preserve-3d|progress|progressive|proportional-nums|proportional-width|proximity|radial|recto|region|relative|remove|repeat|repeat-[xy]|reset-size|reverse|revert|revert-layer|ridge|right|rl|rl-tb|round|row|row-resize|row-reverse|row-severse|rtl|ruby|ruby-base|ruby-base-container|ruby-text|ruby-text-container|run-in|running|s-resize|saturation|scale-down|screen|scroll|scroll-position|se-resize|semi-condensed|semi-expanded|separate|sesame|show|sideways|sideways-left|sideways-lr|sideways-right|sideways-rl|simplified|slashed-zero|slice|small|small-caps|small-caption|smaller|smooth|soft-light|solid|space|space-around|space-between|space-evenly|spell-out|square|sRGB|stacked-fractions|start|static|status-bar|swap|step-end|step-start|sticky|stretch|strict|stroke|stroke-box|style|sub|subgrid|subpixel-antialiased|subtract|super|sw-resize|symbolic|table|table-caption|table-cell|table-column|table-column-group|table-footer-group|table-header-group|table-row|table-row-group|tabular-nums|tb|tb-rl|text|text-after-edge|text-before-edge|text-bottom|text-top|thick|thin|titling-caps|top|top-outside|touch|traditional|transparent|triangle|ultra-condensed|ultra-expanded|under|underline|unicase|unset|upleft|uppercase|upright|use-glyph-orientation|use-script|verso|vertical|vertical-ideographic|vertical-lr|vertical-rl|vertical-text|view-box|visible|visibleFill|visiblePainted|visibleStroke|w-resize|wait|wavy|weight|whitespace|wider|words|wrap|wrap-reverse|x|x-large|x-small|xx-large|xx-small|y|zero|zoom-in|zoom-out)(?![-\\\\w])","name":"support.constant.property-value.css"},{"match":"(?i)(?<![-\\\\w])(arabic-indic|armenian|bengali|cambodian|circle|cjk-decimal|cjk-earthly-branch|cjk-heavenly-stem|cjk-ideographic|decimal|decimal-leading-zero|devanagari|disc|disclosure-closed|disclosure-open|ethiopic-halehame-am|ethiopic-halehame-ti-e[rt]|ethiopic-numeric|georgian|gujarati|gurmukhi|hangul|hangul-consonant|hebrew|hiragana|hiragana-iroha|japanese-formal|japanese-informal|kannada|katakana|katakana-iroha|khmer|korean-hangul-formal|korean-hanja-formal|korean-hanja-informal|lao|lower-alpha|lower-armenian|lower-greek|lower-latin|lower-roman|malayalam|mongolian|myanmar|oriya|persian|simp-chinese-formal|simp-chinese-informal|square|tamil|telugu|thai|tibetan|trad-chinese-formal|trad-chinese-informal|upper-alpha|upper-armenian|upper-latin|upper-roman|urdu)(?![-\\\\w])","name":"support.constant.property-value.list-style-type.css"},{"match":"(?<![-\\\\w])(?i:-(?:ah|apple|atsc|epub|hp|khtml|moz|ms|o|rim|ro|tc|wap|webkit|xv)|(?:mso|prince))-[-A-Za-z]+","name":"support.constant.vendored.property-value.css"},{"match":"(?<![-\\\\w])(?i:arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system-ui|system|tahoma|times|trebuchet|ui-monospace|ui-rounded|ui-sans-serif|ui-serif|utopia|verdana|webdings|sans-serif|serif|monospace)(?![-\\\\w])","name":"support.constant.font-name.css"}]},"property-names":{"patterns":[{"match":"(?i)(?<![-\\\\w])(?:accent-color|additive-symbols|align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|aspect-ratio|backdrop-filter|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-position-[xy]|background-repeat|background-size|bleed|block-size|border|border-block-end|border-block-end-color|border-block-end-style|border-block-end-width|border-block-start|border-block-start-color|border-block-start-style|border-block-start-width|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-end-end-radius|border-end-start-radius|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-inline-end|border-inline-end-color|border-inline-end-style|border-inline-end-width|border-inline-start|border-inline-start-color|border-inline-start-style|border-inline-start-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-start-end-radius|border-start-start-radius|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-decoration-break|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|caret-color|clear|clip|clip-path|clip-rule|color|color-adjust|color-interpolation-filters|color-scheme|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|contain|container|container-name|container-type|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|enable-background|fallback|fill|fill-opacity|fill-rule|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|flood-color|flood-opacity|font|font-display|font-family|font-feature-settings|font-kerning|font-language-override|font-optical-sizing|font-size|font-size-adjust|font-stretch|font-style|font-synthesis|font-variant|font-variant-alternates|font-variant-caps|font-variant-east-asian|font-variant-ligatures|font-variant-numeric|font-variant-position|font-variation-settings|font-weight|gap|glyph-orientation-horizontal|glyph-orientation-vertical|grid|grid-area|grid-auto-columns|grid-auto-flow|grid-auto-rows|grid-column|grid-column-end|grid-column-gap|grid-column-start|grid-gap|grid-row|grid-row-end|grid-row-gap|grid-row-start|grid-template|grid-template-areas|grid-template-columns|grid-template-rows|hanging-punctuation|height|hyphens|image-orientation|image-rendering|image-resolution|ime-mode|initial-letter|initial-letter-align|inline-size|inset|inset-block|inset-block-end|inset-block-start|inset-inline|inset-inline-end|inset-inline-start|isolation|justify-content|justify-items|justify-self|kerning|left|letter-spacing|lighting-color|line-break|line-clamp|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-block|margin-block-end|margin-block-start|margin-bottom|margin-inline|margin-inline-end|margin-inline-start|margin-left|margin-right|margin-top|marker-end|marker-mid|marker-start|marks|mask|mask-border|mask-border-mode|mask-border-outset|mask-border-repeat|mask-border-slice|mask-border-source|mask-border-width|mask-clip|mask-composite|mask-image|mask-mode|mask-origin|mask-position|mask-repeat|mask-size|mask-type|max-block-size|max-height|max-inline-size|max-lines|max-width|max-zoom|min-block-size|min-height|min-inline-size|min-width|min-zoom|mix-blend-mode|negative|object-fit|object-position|offset|offset-anchor|offset-distance|offset-path|offset-position|offset-rotation|opacity|order|orientation|orphans|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-anchor|overflow-block|overflow-inline|overflow-wrap|overflow-[xy]|overscroll-behavior|overscroll-behavior-block|overscroll-behavior-inline|overscroll-behavior-[xy]|pad|padding|padding-block|padding-block-end|padding-block-start|padding-bottom|padding-inline|padding-inline-end|padding-inline-start|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|paint-order|perspective|perspective-origin|place-content|place-items|place-self|pointer-events|position|prefix|quotes|range|resize|right|rotate|row-gap|ruby-align|ruby-merge|ruby-position|scale|scroll-behavior|scroll-margin|scroll-margin-block|scroll-margin-block-end|scroll-margin-block-start|scroll-margin-bottom|scroll-margin-inline|scroll-margin-inline-end|scroll-margin-inline-start|scroll-margin-left|scroll-margin-right|scroll-margin-top|scroll-padding|scroll-padding-block|scroll-padding-block-end|scroll-padding-block-start|scroll-padding-bottom|scroll-padding-inline|scroll-padding-inline-end|scroll-padding-inline-start|scroll-padding-left|scroll-padding-right|scroll-padding-top|scroll-snap-align|scroll-snap-coordinate|scroll-snap-destination|scroll-snap-stop|scroll-snap-type|scrollbar-color|scrollbar-gutter|scrollbar-width|shape-image-threshold|shape-margin|shape-outside|shape-rendering|size|speak-as|src|stop-color|stop-opacity|stroke|stroke-dasharray|stroke-dashoffset|stroke-linecap|stroke-linejoin|stroke-miterlimit|stroke-opacity|stroke-width|suffix|symbols|system|tab-size|table-layout|text-align|text-align-last|text-anchor|text-combine-upright|text-decoration|text-decoration-color|text-decoration-line|text-decoration-skip|text-decoration-skip-ink|text-decoration-style|text-decoration-thickness|text-emphasis|text-emphasis-color|text-emphasis-position|text-emphasis-style|text-indent|text-justify|text-orientation|text-overflow|text-rendering|text-shadow|text-size-adjust|text-transform|text-underline-offset|text-underline-position|top|touch-action|transform|transform-box|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|translate|unicode-bidi|unicode-range|user-select|user-zoom|vertical-align|visibility|white-space|widows|width|will-change|word-break|word-spacing|word-wrap|writing-mode|z-index|zoom|alignment-baseline|baseline-shift|clip-rule|color-interpolation|color-interpolation-filters|color-profile|color-rendering|cx|cy|dominant-baseline|enable-background|fill|fill-opacity|fill-rule|flood-color|flood-opacity|glyph-orientation-horizontal|glyph-orientation-vertical|height|kerning|lighting-color|marker-end|marker-mid|marker-start|rx??|ry|shape-rendering|stop-color|stop-opacity|stroke|stroke-dasharray|stroke-dashoffset|stroke-linecap|stroke-linejoin|stroke-miterlimit|stroke-opacity|stroke-width|text-anchor|width|[xy]|adjust|after|align|align-last|alignment|alignment-adjust|appearance|attachment|azimuth|background-break|balance|baseline|before|bidi|binding|bookmark|bookmark-label|bookmark-level|bookmark-target|border-length|bottom-color|bottom-left-radius|bottom-right-radius|bottom-style|bottom-width|box|box-align|box-direction|box-flex|box-flex-group|box-lines|box-ordinal-group|box-orient|box-pack|break|character|collapse|column|column-break-after|column-break-before|count|counter|crop|cue|cue-after|cue-before|decoration|decoration-break|delay|display-model|display-role|down|drop|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|duration|elevation|emphasis|family|fit|fit-position|flex-group|float-offset|gap|grid-columns|grid-rows|hanging-punctuation|header|hyphenate|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|icon|image|increment|indent|index|initial-after-adjust|initial-after-align|initial-before-adjust|initial-before-align|initial-size|initial-value|inline-box-align|iteration-count|justify|label|left-color|left-style|left-width|length|level|line|line-stacking|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|lines|list|mark|mark-after|mark-before|marks|marquee|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max|min|model|move-to|name|nav|nav-down|nav-index|nav-left|nav-right|nav-up|new|numeral|offset|ordinal-group|orient|origin|overflow-style|overhang|pack|page|page-policy|pause|pause-after|pause-before|phonemes|pitch|pitch-range|play-count|play-during|play-state|point|presentation|presentation-level|profile|property|punctuation|punctuation-trim|radius|rate|rendering-intent|repeat|replace|reset|resolution|resource|respond-to|rest|rest-after|rest-before|richness|right-color|right-style|right-width|role|rotation|rotation-point|rows|ruby|ruby-overhang|ruby-span|rule|rule-color|rule-style|rule-width|shadow|size|size-adjust|sizing|space|space-collapse|spacing|span|speak|speak-header|speak-numeral|speak-punctuation|speech|speech-rate|speed|stacking|stacking-ruby|stacking-shift|stacking-strategy|stress|stretch|string-set|style|style-image|style-position|style-type|target|target-name|target-new|target-position|text|text-height|text-justify|text-outline|text-replace|text-wrap|timing-function|top-color|top-left-radius|top-right-radius|top-style|top-width|trim|unicode|up|user-select|variant|voice|voice-balance|voice-duration|voice-family|voice-pitch|voice-pitch-range|voice-rate|voice-stress|voice-volume|volume|weight|white|white-space-collapse|word|wrap)(?![-\\\\w])","name":"support.type.property-name.css"},{"match":"(?<![-\\\\w])(?i:-(?:ah|apple|atsc|epub|hp|khtml|moz|ms|o|rim|ro|tc|wap|webkit|xv)|(?:mso|prince))-[-A-Za-z]+","name":"support.type.vendored.property-name.css"}]},"property-values":{"patterns":[{"include":"#commas"},{"include":"#comment-block"},{"include":"#escapes"},{"include":"#functions"},{"include":"#property-keywords"},{"include":"#unicode-range"},{"include":"#numeric-values"},{"include":"#color-keywords"},{"include":"#string"},{"match":"!\\\\s*important(?![-\\\\w])","name":"keyword.other.important.css"}]},"pseudo-classes":{"captures":{"1":{"name":"punctuation.definition.entity.css"},"2":{"name":"invalid.illegal.colon.css"}},"match":"(?i)(:)(:*)(?:active|any-link|checked|default|disabled|empty|enabled|first|(?:first|last|only)-(?:child|of-type)|focus|focus-visible|focus-within|fullscreen|host|hover|in-range|indeterminate|invalid|left|link|optional|out-of-range|read-only|read-write|required|right|root|scope|target|unresolved|valid|visited)(?![-\\\\w]|\\\\s*[;}])","name":"entity.other.attribute-name.pseudo-class.css"},"pseudo-elements":{"captures":{"1":{"name":"punctuation.definition.entity.css"},"2":{"name":"punctuation.definition.entity.css"}},"match":"(?i)(?:(::?)(?:after|before|first-letter|first-line|(?:-(?:ah|apple|atsc|epub|hp|khtml|moz|ms|o|rim|ro|tc|wap|webkit|xv)|(?:mso|prince))-[-a-z]+)|(::)(?:backdrop|content|grammar-error|marker|placeholder|selection|shadow|spelling-error))(?![-\\\\w]|\\\\s*[;}])","name":"entity.other.attribute-name.pseudo-element.css"},"rule-list":{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.section.property-list.begin.bracket.curly.css"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.property-list.end.bracket.curly.css"}},"name":"meta.property-list.css","patterns":[{"include":"#rule-list-innards"}]},"rule-list-innards":{"patterns":[{"include":"#comment-block"},{"include":"#escapes"},{"include":"#font-features"},{"match":"(?<![-\\\\w])--[-A-Z_a-z[^\\\\x00-\\\\x7F]](?:[-0-9A-Z_a-z[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{1,6}|.))*","name":"variable.css"},{"begin":"(?<![-A-Za-z])(?=[-A-Za-z])","end":"$|(?![-A-Za-z])","name":"meta.property-name.css","patterns":[{"include":"#property-names"}]},{"begin":"(:)\\\\s*","beginCaptures":{"1":{"name":"punctuation.separator.key-value.css"}},"contentName":"meta.property-value.css","end":"\\\\s*(;)|\\\\s*(?=[)}])","endCaptures":{"1":{"name":"punctuation.terminator.rule.css"}},"patterns":[{"include":"#comment-block"},{"include":"#property-values"}]},{"match":";","name":"punctuation.terminator.rule.css"}]},"selector":{"begin":"(?=\\\\|?(?:[-#*.:A-\\\\[_a-z[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{1,6}|.)))","end":"(?=\\\\s*[)/@{])","name":"meta.selector.css","patterns":[{"include":"#selector-innards"}]},"selector-innards":{"patterns":[{"include":"#comment-block"},{"include":"#commas"},{"include":"#escapes"},{"include":"#combinators"},{"captures":{"1":{"name":"entity.other.namespace-prefix.css"},"2":{"name":"punctuation.separator.css"}},"match":"(?:^|(?<=[(,;}\\\\s]))(?![-*\\\\w]+\\\\|(?![-#*.:A-\\\\[_a-z[^\\\\x00-\\\\x7F]]))([-A-Z_a-z[^\\\\x00-\\\\x7F]](?:[-0-9A-Z_a-z[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{1,6}|.))*|\\\\*)?(\\\\|)"},{"include":"#tag-names"},{"match":"\\\\*","name":"entity.name.tag.wildcard.css"},{"captures":{"1":{"name":"punctuation.definition.entity.css"},"2":{"patterns":[{"include":"#escapes"}]}},"match":"(?<![-@\\\\w])([#.])((?:-?[0-9]|-(?=$|[#)+,.:>\\\\[{|~\\\\s]|/\\\\*)|(?:[-0-9A-Z_a-z[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{1,6}|.))*(?:[]!\\"%-(*;<?@^`|}]|/(?!\\\\*))+)(?:[-0-9A-Z_a-z[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{1,6}|.))*)","name":"invalid.illegal.bad-identifier.css"},{"captures":{"1":{"name":"punctuation.definition.entity.css"},"2":{"patterns":[{"include":"#escapes"}]}},"match":"(\\\\.)((?:[-0-9A-Z_a-z[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{1,6}|.))+)(?=$|[#)+,.:>\\\\[{|~\\\\s]|/\\\\*)","name":"entity.other.attribute-name.class.css"},{"captures":{"1":{"name":"punctuation.definition.entity.css"},"2":{"patterns":[{"include":"#escapes"}]}},"match":"(#)(-?(?![0-9])(?:[-0-9A-Z_a-z[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{1,6}|.))+)(?=$|[#)+,.:>\\\\[{|~\\\\s]|/\\\\*)","name":"entity.other.attribute-name.id.css"},{"begin":"\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.entity.begin.bracket.square.css"}},"end":"]","endCaptures":{"0":{"name":"punctuation.definition.entity.end.bracket.square.css"}},"name":"meta.attribute-selector.css","patterns":[{"include":"#comment-block"},{"include":"#string"},{"captures":{"1":{"name":"storage.modifier.ignore-case.css"}},"match":"(?<=[\\"\'\\\\s]|^|\\\\*/)\\\\s*([Ii])\\\\s*(?=[]\\\\s]|/\\\\*|$)"},{"captures":{"1":{"name":"string.unquoted.attribute-value.css","patterns":[{"include":"#escapes"}]}},"match":"(?<==)\\\\s*((?!/\\\\*)(?:[^]\\"\'\\\\\\\\\\\\s]|\\\\\\\\.)+)"},{"include":"#escapes"},{"match":"[$*^|~]?=","name":"keyword.operator.pattern.css"},{"match":"\\\\|","name":"punctuation.separator.css"},{"captures":{"1":{"name":"entity.other.namespace-prefix.css","patterns":[{"include":"#escapes"}]}},"match":"(-?(?!\\\\d)(?:[-\\\\w[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{1,6}|.))+|\\\\*)(?=\\\\|(?![=\\\\s]|$|])(?:-?(?!\\\\d)|[-\\\\\\\\\\\\w[^\\\\x00-\\\\x7F]]))"},{"captures":{"1":{"name":"entity.other.attribute-name.css","patterns":[{"include":"#escapes"}]}},"match":"(-?(?!\\\\d)(?>[-\\\\w[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{1,6}|.))+)\\\\s*(?=[]$*=^|~]|/\\\\*)"}]},{"include":"#pseudo-classes"},{"include":"#pseudo-elements"},{"include":"#functional-pseudo-classes"},{"match":"(?<![-@\\\\w])(?=[a-z]\\\\w*-)(?:(?![A-Z])[-\\\\w])+(?![-(\\\\w])","name":"entity.name.tag.custom.css"}]},"string":{"patterns":[{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.css"}},"end":"\\"|(?<!\\\\\\\\)(?=$|\\\\n)","endCaptures":{"0":{"name":"punctuation.definition.string.end.css"}},"name":"string.quoted.double.css","patterns":[{"begin":"(?:\\\\G|^)(?=(?:[^\\"\\\\\\\\]|\\\\\\\\.)+$)","end":"$","name":"invalid.illegal.unclosed.string.css","patterns":[{"include":"#escapes"}]},{"include":"#escapes"}]},{"begin":"\'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.css"}},"end":"\'|(?<!\\\\\\\\)(?=$|\\\\n)","endCaptures":{"0":{"name":"punctuation.definition.string.end.css"}},"name":"string.quoted.single.css","patterns":[{"begin":"(?:\\\\G|^)(?=(?:[^\'\\\\\\\\]|\\\\\\\\.)+$)","end":"$","name":"invalid.illegal.unclosed.string.css","patterns":[{"include":"#escapes"}]},{"include":"#escapes"}]}]},"tag-names":{"match":"(?i)(?<![-:\\\\w])(?:a|abbr|acronym|address|applet|area|article|aside|audio|b|base|basefont|bdi|bdo|bgsound|big|blink|blockquote|body|br|button|canvas|caption|center|cite|code|col|colgroup|command|content|data|datalist|dd|del|details|dfn|dialog|dir|div|dl|dt|element|em|embed|fieldset|figcaption|figure|font|footer|form|frame|frameset|h[1-6]|head|header|hgroup|hr|html|i|iframe|image|img|input|ins|isindex|kbd|keygen|label|legend|li|link|listing|main|map|mark|marquee|math|menu|menuitem|meta|meter|multicol|nav|nextid|nobr|noembed|noframes|noscript|object|ol|optgroup|option|output|p|param|picture|plaintext|pre|progress|q|rb|rp|rtc??|ruby|s|samp|script|section|select|shadow|slot|small|source|spacer|span|strike|strong|style|sub|summary|sup|table|tbody|td|template|textarea|tfoot|th|thead|time|title|tr|track|tt|ul??|var|video|wbr|xmp|altGlyph|altGlyphDef|altGlyphItem|animate|animateColor|animateMotion|animateTransform|circle|clipPath|color-profile|cursor|defs|desc|discard|ellipse|feBlend|feColorMatrix|feComponentTransfer|feComposite|feConvolveMatrix|feDiffuseLighting|feDisplacementMap|feDistantLight|feDropShadow|feFlood|feFuncA|feFuncB|feFuncG|feFuncR|feGaussianBlur|feImage|feMerge|feMergeNode|feMorphology|feOffset|fePointLight|feSpecularLighting|feSpotLight|feTile|feTurbulence|filter|font-face|font-face-format|font-face-name|font-face-src|font-face-uri|foreignObject|g|glyph|glyphRef|hatch|hatchpath|hkern|line|linearGradient|marker|mask|mesh|meshgradient|meshpatch|meshrow|metadata|missing-glyph|mpath|path|pattern|polygon|polyline|radialGradient|rect|set|solidcolor|stop|svg|switch|symbol|text|textPath|tref|tspan|use|view|vkern|annotation|annotation-xml|maction|maligngroup|malignmark|math|menclose|merror|mfenced|mfrac|mglyph|mi|mlabeledtr|mlongdiv|mmultiscripts|mn|mo|mover|mpadded|mphantom|mroot|mrow|ms|mscarries|mscarry|msgroup|msline|mspace|msqrt|msrow|mstack|mstyle|msub|msubsup|msup|mtable|mtd|mtext|mtr|munder|munderover|semantics)(?=[#)+,.:>\\\\[{|~\\\\s]|/\\\\*|$)","name":"entity.name.tag.css"},"unicode-range":{"captures":{"0":{"name":"constant.other.unicode-range.css"},"1":{"name":"punctuation.separator.dash.unicode-range.css"}},"match":"(?<![-\\\\w])[Uu]\\\\+[?\\\\h]{1,6}(?:(-)\\\\h{1,6})?(?![-\\\\w])"},"url":{"begin":"(?i)(?<![-@\\\\w])(url)(\\\\()","beginCaptures":{"1":{"name":"support.function.url.css"},"2":{"name":"punctuation.section.function.begin.bracket.round.css"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.function.end.bracket.round.css"}},"name":"meta.function.url.css","patterns":[{"match":"[^\\"\')\\\\s]+","name":"variable.parameter.url.css"},{"include":"#string"},{"include":"#comment-block"},{"include":"#escapes"}]}},"scopeName":"source.css"}'))]}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.rspackChunkompchamber=self.rspackChunkompchamber||[]).push([["na"],{P0(e,t,i){function n(e,t){e.accDescr&&t.setAccDescription?.(e.accDescr),e.accTitle&&t.setAccTitle?.(e.accTitle),e.title&&t.setDiagramTitle?.(e.title)}(0,i("Gt").K)(n,"populateCommonDb"),i.d(t,{S:()=>n})},Jz(e,t,i){var n=i("P0"),a=i("NH"),r=i("Yr"),o=i("M4"),l=i("Gt"),d=i("Xe"),s=i("El"),m="position frame",c="frame positioned",x="position relation",u="relation positioned",f=(0,l.K)(function(e){o.R.debug("options str",e)},"setOptions"),g=(0,l.K)(function(){return{}},"getOptions"),h=(0,l.K)(function(){b(),(0,r.IU)()},"clear");function b(){v={}}(0,l.K)(b,"reset");var p=r.UI.eventmodeling,w=(0,l.K)(()=>(0,a.$t)({...p,...(0,r.zj)().eventmodeling}),"getConfig"),v={};function y(){let e=K,{ast:t}=v,i=M();if(!t)throw Error("No data for EventModel");return t.frames.forEach((n,a)=>{let r=A(n,t.dataEntities,i);e=Y(e,{$kind:m,index:a,frame:n,textProps:r}),O(n)?(o.R.debug("source frame",n.sourceFrames),t.frames.filter(e=>n.sourceFrames.some(t=>t.$refText===e.name)).forEach(t=>{e=Y(e,{$kind:x,index:a,frame:n,sourceFrame:t})})):e=Y(e,{$kind:x,index:a,frame:n})}),e={...e,sortedSwimlanesArray:D(e.swimlanes)}}function P(e){v.ast=e}(0,l.K)(y,"getState"),(0,l.K)(P,"setAst");var k={swimlaneMinHeight:70,swimlanePadding:15,swimlaneGap:10,boxPadding:10,boxOverlap:90,boxDefaultY:0,boxMinWidth:80,boxMaxWidth:450,boxMinHeight:80,boxMaxHeight:750,contentStartX:250,textMaxWidth:430,boxTextFontWeight:"bold",boxTextPadding:10,swimlaneTextFontWeight:"bold",labelUiAutomation:"UI/Automation",labelUiAutomationPrefix:"UI/A: ",labelCommandReadModel:"Command/Read Model",labelCommandReadModelPrefix:"C/RM: ",labelEvents:"Events",labelEventsPrefix:"Stream: "};function M(){return k}(0,l.K)(M,"getDiagramProps");var K={boxes:[],swimlanes:{},relations:[],maxR:0,sortedSwimlanesArray:[]};function S(e){let t=e.split(".");if(2===t.length)return t[0]}function B(e){let t=e.split(".");return 2===t.length?t[1]:e}function F(e,t){if(t&&0!==t.length)return Object.values(e).find(e=>e.namespace===t)}function R(e,t,i){return Math.max(t,...Object.keys(e).filter(e=>{let n=Number.parseInt(e);return n>t&&n<i}).map(e=>Number.parseInt(e)))+1}function $(e,t){let i=S(e.entityIdentifier),n=F(t,i);switch(e.modelEntityType){case"ui":case"pcr":case"processor":if(n)return{index:n.index,label:n.namespace||k.labelUiAutomation};if(i)return{index:R(t,0,100),label:k.labelUiAutomationPrefix+i};return{index:0,label:k.labelUiAutomation};case"rmo":case"readmodel":case"cmd":case"command":if(n)return{index:n.index,label:n.namespace||k.labelCommandReadModel};if(i)return{index:R(t,100,200),label:k.labelCommandReadModelPrefix+i};return{index:100,label:k.labelCommandReadModel};default:if(n)return{index:n.index,label:n.namespace||k.labelEvents};if(i)return{index:R(t,200,300),label:k.labelEventsPrefix+i};return{index:200,label:k.labelEvents}}}function E(e){let{themeVariables:t}=(0,r.zj)();switch(e.modelEntityType){case"ui":return{fill:t.emUiFill??"white",stroke:t.emUiStroke??"#dbdada"};case"pcr":case"processor":return{fill:t.emProcessorFill??"#edb3f6",stroke:t.emProcessorStroke??"#b88cbf"};case"rmo":case"readmodel":return{fill:t.emReadModelFill??"#d3f1a2",stroke:t.emReadModelStroke??"#a3b732"};case"cmd":case"command":return{fill:t.emCommandFill??"#bcd6fe",stroke:t.emCommandStroke??"#679ac3"};case"evt":case"event":return{fill:t.emEventFill??"#ffb778",stroke:t.emEventStroke??"#c19a0f"};default:return{fill:"red",stroke:"black"}}}function A(e,t,i){let n,l=(0,r.zj)(),d=(0,r.jZ)(B(e.entityIdentifier)??"",l),s={fontSize:16,fontWeight:700,fontFamily:'"trebuchet ms", verdana, arial, sans-serif',joinWith:"<br/>"},m=(0,a.bH)(d,i.textMaxWidth,s),c=`<b>${m}</b>`;if(e.dataInlineValue&&(n=(n=(n=e.dataInlineValue).substring(n.indexOf("{")+1)).substring(0,n.lastIndexOf("}")-1),n=(0,r.jZ)(n,l),n=(n=(0,a.bH)(n,i.textMaxWidth,s)).replaceAll(" ","&nbsp;")),e.dataReference){let o=t.find(t=>t.name===e.dataReference?.$refText);o&&(n=(n=(n=o.dataBlockValue).substring(n.indexOf("{\n")+2)).substring(0,n.lastIndexOf("}")-1),n=(0,r.jZ)(n,l),n=(n=(0,a.bH)(n,i.textMaxWidth,s)).replaceAll(" ","&nbsp;")+"<br/>")}let x=void 0!==n;x&&(c+=`<br/><br/><code style="text-align: left; display: block;max-width:${i.textMaxWidth}px">${n}</code>`);let u={fontSize:s.fontSize,fontWeight:s.fontWeight,fontFamily:s.fontFamily},f=(0,a.PX)(c,u),g={content:c,width:x?f.width/3:f.width,height:f.height};return o.R.debug(`[${e.name}] ${e.entityIdentifier} text`,g),g}function T(e,t){let i=E(t.frame),n={width:t.textProps.width+2*k.boxTextPadding,height:t.textProps.height+2*k.boxTextPadding};return[{$kind:c,frame:t.frame,index:t.index,visual:i,dimension:n,textProps:t.textProps}]}function H(e,t,i){return void 0===t?k.contentStartX:t.index===e.index&&e.r?e.r+k.boxPadding:void 0===i?k.contentStartX:i.r-k.boxOverlap+k.boxPadding}function W(e,t){return Math.max(...e.map(e=>e.r),t)}function D(e){return Object.values(e).sort((e,t)=>e.index-t.index)}function I(e,t){let i,n=$(t.frame,e.swimlanes);i=n.index in e.swimlanes?e.swimlanes[n.index]:{index:n.index,label:n.label,r:0,y:n.index*k.swimlaneMinHeight+k.swimlaneGap,height:k.swimlaneMinHeight,maxHeight:k.swimlaneMinHeight};let a=e.boxes.length>0?e.boxes[e.boxes.length-1]:void 0,r=void 0!==e.previousSwimlaneNumber?e.swimlanes[e.previousSwimlaneNumber]:void 0,o={width:Math.max(k.boxMinWidth,Math.min(k.boxMaxWidth,t.dimension.width))+2*k.boxPadding,height:Math.max(k.boxMinHeight,Math.min(k.boxMaxHeight,t.dimension.height))+2*k.boxPadding},l=H(i,r,a),d=l+o.width+k.boxPadding,s=W(Object.values(e.swimlanes),d);i.r=l+o.width,i.maxHeight=Math.max(i.maxHeight,o.height),i.height=Math.max(k.swimlaneMinHeight,i.maxHeight)+2*k.swimlanePadding;let m={x:l,y:k.swimlanePadding+i.y,r:d,dimension:o,leftSibling:!1,swimlane:i,visual:t.visual,text:t.textProps.content,frame:t.frame,index:t.index},c={...e,boxes:[...e.boxes,m],swimlanes:{...e.swimlanes,[`${i.index}`]:i},previousSwimlaneNumber:n.index,previousFrame:t.frame,maxR:s},x=D(c.swimlanes);x.length>0&&(x[0].y=0);for(let e=1;e<x.length;e++){let t=x[e],i=x[e-1];t.y=i.y+i.height+k.swimlaneGap}return c}function C(e,t){return 0===e&&0===t.sourceFrames.length}function O(e){return void 0!==e.sourceFrames&&null!==e.sourceFrames&&e.sourceFrames.length>0}function j(e,t){if(null!=t)return e.find(e=>e.frame.name===t.name)}function N(e,t,i){if(!(i<0))for(let n=i;n>=0;n--){let i=e[n];if(i.swimlane.index!==t)return i}}function U(e,t){let i;if((0,d.F5)(t.frame)||C(t.index,t.frame))return[];let n=j(e.boxes,t.frame);if(void 0===n)throw Error(`Target box not found for frame ${t.frame.name}`);return void 0===(i=t.sourceFrame?j(e.boxes,t.sourceFrame):N(e.boxes,n.swimlane.index,t.index-1))?[]:[{$kind:u,frame:t.frame,index:t.index,sourceBox:i,targetBox:n}]}function z(e,t){let i={visual:{fill:"none",stroke:"#000"},source:{x:t.sourceBox.x,y:t.sourceBox.y},target:{x:t.targetBox.x,y:t.targetBox.y},sourceBox:t.sourceBox,targetBox:t.targetBox};return{...e,relations:[...e.relations,i]}}(0,l.K)(S,"extractNamespace"),(0,l.K)(B,"extractName"),(0,l.K)(F,"findSwimlaneByNamespace"),(0,l.K)(R,"findNextAvailableIndex"),(0,l.K)($,"calculateSwimlaneProps"),(0,l.K)(E,"calculateEntityVisualProps"),(0,l.K)(A,"calculateTextProps"),(0,l.K)(T,"decidePositionFrame"),(0,l.K)(H,"calculateX"),(0,l.K)(W,"calculateMaxRight"),(0,l.K)(D,"sortedSwimlanesArray"),(0,l.K)(I,"evolveFramePositioned"),(0,l.K)(C,"isFirstFrame"),(0,l.K)(O,"hasSourceFrame"),(0,l.K)(j,"findBoxByFrame"),(0,l.K)(N,"findBoxByLineIndex"),(0,l.K)(U,"decidePositionRelation"),(0,l.K)(z,"evolveRelationPositioned");var X={[m]:T,[x]:U},G={[c]:I,[u]:z};function V(e,t){let i=X[t.$kind];if(null==i)return[];let n=i(e,t);return o.R.debug("decided events",n),n}function L(e,t){let i=t.reduce((e,t)=>{let i=G[t.$kind];return null==i?e:i(e,t)},e);return o.R.debug("evolve events",{state:e,newState:i,events:t}),i}function Y(e,t){let i=V(e,t);return L(e,i)}(0,l.K)(V,"decide"),(0,l.K)(L,"evolve"),(0,l.K)(Y,"dispatch");var Z={getConfig:w,setOptions:f,getOptions:g,clear:h,setAccTitle:r.SV,getAccTitle:r.iN,getAccDescription:r.m7,setAccDescription:r.EI,setDiagramTitle:r.ke,getDiagramTitle:r.ab,setAst:P,getDiagramProps:M,getState:y},q={parse:(0,l.K)(async e=>{let t=await (0,d.qg)("eventmodeling",e);o.R.debug(t),Z.setAst(t),(0,n.S)(t,Z)},"parse")},J=(0,r.D7)(),Q=J?.eventmodeling;function _(e,t){return i=>{let n=i.swimlane.y+t.swimlanePadding,a=e.append("g").attr("class","em-box");a.append("rect").attr("x",i.x).attr("y",n).attr("rx","3").attr("width",i.dimension.width).attr("height",i.dimension.height).attr("stroke",i.visual.stroke).attr("fill",i.visual.fill),a.append("foreignObject").attr("x",i.x+t.boxPadding).attr("y",n+10).attr("width",i.dimension.width-2*t.boxPadding).attr("height",i.dimension.height-2*t.boxPadding).append("xhtml:div").style("display","table").style("height","100%").style("width","100%").append("span").style("display","table-cell").style("text-align","center").style("vertical-align","middle").html(i.text)}}function ee(e,t){return e>t}function et(e,t,i,n){return a=>{let r,l,d=a.sourceBox.swimlane.y+t.swimlanePadding,s=a.targetBox.swimlane.y+t.swimlanePadding,m=ee(d,s),c=a.sourceBox.x+2*a.sourceBox.dimension.width/3,x=a.targetBox.x+a.targetBox.dimension.width/3;o.R.debug(`rendering relation up=${m} for `,{sourceBox:a.sourceBox,targetBox:a.targetBox}),m?(r=d,l=s+a.targetBox.dimension.height):(r=d+a.sourceBox.dimension.height,l=s);let u=n.emRelationStroke??a.visual.stroke;e.append("path").attr("class","em-relation").attr("fill",a.visual.fill).attr("stroke",u).attr("stroke-width","1").attr("marker-end",`url(#${i})`).attr("d",`M${c} ${r} L${x} ${l}`)}}function ei(e,t,i,n){return a=>{let r=e.append("g").attr("class","em-swimlane"),o=n.emSwimlaneBackgroundOdd??"rgb(250,250,250)",l=n.emSwimlaneBackgroundStroke??"rgb(240,240,240)";r.append("rect").attr("x",0).attr("y",a.y).attr("rx","3").attr("width",t+i.swimlanePadding).attr("height",a.height).attr("fill",o).attr("stroke",l),r.append("text").attr("font-weight",i.swimlaneTextFontWeight).attr("x",30).attr("y",a.y+30).text(a.label)}}(0,l.K)(_,"renderD3Box"),(0,l.K)(ee,"dirUpwards"),(0,l.K)(et,"renderD3Relation"),(0,l.K)(ei,"renderD3Swimlane");var en={parser:q,db:Z,renderer:{draw:(0,l.K)(function(e,t,i,n){if(o.R.debug("in eventmodeling renderer",e+"\n","id:",t,i),!Q)throw Error("EventModeling config not found");let a=n.db,{themeVariables:l,eventmodeling:d}=(0,r.D7)(),m=(0,s.Ltv)(`[id="${t}"]`),c=a.getDiagramProps(),x=a.getState(),u=`em-arrowhead-${t}`,f=l.emArrowhead??"#000000";x.sortedSwimlanesArray.forEach(ei(m,x.maxR,c,l)),x.boxes.forEach(_(m,c)),x.relations.forEach(et(m,c,u,l)),m.append("defs").append("marker").attr("id",u).attr("markerWidth","10").attr("markerHeight","7").attr("refX","10").attr("refY","3.5").attr("orient","auto").append("polygon").attr("points","0 0, 10 3.5, 0 7").attr("fill",f),(0,r.mj)(void 0,m,d?.padding??30,d?.useMaxWidth)},"draw")},styles:(0,l.K)(e=>"","getStyles")};i.d(t,{diagram:()=>en})}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.rspackChunkompchamber=self.rspackChunkompchamber||[]).push([["nk"],{d7(e,r,t){var a=t("I6l"),n=t("P0");t("MM"),t("Yr");var s=t("M4"),l=t("Gt"),p=t("Xe"),i=(0,p.Pz)().RailroadPeg.parser.LangiumParser,o=(0,l.K)(e=>{let r=e.alternatives.map(u);return 1===r.length?r[0]:{type:"choice",alternatives:r}},"transformOrderedChoice"),u=(0,l.K)(e=>{let r=e.elements.map(m);return 1===r.length?r[0]:{type:"sequence",elements:r}},"transformSequence"),m=(0,l.K)(e=>{let r=c(e.suffix);return e.operator?{type:"special",text:"&"===e.operator?`&${d(r)}`:`!${d(r)}`}:r},"transformPrefix"),d=(0,l.K)(e=>{switch(e.type){case"terminal":return`"${e.value}"`;case"nonterminal":return e.name;case"special":return e.text;default:return"(...)"}},"nodeToLabel"),c=(0,l.K)(e=>{let r=f(e.primary);if(!e.operator)return r;switch(e.operator){case"?":return{type:"optional",element:r};case"*":return{type:"repetition",element:r,min:0,max:1/0};case"+":return{type:"repetition",element:r,min:1,max:1/0};default:throw Error(`Unsupported PEG suffix operator: ${e.operator}`)}},"transformSuffix"),f=(0,l.K)(e=>{switch(e.$type){case"PegLiteral":return{type:"terminal",value:e.value};case"PegIdentifier":return{type:"nonterminal",name:e.name};case"PegGroup":return o(e.element);case"PegAny":return{type:"special",text:e.dot};default:throw Error(`Unsupported PEG primary node: ${e.$type}`)}},"transformPrimary"),P=(0,l.K)(e=>({name:e.name,definition:o(e.definition)}),"transformRule"),y=(0,l.K)(e=>{(0,n.S)(e,a.db),e.title&&a.db.setTitle(e.title),e.rules.map(e=>a.db.addRule(P(e)))},"populateDb"),g={parser:{parse:(0,l.K)(e=>{a.db.clear(),s.R.debug("[PEG Parser] Starting Langium parse");let r=i.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new p.zg(r);let t=r.value;s.R.debug("[PEG Parser] Parsed rules:",t.rules.length),y(t),s.R.debug("[PEG Parser] Parse complete")},"parse"),parser:{yy:a.db}},db:a.db,renderer:a.U,styles:a.$};t.d(r,{diagram:()=>g})}}]);