@dylanpiercey/work 0.0.86 → 0.0.88

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 (247) hide show
  1. package/bin/work.mjs +9 -0
  2. package/dist/{_CExzMbX7.js → _BdPU13C_.js} +16 -2
  3. package/dist/{_D5j6bTJl.js → _CoU5siEE.js} +79 -72
  4. package/dist/{_BDBtGsdY.js → _Cz8F94WW.js} +291 -257
  5. package/dist/_Dj0ybKwE.js +2 -0
  6. package/dist/index.mjs +622 -454
  7. package/dist/public/assets/{_C_GySFna.js → _07qJecSc.js} +1 -1
  8. package/dist/public/assets/_07qJecSc.js.br +0 -0
  9. package/dist/public/assets/{_B_hYt6WL.js → _B04Rz6or.js} +1 -1
  10. package/dist/public/assets/_B04Rz6or.js.br +0 -0
  11. package/dist/public/assets/{_olWgegfx.js → _B07KnwWv.js} +1 -1
  12. package/dist/public/assets/{_CiyoX76R.js → _B1fvNVfH.js} +1 -1
  13. package/dist/public/assets/_B1fvNVfH.js.br +0 -0
  14. package/dist/public/assets/{_4c6ZP_DE2.js → _B8HQGdOD2.js} +1 -1
  15. package/dist/public/assets/_B8HQGdOD2.js.br +0 -0
  16. package/dist/public/assets/{_Drl9WI2Q.js → _B9D_0ZQr.js} +1 -1
  17. package/dist/public/assets/_B9D_0ZQr.js.br +0 -0
  18. package/dist/public/assets/{_CVI5Z1ap.js → _BG6UrECj.js} +1 -1
  19. package/dist/public/assets/_BG6UrECj.js.br +0 -0
  20. package/dist/public/assets/{_DfayPfGn.js → _BJhC5Swa.js} +1 -1
  21. package/dist/public/assets/_BJhC5Swa.js.br +0 -0
  22. package/dist/public/assets/{_B_iQ_vXs.js → _BK1AsBrt.js} +1 -1
  23. package/dist/public/assets/_BK1AsBrt.js.br +0 -0
  24. package/dist/public/assets/{_DOiBi4I0.js → _BNlnm23c.js} +1 -1
  25. package/dist/public/assets/_BNlnm23c.js.br +0 -0
  26. package/dist/public/assets/{_8DabaQc42.js → _BOo2ADNE2.js} +1 -1
  27. package/dist/public/assets/_BOo2ADNE2.js.br +0 -0
  28. package/dist/public/assets/{_CQ8XIG32.js → _BR-j-QRg.js} +1 -1
  29. package/dist/public/assets/_BR-j-QRg.js.br +0 -0
  30. package/dist/public/assets/{_D8NtarGl2.js → _BWg4qN7U2.js} +1 -1
  31. package/dist/public/assets/_BWg4qN7U2.js.br +0 -0
  32. package/dist/public/assets/{_DlKqfl3x.js → _BYwpUM-g.js} +1 -1
  33. package/dist/public/assets/_BYwpUM-g.js.br +0 -0
  34. package/dist/public/assets/{_Byj_kDek2.js → _BcDcSdJH2.js} +1 -1
  35. package/dist/public/assets/_BcDcSdJH2.js.br +0 -0
  36. package/dist/public/assets/{_BrHg1vmp2.js → _BcboNVrv2.js} +1 -1
  37. package/dist/public/assets/_BcboNVrv2.js.br +0 -0
  38. package/dist/public/assets/{_ZPETJBJo2.js → _Bed4-hRw2.js} +1 -1
  39. package/dist/public/assets/_Bed4-hRw2.js.br +0 -0
  40. package/dist/public/assets/{_B38vzMde2.js → _Bev6eZfU2.js} +1 -1
  41. package/dist/public/assets/_Bev6eZfU2.js.br +0 -0
  42. package/dist/public/assets/{_DtvBiqKq.js → _BqGM5Qj0.js} +1 -1
  43. package/dist/public/assets/_BqGM5Qj0.js.br +0 -0
  44. package/dist/public/assets/{_BE6VqQVA.js → _BrwDJWFC.js} +1 -1
  45. package/dist/public/assets/_BrwDJWFC.js.br +0 -0
  46. package/dist/public/assets/{_DymTiS2l2.js → _Bw9AEf9U2.js} +1 -1
  47. package/dist/public/assets/_Bw9AEf9U2.js.br +0 -0
  48. package/dist/public/assets/{_En2Jcy8J.js → _BwbHWVEx.js} +1 -1
  49. package/dist/public/assets/_BwbHWVEx.js.br +0 -0
  50. package/dist/public/assets/{_Q62npO-T.js → _BwuFR15N.js} +1 -1
  51. package/dist/public/assets/_BwuFR15N.js.br +0 -0
  52. package/dist/public/assets/{_CN4RWjdg.js → _C3--a3ig.js} +1 -1
  53. package/dist/public/assets/_C3--a3ig.js.br +0 -0
  54. package/dist/public/assets/{_BRgDp6dq2.js → _C3ByoAdu2.js} +1 -1
  55. package/dist/public/assets/_C3ByoAdu2.js.br +0 -0
  56. package/dist/public/assets/{_BXoOogd_.js → _C7T0iOcK.js} +1 -1
  57. package/dist/public/assets/_C7T0iOcK.js.br +0 -0
  58. package/dist/public/assets/{_BqEupx9T.js → _CKZUxuhA.js} +1 -1
  59. package/dist/public/assets/_CKZUxuhA.js.br +0 -0
  60. package/dist/public/assets/{_CR7jZl_o.js → _CPukMy5X.js} +1 -1
  61. package/dist/public/assets/_CPukMy5X.js.br +0 -0
  62. package/dist/public/assets/{_BcLoolnz2.js → _CRi3sQaK2.js} +1 -1
  63. package/dist/public/assets/_CRi3sQaK2.js.br +0 -0
  64. package/dist/public/assets/{_1MO3zLi0.js → _CWGKayAn.js} +1 -1
  65. package/dist/public/assets/_CWGKayAn.js.br +0 -0
  66. package/dist/public/assets/{_BVR2bnH7.js → _CWMWI6ue.js} +1 -1
  67. package/dist/public/assets/_CWMWI6ue.js.br +0 -0
  68. package/dist/public/assets/{_DboFmLJ5.js → _CZ4weotP.js} +1 -1
  69. package/dist/public/assets/_CZ4weotP.js.br +0 -0
  70. package/dist/public/assets/{_B7tW52ox2.js → _CdOTbzEk2.js} +1 -1
  71. package/dist/public/assets/_CdOTbzEk2.js.br +0 -0
  72. package/dist/public/assets/{_CXbfNROI.js → _CkjdmXvh.js} +1 -1
  73. package/dist/public/assets/_CkjdmXvh.js.br +0 -0
  74. package/dist/public/assets/{_CUy49fiW.js → _Cld64l7w.js} +1 -1
  75. package/dist/public/assets/_Cld64l7w.js.br +0 -0
  76. package/dist/public/assets/{_DHjOV863.js → _CmY7d5sh.js} +1 -1
  77. package/dist/public/assets/_CmY7d5sh.js.br +0 -0
  78. package/dist/public/assets/{_DHQRi0uw2.js → _CpwxuUbM2.js} +1 -1
  79. package/dist/public/assets/_CpwxuUbM2.js.br +0 -0
  80. package/dist/public/assets/{_C669lqE1.js → _Cshjy-tr.js} +1 -1
  81. package/dist/public/assets/_Cshjy-tr.js.br +0 -0
  82. package/dist/public/assets/{_BDKexg9K.js → _Cwzls7ul.js} +1 -1
  83. package/dist/public/assets/{_BDKexg9K.js.br → _Cwzls7ul.js.br} +0 -0
  84. package/dist/public/assets/{_Bl32WbGR.js → _Cx97qUQa.js} +1 -1
  85. package/dist/public/assets/_Cx97qUQa.js.br +0 -0
  86. package/dist/public/assets/{_BjHYQyTW2.js → _CxUl3SEz2.js} +1 -1
  87. package/dist/public/assets/_CxUl3SEz2.js.br +0 -0
  88. package/dist/public/assets/{_BpaSM2Ut.js → _CyD33Xwe.js} +1 -1
  89. package/dist/public/assets/_CyD33Xwe.js.br +0 -0
  90. package/dist/public/assets/{_Cb4BQ87V2.js → _D45Y3kzM2.js} +1 -1
  91. package/dist/public/assets/_D45Y3kzM2.js.br +0 -0
  92. package/dist/public/assets/{_CekDvoOm2.js → _DCmGRWXl2.js} +1 -1
  93. package/dist/public/assets/_DCmGRWXl2.js.br +0 -0
  94. package/dist/public/assets/{_ELEfU1ZJ2.js → _DESBqf832.js} +1 -1
  95. package/dist/public/assets/_DESBqf832.js.br +0 -0
  96. package/dist/public/assets/{_LIg4gQDB2.js → _DHmeJbF12.js} +1 -1
  97. package/dist/public/assets/_DHmeJbF12.js.br +0 -0
  98. package/dist/public/assets/{_B6HRx3mv.js → _DIOpQGuO.js} +1 -1
  99. package/dist/public/assets/_DIOpQGuO.js.br +0 -0
  100. package/dist/public/assets/{_3_osenBu.js → _DO2j2wai.js} +1 -1
  101. package/dist/public/assets/_DO2j2wai.js.br +0 -0
  102. package/dist/public/assets/{_t1bRY80J.js → _DOihbSbE.js} +1 -1
  103. package/dist/public/assets/_DOihbSbE.js.br +0 -0
  104. package/dist/public/assets/{_RRBED5IT.js → _DW5_6QEJ.js} +1 -1
  105. package/dist/public/assets/_DW5_6QEJ.js.br +0 -0
  106. package/dist/public/assets/{_BW-Z7z3K.js → _DY1ZTiKf.js} +20 -20
  107. package/dist/public/assets/_DY1ZTiKf.js.br +0 -0
  108. package/dist/public/assets/{_BneLpkUj.js → _Df4EyoB-.js} +1 -1
  109. package/dist/public/assets/_Df4EyoB-.js.br +0 -0
  110. package/dist/public/assets/{_CXQb7FHW.js → _Dq3Fnsny.js} +1 -1
  111. package/dist/public/assets/_Dq3Fnsny.js.br +0 -0
  112. package/dist/public/assets/{_DRSO79wd.js → _DrOqesVG.js} +1 -1
  113. package/dist/public/assets/_DrOqesVG.js.br +0 -0
  114. package/dist/public/assets/{_DLV-pFpn.js → _Dtt87bkn.js} +1 -1
  115. package/dist/public/assets/_Dtt87bkn.js.br +0 -0
  116. package/dist/public/assets/{_D7MBKQAt.js → _DwGOtsEM.js} +1 -1
  117. package/dist/public/assets/_DwGOtsEM.js.br +0 -0
  118. package/dist/public/assets/{_BmRxh0Eh2.js → _DwK4Diby2.js} +1 -1
  119. package/dist/public/assets/{_CR_N8Jxw2.js → _Dye_WaXg2.js} +1 -1
  120. package/dist/public/assets/_Dye_WaXg2.js.br +0 -0
  121. package/dist/public/assets/{_IuMur5Ym.js → _Dz2BYxkE.js} +1 -1
  122. package/dist/public/assets/_Dz2BYxkE.js.br +0 -0
  123. package/dist/public/assets/{_sRlPXrhp2.js → _EWc7i02-2.js} +1 -1
  124. package/dist/public/assets/_EWc7i02-2.js.br +0 -0
  125. package/dist/public/assets/{_DxQEc7cj2.js → _EoZ_xBXq2.js} +1 -1
  126. package/dist/public/assets/{_BfKlqNx9.js → _Fiqv8D5E.js} +1 -1
  127. package/dist/public/assets/_Fiqv8D5E.js.br +0 -0
  128. package/dist/public/assets/{_BuVTK0nK.js → _GrrScuAr.js} +1 -1
  129. package/dist/public/assets/_GrrScuAr.js.br +0 -0
  130. package/dist/public/assets/{_DbJsbj5D.js → _Hqm5mf9S.js} +1 -1
  131. package/dist/public/assets/_Hqm5mf9S.js.br +0 -0
  132. package/dist/public/assets/{_BdWFr75M2.js → _U8cSRlqn2.js} +1 -1
  133. package/dist/public/assets/_U8cSRlqn2.js.br +0 -0
  134. package/dist/public/assets/{_DIFhW7d2.js → _aJR0pEfl.js} +1 -1
  135. package/dist/public/assets/_aJR0pEfl.js.br +0 -0
  136. package/dist/public/assets/{_oLZchIMS.js → _aWRBkGVy.js} +1 -1
  137. package/dist/public/assets/_aWRBkGVy.js.br +0 -0
  138. package/dist/public/assets/{_BpQROnKB.js → _cCTeyYAY.js} +1 -1
  139. package/dist/public/assets/_cCTeyYAY.js.br +0 -0
  140. package/dist/public/assets/{_c1k15BL72.js → _i31Rddpf2.js} +1 -1
  141. package/dist/public/assets/_i31Rddpf2.js.br +0 -0
  142. package/dist/public/assets/{_BxhMnvoI2.js → _ix4YrGtW2.js} +1 -1
  143. package/dist/public/assets/_ix4YrGtW2.js.br +0 -0
  144. package/dist/public/assets/{_YkjHoUJ2.js → _j4GDdAJs.js} +1 -1
  145. package/dist/public/assets/_j4GDdAJs.js.br +0 -0
  146. package/dist/public/assets/{_gzI_71qk.js → _k2rzFYXw.js} +1 -1
  147. package/dist/public/assets/_k2rzFYXw.js.br +0 -0
  148. package/dist/public/assets/{_HJ4l6yxN.js → _nNPOLNo7.js} +1 -1
  149. package/dist/public/assets/_nNPOLNo7.js.br +0 -0
  150. package/dist/public/assets/{_D31bJ4DY.js → _vfKZvCts.js} +1 -1
  151. package/dist/public/assets/_vfKZvCts.js.br +0 -0
  152. package/dist/public/assets/{_DK0ZyRpN.js → _wu7LU_F-.js} +1 -1
  153. package/dist/public/assets/_wu7LU_F-.js.br +0 -0
  154. package/dist/public/assets/{_TNYXBRTD.js → _x05B0wD3.js} +6 -6
  155. package/dist/public/assets/_x05B0wD3.js.br +0 -0
  156. package/dist/public/assets/app-page-DOL8nhko.css +1 -0
  157. package/dist/public/assets/app-page-DOL8nhko.css.br +0 -0
  158. package/dist/public/assets/diff-view-6DYaXCWP.css +1 -0
  159. package/dist/public/assets/diff-view-6DYaXCWP.css.br +0 -0
  160. package/dist/public/assets/new-hKsQDica.js +1 -0
  161. package/dist/public/assets/settings-hKsQDica.js +1 -0
  162. package/dist/public/assets/w-hKsQDica.js +1 -0
  163. package/dist/public/assets/w._-CyAQSfuD.js +1 -0
  164. package/dist/public/assets/w._-hKsQDica.js +1 -0
  165. package/package.json +1 -1
  166. package/dist/_DkOK1JPO.js +0 -2
  167. package/dist/public/assets/_1MO3zLi0.js.br +0 -0
  168. package/dist/public/assets/_3_osenBu.js.br +0 -0
  169. package/dist/public/assets/_4c6ZP_DE2.js.br +0 -0
  170. package/dist/public/assets/_8DabaQc42.js.br +0 -0
  171. package/dist/public/assets/_B38vzMde2.js.br +0 -0
  172. package/dist/public/assets/_B6HRx3mv.js.br +0 -0
  173. package/dist/public/assets/_B7tW52ox2.js.br +0 -0
  174. package/dist/public/assets/_BE6VqQVA.js.br +0 -0
  175. package/dist/public/assets/_BRgDp6dq2.js.br +0 -0
  176. package/dist/public/assets/_BVR2bnH7.js.br +0 -0
  177. package/dist/public/assets/_BW-Z7z3K.js.br +0 -0
  178. package/dist/public/assets/_BXoOogd_.js.br +0 -0
  179. package/dist/public/assets/_B_hYt6WL.js.br +0 -0
  180. package/dist/public/assets/_B_iQ_vXs.js.br +0 -0
  181. package/dist/public/assets/_BcLoolnz2.js.br +0 -0
  182. package/dist/public/assets/_BdWFr75M2.js.br +0 -0
  183. package/dist/public/assets/_BfKlqNx9.js.br +0 -0
  184. package/dist/public/assets/_BjHYQyTW2.js.br +0 -0
  185. package/dist/public/assets/_Bl32WbGR.js.br +0 -0
  186. package/dist/public/assets/_BneLpkUj.js.br +0 -0
  187. package/dist/public/assets/_BpQROnKB.js.br +0 -0
  188. package/dist/public/assets/_BpaSM2Ut.js.br +0 -0
  189. package/dist/public/assets/_BqEupx9T.js.br +0 -0
  190. package/dist/public/assets/_BrHg1vmp2.js.br +0 -0
  191. package/dist/public/assets/_BuVTK0nK.js.br +0 -0
  192. package/dist/public/assets/_BxhMnvoI2.js.br +0 -0
  193. package/dist/public/assets/_Byj_kDek2.js.br +0 -0
  194. package/dist/public/assets/_C669lqE1.js.br +0 -0
  195. package/dist/public/assets/_CN4RWjdg.js.br +0 -0
  196. package/dist/public/assets/_CQ8XIG32.js.br +0 -0
  197. package/dist/public/assets/_CR7jZl_o.js.br +0 -0
  198. package/dist/public/assets/_CR_N8Jxw2.js.br +0 -0
  199. package/dist/public/assets/_CUy49fiW.js.br +0 -0
  200. package/dist/public/assets/_CVI5Z1ap.js.br +0 -0
  201. package/dist/public/assets/_CXQb7FHW.js.br +0 -0
  202. package/dist/public/assets/_CXbfNROI.js.br +0 -0
  203. package/dist/public/assets/_C_GySFna.js.br +0 -0
  204. package/dist/public/assets/_Cb4BQ87V2.js.br +0 -0
  205. package/dist/public/assets/_CekDvoOm2.js.br +0 -0
  206. package/dist/public/assets/_CiyoX76R.js.br +0 -0
  207. package/dist/public/assets/_D31bJ4DY.js.br +0 -0
  208. package/dist/public/assets/_D7MBKQAt.js.br +0 -0
  209. package/dist/public/assets/_D8NtarGl2.js.br +0 -0
  210. package/dist/public/assets/_DHQRi0uw2.js.br +0 -0
  211. package/dist/public/assets/_DHjOV863.js.br +0 -0
  212. package/dist/public/assets/_DIFhW7d2.js.br +0 -0
  213. package/dist/public/assets/_DK0ZyRpN.js.br +0 -0
  214. package/dist/public/assets/_DLV-pFpn.js.br +0 -0
  215. package/dist/public/assets/_DOiBi4I0.js.br +0 -0
  216. package/dist/public/assets/_DRSO79wd.js.br +0 -0
  217. package/dist/public/assets/_DbJsbj5D.js.br +0 -0
  218. package/dist/public/assets/_DboFmLJ5.js.br +0 -0
  219. package/dist/public/assets/_DfayPfGn.js.br +0 -0
  220. package/dist/public/assets/_DlKqfl3x.js.br +0 -0
  221. package/dist/public/assets/_Drl9WI2Q.js.br +0 -0
  222. package/dist/public/assets/_DtvBiqKq.js.br +0 -0
  223. package/dist/public/assets/_DymTiS2l2.js.br +0 -0
  224. package/dist/public/assets/_ELEfU1ZJ2.js.br +0 -0
  225. package/dist/public/assets/_En2Jcy8J.js.br +0 -0
  226. package/dist/public/assets/_HJ4l6yxN.js.br +0 -0
  227. package/dist/public/assets/_IuMur5Ym.js.br +0 -0
  228. package/dist/public/assets/_LIg4gQDB2.js.br +0 -0
  229. package/dist/public/assets/_Q62npO-T.js.br +0 -0
  230. package/dist/public/assets/_RRBED5IT.js.br +0 -0
  231. package/dist/public/assets/_TNYXBRTD.js.br +0 -0
  232. package/dist/public/assets/_YkjHoUJ2.js.br +0 -0
  233. package/dist/public/assets/_ZPETJBJo2.js.br +0 -0
  234. package/dist/public/assets/_c1k15BL72.js.br +0 -0
  235. package/dist/public/assets/_gzI_71qk.js.br +0 -0
  236. package/dist/public/assets/_oLZchIMS.js.br +0 -0
  237. package/dist/public/assets/_sRlPXrhp2.js.br +0 -0
  238. package/dist/public/assets/_t1bRY80J.js.br +0 -0
  239. package/dist/public/assets/app-page-D2MGNs24.css +0 -1
  240. package/dist/public/assets/app-page-D2MGNs24.css.br +0 -0
  241. package/dist/public/assets/diff-view-UG7NdbBG.css +0 -1
  242. package/dist/public/assets/diff-view-UG7NdbBG.css.br +0 -0
  243. package/dist/public/assets/new-BAusPvMv.js +0 -1
  244. package/dist/public/assets/settings-BAusPvMv.js +0 -1
  245. package/dist/public/assets/w-BAusPvMv.js +0 -1
  246. package/dist/public/assets/w._-BAusPvMv.js +0 -1
  247. package/dist/public/assets/w._-CuEUWcak.js +0 -1
package/bin/work.mjs CHANGED
@@ -473,6 +473,15 @@ function serviceEnv() {
473
473
  if (value) env[key] = value;
474
474
  }
475
475
  if (Object.keys(env).some((k) => /^https?_proxy$/i.test(k))) env.NODE_USE_ENV_PROXY = "1";
476
+ // launchd passes no locale, and under the C locale tmux mangles the \t
477
+ // separators the server splits pane listings on — every session read dead
478
+ // on macOS. The server defends itself (exec.ts utf8Locale), but the
479
+ // service env is what panes and helper processes inherit, so carry the
480
+ // shell's UTF-8 locale through, or pin a bare one.
481
+ const locale = ["LC_ALL", "LC_CTYPE", "LANG"]
482
+ .map((key) => (key in process.env ? process.env[key] : installed[key]))
483
+ .find((value) => /utf-?8/i.test(value || ""));
484
+ env.LC_CTYPE = locale || (process.platform === "darwin" ? "UTF-8" : "C.UTF-8");
476
485
  return env;
477
486
  }
478
487
 
@@ -61,7 +61,21 @@ var tmux = (args, env) => run$1("tmux", [
61
61
  "-L",
62
62
  TMUX_SOCKET,
63
63
  ...args
64
- ], void 0, env);
64
+ ], void 0, utf8Locale(env ?? process.env));
65
+ /** launchd starts the service with no locale at all, and under a non-UTF-8
66
+ * locale tmux replaces characters it deems unprintable in format output —
67
+ * including the \t separators sessionStates and the scraper split on, which
68
+ * came back as `_` and made every session read dead on macOS. Panes get a
69
+ * UTF-8 locale from cleanEnv; our own tmux clients need the same guarantee. */
70
+ function utf8Locale(env) {
71
+ const out = {};
72
+ for (const [key, value] of Object.entries(env)) if (value !== void 0) out[key] = value;
73
+ if (!/utf-?8/i.test(out.LC_ALL || out.LC_CTYPE || out.LANG || "")) {
74
+ delete out.LC_ALL;
75
+ out.LC_CTYPE = process.platform === "darwin" ? "UTF-8" : "C.UTF-8";
76
+ }
77
+ return out;
78
+ }
65
79
  //#endregion
66
80
  //#region src/server/db.ts
67
81
  var db = new DatabaseSync(path.join(config.dataDir, "work.db"));
@@ -6505,7 +6519,7 @@ function publishChange(sessionId) {
6505
6519
  const row = get("SELECT workspace_id FROM sessions WHERE id = ?", sessionId);
6506
6520
  if (row?.workspace_id) {
6507
6521
  const workspaceId = row.workspace_id;
6508
- import("./_DkOK1JPO.js").then((m) => m.notifySessionsChanged(workspaceId));
6522
+ import("./_Dj0ybKwE.js").then((m) => m.notifySessionsChanged(workspaceId));
6509
6523
  return;
6510
6524
  }
6511
6525
  publish("sessions.changed");
@@ -2162,8 +2162,82 @@ var toast_default = _template("A", (input) => {
2162
2162
  });
2163
2163
  _resume_branch($scope0_id);
2164
2164
  });
2165
- var sectionCount = "_bu _I _J";
2166
- var row = "_bF _bx";
2165
+ //#endregion
2166
+ //#region src/client/prefs.ts
2167
+ /** UI preferences, stored server-side (settings table) so every device
2168
+ * sees the same state — nothing user-visible is per-browser. The map is
2169
+ * seeded from SSR (`hydrate`) and refreshed by `sync()`; getters return
2170
+ * defaults only before either runs. Writes update the map immediately and
2171
+ * post fire-and-forget. */
2172
+ var prefs = /* @__PURE__ */ new Map();
2173
+ var written = /* @__PURE__ */ new Set();
2174
+ function get(key) {
2175
+ return prefs.get(key) ?? null;
2176
+ }
2177
+ function set(key, value) {
2178
+ written.add(key);
2179
+ if (value === null) prefs.delete(key);
2180
+ else prefs.set(key, value);
2181
+ post(key, value);
2182
+ }
2183
+ function post(key, value) {
2184
+ return fetch("/api/prefs", {
2185
+ method: "POST",
2186
+ headers: { "content-type": "application/json" },
2187
+ body: JSON.stringify({
2188
+ key,
2189
+ value
2190
+ }),
2191
+ keepalive: true
2192
+ }).catch(() => {});
2193
+ }
2194
+ function sideNavOpen() {
2195
+ return get("side-nav") !== "0";
2196
+ }
2197
+ function workspaceTab(workspaceId) {
2198
+ return get(`tab:${workspaceId}`);
2199
+ }
2200
+ function setWorkspaceTab(workspaceId, sessionId) {
2201
+ set(`tab:${workspaceId}`, sessionId);
2202
+ }
2203
+ function diffTreeOpen() {
2204
+ return get("diff-tree") !== "0";
2205
+ }
2206
+ function diffScope() {
2207
+ const v = get("diff-scope");
2208
+ if (v === "working" || v === "dirty") return v;
2209
+ return get("diff-uncommitted") === "1" ? "working" : "committed";
2210
+ }
2211
+ function setDiffScope(scope) {
2212
+ set("diff-scope", scope);
2213
+ }
2214
+ /** Review file filter, per workspace — survives a reload and follows the
2215
+ * review to another device. */
2216
+ function diffFilter(workspaceId) {
2217
+ return get(`diff-filter:${workspaceId}`) || "";
2218
+ }
2219
+ function diffPos(workspaceId) {
2220
+ const v = get(`diff-pos:${workspaceId}`);
2221
+ if (!v) return null;
2222
+ try {
2223
+ const p = JSON.parse(v);
2224
+ return p && typeof p.key === "string" ? p : null;
2225
+ } catch {
2226
+ return null;
2227
+ }
2228
+ }
2229
+ function setDiffPos(workspaceId, pos) {
2230
+ set(`diff-pos:${workspaceId}`, pos ? JSON.stringify(pos) : null);
2231
+ }
2232
+ function theme() {
2233
+ const v = get("theme");
2234
+ return v === "light" || v === "dark" ? v : "system";
2235
+ }
2236
+ function setTheme(mode) {
2237
+ set("theme", mode === "system" ? null : mode);
2238
+ }
2239
+ var sectionCount = "_bl _I _J";
2240
+ var row = "_bw _bo";
2167
2241
  var iconBtn = "_0 _j";
2168
2242
  //#endregion
2169
2243
  //#region src/tags/icons/icon-refresh.marko
@@ -2259,73 +2333,6 @@ function fuzzy(query, text) {
2259
2333
  return true;
2260
2334
  }
2261
2335
  //#endregion
2262
- //#region src/client/prefs.ts
2263
- /** UI preferences, stored server-side (settings table) so every device
2264
- * sees the same state — nothing user-visible is per-browser. The map is
2265
- * seeded from SSR (`hydrate`) and refreshed by `sync()`; getters return
2266
- * defaults only before either runs. Writes update the map immediately and
2267
- * post fire-and-forget. */
2268
- var prefs = /* @__PURE__ */ new Map();
2269
- var written = /* @__PURE__ */ new Set();
2270
- function get(key) {
2271
- return prefs.get(key) ?? null;
2272
- }
2273
- function set(key, value) {
2274
- written.add(key);
2275
- if (value === null) prefs.delete(key);
2276
- else prefs.set(key, value);
2277
- post(key, value);
2278
- }
2279
- function post(key, value) {
2280
- return fetch("/api/prefs", {
2281
- method: "POST",
2282
- headers: { "content-type": "application/json" },
2283
- body: JSON.stringify({
2284
- key,
2285
- value
2286
- }),
2287
- keepalive: true
2288
- }).catch(() => {});
2289
- }
2290
- function sideNavOpen() {
2291
- return get("side-nav") !== "0";
2292
- }
2293
- function workspaceTab(workspaceId) {
2294
- return get(`tab:${workspaceId}`);
2295
- }
2296
- function setWorkspaceTab(workspaceId, sessionId) {
2297
- set(`tab:${workspaceId}`, sessionId);
2298
- }
2299
- function diffTreeOpen() {
2300
- return get("diff-tree") !== "0";
2301
- }
2302
- function diffScope() {
2303
- const v = get("diff-scope");
2304
- if (v === "working" || v === "dirty") return v;
2305
- return get("diff-uncommitted") === "1" ? "working" : "committed";
2306
- }
2307
- function setDiffScope(scope) {
2308
- set("diff-scope", scope);
2309
- }
2310
- /** Review file filter, per workspace — survives a reload and follows the
2311
- * review to another device. */
2312
- function diffFilter(workspaceId) {
2313
- return get(`diff-filter:${workspaceId}`) || "";
2314
- }
2315
- function diffPos(workspaceId) {
2316
- const v = get(`diff-pos:${workspaceId}`);
2317
- if (!v) return null;
2318
- try {
2319
- const p = JSON.parse(v);
2320
- return p && typeof p.key === "string" ? p : null;
2321
- } catch {
2322
- return null;
2323
- }
2324
- }
2325
- function setDiffPos(workspaceId, pos) {
2326
- set(`diff-pos:${workspaceId}`, pos ? JSON.stringify(pos) : null);
2327
- }
2328
- //#endregion
2329
2336
  //#region src/tags/icons/icon-sidebar.marko
2330
2337
  var icon_sidebar_default = _template("W", (input) => {
2331
2338
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
@@ -2342,7 +2349,7 @@ var icon_sidebar_default = _template("W", (input) => {
2342
2349
  });
2343
2350
  _serialize_if($scope0_reason, 0) && writeScope($scope0_id, { a: _existing_scope($childScope) });
2344
2351
  });
2345
- var findInput = "_fu _l";
2346
- var findIconBtn = "_fx _j";
2352
+ var findInput = "_ff _l";
2353
+ var findIconBtn = "_fi _j";
2347
2354
  //#endregion
2348
- export { _el_read_error as $, iconBtnLg as A, _attr_details_or_dialog_open as B, icon_base_default as C, _to_text as Ct, setPrimaryHost as D, attrTag as Dt, repoWebUrl as E, _var as Et, phase as F, _attr_style as G, _attr_option_value as H, tone as I, _await as J, _attrs as K, $global as L, iconBtnXs as M, inputLg as N, btnLg as O, withPageAssets as Ot, metaTrunc as P, _el as Q, _attr as R, icon_xmark_default as S, _template as St, repoLabel as T, _try as Tt, _attr_or as U, _attr_input_value as V, _attr_select_value as W, _content_resume as X, _content as Y, _dynamic_tag as Z, icon_refresh_default as _, _sep as _t, diffPos as a, _hoist as at, sectionCount as b, _set_serialize_reason as bt, setDiffPos as c, _id as ct, sideNavOpen as d, _resume as dt, _el_resume as et, workspaceTab as f, _resume_branch as ft, icon_back_default as g, _script as gt, icon_search_default as h, _scope_with_id as ht, diffFilter as i, _for_of as it, iconBtnRow as j, btnSm as k, writeScope as kt, setDiffScope as l, _if as lt, rankRepos as m, _scope_reason as mt, findInput as n, _existing_scope as nt, diffScope as o, _hoist_read_error as ot, fuzzy as p, _scope_id as pt, _attrs_partial as q, icon_sidebar_default as r, _flush_head as rt, diffTreeOpen as s, _html as st, findIconBtn as t, _escape as tt, setWorkspaceTab as u, _peek_scope_id as ut, iconBtn as v, _serialize_guard as vt, parseRepoUrl as w, _trailers as wt, toast_default as x, _subscribe as xt, row as y, _serialize_if as yt, _attr_class as z };
2355
+ export { _dynamic_tag as $, btnLg as A, withPageAssets as At, _attr as B, toast_default as C, _subscribe as Ct, repoLabel as D, _try as Dt, parseRepoUrl as E, _trailers as Et, inputLg as F, _attr_or as G, _attr_details_or_dialog_open as H, metaTrunc as I, _attrs as J, _attr_select_value as K, phase as L, iconBtnLg as M, iconBtnRow as N, repoWebUrl as O, _var as Ot, iconBtnXs as P, _content_resume as Q, tone as R, workspaceTab as S, _set_serialize_reason as St, icon_base_default as T, _to_text as Tt, _attr_input_value as U, _attr_class as V, _attr_option_value as W, _await as X, _attrs_partial as Y, _content as Z, setDiffScope as _, _scope_with_id as _t, rankRepos as a, _flush_head as at, sideNavOpen as b, _serialize_guard as bt, icon_refresh_default as c, _hoist_read_error as ct, sectionCount as d, _if as dt, _el as et, diffFilter as f, _peek_scope_id as ft, setDiffPos as g, _scope_reason as gt, diffTreeOpen as h, _scope_id as ht, fuzzy as i, _existing_scope as it, btnSm as j, writeScope as jt, setPrimaryHost as k, attrTag as kt, iconBtn as l, _html as lt, diffScope as m, _resume_branch as mt, findInput as n, _el_resume as nt, icon_search_default as o, _for_of as ot, diffPos as p, _resume as pt, _attr_style as q, icon_sidebar_default as r, _escape as rt, icon_back_default as s, _hoist as st, findIconBtn as t, _el_read_error as tt, row as u, _id as ut, setTheme as v, _script as vt, icon_xmark_default as w, _template as wt, theme as x, _serialize_if as xt, setWorkspaceTab as y, _sep as yt, $global as z };