texlite 0.8.2 → 0.8.4

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 (1594) hide show
  1. package/DESIGN.md +8 -1
  2. package/dist/client/assets/AdminUsers-CqOmV9rq.js +1 -0
  3. package/dist/client/assets/CitationLibraryDialog-BmWFXTW2.js +1 -0
  4. package/dist/client/assets/Dashboard-BfN2bCgZ.js +2 -0
  5. package/dist/client/assets/GitDialog-BCfSHuMB.js +3 -0
  6. package/dist/client/assets/HistoryDialog-BtQhyTr9.js +5 -0
  7. package/dist/client/assets/{LatexEditor-DbU8fMFZ.js → LatexEditor-DSopAHbC.js} +2 -2
  8. package/dist/client/assets/PdfPreview-BDkU20jP.js +1 -0
  9. package/dist/client/assets/ProjectIconPickerDialog-GAd8HGOx.js +1 -0
  10. package/dist/client/assets/ProjectNavigationDialogs-BTLcRY7i.js +1 -0
  11. package/dist/client/assets/ProjectSettings-BJWTkoZq.js +1 -0
  12. package/dist/client/assets/ProjectWorkspace-WLYA7BSv.js +27 -0
  13. package/dist/client/assets/SystemMetricsDialog-C9P4TSQl.js +1 -0
  14. package/dist/client/assets/TagManagementDialog-LYbib36_.js +1 -0
  15. package/dist/client/assets/WordCountDialog-BFg0GeJy.js +1 -0
  16. package/dist/client/assets/check-bnimQPun.js +1 -0
  17. package/dist/client/assets/chevron-left-DNM7mhNi.js +1 -0
  18. package/dist/client/assets/citationLibrary-ZeQPCv5O.js +26 -0
  19. package/dist/client/assets/hard-drive-CF3WDfkG.js +1 -0
  20. package/dist/client/assets/index-CzVDvC5h.js +14 -0
  21. package/dist/client/assets/index-RjUuWk8F.css +1 -0
  22. package/dist/client/assets/key-round-BaIj7Jch.js +1 -0
  23. package/dist/client/assets/{minus-B08vgSQJ.js → minus-Beso_n-6.js} +1 -1
  24. package/dist/client/assets/plus-BfEC7mzf.js +1 -0
  25. package/dist/client/assets/{react-BoEjKzFZ.js → react-BVUjbTTn.js} +1 -1
  26. package/dist/client/assets/refresh-cw-FZs9MtoA.js +1 -0
  27. package/dist/client/assets/search-DL2UGvdj.js +1 -0
  28. package/dist/client/assets/sigma-CSRwPPkk.js +1 -0
  29. package/dist/client/assets/{spellCheck-9fdyhJtV.js → spellCheck-L9gD2d1M.js} +1 -1
  30. package/dist/client/assets/tags-CjkWzXqX.js +1 -0
  31. package/dist/client/assets/type-D1mmDdLM.js +1 -0
  32. package/dist/client/assets/user-plus-YJ3ftuL5.js +1 -0
  33. package/dist/client/assets/x-BDSEosRE.js +1 -0
  34. package/dist/client/index.html +3 -3
  35. package/dist/server/collaboration.js +12 -5
  36. package/dist/server/db.js +4 -1
  37. package/dist/server/latexCompletion.js +37 -10
  38. package/dist/server/lucideIcons.js +37 -38
  39. package/dist/server/projects.js +34 -12
  40. package/dist/shared/lucide-icons/a-arrow-down.svg +1 -0
  41. package/dist/shared/lucide-icons/a-arrow-up.svg +1 -0
  42. package/dist/shared/lucide-icons/a-large-small.svg +1 -0
  43. package/dist/shared/lucide-icons/accessibility.svg +1 -0
  44. package/dist/shared/lucide-icons/activity.svg +1 -0
  45. package/dist/shared/lucide-icons/air-vent.svg +1 -0
  46. package/dist/shared/lucide-icons/airplay.svg +1 -0
  47. package/dist/shared/lucide-icons/alarm-clock-check.svg +1 -0
  48. package/dist/shared/lucide-icons/alarm-clock-minus.svg +1 -0
  49. package/dist/shared/lucide-icons/alarm-clock-off.svg +1 -0
  50. package/dist/shared/lucide-icons/alarm-clock-plus.svg +1 -0
  51. package/dist/shared/lucide-icons/alarm-clock.svg +1 -0
  52. package/dist/shared/lucide-icons/alarm-smoke.svg +1 -0
  53. package/dist/shared/lucide-icons/album.svg +1 -0
  54. package/dist/shared/lucide-icons/align-center-horizontal.svg +1 -0
  55. package/dist/shared/lucide-icons/align-center-vertical.svg +1 -0
  56. package/dist/shared/lucide-icons/align-center.svg +1 -0
  57. package/dist/shared/lucide-icons/align-end-horizontal.svg +1 -0
  58. package/dist/shared/lucide-icons/align-end-vertical.svg +1 -0
  59. package/dist/shared/lucide-icons/align-horizontal-distribute-center.svg +1 -0
  60. package/dist/shared/lucide-icons/align-horizontal-distribute-end.svg +1 -0
  61. package/dist/shared/lucide-icons/align-horizontal-distribute-start.svg +1 -0
  62. package/dist/shared/lucide-icons/align-horizontal-justify-center.svg +1 -0
  63. package/dist/shared/lucide-icons/align-horizontal-justify-end.svg +1 -0
  64. package/dist/shared/lucide-icons/align-horizontal-justify-start.svg +1 -0
  65. package/dist/shared/lucide-icons/align-horizontal-space-around.svg +1 -0
  66. package/dist/shared/lucide-icons/align-horizontal-space-between.svg +1 -0
  67. package/dist/shared/lucide-icons/align-justify.svg +1 -0
  68. package/dist/shared/lucide-icons/align-left.svg +1 -0
  69. package/dist/shared/lucide-icons/align-right.svg +1 -0
  70. package/dist/shared/lucide-icons/align-start-horizontal.svg +1 -0
  71. package/dist/shared/lucide-icons/align-start-vertical.svg +1 -0
  72. package/dist/shared/lucide-icons/align-vertical-distribute-center.svg +1 -0
  73. package/dist/shared/lucide-icons/align-vertical-distribute-end.svg +1 -0
  74. package/dist/shared/lucide-icons/align-vertical-distribute-start.svg +1 -0
  75. package/dist/shared/lucide-icons/align-vertical-justify-center.svg +1 -0
  76. package/dist/shared/lucide-icons/align-vertical-justify-end.svg +1 -0
  77. package/dist/shared/lucide-icons/align-vertical-justify-start.svg +1 -0
  78. package/dist/shared/lucide-icons/align-vertical-space-around.svg +1 -0
  79. package/dist/shared/lucide-icons/align-vertical-space-between.svg +1 -0
  80. package/dist/shared/lucide-icons/ambulance.svg +1 -0
  81. package/dist/shared/lucide-icons/ampersand.svg +1 -0
  82. package/dist/shared/lucide-icons/ampersands.svg +1 -0
  83. package/dist/shared/lucide-icons/amphora.svg +1 -0
  84. package/dist/shared/lucide-icons/anchor.svg +1 -0
  85. package/dist/shared/lucide-icons/angry.svg +1 -0
  86. package/dist/shared/lucide-icons/annoyed.svg +1 -0
  87. package/dist/shared/lucide-icons/antenna.svg +1 -0
  88. package/dist/shared/lucide-icons/anvil.svg +1 -0
  89. package/dist/shared/lucide-icons/aperture.svg +1 -0
  90. package/dist/shared/lucide-icons/app-window-mac.svg +1 -0
  91. package/dist/shared/lucide-icons/app-window.svg +1 -0
  92. package/dist/shared/lucide-icons/apple.svg +1 -0
  93. package/dist/shared/lucide-icons/archive-restore.svg +1 -0
  94. package/dist/shared/lucide-icons/archive-x.svg +1 -0
  95. package/dist/shared/lucide-icons/archive.svg +1 -0
  96. package/dist/shared/lucide-icons/armchair.svg +1 -0
  97. package/dist/shared/lucide-icons/arrow-big-down-dash.svg +1 -0
  98. package/dist/shared/lucide-icons/arrow-big-down.svg +1 -0
  99. package/dist/shared/lucide-icons/arrow-big-left-dash.svg +1 -0
  100. package/dist/shared/lucide-icons/arrow-big-left.svg +1 -0
  101. package/dist/shared/lucide-icons/arrow-big-right-dash.svg +1 -0
  102. package/dist/shared/lucide-icons/arrow-big-right.svg +1 -0
  103. package/dist/shared/lucide-icons/arrow-big-up-dash.svg +1 -0
  104. package/dist/shared/lucide-icons/arrow-big-up.svg +1 -0
  105. package/dist/shared/lucide-icons/arrow-down-az.svg +1 -0
  106. package/dist/shared/lucide-icons/arrow-down-from-line.svg +1 -0
  107. package/dist/shared/lucide-icons/arrow-down-left.svg +1 -0
  108. package/dist/shared/lucide-icons/arrow-down-narrow-wide.svg +1 -0
  109. package/dist/shared/lucide-icons/arrow-down-right.svg +1 -0
  110. package/dist/shared/lucide-icons/arrow-down-to-dot.svg +1 -0
  111. package/dist/shared/lucide-icons/arrow-down-to-line.svg +1 -0
  112. package/dist/shared/lucide-icons/arrow-down-up.svg +1 -0
  113. package/dist/shared/lucide-icons/arrow-down-wide-narrow.svg +1 -0
  114. package/dist/shared/lucide-icons/arrow-down-za.svg +1 -0
  115. package/dist/shared/lucide-icons/arrow-down.svg +1 -0
  116. package/dist/shared/lucide-icons/arrow-down01.svg +1 -0
  117. package/dist/shared/lucide-icons/arrow-down10.svg +1 -0
  118. package/dist/shared/lucide-icons/arrow-left-from-line.svg +1 -0
  119. package/dist/shared/lucide-icons/arrow-left-right.svg +1 -0
  120. package/dist/shared/lucide-icons/arrow-left-to-line.svg +1 -0
  121. package/dist/shared/lucide-icons/arrow-left.svg +1 -0
  122. package/dist/shared/lucide-icons/arrow-right-from-line.svg +1 -0
  123. package/dist/shared/lucide-icons/arrow-right-left.svg +1 -0
  124. package/dist/shared/lucide-icons/arrow-right-to-line.svg +1 -0
  125. package/dist/shared/lucide-icons/arrow-right.svg +1 -0
  126. package/dist/shared/lucide-icons/arrow-up-az.svg +1 -0
  127. package/dist/shared/lucide-icons/arrow-up-down.svg +1 -0
  128. package/dist/shared/lucide-icons/arrow-up-from-dot.svg +1 -0
  129. package/dist/shared/lucide-icons/arrow-up-from-line.svg +1 -0
  130. package/dist/shared/lucide-icons/arrow-up-left.svg +1 -0
  131. package/dist/shared/lucide-icons/arrow-up-narrow-wide.svg +1 -0
  132. package/dist/shared/lucide-icons/arrow-up-right.svg +1 -0
  133. package/dist/shared/lucide-icons/arrow-up-to-line.svg +1 -0
  134. package/dist/shared/lucide-icons/arrow-up-wide-narrow.svg +1 -0
  135. package/dist/shared/lucide-icons/arrow-up-za.svg +1 -0
  136. package/dist/shared/lucide-icons/arrow-up.svg +1 -0
  137. package/dist/shared/lucide-icons/arrow-up01.svg +1 -0
  138. package/dist/shared/lucide-icons/arrow-up10.svg +1 -0
  139. package/dist/shared/lucide-icons/arrows-up-from-line.svg +1 -0
  140. package/dist/shared/lucide-icons/asterisk.svg +1 -0
  141. package/dist/shared/lucide-icons/at-sign.svg +1 -0
  142. package/dist/shared/lucide-icons/atom.svg +1 -0
  143. package/dist/shared/lucide-icons/audio-lines.svg +1 -0
  144. package/dist/shared/lucide-icons/audio-waveform.svg +1 -0
  145. package/dist/shared/lucide-icons/award.svg +1 -0
  146. package/dist/shared/lucide-icons/axe.svg +1 -0
  147. package/dist/shared/lucide-icons/axis3d.svg +1 -0
  148. package/dist/shared/lucide-icons/baby.svg +1 -0
  149. package/dist/shared/lucide-icons/backpack.svg +1 -0
  150. package/dist/shared/lucide-icons/badge-alert.svg +1 -0
  151. package/dist/shared/lucide-icons/badge-cent.svg +1 -0
  152. package/dist/shared/lucide-icons/badge-check.svg +1 -0
  153. package/dist/shared/lucide-icons/badge-dollar-sign.svg +1 -0
  154. package/dist/shared/lucide-icons/badge-euro.svg +1 -0
  155. package/dist/shared/lucide-icons/badge-help.svg +1 -0
  156. package/dist/shared/lucide-icons/badge-indian-rupee.svg +1 -0
  157. package/dist/shared/lucide-icons/badge-info.svg +1 -0
  158. package/dist/shared/lucide-icons/badge-japanese-yen.svg +1 -0
  159. package/dist/shared/lucide-icons/badge-minus.svg +1 -0
  160. package/dist/shared/lucide-icons/badge-percent.svg +1 -0
  161. package/dist/shared/lucide-icons/badge-plus.svg +1 -0
  162. package/dist/shared/lucide-icons/badge-pound-sterling.svg +1 -0
  163. package/dist/shared/lucide-icons/badge-russian-ruble.svg +1 -0
  164. package/dist/shared/lucide-icons/badge-swiss-franc.svg +1 -0
  165. package/dist/shared/lucide-icons/badge-x.svg +1 -0
  166. package/dist/shared/lucide-icons/badge.svg +1 -0
  167. package/dist/shared/lucide-icons/baggage-claim.svg +1 -0
  168. package/dist/shared/lucide-icons/ban.svg +1 -0
  169. package/dist/shared/lucide-icons/banana.svg +1 -0
  170. package/dist/shared/lucide-icons/bandage.svg +1 -0
  171. package/dist/shared/lucide-icons/banknote.svg +1 -0
  172. package/dist/shared/lucide-icons/barcode.svg +1 -0
  173. package/dist/shared/lucide-icons/baseline.svg +1 -0
  174. package/dist/shared/lucide-icons/bath.svg +1 -0
  175. package/dist/shared/lucide-icons/battery-charging.svg +1 -0
  176. package/dist/shared/lucide-icons/battery-full.svg +1 -0
  177. package/dist/shared/lucide-icons/battery-low.svg +1 -0
  178. package/dist/shared/lucide-icons/battery-medium.svg +1 -0
  179. package/dist/shared/lucide-icons/battery-warning.svg +1 -0
  180. package/dist/shared/lucide-icons/battery.svg +1 -0
  181. package/dist/shared/lucide-icons/beaker.svg +1 -0
  182. package/dist/shared/lucide-icons/bean-off.svg +1 -0
  183. package/dist/shared/lucide-icons/bean.svg +1 -0
  184. package/dist/shared/lucide-icons/bed-double.svg +1 -0
  185. package/dist/shared/lucide-icons/bed-single.svg +1 -0
  186. package/dist/shared/lucide-icons/bed.svg +1 -0
  187. package/dist/shared/lucide-icons/beef.svg +1 -0
  188. package/dist/shared/lucide-icons/beer-off.svg +1 -0
  189. package/dist/shared/lucide-icons/beer.svg +1 -0
  190. package/dist/shared/lucide-icons/bell-dot.svg +1 -0
  191. package/dist/shared/lucide-icons/bell-electric.svg +1 -0
  192. package/dist/shared/lucide-icons/bell-minus.svg +1 -0
  193. package/dist/shared/lucide-icons/bell-off.svg +1 -0
  194. package/dist/shared/lucide-icons/bell-plus.svg +1 -0
  195. package/dist/shared/lucide-icons/bell-ring.svg +1 -0
  196. package/dist/shared/lucide-icons/bell.svg +1 -0
  197. package/dist/shared/lucide-icons/between-horizontal-end.svg +1 -0
  198. package/dist/shared/lucide-icons/between-horizontal-start.svg +1 -0
  199. package/dist/shared/lucide-icons/between-vertical-end.svg +1 -0
  200. package/dist/shared/lucide-icons/between-vertical-start.svg +1 -0
  201. package/dist/shared/lucide-icons/biceps-flexed.svg +1 -0
  202. package/dist/shared/lucide-icons/bike.svg +1 -0
  203. package/dist/shared/lucide-icons/binary.svg +1 -0
  204. package/dist/shared/lucide-icons/binoculars.svg +1 -0
  205. package/dist/shared/lucide-icons/biohazard.svg +1 -0
  206. package/dist/shared/lucide-icons/bird.svg +1 -0
  207. package/dist/shared/lucide-icons/bitcoin.svg +1 -0
  208. package/dist/shared/lucide-icons/blend.svg +1 -0
  209. package/dist/shared/lucide-icons/blinds.svg +1 -0
  210. package/dist/shared/lucide-icons/blocks.svg +1 -0
  211. package/dist/shared/lucide-icons/bluetooth-connected.svg +1 -0
  212. package/dist/shared/lucide-icons/bluetooth-off.svg +1 -0
  213. package/dist/shared/lucide-icons/bluetooth-searching.svg +1 -0
  214. package/dist/shared/lucide-icons/bluetooth.svg +1 -0
  215. package/dist/shared/lucide-icons/bold.svg +1 -0
  216. package/dist/shared/lucide-icons/bolt.svg +1 -0
  217. package/dist/shared/lucide-icons/bomb.svg +1 -0
  218. package/dist/shared/lucide-icons/bone.svg +1 -0
  219. package/dist/shared/lucide-icons/book-a.svg +1 -0
  220. package/dist/shared/lucide-icons/book-audio.svg +1 -0
  221. package/dist/shared/lucide-icons/book-check.svg +1 -0
  222. package/dist/shared/lucide-icons/book-copy.svg +1 -0
  223. package/dist/shared/lucide-icons/book-dashed.svg +1 -0
  224. package/dist/shared/lucide-icons/book-down.svg +1 -0
  225. package/dist/shared/lucide-icons/book-headphones.svg +1 -0
  226. package/dist/shared/lucide-icons/book-heart.svg +1 -0
  227. package/dist/shared/lucide-icons/book-image.svg +1 -0
  228. package/dist/shared/lucide-icons/book-key.svg +1 -0
  229. package/dist/shared/lucide-icons/book-lock.svg +1 -0
  230. package/dist/shared/lucide-icons/book-marked.svg +1 -0
  231. package/dist/shared/lucide-icons/book-minus.svg +1 -0
  232. package/dist/shared/lucide-icons/book-open-check.svg +1 -0
  233. package/dist/shared/lucide-icons/book-open-text.svg +1 -0
  234. package/dist/shared/lucide-icons/book-open.svg +1 -0
  235. package/dist/shared/lucide-icons/book-plus.svg +1 -0
  236. package/dist/shared/lucide-icons/book-text.svg +1 -0
  237. package/dist/shared/lucide-icons/book-type.svg +1 -0
  238. package/dist/shared/lucide-icons/book-up.svg +1 -0
  239. package/dist/shared/lucide-icons/book-up2.svg +1 -0
  240. package/dist/shared/lucide-icons/book-user.svg +1 -0
  241. package/dist/shared/lucide-icons/book-x.svg +1 -0
  242. package/dist/shared/lucide-icons/book.svg +1 -0
  243. package/dist/shared/lucide-icons/bookmark-check.svg +1 -0
  244. package/dist/shared/lucide-icons/bookmark-minus.svg +1 -0
  245. package/dist/shared/lucide-icons/bookmark-plus.svg +1 -0
  246. package/dist/shared/lucide-icons/bookmark-x.svg +1 -0
  247. package/dist/shared/lucide-icons/bookmark.svg +1 -0
  248. package/dist/shared/lucide-icons/boom-box.svg +1 -0
  249. package/dist/shared/lucide-icons/bot-message-square.svg +1 -0
  250. package/dist/shared/lucide-icons/bot-off.svg +1 -0
  251. package/dist/shared/lucide-icons/bot.svg +1 -0
  252. package/dist/shared/lucide-icons/box.svg +1 -0
  253. package/dist/shared/lucide-icons/boxes.svg +1 -0
  254. package/dist/shared/lucide-icons/braces.svg +1 -0
  255. package/dist/shared/lucide-icons/brackets.svg +1 -0
  256. package/dist/shared/lucide-icons/brain-circuit.svg +1 -0
  257. package/dist/shared/lucide-icons/brain-cog.svg +1 -0
  258. package/dist/shared/lucide-icons/brain.svg +1 -0
  259. package/dist/shared/lucide-icons/brick-wall.svg +1 -0
  260. package/dist/shared/lucide-icons/briefcase-business.svg +1 -0
  261. package/dist/shared/lucide-icons/briefcase-conveyor-belt.svg +1 -0
  262. package/dist/shared/lucide-icons/briefcase-medical.svg +1 -0
  263. package/dist/shared/lucide-icons/briefcase.svg +1 -0
  264. package/dist/shared/lucide-icons/bring-to-front.svg +1 -0
  265. package/dist/shared/lucide-icons/brush.svg +1 -0
  266. package/dist/shared/lucide-icons/bug-off.svg +1 -0
  267. package/dist/shared/lucide-icons/bug-play.svg +1 -0
  268. package/dist/shared/lucide-icons/bug.svg +1 -0
  269. package/dist/shared/lucide-icons/building.svg +1 -0
  270. package/dist/shared/lucide-icons/building2.svg +1 -0
  271. package/dist/shared/lucide-icons/bus-front.svg +1 -0
  272. package/dist/shared/lucide-icons/bus.svg +1 -0
  273. package/dist/shared/lucide-icons/cable-car.svg +1 -0
  274. package/dist/shared/lucide-icons/cable.svg +1 -0
  275. package/dist/shared/lucide-icons/cake-slice.svg +1 -0
  276. package/dist/shared/lucide-icons/cake.svg +1 -0
  277. package/dist/shared/lucide-icons/calculator.svg +1 -0
  278. package/dist/shared/lucide-icons/calendar-arrow-down.svg +1 -0
  279. package/dist/shared/lucide-icons/calendar-arrow-up.svg +1 -0
  280. package/dist/shared/lucide-icons/calendar-check.svg +1 -0
  281. package/dist/shared/lucide-icons/calendar-check2.svg +1 -0
  282. package/dist/shared/lucide-icons/calendar-clock.svg +1 -0
  283. package/dist/shared/lucide-icons/calendar-cog.svg +1 -0
  284. package/dist/shared/lucide-icons/calendar-days.svg +1 -0
  285. package/dist/shared/lucide-icons/calendar-fold.svg +1 -0
  286. package/dist/shared/lucide-icons/calendar-heart.svg +1 -0
  287. package/dist/shared/lucide-icons/calendar-minus.svg +1 -0
  288. package/dist/shared/lucide-icons/calendar-minus2.svg +1 -0
  289. package/dist/shared/lucide-icons/calendar-off.svg +1 -0
  290. package/dist/shared/lucide-icons/calendar-plus.svg +1 -0
  291. package/dist/shared/lucide-icons/calendar-plus2.svg +1 -0
  292. package/dist/shared/lucide-icons/calendar-range.svg +1 -0
  293. package/dist/shared/lucide-icons/calendar-search.svg +1 -0
  294. package/dist/shared/lucide-icons/calendar-sync.svg +1 -0
  295. package/dist/shared/lucide-icons/calendar-x.svg +1 -0
  296. package/dist/shared/lucide-icons/calendar-x2.svg +1 -0
  297. package/dist/shared/lucide-icons/calendar.svg +1 -0
  298. package/dist/shared/lucide-icons/calendar1.svg +1 -0
  299. package/dist/shared/lucide-icons/camera-off.svg +1 -0
  300. package/dist/shared/lucide-icons/camera.svg +1 -0
  301. package/dist/shared/lucide-icons/candy-cane.svg +1 -0
  302. package/dist/shared/lucide-icons/candy-off.svg +1 -0
  303. package/dist/shared/lucide-icons/candy.svg +1 -0
  304. package/dist/shared/lucide-icons/cannabis.svg +1 -0
  305. package/dist/shared/lucide-icons/captions-off.svg +1 -0
  306. package/dist/shared/lucide-icons/captions.svg +1 -0
  307. package/dist/shared/lucide-icons/car-front.svg +1 -0
  308. package/dist/shared/lucide-icons/car-taxi-front.svg +1 -0
  309. package/dist/shared/lucide-icons/car.svg +1 -0
  310. package/dist/shared/lucide-icons/caravan.svg +1 -0
  311. package/dist/shared/lucide-icons/carrot.svg +1 -0
  312. package/dist/shared/lucide-icons/case-lower.svg +1 -0
  313. package/dist/shared/lucide-icons/case-sensitive.svg +1 -0
  314. package/dist/shared/lucide-icons/case-upper.svg +1 -0
  315. package/dist/shared/lucide-icons/cassette-tape.svg +1 -0
  316. package/dist/shared/lucide-icons/cast.svg +1 -0
  317. package/dist/shared/lucide-icons/castle.svg +1 -0
  318. package/dist/shared/lucide-icons/cat.svg +1 -0
  319. package/dist/shared/lucide-icons/cctv.svg +1 -0
  320. package/dist/shared/lucide-icons/chart-area.svg +1 -0
  321. package/dist/shared/lucide-icons/chart-bar-big.svg +1 -0
  322. package/dist/shared/lucide-icons/chart-bar-decreasing.svg +1 -0
  323. package/dist/shared/lucide-icons/chart-bar-increasing.svg +1 -0
  324. package/dist/shared/lucide-icons/chart-bar-stacked.svg +1 -0
  325. package/dist/shared/lucide-icons/chart-bar.svg +1 -0
  326. package/dist/shared/lucide-icons/chart-candlestick.svg +1 -0
  327. package/dist/shared/lucide-icons/chart-column-big.svg +1 -0
  328. package/dist/shared/lucide-icons/chart-column-decreasing.svg +1 -0
  329. package/dist/shared/lucide-icons/chart-column-increasing.svg +1 -0
  330. package/dist/shared/lucide-icons/chart-column-stacked.svg +1 -0
  331. package/dist/shared/lucide-icons/chart-column.svg +1 -0
  332. package/dist/shared/lucide-icons/chart-gantt.svg +1 -0
  333. package/dist/shared/lucide-icons/chart-line.svg +1 -0
  334. package/dist/shared/lucide-icons/chart-network.svg +1 -0
  335. package/dist/shared/lucide-icons/chart-no-axes-column-decreasing.svg +1 -0
  336. package/dist/shared/lucide-icons/chart-no-axes-column-increasing.svg +1 -0
  337. package/dist/shared/lucide-icons/chart-no-axes-column.svg +1 -0
  338. package/dist/shared/lucide-icons/chart-no-axes-combined.svg +1 -0
  339. package/dist/shared/lucide-icons/chart-no-axes-gantt.svg +1 -0
  340. package/dist/shared/lucide-icons/chart-pie.svg +1 -0
  341. package/dist/shared/lucide-icons/chart-scatter.svg +1 -0
  342. package/dist/shared/lucide-icons/chart-spline.svg +1 -0
  343. package/dist/shared/lucide-icons/check-check.svg +1 -0
  344. package/dist/shared/lucide-icons/check.svg +1 -0
  345. package/dist/shared/lucide-icons/chef-hat.svg +1 -0
  346. package/dist/shared/lucide-icons/cherry.svg +1 -0
  347. package/dist/shared/lucide-icons/chevron-down.svg +1 -0
  348. package/dist/shared/lucide-icons/chevron-first.svg +1 -0
  349. package/dist/shared/lucide-icons/chevron-last.svg +1 -0
  350. package/dist/shared/lucide-icons/chevron-left.svg +1 -0
  351. package/dist/shared/lucide-icons/chevron-right.svg +1 -0
  352. package/dist/shared/lucide-icons/chevron-up.svg +1 -0
  353. package/dist/shared/lucide-icons/chevrons-down-up.svg +1 -0
  354. package/dist/shared/lucide-icons/chevrons-down.svg +1 -0
  355. package/dist/shared/lucide-icons/chevrons-left-right-ellipsis.svg +1 -0
  356. package/dist/shared/lucide-icons/chevrons-left-right.svg +1 -0
  357. package/dist/shared/lucide-icons/chevrons-left.svg +1 -0
  358. package/dist/shared/lucide-icons/chevrons-right-left.svg +1 -0
  359. package/dist/shared/lucide-icons/chevrons-right.svg +1 -0
  360. package/dist/shared/lucide-icons/chevrons-up-down.svg +1 -0
  361. package/dist/shared/lucide-icons/chevrons-up.svg +1 -0
  362. package/dist/shared/lucide-icons/chrome.svg +1 -0
  363. package/dist/shared/lucide-icons/church.svg +1 -0
  364. package/dist/shared/lucide-icons/cigarette-off.svg +1 -0
  365. package/dist/shared/lucide-icons/cigarette.svg +1 -0
  366. package/dist/shared/lucide-icons/circle-alert.svg +1 -0
  367. package/dist/shared/lucide-icons/circle-arrow-down.svg +1 -0
  368. package/dist/shared/lucide-icons/circle-arrow-left.svg +1 -0
  369. package/dist/shared/lucide-icons/circle-arrow-out-down-left.svg +1 -0
  370. package/dist/shared/lucide-icons/circle-arrow-out-down-right.svg +1 -0
  371. package/dist/shared/lucide-icons/circle-arrow-out-up-left.svg +1 -0
  372. package/dist/shared/lucide-icons/circle-arrow-out-up-right.svg +1 -0
  373. package/dist/shared/lucide-icons/circle-arrow-right.svg +1 -0
  374. package/dist/shared/lucide-icons/circle-arrow-up.svg +1 -0
  375. package/dist/shared/lucide-icons/circle-check-big.svg +1 -0
  376. package/dist/shared/lucide-icons/circle-check.svg +1 -0
  377. package/dist/shared/lucide-icons/circle-chevron-down.svg +1 -0
  378. package/dist/shared/lucide-icons/circle-chevron-left.svg +1 -0
  379. package/dist/shared/lucide-icons/circle-chevron-right.svg +1 -0
  380. package/dist/shared/lucide-icons/circle-chevron-up.svg +1 -0
  381. package/dist/shared/lucide-icons/circle-dashed.svg +1 -0
  382. package/dist/shared/lucide-icons/circle-divide.svg +1 -0
  383. package/dist/shared/lucide-icons/circle-dollar-sign.svg +1 -0
  384. package/dist/shared/lucide-icons/circle-dot-dashed.svg +1 -0
  385. package/dist/shared/lucide-icons/circle-dot.svg +1 -0
  386. package/dist/shared/lucide-icons/circle-ellipsis.svg +1 -0
  387. package/dist/shared/lucide-icons/circle-equal.svg +1 -0
  388. package/dist/shared/lucide-icons/circle-fading-arrow-up.svg +1 -0
  389. package/dist/shared/lucide-icons/circle-fading-plus.svg +1 -0
  390. package/dist/shared/lucide-icons/circle-gauge.svg +1 -0
  391. package/dist/shared/lucide-icons/circle-help.svg +1 -0
  392. package/dist/shared/lucide-icons/circle-minus.svg +1 -0
  393. package/dist/shared/lucide-icons/circle-off.svg +1 -0
  394. package/dist/shared/lucide-icons/circle-parking-off.svg +1 -0
  395. package/dist/shared/lucide-icons/circle-parking.svg +1 -0
  396. package/dist/shared/lucide-icons/circle-pause.svg +1 -0
  397. package/dist/shared/lucide-icons/circle-percent.svg +1 -0
  398. package/dist/shared/lucide-icons/circle-play.svg +1 -0
  399. package/dist/shared/lucide-icons/circle-plus.svg +1 -0
  400. package/dist/shared/lucide-icons/circle-power.svg +1 -0
  401. package/dist/shared/lucide-icons/circle-slash.svg +1 -0
  402. package/dist/shared/lucide-icons/circle-slash2.svg +1 -0
  403. package/dist/shared/lucide-icons/circle-stop.svg +1 -0
  404. package/dist/shared/lucide-icons/circle-user-round.svg +1 -0
  405. package/dist/shared/lucide-icons/circle-user.svg +1 -0
  406. package/dist/shared/lucide-icons/circle-x.svg +1 -0
  407. package/dist/shared/lucide-icons/circle.svg +1 -0
  408. package/dist/shared/lucide-icons/circuit-board.svg +1 -0
  409. package/dist/shared/lucide-icons/citrus.svg +1 -0
  410. package/dist/shared/lucide-icons/clapperboard.svg +1 -0
  411. package/dist/shared/lucide-icons/clipboard-check.svg +1 -0
  412. package/dist/shared/lucide-icons/clipboard-copy.svg +1 -0
  413. package/dist/shared/lucide-icons/clipboard-list.svg +1 -0
  414. package/dist/shared/lucide-icons/clipboard-minus.svg +1 -0
  415. package/dist/shared/lucide-icons/clipboard-paste.svg +1 -0
  416. package/dist/shared/lucide-icons/clipboard-pen-line.svg +1 -0
  417. package/dist/shared/lucide-icons/clipboard-pen.svg +1 -0
  418. package/dist/shared/lucide-icons/clipboard-plus.svg +1 -0
  419. package/dist/shared/lucide-icons/clipboard-type.svg +1 -0
  420. package/dist/shared/lucide-icons/clipboard-x.svg +1 -0
  421. package/dist/shared/lucide-icons/clipboard.svg +1 -0
  422. package/dist/shared/lucide-icons/clock-alert.svg +1 -0
  423. package/dist/shared/lucide-icons/clock-arrow-down.svg +1 -0
  424. package/dist/shared/lucide-icons/clock-arrow-up.svg +1 -0
  425. package/dist/shared/lucide-icons/clock.svg +1 -0
  426. package/dist/shared/lucide-icons/clock1.svg +1 -0
  427. package/dist/shared/lucide-icons/clock10.svg +1 -0
  428. package/dist/shared/lucide-icons/clock11.svg +1 -0
  429. package/dist/shared/lucide-icons/clock12.svg +1 -0
  430. package/dist/shared/lucide-icons/clock2.svg +1 -0
  431. package/dist/shared/lucide-icons/clock3.svg +1 -0
  432. package/dist/shared/lucide-icons/clock4.svg +1 -0
  433. package/dist/shared/lucide-icons/clock5.svg +1 -0
  434. package/dist/shared/lucide-icons/clock6.svg +1 -0
  435. package/dist/shared/lucide-icons/clock7.svg +1 -0
  436. package/dist/shared/lucide-icons/clock8.svg +1 -0
  437. package/dist/shared/lucide-icons/clock9.svg +1 -0
  438. package/dist/shared/lucide-icons/cloud-alert.svg +1 -0
  439. package/dist/shared/lucide-icons/cloud-cog.svg +1 -0
  440. package/dist/shared/lucide-icons/cloud-download.svg +1 -0
  441. package/dist/shared/lucide-icons/cloud-drizzle.svg +1 -0
  442. package/dist/shared/lucide-icons/cloud-fog.svg +1 -0
  443. package/dist/shared/lucide-icons/cloud-hail.svg +1 -0
  444. package/dist/shared/lucide-icons/cloud-lightning.svg +1 -0
  445. package/dist/shared/lucide-icons/cloud-moon-rain.svg +1 -0
  446. package/dist/shared/lucide-icons/cloud-moon.svg +1 -0
  447. package/dist/shared/lucide-icons/cloud-off.svg +1 -0
  448. package/dist/shared/lucide-icons/cloud-rain-wind.svg +1 -0
  449. package/dist/shared/lucide-icons/cloud-rain.svg +1 -0
  450. package/dist/shared/lucide-icons/cloud-snow.svg +1 -0
  451. package/dist/shared/lucide-icons/cloud-sun-rain.svg +1 -0
  452. package/dist/shared/lucide-icons/cloud-sun.svg +1 -0
  453. package/dist/shared/lucide-icons/cloud-upload.svg +1 -0
  454. package/dist/shared/lucide-icons/cloud.svg +1 -0
  455. package/dist/shared/lucide-icons/cloudy.svg +1 -0
  456. package/dist/shared/lucide-icons/clover.svg +1 -0
  457. package/dist/shared/lucide-icons/club.svg +1 -0
  458. package/dist/shared/lucide-icons/code-xml.svg +1 -0
  459. package/dist/shared/lucide-icons/code.svg +1 -0
  460. package/dist/shared/lucide-icons/codepen.svg +1 -0
  461. package/dist/shared/lucide-icons/codesandbox.svg +1 -0
  462. package/dist/shared/lucide-icons/coffee.svg +1 -0
  463. package/dist/shared/lucide-icons/cog.svg +1 -0
  464. package/dist/shared/lucide-icons/coins.svg +1 -0
  465. package/dist/shared/lucide-icons/columns2.svg +1 -0
  466. package/dist/shared/lucide-icons/columns3.svg +1 -0
  467. package/dist/shared/lucide-icons/columns4.svg +1 -0
  468. package/dist/shared/lucide-icons/combine.svg +1 -0
  469. package/dist/shared/lucide-icons/command.svg +1 -0
  470. package/dist/shared/lucide-icons/compass.svg +1 -0
  471. package/dist/shared/lucide-icons/component.svg +1 -0
  472. package/dist/shared/lucide-icons/computer.svg +1 -0
  473. package/dist/shared/lucide-icons/concierge-bell.svg +1 -0
  474. package/dist/shared/lucide-icons/cone.svg +1 -0
  475. package/dist/shared/lucide-icons/construction.svg +1 -0
  476. package/dist/shared/lucide-icons/contact-round.svg +1 -0
  477. package/dist/shared/lucide-icons/contact.svg +1 -0
  478. package/dist/shared/lucide-icons/container.svg +1 -0
  479. package/dist/shared/lucide-icons/contrast.svg +1 -0
  480. package/dist/shared/lucide-icons/cookie.svg +1 -0
  481. package/dist/shared/lucide-icons/cooking-pot.svg +1 -0
  482. package/dist/shared/lucide-icons/copy-check.svg +1 -0
  483. package/dist/shared/lucide-icons/copy-minus.svg +1 -0
  484. package/dist/shared/lucide-icons/copy-plus.svg +1 -0
  485. package/dist/shared/lucide-icons/copy-slash.svg +1 -0
  486. package/dist/shared/lucide-icons/copy-x.svg +1 -0
  487. package/dist/shared/lucide-icons/copy.svg +1 -0
  488. package/dist/shared/lucide-icons/copyleft.svg +1 -0
  489. package/dist/shared/lucide-icons/copyright.svg +1 -0
  490. package/dist/shared/lucide-icons/corner-down-left.svg +1 -0
  491. package/dist/shared/lucide-icons/corner-down-right.svg +1 -0
  492. package/dist/shared/lucide-icons/corner-left-down.svg +1 -0
  493. package/dist/shared/lucide-icons/corner-left-up.svg +1 -0
  494. package/dist/shared/lucide-icons/corner-right-down.svg +1 -0
  495. package/dist/shared/lucide-icons/corner-right-up.svg +1 -0
  496. package/dist/shared/lucide-icons/corner-up-left.svg +1 -0
  497. package/dist/shared/lucide-icons/corner-up-right.svg +1 -0
  498. package/dist/shared/lucide-icons/cpu.svg +1 -0
  499. package/dist/shared/lucide-icons/creative-commons.svg +1 -0
  500. package/dist/shared/lucide-icons/credit-card.svg +1 -0
  501. package/dist/shared/lucide-icons/croissant.svg +1 -0
  502. package/dist/shared/lucide-icons/crop.svg +1 -0
  503. package/dist/shared/lucide-icons/cross.svg +1 -0
  504. package/dist/shared/lucide-icons/crosshair.svg +1 -0
  505. package/dist/shared/lucide-icons/crown.svg +1 -0
  506. package/dist/shared/lucide-icons/cuboid.svg +1 -0
  507. package/dist/shared/lucide-icons/cup-soda.svg +1 -0
  508. package/dist/shared/lucide-icons/currency.svg +1 -0
  509. package/dist/shared/lucide-icons/cylinder.svg +1 -0
  510. package/dist/shared/lucide-icons/dam.svg +1 -0
  511. package/dist/shared/lucide-icons/database-backup.svg +1 -0
  512. package/dist/shared/lucide-icons/database-zap.svg +1 -0
  513. package/dist/shared/lucide-icons/database.svg +1 -0
  514. package/dist/shared/lucide-icons/delete.svg +1 -0
  515. package/dist/shared/lucide-icons/dessert.svg +1 -0
  516. package/dist/shared/lucide-icons/diameter.svg +1 -0
  517. package/dist/shared/lucide-icons/diamond-minus.svg +1 -0
  518. package/dist/shared/lucide-icons/diamond-percent.svg +1 -0
  519. package/dist/shared/lucide-icons/diamond-plus.svg +1 -0
  520. package/dist/shared/lucide-icons/diamond.svg +1 -0
  521. package/dist/shared/lucide-icons/dice1.svg +1 -0
  522. package/dist/shared/lucide-icons/dice2.svg +1 -0
  523. package/dist/shared/lucide-icons/dice3.svg +1 -0
  524. package/dist/shared/lucide-icons/dice4.svg +1 -0
  525. package/dist/shared/lucide-icons/dice5.svg +1 -0
  526. package/dist/shared/lucide-icons/dice6.svg +1 -0
  527. package/dist/shared/lucide-icons/dices.svg +1 -0
  528. package/dist/shared/lucide-icons/diff.svg +1 -0
  529. package/dist/shared/lucide-icons/disc-album.svg +1 -0
  530. package/dist/shared/lucide-icons/disc.svg +1 -0
  531. package/dist/shared/lucide-icons/disc2.svg +1 -0
  532. package/dist/shared/lucide-icons/disc3.svg +1 -0
  533. package/dist/shared/lucide-icons/divide.svg +1 -0
  534. package/dist/shared/lucide-icons/dna-off.svg +1 -0
  535. package/dist/shared/lucide-icons/dna.svg +1 -0
  536. package/dist/shared/lucide-icons/dock.svg +1 -0
  537. package/dist/shared/lucide-icons/dog.svg +1 -0
  538. package/dist/shared/lucide-icons/dollar-sign.svg +1 -0
  539. package/dist/shared/lucide-icons/donut.svg +1 -0
  540. package/dist/shared/lucide-icons/door-closed.svg +1 -0
  541. package/dist/shared/lucide-icons/door-open.svg +1 -0
  542. package/dist/shared/lucide-icons/dot.svg +1 -0
  543. package/dist/shared/lucide-icons/download.svg +1 -0
  544. package/dist/shared/lucide-icons/drafting-compass.svg +1 -0
  545. package/dist/shared/lucide-icons/drama.svg +1 -0
  546. package/dist/shared/lucide-icons/dribbble.svg +1 -0
  547. package/dist/shared/lucide-icons/drill.svg +1 -0
  548. package/dist/shared/lucide-icons/droplet-off.svg +1 -0
  549. package/dist/shared/lucide-icons/droplet.svg +1 -0
  550. package/dist/shared/lucide-icons/droplets.svg +1 -0
  551. package/dist/shared/lucide-icons/drum.svg +1 -0
  552. package/dist/shared/lucide-icons/drumstick.svg +1 -0
  553. package/dist/shared/lucide-icons/dumbbell.svg +1 -0
  554. package/dist/shared/lucide-icons/ear-off.svg +1 -0
  555. package/dist/shared/lucide-icons/ear.svg +1 -0
  556. package/dist/shared/lucide-icons/earth-lock.svg +1 -0
  557. package/dist/shared/lucide-icons/earth.svg +1 -0
  558. package/dist/shared/lucide-icons/eclipse.svg +1 -0
  559. package/dist/shared/lucide-icons/egg-fried.svg +1 -0
  560. package/dist/shared/lucide-icons/egg-off.svg +1 -0
  561. package/dist/shared/lucide-icons/egg.svg +1 -0
  562. package/dist/shared/lucide-icons/ellipsis-vertical.svg +1 -0
  563. package/dist/shared/lucide-icons/ellipsis.svg +1 -0
  564. package/dist/shared/lucide-icons/equal-approximately.svg +1 -0
  565. package/dist/shared/lucide-icons/equal-not.svg +1 -0
  566. package/dist/shared/lucide-icons/equal.svg +1 -0
  567. package/dist/shared/lucide-icons/eraser.svg +1 -0
  568. package/dist/shared/lucide-icons/ethernet-port.svg +1 -0
  569. package/dist/shared/lucide-icons/euro.svg +1 -0
  570. package/dist/shared/lucide-icons/expand.svg +1 -0
  571. package/dist/shared/lucide-icons/external-link.svg +1 -0
  572. package/dist/shared/lucide-icons/eye-closed.svg +1 -0
  573. package/dist/shared/lucide-icons/eye-off.svg +1 -0
  574. package/dist/shared/lucide-icons/eye.svg +1 -0
  575. package/dist/shared/lucide-icons/facebook.svg +1 -0
  576. package/dist/shared/lucide-icons/factory.svg +1 -0
  577. package/dist/shared/lucide-icons/fan.svg +1 -0
  578. package/dist/shared/lucide-icons/fast-forward.svg +1 -0
  579. package/dist/shared/lucide-icons/feather.svg +1 -0
  580. package/dist/shared/lucide-icons/fence.svg +1 -0
  581. package/dist/shared/lucide-icons/ferris-wheel.svg +1 -0
  582. package/dist/shared/lucide-icons/figma.svg +1 -0
  583. package/dist/shared/lucide-icons/file-archive.svg +1 -0
  584. package/dist/shared/lucide-icons/file-audio.svg +1 -0
  585. package/dist/shared/lucide-icons/file-audio2.svg +1 -0
  586. package/dist/shared/lucide-icons/file-axis3d.svg +1 -0
  587. package/dist/shared/lucide-icons/file-badge.svg +1 -0
  588. package/dist/shared/lucide-icons/file-badge2.svg +1 -0
  589. package/dist/shared/lucide-icons/file-box.svg +1 -0
  590. package/dist/shared/lucide-icons/file-chart-column-increasing.svg +1 -0
  591. package/dist/shared/lucide-icons/file-chart-column.svg +1 -0
  592. package/dist/shared/lucide-icons/file-chart-line.svg +1 -0
  593. package/dist/shared/lucide-icons/file-chart-pie.svg +1 -0
  594. package/dist/shared/lucide-icons/file-check.svg +1 -0
  595. package/dist/shared/lucide-icons/file-check2.svg +1 -0
  596. package/dist/shared/lucide-icons/file-clock.svg +1 -0
  597. package/dist/shared/lucide-icons/file-code.svg +1 -0
  598. package/dist/shared/lucide-icons/file-code2.svg +1 -0
  599. package/dist/shared/lucide-icons/file-cog.svg +1 -0
  600. package/dist/shared/lucide-icons/file-diff.svg +1 -0
  601. package/dist/shared/lucide-icons/file-digit.svg +1 -0
  602. package/dist/shared/lucide-icons/file-down.svg +1 -0
  603. package/dist/shared/lucide-icons/file-heart.svg +1 -0
  604. package/dist/shared/lucide-icons/file-image.svg +1 -0
  605. package/dist/shared/lucide-icons/file-input.svg +1 -0
  606. package/dist/shared/lucide-icons/file-json.svg +1 -0
  607. package/dist/shared/lucide-icons/file-json2.svg +1 -0
  608. package/dist/shared/lucide-icons/file-key.svg +1 -0
  609. package/dist/shared/lucide-icons/file-key2.svg +1 -0
  610. package/dist/shared/lucide-icons/file-lock.svg +1 -0
  611. package/dist/shared/lucide-icons/file-lock2.svg +1 -0
  612. package/dist/shared/lucide-icons/file-minus.svg +1 -0
  613. package/dist/shared/lucide-icons/file-minus2.svg +1 -0
  614. package/dist/shared/lucide-icons/file-music.svg +1 -0
  615. package/dist/shared/lucide-icons/file-output.svg +1 -0
  616. package/dist/shared/lucide-icons/file-pen-line.svg +1 -0
  617. package/dist/shared/lucide-icons/file-pen.svg +1 -0
  618. package/dist/shared/lucide-icons/file-plus.svg +1 -0
  619. package/dist/shared/lucide-icons/file-plus2.svg +1 -0
  620. package/dist/shared/lucide-icons/file-question.svg +1 -0
  621. package/dist/shared/lucide-icons/file-scan.svg +1 -0
  622. package/dist/shared/lucide-icons/file-search.svg +1 -0
  623. package/dist/shared/lucide-icons/file-search2.svg +1 -0
  624. package/dist/shared/lucide-icons/file-sliders.svg +1 -0
  625. package/dist/shared/lucide-icons/file-spreadsheet.svg +1 -0
  626. package/dist/shared/lucide-icons/file-stack.svg +1 -0
  627. package/dist/shared/lucide-icons/file-symlink.svg +1 -0
  628. package/dist/shared/lucide-icons/file-terminal.svg +1 -0
  629. package/dist/shared/lucide-icons/file-text.svg +1 -0
  630. package/dist/shared/lucide-icons/file-type.svg +1 -0
  631. package/dist/shared/lucide-icons/file-type2.svg +1 -0
  632. package/dist/shared/lucide-icons/file-up.svg +1 -0
  633. package/dist/shared/lucide-icons/file-user.svg +1 -0
  634. package/dist/shared/lucide-icons/file-video.svg +1 -0
  635. package/dist/shared/lucide-icons/file-video2.svg +1 -0
  636. package/dist/shared/lucide-icons/file-volume.svg +1 -0
  637. package/dist/shared/lucide-icons/file-volume2.svg +1 -0
  638. package/dist/shared/lucide-icons/file-warning.svg +1 -0
  639. package/dist/shared/lucide-icons/file-x.svg +1 -0
  640. package/dist/shared/lucide-icons/file-x2.svg +1 -0
  641. package/dist/shared/lucide-icons/file.svg +1 -0
  642. package/dist/shared/lucide-icons/files.svg +1 -0
  643. package/dist/shared/lucide-icons/film.svg +1 -0
  644. package/dist/shared/lucide-icons/filter-x.svg +1 -0
  645. package/dist/shared/lucide-icons/filter.svg +1 -0
  646. package/dist/shared/lucide-icons/fingerprint.svg +1 -0
  647. package/dist/shared/lucide-icons/fire-extinguisher.svg +1 -0
  648. package/dist/shared/lucide-icons/fish-off.svg +1 -0
  649. package/dist/shared/lucide-icons/fish-symbol.svg +1 -0
  650. package/dist/shared/lucide-icons/fish.svg +1 -0
  651. package/dist/shared/lucide-icons/flag-off.svg +1 -0
  652. package/dist/shared/lucide-icons/flag-triangle-left.svg +1 -0
  653. package/dist/shared/lucide-icons/flag-triangle-right.svg +1 -0
  654. package/dist/shared/lucide-icons/flag.svg +1 -0
  655. package/dist/shared/lucide-icons/flame-kindling.svg +1 -0
  656. package/dist/shared/lucide-icons/flame.svg +1 -0
  657. package/dist/shared/lucide-icons/flashlight-off.svg +1 -0
  658. package/dist/shared/lucide-icons/flashlight.svg +1 -0
  659. package/dist/shared/lucide-icons/flask-conical-off.svg +1 -0
  660. package/dist/shared/lucide-icons/flask-conical.svg +1 -0
  661. package/dist/shared/lucide-icons/flask-round.svg +1 -0
  662. package/dist/shared/lucide-icons/flip-horizontal.svg +1 -0
  663. package/dist/shared/lucide-icons/flip-horizontal2.svg +1 -0
  664. package/dist/shared/lucide-icons/flip-vertical.svg +1 -0
  665. package/dist/shared/lucide-icons/flip-vertical2.svg +1 -0
  666. package/dist/shared/lucide-icons/flower.svg +1 -0
  667. package/dist/shared/lucide-icons/flower2.svg +1 -0
  668. package/dist/shared/lucide-icons/focus.svg +1 -0
  669. package/dist/shared/lucide-icons/fold-horizontal.svg +1 -0
  670. package/dist/shared/lucide-icons/fold-vertical.svg +1 -0
  671. package/dist/shared/lucide-icons/folder-archive.svg +1 -0
  672. package/dist/shared/lucide-icons/folder-check.svg +1 -0
  673. package/dist/shared/lucide-icons/folder-clock.svg +1 -0
  674. package/dist/shared/lucide-icons/folder-closed.svg +1 -0
  675. package/dist/shared/lucide-icons/folder-code.svg +1 -0
  676. package/dist/shared/lucide-icons/folder-cog.svg +1 -0
  677. package/dist/shared/lucide-icons/folder-dot.svg +1 -0
  678. package/dist/shared/lucide-icons/folder-down.svg +1 -0
  679. package/dist/shared/lucide-icons/folder-git.svg +1 -0
  680. package/dist/shared/lucide-icons/folder-git2.svg +1 -0
  681. package/dist/shared/lucide-icons/folder-heart.svg +1 -0
  682. package/dist/shared/lucide-icons/folder-input.svg +1 -0
  683. package/dist/shared/lucide-icons/folder-kanban.svg +1 -0
  684. package/dist/shared/lucide-icons/folder-key.svg +1 -0
  685. package/dist/shared/lucide-icons/folder-lock.svg +1 -0
  686. package/dist/shared/lucide-icons/folder-minus.svg +1 -0
  687. package/dist/shared/lucide-icons/folder-open-dot.svg +1 -0
  688. package/dist/shared/lucide-icons/folder-open.svg +1 -0
  689. package/dist/shared/lucide-icons/folder-output.svg +1 -0
  690. package/dist/shared/lucide-icons/folder-pen.svg +1 -0
  691. package/dist/shared/lucide-icons/folder-plus.svg +1 -0
  692. package/dist/shared/lucide-icons/folder-root.svg +1 -0
  693. package/dist/shared/lucide-icons/folder-search.svg +1 -0
  694. package/dist/shared/lucide-icons/folder-search2.svg +1 -0
  695. package/dist/shared/lucide-icons/folder-symlink.svg +1 -0
  696. package/dist/shared/lucide-icons/folder-sync.svg +1 -0
  697. package/dist/shared/lucide-icons/folder-tree.svg +1 -0
  698. package/dist/shared/lucide-icons/folder-up.svg +1 -0
  699. package/dist/shared/lucide-icons/folder-x.svg +1 -0
  700. package/dist/shared/lucide-icons/folder.svg +1 -0
  701. package/dist/shared/lucide-icons/folders.svg +1 -0
  702. package/dist/shared/lucide-icons/footprints.svg +1 -0
  703. package/dist/shared/lucide-icons/forklift.svg +1 -0
  704. package/dist/shared/lucide-icons/forward.svg +1 -0
  705. package/dist/shared/lucide-icons/frame.svg +1 -0
  706. package/dist/shared/lucide-icons/framer.svg +1 -0
  707. package/dist/shared/lucide-icons/frown.svg +1 -0
  708. package/dist/shared/lucide-icons/fuel.svg +1 -0
  709. package/dist/shared/lucide-icons/fullscreen.svg +1 -0
  710. package/dist/shared/lucide-icons/gallery-horizontal-end.svg +1 -0
  711. package/dist/shared/lucide-icons/gallery-horizontal.svg +1 -0
  712. package/dist/shared/lucide-icons/gallery-thumbnails.svg +1 -0
  713. package/dist/shared/lucide-icons/gallery-vertical-end.svg +1 -0
  714. package/dist/shared/lucide-icons/gallery-vertical.svg +1 -0
  715. package/dist/shared/lucide-icons/gamepad.svg +1 -0
  716. package/dist/shared/lucide-icons/gamepad2.svg +1 -0
  717. package/dist/shared/lucide-icons/gauge.svg +1 -0
  718. package/dist/shared/lucide-icons/gavel.svg +1 -0
  719. package/dist/shared/lucide-icons/gem.svg +1 -0
  720. package/dist/shared/lucide-icons/ghost.svg +1 -0
  721. package/dist/shared/lucide-icons/gift.svg +1 -0
  722. package/dist/shared/lucide-icons/git-branch-plus.svg +1 -0
  723. package/dist/shared/lucide-icons/git-branch.svg +1 -0
  724. package/dist/shared/lucide-icons/git-commit-horizontal.svg +1 -0
  725. package/dist/shared/lucide-icons/git-commit-vertical.svg +1 -0
  726. package/dist/shared/lucide-icons/git-compare-arrows.svg +1 -0
  727. package/dist/shared/lucide-icons/git-compare.svg +1 -0
  728. package/dist/shared/lucide-icons/git-fork.svg +1 -0
  729. package/dist/shared/lucide-icons/git-graph.svg +1 -0
  730. package/dist/shared/lucide-icons/git-merge.svg +1 -0
  731. package/dist/shared/lucide-icons/git-pull-request-arrow.svg +1 -0
  732. package/dist/shared/lucide-icons/git-pull-request-closed.svg +1 -0
  733. package/dist/shared/lucide-icons/git-pull-request-create-arrow.svg +1 -0
  734. package/dist/shared/lucide-icons/git-pull-request-create.svg +1 -0
  735. package/dist/shared/lucide-icons/git-pull-request-draft.svg +1 -0
  736. package/dist/shared/lucide-icons/git-pull-request.svg +1 -0
  737. package/dist/shared/lucide-icons/github.svg +1 -0
  738. package/dist/shared/lucide-icons/gitlab.svg +1 -0
  739. package/dist/shared/lucide-icons/glass-water.svg +1 -0
  740. package/dist/shared/lucide-icons/glasses.svg +1 -0
  741. package/dist/shared/lucide-icons/globe-lock.svg +1 -0
  742. package/dist/shared/lucide-icons/globe.svg +1 -0
  743. package/dist/shared/lucide-icons/goal.svg +1 -0
  744. package/dist/shared/lucide-icons/grab.svg +1 -0
  745. package/dist/shared/lucide-icons/graduation-cap.svg +1 -0
  746. package/dist/shared/lucide-icons/grape.svg +1 -0
  747. package/dist/shared/lucide-icons/grid2x2-check.svg +1 -0
  748. package/dist/shared/lucide-icons/grid2x2-plus.svg +1 -0
  749. package/dist/shared/lucide-icons/grid2x2-x.svg +1 -0
  750. package/dist/shared/lucide-icons/grid2x2.svg +1 -0
  751. package/dist/shared/lucide-icons/grid3x3.svg +1 -0
  752. package/dist/shared/lucide-icons/grip-horizontal.svg +1 -0
  753. package/dist/shared/lucide-icons/grip-vertical.svg +1 -0
  754. package/dist/shared/lucide-icons/grip.svg +1 -0
  755. package/dist/shared/lucide-icons/group.svg +1 -0
  756. package/dist/shared/lucide-icons/guitar.svg +1 -0
  757. package/dist/shared/lucide-icons/ham.svg +1 -0
  758. package/dist/shared/lucide-icons/hammer.svg +1 -0
  759. package/dist/shared/lucide-icons/hand-coins.svg +1 -0
  760. package/dist/shared/lucide-icons/hand-heart.svg +1 -0
  761. package/dist/shared/lucide-icons/hand-helping.svg +1 -0
  762. package/dist/shared/lucide-icons/hand-metal.svg +1 -0
  763. package/dist/shared/lucide-icons/hand-platter.svg +1 -0
  764. package/dist/shared/lucide-icons/hand.svg +1 -0
  765. package/dist/shared/lucide-icons/handshake.svg +1 -0
  766. package/dist/shared/lucide-icons/hard-drive-download.svg +1 -0
  767. package/dist/shared/lucide-icons/hard-drive-upload.svg +1 -0
  768. package/dist/shared/lucide-icons/hard-drive.svg +1 -0
  769. package/dist/shared/lucide-icons/hard-hat.svg +1 -0
  770. package/dist/shared/lucide-icons/hash.svg +1 -0
  771. package/dist/shared/lucide-icons/haze.svg +1 -0
  772. package/dist/shared/lucide-icons/hdmi-port.svg +1 -0
  773. package/dist/shared/lucide-icons/heading.svg +1 -0
  774. package/dist/shared/lucide-icons/heading1.svg +1 -0
  775. package/dist/shared/lucide-icons/heading2.svg +1 -0
  776. package/dist/shared/lucide-icons/heading3.svg +1 -0
  777. package/dist/shared/lucide-icons/heading4.svg +1 -0
  778. package/dist/shared/lucide-icons/heading5.svg +1 -0
  779. package/dist/shared/lucide-icons/heading6.svg +1 -0
  780. package/dist/shared/lucide-icons/headphone-off.svg +1 -0
  781. package/dist/shared/lucide-icons/headphones.svg +1 -0
  782. package/dist/shared/lucide-icons/headset.svg +1 -0
  783. package/dist/shared/lucide-icons/heart-crack.svg +1 -0
  784. package/dist/shared/lucide-icons/heart-handshake.svg +1 -0
  785. package/dist/shared/lucide-icons/heart-off.svg +1 -0
  786. package/dist/shared/lucide-icons/heart-pulse.svg +1 -0
  787. package/dist/shared/lucide-icons/heart.svg +1 -0
  788. package/dist/shared/lucide-icons/heater.svg +1 -0
  789. package/dist/shared/lucide-icons/hexagon.svg +1 -0
  790. package/dist/shared/lucide-icons/highlighter.svg +1 -0
  791. package/dist/shared/lucide-icons/history.svg +1 -0
  792. package/dist/shared/lucide-icons/hop-off.svg +1 -0
  793. package/dist/shared/lucide-icons/hop.svg +1 -0
  794. package/dist/shared/lucide-icons/hospital.svg +1 -0
  795. package/dist/shared/lucide-icons/hotel.svg +1 -0
  796. package/dist/shared/lucide-icons/hourglass.svg +1 -0
  797. package/dist/shared/lucide-icons/house-plug.svg +1 -0
  798. package/dist/shared/lucide-icons/house-plus.svg +1 -0
  799. package/dist/shared/lucide-icons/house.svg +1 -0
  800. package/dist/shared/lucide-icons/ice-cream-bowl.svg +1 -0
  801. package/dist/shared/lucide-icons/ice-cream-cone.svg +1 -0
  802. package/dist/shared/lucide-icons/id-card.svg +1 -0
  803. package/dist/shared/lucide-icons/image-down.svg +1 -0
  804. package/dist/shared/lucide-icons/image-minus.svg +1 -0
  805. package/dist/shared/lucide-icons/image-off.svg +1 -0
  806. package/dist/shared/lucide-icons/image-play.svg +1 -0
  807. package/dist/shared/lucide-icons/image-plus.svg +1 -0
  808. package/dist/shared/lucide-icons/image-up.svg +1 -0
  809. package/dist/shared/lucide-icons/image-upscale.svg +1 -0
  810. package/dist/shared/lucide-icons/image.svg +1 -0
  811. package/dist/shared/lucide-icons/images.svg +1 -0
  812. package/dist/shared/lucide-icons/import.svg +1 -0
  813. package/dist/shared/lucide-icons/inbox.svg +1 -0
  814. package/dist/shared/lucide-icons/indent-decrease.svg +1 -0
  815. package/dist/shared/lucide-icons/indent-increase.svg +1 -0
  816. package/dist/shared/lucide-icons/indian-rupee.svg +1 -0
  817. package/dist/shared/lucide-icons/infinity.svg +1 -0
  818. package/dist/shared/lucide-icons/info.svg +1 -0
  819. package/dist/shared/lucide-icons/inspection-panel.svg +1 -0
  820. package/dist/shared/lucide-icons/instagram.svg +1 -0
  821. package/dist/shared/lucide-icons/italic.svg +1 -0
  822. package/dist/shared/lucide-icons/iteration-ccw.svg +1 -0
  823. package/dist/shared/lucide-icons/iteration-cw.svg +1 -0
  824. package/dist/shared/lucide-icons/japanese-yen.svg +1 -0
  825. package/dist/shared/lucide-icons/joystick.svg +1 -0
  826. package/dist/shared/lucide-icons/kanban.svg +1 -0
  827. package/dist/shared/lucide-icons/key-round.svg +1 -0
  828. package/dist/shared/lucide-icons/key-square.svg +1 -0
  829. package/dist/shared/lucide-icons/key.svg +1 -0
  830. package/dist/shared/lucide-icons/keyboard-music.svg +1 -0
  831. package/dist/shared/lucide-icons/keyboard-off.svg +1 -0
  832. package/dist/shared/lucide-icons/keyboard.svg +1 -0
  833. package/dist/shared/lucide-icons/lamp-ceiling.svg +1 -0
  834. package/dist/shared/lucide-icons/lamp-desk.svg +1 -0
  835. package/dist/shared/lucide-icons/lamp-floor.svg +1 -0
  836. package/dist/shared/lucide-icons/lamp-wall-down.svg +1 -0
  837. package/dist/shared/lucide-icons/lamp-wall-up.svg +1 -0
  838. package/dist/shared/lucide-icons/lamp.svg +1 -0
  839. package/dist/shared/lucide-icons/land-plot.svg +1 -0
  840. package/dist/shared/lucide-icons/landmark.svg +1 -0
  841. package/dist/shared/lucide-icons/languages.svg +1 -0
  842. package/dist/shared/lucide-icons/laptop-minimal-check.svg +1 -0
  843. package/dist/shared/lucide-icons/laptop-minimal.svg +1 -0
  844. package/dist/shared/lucide-icons/laptop.svg +1 -0
  845. package/dist/shared/lucide-icons/lasso-select.svg +1 -0
  846. package/dist/shared/lucide-icons/lasso.svg +1 -0
  847. package/dist/shared/lucide-icons/laugh.svg +1 -0
  848. package/dist/shared/lucide-icons/layers.svg +1 -0
  849. package/dist/shared/lucide-icons/layers2.svg +1 -0
  850. package/dist/shared/lucide-icons/layout-dashboard.svg +1 -0
  851. package/dist/shared/lucide-icons/layout-grid.svg +1 -0
  852. package/dist/shared/lucide-icons/layout-list.svg +1 -0
  853. package/dist/shared/lucide-icons/layout-panel-left.svg +1 -0
  854. package/dist/shared/lucide-icons/layout-panel-top.svg +1 -0
  855. package/dist/shared/lucide-icons/layout-template.svg +1 -0
  856. package/dist/shared/lucide-icons/leaf.svg +1 -0
  857. package/dist/shared/lucide-icons/leafy-green.svg +1 -0
  858. package/dist/shared/lucide-icons/lectern.svg +1 -0
  859. package/dist/shared/lucide-icons/letter-text.svg +1 -0
  860. package/dist/shared/lucide-icons/library-big.svg +1 -0
  861. package/dist/shared/lucide-icons/library.svg +1 -0
  862. package/dist/shared/lucide-icons/life-buoy.svg +1 -0
  863. package/dist/shared/lucide-icons/ligature.svg +1 -0
  864. package/dist/shared/lucide-icons/lightbulb-off.svg +1 -0
  865. package/dist/shared/lucide-icons/lightbulb.svg +1 -0
  866. package/dist/shared/lucide-icons/link.svg +1 -0
  867. package/dist/shared/lucide-icons/link2-off.svg +1 -0
  868. package/dist/shared/lucide-icons/link2.svg +1 -0
  869. package/dist/shared/lucide-icons/linkedin.svg +1 -0
  870. package/dist/shared/lucide-icons/list-check.svg +1 -0
  871. package/dist/shared/lucide-icons/list-checks.svg +1 -0
  872. package/dist/shared/lucide-icons/list-collapse.svg +1 -0
  873. package/dist/shared/lucide-icons/list-end.svg +1 -0
  874. package/dist/shared/lucide-icons/list-filter-plus.svg +1 -0
  875. package/dist/shared/lucide-icons/list-filter.svg +1 -0
  876. package/dist/shared/lucide-icons/list-minus.svg +1 -0
  877. package/dist/shared/lucide-icons/list-music.svg +1 -0
  878. package/dist/shared/lucide-icons/list-ordered.svg +1 -0
  879. package/dist/shared/lucide-icons/list-plus.svg +1 -0
  880. package/dist/shared/lucide-icons/list-restart.svg +1 -0
  881. package/dist/shared/lucide-icons/list-start.svg +1 -0
  882. package/dist/shared/lucide-icons/list-todo.svg +1 -0
  883. package/dist/shared/lucide-icons/list-tree.svg +1 -0
  884. package/dist/shared/lucide-icons/list-video.svg +1 -0
  885. package/dist/shared/lucide-icons/list-x.svg +1 -0
  886. package/dist/shared/lucide-icons/list.svg +1 -0
  887. package/dist/shared/lucide-icons/loader-circle.svg +1 -0
  888. package/dist/shared/lucide-icons/loader-pinwheel.svg +1 -0
  889. package/dist/shared/lucide-icons/loader.svg +1 -0
  890. package/dist/shared/lucide-icons/locate-fixed.svg +1 -0
  891. package/dist/shared/lucide-icons/locate-off.svg +1 -0
  892. package/dist/shared/lucide-icons/locate.svg +1 -0
  893. package/dist/shared/lucide-icons/lock-keyhole-open.svg +1 -0
  894. package/dist/shared/lucide-icons/lock-keyhole.svg +1 -0
  895. package/dist/shared/lucide-icons/lock-open.svg +1 -0
  896. package/dist/shared/lucide-icons/lock.svg +1 -0
  897. package/dist/shared/lucide-icons/log-in.svg +1 -0
  898. package/dist/shared/lucide-icons/log-out.svg +1 -0
  899. package/dist/shared/lucide-icons/logs.svg +1 -0
  900. package/dist/shared/lucide-icons/lollipop.svg +1 -0
  901. package/dist/shared/lucide-icons/luggage.svg +1 -0
  902. package/dist/shared/lucide-icons/magnet.svg +1 -0
  903. package/dist/shared/lucide-icons/mail-check.svg +1 -0
  904. package/dist/shared/lucide-icons/mail-minus.svg +1 -0
  905. package/dist/shared/lucide-icons/mail-open.svg +1 -0
  906. package/dist/shared/lucide-icons/mail-plus.svg +1 -0
  907. package/dist/shared/lucide-icons/mail-question.svg +1 -0
  908. package/dist/shared/lucide-icons/mail-search.svg +1 -0
  909. package/dist/shared/lucide-icons/mail-warning.svg +1 -0
  910. package/dist/shared/lucide-icons/mail-x.svg +1 -0
  911. package/dist/shared/lucide-icons/mail.svg +1 -0
  912. package/dist/shared/lucide-icons/mailbox.svg +1 -0
  913. package/dist/shared/lucide-icons/mails.svg +1 -0
  914. package/dist/shared/lucide-icons/manifest.json +1 -0
  915. package/dist/shared/lucide-icons/map-pin-check-inside.svg +1 -0
  916. package/dist/shared/lucide-icons/map-pin-check.svg +1 -0
  917. package/dist/shared/lucide-icons/map-pin-house.svg +1 -0
  918. package/dist/shared/lucide-icons/map-pin-minus-inside.svg +1 -0
  919. package/dist/shared/lucide-icons/map-pin-minus.svg +1 -0
  920. package/dist/shared/lucide-icons/map-pin-off.svg +1 -0
  921. package/dist/shared/lucide-icons/map-pin-plus-inside.svg +1 -0
  922. package/dist/shared/lucide-icons/map-pin-plus.svg +1 -0
  923. package/dist/shared/lucide-icons/map-pin-x-inside.svg +1 -0
  924. package/dist/shared/lucide-icons/map-pin-x.svg +1 -0
  925. package/dist/shared/lucide-icons/map-pin.svg +1 -0
  926. package/dist/shared/lucide-icons/map-pinned.svg +1 -0
  927. package/dist/shared/lucide-icons/map.svg +1 -0
  928. package/dist/shared/lucide-icons/martini.svg +1 -0
  929. package/dist/shared/lucide-icons/maximize.svg +1 -0
  930. package/dist/shared/lucide-icons/maximize2.svg +1 -0
  931. package/dist/shared/lucide-icons/medal.svg +1 -0
  932. package/dist/shared/lucide-icons/megaphone-off.svg +1 -0
  933. package/dist/shared/lucide-icons/megaphone.svg +1 -0
  934. package/dist/shared/lucide-icons/meh.svg +1 -0
  935. package/dist/shared/lucide-icons/memory-stick.svg +1 -0
  936. package/dist/shared/lucide-icons/menu.svg +1 -0
  937. package/dist/shared/lucide-icons/merge.svg +1 -0
  938. package/dist/shared/lucide-icons/message-circle-code.svg +1 -0
  939. package/dist/shared/lucide-icons/message-circle-dashed.svg +1 -0
  940. package/dist/shared/lucide-icons/message-circle-heart.svg +1 -0
  941. package/dist/shared/lucide-icons/message-circle-more.svg +1 -0
  942. package/dist/shared/lucide-icons/message-circle-off.svg +1 -0
  943. package/dist/shared/lucide-icons/message-circle-plus.svg +1 -0
  944. package/dist/shared/lucide-icons/message-circle-question.svg +1 -0
  945. package/dist/shared/lucide-icons/message-circle-reply.svg +1 -0
  946. package/dist/shared/lucide-icons/message-circle-warning.svg +1 -0
  947. package/dist/shared/lucide-icons/message-circle-x.svg +1 -0
  948. package/dist/shared/lucide-icons/message-circle.svg +1 -0
  949. package/dist/shared/lucide-icons/message-square-code.svg +1 -0
  950. package/dist/shared/lucide-icons/message-square-dashed.svg +1 -0
  951. package/dist/shared/lucide-icons/message-square-diff.svg +1 -0
  952. package/dist/shared/lucide-icons/message-square-dot.svg +1 -0
  953. package/dist/shared/lucide-icons/message-square-heart.svg +1 -0
  954. package/dist/shared/lucide-icons/message-square-lock.svg +1 -0
  955. package/dist/shared/lucide-icons/message-square-more.svg +1 -0
  956. package/dist/shared/lucide-icons/message-square-off.svg +1 -0
  957. package/dist/shared/lucide-icons/message-square-plus.svg +1 -0
  958. package/dist/shared/lucide-icons/message-square-quote.svg +1 -0
  959. package/dist/shared/lucide-icons/message-square-reply.svg +1 -0
  960. package/dist/shared/lucide-icons/message-square-share.svg +1 -0
  961. package/dist/shared/lucide-icons/message-square-text.svg +1 -0
  962. package/dist/shared/lucide-icons/message-square-warning.svg +1 -0
  963. package/dist/shared/lucide-icons/message-square-x.svg +1 -0
  964. package/dist/shared/lucide-icons/message-square.svg +1 -0
  965. package/dist/shared/lucide-icons/messages-square.svg +1 -0
  966. package/dist/shared/lucide-icons/mic-off.svg +1 -0
  967. package/dist/shared/lucide-icons/mic-vocal.svg +1 -0
  968. package/dist/shared/lucide-icons/mic.svg +1 -0
  969. package/dist/shared/lucide-icons/microchip.svg +1 -0
  970. package/dist/shared/lucide-icons/microscope.svg +1 -0
  971. package/dist/shared/lucide-icons/microwave.svg +1 -0
  972. package/dist/shared/lucide-icons/milestone.svg +1 -0
  973. package/dist/shared/lucide-icons/milk-off.svg +1 -0
  974. package/dist/shared/lucide-icons/milk.svg +1 -0
  975. package/dist/shared/lucide-icons/minimize.svg +1 -0
  976. package/dist/shared/lucide-icons/minimize2.svg +1 -0
  977. package/dist/shared/lucide-icons/minus.svg +1 -0
  978. package/dist/shared/lucide-icons/monitor-check.svg +1 -0
  979. package/dist/shared/lucide-icons/monitor-cog.svg +1 -0
  980. package/dist/shared/lucide-icons/monitor-dot.svg +1 -0
  981. package/dist/shared/lucide-icons/monitor-down.svg +1 -0
  982. package/dist/shared/lucide-icons/monitor-off.svg +1 -0
  983. package/dist/shared/lucide-icons/monitor-pause.svg +1 -0
  984. package/dist/shared/lucide-icons/monitor-play.svg +1 -0
  985. package/dist/shared/lucide-icons/monitor-smartphone.svg +1 -0
  986. package/dist/shared/lucide-icons/monitor-speaker.svg +1 -0
  987. package/dist/shared/lucide-icons/monitor-stop.svg +1 -0
  988. package/dist/shared/lucide-icons/monitor-up.svg +1 -0
  989. package/dist/shared/lucide-icons/monitor-x.svg +1 -0
  990. package/dist/shared/lucide-icons/monitor.svg +1 -0
  991. package/dist/shared/lucide-icons/moon-star.svg +1 -0
  992. package/dist/shared/lucide-icons/moon.svg +1 -0
  993. package/dist/shared/lucide-icons/mountain-snow.svg +1 -0
  994. package/dist/shared/lucide-icons/mountain.svg +1 -0
  995. package/dist/shared/lucide-icons/mouse-off.svg +1 -0
  996. package/dist/shared/lucide-icons/mouse-pointer-ban.svg +1 -0
  997. package/dist/shared/lucide-icons/mouse-pointer-click.svg +1 -0
  998. package/dist/shared/lucide-icons/mouse-pointer.svg +1 -0
  999. package/dist/shared/lucide-icons/mouse-pointer2.svg +1 -0
  1000. package/dist/shared/lucide-icons/mouse.svg +1 -0
  1001. package/dist/shared/lucide-icons/move-diagonal.svg +1 -0
  1002. package/dist/shared/lucide-icons/move-diagonal2.svg +1 -0
  1003. package/dist/shared/lucide-icons/move-down-left.svg +1 -0
  1004. package/dist/shared/lucide-icons/move-down-right.svg +1 -0
  1005. package/dist/shared/lucide-icons/move-down.svg +1 -0
  1006. package/dist/shared/lucide-icons/move-horizontal.svg +1 -0
  1007. package/dist/shared/lucide-icons/move-left.svg +1 -0
  1008. package/dist/shared/lucide-icons/move-right.svg +1 -0
  1009. package/dist/shared/lucide-icons/move-up-left.svg +1 -0
  1010. package/dist/shared/lucide-icons/move-up-right.svg +1 -0
  1011. package/dist/shared/lucide-icons/move-up.svg +1 -0
  1012. package/dist/shared/lucide-icons/move-vertical.svg +1 -0
  1013. package/dist/shared/lucide-icons/move.svg +1 -0
  1014. package/dist/shared/lucide-icons/move3d.svg +1 -0
  1015. package/dist/shared/lucide-icons/music.svg +1 -0
  1016. package/dist/shared/lucide-icons/music2.svg +1 -0
  1017. package/dist/shared/lucide-icons/music3.svg +1 -0
  1018. package/dist/shared/lucide-icons/music4.svg +1 -0
  1019. package/dist/shared/lucide-icons/navigation-off.svg +1 -0
  1020. package/dist/shared/lucide-icons/navigation.svg +1 -0
  1021. package/dist/shared/lucide-icons/navigation2-off.svg +1 -0
  1022. package/dist/shared/lucide-icons/navigation2.svg +1 -0
  1023. package/dist/shared/lucide-icons/network.svg +1 -0
  1024. package/dist/shared/lucide-icons/newspaper.svg +1 -0
  1025. package/dist/shared/lucide-icons/nfc.svg +1 -0
  1026. package/dist/shared/lucide-icons/notebook-pen.svg +1 -0
  1027. package/dist/shared/lucide-icons/notebook-tabs.svg +1 -0
  1028. package/dist/shared/lucide-icons/notebook-text.svg +1 -0
  1029. package/dist/shared/lucide-icons/notebook.svg +1 -0
  1030. package/dist/shared/lucide-icons/notepad-text-dashed.svg +1 -0
  1031. package/dist/shared/lucide-icons/notepad-text.svg +1 -0
  1032. package/dist/shared/lucide-icons/nut-off.svg +1 -0
  1033. package/dist/shared/lucide-icons/nut.svg +1 -0
  1034. package/dist/shared/lucide-icons/octagon-alert.svg +1 -0
  1035. package/dist/shared/lucide-icons/octagon-minus.svg +1 -0
  1036. package/dist/shared/lucide-icons/octagon-pause.svg +1 -0
  1037. package/dist/shared/lucide-icons/octagon-x.svg +1 -0
  1038. package/dist/shared/lucide-icons/octagon.svg +1 -0
  1039. package/dist/shared/lucide-icons/omega.svg +1 -0
  1040. package/dist/shared/lucide-icons/option.svg +1 -0
  1041. package/dist/shared/lucide-icons/orbit.svg +1 -0
  1042. package/dist/shared/lucide-icons/origami.svg +1 -0
  1043. package/dist/shared/lucide-icons/package-check.svg +1 -0
  1044. package/dist/shared/lucide-icons/package-minus.svg +1 -0
  1045. package/dist/shared/lucide-icons/package-open.svg +1 -0
  1046. package/dist/shared/lucide-icons/package-plus.svg +1 -0
  1047. package/dist/shared/lucide-icons/package-search.svg +1 -0
  1048. package/dist/shared/lucide-icons/package-x.svg +1 -0
  1049. package/dist/shared/lucide-icons/package.svg +1 -0
  1050. package/dist/shared/lucide-icons/package2.svg +1 -0
  1051. package/dist/shared/lucide-icons/paint-bucket.svg +1 -0
  1052. package/dist/shared/lucide-icons/paint-roller.svg +1 -0
  1053. package/dist/shared/lucide-icons/paintbrush-vertical.svg +1 -0
  1054. package/dist/shared/lucide-icons/paintbrush.svg +1 -0
  1055. package/dist/shared/lucide-icons/palette.svg +1 -0
  1056. package/dist/shared/lucide-icons/panel-bottom-close.svg +1 -0
  1057. package/dist/shared/lucide-icons/panel-bottom-dashed.svg +1 -0
  1058. package/dist/shared/lucide-icons/panel-bottom-open.svg +1 -0
  1059. package/dist/shared/lucide-icons/panel-bottom.svg +1 -0
  1060. package/dist/shared/lucide-icons/panel-left-close.svg +1 -0
  1061. package/dist/shared/lucide-icons/panel-left-dashed.svg +1 -0
  1062. package/dist/shared/lucide-icons/panel-left-open.svg +1 -0
  1063. package/dist/shared/lucide-icons/panel-left.svg +1 -0
  1064. package/dist/shared/lucide-icons/panel-right-close.svg +1 -0
  1065. package/dist/shared/lucide-icons/panel-right-dashed.svg +1 -0
  1066. package/dist/shared/lucide-icons/panel-right-open.svg +1 -0
  1067. package/dist/shared/lucide-icons/panel-right.svg +1 -0
  1068. package/dist/shared/lucide-icons/panel-top-close.svg +1 -0
  1069. package/dist/shared/lucide-icons/panel-top-dashed.svg +1 -0
  1070. package/dist/shared/lucide-icons/panel-top-open.svg +1 -0
  1071. package/dist/shared/lucide-icons/panel-top.svg +1 -0
  1072. package/dist/shared/lucide-icons/panels-left-bottom.svg +1 -0
  1073. package/dist/shared/lucide-icons/panels-right-bottom.svg +1 -0
  1074. package/dist/shared/lucide-icons/panels-top-left.svg +1 -0
  1075. package/dist/shared/lucide-icons/paperclip.svg +1 -0
  1076. package/dist/shared/lucide-icons/parentheses.svg +1 -0
  1077. package/dist/shared/lucide-icons/parking-meter.svg +1 -0
  1078. package/dist/shared/lucide-icons/party-popper.svg +1 -0
  1079. package/dist/shared/lucide-icons/pause.svg +1 -0
  1080. package/dist/shared/lucide-icons/paw-print.svg +1 -0
  1081. package/dist/shared/lucide-icons/pc-case.svg +1 -0
  1082. package/dist/shared/lucide-icons/pen-line.svg +1 -0
  1083. package/dist/shared/lucide-icons/pen-off.svg +1 -0
  1084. package/dist/shared/lucide-icons/pen-tool.svg +1 -0
  1085. package/dist/shared/lucide-icons/pen.svg +1 -0
  1086. package/dist/shared/lucide-icons/pencil-line.svg +1 -0
  1087. package/dist/shared/lucide-icons/pencil-off.svg +1 -0
  1088. package/dist/shared/lucide-icons/pencil-ruler.svg +1 -0
  1089. package/dist/shared/lucide-icons/pencil.svg +1 -0
  1090. package/dist/shared/lucide-icons/pentagon.svg +1 -0
  1091. package/dist/shared/lucide-icons/percent.svg +1 -0
  1092. package/dist/shared/lucide-icons/person-standing.svg +1 -0
  1093. package/dist/shared/lucide-icons/philippine-peso.svg +1 -0
  1094. package/dist/shared/lucide-icons/phone-call.svg +1 -0
  1095. package/dist/shared/lucide-icons/phone-forwarded.svg +1 -0
  1096. package/dist/shared/lucide-icons/phone-incoming.svg +1 -0
  1097. package/dist/shared/lucide-icons/phone-missed.svg +1 -0
  1098. package/dist/shared/lucide-icons/phone-off.svg +1 -0
  1099. package/dist/shared/lucide-icons/phone-outgoing.svg +1 -0
  1100. package/dist/shared/lucide-icons/phone.svg +1 -0
  1101. package/dist/shared/lucide-icons/pi.svg +1 -0
  1102. package/dist/shared/lucide-icons/piano.svg +1 -0
  1103. package/dist/shared/lucide-icons/pickaxe.svg +1 -0
  1104. package/dist/shared/lucide-icons/picture-in-picture.svg +1 -0
  1105. package/dist/shared/lucide-icons/picture-in-picture2.svg +1 -0
  1106. package/dist/shared/lucide-icons/piggy-bank.svg +1 -0
  1107. package/dist/shared/lucide-icons/pilcrow-left.svg +1 -0
  1108. package/dist/shared/lucide-icons/pilcrow-right.svg +1 -0
  1109. package/dist/shared/lucide-icons/pilcrow.svg +1 -0
  1110. package/dist/shared/lucide-icons/pill-bottle.svg +1 -0
  1111. package/dist/shared/lucide-icons/pill.svg +1 -0
  1112. package/dist/shared/lucide-icons/pin-off.svg +1 -0
  1113. package/dist/shared/lucide-icons/pin.svg +1 -0
  1114. package/dist/shared/lucide-icons/pipette.svg +1 -0
  1115. package/dist/shared/lucide-icons/pizza.svg +1 -0
  1116. package/dist/shared/lucide-icons/plane-landing.svg +1 -0
  1117. package/dist/shared/lucide-icons/plane-takeoff.svg +1 -0
  1118. package/dist/shared/lucide-icons/plane.svg +1 -0
  1119. package/dist/shared/lucide-icons/play.svg +1 -0
  1120. package/dist/shared/lucide-icons/plug-zap.svg +1 -0
  1121. package/dist/shared/lucide-icons/plug.svg +1 -0
  1122. package/dist/shared/lucide-icons/plug2.svg +1 -0
  1123. package/dist/shared/lucide-icons/plus.svg +1 -0
  1124. package/dist/shared/lucide-icons/pocket-knife.svg +1 -0
  1125. package/dist/shared/lucide-icons/pocket.svg +1 -0
  1126. package/dist/shared/lucide-icons/podcast.svg +1 -0
  1127. package/dist/shared/lucide-icons/pointer-off.svg +1 -0
  1128. package/dist/shared/lucide-icons/pointer.svg +1 -0
  1129. package/dist/shared/lucide-icons/popcorn.svg +1 -0
  1130. package/dist/shared/lucide-icons/popsicle.svg +1 -0
  1131. package/dist/shared/lucide-icons/pound-sterling.svg +1 -0
  1132. package/dist/shared/lucide-icons/power-off.svg +1 -0
  1133. package/dist/shared/lucide-icons/power.svg +1 -0
  1134. package/dist/shared/lucide-icons/presentation.svg +1 -0
  1135. package/dist/shared/lucide-icons/printer-check.svg +1 -0
  1136. package/dist/shared/lucide-icons/printer.svg +1 -0
  1137. package/dist/shared/lucide-icons/projector.svg +1 -0
  1138. package/dist/shared/lucide-icons/proportions.svg +1 -0
  1139. package/dist/shared/lucide-icons/puzzle.svg +1 -0
  1140. package/dist/shared/lucide-icons/pyramid.svg +1 -0
  1141. package/dist/shared/lucide-icons/qr-code.svg +1 -0
  1142. package/dist/shared/lucide-icons/quote.svg +1 -0
  1143. package/dist/shared/lucide-icons/rabbit.svg +1 -0
  1144. package/dist/shared/lucide-icons/radar.svg +1 -0
  1145. package/dist/shared/lucide-icons/radiation.svg +1 -0
  1146. package/dist/shared/lucide-icons/radical.svg +1 -0
  1147. package/dist/shared/lucide-icons/radio-receiver.svg +1 -0
  1148. package/dist/shared/lucide-icons/radio-tower.svg +1 -0
  1149. package/dist/shared/lucide-icons/radio.svg +1 -0
  1150. package/dist/shared/lucide-icons/radius.svg +1 -0
  1151. package/dist/shared/lucide-icons/rail-symbol.svg +1 -0
  1152. package/dist/shared/lucide-icons/rainbow.svg +1 -0
  1153. package/dist/shared/lucide-icons/rat.svg +1 -0
  1154. package/dist/shared/lucide-icons/ratio.svg +1 -0
  1155. package/dist/shared/lucide-icons/receipt-cent.svg +1 -0
  1156. package/dist/shared/lucide-icons/receipt-euro.svg +1 -0
  1157. package/dist/shared/lucide-icons/receipt-indian-rupee.svg +1 -0
  1158. package/dist/shared/lucide-icons/receipt-japanese-yen.svg +1 -0
  1159. package/dist/shared/lucide-icons/receipt-pound-sterling.svg +1 -0
  1160. package/dist/shared/lucide-icons/receipt-russian-ruble.svg +1 -0
  1161. package/dist/shared/lucide-icons/receipt-swiss-franc.svg +1 -0
  1162. package/dist/shared/lucide-icons/receipt-text.svg +1 -0
  1163. package/dist/shared/lucide-icons/receipt.svg +1 -0
  1164. package/dist/shared/lucide-icons/rectangle-ellipsis.svg +1 -0
  1165. package/dist/shared/lucide-icons/rectangle-horizontal.svg +1 -0
  1166. package/dist/shared/lucide-icons/rectangle-vertical.svg +1 -0
  1167. package/dist/shared/lucide-icons/recycle.svg +1 -0
  1168. package/dist/shared/lucide-icons/redo-dot.svg +1 -0
  1169. package/dist/shared/lucide-icons/redo.svg +1 -0
  1170. package/dist/shared/lucide-icons/redo2.svg +1 -0
  1171. package/dist/shared/lucide-icons/refresh-ccw-dot.svg +1 -0
  1172. package/dist/shared/lucide-icons/refresh-ccw.svg +1 -0
  1173. package/dist/shared/lucide-icons/refresh-cw-off.svg +1 -0
  1174. package/dist/shared/lucide-icons/refresh-cw.svg +1 -0
  1175. package/dist/shared/lucide-icons/refrigerator.svg +1 -0
  1176. package/dist/shared/lucide-icons/regex.svg +1 -0
  1177. package/dist/shared/lucide-icons/remove-formatting.svg +1 -0
  1178. package/dist/shared/lucide-icons/repeat.svg +1 -0
  1179. package/dist/shared/lucide-icons/repeat1.svg +1 -0
  1180. package/dist/shared/lucide-icons/repeat2.svg +1 -0
  1181. package/dist/shared/lucide-icons/replace-all.svg +1 -0
  1182. package/dist/shared/lucide-icons/replace.svg +1 -0
  1183. package/dist/shared/lucide-icons/reply-all.svg +1 -0
  1184. package/dist/shared/lucide-icons/reply.svg +1 -0
  1185. package/dist/shared/lucide-icons/rewind.svg +1 -0
  1186. package/dist/shared/lucide-icons/ribbon.svg +1 -0
  1187. package/dist/shared/lucide-icons/rocket.svg +1 -0
  1188. package/dist/shared/lucide-icons/rocking-chair.svg +1 -0
  1189. package/dist/shared/lucide-icons/roller-coaster.svg +1 -0
  1190. package/dist/shared/lucide-icons/rotate-ccw-square.svg +1 -0
  1191. package/dist/shared/lucide-icons/rotate-ccw.svg +1 -0
  1192. package/dist/shared/lucide-icons/rotate-cw-square.svg +1 -0
  1193. package/dist/shared/lucide-icons/rotate-cw.svg +1 -0
  1194. package/dist/shared/lucide-icons/rotate3d.svg +1 -0
  1195. package/dist/shared/lucide-icons/route-off.svg +1 -0
  1196. package/dist/shared/lucide-icons/route.svg +1 -0
  1197. package/dist/shared/lucide-icons/router.svg +1 -0
  1198. package/dist/shared/lucide-icons/rows2.svg +1 -0
  1199. package/dist/shared/lucide-icons/rows3.svg +1 -0
  1200. package/dist/shared/lucide-icons/rows4.svg +1 -0
  1201. package/dist/shared/lucide-icons/rss.svg +1 -0
  1202. package/dist/shared/lucide-icons/ruler.svg +1 -0
  1203. package/dist/shared/lucide-icons/russian-ruble.svg +1 -0
  1204. package/dist/shared/lucide-icons/sailboat.svg +1 -0
  1205. package/dist/shared/lucide-icons/salad.svg +1 -0
  1206. package/dist/shared/lucide-icons/sandwich.svg +1 -0
  1207. package/dist/shared/lucide-icons/satellite-dish.svg +1 -0
  1208. package/dist/shared/lucide-icons/satellite.svg +1 -0
  1209. package/dist/shared/lucide-icons/save-all.svg +1 -0
  1210. package/dist/shared/lucide-icons/save-off.svg +1 -0
  1211. package/dist/shared/lucide-icons/save.svg +1 -0
  1212. package/dist/shared/lucide-icons/scale.svg +1 -0
  1213. package/dist/shared/lucide-icons/scale3d.svg +1 -0
  1214. package/dist/shared/lucide-icons/scaling.svg +1 -0
  1215. package/dist/shared/lucide-icons/scan-barcode.svg +1 -0
  1216. package/dist/shared/lucide-icons/scan-eye.svg +1 -0
  1217. package/dist/shared/lucide-icons/scan-face.svg +1 -0
  1218. package/dist/shared/lucide-icons/scan-heart.svg +1 -0
  1219. package/dist/shared/lucide-icons/scan-line.svg +1 -0
  1220. package/dist/shared/lucide-icons/scan-qr-code.svg +1 -0
  1221. package/dist/shared/lucide-icons/scan-search.svg +1 -0
  1222. package/dist/shared/lucide-icons/scan-text.svg +1 -0
  1223. package/dist/shared/lucide-icons/scan.svg +1 -0
  1224. package/dist/shared/lucide-icons/school.svg +1 -0
  1225. package/dist/shared/lucide-icons/scissors-line-dashed.svg +1 -0
  1226. package/dist/shared/lucide-icons/scissors.svg +1 -0
  1227. package/dist/shared/lucide-icons/screen-share-off.svg +1 -0
  1228. package/dist/shared/lucide-icons/screen-share.svg +1 -0
  1229. package/dist/shared/lucide-icons/scroll-text.svg +1 -0
  1230. package/dist/shared/lucide-icons/scroll.svg +1 -0
  1231. package/dist/shared/lucide-icons/search-check.svg +1 -0
  1232. package/dist/shared/lucide-icons/search-code.svg +1 -0
  1233. package/dist/shared/lucide-icons/search-slash.svg +1 -0
  1234. package/dist/shared/lucide-icons/search-x.svg +1 -0
  1235. package/dist/shared/lucide-icons/search.svg +1 -0
  1236. package/dist/shared/lucide-icons/section.svg +1 -0
  1237. package/dist/shared/lucide-icons/send-horizontal.svg +1 -0
  1238. package/dist/shared/lucide-icons/send-to-back.svg +1 -0
  1239. package/dist/shared/lucide-icons/send.svg +1 -0
  1240. package/dist/shared/lucide-icons/separator-horizontal.svg +1 -0
  1241. package/dist/shared/lucide-icons/separator-vertical.svg +1 -0
  1242. package/dist/shared/lucide-icons/server-cog.svg +1 -0
  1243. package/dist/shared/lucide-icons/server-crash.svg +1 -0
  1244. package/dist/shared/lucide-icons/server-off.svg +1 -0
  1245. package/dist/shared/lucide-icons/server.svg +1 -0
  1246. package/dist/shared/lucide-icons/settings.svg +1 -0
  1247. package/dist/shared/lucide-icons/settings2.svg +1 -0
  1248. package/dist/shared/lucide-icons/shapes.svg +1 -0
  1249. package/dist/shared/lucide-icons/share.svg +1 -0
  1250. package/dist/shared/lucide-icons/share2.svg +1 -0
  1251. package/dist/shared/lucide-icons/sheet.svg +1 -0
  1252. package/dist/shared/lucide-icons/shell.svg +1 -0
  1253. package/dist/shared/lucide-icons/shield-alert.svg +1 -0
  1254. package/dist/shared/lucide-icons/shield-ban.svg +1 -0
  1255. package/dist/shared/lucide-icons/shield-check.svg +1 -0
  1256. package/dist/shared/lucide-icons/shield-ellipsis.svg +1 -0
  1257. package/dist/shared/lucide-icons/shield-half.svg +1 -0
  1258. package/dist/shared/lucide-icons/shield-minus.svg +1 -0
  1259. package/dist/shared/lucide-icons/shield-off.svg +1 -0
  1260. package/dist/shared/lucide-icons/shield-plus.svg +1 -0
  1261. package/dist/shared/lucide-icons/shield-question.svg +1 -0
  1262. package/dist/shared/lucide-icons/shield-x.svg +1 -0
  1263. package/dist/shared/lucide-icons/shield.svg +1 -0
  1264. package/dist/shared/lucide-icons/ship-wheel.svg +1 -0
  1265. package/dist/shared/lucide-icons/ship.svg +1 -0
  1266. package/dist/shared/lucide-icons/shirt.svg +1 -0
  1267. package/dist/shared/lucide-icons/shopping-bag.svg +1 -0
  1268. package/dist/shared/lucide-icons/shopping-basket.svg +1 -0
  1269. package/dist/shared/lucide-icons/shopping-cart.svg +1 -0
  1270. package/dist/shared/lucide-icons/shovel.svg +1 -0
  1271. package/dist/shared/lucide-icons/shower-head.svg +1 -0
  1272. package/dist/shared/lucide-icons/shrink.svg +1 -0
  1273. package/dist/shared/lucide-icons/shrub.svg +1 -0
  1274. package/dist/shared/lucide-icons/shuffle.svg +1 -0
  1275. package/dist/shared/lucide-icons/sigma.svg +1 -0
  1276. package/dist/shared/lucide-icons/signal-high.svg +1 -0
  1277. package/dist/shared/lucide-icons/signal-low.svg +1 -0
  1278. package/dist/shared/lucide-icons/signal-medium.svg +1 -0
  1279. package/dist/shared/lucide-icons/signal-zero.svg +1 -0
  1280. package/dist/shared/lucide-icons/signal.svg +1 -0
  1281. package/dist/shared/lucide-icons/signature.svg +1 -0
  1282. package/dist/shared/lucide-icons/signpost-big.svg +1 -0
  1283. package/dist/shared/lucide-icons/signpost.svg +1 -0
  1284. package/dist/shared/lucide-icons/siren.svg +1 -0
  1285. package/dist/shared/lucide-icons/skip-back.svg +1 -0
  1286. package/dist/shared/lucide-icons/skip-forward.svg +1 -0
  1287. package/dist/shared/lucide-icons/skull.svg +1 -0
  1288. package/dist/shared/lucide-icons/slack.svg +1 -0
  1289. package/dist/shared/lucide-icons/slash.svg +1 -0
  1290. package/dist/shared/lucide-icons/slice.svg +1 -0
  1291. package/dist/shared/lucide-icons/sliders-horizontal.svg +1 -0
  1292. package/dist/shared/lucide-icons/sliders-vertical.svg +1 -0
  1293. package/dist/shared/lucide-icons/smartphone-charging.svg +1 -0
  1294. package/dist/shared/lucide-icons/smartphone-nfc.svg +1 -0
  1295. package/dist/shared/lucide-icons/smartphone.svg +1 -0
  1296. package/dist/shared/lucide-icons/smile-plus.svg +1 -0
  1297. package/dist/shared/lucide-icons/smile.svg +1 -0
  1298. package/dist/shared/lucide-icons/snail.svg +1 -0
  1299. package/dist/shared/lucide-icons/snowflake.svg +1 -0
  1300. package/dist/shared/lucide-icons/sofa.svg +1 -0
  1301. package/dist/shared/lucide-icons/soup.svg +1 -0
  1302. package/dist/shared/lucide-icons/space.svg +1 -0
  1303. package/dist/shared/lucide-icons/spade.svg +1 -0
  1304. package/dist/shared/lucide-icons/sparkle.svg +1 -0
  1305. package/dist/shared/lucide-icons/sparkles.svg +1 -0
  1306. package/dist/shared/lucide-icons/speaker.svg +1 -0
  1307. package/dist/shared/lucide-icons/speech.svg +1 -0
  1308. package/dist/shared/lucide-icons/spell-check.svg +1 -0
  1309. package/dist/shared/lucide-icons/spell-check2.svg +1 -0
  1310. package/dist/shared/lucide-icons/spline.svg +1 -0
  1311. package/dist/shared/lucide-icons/split.svg +1 -0
  1312. package/dist/shared/lucide-icons/spray-can.svg +1 -0
  1313. package/dist/shared/lucide-icons/sprout.svg +1 -0
  1314. package/dist/shared/lucide-icons/square-activity.svg +1 -0
  1315. package/dist/shared/lucide-icons/square-arrow-down-left.svg +1 -0
  1316. package/dist/shared/lucide-icons/square-arrow-down-right.svg +1 -0
  1317. package/dist/shared/lucide-icons/square-arrow-down.svg +1 -0
  1318. package/dist/shared/lucide-icons/square-arrow-left.svg +1 -0
  1319. package/dist/shared/lucide-icons/square-arrow-out-down-left.svg +1 -0
  1320. package/dist/shared/lucide-icons/square-arrow-out-down-right.svg +1 -0
  1321. package/dist/shared/lucide-icons/square-arrow-out-up-left.svg +1 -0
  1322. package/dist/shared/lucide-icons/square-arrow-out-up-right.svg +1 -0
  1323. package/dist/shared/lucide-icons/square-arrow-right.svg +1 -0
  1324. package/dist/shared/lucide-icons/square-arrow-up-left.svg +1 -0
  1325. package/dist/shared/lucide-icons/square-arrow-up-right.svg +1 -0
  1326. package/dist/shared/lucide-icons/square-arrow-up.svg +1 -0
  1327. package/dist/shared/lucide-icons/square-asterisk.svg +1 -0
  1328. package/dist/shared/lucide-icons/square-bottom-dashed-scissors.svg +1 -0
  1329. package/dist/shared/lucide-icons/square-chart-gantt.svg +1 -0
  1330. package/dist/shared/lucide-icons/square-check-big.svg +1 -0
  1331. package/dist/shared/lucide-icons/square-check.svg +1 -0
  1332. package/dist/shared/lucide-icons/square-chevron-down.svg +1 -0
  1333. package/dist/shared/lucide-icons/square-chevron-left.svg +1 -0
  1334. package/dist/shared/lucide-icons/square-chevron-right.svg +1 -0
  1335. package/dist/shared/lucide-icons/square-chevron-up.svg +1 -0
  1336. package/dist/shared/lucide-icons/square-code.svg +1 -0
  1337. package/dist/shared/lucide-icons/square-dashed-bottom-code.svg +1 -0
  1338. package/dist/shared/lucide-icons/square-dashed-bottom.svg +1 -0
  1339. package/dist/shared/lucide-icons/square-dashed-kanban.svg +1 -0
  1340. package/dist/shared/lucide-icons/square-dashed-mouse-pointer.svg +1 -0
  1341. package/dist/shared/lucide-icons/square-dashed.svg +1 -0
  1342. package/dist/shared/lucide-icons/square-divide.svg +1 -0
  1343. package/dist/shared/lucide-icons/square-dot.svg +1 -0
  1344. package/dist/shared/lucide-icons/square-equal.svg +1 -0
  1345. package/dist/shared/lucide-icons/square-function.svg +1 -0
  1346. package/dist/shared/lucide-icons/square-kanban.svg +1 -0
  1347. package/dist/shared/lucide-icons/square-library.svg +1 -0
  1348. package/dist/shared/lucide-icons/square-m.svg +1 -0
  1349. package/dist/shared/lucide-icons/square-menu.svg +1 -0
  1350. package/dist/shared/lucide-icons/square-minus.svg +1 -0
  1351. package/dist/shared/lucide-icons/square-mouse-pointer.svg +1 -0
  1352. package/dist/shared/lucide-icons/square-parking-off.svg +1 -0
  1353. package/dist/shared/lucide-icons/square-parking.svg +1 -0
  1354. package/dist/shared/lucide-icons/square-pen.svg +1 -0
  1355. package/dist/shared/lucide-icons/square-percent.svg +1 -0
  1356. package/dist/shared/lucide-icons/square-pi.svg +1 -0
  1357. package/dist/shared/lucide-icons/square-pilcrow.svg +1 -0
  1358. package/dist/shared/lucide-icons/square-play.svg +1 -0
  1359. package/dist/shared/lucide-icons/square-plus.svg +1 -0
  1360. package/dist/shared/lucide-icons/square-power.svg +1 -0
  1361. package/dist/shared/lucide-icons/square-radical.svg +1 -0
  1362. package/dist/shared/lucide-icons/square-scissors.svg +1 -0
  1363. package/dist/shared/lucide-icons/square-sigma.svg +1 -0
  1364. package/dist/shared/lucide-icons/square-slash.svg +1 -0
  1365. package/dist/shared/lucide-icons/square-split-horizontal.svg +1 -0
  1366. package/dist/shared/lucide-icons/square-split-vertical.svg +1 -0
  1367. package/dist/shared/lucide-icons/square-square.svg +1 -0
  1368. package/dist/shared/lucide-icons/square-stack.svg +1 -0
  1369. package/dist/shared/lucide-icons/square-terminal.svg +1 -0
  1370. package/dist/shared/lucide-icons/square-user-round.svg +1 -0
  1371. package/dist/shared/lucide-icons/square-user.svg +1 -0
  1372. package/dist/shared/lucide-icons/square-x.svg +1 -0
  1373. package/dist/shared/lucide-icons/square.svg +1 -0
  1374. package/dist/shared/lucide-icons/squircle.svg +1 -0
  1375. package/dist/shared/lucide-icons/squirrel.svg +1 -0
  1376. package/dist/shared/lucide-icons/stamp.svg +1 -0
  1377. package/dist/shared/lucide-icons/star-half.svg +1 -0
  1378. package/dist/shared/lucide-icons/star-off.svg +1 -0
  1379. package/dist/shared/lucide-icons/star.svg +1 -0
  1380. package/dist/shared/lucide-icons/step-back.svg +1 -0
  1381. package/dist/shared/lucide-icons/step-forward.svg +1 -0
  1382. package/dist/shared/lucide-icons/stethoscope.svg +1 -0
  1383. package/dist/shared/lucide-icons/sticker.svg +1 -0
  1384. package/dist/shared/lucide-icons/sticky-note.svg +1 -0
  1385. package/dist/shared/lucide-icons/store.svg +1 -0
  1386. package/dist/shared/lucide-icons/stretch-horizontal.svg +1 -0
  1387. package/dist/shared/lucide-icons/stretch-vertical.svg +1 -0
  1388. package/dist/shared/lucide-icons/strikethrough.svg +1 -0
  1389. package/dist/shared/lucide-icons/subscript.svg +1 -0
  1390. package/dist/shared/lucide-icons/sun-dim.svg +1 -0
  1391. package/dist/shared/lucide-icons/sun-medium.svg +1 -0
  1392. package/dist/shared/lucide-icons/sun-moon.svg +1 -0
  1393. package/dist/shared/lucide-icons/sun-snow.svg +1 -0
  1394. package/dist/shared/lucide-icons/sun.svg +1 -0
  1395. package/dist/shared/lucide-icons/sunrise.svg +1 -0
  1396. package/dist/shared/lucide-icons/sunset.svg +1 -0
  1397. package/dist/shared/lucide-icons/superscript.svg +1 -0
  1398. package/dist/shared/lucide-icons/swatch-book.svg +1 -0
  1399. package/dist/shared/lucide-icons/swiss-franc.svg +1 -0
  1400. package/dist/shared/lucide-icons/switch-camera.svg +1 -0
  1401. package/dist/shared/lucide-icons/sword.svg +1 -0
  1402. package/dist/shared/lucide-icons/swords.svg +1 -0
  1403. package/dist/shared/lucide-icons/syringe.svg +1 -0
  1404. package/dist/shared/lucide-icons/table-cells-merge.svg +1 -0
  1405. package/dist/shared/lucide-icons/table-cells-split.svg +1 -0
  1406. package/dist/shared/lucide-icons/table-columns-split.svg +1 -0
  1407. package/dist/shared/lucide-icons/table-of-contents.svg +1 -0
  1408. package/dist/shared/lucide-icons/table-properties.svg +1 -0
  1409. package/dist/shared/lucide-icons/table-rows-split.svg +1 -0
  1410. package/dist/shared/lucide-icons/table.svg +1 -0
  1411. package/dist/shared/lucide-icons/table2.svg +1 -0
  1412. package/dist/shared/lucide-icons/tablet-smartphone.svg +1 -0
  1413. package/dist/shared/lucide-icons/tablet.svg +1 -0
  1414. package/dist/shared/lucide-icons/tablets.svg +1 -0
  1415. package/dist/shared/lucide-icons/tag.svg +1 -0
  1416. package/dist/shared/lucide-icons/tags.svg +1 -0
  1417. package/dist/shared/lucide-icons/tally1.svg +1 -0
  1418. package/dist/shared/lucide-icons/tally2.svg +1 -0
  1419. package/dist/shared/lucide-icons/tally3.svg +1 -0
  1420. package/dist/shared/lucide-icons/tally4.svg +1 -0
  1421. package/dist/shared/lucide-icons/tally5.svg +1 -0
  1422. package/dist/shared/lucide-icons/tangent.svg +1 -0
  1423. package/dist/shared/lucide-icons/target.svg +1 -0
  1424. package/dist/shared/lucide-icons/telescope.svg +1 -0
  1425. package/dist/shared/lucide-icons/tent-tree.svg +1 -0
  1426. package/dist/shared/lucide-icons/tent.svg +1 -0
  1427. package/dist/shared/lucide-icons/terminal.svg +1 -0
  1428. package/dist/shared/lucide-icons/test-tube-diagonal.svg +1 -0
  1429. package/dist/shared/lucide-icons/test-tube.svg +1 -0
  1430. package/dist/shared/lucide-icons/test-tubes.svg +1 -0
  1431. package/dist/shared/lucide-icons/text-cursor-input.svg +1 -0
  1432. package/dist/shared/lucide-icons/text-cursor.svg +1 -0
  1433. package/dist/shared/lucide-icons/text-quote.svg +1 -0
  1434. package/dist/shared/lucide-icons/text-search.svg +1 -0
  1435. package/dist/shared/lucide-icons/text-select.svg +1 -0
  1436. package/dist/shared/lucide-icons/text.svg +1 -0
  1437. package/dist/shared/lucide-icons/theater.svg +1 -0
  1438. package/dist/shared/lucide-icons/thermometer-snowflake.svg +1 -0
  1439. package/dist/shared/lucide-icons/thermometer-sun.svg +1 -0
  1440. package/dist/shared/lucide-icons/thermometer.svg +1 -0
  1441. package/dist/shared/lucide-icons/thumbs-down.svg +1 -0
  1442. package/dist/shared/lucide-icons/thumbs-up.svg +1 -0
  1443. package/dist/shared/lucide-icons/ticket-check.svg +1 -0
  1444. package/dist/shared/lucide-icons/ticket-minus.svg +1 -0
  1445. package/dist/shared/lucide-icons/ticket-percent.svg +1 -0
  1446. package/dist/shared/lucide-icons/ticket-plus.svg +1 -0
  1447. package/dist/shared/lucide-icons/ticket-slash.svg +1 -0
  1448. package/dist/shared/lucide-icons/ticket-x.svg +1 -0
  1449. package/dist/shared/lucide-icons/ticket.svg +1 -0
  1450. package/dist/shared/lucide-icons/tickets-plane.svg +1 -0
  1451. package/dist/shared/lucide-icons/tickets.svg +1 -0
  1452. package/dist/shared/lucide-icons/timer-off.svg +1 -0
  1453. package/dist/shared/lucide-icons/timer-reset.svg +1 -0
  1454. package/dist/shared/lucide-icons/timer.svg +1 -0
  1455. package/dist/shared/lucide-icons/toggle-left.svg +1 -0
  1456. package/dist/shared/lucide-icons/toggle-right.svg +1 -0
  1457. package/dist/shared/lucide-icons/toilet.svg +1 -0
  1458. package/dist/shared/lucide-icons/tornado.svg +1 -0
  1459. package/dist/shared/lucide-icons/torus.svg +1 -0
  1460. package/dist/shared/lucide-icons/touchpad-off.svg +1 -0
  1461. package/dist/shared/lucide-icons/touchpad.svg +1 -0
  1462. package/dist/shared/lucide-icons/tower-control.svg +1 -0
  1463. package/dist/shared/lucide-icons/toy-brick.svg +1 -0
  1464. package/dist/shared/lucide-icons/tractor.svg +1 -0
  1465. package/dist/shared/lucide-icons/traffic-cone.svg +1 -0
  1466. package/dist/shared/lucide-icons/train-front-tunnel.svg +1 -0
  1467. package/dist/shared/lucide-icons/train-front.svg +1 -0
  1468. package/dist/shared/lucide-icons/train-track.svg +1 -0
  1469. package/dist/shared/lucide-icons/tram-front.svg +1 -0
  1470. package/dist/shared/lucide-icons/trash.svg +1 -0
  1471. package/dist/shared/lucide-icons/trash2.svg +1 -0
  1472. package/dist/shared/lucide-icons/tree-deciduous.svg +1 -0
  1473. package/dist/shared/lucide-icons/tree-palm.svg +1 -0
  1474. package/dist/shared/lucide-icons/tree-pine.svg +1 -0
  1475. package/dist/shared/lucide-icons/trees.svg +1 -0
  1476. package/dist/shared/lucide-icons/trello.svg +1 -0
  1477. package/dist/shared/lucide-icons/trending-down.svg +1 -0
  1478. package/dist/shared/lucide-icons/trending-up-down.svg +1 -0
  1479. package/dist/shared/lucide-icons/trending-up.svg +1 -0
  1480. package/dist/shared/lucide-icons/triangle-alert.svg +1 -0
  1481. package/dist/shared/lucide-icons/triangle-right.svg +1 -0
  1482. package/dist/shared/lucide-icons/triangle.svg +1 -0
  1483. package/dist/shared/lucide-icons/trophy.svg +1 -0
  1484. package/dist/shared/lucide-icons/truck.svg +1 -0
  1485. package/dist/shared/lucide-icons/turtle.svg +1 -0
  1486. package/dist/shared/lucide-icons/tv-minimal-play.svg +1 -0
  1487. package/dist/shared/lucide-icons/tv-minimal.svg +1 -0
  1488. package/dist/shared/lucide-icons/tv.svg +1 -0
  1489. package/dist/shared/lucide-icons/twitch.svg +1 -0
  1490. package/dist/shared/lucide-icons/twitter.svg +1 -0
  1491. package/dist/shared/lucide-icons/type-outline.svg +1 -0
  1492. package/dist/shared/lucide-icons/type.svg +1 -0
  1493. package/dist/shared/lucide-icons/umbrella-off.svg +1 -0
  1494. package/dist/shared/lucide-icons/umbrella.svg +1 -0
  1495. package/dist/shared/lucide-icons/underline.svg +1 -0
  1496. package/dist/shared/lucide-icons/undo-dot.svg +1 -0
  1497. package/dist/shared/lucide-icons/undo.svg +1 -0
  1498. package/dist/shared/lucide-icons/undo2.svg +1 -0
  1499. package/dist/shared/lucide-icons/unfold-horizontal.svg +1 -0
  1500. package/dist/shared/lucide-icons/unfold-vertical.svg +1 -0
  1501. package/dist/shared/lucide-icons/ungroup.svg +1 -0
  1502. package/dist/shared/lucide-icons/university.svg +1 -0
  1503. package/dist/shared/lucide-icons/unlink.svg +1 -0
  1504. package/dist/shared/lucide-icons/unlink2.svg +1 -0
  1505. package/dist/shared/lucide-icons/unplug.svg +1 -0
  1506. package/dist/shared/lucide-icons/upload.svg +1 -0
  1507. package/dist/shared/lucide-icons/usb.svg +1 -0
  1508. package/dist/shared/lucide-icons/user-check.svg +1 -0
  1509. package/dist/shared/lucide-icons/user-cog.svg +1 -0
  1510. package/dist/shared/lucide-icons/user-minus.svg +1 -0
  1511. package/dist/shared/lucide-icons/user-pen.svg +1 -0
  1512. package/dist/shared/lucide-icons/user-plus.svg +1 -0
  1513. package/dist/shared/lucide-icons/user-round-check.svg +1 -0
  1514. package/dist/shared/lucide-icons/user-round-cog.svg +1 -0
  1515. package/dist/shared/lucide-icons/user-round-minus.svg +1 -0
  1516. package/dist/shared/lucide-icons/user-round-pen.svg +1 -0
  1517. package/dist/shared/lucide-icons/user-round-plus.svg +1 -0
  1518. package/dist/shared/lucide-icons/user-round-search.svg +1 -0
  1519. package/dist/shared/lucide-icons/user-round-x.svg +1 -0
  1520. package/dist/shared/lucide-icons/user-round.svg +1 -0
  1521. package/dist/shared/lucide-icons/user-search.svg +1 -0
  1522. package/dist/shared/lucide-icons/user-x.svg +1 -0
  1523. package/dist/shared/lucide-icons/user.svg +1 -0
  1524. package/dist/shared/lucide-icons/users-round.svg +1 -0
  1525. package/dist/shared/lucide-icons/users.svg +1 -0
  1526. package/dist/shared/lucide-icons/utensils-crossed.svg +1 -0
  1527. package/dist/shared/lucide-icons/utensils.svg +1 -0
  1528. package/dist/shared/lucide-icons/utility-pole.svg +1 -0
  1529. package/dist/shared/lucide-icons/variable.svg +1 -0
  1530. package/dist/shared/lucide-icons/vault.svg +1 -0
  1531. package/dist/shared/lucide-icons/vegan.svg +1 -0
  1532. package/dist/shared/lucide-icons/venetian-mask.svg +1 -0
  1533. package/dist/shared/lucide-icons/vibrate-off.svg +1 -0
  1534. package/dist/shared/lucide-icons/vibrate.svg +1 -0
  1535. package/dist/shared/lucide-icons/video-off.svg +1 -0
  1536. package/dist/shared/lucide-icons/video.svg +1 -0
  1537. package/dist/shared/lucide-icons/videotape.svg +1 -0
  1538. package/dist/shared/lucide-icons/view.svg +1 -0
  1539. package/dist/shared/lucide-icons/voicemail.svg +1 -0
  1540. package/dist/shared/lucide-icons/volleyball.svg +1 -0
  1541. package/dist/shared/lucide-icons/volume-off.svg +1 -0
  1542. package/dist/shared/lucide-icons/volume-x.svg +1 -0
  1543. package/dist/shared/lucide-icons/volume.svg +1 -0
  1544. package/dist/shared/lucide-icons/volume1.svg +1 -0
  1545. package/dist/shared/lucide-icons/volume2.svg +1 -0
  1546. package/dist/shared/lucide-icons/vote.svg +1 -0
  1547. package/dist/shared/lucide-icons/wallet-cards.svg +1 -0
  1548. package/dist/shared/lucide-icons/wallet-minimal.svg +1 -0
  1549. package/dist/shared/lucide-icons/wallet.svg +1 -0
  1550. package/dist/shared/lucide-icons/wallpaper.svg +1 -0
  1551. package/dist/shared/lucide-icons/wand-sparkles.svg +1 -0
  1552. package/dist/shared/lucide-icons/wand.svg +1 -0
  1553. package/dist/shared/lucide-icons/warehouse.svg +1 -0
  1554. package/dist/shared/lucide-icons/washing-machine.svg +1 -0
  1555. package/dist/shared/lucide-icons/watch.svg +1 -0
  1556. package/dist/shared/lucide-icons/waves-ladder.svg +1 -0
  1557. package/dist/shared/lucide-icons/waves.svg +1 -0
  1558. package/dist/shared/lucide-icons/waypoints.svg +1 -0
  1559. package/dist/shared/lucide-icons/webcam.svg +1 -0
  1560. package/dist/shared/lucide-icons/webhook-off.svg +1 -0
  1561. package/dist/shared/lucide-icons/webhook.svg +1 -0
  1562. package/dist/shared/lucide-icons/weight.svg +1 -0
  1563. package/dist/shared/lucide-icons/wheat-off.svg +1 -0
  1564. package/dist/shared/lucide-icons/wheat.svg +1 -0
  1565. package/dist/shared/lucide-icons/whole-word.svg +1 -0
  1566. package/dist/shared/lucide-icons/wifi-high.svg +1 -0
  1567. package/dist/shared/lucide-icons/wifi-low.svg +1 -0
  1568. package/dist/shared/lucide-icons/wifi-off.svg +1 -0
  1569. package/dist/shared/lucide-icons/wifi-zero.svg +1 -0
  1570. package/dist/shared/lucide-icons/wifi.svg +1 -0
  1571. package/dist/shared/lucide-icons/wind-arrow-down.svg +1 -0
  1572. package/dist/shared/lucide-icons/wind.svg +1 -0
  1573. package/dist/shared/lucide-icons/wine-off.svg +1 -0
  1574. package/dist/shared/lucide-icons/wine.svg +1 -0
  1575. package/dist/shared/lucide-icons/workflow.svg +1 -0
  1576. package/dist/shared/lucide-icons/worm.svg +1 -0
  1577. package/dist/shared/lucide-icons/wrap-text.svg +1 -0
  1578. package/dist/shared/lucide-icons/wrench.svg +1 -0
  1579. package/dist/shared/lucide-icons/x.svg +1 -0
  1580. package/dist/shared/lucide-icons/youtube.svg +1 -0
  1581. package/dist/shared/lucide-icons/zap-off.svg +1 -0
  1582. package/dist/shared/lucide-icons/zap.svg +1 -0
  1583. package/dist/shared/lucide-icons/zoom-in.svg +1 -0
  1584. package/dist/shared/lucide-icons/zoom-out.svg +1 -0
  1585. package/dist/{server → shared}/projectIcons.js +2 -2
  1586. package/package.json +6 -4
  1587. package/preview-1.png +0 -0
  1588. package/dist/client/assets/GitDialog-ULwrGkKd.js +0 -3
  1589. package/dist/client/assets/HistoryDialog-BE7jyWWP.js +0 -5
  1590. package/dist/client/assets/PdfPreview-BputjYeR.js +0 -1
  1591. package/dist/client/assets/ProjectNavigationDialogs-BVE1JsHd.js +0 -1
  1592. package/dist/client/assets/SystemMetricsDialog-DxQsGcIH.js +0 -1
  1593. package/dist/client/assets/index-Dx9UqMyC.js +0 -64
  1594. package/dist/client/assets/index-DzzqNm9b.css +0 -1
@@ -0,0 +1 @@
1
+ :root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#202421;background:#f3f4f1;font-synthesis:none}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}.muted{color:#737a75}.error{color:#b3261e;font-size:14px}.dialog-error{margin:0;padding:8px 10px;border:1px solid #e9b6b0;border-radius:6px;background:#fff3f1}.field-hint{color:#778179;font-size:11px;font-weight:400}.primary,.compile{border:0;border-radius:8px;background:#176b44;color:#fff;padding:10px 18px;font-weight:650}.icon-button{display:inline-flex;align-items:center;gap:6px}.ghost{border:0;background:transparent;color:inherit}.page{min-height:100vh;display:flex;flex-direction:column}.login-page{min-height:100vh;display:grid;grid-template-rows:1fr auto;place-items:center;padding-top:44px;background:radial-gradient(circle at 50% 0,#d8e8dd,#f5f5f1 45%)}.login-card{width:min(390px,calc(100vw - 32px));padding:38px;display:flex;flex-direction:column;gap:16px;background:#ffffffeb;border:1px solid #dfe4df;border-radius:16px;box-shadow:0 24px 70px #1d31241f}.login-card h1{text-align:center;margin:0;letter-spacing:-.04em}.login-card>p{text-align:center;margin:-8px 0 8px}.login-card label,.settings label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:650}.login-card input,.settings input,.settings select,.settings textarea{width:100%;border:1px solid #cbd2cc;border-radius:8px;padding:10px 11px;background:#fff;outline:none}.login-card input:focus,.settings input:focus{border-color:#176b44;box-shadow:0 0 0 3px #176b4420}.site-logo{width:40px;height:40px;flex:none;display:inline-flex;align-items:center;justify-content:center}.site-logo img{display:block;width:100%;height:100%}.site-logo.compact{width:34px;height:34px;margin:0 16px 0 10px}.site-logo.auth-logo{width:76px;height:76px;margin:0 auto 2px;filter:drop-shadow(0 10px 18px #1e2a4a25)}.brand-link{display:inline-flex;align-items:center;color:inherit;text-decoration:none}.brand-link:hover .site-title{color:#d9f0df}.compact-brand-link{flex:none}.site-title{margin-right:11px;font-size:20px;font-weight:800;letter-spacing:-.04em}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.support{color:#737a75;text-align:center}.topbar,.editor-topbar{height:62px;display:flex;align-items:center;padding:0 26px;background:#123c2a;color:#fff}.top-actions{margin-left:auto;display:flex;align-items:center;gap:18px;font-size:14px}.top-actions .ghost{display:inline-flex;align-items:center;gap:5px;border:1px solid transparent;border-radius:6px;padding:6px 8px;background:transparent;color:inherit;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,color .15s ease,transform .08s ease}.top-actions .ghost:hover,.top-actions .ghost:focus-visible{border-color:#ffffff20;background:#ffffff16;color:#d9f0df;box-shadow:0 4px 12px #061c1130;outline:none}.top-actions .ghost:active{transform:translateY(1px);box-shadow:0 1px 4px #061c1126}.top-actions .ghost.top-return-action,.top-actions .ghost.top-return-action:hover,.top-actions .ghost.top-return-action:focus-visible,.top-actions .ghost.top-return-action:active{transform:none;box-shadow:none}.top-user-identity{min-width:0;display:flex;flex-direction:column;line-height:1.15}.top-user-identity strong{overflow:hidden;max-width:180px;font-size:13px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.top-user-identity small{overflow:hidden;max-width:180px;margin-top:3px;color:#b9d0c2;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.language-switcher{position:fixed;top:18px;right:20px;z-index:5;display:flex;align-items:center;gap:6px;color:#536059;font-size:12px}.language-switcher select{border:1px solid #c9d0ca;border-radius:6px;padding:5px 7px;background:#fff;color:#26342b}.language-switcher.compact{position:static;color:inherit}.language-switcher.compact select{border-color:#ffffff35;background:#ffffff10;color:inherit}.language-switcher.compact option{color:#202421}.dashboard{width:100%;max-width:1180px;flex:1;margin:0 auto;padding:52px 34px}.citation-library-page-shell{padding-top:34px}.citation-library-page{display:flex;flex-direction:column;gap:18px}.citation-library-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.citation-library-page-header>div{min-width:0}.citation-library-page-header h1{display:flex;align-items:center;gap:9px;margin:0;color:#202421;font-size:30px;letter-spacing:-.04em}.citation-library-page-header h1 svg{flex:none;color:#315b43}.citation-library-page-header p{max-width:720px;margin:8px 0 0;color:#737a75;font-size:12px;line-height:1.5}.citation-library-page-header>button{display:inline-flex;align-items:center;gap:5px;flex:none;border:1px solid #bfc8c1;border-radius:8px;padding:9px 12px;background:#fff;color:#52685a;font-size:11px}.citation-library-page-header>button:hover{border-color:#8eaa98;background:#edf4ef;color:#176b44}.citation-library-page .citation-library-dialog{padding:18px;border:1px solid #dfe4df;border-radius:12px;background:#fff;box-shadow:0 8px 26px #25352a0f}.citation-library-page .citation-entry-list{max-height:none}.citation-library-pagination{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:6px;color:#66736b;font-size:10px}.citation-library-pagination button{display:inline-flex;align-items:center;gap:4px;border:1px solid #cbd5ce;border-radius:6px;padding:6px 9px;background:#fff;color:#52685a;font-size:10px}.citation-library-pagination button:hover:not(:disabled){border-color:#8eaa98;background:#edf4ef;color:#176b44}.site-footer{width:100%;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:7px 16px;padding:18px 24px;border-top:1px solid #dfe3df;background:#eef0ed;color:#737b75;font-size:11px;text-align:center}.site-footer a{color:#176b44;text-decoration:none}.site-footer a:hover{text-decoration:underline}.login-page>.site-footer{align-self:end;background:#ffffff50}.section-title{display:flex;justify-content:space-between;align-items:end;margin-bottom:28px}.section-title h1{display:flex;align-items:center;gap:9px;margin:0;font-size:30px;letter-spacing:-.04em}.section-title h1 svg{flex:none;color:#315b43}.section-title p{margin:7px 0 0}.section-actions{display:flex;gap:9px}.section-actions>button{display:inline-flex;align-items:center;gap:6px;border:1px solid #bfc8c1;border-radius:8px;background:#fff;padding:10px 16px}.section-actions>.primary{border-color:#176b44;background:#176b44;color:#fff}.project-catalog-layout{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:start;gap:12px}.project-catalog-content{min-width:0}.project-tag-sidebar{position:sticky;z-index:20;top:18px;min-width:0;overflow:visible}.project-tag-toggle{width:42px;min-height:40px;display:flex;align-items:center;justify-content:center;gap:7px;border:1px solid #dce3dd;border-radius:9px;padding:8px;background:#f7f9f7;color:#526158;box-shadow:0 2px 8px #25352a08;font-size:11px;font-weight:700;text-align:left}.project-tag-toggle:hover,.project-tag-toggle:focus-visible,.project-tag-toggle[aria-expanded=true]{border-color:#a6c0ad;background:#eaf1eb;color:#176b44;outline:none}.project-tag-sidebar.has-active-filter .project-tag-toggle{color:#176b44}.project-tag-sidebar.has-active-filter .project-tag-toggle:after{content:"";width:5px;height:5px;flex:none;border-radius:50%;background:#21804e;box-shadow:0 0 0 2px #21804e24}.project-tag-toggle-copy{min-width:0;display:inline-flex;align-items:center;gap:6px}.project-tag-toggle-copy svg{flex:none}.project-tag-toggle-copy span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-tag-toggle-chevron{flex:none;transition:transform .15s ease}.project-tag-toggle[aria-expanded=true] .project-tag-toggle-chevron{transform:rotate(90deg)}.project-tag-toggle-copy span,.project-tag-toggle-chevron{display:none}.project-tag-filters{position:absolute;z-index:21;top:0;left:calc(100% + 8px);width:260px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding:8px;border:1px solid #cfd9d1;border-radius:10px;background:#fff;box-shadow:0 14px 34px #1c2e2220}.project-tag-filters>button{min-width:0;display:flex;align-items:center;gap:5px;border:1px solid #e0e6e1;border-radius:6px;padding:6px 7px;background:#fff;color:#59675f;font-size:10px;text-align:left}.project-tag-filters>button:first-child{grid-column:1 / -1;justify-content:center;color:#4c5f52;font-weight:650}.project-tag-filters>button:hover{border-color:#9dbba6;background:#f1f7f2;color:#176b44}.project-tag-filters>button.active{border-color:#8fb99c;background:#e6f1e9;color:#176b44;box-shadow:inset 0 0 0 1px #176b4410}.project-tag-filters>button .tag-dot{flex:none;width:7px;height:7px}.project-tag-filters>button span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-tag-empty{grid-column:1 / -1;margin:1px 0;padding:12px 6px;color:#7b857e;font-size:11px;text-align:center}.project-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:18px;padding:10px;background:#e9ece8;border-radius:10px}.project-toolbar>input{width:220px;border:1px solid #cbd2cc;border-radius:7px;padding:8px 10px;background:#fff}.project-scope{display:flex;flex:none;gap:2px}.project-scope button{display:flex;align-items:center;gap:5px;flex:none;border:1px solid transparent;border-radius:7px;padding:7px 9px;background:transparent;color:#536059;font-size:12px}.project-scope button.active{border-color:#b8c4ba;background:#fff;color:#174b33}.view-toggle button{display:flex;align-items:center;gap:5px;flex:none;border:1px solid transparent;border-radius:7px;padding:7px 9px;background:transparent;color:#536059;font-size:12px}.view-toggle button.active{border-color:#b8c4ba;background:#fff;color:#174b33}.project-sort{flex:none;display:flex;align-items:center;gap:5px;color:#536059;font-size:11px}.project-sort>span{white-space:nowrap}.project-sort select{max-width:150px;border:1px solid #c4ccc6;border-radius:7px;padding:7px 25px 7px 8px;background:#fff;color:#34433a;font-size:12px}.view-toggle{display:flex;gap:2px;margin-left:auto}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.project-card{position:relative;text-align:left;background:#fff;border:1px solid #dfe2de;border-radius:11px;transition:.15s ease}.project-grid:not(.list-view) .project-grid-card{min-height:220px;display:flex;flex-direction:column;gap:10px;box-sizing:border-box;padding:15px 16px 16px;overflow:visible;cursor:pointer}.project-grid:not(.list-view) .project-grid-card:hover{border-color:#8bae9a;background:#fcfefc;transform:translateY(-2px);box-shadow:0 10px 30px #25352a10}.project-grid:not(.list-view) .project-grid-card:focus-visible{outline:3px solid #176b4455;outline-offset:2px}.project-grid:not(.list-view) .project-grid-card.project-card-menu-open{z-index:4;border-color:#8caf99;box-shadow:0 10px 30px #25352a18}.project-grid:not(.list-view).project-list-menu-active .project-grid-card:not(.project-card-menu-open){opacity:.48;filter:saturate(.72)}.project-card-meta-row{min-width:0;display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.project-card-badges{min-width:0;display:flex;flex:1 1 auto;flex-wrap:nowrap;align-items:center;gap:6px;overflow:hidden}.project-card-title-row{min-width:0;display:flex;align-items:center;gap:10px}.project-card-icon-control{display:inline-flex;flex:none}.project-card-title{min-width:0;overflow:hidden;color:#18221b;font-size:17px;font-weight:730;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.project-card-tags{min-height:21px;display:flex;flex-wrap:nowrap;align-items:center;gap:5px;overflow:hidden}.project-card-tags .tag{min-width:0;max-width:100%;flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-tags,.settings-tags{display:flex;flex-wrap:wrap;gap:4px}.project-icon-avatar{width:36px;height:36px;box-sizing:border-box;display:grid;place-items:center;flex:none;overflow:hidden;border:1px solid transparent;border-radius:50%;padding:0;background:#d9eafe;color:#1b5aa0;font-size:15px;font-weight:750;line-height:1}.project-icon-avatar>svg{width:18px;height:18px}.project-icon-external-glyph{width:18px;height:18px;display:block;background:currentColor;mask-position:center;mask-repeat:no-repeat;mask-size:contain;-webkit-mask-position:center;-webkit-mask-repeat:no-repeat;-webkit-mask-size:contain}button.project-icon-avatar{cursor:pointer;font:inherit}button.project-icon-avatar.editable:hover,button.project-icon-avatar.editable:focus-visible{border-color:#7ba7d8;background:#cbe1fb;color:#134e90;box-shadow:0 0 0 3px #3b82c425;outline:0}.project-card-icon{width:30px;height:30px;font-size:13px}.project-card-icon>svg,.project-card-icon .project-icon-external-glyph{width:16px;height:16px}.owner-badge{max-width:100%;overflow:hidden;padding:4px 8px;border-radius:6px;background:#e2f0e7;color:#176b44;font-size:10.5px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.project-card-badges .owner-badge{min-width:0;max-width:100%}.project-meta{width:100%;display:grid;grid-template-columns:1fr;gap:8px;margin:auto 0 0}.project-grid:not(.list-view) .project-meta{margin:0}.project-meta div{min-width:0}.project-meta dt{display:flex;align-items:center;gap:4px;color:#8a918c;font-size:10px;font-weight:650;text-transform:none}.project-meta dt svg{flex:none;color:#6f8e7a}.project-meta-created-label{justify-content:space-between;gap:8px}.project-meta-created-label>span:first-child{min-width:0;display:inline-flex;align-items:center;gap:4px}.project-meta-created-label .project-comments-badge{flex:none}.project-meta dd{overflow:hidden;margin:2px 0 0;color:#555e58;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.project-grid:not(.list-view) .project-meta dd{overflow:visible;text-overflow:clip;white-space:normal;overflow-wrap:anywhere}.project-modified-by{color:#68716b}.project-grid.list-view{display:flex;flex-direction:column;gap:6px}.project-list-header{display:grid;grid-template-columns:44px minmax(300px,1fr) minmax(108px,132px) 126px minmax(154px,184px) 34px;align-items:center;gap:10px;padding:1px 10px 4px;color:#858d87;font-size:11px;font-weight:750;letter-spacing:.025em;text-transform:uppercase}.project-list-header>:nth-child(1){grid-column:2}.project-list-header>:nth-child(2){grid-column:3}.project-list-header>:nth-child(3){grid-column:4}.project-list-header>:nth-child(4){grid-column:5}.project-list-header>:nth-child(5){grid-column:6;justify-self:center;transform:translate(5px)}.project-grid.list-view .project-card{height:72px;min-height:72px;display:flex;flex-direction:row;align-items:stretch;overflow:visible}.project-grid.list-view .project-card:hover{transform:none;border-color:#a6c2ae;box-shadow:0 8px 22px #25352a0d}.project-grid.list-view .project-card.project-list-menu-open{border-color:#8caf99;box-shadow:0 8px 22px #25352a12}.project-grid.list-view.project-list-menu-active .project-card:not(.project-list-menu-open){opacity:.48;filter:saturate(.7)}.project-list-open{all:unset;box-sizing:border-box;min-width:0;flex:1;display:grid;grid-template-columns:minmax(300px,1fr) minmax(108px,132px) 126px minmax(154px,184px);align-items:center;gap:10px;padding:6px 10px 6px 20px;cursor:pointer}.project-list-open:hover{background:#f8fbf8}.project-list-open:focus-visible{outline:3px solid #176b4455;outline-offset:-3px;border-radius:11px 0 0 11px}.project-list-avatar{flex:0 0 36px;margin:auto 0 auto 8px}.project-list-summary{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:3px}.project-list-title-line{width:100%;min-width:0;display:flex;align-items:center;gap:7px}.project-list-title-line .project-comments-badge{flex:none}.project-list-title{min-width:0;overflow:hidden;color:#17211a;font-size:15px;font-weight:730;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.project-list-tags{min-width:0;display:flex;flex:0 1 auto;gap:5px;overflow:hidden}.project-list-tag{min-width:0;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-list-owner{min-width:0;overflow:hidden;color:#657068;font-size:11px;font-weight:550;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.project-list-created,.project-list-modified{min-width:0;display:flex;flex-direction:column;justify-content:center;color:#4d5750}.project-list-created{font-size:11px;font-weight:650;white-space:nowrap}.project-list-modified{gap:1px;font-size:11px;font-weight:700}.project-list-modified time,.project-list-modified small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-list-modified small{color:#7a837d;font-size:10px;font-weight:500}.project-action-menu-root{position:relative;z-index:3;display:grid;place-items:center}.project-action-menu-list{flex:0 0 44px;border-left:1px solid #edf0ed}.project-action-menu-trigger{width:32px;height:32px;min-width:32px;min-height:32px;display:grid;place-items:center;border:1px solid transparent;border-radius:8px;padding:0;background:transparent;color:#526058}.project-action-menu-trigger:hover,.project-action-menu-trigger[aria-expanded=true]{border-color:#c5d0c7;background:#f4f7f4;color:#1b6541}.project-action-menu-trigger:focus-visible{outline:3px solid #176b4455;outline-offset:2px}.project-action-menu{position:absolute;z-index:30;width:208px;padding:5px;border:1px solid #d7dfd9;border-radius:10px;background:#fff;box-shadow:0 14px 34px #18271d24}.project-action-menu-list .project-action-menu{top:7px;right:36px}.project-action-menu-grid .project-action-menu{top:calc(100% + 5px);right:0}.project-action-menu button,.project-action-menu a{width:100%;display:flex;align-items:center;gap:8px;box-sizing:border-box;border:0;border-radius:6px;padding:8px 9px;background:transparent;color:#435047;font-size:12px;line-height:1.25;text-align:left;text-decoration:none}.project-action-menu button:hover:not(:disabled),.project-action-menu a:hover{background:#edf4ef;color:#176b44}.project-action-menu button:focus-visible,.project-action-menu a:focus-visible{outline:2px solid #176b4477;outline-offset:-1px}.project-action-menu button:disabled{cursor:wait;opacity:.55}.project-action-menu button.danger{border-color:transparent;background:transparent;color:#b3261e}.project-action-menu button.danger:hover{border-color:transparent;background:#fdf0ef;color:#982019}.project-action-menu-separator{height:1px;margin:5px 3px;background:#e5e9e5}.project-comments-badge{display:inline-flex;align-items:center;gap:3px;width:fit-content;border-radius:999px;padding:1px 6px;font-size:10px;font-weight:650;line-height:1.4}.project-comments-badge.unresolved{background:#fde8e7;color:#b3261e;border:1px solid #f8c8c5}.tag{display:inline-flex;align-items:center;gap:4px;width:fit-content;border-radius:999px;padding:2px 7px;background:#eef0ee;color:#4a524c;font-size:10px;font-weight:650}.tag-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:currentColor}.tag-red{--tag-color: #e04b45}.tag-orange{--tag-color: #ef9135}.tag-yellow{--tag-color: #dbb62f}.tag-green{--tag-color: #49a563}.tag-blue{--tag-color: #4c83db}.tag-purple{--tag-color: #9566ce}.tag-gray{--tag-color: #929994}.tag-dot[class*=tag-]{color:var(--tag-color)}.tag[class*=tag-]{border:1px solid color-mix(in srgb,var(--tag-color) 35%,transparent);background:color-mix(in srgb,var(--tag-color) 12%,white)}.empty,.center-card{padding:50px;color:#737a75;text-align:center}.lazy-load-state{min-height:104px;display:flex;align-items:center;justify-content:center;gap:8px;padding:24px;color:#68746d;text-align:center}.lazy-load-state.compact{min-height:72px;padding:18px 12px;font-size:12px}.lazy-load-error{flex-direction:column;color:#6e403b}.lazy-load-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.project-empty{grid-column:1 / -1;width:100%;min-height:320px;display:flex;align-items:center;justify-content:center;flex-direction:column;box-sizing:border-box;padding:64px 24px;border:1px dashed #cbd7ce;border-radius:14px;background:linear-gradient(145deg,#fbfcfa,#f2f7f3);text-align:center}.project-empty-icon{width:58px;height:58px;display:grid;place-items:center;margin-bottom:18px;border-radius:18px;background:#dfeee4;color:#176b44}.project-empty h2{margin:0;color:#203f2e;font-size:clamp(27px,3vw,38px);line-height:1.15;letter-spacing:-.035em}.project-empty p{max-width:520px;margin:13px 0 0;color:#6e7b72;font-size:15px;line-height:1.6}.project-pagination{display:flex;align-items:center;justify-content:center;gap:12px;margin:22px 0 4px;color:#66726a;font-size:12px}.project-pagination button{display:inline-flex;align-items:center;gap:5px;border:1px solid #cbd4ce;border-radius:7px;padding:7px 10px;background:#fff;color:#405248;font-size:12px}.project-pagination button:hover:not(:disabled){border-color:#8bae9a;background:#f2f7f3;color:#176b44}.table-card{overflow:hidden;background:#fff;border:1px solid #dfe2de;border-radius:12px}table{width:100%;border-collapse:collapse}th,td{padding:14px 18px;border-bottom:1px solid #eceeeb;text-align:left;font-size:14px}th{background:#f8f9f7;color:#667069;font-size:12px;text-transform:uppercase}td small{display:block;color:#7d837f;margin-top:3px}td button{margin-right:8px;border:1px solid #cdd2ce;background:#fff;border-radius:5px;padding:5px 9px}.danger-text{color:#b3261e}.workspace{height:100vh;display:flex;flex-direction:column;overflow:hidden}.editor-topbar{height:56px;padding:0 14px;flex:none}.back{color:#fff;border:0;background:#ffffff10;width:32px;height:32px;display:grid;place-items:center;border-radius:6px}.project-heading{display:flex;flex-direction:column;min-width:0;margin-right:auto}.project-heading small{color:#b9d0c2;font-size:11px;margin-top:2px}.vim-status-badge{display:inline-flex;align-items:center;gap:5px;margin-right:8px;border:1px solid #7fd39e80;border-radius:999px;padding:5px 9px;background:#1d6b4638;color:#d7ffe3;font-size:10px;font-weight:750;letter-spacing:.04em;white-space:nowrap}.vim-status-badge svg{color:#9df0b5}.collaboration-presence{min-width:0;display:flex;align-items:center;gap:7px;padding-left:8px}.collaboration-status-dot{width:7px;height:7px;flex:none;border-radius:50%;background:#efb84b;box-shadow:0 0 0 2px #efb84b2e}.collaboration-connected .collaboration-status-dot{background:#69d391;box-shadow:0 0 0 2px #69d3912e}.collaboration-disconnected .collaboration-status-dot{background:#e07167;box-shadow:0 0 0 2px #e071672e}.collaboration-avatars{display:flex;align-items:center;padding-left:8px}.collaboration-avatar{--session-color: #1677c8;position:relative;width:28px;height:28px;display:grid;place-items:center;margin-left:-8px;border:2px solid #214d35;border-radius:50%;background:var(--session-color);color:#fff;font-size:11px;font-weight:750;cursor:default;box-shadow:0 1px 4px #061c1145}.collaboration-avatar.editing:after{content:"";position:absolute;right:-2px;bottom:-2px;width:7px;height:7px;border:2px solid #214d35;border-radius:50%;background:#8ff0af}.collaboration-avatar.local{outline:1px solid #ffffff8a;outline-offset:-4px}.collaboration-avatar-overflow{appearance:none;padding:0;border-color:#72877b;background:#f4f7f5;color:#284536;font-family:inherit;font-size:10px;cursor:pointer}.collaboration-avatar-overflow:hover,.collaboration-avatar-overflow:focus-visible{background:#dfe9e3;outline:2px solid #9bc6aa;outline-offset:1px}.collaboration-avatar-tooltip{position:absolute;z-index:80;top:calc(100% + 9px);right:-8px;width:max-content;max-width:280px;display:none;gap:2px;padding:9px 11px;border:1px solid #d7ded9;border-radius:7px;background:#fff;color:#20352a;font-size:12px;font-weight:400;line-height:1.35;text-align:left;box-shadow:0 8px 24px #061c1130}.collaboration-avatar-tooltip:before{content:"";position:absolute;top:-5px;right:15px;width:8px;height:8px;transform:rotate(45deg);border-left:1px solid #d7ded9;border-top:1px solid #d7ded9;background:#fff}.collaboration-avatar-tooltip strong,.collaboration-avatar-tooltip span,.collaboration-avatar-tooltip small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.collaboration-avatar-tooltip strong{font-size:13px}.collaboration-avatar-tooltip span{color:#526158}.collaboration-avatar-tooltip small{margin-top:3px;color:#77837b;font-size:11px}.collaboration-avatar:hover .collaboration-avatar-tooltip,.collaboration-avatar:focus-visible .collaboration-avatar-tooltip{display:block}.collaboration-recovery{min-width:0;display:inline-flex;align-items:center;gap:7px;margin:0 8px;border:1px solid #e0716780;border-radius:999px;padding:4px 6px 4px 9px;background:#6f2b2b66;color:#ffe0dd;font-size:10px;white-space:nowrap}.collaboration-recovery button{border:1px solid #ffffff55;border-radius:999px;padding:3px 7px;background:#ffffff18;color:inherit;font-size:10px}.collaboration-recovery button:hover{background:#ffffff2c}.compile-status-strip{min-height:31px;display:flex;align-items:center;justify-content:center;gap:7px;padding:6px 14px;background:#fff6dc;color:#72530d;border-bottom:1px solid #e8cd7d;font-size:11px}.compile-status-strip.failed{background:#fff0ee;color:#9a3028;border-bottom-color:#e8aaa4}.editor-actions .compile.cancel-compile{border-color:#c9675f;background:#fff5f3;color:#9b342d}.editor-actions .compile.cancel-compile:hover:not(:disabled){border-color:#a8463f;background:#ffe9e6}.workspace-update-banner{min-height:34px;display:flex;align-items:center;justify-content:center;gap:8px;padding:6px 14px;border-bottom:1px solid #dfb25e;background:#fff3d8;color:#62460e;font-size:11px}.workspace-update-banner>svg{flex:none;color:#b97817}.workspace-update-banner button{flex:none;border:1px solid #c9963d;border-radius:5px;padding:4px 8px;background:#fff;color:inherit;font:inherit;font-weight:650}.workspace-update-banner button:hover{border-color:#9b6b16;background:#fff8e9}.client-tool-recoveries{flex:none;display:flex;flex-direction:column}.client-tool-recovery{min-height:34px;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;padding:6px 14px;border-bottom:1px solid #e4bf78;background:#fff8e8;color:#6f4d10;font-size:11px}.client-tool-recovery>svg{flex:none;color:#b97817}.client-tool-recovery>span{min-width:0;flex:0 1 auto;line-height:1.35}.client-tool-recovery>span strong{margin-right:3px}.client-tool-recovery-actions{flex:none;display:inline-flex;align-items:center;gap:5px}.client-tool-recovery-actions button{border:1px solid #d5a553;border-radius:5px;padding:4px 8px;background:#fff;color:#6f4d10;font:inherit;cursor:pointer}.client-tool-recovery-actions button:hover:not(:disabled){border-color:#a86b0f;background:#fff1cd}.client-tool-recovery-actions button:disabled{cursor:not-allowed;opacity:.5}.formatter-diagnostics details{min-width:110px;max-width:min(760px,80vw)}.formatter-diagnostics summary{cursor:pointer;color:#8f5b0d;font-weight:650}.formatter-diagnostics details[open]{flex-basis:100%;order:3}.formatter-diagnostics pre{max-height:150px;margin:7px auto 2px;overflow:auto;border:1px solid #e4c88f;border-radius:5px;padding:8px 10px;background:#fffdf7;color:#57451f;font:11px/1.45 SFMono-Regular,Consolas,monospace;white-space:pre-wrap}.formatter-diagnostics-dismiss{width:25px;height:25px;display:grid;place-items:center;flex:none;border:1px solid transparent;border-radius:5px;padding:0;background:transparent;color:#8f5b0d;cursor:pointer}.formatter-diagnostics-dismiss:hover{border-color:#d5a553;background:#fff1cd}.editor-actions{display:flex;align-items:center;gap:8px}.editor-actions button{padding:8px 10px;display:inline-flex;align-items:center;gap:6px;border-radius:6px;border:1px solid #ffffff28;color:#fff;background:#ffffff0d;font-size:12px;white-space:nowrap}.editor-actions .compile{background:#f3b943;border-color:#f3b943;color:#193023;font-weight:700}.editor-actions button.active{background:#d9eadf;color:#164c33}.format-action,.comments-action,.version-action{min-width:112px;display:flex;flex-direction:column;align-self:center;gap:2px}.format-action-label,.comments-action-label,.version-action-label{height:12px;display:flex;align-items:center;justify-content:center;gap:4px;padding:0 5px;color:#b9d0c2;font-size:9px;font-weight:750;letter-spacing:.08em;line-height:1;text-transform:uppercase}.format-action-options,.comments-action-options,.version-action-options{height:27px;display:grid;grid-template-columns:1fr 1fr;overflow:hidden;border:1px solid #ffffff35;border-radius:6px;background:#ffffff0d}.editor-actions .format-action button,.editor-actions .comments-action button,.editor-actions .version-action button{min-width:0;height:25px;justify-content:center;border:0;border-radius:0;padding:0 7px;font-size:11px}.editor-actions .format-action button+button,.editor-actions .comments-action button+button,.editor-actions .version-action button+button{border-left:1px solid #ffffff35}.editor-actions .format-action-file{background:#2f7a58;color:#fff}.editor-actions .format-action-selected{background:#326b91;color:#fff}.editor-actions .format-action-file:hover:not(:disabled){background:#3a946c}.editor-actions .format-action-selected:hover:not(:disabled){background:#3d82ae}.editor-actions .comments-action-add{background:#2f7a58;color:#fff}.editor-actions .comments-action-all{background:#5b648e;color:#fff}.editor-actions .comments-action-add:hover:not(:disabled){background:#3a946c}.editor-actions .comments-action-all:hover:not(:disabled){background:#6e79a8}.editor-actions .comments-action-all.active{border-color:transparent;background:#6e79a8;color:#fff}.editor-actions .version-action-history{background:#5b648e;color:#fff}.editor-actions .version-action-git{background:#765493;color:#fff}.editor-actions .version-action-history:hover:not(:disabled){background:#6e79a8}.editor-actions .version-action-git:hover:not(:disabled){background:#8a65ad}.editor-actions .format-action button:disabled,.editor-actions .comments-action button:disabled,.editor-actions .version-action button:disabled{cursor:not-allowed;opacity:.45}.layout-menu{position:relative}.editor-actions .layout-trigger{min-width:138px;justify-content:flex-start;padding-block:5px}.layout-trigger>span{min-width:0;display:flex;flex:1;flex-direction:column;align-items:flex-start;line-height:1.15}.layout-trigger>span small{color:#b9d0c2;font-size:9px;font-weight:500;letter-spacing:.025em;text-transform:uppercase}.layout-trigger.active>span small{color:#52715f}.layout-popover{position:absolute;z-index:100;top:calc(100% + 8px);right:0;width:290px;padding:7px;border:1px solid #d4dcd6;border-radius:9px;background:#fff;color:#25362c;box-shadow:0 14px 38px #061c1138}.layout-popover-title{padding:6px 8px 8px;color:#768178;font-size:10px;font-weight:700;letter-spacing:.055em;text-transform:uppercase}.editor-actions .layout-option{width:100%;min-height:52px;display:grid;grid-template-columns:25px minmax(0,1fr) 18px;gap:9px;padding:8px 9px;border:0;color:#25362c;background:transparent;text-align:left}.editor-actions .layout-option:hover,.editor-actions .layout-option.selected{background:#edf5ef;color:#185d3d}.layout-option>span{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px}.layout-option strong{font-size:12px}.layout-option small{color:#748078;font-size:10px;line-height:1.35;white-space:normal}.toast{position:fixed;z-index:10;top:66px;left:50%;transform:translate(-50%);background:#8f271f;color:#fff;padding:9px 16px;border-radius:7px;font-size:13px;box-shadow:0 8px 30px #0003}.toast.success{background:#1d6b46}.work-grid{min-height:0;flex:1;background:#fff}.resize-handle{position:relative;width:6px;flex:0 0 6px;display:grid;place-items:center;background:#e4e7e4;color:#98a09a;outline:none;transition:background .12s ease}.resize-handle:hover,.resize-handle[data-resize-handle-active]{background:#89ad98;color:#fff}.resize-handle svg{pointer-events:none}.sync-resize-handle{z-index:20!important;overflow:visible}.sync-direction-buttons{position:absolute;z-index:21;top:50%;left:50%;display:flex;flex-direction:row;gap:2px;padding:3px;transform:translate(-50%,-50%);border:1px solid #aebdb3;border-radius:7px;background:#fff;box-shadow:0 4px 16px #15251b38}.sync-direction-buttons button{width:27px;height:27px;display:grid;place-items:center;border:0;border-radius:4px;padding:0;background:transparent;color:#214d35;font-size:17px;font-weight:750;line-height:1}.sync-direction-buttons button:hover:not(:disabled){background:#deebe2;color:#176b44}.sync-direction-buttons button:disabled{cursor:not-allowed;opacity:.35}.sync-resize-handle .resize-grip{opacity:0}.cm-ySelectionInfo{opacity:1!important;padding:2px 5px!important;border-radius:4px 4px 4px 0;font-family:Inter,ui-sans-serif,system-ui,sans-serif!important;font-size:10px!important;transform:translateY(-2px);box-shadow:0 2px 5px #0002}.left-panel,.context-panel,.source-panel,.preview-panel{min-width:0;min-height:0;border-right:1px solid #dfe2de}.left-panel,.source-panel,.preview-panel,.context-panel{height:100%}.left-panel{display:flex;flex-direction:column;overflow:hidden}.files-panel{position:relative;min-height:180px;flex:3;overflow:auto;border-bottom:1px solid #dfe2de}.files-panel.drop-active{outline:2px solid #2c9564;outline-offset:-2px}.file-drop-overlay{position:absolute;z-index:8;inset:42px 0 0;min-height:130px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;padding:16px;background:#e8f4edee;color:#185d3c;text-align:center;pointer-events:none;backdrop-filter:blur(2px)}.file-drop-overlay strong{font-size:13px}.file-drop-overlay span{max-width:90%;overflow:hidden;color:#5e7668;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.outline-panel{min-height:150px;flex:2;overflow:auto}.panel-title{height:42px;display:flex;align-items:center;justify-content:space-between;padding:0 12px;border-bottom:1px solid #e6e8e5;color:#647069;text-transform:uppercase;font-size:11px;font-weight:700}.panel-title>span{min-width:0;display:flex;align-items:center;gap:6px}.outline-heading{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.word-count-actions{flex:none;display:flex;align-items:center;gap:2px;margin-left:auto}.panel-title .word-count-actions button{width:auto;height:26px;display:inline-flex;align-items:center;gap:3px;padding:0 5px;color:#52685a;font-size:9px;text-transform:none;white-space:nowrap}.panel-title .word-count-actions button:hover:not(:disabled){background:#e8f1eb;color:#176b44}.panel-title .word-count-actions button:disabled{opacity:.4}.panel-title button{width:28px;height:28px;display:grid;place-items:center;border:0;border-radius:5px;background:transparent;color:#5d6961}.panel-title button:hover{background:#e8eeea;color:#176b44}.panel-title .file-size-toggle{width:auto;min-width:0;display:inline-flex;padding:0 5px;font:inherit;text-transform:inherit;cursor:pointer}.panel-title .file-size-toggle[aria-pressed=true]{color:#176b44;background:#e4f0e8}.file-tools{flex:none;display:flex;align-items:center;gap:4px;margin-left:8px}.file-tools button{box-sizing:border-box}.file-list{padding:6px 7px 10px}.file-entry{min-width:0;height:calc(1em + 18px);min-height:30px;display:flex;align-items:center;border-radius:5px;color:#4f5952}.file-entry:hover{background:#f0f3f0}.file-entry.active,.file-entry.selected{background:#e2efe7;color:#15583a;font-weight:650}.file-entry-main{min-width:0;height:100%;flex:1;overflow:hidden;display:flex;align-items:center;gap:5px;border:0;padding:0 4px;background:transparent;color:inherit;text-align:left;font-size:inherit}.file-entry-main span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-entry-main svg{flex:none;color:#28724e}.file-entry.root-document .file-entry-main>svg{color:#2d6f9f}.file-entry.compile-target{background:#e9f2ec;box-shadow:inset 2px 0 #28724e}.file-entry-main small{flex:none;padding:1px 4px;border-radius:999px;background:#d9eadf;color:#1d5b3e;font-size:8px;line-height:1.35}.file-entry-size{flex:none;margin-right:5px;color:#78837b;font-size:.86em;font-variant-numeric:tabular-nums;white-space:nowrap}.folder-entry .file-entry-main svg:first-child{color:#78837b}.folder-entry .file-entry-main svg:nth-child(2){color:#d49b2d}.root-entry{padding-left:5px}.root-entry .file-entry-main svg{color:#d49b2d}.file-entry-action{width:26px;height:26px;flex:none;display:none;place-items:center;border:0;border-radius:4px;background:transparent;color:#657069}.file-entry:hover .file-entry-action,.file-entry:focus-within .file-entry-action{display:grid}.file-entry-action:hover{background:#dfe7e1;color:#176b44}.resource-download{display:inline-flex;align-items:center;gap:6px;text-decoration:none}.resource-preview-message{min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#536158;text-align:center}.resource-preview-message strong{color:#263d2e;font-size:15px}.resource-preview-message span{max-width:440px;color:#748078;font-size:12px}.resource-image-wrap{display:flex;max-height:min(620px,65vh);align-items:center;justify-content:center;overflow:auto;padding:8px;background:#e9ecea;border-radius:7px}.resource-image{display:block;max-width:100%;max-height:min(590px,62vh);object-fit:contain}.resource-pdf{width:100%;height:min(650px,68vh);border:1px solid #d9dfda;border-radius:6px;background:#69706c}.resource-text{max-height:min(650px,68vh);overflow:auto;margin:0;padding:14px;border:1px solid #d9dfda;border-radius:6px;background:#f7f9f7;color:#26352c;font:12px/1.55 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere}.source-panel{position:relative;overflow:hidden;display:flex;flex-direction:column;height:100%;min-height:0}.editor-tabs-bar{flex:none;min-height:35px;background:#eaefe9;border-bottom:1px solid #d4ded7;display:flex;align-items:stretch;padding:4px 6px 0;overflow:hidden}.editor-tabs-scroll{display:flex;align-items:stretch;gap:3px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.editor-tabs-scroll::-webkit-scrollbar{display:none}.editor-tab-item{display:inline-flex;align-items:center;max-width:220px;border:1px solid #ccd6ce;border-bottom:0;border-radius:6px 6px 0 0;background:#dce4de;color:#55665c}.editor-tab-item:hover{background:#e6eee8;color:#1e3628}.editor-tab-item.active{background:#fff;border-color:#cad7ce;box-shadow:0 -1px 3px #0000000a}.editor-tab{display:inline-flex;align-items:center;gap:5px;min-width:0;flex:1 1 auto;padding:4px 7px 4px 10px;border:0;border-radius:6px 0 0;background:transparent;color:inherit;font:inherit;font-size:12px;text-align:left;cursor:pointer;user-select:none;white-space:nowrap}.editor-tab:hover{color:#1e3628}.editor-tab.active{color:#184f36;font-weight:600}.editor-tab:focus-visible{position:relative;z-index:1;outline:2px solid #4c9a6d;outline-offset:-2px}.editor-tab-icon{display:inline-flex;align-items:center;color:#697a70}.editor-tab.active .editor-tab-icon{color:#184f36}.editor-tab-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-tab-badge{font-size:9px;padding:1px 4px;border-radius:4px;background:#e3eee6;color:#1a6442;font-weight:600;flex-shrink:0}.editor-tab-close{display:inline-flex;align-items:center;justify-content:center;width:22px;height:24px;border:0;border-radius:0 5px 0 0;background:transparent;color:#76887e;padding:0;cursor:pointer;flex-shrink:0}.editor-tab-close:hover{background:#cbd7cf;color:#153123}.editor-tab-item.active .editor-tab-close:hover{background:#e3ece5;color:#184f36}.editor-tab-close:focus-visible{position:relative;z-index:1;outline:2px solid #4c9a6d;outline-offset:-2px}.editor-content-container{position:relative;flex:1 1 auto;min-height:0;height:100%;overflow:hidden}.editor-centered-notice{position:absolute;z-index:8;top:50%;left:50%;max-width:calc(100% - 32px);transform:translate(-50%,-50%);pointer-events:none;border:1px solid #69a780;border-radius:8px;padding:9px 15px;background:#1d6b46ed;color:#fff;font:600 12px/1.4 inherit;text-align:center;box-shadow:0 8px 26px #071d1238}.editor-shell{height:100%;min-height:0;display:flex;flex-direction:column}.editor-shell .editor-host{height:auto;min-height:0;flex:1 1 auto}.editor-host,.cm-editor{height:100%;min-height:0}.editor-host .cm-editor{font-family:inherit;font-size:inherit;line-height:inherit}.editor-host .cm-editor{font-variant-ligatures:contextual;font-feature-settings:"liga" 1,"calt" 1}.editor-host .cm-scroller{min-height:0;height:auto;flex:1 1 auto;overflow:auto;font-family:inherit;line-height:inherit}.editor-host .cm-panels{flex:none}.editor-host .cm-vim-panel{min-height:25px;display:flex;align-items:center;box-sizing:border-box;width:100%;border-top:1px solid #cbd8ce;padding:3px 10px;background:#f1f6f2;color:#31523e;font:11px/1.3 SFMono-Regular,Consolas,monospace}.vim-editor-status{min-height:25px;flex:0 0 25px;display:flex;align-items:center;box-sizing:border-box;border-top:1px solid #cbd8ce;padding:3px 10px;background:#f1f6f2;color:#31523e;font:11px/1.3 SFMono-Regular,Consolas,monospace}.editor-host .cm-content,.editor-host .cm-gutters{font-family:inherit;font-size:inherit}.cm-editor.cm-focused{outline:none}.editor-host .cm-spell-error-active{border-radius:2px;background:#f6d66f;box-shadow:0 0 0 1px #c99324;color:#3f3010;text-decoration:underline wavy #9b6715 1.5px;text-decoration-skip-ink:none}.editor-host .cm-panel.cm-search{padding:8px 38px 8px 10px;border-top:1px solid #ccd5cf;background:#f7f9f7;color:#35443a;box-shadow:0 -3px 10px #1f382710;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:12px;line-height:1.4}.editor-host .cm-panel.cm-search .cm-textfield{min-width:170px;height:29px;margin:2px 6px 2px 0;border:1px solid #bcc8c0;border-radius:5px;padding:4px 8px;background:#fff;color:#202b24;outline:none;font-family:inherit;font-size:12px}.editor-host .cm-panel.cm-search .cm-textfield:focus{border-color:#3d8a60;box-shadow:0 0 0 2px #3d8a6025}.editor-host .cm-panel.cm-search .cm-button{height:29px;margin:2px 5px 2px 0;border:1px solid #bdc8c0;border-radius:5px;padding:3px 9px;background:#fff;background-image:none;color:#31513d;font-family:inherit;font-size:12px;text-transform:none}.editor-host .cm-panel.cm-search .cm-button:hover{border-color:#7c9f89;background:#e9f1ec}.editor-host .cm-panel.cm-search label{display:inline-flex;align-items:center;gap:3px;margin:3px 9px 3px 0;color:#59665d;font-family:inherit;font-size:12px}.editor-host .cm-panel.cm-search input[type=checkbox]{accent-color:#176b44}.editor-host .cm-panel.cm-search [name=close]{top:8px;right:10px;width:25px;height:25px;border-radius:5px;color:#647069;font-size:19px;line-height:1}.editor-host .cm-panel.cm-search [name=close]:hover{background:#e3e9e5;color:#244d36}.editor-host .cm-search-count{display:inline-flex;align-items:center;min-height:29px;margin:2px 5px 2px 4px;color:#506057;font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}.editor-host .cm-searchMatch{background:#f5d76e99;outline:1px solid #d9a91c88}.editor-host .cm-searchMatch.cm-searchMatch-selected{background:#f0a94a99;outline-color:#cc7720}.editor-host .cm-spell-error{text-decoration:underline wavy #c53b32 1.5px;text-decoration-skip-ink:none;text-decoration-thickness:1.5px}.editor-host .cm-grammar-warning{text-decoration:underline wavy #d19a26 1.5px;text-decoration-skip-ink:none;text-decoration-thickness:1.5px}.spell-suggestions-menu{position:fixed;z-index:1200;display:flex;min-width:190px;max-width:250px;flex-direction:column;gap:3px;padding:7px;border:1px solid #b9c8bd;border-radius:7px;background:#fff;box-shadow:0 10px 28px #1930222e;color:#26352c;font-size:12px}.spell-suggestions-title{padding:3px 6px 5px;color:#607067;font-size:10px;font-weight:700;letter-spacing:.02em;text-transform:uppercase}.spell-suggestions-message{padding:3px 6px 6px;border-bottom:1px solid #e2e8e3;color:#58685e;font-size:11px;line-height:1.4}.spell-suggestions-menu button{min-height:29px;border:1px solid transparent;border-radius:5px;padding:4px 8px;background:transparent;color:#214f37;font:inherit;text-align:left;cursor:pointer}.spell-suggestions-menu button:hover:not(:disabled),.spell-suggestions-menu button:focus-visible:not(:disabled){border-color:#a9c9b3;background:#edf6ef;outline:none}.spell-suggestions-menu button:disabled{color:#78847d;cursor:not-allowed;opacity:.7}.spell-suggestions-empty,.spell-suggestions-readonly{display:block;padding:4px 6px;color:#78847d;font-size:10px;line-height:1.35}.spell-suggestions-readonly{border-top:1px solid #e2e8e3;margin-top:3px;padding-top:7px}.cm-tooltip:has(.texlite-math-hover){max-width:min(720px,calc(100vw - 28px));border:1px solid #bfd0c3;border-radius:7px;padding:0;background:#fff;box-shadow:0 10px 26px #1b34261f;color:#1d3025;font-family:Inter,ui-sans-serif,system-ui,sans-serif}.texlite-math-hover{max-width:min(680px,calc(100vw - 52px));min-width:56px;overflow:auto;padding:10px 13px;color:#1d3025;font-size:14px;line-height:1.45;white-space:nowrap}.texlite-math-hover.display{padding:13px 17px;white-space:normal}.texlite-math-hover .katex-display{margin:0}.texlite-math-hover-error{color:#9b3e36;font-size:11px;white-space:normal}.cm-source-comment{background:#ffe49b99;border-bottom:2px solid #d68b00;cursor:text}.cm-source-comment-resolved{background:#dce5de99;border-bottom-color:#829087}.cm-comment-pin{color:#d68b00;font-size:9px;padding:0 2px;cursor:pointer}.preview-panel{display:flex;flex-direction:column;background:#6f7471}.preview-tabs{min-height:48px;flex:none;display:flex;align-items:stretch;padding:5px 6px 0;background:#4d544f}.preview-tab-list{min-width:0;flex:1;display:grid;grid-template-columns:minmax(0,1.8fr) minmax(120px,1fr);gap:3px}.preview-tabs button{min-width:0;display:flex;align-items:center;justify-content:center;gap:5px;border:0;border-radius:6px 6px 0 0;background:transparent;color:#d7dcd8;font-size:11px}.preview-tabs button.active{background:#f3f4f1;color:#184f36;font-weight:700}.preview-tabs button span{min-width:17px;padding:1px 4px;border-radius:999px;background:#ffffff20;font-size:9px}.preview-tabs button.active span{background:#dfe8e2}.preview-tabs .pdf-tab{justify-content:flex-start;padding:0 12px;font-size:12px}.preview-tabs button .pdf-tab-label{min-width:0;overflow:hidden;padding:0;border-radius:0;background:transparent;display:flex;flex-direction:column;align-items:flex-start;gap:2px;font-size:12px;line-height:1;text-overflow:ellipsis;white-space:nowrap}.preview-tabs button.active .pdf-tab-label{background:transparent}.preview-tabs .pdf-tab small{max-width:100%;overflow:hidden;color:#bcc4bf;font-size:8px;font-weight:400;line-height:1;text-overflow:ellipsis;white-space:nowrap}.preview-tabs .pdf-tab.active small{color:#65756c}.pdf-download-top{flex:none;display:inline-flex;align-items:center;gap:5px;margin-left:4px;padding:0 11px;border:0;border-radius:6px 6px 0 0;color:#d7dcd8;font-size:10px;text-decoration:none;white-space:nowrap}.pdf-download-top:hover{background:#ffffff1b;color:#fff}.preview-subtabs{height:36px;flex:none;display:flex;align-items:center;gap:3px;padding:4px 7px;border-bottom:1px solid #cfd6d1;background:#e4e9e5}.preview-subtabs button{display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 10px;border:0;border-radius:5px;background:transparent;color:#58665d;font-size:10px}.preview-subtabs button:hover{background:#d8e3db;color:#205c40}.preview-subtabs button.active{background:#fff;color:#184f36;font-weight:700;box-shadow:0 1px 3px #26312b22}.preview-subtabs button span{min-width:16px;padding:1px 4px;border-radius:999px;background:#d5ded7;font-size:9px;text-align:center}.preview-subtabs button.active span{background:#dfe8e2}.preview-content{min-height:0;flex:1}.preview-pdf{overflow:hidden}.pdf-viewer{position:relative;width:100%;height:100%;min-height:0;display:flex;flex-direction:column}.pdf-toolbar{height:36px;flex:none;display:flex;align-items:center;justify-content:flex-end;gap:3px;padding:4px 8px;border-bottom:1px solid #343a36;background:#414843;color:#e4e8e5;font:11px/1 Inter,ui-sans-serif,system-ui,sans-serif}.pdf-toolbar button{height:27px;min-width:27px;display:inline-flex;align-items:center;justify-content:center;gap:5px;border:1px solid #ffffff24;border-radius:5px;padding:0 6px;background:#ffffff0b;color:inherit}.pdf-toolbar button:hover:not(:disabled){border-color:#ffffff48;background:#ffffff1b}.pdf-toolbar button:disabled{opacity:.3}.pdf-zoom-value{min-width:42px;text-align:center;font-variant-numeric:tabular-nums}.pdf-toolbar .pdf-fit-width{margin-left:3px;padding:0 8px}.pdf-compiling-overlay{position:absolute;z-index:4;inset:36px 0 0;display:flex;align-items:flex-start;justify-content:center;gap:8px;padding-top:24px;background:#26312bb8;color:#fff;font-size:13px;pointer-events:none}.pdf-compiling-overlay span{padding:3px 8px;border-radius:5px;background:#17231cdd}.pdf-loading-state{width:100%;height:100%;min-height:220px;display:grid;place-items:center;align-content:center;gap:10px;background:#6f7471;color:#eef2ef;font-size:12px}.pdf-document{position:relative;width:100%;min-width:0;min-height:0;flex:1;overflow-x:scroll;overflow-y:auto;overscroll-behavior:contain;scrollbar-color:#aeb8b1 #4f5652;scrollbar-width:auto;scrollbar-gutter:stable;padding:14px 14px 20px;background:#6f7471}.pdf-document::-webkit-scrollbar{width:12px;height:12px}.pdf-document::-webkit-scrollbar-track{background:#4f5652}.pdf-document::-webkit-scrollbar-thumb{min-width:38px;border:2px solid #4f5652;border-radius:999px;background:#aeb8b1}.pdf-document::-webkit-scrollbar-thumb:hover{background:#d5dcd7}.pdf-document::-webkit-scrollbar-corner{background:#4f5652}.pdf-pages{min-width:100%}.pdf-loading{min-height:220px;display:grid;place-items:center;align-content:center;gap:10px;color:#eef2ef;font-size:12px}.pdf-page{position:relative;flex:none;max-width:none;overflow:hidden;margin:0 auto 16px;background:#fff;box-shadow:0 3px 14px #0004}.pdf-page.loading{background:#f7f8f7}.pdf-page canvas{display:block;width:100%!important;max-width:100%;height:auto!important}.pdf-annotation-layer{position:absolute;inset:0;z-index:3;pointer-events:none}.pdf-annotation-link{position:absolute;display:block;pointer-events:auto;border-radius:2px;background:transparent;cursor:pointer}.pdf-annotation-link:hover{background:#3f9b6426;box-shadow:inset 0 0 0 1px #3f9b6440}.pdf-page figcaption{position:absolute;right:7px;bottom:5px;padding:2px 5px;border-radius:4px;background:#26312bb5;color:#fff;font-size:9px;pointer-events:none}.pdf-sync-marker{position:absolute;z-index:2;width:14px;height:14px;border:3px solid #ef9c24;border-radius:50%;transform:translate(-50%,-50%);background:#ffe0a580;box-shadow:0 0 0 4px #ef9c2435;pointer-events:none;animation:sync-pulse 1.2s ease-out}@keyframes sync-pulse{0%{box-shadow:0 0 0 14px #ef9c2460}to{box-shadow:0 0 0 4px #ef9c2435}}.preview-empty{height:100%;display:grid;place-content:center;gap:8px;color:#e7e9e7;text-align:center}.preview-empty span{font-size:12px;color:#c2c7c4}.preview-log,.preview-warnings,.preview-errors{overflow:auto;background:#202522}.preview-clean{overflow:auto;background:#f4f6f4}.preview-artifacts{overflow:hidden;background:#f4f6f4}.artifact-browser{width:100%;height:100%;min-height:0;display:grid;grid-template-columns:minmax(135px,38%) minmax(0,1fr)}.artifact-list{min-width:0;overflow:auto;border-right:1px solid #d9dedb;background:#fff}.artifact-row{min-width:0;display:flex;align-items:stretch;border-bottom:1px solid #edf0ee}.artifact-row.active{background:#e5f0e9}.artifact-row>button{min-width:0;flex:1;display:flex;align-items:center;gap:7px;padding:8px 6px 8px 9px;border:0;background:transparent;color:#33463b;text-align:left}.artifact-row>button:disabled{cursor:default;opacity:.7}.artifact-row>button>span{min-width:0;display:flex;flex-direction:column;gap:2px}.artifact-row strong{overflow:hidden;font-size:11px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.artifact-row small{color:#89928c;font-size:9px}.artifact-row>a{width:30px;flex:none;display:grid;place-items:center;color:#52705f}.artifact-row>a:hover{background:#dce8e0;color:#176641}.artifact-preview{min-width:0;min-height:0;display:flex;flex-direction:column;background:#202522;color:#dbe2dd}.artifact-preview>header{height:36px;flex:none;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 10px;border-bottom:1px solid #39413c;background:#303732;font-size:11px}.artifact-preview>header strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.artifact-preview>header a{flex:none;display:inline-flex;align-items:center;gap:4px;color:#c9ddd1}.artifact-preview>pre{min-height:0;flex:1;margin:0;overflow:auto;padding:13px;white-space:pre-wrap;overflow-wrap:anywhere;font:11px/1.55 SFMono-Regular,Consolas,monospace}.compile-output{min-height:100%;margin:0;padding:16px;color:#dbe2dd;white-space:pre-wrap;overflow-wrap:anywhere;font:11px/1.55 SFMono-Regular,Consolas,monospace}.compile-output.compile-warning{color:#ffdfa0;background:#2d281c}.compile-output.compile-error{color:#ffc2bd;background:#301e1d}.compile-empty{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;color:#bfc7c1;font-size:12px}.compile-empty.compile-warning{color:#e8c46d;background:#2d281c}.compile-empty.compile-error{color:#e99b94;background:#301e1d}.compile-clean-panel{max-width:820px;margin:0 auto;padding:24px;color:#30453a}.compile-clean-intro{display:flex;align-items:flex-start;gap:12px;padding:15px;border:1px solid #e3d1a7;border-radius:9px;background:#fffaf0;color:#80631f;box-shadow:0 3px 12px #5c48100d}.compile-clean-intro>div{min-width:0}.compile-clean-intro strong{display:block;font-size:14px}.compile-clean-intro p,.compile-clean-actions p{margin:5px 0 0;color:#718078;font-size:11px;line-height:1.5}.compile-clean-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.compile-clean-actions article{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;min-width:0;padding:14px;border:1px solid #d4dfd7;border-radius:8px;background:#fff}.compile-clean-actions article.danger{border-color:#e3c9c5}.compile-clean-action-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:7px;background:#e7f2ea;color:#28714a}.compile-clean-actions article.danger .compile-clean-action-icon{background:#f8e8e6;color:#a6433a}.compile-clean-actions strong{color:#2d4638;font-size:12px}.compile-clean-actions article.danger strong{color:#874039}.compile-clean-actions button{display:inline-flex;align-items:center;gap:5px;margin-top:12px;padding:6px 10px;border:1px solid #b8d1bd;border-radius:5px;background:#f0f8f1;color:#21633d;font-size:11px}.compile-clean-actions button:hover:not(:disabled){border-color:#79aa86;background:#e3f2e6}.compile-clean-actions button.danger{border-color:#e2b9b4;background:#fff4f2;color:#a23d35}.compile-clean-actions button.danger:hover:not(:disabled){border-color:#c8837a;background:#fce7e4}.compile-clean-actions button:disabled{cursor:not-allowed;opacity:.45}.compile-diagnostic-list{min-height:100%;padding:8px;background:#202522;overflow:auto}.compile-diagnostic-list.compile-warning{background:#2d281c}.compile-diagnostic-list.compile-error{background:#301e1d}.compile-diagnostic-row{display:grid;grid-template-columns:20px minmax(0,1fr);gap:7px;width:100%;padding:9px 10px;border:0;border-bottom:1px solid #ffffff12;border-radius:4px;background:transparent;color:#eef2ef;text-align:left}.compile-diagnostic-row:not(:disabled):hover{background:#ffffff10;box-shadow:inset 2px 0 #63b889}.compile-diagnostic-row:disabled{opacity:.78;cursor:default}.compile-diagnostic-row>span{min-width:0;display:grid;gap:4px}.compile-diagnostic-row strong{font-size:11px;font-weight:500;white-space:normal}.compile-diagnostic-row small{color:#aeb8b1;font:10px/1.4 SFMono-Regular,Consolas,monospace;overflow-wrap:anywhere}.compile-warning .compile-diagnostic-row>svg{color:#e8c46d}.compile-error .compile-diagnostic-row>svg{color:#e99b94}.context-panel{border-right:0;overflow:auto}.drawer-title{position:sticky;top:0;z-index:2;height:42px;display:flex;align-items:center;justify-content:space-between;padding:0 12px;border-bottom:1px solid #e3e6e3;background:#fff;font-size:13px}.drawer-title button{width:28px;height:28px;display:grid;place-items:center;border:0;border-radius:5px;background:transparent;color:#737a75}.drawer-title button:hover{background:#edf1ee}.drawer-title-actions{min-width:0;display:flex;align-items:center;gap:4px}.settings-drawer-title>strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drawer-title .drawer-settings-save{width:auto;min-width:0;display:inline-flex;align-items:center;gap:5px;padding:0 7px;border:1px solid #c9d0ca;background:#fff;color:#252b27;font-size:10px;font-weight:700;line-height:1;white-space:nowrap}.drawer-title .drawer-settings-save:hover{border-color:#aeb8b0;background:#f5f7f5;color:#1d2520}.drawer-title .drawer-settings-save span{overflow:hidden;text-overflow:ellipsis}.tabs{height:42px;display:flex;border-bottom:1px solid #e3e6e3}.tabs button{flex:1;border:0;background:#fff;color:#707872;font-size:12px}.tabs button.active{color:#176b44;border-bottom:2px solid #176b44;font-weight:700}.outline{padding:10px 8px}.outline-item{width:100%;min-width:0;display:flex;align-items:stretch;border:0;padding:6px 0;background:transparent;font-size:12px;text-align:left}.outline-item:hover,.outline-item:focus-visible{background:#edf3ef;color:#176b44;outline:none}.outline-item.current{background:#e2efe7;color:#176b44;font-weight:700}.outline-guides{flex:none;background:repeating-linear-gradient(to right,#dfe5e0 0,#dfe5e0 1px,transparent 1px,transparent 12px)}.outline small{flex:none;min-width:22px;margin-left:8px;color:#a1a7a2}.outline-title{min-width:0;overflow:hidden;color:#3f4942;text-overflow:ellipsis;white-space:nowrap}.padded{padding:14px}.comments{padding:9px}.comments article{margin-bottom:9px;padding:10px;border:1px solid #dde2de;border-radius:7px;font-size:12px;cursor:pointer;user-select:text;-webkit-user-select:text}.comments article.resolved{opacity:.55;background:#f3f5f3}.comments article.orphaned{border-color:#d8847d;background:#fff4f2}.comments header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.comments header small{color:#858b87}.comments time{flex:none;color:#8b928d;font-size:9px;white-space:nowrap}.comment-times{flex:none;display:flex;align-items:flex-end;flex-direction:column;gap:2px}.comment-times small{font-size:8px;white-space:nowrap}.comment-author{min-width:0;display:flex;flex-direction:column;gap:1px}.comment-author strong,.comment-author small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.comment-location{margin-top:5px;color:#768079;font-size:10px}.comments blockquote{margin:8px 0;padding:6px 8px;border-left:2px solid #85ad96;background:#f2f6f3;color:#657069;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.comments p{white-space:pre-wrap;user-select:text;-webkit-user-select:text;cursor:text}.comments blockquote,.comments .comment-content{user-select:text;-webkit-user-select:text;cursor:text}.comments .resolve{display:inline-flex;align-items:center;gap:4px;border:0;background:transparent;color:#176b44;padding:0;font-size:11px}.comment-replies{display:flex;flex-direction:column;gap:7px;margin:10px 0 8px;padding-left:9px;border-left:2px solid #d6dfd9}.comment-reply{position:relative;padding:7px 8px;border-radius:6px;background:#f5f7f5}.comment-reply p{margin:7px 0 1px}.comment-actions{display:flex;align-items:center;gap:12px}.comments .reply-action{display:inline-flex;align-items:center;gap:4px;border:0;padding:0;background:transparent;color:#526c5d;font-size:11px}.comment-owner-actions{display:inline-flex;align-items:center;gap:2px;margin-left:auto}.comment-reply>.comment-owner-actions{position:absolute;right:5px;bottom:4px}.comments .comment-owner-actions button{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:0;border-radius:5px;background:transparent;color:#66716a}.comments .comment-owner-actions button:hover{background:#e2e8e3;color:#244c35}.comments .comment-owner-actions button.danger-text:hover{background:#f8e4e2;color:#a7312a}.comment-reply-form{display:flex;flex-direction:column;gap:7px;margin-top:9px}.comment-edit-form{margin:7px 0}.comment-reply-form textarea{width:100%;resize:vertical;border:1px solid #cbd2cc;border-radius:6px;padding:7px 8px;outline:none;font-size:11px}.comment-reply-form textarea:focus{border-color:#176b44;box-shadow:0 0 0 2px #176b4420}.comment-reply-form>div{display:flex;justify-content:flex-end;gap:5px}.comment-reply-form button{display:inline-flex;align-items:center;gap:4px;border:1px solid #cbd2cc;border-radius:5px;padding:5px 7px;background:#fff;font-size:10px}.comment-reply-form button.primary{border-color:#176b44;background:#176b44;color:#fff}.settings{display:flex;flex-direction:column;gap:14px}.settings>section{display:flex;flex-direction:column;gap:14px}.settings button{border:1px solid #c9d0ca;background:#fff;border-radius:6px;padding:7px 9px;font-size:12px}.settings-tabs{display:flex;gap:4px;padding:3px;border:1px solid #d7ded8;border-radius:9px;background:#f4f7f4}.settings-tab{display:inline-flex;flex:1;align-items:center;justify-content:center;gap:6px;min-height:34px;border:1px solid transparent!important;border-radius:7px!important;background:transparent!important;color:#66716a;font-weight:650}.settings-tab:hover{background:#eaf1eb!important;color:#31523e}.settings-tab.active{border-color:#c8d9cb!important;background:#fff!important;color:#176b44;box-shadow:0 1px 2px #233c2a12}.settings-tab:focus-visible{outline:2px solid #176b44;outline-offset:1px}.settings-actions{display:flex;width:100%;justify-content:flex-end;padding-top:2px}.settings-section-title{display:flex;align-items:center;gap:7px;color:#31523e;font-size:13px}.settings-description{margin:0;color:#7b837e;font-size:11px;line-height:1.45}.browser-tool-statuses{display:flex;flex-wrap:wrap;gap:7px}.browser-tool-status{min-width:116px;flex:1;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:6px;padding:8px 9px;border:1px solid #d9ded9;border-radius:7px;background:#f7f9f7;color:#6d776f;font-size:10px}.browser-tool-status strong{min-width:0;overflow:hidden;color:#344d3c;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.browser-tool-status span{font-weight:700;white-space:nowrap}.browser-tool-status.loading{border-color:#e4d7ad;background:#fffaf0;color:#9a6b18}.browser-tool-status.working{border-color:#bddbc7;background:#f0f8f2;color:#187348}.browser-tool-status.error{border-color:#e7beb9;background:#fff3f1;color:#a3342c}.tex-fmt-options-heading{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px}.tex-fmt-options-heading>span:first-child{min-width:0}.browser-tool-status.compact{min-width:0;flex:none;display:inline-flex;align-items:center;gap:4px;padding:3px 6px;border-radius:999px;font-size:10px;line-height:1;white-space:nowrap}.browser-tool-status.compact span{font-size:10px}.browser-tool-status.compact .browser-tool-reload{grid-column:auto;display:grid;place-items:center;width:18px;height:18px;min-height:18px;margin:-1px -3px -1px 0;padding:0;border:0;border-radius:50%;background:transparent;color:inherit}.browser-tool-status.compact .browser-tool-reload:hover{background:#0000000d}.browser-tool-reload{grid-column:1 / -1;display:inline-flex;align-items:center;justify-content:center;gap:5px;width:100%;min-height:26px;margin-top:2px;border:1px solid #dca9a3;border-radius:5px;background:#fff;color:#922d27;font-size:10px;font-weight:700}.browser-tool-reload:hover{border-color:#bf7770;background:#fff8f7}.settings .editor-preference{display:flex;flex-direction:column;gap:4px}.settings .editor-preference .field-hint{margin:0 9px;line-height:1.4}.settings .editor-checkbox{flex-direction:row;align-items:center;gap:7px;padding:8px 9px;border:1px solid #d9ded9;border-radius:7px;font-weight:500}.settings .editor-checkbox input{width:auto;margin:0;accent-color:#176b44}.spell-check-result{display:inline-flex;align-items:center;gap:6px;color:#66716a;font-size:11px}.spell-check-result.has-issues{color:#a3342c;font-weight:650}.spell-check-controls{display:inline-flex;align-items:center;gap:2px;margin-left:3px;color:#6f4a45;font-weight:500}.spell-check-controls button{width:24px;height:24px;display:inline-grid;place-items:center;border:1px solid #d7b8b4;border-radius:4px;padding:0;background:#fff8f7;color:#8e4a42}.spell-check-controls button:hover:not(:disabled){border-color:#b98279;background:#fce9e6}.spell-check-controls button:disabled{cursor:not-allowed;opacity:.35}.spell-check-position{min-width:34px;text-align:center;color:#825850;font-variant-numeric:tabular-nums;white-space:nowrap}.password-generator{display:flex;align-items:stretch;gap:7px}.password-generator input{min-width:0;flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.password-generator button{flex:none;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:0 10px;border:1px solid #c9d0ca;border-radius:6px;background:#f6f8f6;color:#31523e;font-size:11px;white-space:nowrap}.password-generator button:hover{border-color:#8eaa98;background:#edf3ef}.settings-save{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:6px}.latexmkrc-editor,.tex-fmt-options-editor{resize:vertical;font:12px/1.5 SFMono-Regular,Consolas,monospace!important}.tex-fmt-options-editor{min-height:100px}.dictionary-add{display:flex;align-items:stretch;gap:7px}.dictionary-add input{min-width:0;flex:1}.dictionary-add button{flex:none;color:#176b44}.dictionary-words{display:flex;flex-wrap:wrap;gap:6px}.dictionary-word{display:inline-flex;align-items:center;gap:3px;min-height:27px;padding:3px 5px 3px 8px;border:1px solid #d5ded7;border-radius:999px;background:#f1f6f2;color:#31523e;font-size:11px}.dictionary-word code{font:11px/1.2 SFMono-Regular,Consolas,monospace}.dictionary-word button{width:20px;height:20px;display:grid;place-items:center;padding:0;border:0;background:transparent;color:#748078}.dictionary-word button:hover{color:#a7312a}.dictionary-empty{color:#7b837e;font-size:11px}.dictionary-error{margin:-6px 0 0;font-size:11px}.share-dialog{display:flex;flex-direction:column;gap:16px}.share-owner{display:flex;align-items:center;gap:10px;padding:11px 13px;border-radius:8px;background:#edf4ef;color:#18583a}.share-owner>span{display:flex;flex-direction:column;gap:2px}.share-owner small{color:#6f7d74;font-size:10px;text-transform:uppercase}.share-add{display:grid;grid-template-columns:minmax(0,1fr) 150px auto;align-items:end;gap:9px;padding-bottom:16px;border-bottom:1px solid #e4e7e4}.share-add .icon-button{height:39px;display:inline-flex;align-items:center;gap:6px;padding:0 13px;font-size:12px}.shared-members-heading{display:flex;align-items:center;justify-content:space-between;color:#48524b;font-size:13px}.shared-members-heading span{min-width:22px;padding:2px 6px;border-radius:999px;background:#e8ece9;color:#6a746d;font-size:10px;text-align:center}.shared-members{display:flex;flex-direction:column;gap:7px}.shared-member{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px;border:1px solid #dfe3df;border-radius:8px}.member-identity{min-width:0;display:flex;align-items:center;gap:9px}.member-identity>span:last-child{min-width:0;display:flex;flex-direction:column}.member-identity strong,.member-identity small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-identity small{color:#7c857e;font-size:10px}.member-avatar{width:30px;height:30px;flex:none;display:grid;place-items:center;border-radius:50%;background:#dfece4;color:#176b44;font-size:12px;font-weight:750}.member-controls{display:flex;align-items:center;gap:5px}.member-controls select{border:1px solid #cbd2cc;border-radius:6px;padding:6px 8px;background:#fff;font-size:11px}.icon-only{width:31px;height:31px;display:grid;place-items:center;border:0;border-radius:6px;background:transparent}.icon-only:hover{background:#f8e9e7}.share-empty{min-height:90px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;color:#89928c;font-size:12px}.spin{animation:spin .8s linear infinite}.dialog-overlay{position:fixed;z-index:100;inset:0;background:#101b152e;animation:fade-in .12s ease-out}.dialog-content{position:fixed;z-index:101;top:50%;left:50%;width:min(460px,calc(100vw - 32px));max-height:min(760px,calc(100vh - 40px));overflow:auto;transform:translate(-50%,-50%);background:#fff;border-radius:12px;box-shadow:0 25px 80px #0004;animation:dialog-in .15s ease-out}.dialog-wide{width:min(660px,calc(100vw - 32px))}.dialog-extra-wide{width:min(900px,calc(100vw - 32px))}.dialog-header{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 22px 14px;border-bottom:1px solid #e5e8e5}.dialog-header h2{margin:0;font-size:19px}.dialog-header p{margin:6px 0 0;color:#737a75;font-size:12px;line-height:1.5}.dialog-close{border:0;background:transparent;color:#6d746f;font-size:22px}.dialog-body{padding:20px 22px}.dialog-body .warning{display:flex;align-items:flex-start;gap:8px;margin:0;padding:10px 11px;border:1px solid #e4cf91;border-radius:7px;background:#fff8df;color:#735a18;font-size:11px;line-height:1.5}.dialog-body .warning svg{flex:none;margin-top:1px}.word-count-source{margin:0 0 15px;color:#68766d;font-size:11px}.word-count-source code{color:#315b43;font:11px/1.4 SFMono-Regular,Consolas,monospace}.word-count-source a{margin-left:8px;color:#176b44;font-size:10px}.word-count-template-note{margin:-6px 0 15px;color:#7b7566;font-size:10px;line-height:1.45}.word-count-loading{min-height:150px;display:flex;align-items:center;justify-content:center;gap:9px;color:#52685a;font-size:12px}.word-count-result{display:grid;gap:16px}.word-count-totals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.word-count-total{display:flex;align-items:baseline;gap:8px;padding:15px 16px;border:1px solid #cfe0d3;border-radius:9px;background:#edf6ef;color:#1e5f3d}.word-count-total svg{align-self:center}.word-count-total strong{font-size:28px;line-height:1;letter-spacing:-.03em}.word-count-total span{color:#52705d;font-size:11px}.word-count-total small{display:block;margin-top:2px;color:#75847a;font-size:9px;font-weight:400;line-height:1.25}.word-count-characters{border-color:#d8ddea;background:#f1f3f9;color:#405989}.word-count-characters span{color:#617092}.word-count-breakdown{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px;margin:0}.word-count-breakdown div{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding-bottom:6px;border-bottom:1px solid #edf0ed}.word-count-breakdown dt{color:#68766d;font-size:11px}.word-count-breakdown dd{display:inline-flex;align-items:baseline;gap:3px;margin:0;color:#2f4938;font-size:12px;font-variant-numeric:tabular-nums;font-weight:650}.word-count-breakdown dd small{color:#77847c;font-size:9px;font-weight:500}.word-count-warning{margin:0}.system-metrics{display:grid;gap:20px}.metric-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.metric-card{min-width:0;padding:14px 16px;border:1px solid #dfe4df;border-radius:10px;background:#f7f8f6;display:grid;gap:4px}.metric-card>span,.metric-card small{color:var(--muted);font-size:12px}.metric-card strong{font-size:20px;font-weight:650}.metric-section{display:grid;gap:10px}.metric-section h3{margin:0;display:flex;align-items:center;gap:7px;font-size:14px}.metric-section p{margin:0;font-size:13px}.metric-table-wrap{overflow-x:auto;border:1px solid #dfe4df;border-radius:9px}.metric-table{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}.metric-table th,.metric-table td{padding:8px 10px;border-bottom:1px solid #e4e8e4;text-align:right}.metric-table th:first-child,.metric-table td:first-child{text-align:left}.metric-table tbody tr:last-child td{border-bottom:0}@media(max-width:640px){.metric-summary-grid{grid-template-columns:1fr}}.dialog-footer{display:flex;justify-content:flex-end;gap:8px;padding:14px 22px;border-top:1px solid #e5e8e5;background:#f8f9f7}.dialog-footer button{border:1px solid #cbd2cc;border-radius:7px;padding:8px 14px;background:#fff}.dialog-footer .primary{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-color:#176b44;background:#176b44;color:#fff}.dialog-footer .danger,button.danger{border-color:#b3261e;background:#b3261e;color:#fff}.citation-library-dialog{display:flex;flex-direction:column;gap:12px}.citation-library-tabs{display:flex;gap:4px;padding:3px;border:1px solid #d7ded8;border-radius:9px;background:#f4f7f4}.citation-library-tabs button{display:inline-flex;flex:1;align-items:center;justify-content:center;gap:6px;min-height:34px;border:1px solid transparent;border-radius:7px;background:transparent;color:#66716a;font-size:12px}.citation-library-tabs button:hover{background:#eaf1eb;color:#31523e}.citation-library-tabs button.active{border-color:#c8d9cb;background:#fff;color:#176b44;box-shadow:0 1px 2px #233c2a12}.citation-library-tabs button span{min-width:18px;padding:1px 5px;border-radius:999px;background:#e7eee8;font-size:10px}.citation-library-search{display:flex;align-items:center;gap:8px;padding:0 10px;border:1px solid #ccd6ce;border-radius:7px;background:#fff;color:#68766d}.citation-library-search-row{display:flex;align-items:stretch;gap:8px}.citation-library-search-row .citation-library-search{min-width:0;flex:1}.citation-add-entry-button{display:inline-flex;align-items:center;gap:5px;flex:none;border:1px solid #176b44;border-radius:7px;padding:0 11px;background:#176b44;color:#fff;font-size:11px}.citation-add-entry-button:hover{background:#125937}.citation-library-search input{min-width:0;flex:1;border:0;padding:9px 0;outline:0;font-size:12px}.citation-library-search span{flex:none;color:#8a958d;font-size:10px}.citation-tag-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.citation-tag-filters{min-width:0;display:flex;flex:1;flex-wrap:wrap;gap:5px}.citation-tag-filters button{display:inline-flex;align-items:center;gap:5px;border:1px solid transparent;border-radius:999px;padding:5px 8px;background:#f1f4f1;color:#5f6e64;font-size:10px}.citation-tag-filters button:hover{background:#e6eee8}.citation-tag-filters button.active{border-color:#9cbea6;background:#e8f2eb;color:#176b44}.citation-tag-create{display:flex;flex:none;gap:5px}.citation-tag-create input,.citation-tag-create select{min-width:0;border:1px solid #cbd4cd;border-radius:6px;padding:6px 7px;background:#fff;font-size:10px}.citation-tag-create input{width:120px}.citation-tag-create select{width:76px}.citation-tag-create button{display:inline-flex;align-items:center;gap:4px;border:1px solid #bdc9c0;border-radius:6px;padding:6px 8px;background:#fff;color:#31523e;font-size:10px;white-space:nowrap}.citation-tag-create button:hover:not(:disabled){border-color:#8eaa98;background:#edf4ef}.citation-entry-list{display:flex;flex-direction:column;gap:8px;max-height:46vh;overflow:auto;padding:1px}.citation-entry-item{display:flex;flex-direction:column;gap:6px}.citation-entry-card{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:10px 11px;border:1px solid #dce3de;border-radius:8px;background:#fbfcfb}.citation-entry-card.already-in-file{border-color:#d7ddd8;background:#f0f2f0;filter:grayscale(.35)}.citation-entry-card.already-in-file .citation-entry-heading code,.citation-entry-card.already-in-file .citation-entry-main>strong,.citation-entry-card.already-in-file .citation-entry-main>p{color:#7c867f}.citation-entry-card.selected{position:relative;z-index:1;border-color:#70a982;background:#f0f8f2;box-shadow:0 0 0 2px #2f7a5824,0 6px 16px #244c3520}.citation-entry-card.selected .citation-entry-heading code{color:#0f633d}.citation-entry-main{min-width:0;display:flex;flex:1;flex-direction:column;gap:3px}.citation-entry-heading{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.citation-entry-heading code{color:#176b44;font:650 11px/1.3 SFMono-Regular,Consolas,monospace}.citation-entry-heading>span{color:#859189;font-size:10px}.citation-entry-heading>.citation-entry-venue{max-width:22rem;overflow:hidden;border-radius:999px;padding:2px 6px;background:#edf0ff;color:#4b5ca8;font-size:9px;font-style:italic;font-synthesis:style;text-overflow:ellipsis;white-space:nowrap}.citation-entry-heading em{display:inline-flex;align-items:center;gap:3px;border-radius:999px;padding:2px 6px;background:#e8f2eb;color:#26704a;font-size:9px;font-style:normal}.citation-entry-heading em.private{background:#edf0ee;color:#69756d}.citation-entry-main>strong{overflow:hidden;color:#2b3b31;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.citation-entry-main>p{margin:0;overflow:hidden;color:#718078;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.citation-entry-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:3px}.citation-tag-pill{display:inline-flex;align-items:center;gap:4px;border:1px solid color-mix(in srgb,var(--tag-color) 35%,transparent);border-radius:999px;padding:2px 6px;background:color-mix(in srgb,var(--tag-color) 12%,white);color:#526158;font-size:9px}.citation-tag-dot{width:7px;height:7px;flex:none;display:inline-block;border-radius:50%;background:var(--tag-color)}.citation-tag-filters .citation-tag-dot{background:var(--tag-color)}.citation-entry-actions{display:flex;flex:none;flex-wrap:wrap;justify-content:flex-end;gap:5px}.citation-entry-actions button{display:inline-flex;align-items:center;gap:4px;border:1px solid #cbd5ce;border-radius:6px;padding:6px 8px;background:#fff;color:#52685a;font-size:10px;white-space:nowrap}.citation-entry-actions button:hover:not(:disabled){border-color:#8eaa98;background:#edf4ef;color:#176b44}.citation-entry-actions button.primary{border-color:#176b44;background:#176b44;color:#fff}.citation-entry-actions button.saved{border-color:#acd0b8;background:#edf7f0;color:#17623d}.citation-library-empty{min-height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;color:#7b887f;text-align:center}.citation-library-empty strong{color:#526158;font-size:13px}.citation-library-empty span{max-width:360px;font-size:11px;line-height:1.45}.citation-library-notice{display:flex;align-items:center;gap:6px;margin:0;padding:8px 10px;border:1px solid #acd0b8;border-radius:7px;background:#edf7f0;color:#17623d;font-size:11px}.citation-library-notice button{display:grid;place-items:center;width:21px;height:21px;margin-left:auto;border:0;border-radius:4px;background:transparent;color:inherit}.citation-current-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.citation-current-heading>div{min-width:0;display:flex;flex-direction:column;gap:3px}.citation-current-heading strong{color:#31523e;font-size:13px}.citation-current-heading span{color:#78857c;font-size:10px}.citation-current-heading button{display:inline-flex;align-items:center;gap:4px;border:0;background:transparent;color:#176b44;font-size:10px;white-space:nowrap}.citation-edit-panel,.citation-tag-editor{display:flex;flex-direction:column;gap:9px;padding:10px 11px;border:1px solid #cbd9ce;border-radius:8px;background:#f5f9f6}.citation-edit-header{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#31523e;font-size:11px}.citation-edit-header>div{min-width:0;display:flex;flex-direction:column;gap:3px}.citation-edit-header small{color:#78857c;font-size:10px;font-weight:400;line-height:1.4}.citation-edit-header button{display:grid;place-items:center;width:22px;height:22px;border:0;border-radius:4px;background:transparent;color:#68766d}.citation-edit-header button:hover{background:#e2ece4}.citation-edit-panel textarea{width:100%;resize:vertical;border:1px solid #cbd5ce;border-radius:6px;padding:8px;outline:0;font:11px/1.5 SFMono-Regular,Consolas,monospace}.citation-edit-panel textarea:focus{border-color:#176b44;box-shadow:0 0 0 2px #176b4420}.citation-modal-form{display:flex;flex-direction:column;gap:12px}.citation-modal-form.citation-edit-panel{padding:0;border:0;background:transparent}.citation-entry-item>.citation-edit-panel,.citation-entry-item>.citation-tag-editor{margin:0 7px 0 12px;border-left:3px solid #70a982}.citation-edit-actions{display:flex;justify-content:flex-end;gap:6px}.citation-edit-actions button{display:inline-flex;align-items:center;gap:4px;border:1px solid #bdc9c0;border-radius:6px;padding:6px 9px;background:#fff;color:#52685a;font-size:10px}.citation-edit-actions button.primary{border-color:#176b44;background:#176b44;color:#fff}.citation-tag-choice-list{display:flex;flex-wrap:wrap;gap:7px}.citation-tag-choice-list label{display:inline-flex;align-items:center;gap:5px;border:1px solid #d4ded6;border-radius:999px;padding:5px 7px;background:#fff;color:#526158;font-size:10px}.citation-tag-choice-list input{width:auto;accent-color:#176b44}.form-stack{display:flex;flex-direction:column;gap:14px}.import-error{margin:0;padding:10px 12px;border:1px solid #e3b5b1;border-radius:8px;background:#fff3f2;line-height:1.45}.form-field{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:650}.form-field input,.form-field select,.form-field textarea{width:100%;border:1px solid #cbd2cc;border-radius:8px;padding:10px 11px;background:#fff;outline:none}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:#176b44;box-shadow:0 0 0 3px #176b4420}.upload-picker{position:relative;min-height:116px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:20px;border:1.5px dashed #aebbb2;border-radius:10px;background:#f6f8f6;color:#5f6b63;transition:border-color .15s ease,background .15s ease}.upload-picker:hover,.upload-picker:focus-within{border-color:#4f8a68;background:#f0f6f2}.upload-picker.has-file{border-style:solid;border-color:#83aa91;background:#edf5ef;color:#276044}.upload-picker>svg{flex:none;color:#176b44}.upload-picker-copy{min-width:0;display:flex;flex-direction:column;gap:4px}.upload-picker-copy strong,.upload-picker-copy span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-picker-copy strong{color:#29382f;font-size:13px}.upload-picker-copy span{color:#758078;font-size:11px}.upload-picker>button{display:inline-flex;align-items:center;gap:6px;border:1px solid #9fb0a4;border-radius:7px;padding:8px 11px;background:#fff;color:#235c3d;font-size:12px;font-weight:650}.upload-picker>button:hover{border-color:#176b44;background:#e4efe8}.upload-picker>.upload-clear{position:absolute;top:7px;right:7px;width:26px;height:26px;display:grid;place-items:center;border:0;padding:0;background:transparent;color:#6c776f}.upload-picker>.upload-clear:hover{background:#dce9e0;color:#9d2f27}.choice-group{display:flex;flex-direction:column;gap:10px;border:1px solid #dfe3df;border-radius:8px;padding:14px}.choice-group legend{padding:0 5px;font-size:12px;color:#69716b}.choice-group label{font-size:13px}.color-picker{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;border:0;padding:0}.color-picker legend{margin-bottom:8px;font-size:13px;font-weight:650}.color-picker label{display:flex;align-items:center;gap:7px;border:1px solid #dce1dd;border-radius:7px;padding:8px;font-size:12px}.color-picker label.active{border-color:#176b44;background:#edf5f0}.color-picker input{position:absolute;opacity:0;pointer-events:none}.tag-assignment-list{display:flex;flex-direction:column;gap:7px}.tag-assignment-list label,.tag-assignment-list button{display:flex;align-items:center;gap:9px;min-height:38px;border:1px solid #dce1dd;border-radius:7px;padding:8px 10px;background:#fff;color:#38423b;font-size:13px;text-align:left}.tag-assignment-list label:hover,.tag-assignment-list button:hover{border-color:#8bae9a;background:#f4f8f5}.tag-assignment-list input{width:auto;accent-color:#176b44}.tag-management{display:flex;flex-direction:column;gap:15px}.tag-management-create{display:grid;grid-template-columns:minmax(0,1fr) 126px auto;align-items:end;gap:9px;padding:11px;border:1px solid #dbe4dd;border-radius:9px;background:#f7faf7}.tag-management-field{min-width:0;display:flex;flex-direction:column;gap:5px}.tag-management-field>span{color:#637168;font-size:10px;font-weight:700;letter-spacing:.015em;text-transform:uppercase}.tag-management-field input,.tag-management-field select{width:100%;min-width:0;height:34px;border:1px solid #cbd5ce;border-radius:6px;padding:6px 8px;background:#fff;color:#2c4234;outline:0;font-size:12px}.tag-management-field input:focus,.tag-management-field select:focus{border-color:#176b44;box-shadow:0 0 0 2px #176b4420}.tag-management-create .primary{min-height:34px;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:7px 10px;font-size:11px;white-space:nowrap}.tag-management-loading,.tag-management-empty{min-height:112px;display:flex;align-items:center;justify-content:center;gap:7px;margin:0;border:1px dashed #d6dfd8;border-radius:8px;color:#768279;font-size:12px}.tag-management-list{display:flex;flex-direction:column;gap:7px}.tag-management-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:9px 10px;border:1px solid #e0e6e1;border-radius:8px;background:#fff}.tag-management-item.editing{border-color:#9abca5;background:#fbfdfb;box-shadow:0 0 0 2px #176b440c}.tag-management-item-main{min-width:0;display:flex;align-items:center;gap:9px}.tag-management-item-main .tag-dot{width:11px;height:11px}.tag-management-item-main>div{min-width:0;display:flex;align-items:baseline;gap:8px}.tag-management-item-main strong{min-width:0;overflow:hidden;color:#2c4234;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.tag-management-item-main small{flex:none;color:#7a857e;font-size:10px}.tag-management-item-actions{display:flex;align-items:center;gap:2px}.tag-management-item-actions button{width:29px;height:29px;display:grid;place-items:center;border:0;border-radius:5px;background:transparent;color:#64726a}.tag-management-item-actions button:hover:not(:disabled){background:#eaf1eb;color:#176b44}.tag-management-item-actions button.danger-text{color:#b3261e}.tag-management-item-actions button.danger-text:hover:not(:disabled){background:#fff0ef;color:#9f251e}.tag-management-edit{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1fr) 126px auto;align-items:end;gap:9px;padding-top:9px;border-top:1px solid #e1e9e2}.tag-management-edit-actions{display:flex;align-items:center;gap:5px}.tag-management-edit-actions button{min-height:34px;display:inline-flex;align-items:center;justify-content:center;gap:4px;border:1px solid #c7d1c9;border-radius:6px;padding:7px 9px;background:#fff;color:#516259;font-size:11px}.tag-management-edit-actions button.primary{border-color:#176b44;background:#176b44;color:#fff}.project-icon-picker{display:flex;flex-direction:column;gap:12px}.project-icon-search{display:flex;align-items:center;gap:8px;border:1px solid #cbd5ce;border-radius:8px;padding:0 10px;background:#fff;color:#6b7970}.project-icon-search:focus-within{border-color:#176b44;box-shadow:0 0 0 2px #176b4420}.project-icon-search input{width:100%;min-width:0;height:36px;border:0;outline:0;background:transparent;color:#26362d;font:inherit;font-size:13px}.project-icon-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:7px;max-height:410px;overflow:auto;padding:2px}.project-icon-option{min-width:0;min-height:80px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:1px solid #dce4de;border-radius:8px;padding:7px 6px;background:#fff;color:#526058;font-size:10px;font-weight:650;line-height:1.2;text-align:center}.project-icon-option:hover{border-color:#91b49c;background:#f5faf6;color:#176b44}.project-icon-option:focus-visible{outline:3px solid #176b4455;outline-offset:1px}.project-icon-option.selected{border-color:#4f9567;background:#eaf5ed;color:#176b44;box-shadow:inset 0 0 0 1px #4f956744}.project-icon-option-glyph{width:31px;height:31px;display:grid;place-items:center;border-radius:50%;background:#e5f0fb;color:#1b5aa0}.project-icon-option.selected .project-icon-option-glyph{background:#d8eddf;color:#176b44}.project-icon-picker-empty{margin:0;padding:14px;border:1px dashed #d4ded6;border-radius:8px;color:#768279;font-size:12px;text-align:center}.project-icon-advanced{display:grid;gap:6px;border-top:1px solid #e3e9e4;padding-top:12px}.project-icon-advanced>label{color:#314339;font-size:12px;font-weight:700}.project-icon-advanced-input{min-width:0;display:flex;align-items:center;gap:8px;border:1px solid #cbd5ce;border-radius:8px;padding:0 8px 0 10px;background:#fff}.project-icon-advanced-input:focus-within{border-color:#176b44;box-shadow:0 0 0 2px #176b4420}.project-icon-advanced-input input{width:100%;min-width:0;height:34px;border:0;outline:0;background:transparent;color:#26362d;font:inherit;font-size:13px}.project-icon-advanced-preview{width:26px;height:26px;display:grid;place-items:center;flex:none;border-radius:6px;background:#e5f0fb;color:#1b5aa0}.project-icon-advanced>p{margin:0;color:#718076;font-size:11px;line-height:1.45}.project-icon-advanced>p a{color:#176b44;font-weight:650}.checkbox-field{display:flex;align-items:center;gap:8px;font-size:13px}.checkbox-field input{width:auto}.selection-preview{max-height:130px;overflow:auto;margin:14px 0 0;padding:10px 12px;border-left:3px solid #d6a128;background:#fff8e5;white-space:pre-wrap;font:12px/1.5 SFMono-Regular,Consolas,monospace}.git-dialog{display:flex;flex-direction:column;gap:14px}.git-dialog-modal-fullscreen{top:0;left:0;width:100vw;height:100vh;max-height:100vh;transform:none;overflow:hidden;border-radius:0}.git-loading{min-height:120px;display:flex;align-items:center;justify-content:center;gap:8px;color:#6e7871;font-size:13px}.git-message{margin:0;display:flex;align-items:center;gap:7px;padding:9px 11px;border:1px solid;border-radius:7px;font-size:12px}.git-message.error{border-color:#e2b4b0;background:#fff2f1}.git-message.success{border-color:#acd0b8;background:#edf7f0;color:#17623d}.git-section{display:flex;flex-direction:column;gap:11px;padding:14px;border:1px solid #dfe4e0;border-radius:9px;background:#fbfcfb}.git-section-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;border:0;padding:0;background:transparent;color:#607068;text-align:left}.git-section-toggle:hover{color:#176b44}.git-section-heading{min-width:0;display:flex;align-items:flex-start;gap:8px;color:#27533a}.git-section-heading>svg{flex:none;margin-top:1px}.git-section-heading>div,.git-section-heading>span{min-width:0;display:flex;flex-direction:column;gap:3px}.git-section-heading strong{font-size:13px}.git-section-heading small{max-width:650px;overflow:hidden;color:#78817b;font-size:10px;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}.git-section-content{display:flex;flex-direction:column;gap:11px;padding-top:2px}.git-token-guidance{display:flex;flex-direction:column;gap:4px;padding:10px 11px;border:1px solid #c6d9cb;border-left:3px solid #28714b;border-radius:7px;background:#f0f7f2}.git-token-guidance strong{color:#225d3c;font-size:11px}.git-token-guidance span{color:#66756b;font-size:10px;line-height:1.5}.git-account,.git-repository-card{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:7px;background:#eaf3ed;color:#23563a;font-size:12px}.git-account>span{min-width:0;flex:1}.git-account button{display:inline-flex;align-items:center;gap:4px;border:0;background:transparent;color:#a3342c;font-size:10px}.git-inline-actions,.git-action-row{display:flex;align-items:center;flex-wrap:wrap;gap:7px}.git-inline-actions{justify-content:space-between}.git-inline-actions a,.git-repository-card a{display:inline-flex;align-items:center;gap:4px;color:#176b44;font-size:11px;text-decoration:none}.git-inline-actions button,.git-action-row button,.git-primary-action{display:inline-flex;align-items:center;justify-content:center;gap:5px;border:1px solid #bdc9c0;border-radius:6px;padding:7px 9px;background:#fff;color:#31523e;font-size:11px}.git-action-row .git-discard-button:not(:disabled){border-color:#d9aaa5;color:#9b332b}.git-action-row .git-discard-button:not(:disabled):hover{background:#fff0ee}.git-primary-action{align-self:flex-start;border-color:#176b44;background:#176b44;color:#fff}.git-repository-card{justify-content:space-between}.git-repository-card>div{min-width:0;display:flex;flex-direction:column;gap:3px}.git-repository-card strong,.git-repository-card small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.git-repository-card small{color:#6e7c73;font-size:10px}.git-count{min-width:17px;padding:1px 5px;border-radius:999px;background:#d9e9df;font-size:9px}.git-diff-section{padding-bottom:0;overflow:hidden}.git-diff-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.git-diff-controls{display:flex;align-items:center;gap:7px;flex:none}.git-diff-font-controls{display:inline-flex;align-items:center;gap:2px;border:1px solid #cbd5ce;border-radius:6px;padding:2px;background:#fff;color:#52685a}.git-diff-font-button{width:25px;height:25px;display:grid;place-items:center;border:0;border-radius:4px;padding:0;background:transparent;color:inherit}.git-diff-font-button:hover:not(:disabled){background:#edf4ef;color:#176b44}.git-diff-font-value{min-width:34px;color:#52685a;font-size:10px;font-variant-numeric:tabular-nums;text-align:center}.git-diff-fullscreen{width:29px;height:29px;flex:none;display:grid;place-items:center;padding:0!important;border:1px solid #cbd5ce!important;border-radius:6px!important;background:#fff!important;color:#52685a}.git-diff-fullscreen:hover{border-color:#8eaa98!important;background:#edf4ef!important;color:#176b44}.git-diff-section.is-fullscreen,.git-diff-section:fullscreen{position:fixed;z-index:1000;inset:0;width:100vw;height:100vh;max-height:none;box-sizing:border-box;margin:0;padding:20px!important;border:0;border-radius:0;overflow:hidden;background:#fbfcfb}.git-diff-section.is-fullscreen .git-diff,.git-diff-section:fullscreen .git-diff{flex:1;min-height:0;max-height:none;margin:0}.git-diff-section.is-fullscreen .git-diff-empty,.git-diff-section:fullscreen .git-diff-empty{flex:1;min-height:0;margin:0}.git-diff{max-height:360px;margin:0 -14px;overflow:auto;padding:11px 0;background:#202522;color:#d9e1dc;font:10px/1.5 SFMono-Regular,Consolas,monospace;tab-size:4}.git-diff span{display:block;min-width:max-content;padding:0 12px;white-space:pre}.git-diff span.addition{background:#173b28;color:#bfe8cb}.git-diff span.deletion{background:#442421;color:#f1c1bc}.git-diff span.hunk{background:#283a48;color:#b8daf4}.git-diff span.header{color:#e8cf8b;font-weight:650}.git-diff-empty{margin:0 -14px;padding:28px;background:#252a27;color:#b9c0bc;font-size:12px;text-align:center}.git-history{max-height:300px;display:flex;flex-direction:column;gap:5px;overflow:auto}.git-history article{min-width:0;display:grid;grid-template-columns:66px minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px;border:1px solid #e2e6e3;border-radius:6px;background:#fff}.git-history code{color:#176b44;font-size:10px}.git-history article>div{min-width:0;display:flex;flex-direction:column;gap:2px}.git-history article strong,.git-history article small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.git-history article strong{font-size:11px}.git-history article small{color:#7b847e;font-size:9px}.git-history article>span{display:flex;gap:3px}.git-history button{width:27px;height:27px;display:grid;place-items:center;border:0;border-radius:5px;background:transparent;color:#52685a}.git-history button:hover{background:#e8f0eb;color:#176b44}.git-force-checkout{display:flex;align-items:flex-start;gap:9px;padding:11px;border:1px solid #e4b9b5;border-radius:8px;background:#fff6f5}.git-force-checkout input{margin-top:2px;accent-color:#b3261e}.git-force-checkout span{display:flex;flex-direction:column;gap:3px}.git-force-checkout strong{color:#932c25;font-size:12px}.git-force-checkout small{color:#7d6562;font-size:10px;line-height:1.45}.quick-open-dialog>label,.project-search-query{display:flex;align-items:center;gap:8px;border:1px solid #bfcac2;border-radius:7px;padding:0 10px;background:#fff}.quick-open-dialog>label:focus-within,.project-search-query:focus-within{border-color:#418060;box-shadow:0 0 0 2px #41806020}.quick-open-dialog input,.project-search-query input{width:100%;border:0;outline:0;padding:10px 0;background:transparent}.quick-open-results{max-height:420px;overflow:auto;margin-top:8px;border:1px solid #d9e0db;border-radius:7px}.quick-open-results button{display:grid;grid-template-columns:20px minmax(0,1fr) 18px;align-items:center;gap:6px;width:100%;padding:8px 10px;border:0;border-radius:0;background:#fff;text-align:left}.quick-open-results button+button{border-top:1px solid #eef1ef}.quick-open-results button.active{background:#e4efe8;color:#195f3d}.quick-open-results span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:11px/1.4 JetBrains Mono,monospace}.project-search-dialog{display:grid;gap:9px}.project-search-form{display:grid;grid-template-columns:1fr 1fr;gap:8px}.project-search-options{grid-column:1 / -1;display:flex;align-items:center;gap:14px}.project-search-options label{display:inline-flex;align-items:center;gap:5px;color:#55645a;font-size:11px}.project-search-options label input{accent-color:#28734b}.project-search-options button{margin-left:auto;display:inline-flex;align-items:center;gap:5px}.project-search-summary{display:flex;align-items:center;justify-content:space-between;min-height:22px;color:#5e6c63;font-size:11px}.project-search-summary span{display:inline-flex;align-items:center;gap:5px}.project-search-results{max-height:480px;overflow:auto;border:1px solid #d9e0db;border-radius:7px;background:#fff}.project-search-results>button{display:grid;grid-template-columns:20px minmax(0,1fr);gap:7px;width:100%;padding:9px 10px;border:0;border-radius:0;background:#fff;text-align:left}.project-search-results>button+button{border-top:1px solid #e8ece9}.project-search-results>button:hover{background:#edf4ef}.project-search-results>button>span{min-width:0;display:grid;gap:4px}.project-search-results strong{color:#31503d;font-size:11px}.project-search-results strong small{color:#7c877f;font-weight:400}.project-search-results code{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#4e5952;font:10px/1.45 JetBrains Mono,monospace}.project-search-results mark{border-radius:2px;padding:1px;background:#f2d36e;color:#4b3b0b}.history-dialog-modal{width:min(1120px,calc(100vw - 32px))}.history-dialog{display:grid;grid-template-columns:270px minmax(0,1fr);min-height:560px;max-height:min(72vh,760px);border:1px solid #d9e0db;border-radius:8px;overflow:hidden;background:#fff}.history-loading{grid-column:1 / -1;display:flex;align-items:center;justify-content:center;gap:8px;min-height:420px;color:#68736b}.history-message{grid-column:1 / -1;margin:10px}.history-timeline{overflow:auto;border-right:1px solid #d9e0db;background:#f5f7f5}.history-stats{position:sticky;top:0;z-index:2;display:grid;gap:5px;padding:10px 12px;border-bottom:1px solid #d8dfda;background:#edf3ef;color:#33483b}.history-stats header{display:flex;align-items:center;justify-content:space-between;gap:8px}.history-stats header span{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700}.history-stats header button{width:26px;height:26px;display:grid;place-items:center;border:0;padding:0;background:transparent;color:#9d332b}.history-stats header button:hover:not(:disabled){background:#f5deda}.history-stats strong{font-size:11px}.history-stats small{color:#68766d;font-size:9px;line-height:1.4}.history-stats progress{width:100%;height:6px;border:0;border-radius:999px;overflow:hidden;accent-color:#34845a}.history-stats.exceeded progress{accent-color:#bd483e}.history-stats .history-storage-warning{color:#9d332b}.history-timeline>button{display:grid;grid-template-columns:20px minmax(0,1fr);gap:7px;width:100%;padding:11px 12px;border:0;border-bottom:1px solid #e1e6e2;border-radius:0;background:transparent;text-align:left;color:#34443a}.history-timeline>button:hover{background:#eaf0ec}.history-timeline>button.active{background:#dfece4;box-shadow:inset 3px 0 #28734b}.history-timeline>button span{min-width:0;display:grid;gap:2px}.history-timeline>button strong,.history-timeline>button small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-timeline>button small{color:#68736b;font-size:10px}.history-detail{min-width:0;overflow:auto;padding:14px}.history-detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.history-detail-header>div{display:grid;gap:4px}.history-detail-header small{display:flex;align-items:center;gap:4px;color:#68736b}.history-detail-actions{display:flex;align-items:center;gap:6px}.history-detail-actions button{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.history-label{display:flex;gap:8px;margin-bottom:12px}.history-label label{flex:1;display:flex;align-items:center;gap:7px;padding:0 9px;border:1px solid #cdd6cf;border-radius:6px;background:#fff}.history-label input{width:100%;border:0;padding:8px 0;outline:0}.history-files{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:start}.history-file-list{display:flex;gap:5px;overflow-x:auto;padding-bottom:5px}.history-file-list button{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;max-width:230px}.history-file-list button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-file-list button small{padding:1px 4px;border-radius:8px;background:#f2d675;color:#695414;font-size:9px}.history-file-list button.active{border-color:#418060;background:#e7f0ea}.history-file-actions{display:flex;gap:5px}.history-file-actions button{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.history-comparison{min-height:360px;margin-top:10px;border:1px solid #d8dfda;border-radius:7px;overflow:hidden;background:#fbfcfb}.history-comparison>header{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:8px 10px;border-bottom:1px solid #d8dfda;background:#f1f4f2}.history-comparison>header small{color:#68736b}.history-comparison pre{min-height:330px;max-height:430px;margin:0;overflow:auto;padding:11px;white-space:pre-wrap;overflow-wrap:anywhere;font:11px/1.5 JetBrains Mono,Source Code Pro,monospace;color:#26342b}.history-comparison pre .history-removed{background:#f8c9c9;color:#7b2525;text-decoration:line-through}.history-comparison pre .history-added{background:#ccebd5;color:#15552c}.history-comparison-empty{min-height:360px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#78827b}@keyframes fade-in{0%{opacity:0}}@keyframes dialog-in{0%{opacity:0;transform:translate(-50%,-48%) scale(.98)}}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1100px){.project-list-header{grid-template-columns:44px minmax(180px,1fr) minmax(96px,120px) 112px minmax(135px,155px) 35px;gap:9px;padding-right:11px;padding-left:11px}.project-list-open{grid-template-columns:minmax(180px,1fr) minmax(96px,120px) 112px minmax(135px,155px);gap:9px;padding-right:11px;padding-left:11px}.project-list-avatar{width:36px;height:36px}.project-action-menu-list{flex-basis:44px}.editor-actions button{padding:8px}.editor-actions button svg+*{display:none}.editor-actions .format-action button,.editor-actions .comments-action button,.editor-actions .version-action button{padding:7px 6px}.editor-actions .format-action button svg+*,.editor-actions .comments-action button svg+*,.editor-actions .version-action button svg+*{display:inline}}@media(max-width:960px){.project-list-header{grid-template-columns:44px minmax(0,1fr) minmax(104px,130px) minmax(140px,165px) 35px}.project-list-header>:nth-child(3),.project-list-created{display:none}.project-list-header>:nth-child(4){grid-column:4}.project-list-header>:nth-child(5){grid-column:5}.project-list-open{grid-template-columns:minmax(160px,1fr) minmax(104px,130px) minmax(140px,165px)}.project-list-avatar{width:36px;height:36px;font-size:15px}.project-action-menu-list{flex-basis:44px}}@media(max-width:860px){.project-catalog-layout{display:block}.project-tag-sidebar{position:static;width:100%;margin-bottom:10px}.project-tag-toggle{width:100%;justify-content:space-between;padding:8px 10px}.project-tag-toggle-copy span,.project-tag-toggle-chevron{display:inline}.project-tag-filters{position:static;width:auto;margin-top:7px;grid-template-columns:repeat(4,minmax(0,1fr));box-shadow:none}}@media(min-width:1660px){.project-tag-filters{right:calc(100% + 12px);left:auto}}@media(max-width:720px){.project-list-header{display:none}.project-grid.list-view{gap:7px}.project-grid.list-view .project-card{height:68px;min-height:68px}.project-list-open{grid-template-columns:minmax(0,1fr) minmax(118px,145px);gap:8px;padding:8px 9px 8px 8px}.project-list-avatar{width:36px;height:36px;margin-left:8px}.project-list-title{font-size:15px}.project-list-owner{display:none}.project-list-modified{font-size:12px}.project-list-modified small{font-size:10px}.project-action-menu-list{flex-basis:44px}.project-action-menu-trigger{width:32px;height:32px;min-width:32px;min-height:32px}.project-action-menu-list .project-action-menu{right:36px;width:min(208px,calc(100vw - 42px))}.citation-library-page-shell{padding-top:24px}.citation-library-page-header{flex-direction:column}.citation-library-page-header h1{font-size:25px}.citation-library-page-header>button{align-self:flex-start}.citation-library-page .citation-library-dialog{padding:12px}.citation-library-search-row{flex-direction:column}.citation-add-entry-button{min-height:34px;justify-content:center}.citation-entry-card{flex-direction:column}.citation-entry-actions{width:100%;justify-content:flex-start}.upload-picker{grid-template-columns:auto 1fr}.upload-picker>button{grid-column:1 / -1;justify-content:center}.share-add{grid-template-columns:1fr}.shared-member{align-items:flex-start}.member-controls{flex:none}.history-dialog{grid-template-columns:1fr;max-height:none}.history-timeline{max-height:180px;border-right:0;border-bottom:1px solid #d9e0db}.history-files,.project-search-form{grid-template-columns:1fr}.tag-management-create,.tag-management-edit{grid-template-columns:minmax(0,1fr) 118px}.tag-management-create>.primary,.tag-management-edit-actions{grid-column:1 / -1}.tag-management-edit-actions{justify-content:flex-end}}@media(max-width:520px){.project-list-open{grid-template-columns:minmax(0,1fr) 88px;gap:8px}.project-list-avatar{width:36px;height:36px;font-size:15px}.project-list-tags,.project-list-modified small{display:none}.project-action-menu-list{flex-basis:44px}.project-tag-filters,.project-icon-options{grid-template-columns:repeat(3,minmax(0,1fr))}.tag-management-create,.tag-management-edit{grid-template-columns:1fr}.tag-management-item-main>div{flex-direction:column;align-items:flex-start;gap:2px}}
@@ -0,0 +1 @@
1
+ import{c as a}from"./index-CzVDvC5h.js";const c=a("KeyRound",[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]]);export{c as K};
@@ -1 +1 @@
1
- import{j as e}from"./index-Dx9UqMyC.js";const n=e("Maximize2",[["polyline",{points:"15 3 21 3 21 9",key:"mznyad"}],["polyline",{points:"9 21 3 21 3 15",key:"1avn1i"}],["line",{x1:"21",x2:"14",y1:"3",y2:"10",key:"ota7mn"}],["line",{x1:"3",x2:"10",y1:"21",y2:"14",key:"1atl0r"}]]);const a=e("Minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);export{a as M,n as a};
1
+ import{c as e}from"./index-CzVDvC5h.js";const n=e("Maximize2",[["polyline",{points:"15 3 21 3 21 9",key:"mznyad"}],["polyline",{points:"9 21 3 21 3 15",key:"1avn1i"}],["line",{x1:"21",x2:"14",y1:"3",y2:"10",key:"ota7mn"}],["line",{x1:"3",x2:"10",y1:"21",y2:"14",key:"1atl0r"}]]);const a=e("Minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);export{a as M,n as a};
@@ -0,0 +1 @@
1
+ import{c as e}from"./index-CzVDvC5h.js";const a=e("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);export{a as P};
@@ -46,4 +46,4 @@ Error generating stack: `+a.message+`
46
46
  `)},Dv=function(){var i=parseInt(document.body.getAttribute(Fa)||"0",10);return isFinite(i)?i:0},Ch=function(){x.useEffect(function(){return document.body.setAttribute(Fa,(Dv()+1).toString()),function(){var i=Dv()-1;i<=0?document.body.removeAttribute(Fa):document.body.setAttribute(Fa,i.toString())}},[])},Rh=function(i){var o=i.noRelative,s=i.noImportant,f=i.gapMode,h=f===void 0?"margin":f;Ch();var v=x.useMemo(function(){return Mh(h)},[h]);return x.createElement(Oh,{styles:Dh(v,!o,h,s?"":"!important")})},fo=!1;if(typeof window<"u")try{var Si=Object.defineProperty({},"passive",{get:function(){return fo=!0,!0}});window.addEventListener("test",Si,Si),window.removeEventListener("test",Si,Si)}catch{fo=!1}var Ja=fo?{passive:!1}:!1,Nh=function(i){return i.tagName==="TEXTAREA"},$v=function(i,o){if(!(i instanceof Element))return!1;var s=window.getComputedStyle(i);return s[o]!=="hidden"&&!(s.overflowY===s.overflowX&&!Nh(i)&&s[o]==="visible")},Uh=function(i){return $v(i,"overflowY")},Hh=function(i){return $v(i,"overflowX")},Cv=function(i,o){var s=o.ownerDocument,f=o;do{typeof ShadowRoot<"u"&&f instanceof ShadowRoot&&(f=f.host);var h=Wv(i,f);if(h){var v=kv(i,f),_=v[1],A=v[2];if(_>A)return!0}f=f.parentNode}while(f&&f!==s.body);return!1},xh=function(i){var o=i.scrollTop,s=i.scrollHeight,f=i.clientHeight;return[o,s,f]},Bh=function(i){var o=i.scrollLeft,s=i.scrollWidth,f=i.clientWidth;return[o,s,f]},Wv=function(i,o){return i==="v"?Uh(o):Hh(o)},kv=function(i,o){return i==="v"?xh(o):Bh(o)},qh=function(i,o){return i==="h"&&o==="rtl"?-1:1},Yh=function(i,o,s,f,h){var v=qh(i,window.getComputedStyle(o).direction),_=v*f,A=s.target,E=o.contains(A),S=!1,G=_>0,U=0,B=0;do{if(!A)break;var J=kv(i,A),V=J[0],Y=J[1],Z=J[2],K=Y-Z-v*V;(V||K)&&Wv(i,A)&&(U+=K,B+=V);var k=A.parentNode;A=k&&k.nodeType===Node.DOCUMENT_FRAGMENT_NODE?k.host:k}while(!E&&A!==document.body||E&&(o.contains(A)||o===A));return(G&&Math.abs(U)<1||!G&&Math.abs(B)<1)&&(S=!0),S},bi=function(i){return"changedTouches"in i?[i.changedTouches[0].clientX,i.changedTouches[0].clientY]:[0,0]},Rv=function(i){return[i.deltaX,i.deltaY]},Nv=function(i){return i&&"current"in i?i.current:i},Gh=function(i,o){return i[0]===o[0]&&i[1]===o[1]},Lh=function(i){return`
47
47
  .block-interactivity-`.concat(i,` {pointer-events: none;}
48
48
  .allow-interactivity-`).concat(i,` {pointer-events: all;}
49
- `)},Xh=0,wa=[];function jh(i){var o=x.useRef([]),s=x.useRef([0,0]),f=x.useRef(),h=x.useState(Xh++)[0],v=x.useState(wv)[0],_=x.useRef(i);x.useEffect(function(){_.current=i},[i]),x.useEffect(function(){if(i.inert){document.body.classList.add("block-interactivity-".concat(h));var Y=fh([i.lockRef.current],(i.shards||[]).map(Nv),!0).filter(Boolean);return Y.forEach(function(Z){return Z.classList.add("allow-interactivity-".concat(h))}),function(){document.body.classList.remove("block-interactivity-".concat(h)),Y.forEach(function(Z){return Z.classList.remove("allow-interactivity-".concat(h))})}}},[i.inert,i.lockRef.current,i.shards]);var A=x.useCallback(function(Y,Z){if("touches"in Y&&Y.touches.length===2||Y.type==="wheel"&&Y.ctrlKey)return!_.current.allowPinchZoom;var K=bi(Y),k=s.current,I="deltaX"in Y?Y.deltaX:k[0]-K[0],tt="deltaY"in Y?Y.deltaY:k[1]-K[1],nt,W=Y.target,q=Math.abs(I)>Math.abs(tt)?"h":"v";if("touches"in Y&&q==="h"&&W.type==="range")return!1;var Et=window.getSelection(),xt=Et&&Et.anchorNode,qt=xt?xt===W||xt.contains(W):!1;if(qt)return!1;var bt=Cv(q,W);if(!bt)return!0;if(bt?nt=q:(nt=q==="v"?"h":"v",bt=Cv(q,W)),!bt)return!1;if(!f.current&&"changedTouches"in Y&&(I||tt)&&(f.current=nt),!nt)return!0;var ot=f.current||nt;return Yh(ot,Z,Y,ot==="h"?I:tt)},[]),E=x.useCallback(function(Y){var Z=Y;if(!(!wa.length||wa[wa.length-1]!==v)){var K="deltaY"in Z?Rv(Z):bi(Z),k=o.current.filter(function(nt){return nt.name===Z.type&&(nt.target===Z.target||Z.target===nt.shadowParent)&&Gh(nt.delta,K)})[0];if(k&&k.should){Z.cancelable&&Z.preventDefault();return}if(!k){var I=(_.current.shards||[]).map(Nv).filter(Boolean).filter(function(nt){return nt.contains(Z.target)}),tt=I.length>0?A(Z,I[0]):!_.current.noIsolation;tt&&Z.cancelable&&Z.preventDefault()}}},[]),S=x.useCallback(function(Y,Z,K,k){var I={name:Y,delta:Z,target:K,should:k,shadowParent:Qh(K)};o.current.push(I),setTimeout(function(){o.current=o.current.filter(function(tt){return tt!==I})},1)},[]),G=x.useCallback(function(Y){s.current=bi(Y),f.current=void 0},[]),U=x.useCallback(function(Y){S(Y.type,Rv(Y),Y.target,A(Y,i.lockRef.current))},[]),B=x.useCallback(function(Y){S(Y.type,bi(Y),Y.target,A(Y,i.lockRef.current))},[]);x.useEffect(function(){return wa.push(v),i.setCallbacks({onScrollCapture:U,onWheelCapture:U,onTouchMoveCapture:B}),document.addEventListener("wheel",E,Ja),document.addEventListener("touchmove",E,Ja),document.addEventListener("touchstart",G,Ja),function(){wa=wa.filter(function(Y){return Y!==v}),document.removeEventListener("wheel",E,Ja),document.removeEventListener("touchmove",E,Ja),document.removeEventListener("touchstart",G,Ja)}},[]);var J=i.removeScrollBar,V=i.inert;return x.createElement(x.Fragment,null,V?x.createElement(v,{styles:Lh(h)}):null,J?x.createElement(Rh,{noRelative:i.noRelative,gapMode:i.gapMode}):null)}function Qh(i){for(var o=null;i!==null;)i instanceof ShadowRoot&&(o=i.host,i=i.host),i=i.parentNode;return o}const Zh=gh(Jv,jh);var Vh=x.forwardRef(function(i,o){return x.createElement(Mi,Zl({},i,{ref:o,sideCar:Zh}))});Vh.classNames=Mi.classNames;const Oi=x.createContext(null);Oi.displayName="PanelGroupContext";const Lt={group:"data-panel-group",groupDirection:"data-panel-group-direction",groupId:"data-panel-group-id",panel:"data-panel",panelCollapsible:"data-panel-collapsible",panelId:"data-panel-id",panelSize:"data-panel-size",resizeHandle:"data-resize-handle",resizeHandleActive:"data-resize-handle-active",resizeHandleEnabled:"data-panel-resize-handle-enabled",resizeHandleId:"data-panel-resize-handle-id",resizeHandleState:"data-resize-handle-state"},so=10,ua=x.useLayoutEffect,Uv=jm.useId,Kh=typeof Uv=="function"?Uv:()=>null;let Jh=0;function vo(i=null){const o=Kh(),s=x.useRef(i||o||null);return s.current===null&&(s.current=""+Jh++),i??s.current}function Fv({children:i,className:o="",collapsedSize:s,collapsible:f,defaultSize:h,forwardedRef:v,id:_,maxSize:A,minSize:E,onCollapse:S,onExpand:G,onResize:U,order:B,style:J,tagName:V="div",...Y}){const Z=x.useContext(Oi);if(Z===null)throw Error("Panel components must be rendered within a PanelGroup container");const{collapsePanel:K,expandPanel:k,getPanelSize:I,getPanelStyle:tt,groupId:nt,isPanelCollapsed:W,reevaluatePanelConstraints:q,registerPanel:Et,resizePanel:xt,unregisterPanel:qt}=Z,bt=vo(_),ot=x.useRef({callbacks:{onCollapse:S,onExpand:G,onResize:U},constraints:{collapsedSize:s,collapsible:f,defaultSize:h,maxSize:A,minSize:E},id:bt,idIsFromProps:_!==void 0,order:B});x.useRef({didLogMissingDefaultSizeWarning:!1}),ua(()=>{const{callbacks:Ct,constraints:pt}=ot.current,M={...pt};ot.current.id=bt,ot.current.idIsFromProps=_!==void 0,ot.current.order=B,Ct.onCollapse=S,Ct.onExpand=G,Ct.onResize=U,pt.collapsedSize=s,pt.collapsible=f,pt.defaultSize=h,pt.maxSize=A,pt.minSize=E,(M.collapsedSize!==pt.collapsedSize||M.collapsible!==pt.collapsible||M.maxSize!==pt.maxSize||M.minSize!==pt.minSize)&&q(ot.current,M)}),ua(()=>{const Ct=ot.current;return Et(Ct),()=>{qt(Ct)}},[B,bt,Et,qt]),x.useImperativeHandle(v,()=>({collapse:()=>{K(ot.current)},expand:Ct=>{k(ot.current,Ct)},getId(){return bt},getSize(){return I(ot.current)},isCollapsed(){return W(ot.current)},isExpanded(){return!W(ot.current)},resize:Ct=>{xt(ot.current,Ct)}}),[K,k,I,W,bt,xt]);const al=tt(ot.current,h);return x.createElement(V,{...Y,children:i,className:o,id:bt,style:{...al,...J},[Lt.groupId]:nt,[Lt.panel]:"",[Lt.panelCollapsible]:f||void 0,[Lt.panelId]:bt,[Lt.panelSize]:parseFloat(""+al.flexGrow).toFixed(1)})}const wh=x.forwardRef((i,o)=>x.createElement(Fv,{...i,forwardedRef:o}));Fv.displayName="Panel";wh.displayName="forwardRef(Panel)";let oo=null,Ai=-1,Ye=null;function $h(i,o){if(o){const s=(o&e0)!==0,f=(o&a0)!==0,h=(o&n0)!==0,v=(o&u0)!==0;if(s)return h?"se-resize":v?"ne-resize":"e-resize";if(f)return h?"sw-resize":v?"nw-resize":"w-resize";if(h)return"s-resize";if(v)return"n-resize"}switch(i){case"horizontal":return"ew-resize";case"intersection":return"move";case"vertical":return"ns-resize"}}function Wh(){Ye!==null&&(document.head.removeChild(Ye),oo=null,Ye=null,Ai=-1)}function to(i,o){var s,f;const h=$h(i,o);if(oo!==h){if(oo=h,Ye===null&&(Ye=document.createElement("style"),document.head.appendChild(Ye)),Ai>=0){var v;(v=Ye.sheet)===null||v===void 0||v.removeRule(Ai)}Ai=(s=(f=Ye.sheet)===null||f===void 0?void 0:f.insertRule(`*{cursor: ${h} !important;}`))!==null&&s!==void 0?s:-1}}function Iv(i){return i.type==="keydown"}function Pv(i){return i.type.startsWith("pointer")}function t0(i){return i.type.startsWith("mouse")}function Di(i){if(Pv(i)){if(i.isPrimary)return{x:i.clientX,y:i.clientY}}else if(t0(i))return{x:i.clientX,y:i.clientY};return{x:1/0,y:1/0}}function kh(){if(typeof matchMedia=="function")return matchMedia("(pointer:coarse)").matches?"coarse":"fine"}function Fh(i,o,s){return i.x<o.x+o.width&&i.x+i.width>o.x&&i.y<o.y+o.height&&i.y+i.height>o.y}function Ih(i,o){if(i===o)throw new Error("Cannot compare node with itself");const s={a:Bv(i),b:Bv(o)};let f;for(;s.a.at(-1)===s.b.at(-1);)i=s.a.pop(),o=s.b.pop(),f=i;ft(f,"Stacking order can only be calculated for elements with a common ancestor");const h={a:xv(Hv(s.a)),b:xv(Hv(s.b))};if(h.a===h.b){const v=f.childNodes,_={a:s.a.at(-1),b:s.b.at(-1)};let A=v.length;for(;A--;){const E=v[A];if(E===_.a)return 1;if(E===_.b)return-1}}return Math.sign(h.a-h.b)}const Ph=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function tg(i){var o;const s=getComputedStyle((o=l0(i))!==null&&o!==void 0?o:i).display;return s==="flex"||s==="inline-flex"}function lg(i){const o=getComputedStyle(i);return!!(o.position==="fixed"||o.zIndex!=="auto"&&(o.position!=="static"||tg(i))||+o.opacity<1||"transform"in o&&o.transform!=="none"||"webkitTransform"in o&&o.webkitTransform!=="none"||"mixBlendMode"in o&&o.mixBlendMode!=="normal"||"filter"in o&&o.filter!=="none"||"webkitFilter"in o&&o.webkitFilter!=="none"||"isolation"in o&&o.isolation==="isolate"||Ph.test(o.willChange)||o.webkitOverflowScrolling==="touch")}function Hv(i){let o=i.length;for(;o--;){const s=i[o];if(ft(s,"Missing node"),lg(s))return s}return null}function xv(i){return i&&Number(getComputedStyle(i).zIndex)||0}function Bv(i){const o=[];for(;i;)o.push(i),i=l0(i);return o}function l0(i){const{parentNode:o}=i;return o&&o instanceof ShadowRoot?o.host:o}const e0=1,a0=2,n0=4,u0=8,eg=kh()==="coarse";let Gl=[],Ia=!1,aa=new Map,Ci=new Map;const In=new Set;function ag(i,o,s,f,h){var v;const{ownerDocument:_}=o,A={direction:s,element:o,hitAreaMargins:f,setResizeHandlerState:h},E=(v=aa.get(_))!==null&&v!==void 0?v:0;return aa.set(_,E+1),In.add(A),Ti(),function(){var G;Ci.delete(i),In.delete(A);const U=(G=aa.get(_))!==null&&G!==void 0?G:1;if(aa.set(_,U-1),Ti(),U===1&&aa.delete(_),Gl.includes(A)){const B=Gl.indexOf(A);B>=0&&Gl.splice(B,1),mo(),h("up",!0,null)}}}function ng(i){const{target:o}=i,{x:s,y:f}=Di(i);Ia=!0,yo({target:o,x:s,y:f}),Ti(),Gl.length>0&&(_i("down",i),i.preventDefault(),i0(o)||i.stopImmediatePropagation())}function lo(i){const{x:o,y:s}=Di(i);if(Ia&&i.buttons===0&&(Ia=!1,_i("up",i)),!Ia){const{target:f}=i;yo({target:f,x:o,y:s})}_i("move",i),mo(),Gl.length>0&&i.preventDefault()}function eo(i){const{target:o}=i,{x:s,y:f}=Di(i);Ci.clear(),Ia=!1,Gl.length>0&&(i.preventDefault(),i0(o)||i.stopImmediatePropagation()),_i("up",i),yo({target:o,x:s,y:f}),mo(),Ti()}function i0(i){let o=i;for(;o;){if(o.hasAttribute(Lt.resizeHandle))return!0;o=o.parentElement}return!1}function yo({target:i,x:o,y:s}){Gl.splice(0);let f=null;(i instanceof HTMLElement||i instanceof SVGElement)&&(f=i),In.forEach(h=>{const{element:v,hitAreaMargins:_}=h,A=v.getBoundingClientRect(),{bottom:E,left:S,right:G,top:U}=A,B=eg?_.coarse:_.fine;if(o>=S-B&&o<=G+B&&s>=U-B&&s<=E+B){if(f!==null&&document.contains(f)&&v!==f&&!v.contains(f)&&!f.contains(v)&&Ih(f,v)>0){let V=f,Y=!1;for(;V&&!V.contains(v);){if(Fh(V.getBoundingClientRect(),A)){Y=!0;break}V=V.parentElement}if(Y)return}Gl.push(h)}})}function ao(i,o){Ci.set(i,o)}function mo(){let i=!1,o=!1;Gl.forEach(f=>{const{direction:h}=f;h==="horizontal"?i=!0:o=!0});let s=0;Ci.forEach(f=>{s|=f}),i&&o?to("intersection",s):i?to("horizontal",s):o?to("vertical",s):Wh()}let no=new AbortController;function Ti(){no.abort(),no=new AbortController;const i={capture:!0,signal:no.signal};In.size&&(Ia?(Gl.length>0&&aa.forEach((o,s)=>{const{body:f}=s;o>0&&(f.addEventListener("contextmenu",eo,i),f.addEventListener("pointerleave",lo,i),f.addEventListener("pointermove",lo,i))}),window.addEventListener("pointerup",eo,i),window.addEventListener("pointercancel",eo,i)):aa.forEach((o,s)=>{const{body:f}=s;o>0&&(f.addEventListener("pointerdown",ng,i),f.addEventListener("pointermove",lo,i))}))}function _i(i,o){In.forEach(s=>{const{setResizeHandlerState:f}=s,h=Gl.includes(s);f(i,h,o)})}function ug(){const[i,o]=x.useState(0);return x.useCallback(()=>o(s=>s+1),[])}function ft(i,o){if(!i)throw console.error(o),Error(o)}function ia(i,o,s=so){return i.toFixed(s)===o.toFixed(s)?0:i>o?1:-1}function re(i,o,s=so){return ia(i,o,s)===0}function Tl(i,o,s){return ia(i,o,s)===0}function ig(i,o,s){if(i.length!==o.length)return!1;for(let f=0;f<i.length;f++){const h=i[f],v=o[f];if(!Tl(h,v,s))return!1}return!0}function ka({panelConstraints:i,panelIndex:o,size:s}){const f=i[o];ft(f!=null,`Panel constraints not found for index ${o}`);let{collapsedSize:h=0,collapsible:v,maxSize:_=100,minSize:A=0}=f;if(ia(s,A)<0)if(v){const E=(h+A)/2;ia(s,E)<0?s=h:s=A}else s=A;return s=Math.min(_,s),s=parseFloat(s.toFixed(so)),s}function kn({delta:i,initialLayout:o,panelConstraints:s,pivotIndices:f,prevLayout:h,trigger:v}){if(Tl(i,0))return o;const _=[...o],[A,E]=f;ft(A!=null,"Invalid first pivot index"),ft(E!=null,"Invalid second pivot index");let S=0;if(v==="keyboard"){{const U=i<0?E:A,B=s[U];ft(B,`Panel constraints not found for index ${U}`);const{collapsedSize:J=0,collapsible:V,minSize:Y=0}=B;if(V){const Z=o[U];if(ft(Z!=null,`Previous layout not found for panel index ${U}`),Tl(Z,J)){const K=Y-Z;ia(K,Math.abs(i))>0&&(i=i<0?0-K:K)}}}{const U=i<0?A:E,B=s[U];ft(B,`No panel constraints found for index ${U}`);const{collapsedSize:J=0,collapsible:V,minSize:Y=0}=B;if(V){const Z=o[U];if(ft(Z!=null,`Previous layout not found for panel index ${U}`),Tl(Z,Y)){const K=Z-J;ia(K,Math.abs(i))>0&&(i=i<0?0-K:K)}}}}{const U=i<0?1:-1;let B=i<0?E:A,J=0;for(;;){const Y=o[B];ft(Y!=null,`Previous layout not found for panel index ${B}`);const K=ka({panelConstraints:s,panelIndex:B,size:100})-Y;if(J+=K,B+=U,B<0||B>=s.length)break}const V=Math.min(Math.abs(i),Math.abs(J));i=i<0?0-V:V}{let B=i<0?A:E;for(;B>=0&&B<s.length;){const J=Math.abs(i)-Math.abs(S),V=o[B];ft(V!=null,`Previous layout not found for panel index ${B}`);const Y=V-J,Z=ka({panelConstraints:s,panelIndex:B,size:Y});if(!Tl(V,Z)&&(S+=V-Z,_[B]=Z,S.toPrecision(3).localeCompare(Math.abs(i).toPrecision(3),void 0,{numeric:!0})>=0))break;i<0?B--:B++}}if(ig(h,_))return h;{const U=i<0?E:A,B=o[U];ft(B!=null,`Previous layout not found for panel index ${U}`);const J=B+S,V=ka({panelConstraints:s,panelIndex:U,size:J});if(_[U]=V,!Tl(V,J)){let Y=J-V,K=i<0?E:A;for(;K>=0&&K<s.length;){const k=_[K];ft(k!=null,`Previous layout not found for panel index ${K}`);const I=k+Y,tt=ka({panelConstraints:s,panelIndex:K,size:I});if(Tl(k,tt)||(Y-=tt-k,_[K]=tt),Tl(Y,0))break;i>0?K--:K++}}}const G=_.reduce((U,B)=>B+U,0);return Tl(G,100)?_:h}function cg({layout:i,panelsArray:o,pivotIndices:s}){let f=0,h=100,v=0,_=0;const A=s[0];ft(A!=null,"No pivot index found"),o.forEach((U,B)=>{const{constraints:J}=U,{maxSize:V=100,minSize:Y=0}=J;B===A?(f=Y,h=V):(v+=Y,_+=V)});const E=Math.min(h,100-v),S=Math.max(f,100-_),G=i[A];return{valueMax:E,valueMin:S,valueNow:G}}function Pn(i,o=document){return Array.from(o.querySelectorAll(`[${Lt.resizeHandleId}][data-panel-group-id="${i}"]`))}function c0(i,o,s=document){const h=Pn(i,s).findIndex(v=>v.getAttribute(Lt.resizeHandleId)===o);return h??null}function f0(i,o,s){const f=c0(i,o,s);return f!=null?[f,f+1]:[-1,-1]}function o0(i,o=document){var s;if(o instanceof HTMLElement&&(o==null||(s=o.dataset)===null||s===void 0?void 0:s.panelGroupId)==i)return o;const f=o.querySelector(`[data-panel-group][data-panel-group-id="${i}"]`);return f||null}function Ri(i,o=document){const s=o.querySelector(`[${Lt.resizeHandleId}="${i}"]`);return s||null}function fg(i,o,s,f=document){var h,v,_,A;const E=Ri(o,f),S=Pn(i,f),G=E?S.indexOf(E):-1,U=(h=(v=s[G])===null||v===void 0?void 0:v.id)!==null&&h!==void 0?h:null,B=(_=(A=s[G+1])===null||A===void 0?void 0:A.id)!==null&&_!==void 0?_:null;return[U,B]}function og({committedValuesRef:i,eagerValuesRef:o,groupId:s,layout:f,panelDataArray:h,panelGroupElement:v,setLayout:_}){x.useRef({didWarnAboutMissingResizeHandle:!1}),ua(()=>{if(!v)return;const A=Pn(s,v);for(let E=0;E<h.length-1;E++){const{valueMax:S,valueMin:G,valueNow:U}=cg({layout:f,panelsArray:h,pivotIndices:[E,E+1]}),B=A[E];if(B!=null){const J=h[E];ft(J,`No panel data found for index "${E}"`),B.setAttribute("aria-controls",J.id),B.setAttribute("aria-valuemax",""+Math.round(S)),B.setAttribute("aria-valuemin",""+Math.round(G)),B.setAttribute("aria-valuenow",U!=null?""+Math.round(U):"")}}return()=>{A.forEach((E,S)=>{E.removeAttribute("aria-controls"),E.removeAttribute("aria-valuemax"),E.removeAttribute("aria-valuemin"),E.removeAttribute("aria-valuenow")})}},[s,f,h,v]),x.useEffect(()=>{if(!v)return;const A=o.current;ft(A,"Eager values not found");const{panelDataArray:E}=A,S=o0(s,v);ft(S!=null,`No group found for id "${s}"`);const G=Pn(s,v);ft(G,`No resize handles found for group id "${s}"`);const U=G.map(B=>{const J=B.getAttribute(Lt.resizeHandleId);ft(J,"Resize handle element has no handle id attribute");const[V,Y]=fg(s,J,E,v);if(V==null||Y==null)return()=>{};const Z=K=>{if(!K.defaultPrevented)switch(K.key){case"Enter":{K.preventDefault();const k=E.findIndex(I=>I.id===V);if(k>=0){const I=E[k];ft(I,`No panel data found for index ${k}`);const tt=f[k],{collapsedSize:nt=0,collapsible:W,minSize:q=0}=I.constraints;if(tt!=null&&W){const Et=kn({delta:Tl(tt,nt)?q-nt:nt-tt,initialLayout:f,panelConstraints:E.map(xt=>xt.constraints),pivotIndices:f0(s,J,v),prevLayout:f,trigger:"keyboard"});f!==Et&&_(Et)}}break}}};return B.addEventListener("keydown",Z),()=>{B.removeEventListener("keydown",Z)}});return()=>{U.forEach(B=>B())}},[v,i,o,s,f,h,_])}function qv(i,o){if(i.length!==o.length)return!1;for(let s=0;s<i.length;s++)if(i[s]!==o[s])return!1;return!0}function r0(i,o){const s=i==="horizontal",{x:f,y:h}=Di(o);return s?f:h}function rg(i,o,s,f,h){const v=s==="horizontal",_=Ri(o,h);ft(_,`No resize handle element found for id "${o}"`);const A=_.getAttribute(Lt.groupId);ft(A,"Resize handle element has no group id attribute");let{initialCursorPosition:E}=f;const S=r0(s,i),G=o0(A,h);ft(G,`No group element found for id "${A}"`);const U=G.getBoundingClientRect(),B=v?U.width:U.height;return(S-E)/B*100}function sg(i,o,s,f,h,v){if(Iv(i)){const _=s==="horizontal";let A=0;i.shiftKey?A=100:h!=null?A=h:A=10;let E=0;switch(i.key){case"ArrowDown":E=_?0:A;break;case"ArrowLeft":E=_?-A:0;break;case"ArrowRight":E=_?A:0;break;case"ArrowUp":E=_?0:-A;break;case"End":E=100;break;case"Home":E=-100;break}return E}else return f==null?0:rg(i,o,s,f,v)}function dg({panelDataArray:i}){const o=Array(i.length),s=i.map(v=>v.constraints);let f=0,h=100;for(let v=0;v<i.length;v++){const _=s[v];ft(_,`Panel constraints not found for index ${v}`);const{defaultSize:A}=_;A!=null&&(f++,o[v]=A,h-=A)}for(let v=0;v<i.length;v++){const _=s[v];ft(_,`Panel constraints not found for index ${v}`);const{defaultSize:A}=_;if(A!=null)continue;const E=i.length-f,S=h/E;f++,o[v]=S,h-=S}return o}function $a(i,o,s){o.forEach((f,h)=>{const v=i[h];ft(v,`Panel data not found for index ${h}`);const{callbacks:_,constraints:A,id:E}=v,{collapsedSize:S=0,collapsible:G}=A,U=s[E];if(U==null||f!==U){s[E]=f;const{onCollapse:B,onExpand:J,onResize:V}=_;V&&V(f,U),G&&(B||J)&&(J&&(U==null||re(U,S))&&!re(f,S)&&J(),B&&(U==null||!re(U,S))&&re(f,S)&&B())}})}function zi(i,o){if(i.length!==o.length)return!1;for(let s=0;s<i.length;s++)if(i[s]!=o[s])return!1;return!0}function vg({defaultSize:i,dragState:o,layout:s,panelData:f,panelIndex:h,precision:v=3}){const _=s[h];let A;return _==null?A=i!=null?i.toPrecision(v):"1":f.length===1?A="1":A=_.toPrecision(v),{flexBasis:0,flexGrow:A,flexShrink:1,overflow:"hidden",pointerEvents:o!==null?"none":void 0}}function yg(i,o=10){let s=null;return(...h)=>{s!==null&&clearTimeout(s),s=setTimeout(()=>{i(...h)},o)}}function Yv(i){try{if(typeof localStorage<"u")i.getItem=o=>localStorage.getItem(o),i.setItem=(o,s)=>{localStorage.setItem(o,s)};else throw new Error("localStorage not supported in this environment")}catch(o){console.error(o),i.getItem=()=>null,i.setItem=()=>{}}}function s0(i){return`react-resizable-panels:${i}`}function d0(i){return i.map(o=>{const{constraints:s,id:f,idIsFromProps:h,order:v}=o;return h?f:v?`${v}:${JSON.stringify(s)}`:JSON.stringify(s)}).sort((o,s)=>o.localeCompare(s)).join(",")}function v0(i,o){try{const s=s0(i),f=o.getItem(s);if(f){const h=JSON.parse(f);if(typeof h=="object"&&h!=null)return h}}catch{}return null}function mg(i,o,s){var f,h;const v=(f=v0(i,s))!==null&&f!==void 0?f:{},_=d0(o);return(h=v[_])!==null&&h!==void 0?h:null}function hg(i,o,s,f,h){var v;const _=s0(i),A=d0(o),E=(v=v0(i,h))!==null&&v!==void 0?v:{};E[A]={expandToSizes:Object.fromEntries(s.entries()),layout:f};try{h.setItem(_,JSON.stringify(E))}catch(S){console.error(S)}}function Gv({layout:i,panelConstraints:o}){const s=[...i],f=s.reduce((v,_)=>v+_,0);if(s.length!==o.length)throw Error(`Invalid ${o.length} panel layout: ${s.map(v=>`${v}%`).join(", ")}`);if(!Tl(f,100)&&s.length>0)for(let v=0;v<o.length;v++){const _=s[v];ft(_!=null,`No layout data found for index ${v}`);const A=100/f*_;s[v]=A}let h=0;for(let v=0;v<o.length;v++){const _=s[v];ft(_!=null,`No layout data found for index ${v}`);const A=ka({panelConstraints:o,panelIndex:v,size:_});_!=A&&(h+=_-A,s[v]=A)}if(!Tl(h,0))for(let v=0;v<o.length;v++){const _=s[v];ft(_!=null,`No layout data found for index ${v}`);const A=_+h,E=ka({panelConstraints:o,panelIndex:v,size:A});if(_!==E&&(h-=E-_,s[v]=E,Tl(h,0)))break}return s}const gg=100,Fn={getItem:i=>(Yv(Fn),Fn.getItem(i)),setItem:(i,o)=>{Yv(Fn),Fn.setItem(i,o)}},Lv={};function y0({autoSaveId:i=null,children:o,className:s="",direction:f,forwardedRef:h,id:v=null,onLayout:_=null,keyboardResizeBy:A=null,storage:E=Fn,style:S,tagName:G="div",...U}){const B=vo(v),J=x.useRef(null),[V,Y]=x.useState(null),[Z,K]=x.useState([]),k=ug(),I=x.useRef({}),tt=x.useRef(new Map),nt=x.useRef(0),W=x.useRef({autoSaveId:i,direction:f,dragState:V,id:B,keyboardResizeBy:A,onLayout:_,storage:E}),q=x.useRef({layout:Z,panelDataArray:[],panelDataArrayChanged:!1});x.useRef({didLogIdAndOrderWarning:!1,didLogPanelConstraintsWarning:!1,prevPanelIds:[]}),x.useImperativeHandle(h,()=>({getId:()=>W.current.id,getLayout:()=>{const{layout:O}=q.current;return O},setLayout:O=>{const{onLayout:H}=W.current,{layout:X,panelDataArray:j}=q.current,L=Gv({layout:O,panelConstraints:j.map(F=>F.constraints)});qv(X,L)||(K(L),q.current.layout=L,H&&H(L),$a(j,L,I.current))}}),[]),ua(()=>{W.current.autoSaveId=i,W.current.direction=f,W.current.dragState=V,W.current.id=B,W.current.onLayout=_,W.current.storage=E}),og({committedValuesRef:W,eagerValuesRef:q,groupId:B,layout:Z,panelDataArray:q.current.panelDataArray,setLayout:K,panelGroupElement:J.current}),x.useEffect(()=>{const{panelDataArray:O}=q.current;if(i){if(Z.length===0||Z.length!==O.length)return;let H=Lv[i];H==null&&(H=yg(hg,gg),Lv[i]=H);const X=[...O],j=new Map(tt.current);H(i,X,j,Z,E)}},[i,Z,E]),x.useEffect(()=>{});const Et=x.useCallback(O=>{const{onLayout:H}=W.current,{layout:X,panelDataArray:j}=q.current;if(O.constraints.collapsible){const L=j.map(nl=>nl.constraints),{collapsedSize:F=0,panelSize:at,pivotIndices:Rt}=ea(j,O,X);if(ft(at!=null,`Panel size not found for panel "${O.id}"`),!re(at,F)){tt.current.set(O.id,at);const il=Wa(j,O)===j.length-1?at-F:F-at,Nt=kn({delta:il,initialLayout:X,panelConstraints:L,pivotIndices:Rt,prevLayout:X,trigger:"imperative-api"});zi(X,Nt)||(K(Nt),q.current.layout=Nt,H&&H(Nt),$a(j,Nt,I.current))}}},[]),xt=x.useCallback((O,H)=>{const{onLayout:X}=W.current,{layout:j,panelDataArray:L}=q.current;if(O.constraints.collapsible){const F=L.map(Jt=>Jt.constraints),{collapsedSize:at=0,panelSize:Rt=0,minSize:nl=0,pivotIndices:il}=ea(L,O,j),Nt=H??nl;if(re(Rt,at)){const Jt=tt.current.get(O.id),Vl=Jt!=null&&Jt>=Nt?Jt:Nt,Pa=Wa(L,O)===L.length-1?Rt-Vl:Vl-Rt,kt=kn({delta:Pa,initialLayout:j,panelConstraints:F,pivotIndices:il,prevLayout:j,trigger:"imperative-api"});zi(j,kt)||(K(kt),q.current.layout=kt,X&&X(kt),$a(L,kt,I.current))}}},[]),qt=x.useCallback(O=>{const{layout:H,panelDataArray:X}=q.current,{panelSize:j}=ea(X,O,H);return ft(j!=null,`Panel size not found for panel "${O.id}"`),j},[]),bt=x.useCallback((O,H)=>{const{panelDataArray:X}=q.current,j=Wa(X,O);return vg({defaultSize:H,dragState:V,layout:Z,panelData:X,panelIndex:j})},[V,Z]),ot=x.useCallback(O=>{const{layout:H,panelDataArray:X}=q.current,{collapsedSize:j=0,collapsible:L,panelSize:F}=ea(X,O,H);return ft(F!=null,`Panel size not found for panel "${O.id}"`),L===!0&&re(F,j)},[]),al=x.useCallback(O=>{const{layout:H,panelDataArray:X}=q.current,{collapsedSize:j=0,collapsible:L,panelSize:F}=ea(X,O,H);return ft(F!=null,`Panel size not found for panel "${O.id}"`),!L||ia(F,j)>0},[]),Ct=x.useCallback(O=>{const{panelDataArray:H}=q.current;H.push(O),H.sort((X,j)=>{const L=X.order,F=j.order;return L==null&&F==null?0:L==null?-1:F==null?1:L-F}),q.current.panelDataArrayChanged=!0,k()},[k]);ua(()=>{if(q.current.panelDataArrayChanged){q.current.panelDataArrayChanged=!1;const{autoSaveId:O,onLayout:H,storage:X}=W.current,{layout:j,panelDataArray:L}=q.current;let F=null;if(O){const Rt=mg(O,L,X);Rt&&(tt.current=new Map(Object.entries(Rt.expandToSizes)),F=Rt.layout)}F==null&&(F=dg({panelDataArray:L}));const at=Gv({layout:F,panelConstraints:L.map(Rt=>Rt.constraints)});qv(j,at)||(K(at),q.current.layout=at,H&&H(at),$a(L,at,I.current))}}),ua(()=>{const O=q.current;return()=>{O.layout=[]}},[]);const pt=x.useCallback(O=>{let H=!1;const X=J.current;return X&&window.getComputedStyle(X,null).getPropertyValue("direction")==="rtl"&&(H=!0),function(L){L.preventDefault();const F=J.current;if(!F)return()=>null;const{direction:at,dragState:Rt,id:nl,keyboardResizeBy:il,onLayout:Nt}=W.current,{layout:Jt,panelDataArray:Vl}=q.current,{initialLayout:se}=Rt??{},Pa=f0(nl,O,F);let kt=sg(L,O,at,Rt,il,F);const ca=at==="horizontal";ca&&H&&(kt=-kt);const tn=Vl.map(Ni=>Ni.constraints),Kl=kn({delta:kt,initialLayout:se??Jt,panelConstraints:tn,pivotIndices:Pa,prevLayout:Jt,trigger:Iv(L)?"keyboard":"mouse-or-touch"}),tu=!zi(Jt,Kl);(Pv(L)||t0(L))&&nt.current!=kt&&(nt.current=kt,!tu&&kt!==0?ca?ao(O,kt<0?e0:a0):ao(O,kt<0?n0:u0):ao(O,0)),tu&&(K(Kl),q.current.layout=Kl,Nt&&Nt(Kl),$a(Vl,Kl,I.current))}},[]),M=x.useCallback((O,H)=>{const{onLayout:X}=W.current,{layout:j,panelDataArray:L}=q.current,F=L.map(Jt=>Jt.constraints),{panelSize:at,pivotIndices:Rt}=ea(L,O,j);ft(at!=null,`Panel size not found for panel "${O.id}"`);const il=Wa(L,O)===L.length-1?at-H:H-at,Nt=kn({delta:il,initialLayout:j,panelConstraints:F,pivotIndices:Rt,prevLayout:j,trigger:"imperative-api"});zi(j,Nt)||(K(Nt),q.current.layout=Nt,X&&X(Nt),$a(L,Nt,I.current))},[]),Q=x.useCallback((O,H)=>{const{layout:X,panelDataArray:j}=q.current,{collapsedSize:L=0,collapsible:F}=H,{collapsedSize:at=0,collapsible:Rt,maxSize:nl=100,minSize:il=0}=O.constraints,{panelSize:Nt}=ea(j,O,X);Nt!=null&&(F&&Rt&&re(Nt,L)?re(L,at)||M(O,at):Nt<il?M(O,il):Nt>nl&&M(O,nl))},[M]),lt=x.useCallback((O,H)=>{const{direction:X}=W.current,{layout:j}=q.current;if(!J.current)return;const L=Ri(O,J.current);ft(L,`Drag handle element not found for id "${O}"`);const F=r0(X,H);Y({dragHandleId:O,dragHandleRect:L.getBoundingClientRect(),initialCursorPosition:F,initialLayout:j})},[]),mt=x.useCallback(()=>{Y(null)},[]),ht=x.useCallback(O=>{const{panelDataArray:H}=q.current,X=Wa(H,O);X>=0&&(H.splice(X,1),delete I.current[O.id],q.current.panelDataArrayChanged=!0,k())},[k]),m=x.useMemo(()=>({collapsePanel:Et,direction:f,dragState:V,expandPanel:xt,getPanelSize:qt,getPanelStyle:bt,groupId:B,isPanelCollapsed:ot,isPanelExpanded:al,reevaluatePanelConstraints:Q,registerPanel:Ct,registerResizeHandle:pt,resizePanel:M,startDragging:lt,stopDragging:mt,unregisterPanel:ht,panelGroupElement:J.current}),[Et,V,f,xt,qt,bt,B,ot,al,Q,Ct,pt,M,lt,mt,ht]),R={display:"flex",flexDirection:f==="horizontal"?"row":"column",height:"100%",overflow:"hidden",width:"100%"};return x.createElement(Oi.Provider,{value:m},x.createElement(G,{...U,children:o,className:s,id:v,ref:J,style:{...R,...S},[Lt.group]:"",[Lt.groupDirection]:f,[Lt.groupId]:B}))}const Sg=x.forwardRef((i,o)=>x.createElement(y0,{...i,forwardedRef:o}));y0.displayName="PanelGroup";Sg.displayName="forwardRef(PanelGroup)";function Wa(i,o){return i.findIndex(s=>s===o||s.id===o.id)}function ea(i,o,s){const f=Wa(i,o),v=f===i.length-1?[f-1,f]:[f,f+1],_=s[f];return{...o.constraints,panelSize:_,pivotIndices:v}}function bg({disabled:i,handleId:o,resizeHandler:s,panelGroupElement:f}){x.useEffect(()=>{if(i||s==null||f==null)return;const h=Ri(o,f);if(h==null)return;const v=_=>{if(!_.defaultPrevented)switch(_.key){case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"ArrowUp":case"End":case"Home":{_.preventDefault(),s(_);break}case"F6":{_.preventDefault();const A=h.getAttribute(Lt.groupId);ft(A,`No group element found for id "${A}"`);const E=Pn(A,f),S=c0(A,o,f);ft(S!==null,`No resize element found for id "${o}"`);const G=_.shiftKey?S>0?S-1:E.length-1:S+1<E.length?S+1:0;E[G].focus();break}}};return h.addEventListener("keydown",v),()=>{h.removeEventListener("keydown",v)}},[f,i,o,s])}function zg({children:i=null,className:o="",disabled:s=!1,hitAreaMargins:f,id:h,onBlur:v,onClick:_,onDragging:A,onFocus:E,onPointerDown:S,onPointerUp:G,style:U={},tabIndex:B=0,tagName:J="div",...V}){var Y,Z;const K=x.useRef(null),k=x.useRef({onClick:_,onDragging:A,onPointerDown:S,onPointerUp:G});x.useEffect(()=>{k.current.onClick=_,k.current.onDragging=A,k.current.onPointerDown=S,k.current.onPointerUp=G});const I=x.useContext(Oi);if(I===null)throw Error("PanelResizeHandle components must be rendered within a PanelGroup container");const{direction:tt,groupId:nt,registerResizeHandle:W,startDragging:q,stopDragging:Et,panelGroupElement:xt}=I,qt=vo(h),[bt,ot]=x.useState("inactive"),[al,Ct]=x.useState(!1),[pt,M]=x.useState(null),Q=x.useRef({state:bt});ua(()=>{Q.current.state=bt}),x.useEffect(()=>{if(s)M(null);else{const m=W(qt);M(()=>m)}},[s,qt,W]);const lt=(Y=f?.coarse)!==null&&Y!==void 0?Y:15,mt=(Z=f?.fine)!==null&&Z!==void 0?Z:5;x.useEffect(()=>{if(s||pt==null)return;const m=K.current;ft(m,"Element ref not attached");let R=!1;return ag(qt,m,tt,{coarse:lt,fine:mt},(H,X,j)=>{if(!X){ot("inactive");return}switch(H){case"down":{ot("drag"),R=!1,ft(j,'Expected event to be defined for "down" action'),q(qt,j);const{onDragging:L,onPointerDown:F}=k.current;L?.(!0),F?.();break}case"move":{const{state:L}=Q.current;R=!0,L!=="drag"&&ot("hover"),ft(j,'Expected event to be defined for "move" action'),pt(j);break}case"up":{ot("hover"),Et();const{onClick:L,onDragging:F,onPointerUp:at}=k.current;F?.(!1),at?.(),R||L?.();break}}})},[lt,tt,s,mt,W,qt,pt,q,Et]),bg({disabled:s,handleId:qt,resizeHandler:pt,panelGroupElement:xt});const ht={touchAction:"none",userSelect:"none"};return x.createElement(J,{...V,children:i,className:o,id:h,onBlur:()=>{Ct(!1),v?.()},onFocus:()=>{Ct(!0),E?.()},ref:K,role:"separator",style:{...ht,...U},tabIndex:B,[Lt.groupDirection]:tt,[Lt.groupId]:nt,[Lt.resizeHandle]:"",[Lt.resizeHandleActive]:bt==="drag"?"pointer":al?"keyboard":void 0,[Lt.resizeHandleEnabled]:!s,[Lt.resizeHandleId]:qt,[Lt.resizeHandleState]:bt})}zg.displayName="PanelResizeHandle";export{wh as P,jm as R,_g as a,Vh as b,zg as c,Sg as d,Eg as e,qm as g,Ag as i,pg as j,x as r,Tg as u};
49
+ `)},Xh=0,wa=[];function jh(i){var o=x.useRef([]),s=x.useRef([0,0]),f=x.useRef(),h=x.useState(Xh++)[0],v=x.useState(wv)[0],_=x.useRef(i);x.useEffect(function(){_.current=i},[i]),x.useEffect(function(){if(i.inert){document.body.classList.add("block-interactivity-".concat(h));var Y=fh([i.lockRef.current],(i.shards||[]).map(Nv),!0).filter(Boolean);return Y.forEach(function(Z){return Z.classList.add("allow-interactivity-".concat(h))}),function(){document.body.classList.remove("block-interactivity-".concat(h)),Y.forEach(function(Z){return Z.classList.remove("allow-interactivity-".concat(h))})}}},[i.inert,i.lockRef.current,i.shards]);var A=x.useCallback(function(Y,Z){if("touches"in Y&&Y.touches.length===2||Y.type==="wheel"&&Y.ctrlKey)return!_.current.allowPinchZoom;var K=bi(Y),k=s.current,I="deltaX"in Y?Y.deltaX:k[0]-K[0],tt="deltaY"in Y?Y.deltaY:k[1]-K[1],nt,W=Y.target,q=Math.abs(I)>Math.abs(tt)?"h":"v";if("touches"in Y&&q==="h"&&W.type==="range")return!1;var Et=window.getSelection(),xt=Et&&Et.anchorNode,qt=xt?xt===W||xt.contains(W):!1;if(qt)return!1;var bt=Cv(q,W);if(!bt)return!0;if(bt?nt=q:(nt=q==="v"?"h":"v",bt=Cv(q,W)),!bt)return!1;if(!f.current&&"changedTouches"in Y&&(I||tt)&&(f.current=nt),!nt)return!0;var ot=f.current||nt;return Yh(ot,Z,Y,ot==="h"?I:tt)},[]),E=x.useCallback(function(Y){var Z=Y;if(!(!wa.length||wa[wa.length-1]!==v)){var K="deltaY"in Z?Rv(Z):bi(Z),k=o.current.filter(function(nt){return nt.name===Z.type&&(nt.target===Z.target||Z.target===nt.shadowParent)&&Gh(nt.delta,K)})[0];if(k&&k.should){Z.cancelable&&Z.preventDefault();return}if(!k){var I=(_.current.shards||[]).map(Nv).filter(Boolean).filter(function(nt){return nt.contains(Z.target)}),tt=I.length>0?A(Z,I[0]):!_.current.noIsolation;tt&&Z.cancelable&&Z.preventDefault()}}},[]),S=x.useCallback(function(Y,Z,K,k){var I={name:Y,delta:Z,target:K,should:k,shadowParent:Qh(K)};o.current.push(I),setTimeout(function(){o.current=o.current.filter(function(tt){return tt!==I})},1)},[]),G=x.useCallback(function(Y){s.current=bi(Y),f.current=void 0},[]),U=x.useCallback(function(Y){S(Y.type,Rv(Y),Y.target,A(Y,i.lockRef.current))},[]),B=x.useCallback(function(Y){S(Y.type,bi(Y),Y.target,A(Y,i.lockRef.current))},[]);x.useEffect(function(){return wa.push(v),i.setCallbacks({onScrollCapture:U,onWheelCapture:U,onTouchMoveCapture:B}),document.addEventListener("wheel",E,Ja),document.addEventListener("touchmove",E,Ja),document.addEventListener("touchstart",G,Ja),function(){wa=wa.filter(function(Y){return Y!==v}),document.removeEventListener("wheel",E,Ja),document.removeEventListener("touchmove",E,Ja),document.removeEventListener("touchstart",G,Ja)}},[]);var J=i.removeScrollBar,V=i.inert;return x.createElement(x.Fragment,null,V?x.createElement(v,{styles:Lh(h)}):null,J?x.createElement(Rh,{noRelative:i.noRelative,gapMode:i.gapMode}):null)}function Qh(i){for(var o=null;i!==null;)i instanceof ShadowRoot&&(o=i.host,i=i.host),i=i.parentNode;return o}const Zh=gh(Jv,jh);var Vh=x.forwardRef(function(i,o){return x.createElement(Mi,Zl({},i,{ref:o,sideCar:Zh}))});Vh.classNames=Mi.classNames;const Oi=x.createContext(null);Oi.displayName="PanelGroupContext";const Lt={group:"data-panel-group",groupDirection:"data-panel-group-direction",groupId:"data-panel-group-id",panel:"data-panel",panelCollapsible:"data-panel-collapsible",panelId:"data-panel-id",panelSize:"data-panel-size",resizeHandle:"data-resize-handle",resizeHandleActive:"data-resize-handle-active",resizeHandleEnabled:"data-panel-resize-handle-enabled",resizeHandleId:"data-panel-resize-handle-id",resizeHandleState:"data-resize-handle-state"},so=10,ua=x.useLayoutEffect,Uv=jm.useId,Kh=typeof Uv=="function"?Uv:()=>null;let Jh=0;function vo(i=null){const o=Kh(),s=x.useRef(i||o||null);return s.current===null&&(s.current=""+Jh++),i??s.current}function Fv({children:i,className:o="",collapsedSize:s,collapsible:f,defaultSize:h,forwardedRef:v,id:_,maxSize:A,minSize:E,onCollapse:S,onExpand:G,onResize:U,order:B,style:J,tagName:V="div",...Y}){const Z=x.useContext(Oi);if(Z===null)throw Error("Panel components must be rendered within a PanelGroup container");const{collapsePanel:K,expandPanel:k,getPanelSize:I,getPanelStyle:tt,groupId:nt,isPanelCollapsed:W,reevaluatePanelConstraints:q,registerPanel:Et,resizePanel:xt,unregisterPanel:qt}=Z,bt=vo(_),ot=x.useRef({callbacks:{onCollapse:S,onExpand:G,onResize:U},constraints:{collapsedSize:s,collapsible:f,defaultSize:h,maxSize:A,minSize:E},id:bt,idIsFromProps:_!==void 0,order:B});x.useRef({didLogMissingDefaultSizeWarning:!1}),ua(()=>{const{callbacks:Ct,constraints:pt}=ot.current,M={...pt};ot.current.id=bt,ot.current.idIsFromProps=_!==void 0,ot.current.order=B,Ct.onCollapse=S,Ct.onExpand=G,Ct.onResize=U,pt.collapsedSize=s,pt.collapsible=f,pt.defaultSize=h,pt.maxSize=A,pt.minSize=E,(M.collapsedSize!==pt.collapsedSize||M.collapsible!==pt.collapsible||M.maxSize!==pt.maxSize||M.minSize!==pt.minSize)&&q(ot.current,M)}),ua(()=>{const Ct=ot.current;return Et(Ct),()=>{qt(Ct)}},[B,bt,Et,qt]),x.useImperativeHandle(v,()=>({collapse:()=>{K(ot.current)},expand:Ct=>{k(ot.current,Ct)},getId(){return bt},getSize(){return I(ot.current)},isCollapsed(){return W(ot.current)},isExpanded(){return!W(ot.current)},resize:Ct=>{xt(ot.current,Ct)}}),[K,k,I,W,bt,xt]);const al=tt(ot.current,h);return x.createElement(V,{...Y,children:i,className:o,id:bt,style:{...al,...J},[Lt.groupId]:nt,[Lt.panel]:"",[Lt.panelCollapsible]:f||void 0,[Lt.panelId]:bt,[Lt.panelSize]:parseFloat(""+al.flexGrow).toFixed(1)})}const wh=x.forwardRef((i,o)=>x.createElement(Fv,{...i,forwardedRef:o}));Fv.displayName="Panel";wh.displayName="forwardRef(Panel)";let oo=null,Ai=-1,Ye=null;function $h(i,o){if(o){const s=(o&e0)!==0,f=(o&a0)!==0,h=(o&n0)!==0,v=(o&u0)!==0;if(s)return h?"se-resize":v?"ne-resize":"e-resize";if(f)return h?"sw-resize":v?"nw-resize":"w-resize";if(h)return"s-resize";if(v)return"n-resize"}switch(i){case"horizontal":return"ew-resize";case"intersection":return"move";case"vertical":return"ns-resize"}}function Wh(){Ye!==null&&(document.head.removeChild(Ye),oo=null,Ye=null,Ai=-1)}function to(i,o){var s,f;const h=$h(i,o);if(oo!==h){if(oo=h,Ye===null&&(Ye=document.createElement("style"),document.head.appendChild(Ye)),Ai>=0){var v;(v=Ye.sheet)===null||v===void 0||v.removeRule(Ai)}Ai=(s=(f=Ye.sheet)===null||f===void 0?void 0:f.insertRule(`*{cursor: ${h} !important;}`))!==null&&s!==void 0?s:-1}}function Iv(i){return i.type==="keydown"}function Pv(i){return i.type.startsWith("pointer")}function t0(i){return i.type.startsWith("mouse")}function Di(i){if(Pv(i)){if(i.isPrimary)return{x:i.clientX,y:i.clientY}}else if(t0(i))return{x:i.clientX,y:i.clientY};return{x:1/0,y:1/0}}function kh(){if(typeof matchMedia=="function")return matchMedia("(pointer:coarse)").matches?"coarse":"fine"}function Fh(i,o,s){return i.x<o.x+o.width&&i.x+i.width>o.x&&i.y<o.y+o.height&&i.y+i.height>o.y}function Ih(i,o){if(i===o)throw new Error("Cannot compare node with itself");const s={a:Bv(i),b:Bv(o)};let f;for(;s.a.at(-1)===s.b.at(-1);)i=s.a.pop(),o=s.b.pop(),f=i;ft(f,"Stacking order can only be calculated for elements with a common ancestor");const h={a:xv(Hv(s.a)),b:xv(Hv(s.b))};if(h.a===h.b){const v=f.childNodes,_={a:s.a.at(-1),b:s.b.at(-1)};let A=v.length;for(;A--;){const E=v[A];if(E===_.a)return 1;if(E===_.b)return-1}}return Math.sign(h.a-h.b)}const Ph=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function tg(i){var o;const s=getComputedStyle((o=l0(i))!==null&&o!==void 0?o:i).display;return s==="flex"||s==="inline-flex"}function lg(i){const o=getComputedStyle(i);return!!(o.position==="fixed"||o.zIndex!=="auto"&&(o.position!=="static"||tg(i))||+o.opacity<1||"transform"in o&&o.transform!=="none"||"webkitTransform"in o&&o.webkitTransform!=="none"||"mixBlendMode"in o&&o.mixBlendMode!=="normal"||"filter"in o&&o.filter!=="none"||"webkitFilter"in o&&o.webkitFilter!=="none"||"isolation"in o&&o.isolation==="isolate"||Ph.test(o.willChange)||o.webkitOverflowScrolling==="touch")}function Hv(i){let o=i.length;for(;o--;){const s=i[o];if(ft(s,"Missing node"),lg(s))return s}return null}function xv(i){return i&&Number(getComputedStyle(i).zIndex)||0}function Bv(i){const o=[];for(;i;)o.push(i),i=l0(i);return o}function l0(i){const{parentNode:o}=i;return o&&o instanceof ShadowRoot?o.host:o}const e0=1,a0=2,n0=4,u0=8,eg=kh()==="coarse";let Gl=[],Ia=!1,aa=new Map,Ci=new Map;const In=new Set;function ag(i,o,s,f,h){var v;const{ownerDocument:_}=o,A={direction:s,element:o,hitAreaMargins:f,setResizeHandlerState:h},E=(v=aa.get(_))!==null&&v!==void 0?v:0;return aa.set(_,E+1),In.add(A),Ti(),function(){var G;Ci.delete(i),In.delete(A);const U=(G=aa.get(_))!==null&&G!==void 0?G:1;if(aa.set(_,U-1),Ti(),U===1&&aa.delete(_),Gl.includes(A)){const B=Gl.indexOf(A);B>=0&&Gl.splice(B,1),mo(),h("up",!0,null)}}}function ng(i){const{target:o}=i,{x:s,y:f}=Di(i);Ia=!0,yo({target:o,x:s,y:f}),Ti(),Gl.length>0&&(_i("down",i),i.preventDefault(),i0(o)||i.stopImmediatePropagation())}function lo(i){const{x:o,y:s}=Di(i);if(Ia&&i.buttons===0&&(Ia=!1,_i("up",i)),!Ia){const{target:f}=i;yo({target:f,x:o,y:s})}_i("move",i),mo(),Gl.length>0&&i.preventDefault()}function eo(i){const{target:o}=i,{x:s,y:f}=Di(i);Ci.clear(),Ia=!1,Gl.length>0&&(i.preventDefault(),i0(o)||i.stopImmediatePropagation()),_i("up",i),yo({target:o,x:s,y:f}),mo(),Ti()}function i0(i){let o=i;for(;o;){if(o.hasAttribute(Lt.resizeHandle))return!0;o=o.parentElement}return!1}function yo({target:i,x:o,y:s}){Gl.splice(0);let f=null;(i instanceof HTMLElement||i instanceof SVGElement)&&(f=i),In.forEach(h=>{const{element:v,hitAreaMargins:_}=h,A=v.getBoundingClientRect(),{bottom:E,left:S,right:G,top:U}=A,B=eg?_.coarse:_.fine;if(o>=S-B&&o<=G+B&&s>=U-B&&s<=E+B){if(f!==null&&document.contains(f)&&v!==f&&!v.contains(f)&&!f.contains(v)&&Ih(f,v)>0){let V=f,Y=!1;for(;V&&!V.contains(v);){if(Fh(V.getBoundingClientRect(),A)){Y=!0;break}V=V.parentElement}if(Y)return}Gl.push(h)}})}function ao(i,o){Ci.set(i,o)}function mo(){let i=!1,o=!1;Gl.forEach(f=>{const{direction:h}=f;h==="horizontal"?i=!0:o=!0});let s=0;Ci.forEach(f=>{s|=f}),i&&o?to("intersection",s):i?to("horizontal",s):o?to("vertical",s):Wh()}let no=new AbortController;function Ti(){no.abort(),no=new AbortController;const i={capture:!0,signal:no.signal};In.size&&(Ia?(Gl.length>0&&aa.forEach((o,s)=>{const{body:f}=s;o>0&&(f.addEventListener("contextmenu",eo,i),f.addEventListener("pointerleave",lo,i),f.addEventListener("pointermove",lo,i))}),window.addEventListener("pointerup",eo,i),window.addEventListener("pointercancel",eo,i)):aa.forEach((o,s)=>{const{body:f}=s;o>0&&(f.addEventListener("pointerdown",ng,i),f.addEventListener("pointermove",lo,i))}))}function _i(i,o){In.forEach(s=>{const{setResizeHandlerState:f}=s,h=Gl.includes(s);f(i,h,o)})}function ug(){const[i,o]=x.useState(0);return x.useCallback(()=>o(s=>s+1),[])}function ft(i,o){if(!i)throw console.error(o),Error(o)}function ia(i,o,s=so){return i.toFixed(s)===o.toFixed(s)?0:i>o?1:-1}function re(i,o,s=so){return ia(i,o,s)===0}function Tl(i,o,s){return ia(i,o,s)===0}function ig(i,o,s){if(i.length!==o.length)return!1;for(let f=0;f<i.length;f++){const h=i[f],v=o[f];if(!Tl(h,v,s))return!1}return!0}function ka({panelConstraints:i,panelIndex:o,size:s}){const f=i[o];ft(f!=null,`Panel constraints not found for index ${o}`);let{collapsedSize:h=0,collapsible:v,maxSize:_=100,minSize:A=0}=f;if(ia(s,A)<0)if(v){const E=(h+A)/2;ia(s,E)<0?s=h:s=A}else s=A;return s=Math.min(_,s),s=parseFloat(s.toFixed(so)),s}function kn({delta:i,initialLayout:o,panelConstraints:s,pivotIndices:f,prevLayout:h,trigger:v}){if(Tl(i,0))return o;const _=[...o],[A,E]=f;ft(A!=null,"Invalid first pivot index"),ft(E!=null,"Invalid second pivot index");let S=0;if(v==="keyboard"){{const U=i<0?E:A,B=s[U];ft(B,`Panel constraints not found for index ${U}`);const{collapsedSize:J=0,collapsible:V,minSize:Y=0}=B;if(V){const Z=o[U];if(ft(Z!=null,`Previous layout not found for panel index ${U}`),Tl(Z,J)){const K=Y-Z;ia(K,Math.abs(i))>0&&(i=i<0?0-K:K)}}}{const U=i<0?A:E,B=s[U];ft(B,`No panel constraints found for index ${U}`);const{collapsedSize:J=0,collapsible:V,minSize:Y=0}=B;if(V){const Z=o[U];if(ft(Z!=null,`Previous layout not found for panel index ${U}`),Tl(Z,Y)){const K=Z-J;ia(K,Math.abs(i))>0&&(i=i<0?0-K:K)}}}}{const U=i<0?1:-1;let B=i<0?E:A,J=0;for(;;){const Y=o[B];ft(Y!=null,`Previous layout not found for panel index ${B}`);const K=ka({panelConstraints:s,panelIndex:B,size:100})-Y;if(J+=K,B+=U,B<0||B>=s.length)break}const V=Math.min(Math.abs(i),Math.abs(J));i=i<0?0-V:V}{let B=i<0?A:E;for(;B>=0&&B<s.length;){const J=Math.abs(i)-Math.abs(S),V=o[B];ft(V!=null,`Previous layout not found for panel index ${B}`);const Y=V-J,Z=ka({panelConstraints:s,panelIndex:B,size:Y});if(!Tl(V,Z)&&(S+=V-Z,_[B]=Z,S.toPrecision(3).localeCompare(Math.abs(i).toPrecision(3),void 0,{numeric:!0})>=0))break;i<0?B--:B++}}if(ig(h,_))return h;{const U=i<0?E:A,B=o[U];ft(B!=null,`Previous layout not found for panel index ${U}`);const J=B+S,V=ka({panelConstraints:s,panelIndex:U,size:J});if(_[U]=V,!Tl(V,J)){let Y=J-V,K=i<0?E:A;for(;K>=0&&K<s.length;){const k=_[K];ft(k!=null,`Previous layout not found for panel index ${K}`);const I=k+Y,tt=ka({panelConstraints:s,panelIndex:K,size:I});if(Tl(k,tt)||(Y-=tt-k,_[K]=tt),Tl(Y,0))break;i>0?K--:K++}}}const G=_.reduce((U,B)=>B+U,0);return Tl(G,100)?_:h}function cg({layout:i,panelsArray:o,pivotIndices:s}){let f=0,h=100,v=0,_=0;const A=s[0];ft(A!=null,"No pivot index found"),o.forEach((U,B)=>{const{constraints:J}=U,{maxSize:V=100,minSize:Y=0}=J;B===A?(f=Y,h=V):(v+=Y,_+=V)});const E=Math.min(h,100-v),S=Math.max(f,100-_),G=i[A];return{valueMax:E,valueMin:S,valueNow:G}}function Pn(i,o=document){return Array.from(o.querySelectorAll(`[${Lt.resizeHandleId}][data-panel-group-id="${i}"]`))}function c0(i,o,s=document){const h=Pn(i,s).findIndex(v=>v.getAttribute(Lt.resizeHandleId)===o);return h??null}function f0(i,o,s){const f=c0(i,o,s);return f!=null?[f,f+1]:[-1,-1]}function o0(i,o=document){var s;if(o instanceof HTMLElement&&(o==null||(s=o.dataset)===null||s===void 0?void 0:s.panelGroupId)==i)return o;const f=o.querySelector(`[data-panel-group][data-panel-group-id="${i}"]`);return f||null}function Ri(i,o=document){const s=o.querySelector(`[${Lt.resizeHandleId}="${i}"]`);return s||null}function fg(i,o,s,f=document){var h,v,_,A;const E=Ri(o,f),S=Pn(i,f),G=E?S.indexOf(E):-1,U=(h=(v=s[G])===null||v===void 0?void 0:v.id)!==null&&h!==void 0?h:null,B=(_=(A=s[G+1])===null||A===void 0?void 0:A.id)!==null&&_!==void 0?_:null;return[U,B]}function og({committedValuesRef:i,eagerValuesRef:o,groupId:s,layout:f,panelDataArray:h,panelGroupElement:v,setLayout:_}){x.useRef({didWarnAboutMissingResizeHandle:!1}),ua(()=>{if(!v)return;const A=Pn(s,v);for(let E=0;E<h.length-1;E++){const{valueMax:S,valueMin:G,valueNow:U}=cg({layout:f,panelsArray:h,pivotIndices:[E,E+1]}),B=A[E];if(B!=null){const J=h[E];ft(J,`No panel data found for index "${E}"`),B.setAttribute("aria-controls",J.id),B.setAttribute("aria-valuemax",""+Math.round(S)),B.setAttribute("aria-valuemin",""+Math.round(G)),B.setAttribute("aria-valuenow",U!=null?""+Math.round(U):"")}}return()=>{A.forEach((E,S)=>{E.removeAttribute("aria-controls"),E.removeAttribute("aria-valuemax"),E.removeAttribute("aria-valuemin"),E.removeAttribute("aria-valuenow")})}},[s,f,h,v]),x.useEffect(()=>{if(!v)return;const A=o.current;ft(A,"Eager values not found");const{panelDataArray:E}=A,S=o0(s,v);ft(S!=null,`No group found for id "${s}"`);const G=Pn(s,v);ft(G,`No resize handles found for group id "${s}"`);const U=G.map(B=>{const J=B.getAttribute(Lt.resizeHandleId);ft(J,"Resize handle element has no handle id attribute");const[V,Y]=fg(s,J,E,v);if(V==null||Y==null)return()=>{};const Z=K=>{if(!K.defaultPrevented)switch(K.key){case"Enter":{K.preventDefault();const k=E.findIndex(I=>I.id===V);if(k>=0){const I=E[k];ft(I,`No panel data found for index ${k}`);const tt=f[k],{collapsedSize:nt=0,collapsible:W,minSize:q=0}=I.constraints;if(tt!=null&&W){const Et=kn({delta:Tl(tt,nt)?q-nt:nt-tt,initialLayout:f,panelConstraints:E.map(xt=>xt.constraints),pivotIndices:f0(s,J,v),prevLayout:f,trigger:"keyboard"});f!==Et&&_(Et)}}break}}};return B.addEventListener("keydown",Z),()=>{B.removeEventListener("keydown",Z)}});return()=>{U.forEach(B=>B())}},[v,i,o,s,f,h,_])}function qv(i,o){if(i.length!==o.length)return!1;for(let s=0;s<i.length;s++)if(i[s]!==o[s])return!1;return!0}function r0(i,o){const s=i==="horizontal",{x:f,y:h}=Di(o);return s?f:h}function rg(i,o,s,f,h){const v=s==="horizontal",_=Ri(o,h);ft(_,`No resize handle element found for id "${o}"`);const A=_.getAttribute(Lt.groupId);ft(A,"Resize handle element has no group id attribute");let{initialCursorPosition:E}=f;const S=r0(s,i),G=o0(A,h);ft(G,`No group element found for id "${A}"`);const U=G.getBoundingClientRect(),B=v?U.width:U.height;return(S-E)/B*100}function sg(i,o,s,f,h,v){if(Iv(i)){const _=s==="horizontal";let A=0;i.shiftKey?A=100:h!=null?A=h:A=10;let E=0;switch(i.key){case"ArrowDown":E=_?0:A;break;case"ArrowLeft":E=_?-A:0;break;case"ArrowRight":E=_?A:0;break;case"ArrowUp":E=_?0:-A;break;case"End":E=100;break;case"Home":E=-100;break}return E}else return f==null?0:rg(i,o,s,f,v)}function dg({panelDataArray:i}){const o=Array(i.length),s=i.map(v=>v.constraints);let f=0,h=100;for(let v=0;v<i.length;v++){const _=s[v];ft(_,`Panel constraints not found for index ${v}`);const{defaultSize:A}=_;A!=null&&(f++,o[v]=A,h-=A)}for(let v=0;v<i.length;v++){const _=s[v];ft(_,`Panel constraints not found for index ${v}`);const{defaultSize:A}=_;if(A!=null)continue;const E=i.length-f,S=h/E;f++,o[v]=S,h-=S}return o}function $a(i,o,s){o.forEach((f,h)=>{const v=i[h];ft(v,`Panel data not found for index ${h}`);const{callbacks:_,constraints:A,id:E}=v,{collapsedSize:S=0,collapsible:G}=A,U=s[E];if(U==null||f!==U){s[E]=f;const{onCollapse:B,onExpand:J,onResize:V}=_;V&&V(f,U),G&&(B||J)&&(J&&(U==null||re(U,S))&&!re(f,S)&&J(),B&&(U==null||!re(U,S))&&re(f,S)&&B())}})}function zi(i,o){if(i.length!==o.length)return!1;for(let s=0;s<i.length;s++)if(i[s]!=o[s])return!1;return!0}function vg({defaultSize:i,dragState:o,layout:s,panelData:f,panelIndex:h,precision:v=3}){const _=s[h];let A;return _==null?A=i!=null?i.toPrecision(v):"1":f.length===1?A="1":A=_.toPrecision(v),{flexBasis:0,flexGrow:A,flexShrink:1,overflow:"hidden",pointerEvents:o!==null?"none":void 0}}function yg(i,o=10){let s=null;return(...h)=>{s!==null&&clearTimeout(s),s=setTimeout(()=>{i(...h)},o)}}function Yv(i){try{if(typeof localStorage<"u")i.getItem=o=>localStorage.getItem(o),i.setItem=(o,s)=>{localStorage.setItem(o,s)};else throw new Error("localStorage not supported in this environment")}catch(o){console.error(o),i.getItem=()=>null,i.setItem=()=>{}}}function s0(i){return`react-resizable-panels:${i}`}function d0(i){return i.map(o=>{const{constraints:s,id:f,idIsFromProps:h,order:v}=o;return h?f:v?`${v}:${JSON.stringify(s)}`:JSON.stringify(s)}).sort((o,s)=>o.localeCompare(s)).join(",")}function v0(i,o){try{const s=s0(i),f=o.getItem(s);if(f){const h=JSON.parse(f);if(typeof h=="object"&&h!=null)return h}}catch{}return null}function mg(i,o,s){var f,h;const v=(f=v0(i,s))!==null&&f!==void 0?f:{},_=d0(o);return(h=v[_])!==null&&h!==void 0?h:null}function hg(i,o,s,f,h){var v;const _=s0(i),A=d0(o),E=(v=v0(i,h))!==null&&v!==void 0?v:{};E[A]={expandToSizes:Object.fromEntries(s.entries()),layout:f};try{h.setItem(_,JSON.stringify(E))}catch(S){console.error(S)}}function Gv({layout:i,panelConstraints:o}){const s=[...i],f=s.reduce((v,_)=>v+_,0);if(s.length!==o.length)throw Error(`Invalid ${o.length} panel layout: ${s.map(v=>`${v}%`).join(", ")}`);if(!Tl(f,100)&&s.length>0)for(let v=0;v<o.length;v++){const _=s[v];ft(_!=null,`No layout data found for index ${v}`);const A=100/f*_;s[v]=A}let h=0;for(let v=0;v<o.length;v++){const _=s[v];ft(_!=null,`No layout data found for index ${v}`);const A=ka({panelConstraints:o,panelIndex:v,size:_});_!=A&&(h+=_-A,s[v]=A)}if(!Tl(h,0))for(let v=0;v<o.length;v++){const _=s[v];ft(_!=null,`No layout data found for index ${v}`);const A=_+h,E=ka({panelConstraints:o,panelIndex:v,size:A});if(_!==E&&(h-=E-_,s[v]=E,Tl(h,0)))break}return s}const gg=100,Fn={getItem:i=>(Yv(Fn),Fn.getItem(i)),setItem:(i,o)=>{Yv(Fn),Fn.setItem(i,o)}},Lv={};function y0({autoSaveId:i=null,children:o,className:s="",direction:f,forwardedRef:h,id:v=null,onLayout:_=null,keyboardResizeBy:A=null,storage:E=Fn,style:S,tagName:G="div",...U}){const B=vo(v),J=x.useRef(null),[V,Y]=x.useState(null),[Z,K]=x.useState([]),k=ug(),I=x.useRef({}),tt=x.useRef(new Map),nt=x.useRef(0),W=x.useRef({autoSaveId:i,direction:f,dragState:V,id:B,keyboardResizeBy:A,onLayout:_,storage:E}),q=x.useRef({layout:Z,panelDataArray:[],panelDataArrayChanged:!1});x.useRef({didLogIdAndOrderWarning:!1,didLogPanelConstraintsWarning:!1,prevPanelIds:[]}),x.useImperativeHandle(h,()=>({getId:()=>W.current.id,getLayout:()=>{const{layout:O}=q.current;return O},setLayout:O=>{const{onLayout:H}=W.current,{layout:X,panelDataArray:j}=q.current,L=Gv({layout:O,panelConstraints:j.map(F=>F.constraints)});qv(X,L)||(K(L),q.current.layout=L,H&&H(L),$a(j,L,I.current))}}),[]),ua(()=>{W.current.autoSaveId=i,W.current.direction=f,W.current.dragState=V,W.current.id=B,W.current.onLayout=_,W.current.storage=E}),og({committedValuesRef:W,eagerValuesRef:q,groupId:B,layout:Z,panelDataArray:q.current.panelDataArray,setLayout:K,panelGroupElement:J.current}),x.useEffect(()=>{const{panelDataArray:O}=q.current;if(i){if(Z.length===0||Z.length!==O.length)return;let H=Lv[i];H==null&&(H=yg(hg,gg),Lv[i]=H);const X=[...O],j=new Map(tt.current);H(i,X,j,Z,E)}},[i,Z,E]),x.useEffect(()=>{});const Et=x.useCallback(O=>{const{onLayout:H}=W.current,{layout:X,panelDataArray:j}=q.current;if(O.constraints.collapsible){const L=j.map(nl=>nl.constraints),{collapsedSize:F=0,panelSize:at,pivotIndices:Rt}=ea(j,O,X);if(ft(at!=null,`Panel size not found for panel "${O.id}"`),!re(at,F)){tt.current.set(O.id,at);const il=Wa(j,O)===j.length-1?at-F:F-at,Nt=kn({delta:il,initialLayout:X,panelConstraints:L,pivotIndices:Rt,prevLayout:X,trigger:"imperative-api"});zi(X,Nt)||(K(Nt),q.current.layout=Nt,H&&H(Nt),$a(j,Nt,I.current))}}},[]),xt=x.useCallback((O,H)=>{const{onLayout:X}=W.current,{layout:j,panelDataArray:L}=q.current;if(O.constraints.collapsible){const F=L.map(Jt=>Jt.constraints),{collapsedSize:at=0,panelSize:Rt=0,minSize:nl=0,pivotIndices:il}=ea(L,O,j),Nt=H??nl;if(re(Rt,at)){const Jt=tt.current.get(O.id),Vl=Jt!=null&&Jt>=Nt?Jt:Nt,Pa=Wa(L,O)===L.length-1?Rt-Vl:Vl-Rt,kt=kn({delta:Pa,initialLayout:j,panelConstraints:F,pivotIndices:il,prevLayout:j,trigger:"imperative-api"});zi(j,kt)||(K(kt),q.current.layout=kt,X&&X(kt),$a(L,kt,I.current))}}},[]),qt=x.useCallback(O=>{const{layout:H,panelDataArray:X}=q.current,{panelSize:j}=ea(X,O,H);return ft(j!=null,`Panel size not found for panel "${O.id}"`),j},[]),bt=x.useCallback((O,H)=>{const{panelDataArray:X}=q.current,j=Wa(X,O);return vg({defaultSize:H,dragState:V,layout:Z,panelData:X,panelIndex:j})},[V,Z]),ot=x.useCallback(O=>{const{layout:H,panelDataArray:X}=q.current,{collapsedSize:j=0,collapsible:L,panelSize:F}=ea(X,O,H);return ft(F!=null,`Panel size not found for panel "${O.id}"`),L===!0&&re(F,j)},[]),al=x.useCallback(O=>{const{layout:H,panelDataArray:X}=q.current,{collapsedSize:j=0,collapsible:L,panelSize:F}=ea(X,O,H);return ft(F!=null,`Panel size not found for panel "${O.id}"`),!L||ia(F,j)>0},[]),Ct=x.useCallback(O=>{const{panelDataArray:H}=q.current;H.push(O),H.sort((X,j)=>{const L=X.order,F=j.order;return L==null&&F==null?0:L==null?-1:F==null?1:L-F}),q.current.panelDataArrayChanged=!0,k()},[k]);ua(()=>{if(q.current.panelDataArrayChanged){q.current.panelDataArrayChanged=!1;const{autoSaveId:O,onLayout:H,storage:X}=W.current,{layout:j,panelDataArray:L}=q.current;let F=null;if(O){const Rt=mg(O,L,X);Rt&&(tt.current=new Map(Object.entries(Rt.expandToSizes)),F=Rt.layout)}F==null&&(F=dg({panelDataArray:L}));const at=Gv({layout:F,panelConstraints:L.map(Rt=>Rt.constraints)});qv(j,at)||(K(at),q.current.layout=at,H&&H(at),$a(L,at,I.current))}}),ua(()=>{const O=q.current;return()=>{O.layout=[]}},[]);const pt=x.useCallback(O=>{let H=!1;const X=J.current;return X&&window.getComputedStyle(X,null).getPropertyValue("direction")==="rtl"&&(H=!0),function(L){L.preventDefault();const F=J.current;if(!F)return()=>null;const{direction:at,dragState:Rt,id:nl,keyboardResizeBy:il,onLayout:Nt}=W.current,{layout:Jt,panelDataArray:Vl}=q.current,{initialLayout:se}=Rt??{},Pa=f0(nl,O,F);let kt=sg(L,O,at,Rt,il,F);const ca=at==="horizontal";ca&&H&&(kt=-kt);const tn=Vl.map(Ni=>Ni.constraints),Kl=kn({delta:kt,initialLayout:se??Jt,panelConstraints:tn,pivotIndices:Pa,prevLayout:Jt,trigger:Iv(L)?"keyboard":"mouse-or-touch"}),tu=!zi(Jt,Kl);(Pv(L)||t0(L))&&nt.current!=kt&&(nt.current=kt,!tu&&kt!==0?ca?ao(O,kt<0?e0:a0):ao(O,kt<0?n0:u0):ao(O,0)),tu&&(K(Kl),q.current.layout=Kl,Nt&&Nt(Kl),$a(Vl,Kl,I.current))}},[]),M=x.useCallback((O,H)=>{const{onLayout:X}=W.current,{layout:j,panelDataArray:L}=q.current,F=L.map(Jt=>Jt.constraints),{panelSize:at,pivotIndices:Rt}=ea(L,O,j);ft(at!=null,`Panel size not found for panel "${O.id}"`);const il=Wa(L,O)===L.length-1?at-H:H-at,Nt=kn({delta:il,initialLayout:j,panelConstraints:F,pivotIndices:Rt,prevLayout:j,trigger:"imperative-api"});zi(j,Nt)||(K(Nt),q.current.layout=Nt,X&&X(Nt),$a(L,Nt,I.current))},[]),Q=x.useCallback((O,H)=>{const{layout:X,panelDataArray:j}=q.current,{collapsedSize:L=0,collapsible:F}=H,{collapsedSize:at=0,collapsible:Rt,maxSize:nl=100,minSize:il=0}=O.constraints,{panelSize:Nt}=ea(j,O,X);Nt!=null&&(F&&Rt&&re(Nt,L)?re(L,at)||M(O,at):Nt<il?M(O,il):Nt>nl&&M(O,nl))},[M]),lt=x.useCallback((O,H)=>{const{direction:X}=W.current,{layout:j}=q.current;if(!J.current)return;const L=Ri(O,J.current);ft(L,`Drag handle element not found for id "${O}"`);const F=r0(X,H);Y({dragHandleId:O,dragHandleRect:L.getBoundingClientRect(),initialCursorPosition:F,initialLayout:j})},[]),mt=x.useCallback(()=>{Y(null)},[]),ht=x.useCallback(O=>{const{panelDataArray:H}=q.current,X=Wa(H,O);X>=0&&(H.splice(X,1),delete I.current[O.id],q.current.panelDataArrayChanged=!0,k())},[k]),m=x.useMemo(()=>({collapsePanel:Et,direction:f,dragState:V,expandPanel:xt,getPanelSize:qt,getPanelStyle:bt,groupId:B,isPanelCollapsed:ot,isPanelExpanded:al,reevaluatePanelConstraints:Q,registerPanel:Ct,registerResizeHandle:pt,resizePanel:M,startDragging:lt,stopDragging:mt,unregisterPanel:ht,panelGroupElement:J.current}),[Et,V,f,xt,qt,bt,B,ot,al,Q,Ct,pt,M,lt,mt,ht]),R={display:"flex",flexDirection:f==="horizontal"?"row":"column",height:"100%",overflow:"hidden",width:"100%"};return x.createElement(Oi.Provider,{value:m},x.createElement(G,{...U,children:o,className:s,id:v,ref:J,style:{...R,...S},[Lt.group]:"",[Lt.groupDirection]:f,[Lt.groupId]:B}))}const Sg=x.forwardRef((i,o)=>x.createElement(y0,{...i,forwardedRef:o}));y0.displayName="PanelGroup";Sg.displayName="forwardRef(PanelGroup)";function Wa(i,o){return i.findIndex(s=>s===o||s.id===o.id)}function ea(i,o,s){const f=Wa(i,o),v=f===i.length-1?[f-1,f]:[f,f+1],_=s[f];return{...o.constraints,panelSize:_,pivotIndices:v}}function bg({disabled:i,handleId:o,resizeHandler:s,panelGroupElement:f}){x.useEffect(()=>{if(i||s==null||f==null)return;const h=Ri(o,f);if(h==null)return;const v=_=>{if(!_.defaultPrevented)switch(_.key){case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"ArrowUp":case"End":case"Home":{_.preventDefault(),s(_);break}case"F6":{_.preventDefault();const A=h.getAttribute(Lt.groupId);ft(A,`No group element found for id "${A}"`);const E=Pn(A,f),S=c0(A,o,f);ft(S!==null,`No resize element found for id "${o}"`);const G=_.shiftKey?S>0?S-1:E.length-1:S+1<E.length?S+1:0;E[G].focus();break}}};return h.addEventListener("keydown",v),()=>{h.removeEventListener("keydown",v)}},[f,i,o,s])}function zg({children:i=null,className:o="",disabled:s=!1,hitAreaMargins:f,id:h,onBlur:v,onClick:_,onDragging:A,onFocus:E,onPointerDown:S,onPointerUp:G,style:U={},tabIndex:B=0,tagName:J="div",...V}){var Y,Z;const K=x.useRef(null),k=x.useRef({onClick:_,onDragging:A,onPointerDown:S,onPointerUp:G});x.useEffect(()=>{k.current.onClick=_,k.current.onDragging=A,k.current.onPointerDown=S,k.current.onPointerUp=G});const I=x.useContext(Oi);if(I===null)throw Error("PanelResizeHandle components must be rendered within a PanelGroup container");const{direction:tt,groupId:nt,registerResizeHandle:W,startDragging:q,stopDragging:Et,panelGroupElement:xt}=I,qt=vo(h),[bt,ot]=x.useState("inactive"),[al,Ct]=x.useState(!1),[pt,M]=x.useState(null),Q=x.useRef({state:bt});ua(()=>{Q.current.state=bt}),x.useEffect(()=>{if(s)M(null);else{const m=W(qt);M(()=>m)}},[s,qt,W]);const lt=(Y=f?.coarse)!==null&&Y!==void 0?Y:15,mt=(Z=f?.fine)!==null&&Z!==void 0?Z:5;x.useEffect(()=>{if(s||pt==null)return;const m=K.current;ft(m,"Element ref not attached");let R=!1;return ag(qt,m,tt,{coarse:lt,fine:mt},(H,X,j)=>{if(!X){ot("inactive");return}switch(H){case"down":{ot("drag"),R=!1,ft(j,'Expected event to be defined for "down" action'),q(qt,j);const{onDragging:L,onPointerDown:F}=k.current;L?.(!0),F?.();break}case"move":{const{state:L}=Q.current;R=!0,L!=="drag"&&ot("hover"),ft(j,'Expected event to be defined for "move" action'),pt(j);break}case"up":{ot("hover"),Et();const{onClick:L,onDragging:F,onPointerUp:at}=k.current;F?.(!1),at?.(),R||L?.();break}}})},[lt,tt,s,mt,W,qt,pt,q,Et]),bg({disabled:s,handleId:qt,resizeHandler:pt,panelGroupElement:xt});const ht={touchAction:"none",userSelect:"none"};return x.createElement(J,{...V,children:i,className:o,id:h,onBlur:()=>{Ct(!1),v?.()},onFocus:()=>{Ct(!0),E?.()},ref:K,role:"separator",style:{...ht,...U},tabIndex:B,[Lt.groupDirection]:tt,[Lt.groupId]:nt,[Lt.resizeHandle]:"",[Lt.resizeHandleActive]:bt==="drag"?"pointer":al?"keyboard":void 0,[Lt.resizeHandleEnabled]:!s,[Lt.resizeHandleId]:qt,[Lt.resizeHandleState]:bt})}zg.displayName="PanelResizeHandle";export{wh as P,jm as R,_g as a,Vh as b,Eg as c,zg as d,Sg as e,qm as g,Ag as i,pg as j,x as r,Tg as u};
@@ -0,0 +1 @@
1
+ import{c as e}from"./index-CzVDvC5h.js";const t=e("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);export{t as R};
@@ -0,0 +1 @@
1
+ import{c}from"./index-CzVDvC5h.js";const r=c("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);export{r as S};
@@ -0,0 +1 @@
1
+ import{c as a}from"./index-CzVDvC5h.js";const e=a("Sigma",[["path",{d:"M18 7V5a1 1 0 0 0-1-1H6.5a.5.5 0 0 0-.4.8l4.5 6a2 2 0 0 1 0 2.4l-4.5 6a.5.5 0 0 0 .4.8H17a1 1 0 0 0 1-1v-2",key:"wuwx1p"}]]);export{e as S};
@@ -1 +1 @@
1
- import{a as k}from"./index-Dx9UqMyC.js";import"./react-BoEjKzFZ.js";const S=5,u=new Map,x=12;let p=!1,f=null;class h extends Error{constructor(){super("A newer writing check replaced this request."),this.name="HarperLintSupersededError"}}function A(t){return t instanceof h}function v(t){const e=[0];let n=0;for(const r of t)n+=r.length,e.push(n);return e}function L(t){return[...new Set(t.map(e=>e.trim()).filter(Boolean))].sort((e,n)=>e.localeCompare(n)).join("\0")}async function C(t,e,n){return(await k(`/api/projects/${t}/spellcheck`,{method:"POST",body:JSON.stringify({path:e,source:n})})).lints}function R(t,e,n){if(!e.problem)return null;const r={from:e.start,to:e.end},o={from:n[e.start]??-1,to:n[e.end]??-1},i=c=>c.from>=0&&c.to>c.from&&c.to<=t.length,a=c=>i(c)&&t.slice(c.from,c.to)===e.problem;return a(o)?o:a(r)?r:null}function $(t,e,n){const r=R(t,e,n);if(!r)return null;const{from:o,to:i}=r,a=t.slice(o,i);if(!a.trim()||!/[A-Za-z]/.test(a)||e.kind==="Formatting")return null;const c=e.kind==="Spelling"||e.kind==="Typo"?"spelling":"grammar",m=e.suggestions.filter((d,s,l)=>s<S&&l.indexOf(d)===s);return{from:o,to:i,word:a,kind:c,message:e.message,suggestions:m}}function g(t,e){let n=2166136261;for(let r=0;r<e.length;r+=1)n^=e.charCodeAt(r),n=Math.imul(n,16777619);return`${t}\0${e.length}:${n>>>0}`}function y(t,e,n){const r=g(t,e),o=u.get(r);return!o||o.path!==t||o.source!==e||o.dictionary!==n?null:(u.delete(r),u.set(r,o),o.issues)}function j(t,e,n,r){const o=g(t,e);for(u.set(o,{path:t,source:e,dictionary:n,issues:r});u.size>x;){const i=u.keys().next().value;if(i===void 0)break;u.delete(i)}}async function q(t,e,n,r="main.tex"){const o=L(e),i=y(r,t,o);if(i)return i;const a=v(t),c=new Set(e.map(s=>s.trim().toLocaleLowerCase("en-US")).filter(Boolean)),m=new Set,d=n.map(s=>$(t,s,a)).filter(s=>!!s).filter(s=>s.kind!=="spelling"||!c.has(s.word.trim().toLocaleLowerCase("en-US"))).filter(s=>{const l=`${s.from}:${s.to}:${s.kind}`;return m.has(l)?!1:(m.add(l),!0)}).sort((s,l)=>s.from-l.from||s.to-l.to);return j(r,t,o,d),d}async function b(t,e,n,r){const o=L(r),i=y(e,n,o);if(i)return i;const a=await C(t,e,n);return q(n,r,a,e)}async function w(){if(p||!f)return;const t=f;f=null,p=!0;try{t.resolve(await b(t.projectId,t.path,t.source,t.customWords))}catch(e){t.reject(e)}finally{p=!1,w()}}function B(t,e,n,r=[]){return new Promise((o,i)=>{f?.reject(new h),f={projectId:t,path:e,source:n,customWords:[...r],resolve:o,reject:i},w()})}export{h as HarperLintSupersededError,A as isHarperLintSupersededError,B as lintLatex,q as mapLatexLints};
1
+ import{f as k}from"./index-CzVDvC5h.js";import"./react-BVUjbTTn.js";const S=5,u=new Map,x=12;let p=!1,f=null;class h extends Error{constructor(){super("A newer writing check replaced this request."),this.name="HarperLintSupersededError"}}function A(t){return t instanceof h}function v(t){const e=[0];let n=0;for(const r of t)n+=r.length,e.push(n);return e}function L(t){return[...new Set(t.map(e=>e.trim()).filter(Boolean))].sort((e,n)=>e.localeCompare(n)).join("\0")}async function C(t,e,n){return(await k(`/api/projects/${t}/spellcheck`,{method:"POST",body:JSON.stringify({path:e,source:n})})).lints}function R(t,e,n){if(!e.problem)return null;const r={from:e.start,to:e.end},o={from:n[e.start]??-1,to:n[e.end]??-1},i=c=>c.from>=0&&c.to>c.from&&c.to<=t.length,a=c=>i(c)&&t.slice(c.from,c.to)===e.problem;return a(o)?o:a(r)?r:null}function $(t,e,n){const r=R(t,e,n);if(!r)return null;const{from:o,to:i}=r,a=t.slice(o,i);if(!a.trim()||!/[A-Za-z]/.test(a)||e.kind==="Formatting")return null;const c=e.kind==="Spelling"||e.kind==="Typo"?"spelling":"grammar",m=e.suggestions.filter((d,s,l)=>s<S&&l.indexOf(d)===s);return{from:o,to:i,word:a,kind:c,message:e.message,suggestions:m}}function g(t,e){let n=2166136261;for(let r=0;r<e.length;r+=1)n^=e.charCodeAt(r),n=Math.imul(n,16777619);return`${t}\0${e.length}:${n>>>0}`}function y(t,e,n){const r=g(t,e),o=u.get(r);return!o||o.path!==t||o.source!==e||o.dictionary!==n?null:(u.delete(r),u.set(r,o),o.issues)}function j(t,e,n,r){const o=g(t,e);for(u.set(o,{path:t,source:e,dictionary:n,issues:r});u.size>x;){const i=u.keys().next().value;if(i===void 0)break;u.delete(i)}}async function q(t,e,n,r="main.tex"){const o=L(e),i=y(r,t,o);if(i)return i;const a=v(t),c=new Set(e.map(s=>s.trim().toLocaleLowerCase("en-US")).filter(Boolean)),m=new Set,d=n.map(s=>$(t,s,a)).filter(s=>!!s).filter(s=>s.kind!=="spelling"||!c.has(s.word.trim().toLocaleLowerCase("en-US"))).filter(s=>{const l=`${s.from}:${s.to}:${s.kind}`;return m.has(l)?!1:(m.add(l),!0)}).sort((s,l)=>s.from-l.from||s.to-l.to);return j(r,t,o,d),d}async function b(t,e,n,r){const o=L(r),i=y(e,n,o);if(i)return i;const a=await C(t,e,n);return q(n,r,a,e)}async function w(){if(p||!f)return;const t=f;f=null,p=!0;try{t.resolve(await b(t.projectId,t.path,t.source,t.customWords))}catch(e){t.reject(e)}finally{p=!1,w()}}function B(t,e,n,r=[]){return new Promise((o,i)=>{f?.reject(new h),f={projectId:t,path:e,source:n,customWords:[...r],resolve:o,reject:i},w()})}export{h as HarperLintSupersededError,A as isHarperLintSupersededError,B as lintLatex,q as mapLatexLints};
@@ -0,0 +1 @@
1
+ import{c as a}from"./index-CzVDvC5h.js";const e=a("Tags",[["path",{d:"m15 5 6.3 6.3a2.4 2.4 0 0 1 0 3.4L17 19",key:"1cbfv1"}],["path",{d:"M9.586 5.586A2 2 0 0 0 8.172 5H3a1 1 0 0 0-1 1v5.172a2 2 0 0 0 .586 1.414L8.29 18.29a2.426 2.426 0 0 0 3.42 0l3.58-3.58a2.426 2.426 0 0 0 0-3.42z",key:"135mg7"}],["circle",{cx:"6.5",cy:"9.5",r:".5",fill:"currentColor",key:"5pm5xn"}]]);export{e as T};
@@ -0,0 +1 @@
1
+ import{c as e}from"./index-CzVDvC5h.js";const n=e("Type",[["polyline",{points:"4 7 4 4 20 4 20 7",key:"1nosan"}],["line",{x1:"9",x2:"15",y1:"20",y2:"20",key:"swin9y"}],["line",{x1:"12",x2:"12",y1:"4",y2:"20",key:"1tx1rr"}]]);export{n as T};
@@ -0,0 +1 @@
1
+ import{c as e}from"./index-CzVDvC5h.js";const c=e("UserPlus",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["line",{x1:"19",x2:"19",y1:"8",y2:"14",key:"1bvyxn"}],["line",{x1:"22",x2:"16",y1:"11",y2:"11",key:"1shjgl"}]]);export{c as U};
@@ -0,0 +1 @@
1
+ import{c as a}from"./index-CzVDvC5h.js";const t=a("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);const h=a("BookMarked",[["path",{d:"M10 2v8l3-3 3 3V2",key:"sqw3rj"}],["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}]]);const y=a("BookOpen",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]);const k=a("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);const d=a("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]]);const c=a("FileArchive",[["path",{d:"M10 12v-1",key:"v7bkov"}],["path",{d:"M10 18v-2",key:"1cjy8d"}],["path",{d:"M10 7V6",key:"dljcrl"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M15.5 22H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v16a2 2 0 0 0 .274 1.01",key:"gkbcor"}],["circle",{cx:"10",cy:"20",r:"2",key:"1xzdoj"}]]);const p=a("FileSearch",[["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M4.268 21a2 2 0 0 0 1.727 1H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v3",key:"ms7g94"}],["path",{d:"m9 18-1.5-1.5",key:"1j6qii"}],["circle",{cx:"5",cy:"14",r:"3",key:"ufru5t"}]]);const s=a("FileText",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);const l=a("FolderOpen",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 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.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);const r=a("FolderPlus",[["path",{d:"M12 10v6",key:"1bos4e"}],["path",{d:"M9 13h6",key:"1uhe8q"}],["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);const o=a("Folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);const n=a("GitBranch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);const M=a("ListTree",[["path",{d:"M21 12h-8",key:"1bmf0i"}],["path",{d:"M21 6H8",key:"1pqkrb"}],["path",{d:"M21 18h-8",key:"1tm79t"}],["path",{d:"M3 6v4c0 1.1.9 2 2 2h3",key:"1ywdgy"}],["path",{d:"M3 10v6c0 1.1.9 2 2 2h3",key:"2wc746"}]]);const i=a("MessageSquare",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]]);const v=a("Pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);const x=a("ScrollText",[["path",{d:"M15 12h-5",key:"r7krc0"}],["path",{d:"M15 8h-5",key:"1khuty"}],["path",{d:"M19 17V5a2 2 0 0 0-2-2H4",key:"zz82l3"}],["path",{d:"M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3",key:"1ph1d7"}]]);const H=a("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);const m=a("TriangleAlert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);const u=a("Upload",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"17 8 12 3 7 8",key:"t8dd8p"}],["line",{x1:"12",x2:"12",y1:"3",y2:"15",key:"widbto"}]]);const q=a("Users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["path",{d:"M16 3.13a4 4 0 0 1 0 7.75",key:"1da9ce"}]]);const g=a("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);export{t as A,h as B,k as C,d as D,p as F,n as G,M as L,i as M,v as P,x as S,H as T,q as U,g as X,l as a,o as b,y as c,s as d,u as e,r as f,c as g,m as h};
@@ -10,9 +10,9 @@
10
10
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fontsource/iosevka@5.2.5/400.css" />
11
11
  <link rel="icon" type="image/svg+xml" href="/logo.svg" />
12
12
  <title>TexLite</title>
13
- <script type="module" crossorigin src="/assets/index-Dx9UqMyC.js"></script>
14
- <link rel="modulepreload" crossorigin href="/assets/react-BoEjKzFZ.js">
15
- <link rel="stylesheet" crossorigin href="/assets/index-DzzqNm9b.css">
13
+ <script type="module" crossorigin src="/assets/index-CzVDvC5h.js"></script>
14
+ <link rel="modulepreload" crossorigin href="/assets/react-BVUjbTTn.js">
15
+ <link rel="stylesheet" crossorigin href="/assets/index-RjUuWk8F.css">
16
16
  </head>
17
17
  <body>
18
18
  <div id="root"></div>
@@ -9,7 +9,7 @@ import * as decoding from "lib0/decoding";
9
9
  import * as syncProtocol from "y-protocols/sync";
10
10
  import { Awareness, applyAwarenessUpdate, encodeAwarenessUpdate, modifyAwarenessUpdate, removeAwarenessStates } from "y-protocols/awareness";
11
11
  import { listProjectFilesAsync, outputRoot, resolveSourcePath, safeRelativePath, sourceRoot } from "./files.js";
12
- import { accessibleProject, canEdit } from "./projects.js";
12
+ import { collaborationProjectAccessFromStatement, canEdit, prepareCollaborationProjectAccessStatement } from "./projects.js";
13
13
  import { reanchorFileComments } from "./anchors.js";
14
14
  const MESSAGE_SYNC = 0;
15
15
  const MESSAGE_AWARENESS = 1;
@@ -65,17 +65,24 @@ export class CollaborationService {
65
65
  snapshotBarriers = new Map();
66
66
  pendingConnections = new Map();
67
67
  closed = false;
68
+ userByIdStatement;
69
+ collaborationProjectAccessStatement;
68
70
  constructor(config, db, onPersist) {
69
71
  this.config = config;
70
72
  this.db = db;
71
73
  this.onPersist = onPersist;
74
+ this.userByIdStatement = db.prepare("SELECT * FROM users WHERE id = ?");
75
+ this.collaborationProjectAccessStatement = prepareCollaborationProjectAccessStatement(db);
76
+ }
77
+ lookupProjectAccess(projectId, user) {
78
+ return collaborationProjectAccessFromStatement(this.collaborationProjectAccessStatement, projectId, user);
72
79
  }
73
80
  async connect(socket, projectId, user) {
74
81
  if (this.closed) {
75
82
  socket.close(1012, "Collaboration service is shutting down");
76
83
  return;
77
84
  }
78
- const project = accessibleProject(this.db, projectId, user);
85
+ const project = this.lookupProjectAccess(projectId, user);
79
86
  if (!project) {
80
87
  socket.close(1008, "Project access denied");
81
88
  return;
@@ -790,7 +797,7 @@ export class CollaborationService {
790
797
  attachConnection(room, socket, user) {
791
798
  if (socket.readyState !== WebSocket.OPEN)
792
799
  return;
793
- if (!accessibleProject(this.db, room.projectId, user)) {
800
+ if (!this.lookupProjectAccess(room.projectId, user)) {
794
801
  socket.close(1008, "Project access denied");
795
802
  return;
796
803
  }
@@ -850,14 +857,14 @@ export class CollaborationService {
850
857
  return text;
851
858
  }
852
859
  handleMessage(room, connection, bytes) {
853
- const refreshedUser = this.db.prepare("SELECT * FROM users WHERE id = ?").get(connection.user.id);
860
+ const refreshedUser = this.userByIdStatement.get(connection.user.id);
854
861
  if (!refreshedUser || refreshedUser.disabled) {
855
862
  connection.socket.close(1008, "Project access revoked");
856
863
  this.disconnect(room, connection);
857
864
  return;
858
865
  }
859
866
  connection.user = refreshedUser;
860
- const current = accessibleProject(this.db, room.projectId, refreshedUser);
867
+ const current = this.lookupProjectAccess(room.projectId, refreshedUser);
861
868
  if (!current) {
862
869
  connection.socket.close(1008, "Project access revoked");
863
870
  return;
package/dist/server/db.js CHANGED
@@ -4,7 +4,10 @@ export function openDatabase(config) {
4
4
  fs.mkdirSync(config.dataDir, { recursive: true, mode: 0o700 });
5
5
  fs.mkdirSync(config.projectsDir, { recursive: true, mode: 0o700 });
6
6
  const db = new Database(config.databasePath, { timeout: 5000 });
7
- db.exec("PRAGMA foreign_keys = ON; PRAGMA journal_mode = WAL; PRAGMA busy_timeout = 5000;");
7
+ // WAL allows readers to proceed while writes are committed. NORMAL avoids a
8
+ // per-transaction WAL fsync: a sudden host failure can lose the most recent
9
+ // acknowledged transaction, but the database remains consistent.
10
+ db.exec("PRAGMA foreign_keys = ON; PRAGMA journal_mode = WAL; PRAGMA synchronous = NORMAL; PRAGMA busy_timeout = 5000;");
8
11
  migrate(db);
9
12
  return db;
10
13
  }