@allbluecn/web-app 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1353) hide show
  1. package/package.json +189 -0
  2. package/public/avatar/part/accessories/accessories-0.svg +7 -0
  3. package/public/avatar/part/accessories/accessories-1.svg +11 -0
  4. package/public/avatar/part/accessories/accessories-10.svg +11 -0
  5. package/public/avatar/part/accessories/accessories-11.svg +6 -0
  6. package/public/avatar/part/accessories/accessories-12.svg +6 -0
  7. package/public/avatar/part/accessories/accessories-13.svg +4 -0
  8. package/public/avatar/part/accessories/accessories-14.svg +6 -0
  9. package/public/avatar/part/accessories/accessories-2.svg +11 -0
  10. package/public/avatar/part/accessories/accessories-3.svg +10 -0
  11. package/public/avatar/part/accessories/accessories-4.svg +15 -0
  12. package/public/avatar/part/accessories/accessories-5.svg +11 -0
  13. package/public/avatar/part/accessories/accessories-6.svg +8 -0
  14. package/public/avatar/part/accessories/accessories-7.svg +11 -0
  15. package/public/avatar/part/accessories/accessories-8.svg +14 -0
  16. package/public/avatar/part/accessories/accessories-9.svg +15 -0
  17. package/public/avatar/part/beard/beard-0.svg +7 -0
  18. package/public/avatar/part/beard/beard-1.svg +11 -0
  19. package/public/avatar/part/beard/beard-10.svg +8 -0
  20. package/public/avatar/part/beard/beard-11.svg +4 -0
  21. package/public/avatar/part/beard/beard-12.svg +11 -0
  22. package/public/avatar/part/beard/beard-13.svg +4 -0
  23. package/public/avatar/part/beard/beard-14.svg +5 -0
  24. package/public/avatar/part/beard/beard-15.svg +6 -0
  25. package/public/avatar/part/beard/beard-16.svg +4 -0
  26. package/public/avatar/part/beard/beard-2.svg +32 -0
  27. package/public/avatar/part/beard/beard-3.svg +8 -0
  28. package/public/avatar/part/beard/beard-4.svg +11 -0
  29. package/public/avatar/part/beard/beard-5.svg +18 -0
  30. package/public/avatar/part/beard/beard-6.svg +8 -0
  31. package/public/avatar/part/beard/beard-7.svg +8 -0
  32. package/public/avatar/part/beard/beard-8.svg +8 -0
  33. package/public/avatar/part/beard/beard-9.svg +8 -0
  34. package/public/avatar/part/details/details-0.svg +7 -0
  35. package/public/avatar/part/details/details-1.svg +8 -0
  36. package/public/avatar/part/details/details-10.svg +8 -0
  37. package/public/avatar/part/details/details-11.svg +4 -0
  38. package/public/avatar/part/details/details-12.svg +4 -0
  39. package/public/avatar/part/details/details-13.svg +3 -0
  40. package/public/avatar/part/details/details-2.svg +8 -0
  41. package/public/avatar/part/details/details-3.svg +8 -0
  42. package/public/avatar/part/details/details-4.svg +8 -0
  43. package/public/avatar/part/details/details-5.svg +11 -0
  44. package/public/avatar/part/details/details-6.svg +8 -0
  45. package/public/avatar/part/details/details-7.svg +11 -0
  46. package/public/avatar/part/details/details-8.svg +11 -0
  47. package/public/avatar/part/details/details-9.svg +8 -0
  48. package/public/avatar/part/eyebrows/eyebrows-0.svg +11 -0
  49. package/public/avatar/part/eyebrows/eyebrows-1.svg +11 -0
  50. package/public/avatar/part/eyebrows/eyebrows-10.svg +8 -0
  51. package/public/avatar/part/eyebrows/eyebrows-11.svg +4 -0
  52. package/public/avatar/part/eyebrows/eyebrows-12.svg +4 -0
  53. package/public/avatar/part/eyebrows/eyebrows-13.svg +4 -0
  54. package/public/avatar/part/eyebrows/eyebrows-14.svg +4 -0
  55. package/public/avatar/part/eyebrows/eyebrows-15.svg +4 -0
  56. package/public/avatar/part/eyebrows/eyebrows-2.svg +8 -0
  57. package/public/avatar/part/eyebrows/eyebrows-3.svg +11 -0
  58. package/public/avatar/part/eyebrows/eyebrows-4.svg +11 -0
  59. package/public/avatar/part/eyebrows/eyebrows-5.svg +11 -0
  60. package/public/avatar/part/eyebrows/eyebrows-6.svg +8 -0
  61. package/public/avatar/part/eyebrows/eyebrows-7.svg +11 -0
  62. package/public/avatar/part/eyebrows/eyebrows-8.svg +11 -0
  63. package/public/avatar/part/eyebrows/eyebrows-9.svg +11 -0
  64. package/public/avatar/part/eyes/eyes-0.svg +8 -0
  65. package/public/avatar/part/eyes/eyes-1.svg +14 -0
  66. package/public/avatar/part/eyes/eyes-10.svg +17 -0
  67. package/public/avatar/part/eyes/eyes-11.svg +4 -0
  68. package/public/avatar/part/eyes/eyes-12.svg +4 -0
  69. package/public/avatar/part/eyes/eyes-13.svg +16 -0
  70. package/public/avatar/part/eyes/eyes-2.svg +8 -0
  71. package/public/avatar/part/eyes/eyes-3.svg +11 -0
  72. package/public/avatar/part/eyes/eyes-4.svg +8 -0
  73. package/public/avatar/part/eyes/eyes-5.svg +19 -0
  74. package/public/avatar/part/eyes/eyes-6.svg +13 -0
  75. package/public/avatar/part/eyes/eyes-7.svg +8 -0
  76. package/public/avatar/part/eyes/eyes-8.svg +8 -0
  77. package/public/avatar/part/eyes/eyes-9.svg +8 -0
  78. package/public/avatar/part/face/face-0.svg +8 -0
  79. package/public/avatar/part/face/face-1.svg +8 -0
  80. package/public/avatar/part/face/face-10.svg +8 -0
  81. package/public/avatar/part/face/face-11.svg +6 -0
  82. package/public/avatar/part/face/face-12.svg +6 -0
  83. package/public/avatar/part/face/face-13.svg +6 -0
  84. package/public/avatar/part/face/face-14.svg +6 -0
  85. package/public/avatar/part/face/face-15.svg +6 -0
  86. package/public/avatar/part/face/face-2.svg +8 -0
  87. package/public/avatar/part/face/face-3.svg +8 -0
  88. package/public/avatar/part/face/face-4.svg +8 -0
  89. package/public/avatar/part/face/face-5.svg +8 -0
  90. package/public/avatar/part/face/face-6.svg +8 -0
  91. package/public/avatar/part/face/face-7.svg +8 -0
  92. package/public/avatar/part/face/face-8.svg +8 -0
  93. package/public/avatar/part/face/face-9.svg +8 -0
  94. package/public/avatar/part/glasses/glasses-0.svg +7 -0
  95. package/public/avatar/part/glasses/glasses-1.svg +13 -0
  96. package/public/avatar/part/glasses/glasses-10.svg +14 -0
  97. package/public/avatar/part/glasses/glasses-11.svg +5 -0
  98. package/public/avatar/part/glasses/glasses-12.svg +12 -0
  99. package/public/avatar/part/glasses/glasses-13.svg +21 -0
  100. package/public/avatar/part/glasses/glasses-14.svg +5 -0
  101. package/public/avatar/part/glasses/glasses-2.svg +8 -0
  102. package/public/avatar/part/glasses/glasses-3.svg +14 -0
  103. package/public/avatar/part/glasses/glasses-4.svg +11 -0
  104. package/public/avatar/part/glasses/glasses-5.svg +13 -0
  105. package/public/avatar/part/glasses/glasses-6.svg +11 -0
  106. package/public/avatar/part/glasses/glasses-7.svg +11 -0
  107. package/public/avatar/part/glasses/glasses-8.svg +14 -0
  108. package/public/avatar/part/glasses/glasses-9.svg +11 -0
  109. package/public/avatar/part/hair/hair-0.svg +7 -0
  110. package/public/avatar/part/hair/hair-1.svg +8 -0
  111. package/public/avatar/part/hair/hair-10.svg +8 -0
  112. package/public/avatar/part/hair/hair-11.svg +8 -0
  113. package/public/avatar/part/hair/hair-12.svg +8 -0
  114. package/public/avatar/part/hair/hair-13.svg +19 -0
  115. package/public/avatar/part/hair/hair-14.svg +8 -0
  116. package/public/avatar/part/hair/hair-15.svg +8 -0
  117. package/public/avatar/part/hair/hair-16.svg +8 -0
  118. package/public/avatar/part/hair/hair-17.svg +8 -0
  119. package/public/avatar/part/hair/hair-18.svg +8 -0
  120. package/public/avatar/part/hair/hair-19.svg +8 -0
  121. package/public/avatar/part/hair/hair-2.svg +8 -0
  122. package/public/avatar/part/hair/hair-20.svg +8 -0
  123. package/public/avatar/part/hair/hair-21.svg +8 -0
  124. package/public/avatar/part/hair/hair-22.svg +8 -0
  125. package/public/avatar/part/hair/hair-23.svg +8 -0
  126. package/public/avatar/part/hair/hair-24.svg +8 -0
  127. package/public/avatar/part/hair/hair-25.svg +8 -0
  128. package/public/avatar/part/hair/hair-26.svg +8 -0
  129. package/public/avatar/part/hair/hair-27.svg +8 -0
  130. package/public/avatar/part/hair/hair-28.svg +8 -0
  131. package/public/avatar/part/hair/hair-29.svg +8 -0
  132. package/public/avatar/part/hair/hair-3.svg +8 -0
  133. package/public/avatar/part/hair/hair-30.svg +8 -0
  134. package/public/avatar/part/hair/hair-31.svg +3 -0
  135. package/public/avatar/part/hair/hair-32.svg +3 -0
  136. package/public/avatar/part/hair/hair-33.svg +3 -0
  137. package/public/avatar/part/hair/hair-34.svg +4 -0
  138. package/public/avatar/part/hair/hair-35.svg +3 -0
  139. package/public/avatar/part/hair/hair-36.svg +3 -0
  140. package/public/avatar/part/hair/hair-37.svg +3 -0
  141. package/public/avatar/part/hair/hair-38.svg +3 -0
  142. package/public/avatar/part/hair/hair-39.svg +3 -0
  143. package/public/avatar/part/hair/hair-4.svg +8 -0
  144. package/public/avatar/part/hair/hair-40.svg +3 -0
  145. package/public/avatar/part/hair/hair-41.svg +4 -0
  146. package/public/avatar/part/hair/hair-42.svg +3 -0
  147. package/public/avatar/part/hair/hair-43.svg +3 -0
  148. package/public/avatar/part/hair/hair-44.svg +3 -0
  149. package/public/avatar/part/hair/hair-45.svg +3 -0
  150. package/public/avatar/part/hair/hair-46.svg +3 -0
  151. package/public/avatar/part/hair/hair-47.svg +3 -0
  152. package/public/avatar/part/hair/hair-48.svg +3 -0
  153. package/public/avatar/part/hair/hair-49.svg +3 -0
  154. package/public/avatar/part/hair/hair-5.svg +8 -0
  155. package/public/avatar/part/hair/hair-50.svg +3 -0
  156. package/public/avatar/part/hair/hair-51.svg +3 -0
  157. package/public/avatar/part/hair/hair-52.svg +3 -0
  158. package/public/avatar/part/hair/hair-53.svg +3 -0
  159. package/public/avatar/part/hair/hair-54.svg +3 -0
  160. package/public/avatar/part/hair/hair-55.svg +3 -0
  161. package/public/avatar/part/hair/hair-56.svg +3 -0
  162. package/public/avatar/part/hair/hair-57.svg +3 -0
  163. package/public/avatar/part/hair/hair-58.svg +3 -0
  164. package/public/avatar/part/hair/hair-6.svg +8 -0
  165. package/public/avatar/part/hair/hair-7.svg +8 -0
  166. package/public/avatar/part/hair/hair-8.svg +8 -0
  167. package/public/avatar/part/hair/hair-9.svg +8 -0
  168. package/public/avatar/part/mouth/mouth-0.svg +8 -0
  169. package/public/avatar/part/mouth/mouth-1.svg +8 -0
  170. package/public/avatar/part/mouth/mouth-10.svg +8 -0
  171. package/public/avatar/part/mouth/mouth-11.svg +3 -0
  172. package/public/avatar/part/mouth/mouth-12.svg +4 -0
  173. package/public/avatar/part/mouth/mouth-13.svg +6 -0
  174. package/public/avatar/part/mouth/mouth-14.svg +4 -0
  175. package/public/avatar/part/mouth/mouth-15.svg +5 -0
  176. package/public/avatar/part/mouth/mouth-16.svg +4 -0
  177. package/public/avatar/part/mouth/mouth-17.svg +6 -0
  178. package/public/avatar/part/mouth/mouth-18.svg +4 -0
  179. package/public/avatar/part/mouth/mouth-19.svg +4 -0
  180. package/public/avatar/part/mouth/mouth-2.svg +8 -0
  181. package/public/avatar/part/mouth/mouth-3.svg +12 -0
  182. package/public/avatar/part/mouth/mouth-4.svg +8 -0
  183. package/public/avatar/part/mouth/mouth-5.svg +8 -0
  184. package/public/avatar/part/mouth/mouth-6.svg +8 -0
  185. package/public/avatar/part/mouth/mouth-7.svg +8 -0
  186. package/public/avatar/part/mouth/mouth-8.svg +11 -0
  187. package/public/avatar/part/mouth/mouth-9.svg +8 -0
  188. package/public/avatar/part/nose/nose-0.svg +8 -0
  189. package/public/avatar/part/nose/nose-1.svg +8 -0
  190. package/public/avatar/part/nose/nose-10.svg +8 -0
  191. package/public/avatar/part/nose/nose-11.svg +3 -0
  192. package/public/avatar/part/nose/nose-12.svg +3 -0
  193. package/public/avatar/part/nose/nose-13.svg +3 -0
  194. package/public/avatar/part/nose/nose-2.svg +8 -0
  195. package/public/avatar/part/nose/nose-3.svg +8 -0
  196. package/public/avatar/part/nose/nose-4.svg +8 -0
  197. package/public/avatar/part/nose/nose-5.svg +8 -0
  198. package/public/avatar/part/nose/nose-6.svg +8 -0
  199. package/public/avatar/part/nose/nose-7.svg +8 -0
  200. package/public/avatar/part/nose/nose-8.svg +8 -0
  201. package/public/avatar/part/nose/nose-9.svg +8 -0
  202. package/public/avatar/preview/accessories/0.svg +4 -0
  203. package/public/avatar/preview/accessories/1.svg +9 -0
  204. package/public/avatar/preview/accessories/10.svg +9 -0
  205. package/public/avatar/preview/accessories/11.svg +10 -0
  206. package/public/avatar/preview/accessories/12.svg +10 -0
  207. package/public/avatar/preview/accessories/13.svg +8 -0
  208. package/public/avatar/preview/accessories/14.svg +10 -0
  209. package/public/avatar/preview/accessories/2.svg +9 -0
  210. package/public/avatar/preview/accessories/3.svg +8 -0
  211. package/public/avatar/preview/accessories/4.svg +11 -0
  212. package/public/avatar/preview/accessories/5.svg +7 -0
  213. package/public/avatar/preview/accessories/6.svg +6 -0
  214. package/public/avatar/preview/accessories/7.svg +9 -0
  215. package/public/avatar/preview/accessories/8.svg +10 -0
  216. package/public/avatar/preview/accessories/9.svg +13 -0
  217. package/public/avatar/preview/beard/0.svg +4 -0
  218. package/public/avatar/preview/beard/1.svg +9 -0
  219. package/public/avatar/preview/beard/10.svg +6 -0
  220. package/public/avatar/preview/beard/11.svg +8 -0
  221. package/public/avatar/preview/beard/12.svg +17 -0
  222. package/public/avatar/preview/beard/13.svg +8 -0
  223. package/public/avatar/preview/beard/14.svg +9 -0
  224. package/public/avatar/preview/beard/15.svg +12 -0
  225. package/public/avatar/preview/beard/16.svg +8 -0
  226. package/public/avatar/preview/beard/2.svg +30 -0
  227. package/public/avatar/preview/beard/3.svg +6 -0
  228. package/public/avatar/preview/beard/4.svg +9 -0
  229. package/public/avatar/preview/beard/5.svg +16 -0
  230. package/public/avatar/preview/beard/6.svg +6 -0
  231. package/public/avatar/preview/beard/7.svg +6 -0
  232. package/public/avatar/preview/beard/8.svg +6 -0
  233. package/public/avatar/preview/beard/9.svg +6 -0
  234. package/public/avatar/preview/details/0.svg +4 -0
  235. package/public/avatar/preview/details/1.svg +6 -0
  236. package/public/avatar/preview/details/10.svg +6 -0
  237. package/public/avatar/preview/details/11.svg +8 -0
  238. package/public/avatar/preview/details/12.svg +8 -0
  239. package/public/avatar/preview/details/13.svg +5 -0
  240. package/public/avatar/preview/details/2.svg +6 -0
  241. package/public/avatar/preview/details/3.svg +6 -0
  242. package/public/avatar/preview/details/4.svg +6 -0
  243. package/public/avatar/preview/details/5.svg +9 -0
  244. package/public/avatar/preview/details/6.svg +6 -0
  245. package/public/avatar/preview/details/7.svg +7 -0
  246. package/public/avatar/preview/details/8.svg +7 -0
  247. package/public/avatar/preview/details/9.svg +6 -0
  248. package/public/avatar/preview/eyebrows/0.svg +9 -0
  249. package/public/avatar/preview/eyebrows/1.svg +9 -0
  250. package/public/avatar/preview/eyebrows/10.svg +6 -0
  251. package/public/avatar/preview/eyebrows/11.svg +8 -0
  252. package/public/avatar/preview/eyebrows/12.svg +8 -0
  253. package/public/avatar/preview/eyebrows/13.svg +8 -0
  254. package/public/avatar/preview/eyebrows/14.svg +8 -0
  255. package/public/avatar/preview/eyebrows/15.svg +8 -0
  256. package/public/avatar/preview/eyebrows/2.svg +6 -0
  257. package/public/avatar/preview/eyebrows/3.svg +9 -0
  258. package/public/avatar/preview/eyebrows/4.svg +9 -0
  259. package/public/avatar/preview/eyebrows/5.svg +9 -0
  260. package/public/avatar/preview/eyebrows/6.svg +6 -0
  261. package/public/avatar/preview/eyebrows/7.svg +9 -0
  262. package/public/avatar/preview/eyebrows/8.svg +9 -0
  263. package/public/avatar/preview/eyebrows/9.svg +9 -0
  264. package/public/avatar/preview/eyes/0.svg +6 -0
  265. package/public/avatar/preview/eyes/1.svg +12 -0
  266. package/public/avatar/preview/eyes/10.svg +15 -0
  267. package/public/avatar/preview/eyes/11.svg +8 -0
  268. package/public/avatar/preview/eyes/12.svg +8 -0
  269. package/public/avatar/preview/eyes/13.svg +24 -0
  270. package/public/avatar/preview/eyes/2.svg +6 -0
  271. package/public/avatar/preview/eyes/3.svg +9 -0
  272. package/public/avatar/preview/eyes/4.svg +6 -0
  273. package/public/avatar/preview/eyes/5.svg +17 -0
  274. package/public/avatar/preview/eyes/6.svg +11 -0
  275. package/public/avatar/preview/eyes/7.svg +6 -0
  276. package/public/avatar/preview/eyes/8.svg +6 -0
  277. package/public/avatar/preview/eyes/9.svg +6 -0
  278. package/public/avatar/preview/face/0.svg +6 -0
  279. package/public/avatar/preview/face/1.svg +6 -0
  280. package/public/avatar/preview/face/10.svg +6 -0
  281. package/public/avatar/preview/face/11.svg +6 -0
  282. package/public/avatar/preview/face/12.svg +8 -0
  283. package/public/avatar/preview/face/13.svg +8 -0
  284. package/public/avatar/preview/face/14.svg +8 -0
  285. package/public/avatar/preview/face/15.svg +8 -0
  286. package/public/avatar/preview/face/2.svg +6 -0
  287. package/public/avatar/preview/face/3.svg +6 -0
  288. package/public/avatar/preview/face/4.svg +6 -0
  289. package/public/avatar/preview/face/5.svg +6 -0
  290. package/public/avatar/preview/face/6.svg +6 -0
  291. package/public/avatar/preview/face/7.svg +6 -0
  292. package/public/avatar/preview/face/8.svg +6 -0
  293. package/public/avatar/preview/face/9.svg +6 -0
  294. package/public/avatar/preview/glasses/0.svg +4 -0
  295. package/public/avatar/preview/glasses/1.svg +11 -0
  296. package/public/avatar/preview/glasses/10.svg +12 -0
  297. package/public/avatar/preview/glasses/11.svg +11 -0
  298. package/public/avatar/preview/glasses/12.svg +18 -0
  299. package/public/avatar/preview/glasses/13.svg +29 -0
  300. package/public/avatar/preview/glasses/14.svg +11 -0
  301. package/public/avatar/preview/glasses/2.svg +6 -0
  302. package/public/avatar/preview/glasses/3.svg +12 -0
  303. package/public/avatar/preview/glasses/4.svg +9 -0
  304. package/public/avatar/preview/glasses/5.svg +11 -0
  305. package/public/avatar/preview/glasses/6.svg +9 -0
  306. package/public/avatar/preview/glasses/7.svg +9 -0
  307. package/public/avatar/preview/glasses/8.svg +12 -0
  308. package/public/avatar/preview/glasses/9.svg +9 -0
  309. package/public/avatar/preview/hair/0.svg +4 -0
  310. package/public/avatar/preview/hair/1.svg +6 -0
  311. package/public/avatar/preview/hair/10.svg +6 -0
  312. package/public/avatar/preview/hair/11.svg +6 -0
  313. package/public/avatar/preview/hair/12.svg +6 -0
  314. package/public/avatar/preview/hair/13.svg +17 -0
  315. package/public/avatar/preview/hair/14.svg +6 -0
  316. package/public/avatar/preview/hair/15.svg +6 -0
  317. package/public/avatar/preview/hair/16.svg +6 -0
  318. package/public/avatar/preview/hair/17.svg +6 -0
  319. package/public/avatar/preview/hair/18.svg +6 -0
  320. package/public/avatar/preview/hair/19.svg +6 -0
  321. package/public/avatar/preview/hair/2.svg +6 -0
  322. package/public/avatar/preview/hair/20.svg +6 -0
  323. package/public/avatar/preview/hair/21.svg +6 -0
  324. package/public/avatar/preview/hair/22.svg +6 -0
  325. package/public/avatar/preview/hair/23.svg +6 -0
  326. package/public/avatar/preview/hair/24.svg +6 -0
  327. package/public/avatar/preview/hair/25.svg +6 -0
  328. package/public/avatar/preview/hair/26.svg +6 -0
  329. package/public/avatar/preview/hair/27.svg +6 -0
  330. package/public/avatar/preview/hair/28.svg +6 -0
  331. package/public/avatar/preview/hair/29.svg +6 -0
  332. package/public/avatar/preview/hair/3.svg +6 -0
  333. package/public/avatar/preview/hair/30.svg +6 -0
  334. package/public/avatar/preview/hair/31.svg +5 -0
  335. package/public/avatar/preview/hair/32.svg +5 -0
  336. package/public/avatar/preview/hair/33.svg +5 -0
  337. package/public/avatar/preview/hair/34.svg +8 -0
  338. package/public/avatar/preview/hair/35.svg +5 -0
  339. package/public/avatar/preview/hair/36.svg +5 -0
  340. package/public/avatar/preview/hair/37.svg +5 -0
  341. package/public/avatar/preview/hair/38.svg +5 -0
  342. package/public/avatar/preview/hair/39.svg +5 -0
  343. package/public/avatar/preview/hair/4.svg +6 -0
  344. package/public/avatar/preview/hair/40.svg +5 -0
  345. package/public/avatar/preview/hair/41.svg +8 -0
  346. package/public/avatar/preview/hair/42.svg +5 -0
  347. package/public/avatar/preview/hair/43.svg +5 -0
  348. package/public/avatar/preview/hair/44.svg +5 -0
  349. package/public/avatar/preview/hair/45.svg +5 -0
  350. package/public/avatar/preview/hair/46.svg +5 -0
  351. package/public/avatar/preview/hair/47.svg +5 -0
  352. package/public/avatar/preview/hair/48.svg +5 -0
  353. package/public/avatar/preview/hair/49.svg +5 -0
  354. package/public/avatar/preview/hair/5.svg +6 -0
  355. package/public/avatar/preview/hair/50.svg +5 -0
  356. package/public/avatar/preview/hair/51.svg +5 -0
  357. package/public/avatar/preview/hair/52.svg +5 -0
  358. package/public/avatar/preview/hair/53.svg +5 -0
  359. package/public/avatar/preview/hair/54.svg +5 -0
  360. package/public/avatar/preview/hair/55.svg +5 -0
  361. package/public/avatar/preview/hair/56.svg +5 -0
  362. package/public/avatar/preview/hair/57.svg +5 -0
  363. package/public/avatar/preview/hair/58.svg +5 -0
  364. package/public/avatar/preview/hair/6.svg +6 -0
  365. package/public/avatar/preview/hair/7.svg +6 -0
  366. package/public/avatar/preview/hair/8.svg +6 -0
  367. package/public/avatar/preview/hair/9.svg +6 -0
  368. package/public/avatar/preview/mouth/0.svg +6 -0
  369. package/public/avatar/preview/mouth/1.svg +6 -0
  370. package/public/avatar/preview/mouth/10.svg +6 -0
  371. package/public/avatar/preview/mouth/11.svg +5 -0
  372. package/public/avatar/preview/mouth/12.svg +8 -0
  373. package/public/avatar/preview/mouth/13.svg +10 -0
  374. package/public/avatar/preview/mouth/14.svg +8 -0
  375. package/public/avatar/preview/mouth/15.svg +9 -0
  376. package/public/avatar/preview/mouth/16.svg +8 -0
  377. package/public/avatar/preview/mouth/17.svg +10 -0
  378. package/public/avatar/preview/mouth/18.svg +8 -0
  379. package/public/avatar/preview/mouth/19.svg +8 -0
  380. package/public/avatar/preview/mouth/2.svg +6 -0
  381. package/public/avatar/preview/mouth/3.svg +10 -0
  382. package/public/avatar/preview/mouth/4.svg +6 -0
  383. package/public/avatar/preview/mouth/5.svg +6 -0
  384. package/public/avatar/preview/mouth/6.svg +6 -0
  385. package/public/avatar/preview/mouth/7.svg +6 -0
  386. package/public/avatar/preview/mouth/8.svg +9 -0
  387. package/public/avatar/preview/mouth/9.svg +6 -0
  388. package/public/avatar/preview/nose/0.svg +6 -0
  389. package/public/avatar/preview/nose/1.svg +6 -0
  390. package/public/avatar/preview/nose/10.svg +6 -0
  391. package/public/avatar/preview/nose/11.svg +5 -0
  392. package/public/avatar/preview/nose/12.svg +5 -0
  393. package/public/avatar/preview/nose/13.svg +5 -0
  394. package/public/avatar/preview/nose/2.svg +6 -0
  395. package/public/avatar/preview/nose/3.svg +6 -0
  396. package/public/avatar/preview/nose/4.svg +6 -0
  397. package/public/avatar/preview/nose/5.svg +6 -0
  398. package/public/avatar/preview/nose/6.svg +6 -0
  399. package/public/avatar/preview/nose/7.svg +6 -0
  400. package/public/avatar/preview/nose/8.svg +6 -0
  401. package/public/avatar/preview/nose/9.svg +6 -0
  402. package/public/downloads/allblue-sketch-meaxure-plugin.zip +0 -0
  403. package/public/file.svg +1 -0
  404. package/public/fonts/NGSwv5HMAFg6IuGlBNMjxLsD8ah8QA.woff2 +0 -0
  405. package/public/fonts/NGSwv5HMAFg6IuGlBNMjxLsE8ah8QA.woff2 +0 -0
  406. package/public/fonts/NGSwv5HMAFg6IuGlBNMjxLsH8ag.woff2 +0 -0
  407. package/public/fonts/NGSwv5HMAFg6IuGlBNMjxLsI8ah8QA.woff2 +0 -0
  408. package/public/fonts/NGSwv5HMAFg6IuGlBNMjxLsJ8ah8QA.woff2 +0 -0
  409. package/public/fonts/NGSwv5HMAFg6IuGlBNMjxLsK8ah8QA.woff2 +0 -0
  410. package/public/fonts/NGSwv5HMAFg6IuGlBNMjxLsL8ah8QA.woff2 +0 -0
  411. package/public/fonts/NGSyv5HMAFg6IuGlBNMjxLsCwa5kRFe9.woff2 +0 -0
  412. package/public/fonts/NGSyv5HMAFg6IuGlBNMjxLsCwaRkRFe9.woff2 +0 -0
  413. package/public/fonts/NGSyv5HMAFg6IuGlBNMjxLsCwaVkRFe9.woff2 +0 -0
  414. package/public/fonts/NGSyv5HMAFg6IuGlBNMjxLsCwaZkRFe9.woff2 +0 -0
  415. package/public/fonts/NGSyv5HMAFg6IuGlBNMjxLsCwadkRFe9.woff2 +0 -0
  416. package/public/fonts/NGSyv5HMAFg6IuGlBNMjxLsCwalkRFe9.woff2 +0 -0
  417. package/public/fonts/NGSyv5HMAFg6IuGlBNMjxLsCwapkRA.woff2 +0 -0
  418. package/public/fonts/fonts.css +145 -0
  419. package/public/fonts/jizBRFtNs2ka5fXjeivQ4LroWlx-6zUTjg.woff2 +0 -0
  420. package/public/fonts/jizBRFtNs2ka5fXjeivQ4LroWlx-6zsTjmbI.woff2 +0 -0
  421. package/public/fonts/jizHRFtNs2ka5fXjeivQ4LroWlx-6zAjgn7MsNo.woff2 +0 -0
  422. package/public/fonts/jizHRFtNs2ka5fXjeivQ4LroWlx-6zAjjH7M.woff2 +0 -0
  423. package/public/globe.svg +1 -0
  424. package/public/icons/github-dark.svg +3 -0
  425. package/public/icons/github-line-dark.svg +1 -0
  426. package/public/icons/github-line.svg +1 -0
  427. package/public/icons/github.svg +3 -0
  428. package/public/next.svg +1 -0
  429. package/public/vercel.svg +1 -0
  430. package/public/window.svg +1 -0
  431. package/src/__tests__/components/auth/auth-brand-panel.test.tsx +49 -0
  432. package/src/__tests__/components/auth/auth-header.test.tsx +45 -0
  433. package/src/__tests__/components/auth/auth-layout.test.tsx +42 -0
  434. package/src/__tests__/components/auth/icon-input.test.tsx +38 -0
  435. package/src/__tests__/components/auth/oauth-section.test.tsx +51 -0
  436. package/src/__tests__/components/auth/password-input.test.tsx +49 -0
  437. package/src/__tests__/components/pages/dashboard.test.ts +29 -0
  438. package/src/__tests__/components/reference-inline.test.tsx +42 -0
  439. package/src/__tests__/knowledge-public/canonical-id.test.ts +67 -0
  440. package/src/__tests__/knowledge-public/favicon.test.ts +59 -0
  441. package/src/__tests__/knowledge-public/github-sync.test.ts +67 -0
  442. package/src/__tests__/knowledge-public/share-merge.test.ts +92 -0
  443. package/src/__tests__/setup.ts +32 -0
  444. package/src/__tests__/story-view.test.ts +148 -0
  445. package/src/__tests__/tag-badge.test.tsx +41 -0
  446. package/src/assets/logo/logo.tsx +53 -0
  447. package/src/components/agents/agent-card.tsx +127 -0
  448. package/src/components/agents/agent-form-dialog.tsx +404 -0
  449. package/src/components/agents/agent-selector.tsx +64 -0
  450. package/src/components/agents/agents-page.tsx +266 -0
  451. package/src/components/agents/schemas/agent-form.ts +24 -0
  452. package/src/components/agents/skill-card.tsx +64 -0
  453. package/src/components/agents/skill-form-dialog.tsx +148 -0
  454. package/src/components/agents/slash-skill-menu.tsx +71 -0
  455. package/src/components/agents/use-agent-handlers.ts +24 -0
  456. package/src/components/ai/ai-chat-prompt.tsx +179 -0
  457. package/src/components/ai/global-chat-panel.tsx +138 -0
  458. package/src/components/ai/use-knowledge-bases.ts +41 -0
  459. package/src/components/ai/use-selected-model.ts +41 -0
  460. package/src/components/animated-icons/bell.tsx +110 -0
  461. package/src/components/animated-icons/book-open-text.tsx +132 -0
  462. package/src/components/animated-icons/brain.tsx +209 -0
  463. package/src/components/animated-icons/briefcase-business.tsx +124 -0
  464. package/src/components/animated-icons/cart.tsx +114 -0
  465. package/src/components/animated-icons/compass.tsx +115 -0
  466. package/src/components/animated-icons/contrast.tsx +117 -0
  467. package/src/components/animated-icons/cursor-click.tsx +163 -0
  468. package/src/components/animated-icons/earth.tsx +174 -0
  469. package/src/components/animated-icons/file-text.tsx +176 -0
  470. package/src/components/animated-icons/flask.tsx +137 -0
  471. package/src/components/animated-icons/folder-kanban.tsx +128 -0
  472. package/src/components/animated-icons/graduation-cap.tsx +142 -0
  473. package/src/components/animated-icons/heart-pulse.tsx +153 -0
  474. package/src/components/animated-icons/heart.tsx +107 -0
  475. package/src/components/animated-icons/layers.tsx +130 -0
  476. package/src/components/animated-icons/layout-grid.tsx +174 -0
  477. package/src/components/animated-icons/layout-panel-top.tsx +1 -0
  478. package/src/components/animated-icons/message-square.tsx +124 -0
  479. package/src/components/animated-icons/pen-tool.tsx +131 -0
  480. package/src/components/animated-icons/rocket.tsx +147 -0
  481. package/src/components/animated-icons/search.tsx +111 -0
  482. package/src/components/animated-icons/settings.tsx +109 -0
  483. package/src/components/animated-icons/shield-check.tsx +126 -0
  484. package/src/components/animated-icons/smile.tsx +180 -0
  485. package/src/components/animated-icons/sparkles.tsx +165 -0
  486. package/src/components/animated-icons/terminal.tsx +120 -0
  487. package/src/components/animated-icons/user.tsx +136 -0
  488. package/src/components/animated-icons/users.tsx +130 -0
  489. package/src/components/animated-icons/workflow.tsx +144 -0
  490. package/src/components/animated-icons/zap.tsx +122 -0
  491. package/src/components/anyhub/anyhub-app-card.tsx +154 -0
  492. package/src/components/anyhub/anyhub-app-runner.tsx +92 -0
  493. package/src/components/anyhub/anyhub-install-dialog.tsx +128 -0
  494. package/src/components/anyhub/anyhub-management-view.tsx +75 -0
  495. package/src/components/anyhub/anyhub-marketplace-view.tsx +151 -0
  496. package/src/components/anyhub/anyhub-permission-panel.tsx +125 -0
  497. package/src/components/anyhub/anyhub-provider.tsx +30 -0
  498. package/src/components/anyhub/anyhub-top-nav.tsx +117 -0
  499. package/src/components/auth/auth-brand-panel.tsx +60 -0
  500. package/src/components/auth/auth-header.tsx +38 -0
  501. package/src/components/auth/auth-layout.tsx +1 -0
  502. package/src/components/auth/auth-providers.tsx +34 -0
  503. package/src/components/auth/icon-input.tsx +46 -0
  504. package/src/components/auth/oauth-section.tsx +59 -0
  505. package/src/components/auth/password-input.tsx +68 -0
  506. package/src/components/auth/session-guard.tsx +47 -0
  507. package/src/components/auth/sso-section.tsx +55 -0
  508. package/src/components/billing/__tests__/feature-gate.test.tsx +65 -0
  509. package/src/components/billing/__tests__/seats-manager.test.tsx +130 -0
  510. package/src/components/billing/__tests__/use-feature.test.tsx +100 -0
  511. package/src/components/billing/__tests__/use-resource.test.tsx +63 -0
  512. package/src/components/billing/billing-panel.tsx +107 -0
  513. package/src/components/billing/checkout-redirect.ts +50 -0
  514. package/src/components/billing/currency-toggle.tsx +67 -0
  515. package/src/components/billing/feature-gate.tsx +70 -0
  516. package/src/components/billing/invoice-history.tsx +85 -0
  517. package/src/components/billing/login-prompt-dialog.tsx +89 -0
  518. package/src/components/billing/pricing-card.tsx +81 -0
  519. package/src/components/billing/pricing-page.tsx +54 -0
  520. package/src/components/billing/seats-manager.tsx +177 -0
  521. package/src/components/billing/subscription-card.tsx +100 -0
  522. package/src/components/billing/subscription-provider.tsx +111 -0
  523. package/src/components/billing/upgrade-prompt.tsx +49 -0
  524. package/src/components/billing/use-feature.ts +29 -0
  525. package/src/components/billing/use-resource.ts +47 -0
  526. package/src/components/chat/__tests__/ai-conversation.test.tsx +79 -0
  527. package/src/components/chat/ai-chat-history/components/conversation-group.tsx +97 -0
  528. package/src/components/chat/ai-chat-history/components/conversation-header.tsx +59 -0
  529. package/src/components/chat/ai-chat-history/components/conversation-item.tsx +282 -0
  530. package/src/components/chat/ai-chat-history/components/conversation-search.tsx +65 -0
  531. package/src/components/chat/ai-chat-history/components/empty-state.tsx +64 -0
  532. package/src/components/chat/ai-chat-history/index.tsx +209 -0
  533. package/src/components/chat/ai-chat-history/types.ts +40 -0
  534. package/src/components/chat/ai-chat-history/utils/group-conversations.ts +76 -0
  535. package/src/components/chat/ai-chat-history.tsx +19 -0
  536. package/src/components/chat/ai-citations/components/citation-item.tsx +182 -0
  537. package/src/components/chat/ai-citations/components/citations-list.tsx +151 -0
  538. package/src/components/chat/ai-citations/components/inline-citation.tsx +38 -0
  539. package/src/components/chat/ai-citations/components/source-components.tsx +256 -0
  540. package/src/components/chat/ai-citations/index.tsx +83 -0
  541. package/src/components/chat/ai-citations/types.ts +42 -0
  542. package/src/components/chat/ai-citations/utils.ts +59 -0
  543. package/src/components/chat/ai-citations.tsx +20 -0
  544. package/src/components/chat/ai-conversation.tsx +334 -0
  545. package/src/components/chat/ai-message/components/code-block.tsx +174 -0
  546. package/src/components/chat/ai-message/components/markdown-content.tsx +105 -0
  547. package/src/components/chat/ai-message/components/message-actions.tsx +129 -0
  548. package/src/components/chat/ai-message/components/streaming-indicator.tsx +37 -0
  549. package/src/components/chat/ai-message/hooks/use-streaming-text.ts +73 -0
  550. package/src/components/chat/ai-message/index.tsx +128 -0
  551. package/src/components/chat/ai-message/types.ts +25 -0
  552. package/src/components/chat/ai-message/utils/dom-utils.ts +73 -0
  553. package/src/components/chat/ai-message.tsx +19 -0
  554. package/src/components/chat/ai-prompt-input/components/action-buttons.tsx +206 -0
  555. package/src/components/chat/ai-prompt-input/components/agent-mode-select.tsx +51 -0
  556. package/src/components/chat/ai-prompt-input/components/context-badge.tsx +64 -0
  557. package/src/components/chat/ai-prompt-input/components/kb-context-selector.tsx +189 -0
  558. package/src/components/chat/ai-prompt-input/components/model-select.tsx +124 -0
  559. package/src/components/chat/ai-prompt-input/components/page-user-context-selector.tsx +190 -0
  560. package/src/components/chat/ai-prompt-input/constants.tsx +57 -0
  561. package/src/components/chat/ai-prompt-input/index.tsx +346 -0
  562. package/src/components/chat/ai-prompt-input/types.ts +38 -0
  563. package/src/components/chat/ai-prompt-input.tsx +20 -0
  564. package/src/components/chat/ai-thinking.tsx +227 -0
  565. package/src/components/chat/chat-thread-page.tsx +165 -0
  566. package/src/components/chat/interrupt-approval.tsx +122 -0
  567. package/src/components/command-palette.tsx +172 -0
  568. package/src/components/design/artboard-grid.tsx +64 -0
  569. package/src/components/design/project-card.tsx +64 -0
  570. package/src/components/design/sketch/canvas-preview.tsx +151 -0
  571. package/src/components/design/sketch/code-preview.tsx +81 -0
  572. package/src/components/design/sketch/export-panel.tsx +74 -0
  573. package/src/components/design/sketch/layer-tree.tsx +106 -0
  574. package/src/components/design/sketch/property-panel.tsx +120 -0
  575. package/src/components/design/sketch/spacing-calculator.ts +46 -0
  576. package/src/components/forms/app-array-field.tsx +92 -0
  577. package/src/components/forms/app-checkbox.tsx +60 -0
  578. package/src/components/forms/app-combobox.tsx +108 -0
  579. package/src/components/forms/app-date-picker.tsx +79 -0
  580. package/src/components/forms/app-field-error.tsx +27 -0
  581. package/src/components/forms/app-field.tsx +80 -0
  582. package/src/components/forms/app-form-dialog.tsx +115 -0
  583. package/src/components/forms/app-input.tsx +64 -0
  584. package/src/components/forms/app-section.tsx +39 -0
  585. package/src/components/forms/app-select.tsx +83 -0
  586. package/src/components/forms/app-submit.tsx +65 -0
  587. package/src/components/forms/app-switch.tsx +60 -0
  588. package/src/components/forms/app-textarea.tsx +64 -0
  589. package/src/components/forms/hooks/use-form-submit.ts +55 -0
  590. package/src/components/forms/index.ts +31 -0
  591. package/src/components/forms/schemas/common.ts +28 -0
  592. package/src/components/forms/types.ts +34 -0
  593. package/src/components/hotkeys/shortcut-badge.tsx +48 -0
  594. package/src/components/hotkeys/shortcuts-panel.tsx +91 -0
  595. package/src/components/kibo-ui/contribution-graph/index.tsx +534 -0
  596. package/src/components/knowledge/dialog/knowledge-form-dialog.tsx +184 -0
  597. package/src/components/knowledge/doc-properties.tsx +190 -0
  598. package/src/components/knowledge/editor/doc-header.tsx +243 -0
  599. package/src/components/knowledge/editor/editor-width-context.tsx +56 -0
  600. package/src/components/knowledge/editor/knowledge-doc-editor.tsx +308 -0
  601. package/src/components/knowledge/knowledge-homepage.tsx +99 -0
  602. package/src/components/knowledge/knowledge-icon.tsx +38 -0
  603. package/src/components/knowledge/knowledge-settings-panel.tsx +148 -0
  604. package/src/components/knowledge/knowledge-tag-input.tsx +87 -0
  605. package/src/components/knowledge/knowledge-toolbar.tsx +521 -0
  606. package/src/components/knowledge/knowledge-tree-item.tsx +342 -0
  607. package/src/components/knowledge/knowledge-tree.tsx +235 -0
  608. package/src/components/knowledge/schemas/knowledge-form.ts +26 -0
  609. package/src/components/knowledge-public/bookmark-card.tsx +254 -0
  610. package/src/components/knowledge-public/bookmark-form-dialog.tsx +259 -0
  611. package/src/components/knowledge-public/category-icon.tsx +66 -0
  612. package/src/components/knowledge-public/chip-utils.ts +24 -0
  613. package/src/components/knowledge-public/knowledge-card-grid.tsx +26 -0
  614. package/src/components/knowledge-public/knowledge-card.tsx +105 -0
  615. package/src/components/knowledge-public/knowledge-filters.tsx +77 -0
  616. package/src/components/knowledge-public/knowledge-form-dialog.tsx +524 -0
  617. package/src/components/knowledge-public/knowledge-search-bar.tsx +46 -0
  618. package/src/components/knowledge-public/legal-compliance-editor.tsx +290 -0
  619. package/src/components/knowledge-public/markdown-editor.tsx +59 -0
  620. package/src/components/knowledge-public/markdown-view.tsx +30 -0
  621. package/src/components/knowledge-public/sharers-avatar-group.tsx +81 -0
  622. package/src/components/knowledge-public/tag-filter.tsx +53 -0
  623. package/src/components/layout/sidebar-03/__tests__/nav-workspace.test.tsx +156 -0
  624. package/src/components/layout/sidebar-03/app-sidebar.tsx +109 -0
  625. package/src/components/layout/sidebar-03/index.tsx +64 -0
  626. package/src/components/layout/sidebar-03/logo.tsx +41 -0
  627. package/src/components/layout/sidebar-03/nav-anyhub.tsx +150 -0
  628. package/src/components/layout/sidebar-03/nav-knowledge.tsx +321 -0
  629. package/src/components/layout/sidebar-03/nav-main.tsx +256 -0
  630. package/src/components/layout/sidebar-03/nav-notifications.tsx +78 -0
  631. package/src/components/layout/sidebar-03/nav-workspace.tsx +160 -0
  632. package/src/components/layout/sidebar-03/sidebar-search-trigger.tsx +63 -0
  633. package/src/components/layout/sidebar-03/team-switcher.tsx +114 -0
  634. package/src/components/layout/sidebar-03/user-menu.tsx +188 -0
  635. package/src/components/magicui/animated-gradient-text.tsx +54 -0
  636. package/src/components/magicui/animated-grid-pattern.tsx +192 -0
  637. package/src/components/magicui/animated-theme-toggler.tsx +1 -0
  638. package/src/components/magicui/aurora-text.tsx +58 -0
  639. package/src/components/magicui/components/animate/avatar-group.tsx +85 -0
  640. package/src/components/magicui/dot-pattern.tsx +173 -0
  641. package/src/components/magicui/flickering-grid.tsx +213 -0
  642. package/src/components/magicui/glyph-matrix.tsx +176 -0
  643. package/src/components/magicui/grid-pattern.tsx +1 -0
  644. package/src/components/magicui/hexagon-pattern.tsx +328 -0
  645. package/src/components/magicui/interactive-grid-pattern.tsx +118 -0
  646. package/src/components/magicui/interactive-hover-button.tsx +47 -0
  647. package/src/components/magicui/light-rays.tsx +164 -0
  648. package/src/components/magicui/primitives/animate/avatar-group.tsx +160 -0
  649. package/src/components/magicui/primitives/animate/slot.tsx +112 -0
  650. package/src/components/magicui/primitives/animate/tooltip.tsx +590 -0
  651. package/src/components/magicui/rainbow-button.tsx +78 -0
  652. package/src/components/magicui/sparkles-text.tsx +166 -0
  653. package/src/components/magicui/striped-pattern.tsx +67 -0
  654. package/src/components/magicui/word-rotate.tsx +64 -0
  655. package/src/components/mindmap/mindmap-doc-editor.tsx +181 -0
  656. package/src/components/plugin-slots/__tests__/plugin-nav-items.test.tsx +16 -0
  657. package/src/components/plugin-slots/__tests__/plugin-settings-tabs.test.tsx +30 -0
  658. package/src/components/plugin-slots/plugin-nav-items.tsx +12 -0
  659. package/src/components/plugin-slots/plugin-settings-tabs.tsx +30 -0
  660. package/src/components/plugin-slots/plugin-widgets.tsx +13 -0
  661. package/src/components/project/create-project-dialog.tsx +258 -0
  662. package/src/components/project/invite-member-dialog.tsx +229 -0
  663. package/src/components/project/project-activity-list.tsx +114 -0
  664. package/src/components/project/project-animated-icon.tsx +73 -0
  665. package/src/components/project/project-icon.tsx +38 -0
  666. package/src/components/project/project-member-manager.tsx +251 -0
  667. package/src/components/project/project-module-card.tsx +67 -0
  668. package/src/components/project/schemas/create-project.ts +31 -0
  669. package/src/components/react-bits/light-rays.css +9 -0
  670. package/src/components/react-bits/light-rays.jsx +399 -0
  671. package/src/components/react-bits/liquid-ether.css +7 -0
  672. package/src/components/react-bits/liquid-ether.jsx +1168 -0
  673. package/src/components/settings/ai/api-key-field.tsx +141 -0
  674. package/src/components/settings/ai/create-custom-model-dialog.tsx +267 -0
  675. package/src/components/settings/ai/model-card.tsx +203 -0
  676. package/src/components/settings/ai/model-manager.tsx +353 -0
  677. package/src/components/settings/ai/provider-card.tsx +130 -0
  678. package/src/components/settings/ai/provider-detail-form.tsx +418 -0
  679. package/src/components/settings/ai/provider-grid.tsx +157 -0
  680. package/src/components/settings/ai/provider-icon.tsx +43 -0
  681. package/src/components/settings/ai/provider-logo.tsx +90 -0
  682. package/src/components/settings/ai/schemas/provider-detail.ts +25 -0
  683. package/src/components/settings/language-selector.tsx +49 -0
  684. package/src/components/settings/personal-team/account/account-client.tsx +135 -0
  685. package/src/components/settings/personal-team/account/avatar/avatar-config.ts +80 -0
  686. package/src/components/settings/personal-team/account/avatar/notion-avatar-editor.tsx +454 -0
  687. package/src/components/settings/personal-team/account/avatar/notion-avatar.tsx +20 -0
  688. package/src/components/settings/personal-team/account/settings-profile.tsx +530 -0
  689. package/src/components/settings/personal-team/team/team-client.tsx +431 -0
  690. package/src/components/settings/personal-team/team/team-invitations.tsx +552 -0
  691. package/src/components/settings/personal-team/team/team-member-list.tsx +468 -0
  692. package/src/components/shadcn-space/animations/marquee.tsx +139 -0
  693. package/src/components/shadcn-space/blocks/about-us-01/about-us.tsx +136 -0
  694. package/src/components/shadcn-space/blocks/about-us-01/index.tsx +62 -0
  695. package/src/components/shadcn-space/blocks/cta-01/cta.tsx +74 -0
  696. package/src/components/shadcn-space/blocks/faq-01/faq.tsx +100 -0
  697. package/src/components/shadcn-space/blocks/footer-01/footer.tsx +232 -0
  698. package/src/components/shadcn-space/blocks/hero-01/brand-slider.tsx +79 -0
  699. package/src/components/shadcn-space/blocks/hero-01/header.tsx +255 -0
  700. package/src/components/shadcn-space/blocks/hero-01/hero.tsx +111 -0
  701. package/src/components/shadcn-space/blocks/hero-01/index.tsx +127 -0
  702. package/src/components/shadcn-space/blocks/portfolio-01/portfolio.tsx +149 -0
  703. package/src/components/shadcn-space/blocks/pricing-01/pricing.tsx +189 -0
  704. package/src/components/shadcn-space/blocks/pricing-02/pricing.tsx +213 -0
  705. package/src/components/shadcn-space/blocks/services-01/services.tsx +178 -0
  706. package/src/components/shadcn-space/blocks/team-01/team.tsx +166 -0
  707. package/src/components/share/prd/prd-share-client.tsx +1 -0
  708. package/src/components/share/prd/share-annotation-overlay.tsx +1 -0
  709. package/src/components/share/prd/share-comment-panel.tsx +1 -0
  710. package/src/components/share/prd/share-comment-review-panel.tsx +1 -0
  711. package/src/components/share/prd/share-directory-tree.tsx +1 -0
  712. package/src/components/share/prd/share-doc-view.tsx +1 -0
  713. package/src/components/share/prd/share-layout.tsx +1 -0
  714. package/src/components/share/prd/share-nav-bar.tsx +1 -0
  715. package/src/components/share/prd/share-password-gate.tsx +1 -0
  716. package/src/components/share/prd/share-prototype-view.tsx +1 -0
  717. package/src/components/share/prd/share-review-panel.tsx +1 -0
  718. package/src/components/share/prd/share-sse-listener.tsx +1 -0
  719. package/src/components/share/prd/share-theme-toggle.tsx +1 -0
  720. package/src/components/share/prd/version-share-client.tsx +1 -0
  721. package/src/components/shared/component-preview.tsx +18 -0
  722. package/src/components/shared/contribution-graph-tooltip.tsx +104 -0
  723. package/src/components/shared/icon-packs/index.ts +1 -0
  724. package/src/components/shared/icon-packs/knowledge.ts +1 -0
  725. package/src/components/shared/icon-packs/prd.ts +1 -0
  726. package/src/components/shared/icon-packs/project.ts +1 -0
  727. package/src/components/shared/icon-picker.tsx +1 -0
  728. package/src/components/shared/language-switcher.tsx +67 -0
  729. package/src/components/shared/name-confirm-dialog.tsx +1 -0
  730. package/src/components/shared/nav-float-button.tsx +1 -0
  731. package/src/components/shared/placeholder-page.tsx +1 -0
  732. package/src/components/shared/theme-toggle.tsx +59 -0
  733. package/src/components/shared/timezone-bootstrap.tsx +52 -0
  734. package/src/components/shared/timezone-select.tsx +132 -0
  735. package/src/components/shared/translator-text.tsx +71 -0
  736. package/src/components/story/ai/__tests__/action-registry.test.ts +110 -0
  737. package/src/components/story/ai/__tests__/use-story-ai-model.test.ts +62 -0
  738. package/src/components/story/ai/__tests__/use-toolbar-overflow.test.ts +64 -0
  739. package/src/components/story/ai/action-registry.ts +110 -0
  740. package/src/components/story/ai/handlers/more-popover.tsx +137 -0
  741. package/src/components/story/ai/handlers/stream-text.ts +169 -0
  742. package/src/components/story/ai/prototype-dialog.tsx +156 -0
  743. package/src/components/story/ai/split-dialog.tsx +467 -0
  744. package/src/components/story/ai/story-ai-panel.tsx +413 -0
  745. package/src/components/story/ai/story-ai-preview-list.tsx +182 -0
  746. package/src/components/story/ai/story-ai-toolbar.tsx +290 -0
  747. package/src/components/story/ai/use-story-ai-model.ts +137 -0
  748. package/src/components/story/ai/use-toolbar-overflow.ts +187 -0
  749. package/src/components/story/columns.tsx +197 -0
  750. package/src/components/story/constants.ts +172 -0
  751. package/src/components/story/create-story-dialog.tsx +352 -0
  752. package/src/components/story/detail/__tests__/activity-timeline.test.tsx +151 -0
  753. package/src/components/story/detail/activity-tabs.tsx +92 -0
  754. package/src/components/story/detail/activity-timeline.tsx +540 -0
  755. package/src/components/story/detail/comment-input.tsx +108 -0
  756. package/src/components/story/detail/comment-item.tsx +198 -0
  757. package/src/components/story/detail/comment-thread.tsx +98 -0
  758. package/src/components/story/detail/emoji-picker.tsx +62 -0
  759. package/src/components/story/detail/reaction-bar.tsx +72 -0
  760. package/src/components/story/detail/story-detail-body.tsx +598 -0
  761. package/src/components/story/detail/story-detail-toolbar/attachments.tsx +73 -0
  762. package/src/components/story/detail/story-detail-toolbar/categories.tsx +74 -0
  763. package/src/components/story/detail/story-detail-toolbar/children.tsx +762 -0
  764. package/src/components/story/detail/story-detail-toolbar/dependencies.tsx +73 -0
  765. package/src/components/story/detail/story-detail-toolbar/knowledge.tsx +73 -0
  766. package/src/components/story/detail/story-detail-toolbar/links.tsx +73 -0
  767. package/src/components/story/detail/story-detail-toolbar.tsx +140 -0
  768. package/src/components/story/detail/story-properties.tsx +118 -0
  769. package/src/components/story/display/__tests__/display-dropdown-helpers.test.ts +103 -0
  770. package/src/components/story/display/__tests__/display-dropdown.test.tsx +246 -0
  771. package/src/components/story/display/__tests__/group-resolver.test.ts +97 -0
  772. package/src/components/story/display/__tests__/order-resolver.test.ts +102 -0
  773. package/src/components/story/display/__tests__/use-display-options-search.test.ts +41 -0
  774. package/src/components/story/display/__tests__/use-display-options.test.ts +148 -0
  775. package/src/components/story/display/__tests__/use-grouped-stories.test.ts +72 -0
  776. package/src/components/story/display/__tests__/use-paged-story-groups.test.ts +273 -0
  777. package/src/components/story/display/constants.ts +106 -0
  778. package/src/components/story/display/display-dropdown.tsx +500 -0
  779. package/src/components/story/display/group-fields.ts +52 -0
  780. package/src/components/story/display/group-resolver.tsx +149 -0
  781. package/src/components/story/display/order-resolver.ts +51 -0
  782. package/src/components/story/display/types.ts +85 -0
  783. package/src/components/story/display/use-display-options-search.ts +31 -0
  784. package/src/components/story/display/use-display-options.ts +82 -0
  785. package/src/components/story/display/use-grouped-stories.ts +43 -0
  786. package/src/components/story/display/use-paged-story-groups.ts +362 -0
  787. package/src/components/story/filters/add-filter-dropdown.tsx +71 -0
  788. package/src/components/story/filters/applied-filters.tsx +227 -0
  789. package/src/components/story/filters/filter-condition.tsx +159 -0
  790. package/src/components/story/filters/filter-row.tsx +117 -0
  791. package/src/components/story/filters/filter-toggle.tsx +61 -0
  792. package/src/components/story/filters/filter-types.ts +119 -0
  793. package/src/components/story/filters/filter-value-input.tsx +187 -0
  794. package/src/components/story/filters/index.tsx +22 -0
  795. package/src/components/story/infinite-scroll-sentinel.tsx +75 -0
  796. package/src/components/story/inline-editors/assignee-editor.tsx +179 -0
  797. package/src/components/story/inline-editors/date-editor.tsx +75 -0
  798. package/src/components/story/inline-editors/index.ts +24 -0
  799. package/src/components/story/inline-editors/inline-trigger.tsx +60 -0
  800. package/src/components/story/inline-editors/labels-editor.tsx +119 -0
  801. package/src/components/story/inline-editors/parent-story-editor.tsx +124 -0
  802. package/src/components/story/inline-editors/priority-editor.tsx +120 -0
  803. package/src/components/story/inline-editors/state-editor.tsx +122 -0
  804. package/src/components/story/inline-editors/story-select-dialog.tsx +662 -0
  805. package/src/components/story/inline-editors/title-editor.tsx +43 -0
  806. package/src/components/story/peek-panel.tsx +272 -0
  807. package/src/components/story/priority-icon.tsx +39 -0
  808. package/src/components/story/relation-badge.tsx +57 -0
  809. package/src/components/story/relations/attachments-panel.tsx +179 -0
  810. package/src/components/story/relations/dependency-panel.tsx +190 -0
  811. package/src/components/story/relations/hierarchy-panel.tsx +180 -0
  812. package/src/components/story/relations/knowledge-panel.tsx +284 -0
  813. package/src/components/story/relations/links-panel.tsx +240 -0
  814. package/src/components/story/relations/tab.tsx +212 -0
  815. package/src/components/story/schemas/story-create.ts +34 -0
  816. package/src/components/story/search-popover.tsx +130 -0
  817. package/src/components/story/story-list-table.tsx +172 -0
  818. package/src/components/story/story-list-view.tsx +572 -0
  819. package/src/components/story/story-panel-header.tsx +322 -0
  820. package/src/components/story/story-toolbar.tsx +283 -0
  821. package/src/components/story/transfer-story-popover.tsx +261 -0
  822. package/src/components/story/types.ts +195 -0
  823. package/src/components/story/views/__tests__/use-flat-rows.test.ts +76 -0
  824. package/src/components/story/views/__tests__/view-types.test.ts +87 -0
  825. package/src/components/story/views/calendar-view.tsx +280 -0
  826. package/src/components/story/views/create-view-dialog.tsx +323 -0
  827. package/src/components/story/views/kanban-board.tsx +466 -0
  828. package/src/components/story/views/kanban-card.tsx +102 -0
  829. package/src/components/story/views/story-list/__tests__/batch-toolbar.test.tsx +166 -0
  830. package/src/components/story/views/story-list/__tests__/group-select.test.ts +85 -0
  831. package/src/components/story/views/story-list/__tests__/move.test.ts +66 -0
  832. package/src/components/story/views/story-list/batch-preview-dialog.tsx +485 -0
  833. package/src/components/story/views/story-list/batch-toolbar.tsx +218 -0
  834. package/src/components/story/views/story-list/group-select.ts +50 -0
  835. package/src/components/story/views/story-list/group.tsx +239 -0
  836. package/src/components/story/views/story-list/index.tsx +475 -0
  837. package/src/components/story/views/story-list/inline-story-creator.tsx +114 -0
  838. package/src/components/story/views/story-list/move.ts +55 -0
  839. package/src/components/story/views/story-list/row.tsx +131 -0
  840. package/src/components/story/views/timeline-view.tsx +275 -0
  841. package/src/components/story/views/use-flat-rows.ts +163 -0
  842. package/src/components/story/views/view-list-section.tsx +175 -0
  843. package/src/components/story/views/view-selector-button.tsx +118 -0
  844. package/src/components/story/views/view-switcher.tsx +72 -0
  845. package/src/components/story/views/view-types.ts +133 -0
  846. package/src/components/ui/accordion.tsx +98 -0
  847. package/src/components/ui/alert-dialog.tsx +1 -0
  848. package/src/components/ui/alert.tsx +93 -0
  849. package/src/components/ui/avatar.tsx +129 -0
  850. package/src/components/ui/badge.tsx +1 -0
  851. package/src/components/ui/breadcrumb.tsx +139 -0
  852. package/src/components/ui/button-group.tsx +100 -0
  853. package/src/components/ui/button.tsx +1 -0
  854. package/src/components/ui/calendar.tsx +237 -0
  855. package/src/components/ui/card.tsx +1 -0
  856. package/src/components/ui/checkbox.tsx +1 -0
  857. package/src/components/ui/collapsible.tsx +50 -0
  858. package/src/components/ui/command.tsx +210 -0
  859. package/src/components/ui/context-menu.tsx +1 -0
  860. package/src/components/ui/dialog.tsx +1 -0
  861. package/src/components/ui/dropdown-menu.tsx +1 -0
  862. package/src/components/ui/empty.tsx +1 -0
  863. package/src/components/ui/field.tsx +255 -0
  864. package/src/components/ui/hover-card.tsx +61 -0
  865. package/src/components/ui/input-group.tsx +171 -0
  866. package/src/components/ui/input.tsx +1 -0
  867. package/src/components/ui/item.tsx +213 -0
  868. package/src/components/ui/kbd.tsx +33 -0
  869. package/src/components/ui/label.tsx +1 -0
  870. package/src/components/ui/navigation-menu.tsx +181 -0
  871. package/src/components/ui/popover.tsx +1 -0
  872. package/src/components/ui/progress.tsx +48 -0
  873. package/src/components/ui/radio-group.tsx +59 -0
  874. package/src/components/ui/resizable.tsx +1 -0
  875. package/src/components/ui/safari.tsx +255 -0
  876. package/src/components/ui/scroll-area.tsx +70 -0
  877. package/src/components/ui/select.tsx +1 -0
  878. package/src/components/ui/separator.tsx +45 -0
  879. package/src/components/ui/sheet.tsx +164 -0
  880. package/src/components/ui/sidebar.tsx +1 -0
  881. package/src/components/ui/skeleton.tsx +1 -0
  882. package/src/components/ui/sonner.tsx +1 -0
  883. package/src/components/ui/spinner.tsx +28 -0
  884. package/src/components/ui/switch.tsx +1 -0
  885. package/src/components/ui/table.tsx +133 -0
  886. package/src/components/ui/tabs.tsx +108 -0
  887. package/src/components/ui/textarea.tsx +1 -0
  888. package/src/components/ui/toggle.tsx +64 -0
  889. package/src/components/ui/tooltip.tsx +1 -0
  890. package/src/components/workspace/create-workspace-dialog.tsx +186 -0
  891. package/src/components/workspace/schemas/create-workspace.ts +27 -0
  892. package/src/config/sidebar-notifications.ts +50 -0
  893. package/src/config/sidebar-routes.tsx +104 -0
  894. package/src/config/sidebar-teams.ts +32 -0
  895. package/src/hooks/__tests__/use-commands.test.tsx +74 -0
  896. package/src/hooks/__tests__/use-entity-subscription.test.ts +89 -0
  897. package/src/hooks/use-commands.ts +78 -0
  898. package/src/hooks/use-entity-subscription.ts +39 -0
  899. package/src/hooks/use-mobile.ts +36 -0
  900. package/src/hooks/use-scrolling.ts +94 -0
  901. package/src/hooks/use-throttled-callback.ts +20 -0
  902. package/src/hooks/use-unmount.ts +38 -0
  903. package/src/hooks/usePolling.ts +129 -0
  904. package/src/hooks/useTranslator.ts +80 -0
  905. package/src/i18n/config.ts +20 -0
  906. package/src/lib/__tests__/ai-adapter.test.ts +92 -0
  907. package/src/lib/__tests__/cli-detector.test.ts +80 -0
  908. package/src/lib/__tests__/date-utils.test.ts +86 -0
  909. package/src/lib/__tests__/datetime.test.ts +74 -0
  910. package/src/lib/__tests__/desktop-detect.test.ts +19 -0
  911. package/src/lib/__tests__/desktop-guest.test.ts +28 -0
  912. package/src/lib/__tests__/embedding.test.ts +65 -0
  913. package/src/lib/__tests__/module-registry.test.ts +101 -0
  914. package/src/lib/__tests__/pacer.test.ts +118 -0
  915. package/src/lib/__tests__/pgvector.test.ts +94 -0
  916. package/src/lib/__tests__/project-display-id.test.ts +64 -0
  917. package/src/lib/__tests__/provider-router.test.ts +239 -0
  918. package/src/lib/__tests__/rag.test.ts +100 -0
  919. package/src/lib/__tests__/rate-limit.test.ts +80 -0
  920. package/src/lib/__tests__/sse-transport.test.ts +136 -0
  921. package/src/lib/ai/__tests__/story-ai-stream.test.ts +280 -0
  922. package/src/lib/ai/__tests__/story-jsonl.test.ts +186 -0
  923. package/src/lib/ai/__tests__/story-prompt.test.ts +78 -0
  924. package/src/lib/ai/story-ai-stream.ts +168 -0
  925. package/src/lib/ai/story-jsonl.ts +121 -0
  926. package/src/lib/analytics.ts +79 -0
  927. package/src/lib/annotation-template.ts +1 -0
  928. package/src/lib/anyhub/anyhub-message-bridge.ts +141 -0
  929. package/src/lib/anyhub/anyhub-store.ts +121 -0
  930. package/src/lib/anyhub/capabilities.ts +88 -0
  931. package/src/lib/anyhub/manager.ts +225 -0
  932. package/src/lib/anyhub/manifest.ts +122 -0
  933. package/src/lib/anyhub/permissions.ts +76 -0
  934. package/src/lib/anyhub/proxy.ts +134 -0
  935. package/src/lib/anyhub/types.ts +83 -0
  936. package/src/lib/auth/__tests__/sso-authorize.test.ts +53 -0
  937. package/src/lib/auth/auth-client.ts +1 -0
  938. package/src/lib/auth/auth.config.ts +383 -0
  939. package/src/lib/auth/sso-authorize.ts +47 -0
  940. package/src/lib/avatar.ts +41 -0
  941. package/src/lib/builtin-project.ts +20 -0
  942. package/src/lib/chat-handoff.ts +77 -0
  943. package/src/lib/collections/ai/ai-providers-collection.ts +31 -0
  944. package/src/lib/collections/ai/index.ts +18 -0
  945. package/src/lib/collections/index.ts +24 -0
  946. package/src/lib/collections/knowledge/index.ts +18 -0
  947. package/src/lib/collections/knowledge/knowledge-bases-collection.ts +31 -0
  948. package/src/lib/collections/reference/bookmark-categories-collection.ts +31 -0
  949. package/src/lib/collections/reference/labels-collection.ts +31 -0
  950. package/src/lib/collections/reference/projects-collection.ts +31 -0
  951. package/src/lib/collections/reference/users-brief-collection.ts +31 -0
  952. package/src/lib/collections/reference/workspaces-collection.ts +31 -0
  953. package/src/lib/commands/__tests__/command-palette-state.test.ts +68 -0
  954. package/src/lib/commands/__tests__/registry.test.ts +98 -0
  955. package/src/lib/commands/command-palette-state.ts +56 -0
  956. package/src/lib/commands/registry.ts +49 -0
  957. package/src/lib/commands/types.ts +32 -0
  958. package/src/lib/comment-utils.ts +1 -0
  959. package/src/lib/crypto/__tests__/api-key-cipher.test.ts +72 -0
  960. package/src/lib/crypto/api-key-cipher.ts +1 -0
  961. package/src/lib/date-utils.ts +107 -0
  962. package/src/lib/datetime.ts +6 -0
  963. package/src/lib/deploy-region.ts +21 -0
  964. package/src/lib/desktop-detect.ts +27 -0
  965. package/src/lib/get-strict-context.tsx +53 -0
  966. package/src/lib/github.ts +228 -0
  967. package/src/lib/hotkeys/__tests__/registry.test.ts +46 -0
  968. package/src/lib/hotkeys/registry.ts +109 -0
  969. package/src/lib/hotkeys/types.ts +29 -0
  970. package/src/lib/i18n/client.ts +1 -0
  971. package/src/lib/i18n/config.ts +1 -0
  972. package/src/lib/i18n/detect.ts +1 -0
  973. package/src/lib/i18n/server.ts +1 -0
  974. package/src/lib/i18n/types.ts +1 -0
  975. package/src/lib/openai-client.ts +62 -0
  976. package/src/lib/optimistic/use-optimistic-mutation.ts +63 -0
  977. package/src/lib/outline-utils.ts +1 -0
  978. package/src/lib/pacer.ts +11 -0
  979. package/src/lib/perf.ts +19 -0
  980. package/src/lib/pgvector.ts +22 -0
  981. package/src/lib/prd/__tests__/stack-layout.test.ts +63 -0
  982. package/src/lib/prd/stack-layout.ts +1 -0
  983. package/src/lib/prd-tree-utils.ts +1 -0
  984. package/src/lib/prisma.ts +18 -0
  985. package/src/lib/project-display-id.ts +39 -0
  986. package/src/lib/project-mock.ts +156 -0
  987. package/src/lib/prototype-registry.ts +1 -0
  988. package/src/lib/rag.ts +47 -0
  989. package/src/lib/rate-limit.ts +57 -0
  990. package/src/lib/redis.ts +51 -0
  991. package/src/lib/resource-errors.ts +20 -0
  992. package/src/lib/restore-version.ts +1 -0
  993. package/src/lib/router-context.ts +39 -0
  994. package/src/lib/session.ts +44 -0
  995. package/src/lib/share-events.ts +1 -0
  996. package/src/lib/share-utils.ts +1 -0
  997. package/src/lib/sidebar-utils.ts +1 -0
  998. package/src/lib/sse-transport.ts +78 -0
  999. package/src/lib/stores/index.ts +18 -0
  1000. package/src/lib/stores/prd-canvas-store.ts +1 -0
  1001. package/src/lib/story/__tests__/activity-grouper.test.ts +234 -0
  1002. package/src/lib/story/__tests__/description-diff.test.ts +214 -0
  1003. package/src/lib/story/activity-grouper.ts +173 -0
  1004. package/src/lib/story/description-diff.ts +140 -0
  1005. package/src/lib/tag-colors.ts +1 -0
  1006. package/src/lib/time-format.ts +1 -0
  1007. package/src/lib/utils.ts +18 -0
  1008. package/src/lib/vector-store/__tests__/factory.test.ts +59 -0
  1009. package/src/lib/vector-store/__tests__/sqlite-vec-store.test.ts +143 -0
  1010. package/src/lib/vector-store/__tests__/vector-store.test.ts +50 -0
  1011. package/src/lib/vector-store/index.ts +45 -0
  1012. package/src/lib/vector-store/pg-vector-store.ts +85 -0
  1013. package/src/lib/vector-store/sqlite-vec-store.ts +162 -0
  1014. package/src/lib/vector-store/types.ts +42 -0
  1015. package/src/plugins/.gen-manifest.json +13 -0
  1016. package/src/plugins/.gitkeep +0 -0
  1017. package/src/plugins/modules.gen.ts +20 -0
  1018. package/src/plugins/plugins.gen.ts +20 -0
  1019. package/src/plugins/ui.gen.ts +10 -0
  1020. package/src/providers/index.tsx +86 -0
  1021. package/src/providers/timezone-provider.tsx +1 -0
  1022. package/src/routeTree.gen.ts +2583 -0
  1023. package/src/router.tsx +73 -0
  1024. package/src/routes/__desktop/onboarding/route.lazy.tsx +145 -0
  1025. package/src/routes/__desktop/onboarding/route.tsx +11 -0
  1026. package/src/routes/__root.tsx +153 -0
  1027. package/src/routes/_login/forgot-password/route.lazy.tsx +102 -0
  1028. package/src/routes/_login/forgot-password/route.tsx +20 -0
  1029. package/src/routes/_login/login/route.lazy.tsx +241 -0
  1030. package/src/routes/_login/login/route.tsx +30 -0
  1031. package/src/routes/_login/register/route.lazy.tsx +173 -0
  1032. package/src/routes/_login/register/route.tsx +23 -0
  1033. package/src/routes/_login/reset-password/route.lazy.tsx +116 -0
  1034. package/src/routes/_login/reset-password/route.tsx +23 -0
  1035. package/src/routes/_login/route.tsx +22 -0
  1036. package/src/routes/_login/schemas/-auth.ts +50 -0
  1037. package/src/routes/_nav/acceptance-criteria/route.tsx +28 -0
  1038. package/src/routes/_nav/agents/route.tsx +12 -0
  1039. package/src/routes/_nav/apps/anyhub/$id/route.tsx +28 -0
  1040. package/src/routes/_nav/apps/anyhub/route.tsx +33 -0
  1041. package/src/routes/_nav/apps/route.tsx +22 -0
  1042. package/src/routes/_nav/bugs/route.tsx +24 -0
  1043. package/src/routes/_nav/chat/$threadId.tsx +31 -0
  1044. package/src/routes/_nav/chat/route.lazy.tsx +428 -0
  1045. package/src/routes/_nav/chat/route.tsx +23 -0
  1046. package/src/routes/_nav/dashboard/-components/activity-feed.tsx +63 -0
  1047. package/src/routes/_nav/dashboard/-components/avatar-group.tsx +54 -0
  1048. package/src/routes/_nav/dashboard/-components/quick-actions.tsx +49 -0
  1049. package/src/routes/_nav/dashboard/-components/stats-grid.tsx +54 -0
  1050. package/src/routes/_nav/dashboard/route.lazy.tsx +106 -0
  1051. package/src/routes/_nav/dashboard/route.tsx +39 -0
  1052. package/src/routes/_nav/design/$projectId/$artboardId/route.lazy.tsx +89 -0
  1053. package/src/routes/_nav/design/$projectId/$artboardId/route.tsx +26 -0
  1054. package/src/routes/_nav/design/$projectId/route.lazy.tsx +50 -0
  1055. package/src/routes/_nav/design/$projectId/route.tsx +26 -0
  1056. package/src/routes/_nav/design/index.lazy.tsx +320 -0
  1057. package/src/routes/_nav/design/index.tsx +26 -0
  1058. package/src/routes/_nav/design/route.tsx +22 -0
  1059. package/src/routes/_nav/inspiration/route.tsx +8 -0
  1060. package/src/routes/_nav/knowledge/$kbId/doc/$docId/route.lazy.tsx +76 -0
  1061. package/src/routes/_nav/knowledge/$kbId/doc/$docId/route.tsx +57 -0
  1062. package/src/routes/_nav/knowledge/$kbId/index.lazy.tsx +30 -0
  1063. package/src/routes/_nav/knowledge/$kbId/index.tsx +30 -0
  1064. package/src/routes/_nav/knowledge/$kbId/route.lazy.tsx +190 -0
  1065. package/src/routes/_nav/knowledge/$kbId/route.tsx +92 -0
  1066. package/src/routes/_nav/knowledge/bookmarks/$id.lazy.tsx +286 -0
  1067. package/src/routes/_nav/knowledge/bookmarks/index.lazy.tsx +179 -0
  1068. package/src/routes/_nav/knowledge/bookmarks/route.tsx +20 -0
  1069. package/src/routes/_nav/knowledge/compliance/$id.lazy.tsx +250 -0
  1070. package/src/routes/_nav/knowledge/compliance/edit/$id.lazy.tsx +28 -0
  1071. package/src/routes/_nav/knowledge/compliance/index.lazy.tsx +125 -0
  1072. package/src/routes/_nav/knowledge/compliance/route.tsx +22 -0
  1073. package/src/routes/_nav/knowledge/dictionaries/$id.lazy.tsx +106 -0
  1074. package/src/routes/_nav/knowledge/dictionaries/index.lazy.tsx +108 -0
  1075. package/src/routes/_nav/knowledge/dictionaries/route.tsx +22 -0
  1076. package/src/routes/_nav/knowledge/index.lazy.tsx +115 -0
  1077. package/src/routes/_nav/knowledge/index.tsx +24 -0
  1078. package/src/routes/_nav/knowledge/laws/$id.lazy.tsx +264 -0
  1079. package/src/routes/_nav/knowledge/laws/edit/$id.lazy.tsx +28 -0
  1080. package/src/routes/_nav/knowledge/laws/index.lazy.tsx +115 -0
  1081. package/src/routes/_nav/knowledge/laws/route.tsx +22 -0
  1082. package/src/routes/_nav/knowledge/route.tsx +22 -0
  1083. package/src/routes/_nav/knowledge/summary/index.lazy.tsx +251 -0
  1084. package/src/routes/_nav/knowledge/summary/route.tsx +22 -0
  1085. package/src/routes/_nav/notion-like/route.tsx +28 -0
  1086. package/src/routes/_nav/prd/$id/route.tsx +9 -0
  1087. package/src/routes/_nav/prd/index.tsx +9 -0
  1088. package/src/routes/_nav/prd/route.tsx +8 -0
  1089. package/src/routes/_nav/pricing-02/route.tsx +28 -0
  1090. package/src/routes/_nav/projects/$projectId/$storyId/route.lazy.tsx +115 -0
  1091. package/src/routes/_nav/projects/$projectId/$storyId/route.tsx +38 -0
  1092. package/src/routes/_nav/projects/$projectId/index.lazy.tsx +171 -0
  1093. package/src/routes/_nav/projects/$projectId/route.lazy.tsx +24 -0
  1094. package/src/routes/_nav/projects/$projectId/route.tsx +36 -0
  1095. package/src/routes/_nav/projects/$projectId/settings/route.lazy.tsx +305 -0
  1096. package/src/routes/_nav/projects/$projectId/settings/route.tsx +32 -0
  1097. package/src/routes/_nav/projects/route.tsx +27 -0
  1098. package/src/routes/_nav/route.lazy.tsx +45 -0
  1099. package/src/routes/_nav/route.tsx +165 -0
  1100. package/src/routes/_nav/settings/-settings-tabs.tsx +135 -0
  1101. package/src/routes/_nav/settings/account/route.lazy.tsx +51 -0
  1102. package/src/routes/_nav/settings/account/route.tsx +37 -0
  1103. package/src/routes/_nav/settings/agents/route.lazy.tsx +10 -0
  1104. package/src/routes/_nav/settings/agents/route.tsx +20 -0
  1105. package/src/routes/_nav/settings/ai/$providerId/route.lazy.tsx +35 -0
  1106. package/src/routes/_nav/settings/ai/$providerId/route.tsx +37 -0
  1107. package/src/routes/_nav/settings/ai/index/route.lazy.tsx +51 -0
  1108. package/src/routes/_nav/settings/ai/route.lazy.tsx +26 -0
  1109. package/src/routes/_nav/settings/ai/route.tsx +31 -0
  1110. package/src/routes/_nav/settings/billing/route.lazy.tsx +42 -0
  1111. package/src/routes/_nav/settings/billing/route.tsx +39 -0
  1112. package/src/routes/_nav/settings/connection/route.lazy.tsx +60 -0
  1113. package/src/routes/_nav/settings/connection/route.tsx +10 -0
  1114. package/src/routes/_nav/settings/design/route.lazy.tsx +193 -0
  1115. package/src/routes/_nav/settings/design/route.tsx +32 -0
  1116. package/src/routes/_nav/settings/general/route.lazy.tsx +100 -0
  1117. package/src/routes/_nav/settings/general/route.tsx +20 -0
  1118. package/src/routes/_nav/settings/privacy/route.lazy.tsx +173 -0
  1119. package/src/routes/_nav/settings/privacy/route.tsx +20 -0
  1120. package/src/routes/_nav/settings/route.lazy.tsx +43 -0
  1121. package/src/routes/_nav/settings/route.tsx +68 -0
  1122. package/src/routes/_nav/settings/team/route.lazy.tsx +44 -0
  1123. package/src/routes/_nav/settings/team/route.tsx +33 -0
  1124. package/src/routes/_nav/stories/$storyId/route.lazy.tsx +136 -0
  1125. package/src/routes/_nav/stories/$storyId/route.tsx +143 -0
  1126. package/src/routes/_nav/stories/index.lazy.tsx +28 -0
  1127. package/src/routes/_nav/stories/index.tsx +37 -0
  1128. package/src/routes/_nav/stories/route.tsx +22 -0
  1129. package/src/routes/_nav/tags/$id/route.tsx +8 -0
  1130. package/src/routes/_nav/tags/index.tsx +8 -0
  1131. package/src/routes/_nav/tags/route.tsx +8 -0
  1132. package/src/routes/_nav/tags/settings/route.tsx +9 -0
  1133. package/src/routes/_nav/test-cases/route.tsx +28 -0
  1134. package/src/routes/_nav/workspaces/$workspaceId/route.lazy.tsx +142 -0
  1135. package/src/routes/_nav/workspaces/$workspaceId/route.tsx +30 -0
  1136. package/src/routes/_nav/workspaces/$workspaceId/settings/route.lazy.tsx +250 -0
  1137. package/src/routes/_nav/workspaces/$workspaceId/settings/route.tsx +27 -0
  1138. package/src/routes/_nav/workspaces/index.lazy.tsx +111 -0
  1139. package/src/routes/_nav/workspaces/index.tsx +24 -0
  1140. package/src/routes/_nav/workspaces/route.tsx +22 -0
  1141. package/src/routes/_public/index/route.tsx +27 -0
  1142. package/src/routes/_public/pricing/route.lazy.tsx +23 -0
  1143. package/src/routes/_public/pricing/route.tsx +30 -0
  1144. package/src/routes/_public/route.tsx +22 -0
  1145. package/src/routes/api/auth/desktop-callback.ts +95 -0
  1146. package/src/routes/api/billing-webhook.ts +49 -0
  1147. package/src/routes/api/chat.ts +108 -0
  1148. package/src/routes/api/design/upload.ts +160 -0
  1149. package/src/routes/api/health.ts +34 -0
  1150. package/src/routes/api/knowledge/sync-github.ts +48 -0
  1151. package/src/routes/api/license/activate/route.ts +50 -0
  1152. package/src/routes/api/license/heartbeat/route.ts +54 -0
  1153. package/src/routes/api/share/prd/$prdId/events.ts +52 -0
  1154. package/src/routes/api/story-ai.ts +40 -0
  1155. package/src/routes/api.auth.$.ts +31 -0
  1156. package/src/routes/design-files/$projectId/$artboardId/$filename.ts +60 -0
  1157. package/src/routes/invite/$token/route.lazy.tsx +75 -0
  1158. package/src/routes/invite/$token/route.tsx +29 -0
  1159. package/src/routes/server/anyhub-proxy/$.ts +54 -0
  1160. package/src/routes/server.ai-stream.ts +126 -0
  1161. package/src/routes/server.ws.ts +61 -0
  1162. package/src/routes/share/$versionId/route.lazy.tsx +68 -0
  1163. package/src/routes/share/$versionId/route.tsx +31 -0
  1164. package/src/routes/share/compliance/$id/route.lazy.tsx +104 -0
  1165. package/src/routes/share/compliance/$id/route.tsx +30 -0
  1166. package/src/routes/share/law/$id/route.lazy.tsx +107 -0
  1167. package/src/routes/share/law/$id/route.tsx +30 -0
  1168. package/src/routes/share/prd/$prdId/route.tsx +10 -0
  1169. package/src/routes/share/route.tsx +22 -0
  1170. package/src/routes/workspace.tsx +24 -0
  1171. package/src/scss.d.ts +18 -0
  1172. package/src/server/__tests__/agent-client-graph.test.ts +115 -0
  1173. package/src/server/__tests__/agent-crud.test.ts +279 -0
  1174. package/src/server/__tests__/assembly.test.ts +26 -0
  1175. package/src/server/__tests__/audit-middleware.test.ts +70 -0
  1176. package/src/server/__tests__/audit.test.ts +45 -0
  1177. package/src/server/__tests__/builtin-project.test.ts +85 -0
  1178. package/src/server/__tests__/chat-agent-resolve.test.ts +138 -0
  1179. package/src/server/__tests__/chat-conversations.test.ts +223 -0
  1180. package/src/server/__tests__/entitlements.license.test.ts +203 -0
  1181. package/src/server/__tests__/entitlements.test.ts +187 -0
  1182. package/src/server/__tests__/license-routes-oss.test.ts +35 -0
  1183. package/src/server/__tests__/license-routes.test.ts +105 -0
  1184. package/src/server/__tests__/permissions.test.ts +69 -0
  1185. package/src/server/__tests__/pro-services.test.ts +63 -0
  1186. package/src/server/__tests__/resource-registry.test.ts +51 -0
  1187. package/src/server/__tests__/resources.agents.test.ts +132 -0
  1188. package/src/server/__tests__/resources.license.test.ts +109 -0
  1189. package/src/server/__tests__/resources.team-seats.test.ts +71 -0
  1190. package/src/server/__tests__/resources.test.ts +179 -0
  1191. package/src/server/__tests__/skill-crud.test.ts +263 -0
  1192. package/src/server/__tests__/sso-domain.test.ts +86 -0
  1193. package/src/server/__tests__/sso-tokens.test.ts +31 -0
  1194. package/src/server/__tests__/start-client-graph.test.ts +83 -0
  1195. package/src/server/ai-ports.ts +75 -0
  1196. package/src/server/audit.ts +25 -0
  1197. package/src/server/auth-helpers.ts +73 -0
  1198. package/src/server/builtin-project.ts +56 -0
  1199. package/src/server/design/sketch/annotation-parser.ts +160 -0
  1200. package/src/server/design/sketch/code-generator.ts +180 -0
  1201. package/src/server/design/sketch/file-storage.ts +71 -0
  1202. package/src/server/desktop-guest.ts +29 -0
  1203. package/src/server/email/sender.ts +21 -0
  1204. package/src/server/entitlements-token-client.ts +32 -0
  1205. package/src/server/entitlements-token.ts +137 -0
  1206. package/src/server/entitlements.ts +211 -0
  1207. package/src/server/keepalive/middleware.ts +44 -0
  1208. package/src/server/knowledge-public/canonical-id.ts +60 -0
  1209. package/src/server/knowledge-public/favicon.ts +74 -0
  1210. package/src/server/knowledge-public/github-sync.ts +111 -0
  1211. package/src/server/knowledge-public/share-merge.ts +92 -0
  1212. package/src/server/middlewares/audit-recorder.ts +37 -0
  1213. package/src/server/middlewares/audit.ts +20 -0
  1214. package/src/server/middlewares/rate-limit-server-fn.ts +1 -0
  1215. package/src/server/middlewares/request.ts +26 -0
  1216. package/src/server/permissions.ts +44 -0
  1217. package/src/server/pro-services.ts +24 -0
  1218. package/src/server/references/engine.ts +104 -0
  1219. package/src/server/remote-auth.ts +60 -0
  1220. package/src/server/resources.ts +189 -0
  1221. package/src/server/serverFns/__tests__/compliance.test.ts +138 -0
  1222. package/src/server/serverFns/__tests__/project-team-assign.test.ts +90 -0
  1223. package/src/server/serverFns/__tests__/team-accept.test.ts +103 -0
  1224. package/src/server/serverFns/__tests__/team-invitation.test.ts +143 -0
  1225. package/src/server/serverFns/__tests__/team-members.test.ts +201 -0
  1226. package/src/server/serverFns/__tests__/update-seats.test.ts +171 -0
  1227. package/src/server/serverFns/__tests__/workspace.test.ts +418 -0
  1228. package/src/server/serverFns/activity.ts +114 -0
  1229. package/src/server/serverFns/agents/agent-crud.ts +231 -0
  1230. package/src/server/serverFns/agents/resolve-overrides.ts +66 -0
  1231. package/src/server/serverFns/agents/skill-crud.ts +188 -0
  1232. package/src/server/serverFns/ai/agent-conversations.ts +1 -0
  1233. package/src/server/serverFns/ai/detect.ts +34 -0
  1234. package/src/server/serverFns/ai/execute.ts +36 -0
  1235. package/src/server/serverFns/ai/fill-annotation.ts +1 -0
  1236. package/src/server/serverFns/ai/generate-prototype.ts +1 -0
  1237. package/src/server/serverFns/ai/providers.ts +1 -0
  1238. package/src/server/serverFns/analytics.ts +40 -0
  1239. package/src/server/serverFns/anyhub/app.ts +68 -0
  1240. package/src/server/serverFns/anyhub/index.ts +76 -0
  1241. package/src/server/serverFns/anyhub/install.ts +57 -0
  1242. package/src/server/serverFns/anyhub/permissions.ts +45 -0
  1243. package/src/server/serverFns/anyhub/proxy.ts +44 -0
  1244. package/src/server/serverFns/auth/forgot-password.ts +55 -0
  1245. package/src/server/serverFns/auth/invitation.ts +48 -0
  1246. package/src/server/serverFns/auth/providers.ts +27 -0
  1247. package/src/server/serverFns/auth/register.ts +56 -0
  1248. package/src/server/serverFns/auth/reset-password.ts +68 -0
  1249. package/src/server/serverFns/auth/session.ts +126 -0
  1250. package/src/server/serverFns/billing.ts +167 -0
  1251. package/src/server/serverFns/chat/conversations.ts +134 -0
  1252. package/src/server/serverFns/chat/list-messages.ts +36 -0
  1253. package/src/server/serverFns/comments.ts +1 -0
  1254. package/src/server/serverFns/compliance.ts +42 -0
  1255. package/src/server/serverFns/components.ts +1 -0
  1256. package/src/server/serverFns/design/settings.ts +72 -0
  1257. package/src/server/serverFns/design.ts +109 -0
  1258. package/src/server/serverFns/knowledge-index.ts +147 -0
  1259. package/src/server/serverFns/knowledge-public/bookmarks/categories.ts +67 -0
  1260. package/src/server/serverFns/knowledge-public/bookmarks/create.ts +86 -0
  1261. package/src/server/serverFns/knowledge-public/bookmarks/delete.ts +36 -0
  1262. package/src/server/serverFns/knowledge-public/bookmarks/detail.ts +63 -0
  1263. package/src/server/serverFns/knowledge-public/bookmarks/favorite.ts +38 -0
  1264. package/src/server/serverFns/knowledge-public/bookmarks/list.ts +128 -0
  1265. package/src/server/serverFns/knowledge-public/bookmarks/refresh-favicon.ts +31 -0
  1266. package/src/server/serverFns/knowledge-public/bookmarks/share.ts +74 -0
  1267. package/src/server/serverFns/knowledge-public/bookmarks/sync-github.ts +31 -0
  1268. package/src/server/serverFns/knowledge-public/bookmarks/unshare.ts +44 -0
  1269. package/src/server/serverFns/knowledge-public/bookmarks/update.ts +90 -0
  1270. package/src/server/serverFns/knowledge-public/compliance/create.ts +60 -0
  1271. package/src/server/serverFns/knowledge-public/compliance/delete.ts +36 -0
  1272. package/src/server/serverFns/knowledge-public/compliance/detail.ts +48 -0
  1273. package/src/server/serverFns/knowledge-public/compliance/list.ts +95 -0
  1274. package/src/server/serverFns/knowledge-public/compliance/public.ts +38 -0
  1275. package/src/server/serverFns/knowledge-public/compliance/share.ts +62 -0
  1276. package/src/server/serverFns/knowledge-public/compliance/unshare.ts +33 -0
  1277. package/src/server/serverFns/knowledge-public/compliance/update.ts +59 -0
  1278. package/src/server/serverFns/knowledge-public/dictionary/create.ts +55 -0
  1279. package/src/server/serverFns/knowledge-public/dictionary/delete.ts +36 -0
  1280. package/src/server/serverFns/knowledge-public/dictionary/detail.ts +43 -0
  1281. package/src/server/serverFns/knowledge-public/dictionary/list.ts +83 -0
  1282. package/src/server/serverFns/knowledge-public/dictionary/share.ts +60 -0
  1283. package/src/server/serverFns/knowledge-public/dictionary/unshare.ts +33 -0
  1284. package/src/server/serverFns/knowledge-public/dictionary/update.ts +56 -0
  1285. package/src/server/serverFns/knowledge-public/entity-tags.ts +50 -0
  1286. package/src/server/serverFns/knowledge-public/favorite.ts +54 -0
  1287. package/src/server/serverFns/knowledge-public/legal/create.ts +64 -0
  1288. package/src/server/serverFns/knowledge-public/legal/delete.ts +36 -0
  1289. package/src/server/serverFns/knowledge-public/legal/detail.ts +48 -0
  1290. package/src/server/serverFns/knowledge-public/legal/list.ts +97 -0
  1291. package/src/server/serverFns/knowledge-public/legal/public.ts +38 -0
  1292. package/src/server/serverFns/knowledge-public/legal/share.ts +64 -0
  1293. package/src/server/serverFns/knowledge-public/legal/unshare.ts +33 -0
  1294. package/src/server/serverFns/knowledge-public/legal/update.ts +61 -0
  1295. package/src/server/serverFns/knowledge.ts +577 -0
  1296. package/src/server/serverFns/locale.ts +8 -0
  1297. package/src/server/serverFns/project.ts +575 -0
  1298. package/src/server/serverFns/references/create.ts +40 -0
  1299. package/src/server/serverFns/references/resolve.ts +36 -0
  1300. package/src/server/serverFns/references/search.ts +37 -0
  1301. package/src/server/serverFns/reviews.ts +1 -0
  1302. package/src/server/serverFns/settings/account-team.ts +66 -0
  1303. package/src/server/serverFns/share/prd/[prdId]/events.ts +33 -0
  1304. package/src/server/serverFns/share/verify-password.ts +1 -0
  1305. package/src/server/serverFns/share/version.ts +70 -0
  1306. package/src/server/serverFns/share/versions.ts +1 -0
  1307. package/src/server/serverFns/sso.ts +27 -0
  1308. package/src/server/serverFns/story/__tests__/bulk.test.ts +156 -0
  1309. package/src/server/serverFns/story/__tests__/story-groups.test.ts +329 -0
  1310. package/src/server/serverFns/story/__tests__/story-list-query.test.ts +245 -0
  1311. package/src/server/serverFns/story/index.ts +124 -0
  1312. package/src/server/serverFns/story/story-assoc.ts +186 -0
  1313. package/src/server/serverFns/story/story-attachments.ts +97 -0
  1314. package/src/server/serverFns/story/story-children.ts +42 -0
  1315. package/src/server/serverFns/story/story-comments.ts +174 -0
  1316. package/src/server/serverFns/story/story-crud/activities.ts +76 -0
  1317. package/src/server/serverFns/story/story-crud/archive.ts +79 -0
  1318. package/src/server/serverFns/story/story-crud/bulk.ts +192 -0
  1319. package/src/server/serverFns/story/story-crud/detail.ts +66 -0
  1320. package/src/server/serverFns/story/story-crud/labels.ts +66 -0
  1321. package/src/server/serverFns/story/story-crud.ts +384 -0
  1322. package/src/server/serverFns/story/story-dependencies.ts +218 -0
  1323. package/src/server/serverFns/story/story-groups.ts +279 -0
  1324. package/src/server/serverFns/story/story-links.ts +90 -0
  1325. package/src/server/serverFns/story/story-list-query.ts +222 -0
  1326. package/src/server/serverFns/story/story-reactions.ts +135 -0
  1327. package/src/server/serverFns/story/story-search.ts +74 -0
  1328. package/src/server/serverFns/story/story-transfer.ts +409 -0
  1329. package/src/server/serverFns/story/story-tree.ts +123 -0
  1330. package/src/server/serverFns/story/types.ts +223 -0
  1331. package/src/server/serverFns/story-display-options.ts +156 -0
  1332. package/src/server/serverFns/story-view.ts +138 -0
  1333. package/src/server/serverFns/team.ts +330 -0
  1334. package/src/server/serverFns/translation.ts +50 -0
  1335. package/src/server/serverFns/user/avatar.ts +40 -0
  1336. package/src/server/serverFns/user/settings.ts +38 -0
  1337. package/src/server/serverFns/user/update-locale.ts +18 -0
  1338. package/src/server/serverFns/web-search.ts +69 -0
  1339. package/src/server/serverFns/workspace.ts +231 -0
  1340. package/src/server/serverFns/ws.ts +38 -0
  1341. package/src/server/sso/tokens.ts +69 -0
  1342. package/src/server/team-access.ts +16 -0
  1343. package/src/start.ts +102 -0
  1344. package/src/styles/_keyframe-animations.scss +91 -0
  1345. package/src/styles/_variables.scss +294 -0
  1346. package/src/styles/globals.css +477 -0
  1347. package/src/types/jest-dom-vitest.d.ts +31 -0
  1348. package/src/types/outline.ts +1 -0
  1349. package/src/types/prd.ts +1 -0
  1350. package/src/types/project.ts +103 -0
  1351. package/src/types/prototype.ts +1 -0
  1352. package/src/types/start-authjs.d.ts +33 -0
  1353. package/src/types/workspace.ts +18 -0
@@ -0,0 +1,33 @@
1
+ // SPDX-License-Identifier: AGPL-3.0-or-later
2
+ // AllBlue - 理想之海
3
+ // Copyright (C) 2026 AllBlue Contributors
4
+ //
5
+ // This program is free software: you can redistribute it and/or modify
6
+ // it under the terms of the GNU Affero General Public License as published by
7
+ // the Free Software Foundation, either version 3 of the License, or
8
+ // (at your option) any later version.
9
+ //
10
+ // This program is distributed in the hope that it will be useful,
11
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ // GNU Affero General Public License for more details.
14
+ //
15
+ // You should have received a copy of the GNU Affero General Public License
16
+ // along with this program. If not, see <https://www.gnu.org/licenses/>.
17
+
18
+ import { cn } from "@/lib/utils"
19
+
20
+ function Kbd({ className, ...props }: React.ComponentProps<"kbd">) {
21
+ return (
22
+ <kbd
23
+ data-slot="kbd"
24
+ className={cn(
25
+ "inline-flex items-center justify-center rounded bg-muted px-1.5 py-1 font-mono text-[10px] font-medium text-muted-foreground",
26
+ className
27
+ )}
28
+ {...props}
29
+ />
30
+ )
31
+ }
32
+
33
+ export { Kbd }
@@ -0,0 +1 @@
1
+ export * from '@allbluecn/ui/label'
@@ -0,0 +1,181 @@
1
+ // SPDX-License-Identifier: AGPL-3.0-or-later
2
+ // AllBlue - 理想之海
3
+ // Copyright (C) 2026 AllBlue Contributors
4
+ //
5
+ // This program is free software: you can redistribute it and/or modify
6
+ // it under the terms of the GNU Affero General Public License as published by
7
+ // the Free Software Foundation, either version 3 of the License, or
8
+ // (at your option) any later version.
9
+ //
10
+ // This program is distributed in the hope that it will be useful,
11
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ // GNU Affero General Public License for more details.
14
+ //
15
+ // You should have received a copy of the GNU Affero General Public License
16
+ // along with this program. If not, see <https://www.gnu.org/licenses/>.
17
+
18
+ import * as React from "react"
19
+ import { cva } from "class-variance-authority"
20
+ import { NavigationMenu as NavigationMenuPrimitive } from "radix-ui"
21
+
22
+ import { cn } from "@/lib/utils"
23
+ import { ChevronDownIcon } from "lucide-react"
24
+
25
+ function NavigationMenu({
26
+ className,
27
+ children,
28
+ viewport = true,
29
+ ...props
30
+ }: React.ComponentProps<typeof NavigationMenuPrimitive.Root> & {
31
+ viewport?: boolean
32
+ }) {
33
+ return (
34
+ <NavigationMenuPrimitive.Root
35
+ data-slot="navigation-menu"
36
+ data-viewport={viewport}
37
+ className={cn(
38
+ "group/navigation-menu relative flex max-w-max flex-1 items-center justify-center",
39
+ className
40
+ )}
41
+ {...props}
42
+ >
43
+ {children}
44
+ {viewport && <NavigationMenuViewport />}
45
+ </NavigationMenuPrimitive.Root>
46
+ )
47
+ }
48
+
49
+ function NavigationMenuList({
50
+ className,
51
+ ...props
52
+ }: React.ComponentProps<typeof NavigationMenuPrimitive.List>) {
53
+ return (
54
+ <NavigationMenuPrimitive.List
55
+ data-slot="navigation-menu-list"
56
+ className={cn(
57
+ "group flex flex-1 list-none items-center justify-center gap-0",
58
+ className
59
+ )}
60
+ {...props}
61
+ />
62
+ )
63
+ }
64
+
65
+ function NavigationMenuItem({
66
+ className,
67
+ ...props
68
+ }: React.ComponentProps<typeof NavigationMenuPrimitive.Item>) {
69
+ return (
70
+ <NavigationMenuPrimitive.Item
71
+ data-slot="navigation-menu-item"
72
+ className={cn("relative", className)}
73
+ {...props}
74
+ />
75
+ )
76
+ }
77
+
78
+ const navigationMenuTriggerStyle = cva(
79
+ "group/navigation-menu-trigger inline-flex h-9 w-max items-center justify-center rounded-lg px-2.5 py-1.5 text-sm font-medium transition-all outline-none hover:bg-muted focus:bg-muted focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-popup-open:bg-muted/50 data-popup-open:hover:bg-muted data-open:bg-muted/50 data-open:hover:bg-muted data-open:focus:bg-muted"
80
+ )
81
+
82
+ function NavigationMenuTrigger({
83
+ className,
84
+ children,
85
+ ...props
86
+ }: React.ComponentProps<typeof NavigationMenuPrimitive.Trigger>) {
87
+ return (
88
+ <NavigationMenuPrimitive.Trigger
89
+ data-slot="navigation-menu-trigger"
90
+ className={cn(navigationMenuTriggerStyle(), "group", className)}
91
+ {...props}
92
+ >
93
+ {children}{" "}
94
+ <ChevronDownIcon className="relative top-px ml-1 size-3 transition duration-300 group-data-popup-open/navigation-menu-trigger:rotate-180 group-data-open/navigation-menu-trigger:rotate-180" aria-hidden="true" />
95
+ </NavigationMenuPrimitive.Trigger>
96
+ )
97
+ }
98
+
99
+ function NavigationMenuContent({
100
+ className,
101
+ ...props
102
+ }: React.ComponentProps<typeof NavigationMenuPrimitive.Content>) {
103
+ return (
104
+ <NavigationMenuPrimitive.Content
105
+ data-slot="navigation-menu-content"
106
+ className={cn(
107
+ "top-0 left-0 w-full p-1 ease-[cubic-bezier(0.22,1,0.36,1)] group-data-[viewport=false]/navigation-menu:top-full group-data-[viewport=false]/navigation-menu:mt-1.5 group-data-[viewport=false]/navigation-menu:overflow-hidden group-data-[viewport=false]/navigation-menu:rounded-lg group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:shadow group-data-[viewport=false]/navigation-menu:ring-1 group-data-[viewport=false]/navigation-menu:ring-foreground/10 group-data-[viewport=false]/navigation-menu:duration-300 data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 data-[motion^=from-]:animate-in data-[motion^=from-]:fade-in data-[motion^=to-]:animate-out data-[motion^=to-]:fade-out **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none md:absolute md:w-auto group-data-[viewport=false]/navigation-menu:data-open:animate-in group-data-[viewport=false]/navigation-menu:data-open:fade-in-0 group-data-[viewport=false]/navigation-menu:data-open:zoom-in-95 group-data-[viewport=false]/navigation-menu:data-closed:animate-out group-data-[viewport=false]/navigation-menu:data-closed:fade-out-0 group-data-[viewport=false]/navigation-menu:data-closed:zoom-out-95",
108
+ className
109
+ )}
110
+ {...props}
111
+ />
112
+ )
113
+ }
114
+
115
+ function NavigationMenuViewport({
116
+ className,
117
+ ...props
118
+ }: React.ComponentProps<typeof NavigationMenuPrimitive.Viewport>) {
119
+ return (
120
+ <div
121
+ className={cn(
122
+ "absolute top-full left-0 isolate z-50 flex justify-center"
123
+ )}
124
+ >
125
+ <NavigationMenuPrimitive.Viewport
126
+ data-slot="navigation-menu-viewport"
127
+ className={cn(
128
+ "origin-top-center relative mt-1.5 h-(--radix-navigation-menu-viewport-height) w-full overflow-hidden rounded-lg bg-popover text-popover-foreground shadow ring-1 ring-foreground/10 duration-100 md:w-(--radix-navigation-menu-viewport-width) data-open:animate-in data-open:zoom-in-90 data-closed:animate-out data-closed:zoom-out-90",
129
+ className
130
+ )}
131
+ {...props}
132
+ />
133
+ </div>
134
+ )
135
+ }
136
+
137
+ function NavigationMenuLink({
138
+ className,
139
+ ...props
140
+ }: React.ComponentProps<typeof NavigationMenuPrimitive.Link>) {
141
+ return (
142
+ <NavigationMenuPrimitive.Link
143
+ data-slot="navigation-menu-link"
144
+ className={cn(
145
+ "flex items-center gap-2 rounded-lg p-2 text-sm transition-all outline-none hover:bg-muted focus:bg-muted focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:outline-1 in-data-[slot=navigation-menu-content]:rounded-md data-active:bg-muted/50 data-active:hover:bg-muted data-active:focus:bg-muted [&_svg:not([class*='size-'])]:size-4",
146
+ className
147
+ )}
148
+ {...props}
149
+ />
150
+ )
151
+ }
152
+
153
+ function NavigationMenuIndicator({
154
+ className,
155
+ ...props
156
+ }: React.ComponentProps<typeof NavigationMenuPrimitive.Indicator>) {
157
+ return (
158
+ <NavigationMenuPrimitive.Indicator
159
+ data-slot="navigation-menu-indicator"
160
+ className={cn(
161
+ "top-full z-1 flex h-1.5 items-end justify-center overflow-hidden data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:animate-in data-[state=visible]:fade-in",
162
+ className
163
+ )}
164
+ {...props}
165
+ >
166
+ <div className="relative top-3/5 h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md" />
167
+ </NavigationMenuPrimitive.Indicator>
168
+ )
169
+ }
170
+
171
+ export {
172
+ NavigationMenu,
173
+ NavigationMenuList,
174
+ NavigationMenuItem,
175
+ NavigationMenuContent,
176
+ NavigationMenuTrigger,
177
+ NavigationMenuLink,
178
+ NavigationMenuIndicator,
179
+ NavigationMenuViewport,
180
+ navigationMenuTriggerStyle,
181
+ }
@@ -0,0 +1 @@
1
+ export * from '@allbluecn/ui/popover'
@@ -0,0 +1,48 @@
1
+ // SPDX-License-Identifier: AGPL-3.0-or-later
2
+ // AllBlue - 理想之海
3
+ // Copyright (C) 2026 AllBlue Contributors
4
+ //
5
+ // This program is free software: you can redistribute it and/or modify
6
+ // it under the terms of the GNU Affero General Public License as published by
7
+ // the Free Software Foundation, either version 3 of the License, or
8
+ // (at your option) any later version.
9
+ //
10
+ // This program is distributed in the hope that it will be useful,
11
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ // GNU Affero General Public License for more details.
14
+ //
15
+ // You should have received a copy of the GNU Affero General Public License
16
+ // along with this program. If not, see <https://www.gnu.org/licenses/>.
17
+
18
+ "use client"
19
+
20
+ import * as React from "react"
21
+ import { Progress as ProgressPrimitive } from "radix-ui"
22
+
23
+ import { cn } from "@/lib/utils"
24
+
25
+ function Progress({
26
+ className,
27
+ value,
28
+ ...props
29
+ }: React.ComponentProps<typeof ProgressPrimitive.Root>) {
30
+ return (
31
+ <ProgressPrimitive.Root
32
+ data-slot="progress"
33
+ className={cn(
34
+ "relative flex h-1 w-full items-center overflow-x-hidden rounded-full bg-muted",
35
+ className
36
+ )}
37
+ {...props}
38
+ >
39
+ <ProgressPrimitive.Indicator
40
+ data-slot="progress-indicator"
41
+ className="size-full flex-1 bg-primary transition-all"
42
+ style={{ transform: `translateX(-${100 - (value || 0)}%)` }}
43
+ />
44
+ </ProgressPrimitive.Root>
45
+ )
46
+ }
47
+
48
+ export { Progress }
@@ -0,0 +1,59 @@
1
+ // SPDX-License-Identifier: AGPL-3.0-or-later
2
+ // AllBlue - 理想之海
3
+ // Copyright (C) 2026 AllBlue Contributors
4
+ //
5
+ // This program is free software: you can redistribute it and/or modify
6
+ // it under the terms of the GNU Affero General Public License as published by
7
+ // the Free Software Foundation, either version 3 of the License, or
8
+ // (at your option) any later version.
9
+ //
10
+ // This program is distributed in the hope that it will be useful,
11
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ // GNU Affero General Public License for more details.
14
+ //
15
+ // You should have received a copy of the GNU Affero General Public License
16
+ // along with this program. If not, see <https://www.gnu.org/licenses/>.
17
+
18
+ import * as React from "react"
19
+ import { RadioGroup as RadioGroupPrimitive } from "radix-ui"
20
+
21
+ import { cn } from "@/lib/utils"
22
+
23
+ function RadioGroup({
24
+ className,
25
+ ...props
26
+ }: React.ComponentProps<typeof RadioGroupPrimitive.Root>) {
27
+ return (
28
+ <RadioGroupPrimitive.Root
29
+ data-slot="radio-group"
30
+ className={cn("grid w-full gap-2", className)}
31
+ {...props}
32
+ />
33
+ )
34
+ }
35
+
36
+ function RadioGroupItem({
37
+ className,
38
+ ...props
39
+ }: React.ComponentProps<typeof RadioGroupPrimitive.Item>) {
40
+ return (
41
+ <RadioGroupPrimitive.Item
42
+ data-slot="radio-group-item"
43
+ className={cn(
44
+ "group/radio-group-item peer relative flex aspect-square size-4 shrink-0 rounded-full border border-input outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary",
45
+ className
46
+ )}
47
+ {...props}
48
+ >
49
+ <RadioGroupPrimitive.Indicator
50
+ data-slot="radio-group-indicator"
51
+ className="flex size-4 items-center justify-center"
52
+ >
53
+ <span className="absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2 rounded-full bg-primary-foreground" />
54
+ </RadioGroupPrimitive.Indicator>
55
+ </RadioGroupPrimitive.Item>
56
+ )
57
+ }
58
+
59
+ export { RadioGroup, RadioGroupItem }
@@ -0,0 +1 @@
1
+ export * from '@allbluecn/ui/resizable'
@@ -0,0 +1,255 @@
1
+ // SPDX-License-Identifier: AGPL-3.0-or-later
2
+ // AllBlue - 理想之海
3
+ // Copyright (C) 2026 AllBlue Contributors
4
+ //
5
+ // This program is free software: you can redistribute it and/or modify
6
+ // it under the terms of the GNU Affero General Public License as published by
7
+ // the Free Software Foundation, either version 3 of the License, or
8
+ // (at your option) any later version.
9
+ //
10
+ // This program is distributed in the hope that it will be useful,
11
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ // GNU Affero General Public License for more details.
14
+ //
15
+ // You should have received a copy of the GNU Affero General Public License
16
+ // along with this program. If not, see <https://www.gnu.org/licenses/>.
17
+
18
+ import type { HTMLAttributes } from "react"
19
+
20
+ const SAFARI_WIDTH = 1203
21
+ const SAFARI_HEIGHT = 753
22
+ const SCREEN_X = 1
23
+ const SCREEN_Y = 52
24
+ const SCREEN_WIDTH = 1200
25
+ const SCREEN_HEIGHT = 700
26
+
27
+ // Calculated percentages
28
+ const LEFT_PCT = (SCREEN_X / SAFARI_WIDTH) * 100
29
+ const TOP_PCT = (SCREEN_Y / SAFARI_HEIGHT) * 100
30
+ const WIDTH_PCT = (SCREEN_WIDTH / SAFARI_WIDTH) * 100
31
+ const HEIGHT_PCT = (SCREEN_HEIGHT / SAFARI_HEIGHT) * 100
32
+
33
+ type SafariMode = "default" | "simple"
34
+
35
+ export interface SafariProps extends HTMLAttributes<HTMLDivElement> {
36
+ url?: string
37
+ imageSrc?: string
38
+ videoSrc?: string
39
+ mode?: SafariMode
40
+ }
41
+
42
+ export function Safari({
43
+ imageSrc,
44
+ videoSrc,
45
+ url,
46
+ mode = "default",
47
+ className,
48
+ style,
49
+ ...props
50
+ }: SafariProps) {
51
+ const hasVideo = !!videoSrc
52
+ const hasMedia = hasVideo || !!imageSrc
53
+
54
+ return (
55
+ <div
56
+ className={`relative inline-block w-full align-middle leading-none ${className ?? ""}`}
57
+ style={{
58
+ aspectRatio: `${SAFARI_WIDTH}/${SAFARI_HEIGHT}`,
59
+ ...style,
60
+ }}
61
+ {...props}
62
+ >
63
+ {hasVideo && (
64
+ <div
65
+ className="pointer-events-none absolute z-0 overflow-hidden"
66
+ style={{
67
+ left: `${LEFT_PCT}%`,
68
+ top: `${TOP_PCT}%`,
69
+ width: `${WIDTH_PCT}%`,
70
+ height: `${HEIGHT_PCT}%`,
71
+ }}
72
+ >
73
+ <video
74
+ className="block size-full object-cover"
75
+ src={videoSrc}
76
+ autoPlay
77
+ loop
78
+ muted
79
+ playsInline
80
+ preload="metadata"
81
+ />
82
+ </div>
83
+ )}
84
+
85
+ {!hasVideo && imageSrc && (
86
+ <div
87
+ className="pointer-events-none absolute z-0 overflow-hidden"
88
+ style={{
89
+ left: `${LEFT_PCT}%`,
90
+ top: `${TOP_PCT}%`,
91
+ width: `${WIDTH_PCT}%`,
92
+ height: `${HEIGHT_PCT}%`,
93
+ borderRadius: "0 0 11px 11px",
94
+ }}
95
+ >
96
+ <img
97
+ src={imageSrc}
98
+ alt=""
99
+ className="block size-full object-cover object-top"
100
+ />
101
+ </div>
102
+ )}
103
+
104
+ <svg
105
+ viewBox={`0 0 ${SAFARI_WIDTH} ${SAFARI_HEIGHT}`}
106
+ fill="none"
107
+ xmlns="http://www.w3.org/2000/svg"
108
+ className="absolute inset-0 z-10 size-full"
109
+ style={{ transform: "translateZ(0)" }}
110
+ >
111
+ <defs>
112
+ <mask id="safariPunch" maskUnits="userSpaceOnUse">
113
+ <rect
114
+ x="0"
115
+ y="0"
116
+ width={SAFARI_WIDTH}
117
+ height={SAFARI_HEIGHT}
118
+ fill="white"
119
+ />
120
+ <path
121
+ d="M1 52H1201V741C1201 747.075 1196.08 752 1190 752H12C5.92486 752 1 747.075 1 741V52Z"
122
+ fill="black"
123
+ />
124
+ </mask>
125
+
126
+ <clipPath id="path0">
127
+ <rect width={SAFARI_WIDTH} height={SAFARI_HEIGHT} fill="white" />
128
+ </clipPath>
129
+
130
+ <clipPath id="roundedBottom">
131
+ <path
132
+ d="M1 52H1201V741C1201 747.075 1196.08 752 1190 752H12C5.92486 752 1 747.075 1 741V52Z"
133
+ fill="white"
134
+ />
135
+ </clipPath>
136
+ </defs>
137
+
138
+ <g
139
+ clipPath="url(#path0)"
140
+ mask={hasMedia ? "url(#safariPunch)" : undefined}
141
+ >
142
+ <path
143
+ d="M0 52H1202V741C1202 747.627 1196.63 753 1190 753H12C5.37258 753 0 747.627 0 741V52Z"
144
+ className="fill-[#E5E5E5] dark:fill-[#404040]"
145
+ />
146
+ <path
147
+ fillRule="evenodd"
148
+ clipRule="evenodd"
149
+ d="M0 12C0 5.37258 5.37258 0 12 0H1190C1196.63 0 1202 5.37258 1202 12V52H0L0 12Z"
150
+ className="fill-[#E5E5E5] dark:fill-[#404040]"
151
+ />
152
+ <path
153
+ fillRule="evenodd"
154
+ clipRule="evenodd"
155
+ d="M1.06738 12C1.06738 5.92487 5.99225 1 12.0674 1H1189.93C1196.01 1 1200.93 5.92487 1200.93 12V51H1.06738V12Z"
156
+ className="fill-white dark:fill-[#262626]"
157
+ />
158
+ <circle
159
+ cx="27"
160
+ cy="25"
161
+ r="6"
162
+ className="fill-[#E5E5E5] dark:fill-[#404040]"
163
+ />
164
+ <circle
165
+ cx="47"
166
+ cy="25"
167
+ r="6"
168
+ className="fill-[#E5E5E5] dark:fill-[#404040]"
169
+ />
170
+ <circle
171
+ cx="67"
172
+ cy="25"
173
+ r="6"
174
+ className="fill-[#E5E5E5] dark:fill-[#404040]"
175
+ />
176
+ <path
177
+ d="M286 17C286 13.6863 288.686 11 292 11H946C949.314 11 952 13.6863 952 17V35C952 38.3137 949.314 41 946 41H292C288.686 41 286 38.3137 286 35V17Z"
178
+ className="fill-[#E5E5E5] dark:fill-[#404040]"
179
+ />
180
+ <g className="mix-blend-luminosity">
181
+ <path
182
+ d="M566.269 32.0852H572.426C573.277 32.0852 573.696 31.6663 573.696 30.7395V25.9851C573.696 25.1472 573.353 24.7219 572.642 24.6521V23.0842C572.642 20.6721 571.036 19.5105 569.348 19.5105C567.659 19.5105 566.053 20.6721 566.053 23.0842V24.6711C565.393 24.7727 565 25.1917 565 25.9851V30.7395C565 31.6663 565.418 32.0852 566.269 32.0852ZM567.272 22.97C567.272 21.491 568.211 20.6785 569.348 20.6785C570.478 20.6785 571.423 21.491 571.423 22.97V24.6394L567.272 24.6458V22.97Z"
183
+ fill="#A3A3A3"
184
+ />
185
+ </g>
186
+
187
+ <g className="mix-blend-luminosity">
188
+ <text
189
+ x="580"
190
+ y="30"
191
+ fill="#A3A3A3"
192
+ fontSize="12"
193
+ fontFamily="Arial, sans-serif"
194
+ >
195
+ {url}
196
+ </text>
197
+ </g>
198
+
199
+ {mode === "default" ? (
200
+ <>
201
+ <g className="mix-blend-luminosity">
202
+ <path
203
+ d="M265.5 33.8984C265.641 33.8984 265.852 33.8516 266.047 33.7422C270.547 31.2969 272.109 30.1641 272.109 27.3203V21.4219C272.109 20.4844 271.742 20.1484 270.961 19.8125C270.094 19.4453 267.18 18.4297 266.328 18.1406C266.07 18.0547 265.766 18 265.5 18C265.234 18 264.93 18.0703 264.672 18.1406C263.82 18.3828 260.906 19.4531 260.039 19.8125C259.258 20.1406 258.891 20.4844 258.891 21.4219V27.3203C258.891 30.1641 260.461 31.2812 264.945 33.7422C265.148 33.8516 265.359 33.8984 265.5 33.8984ZM265.922 19.5781C266.945 19.9766 269.172 20.7656 270.344 21.1875C270.562 21.2656 270.617 21.3828 270.617 21.6641V27.0234C270.617 29.3125 269.469 29.9375 265.945 32.0625C265.727 32.1875 265.617 32.2344 265.508 32.2344V19.4844C265.617 19.4844 265.734 19.5156 265.922 19.5781Z"
204
+ fill="#A3A3A3"
205
+ />
206
+ </g>
207
+ <g className="mix-blend-luminosity">
208
+ <path
209
+ d="M936.273 24.9766C936.5 24.9766 936.68 24.9062 936.82 24.7578L940.023 21.5312C940.195 21.3594 940.273 21.1719 940.273 20.9531C940.273 20.7422 940.188 20.5391 940.023 20.3828L936.82 17.125C936.68 16.9688 936.5 16.8906 936.273 16.8906C935.852 16.8906 935.516 17.2422 935.516 17.6719C935.516 17.8828 935.594 18.0547 935.727 18.2031L937.594 20.0312C937.227 19.9766 936.852 19.9453 936.477 19.9453C932.609 19.9453 929.516 23.0391 929.516 26.9141C929.516 30.7891 932.633 33.9062 936.5 33.9062C940.375 33.9062 943.484 30.7891 943.484 26.9141C943.484 26.4453 943.156 26.1094 942.688 26.1094C942.234 26.1094 941.93 26.4453 941.93 26.9141C941.93 29.9297 939.516 32.3516 936.5 32.3516C933.492 32.3516 931.07 29.9297 931.07 26.9141C931.07 23.875 933.469 21.4688 936.477 21.4688C936.984 21.4688 937.453 21.5078 937.867 21.5781L935.734 23.6875C935.594 23.8281 935.516 24 935.516 24.2109C935.516 24.6406 935.852 24.9766 936.273 24.9766Z"
210
+ fill="#A3A3A3"
211
+ />
212
+ </g>
213
+ <g className="mix-blend-luminosity">
214
+ <path
215
+ d="M1134 33.0156C1134.49 33.0156 1134.89 32.6094 1134.89 32.1484V27.2578H1139.66C1140.13 27.2578 1140.54 26.8594 1140.54 26.3672C1140.54 25.8828 1140.13 25.4766 1139.66 25.4766H1134.89V20.5859C1134.89 20.1172 1134.49 19.7188 1134 19.7188C1133.52 19.7188 1133.11 20.1172 1133.11 20.5859V25.4766H1128.34C1127.88 25.4766 1127.46 25.8828 1127.46 26.3672C1127.46 26.8594 1127.88 27.2578 1128.34 27.2578H1133.11V32.1484C1133.11 32.6094 1133.52 33.0156 1134 33.0156Z"
216
+ fill="#A3A3A3"
217
+ />
218
+ </g>
219
+ <g className="mix-blend-luminosity">
220
+ <path
221
+ d="M1161.8 31.0703H1163.23V32.375C1163.23 34.0547 1164.12 34.9219 1165.81 34.9219H1174.2C1175.89 34.9219 1176.77 34.0547 1176.77 32.3828V24.0469C1176.77 22.375 1175.89 21.5 1174.2 21.5H1172.77V20.2578C1172.77 18.5859 1171.88 17.7109 1170.19 17.7109H1161.8C1160.1 17.7109 1159.23 18.5781 1159.23 20.2578V28.5234C1159.23 30.1953 1160.1 31.0703 1161.8 31.0703ZM1161.9 29.5078C1161.18 29.5078 1160.78 29.1328 1160.78 28.3828V20.3984C1160.78 19.6406 1161.18 19.2656 1161.9 19.2656H1170.09C1170.8 19.2656 1171.2 19.6406 1171.2 20.3984V21.5H1165.81C1164.12 21.5 1163.23 22.375 1163.23 24.0469V29.5078H1161.9ZM1165.91 33.3672C1165.19 33.3672 1164.8 32.9922 1164.8 32.2422V24.1875C1164.8 23.4297 1165.19 23.0625 1165.91 23.0625H1174.1C1174.81 23.0625 1175.21 23.4297 1175.21 24.1875V32.2422C1175.21 32.9922 1174.81 33.3672 1174.1 33.3672H1165.91Z"
222
+ fill="#A3A3A3"
223
+ />
224
+ </g>
225
+ <g className="mix-blend-luminosity">
226
+ <path
227
+ d="M1099.51 28.4141C1099.91 28.4141 1100.24 28.0859 1100.24 27.6953V19.8359L1100.18 18.6797L1100.66 19.25L1101.75 20.4141C1101.88 20.5547 1102.06 20.625 1102.24 20.625C1102.6 20.625 1102.9 20.3672 1102.9 20C1102.9 19.8047 1102.82 19.6641 1102.69 19.5312L1100.06 17.0078C1099.88 16.8203 1099.7 16.7578 1099.51 16.7578C1099.32 16.7578 1099.14 16.8203 1098.95 17.0078L1096.33 19.5312C1096.2 19.6641 1096.12 19.8047 1096.12 20C1096.12 20.3672 1096.41 20.625 1096.77 20.625C1096.95 20.625 1097.14 20.5547 1097.27 20.4141L1098.35 19.25L1098.84 18.6719L1098.78 19.8359V27.6953C1098.78 28.0859 1099.11 28.4141 1099.51 28.4141ZM1095 34.6562H1104C1105.7 34.6562 1106.57 33.7812 1106.57 32.1094V24.4297C1106.57 22.7578 1105.7 21.8828 1104 21.8828H1101.89V23.4375H1103.9C1104.61 23.4375 1105.02 23.8125 1105.02 24.5625V31.9688C1105.02 32.7188 1104.61 33.0938 1103.9 33.0938H1095.1C1094.38 33.0938 1093.98 32.7188 1093.98 31.9688V24.5625C1093.98 23.8125 1094.38 23.4375 1095.1 23.4375H1097.13V21.8828H1095C1093.31 21.8828 1092.43 22.75 1092.43 24.4297V32.1094C1092.43 33.7812 1093.31 34.6562 1095 34.6562Z"
228
+ fill="#A3A3A3"
229
+ />
230
+ </g>
231
+ <g className="mix-blend-luminosity">
232
+ <path
233
+ d="M99.5703 33.6016H112.938C114.633 33.6016 115.516 32.7266 115.516 31.0547V21.5469C115.516 19.875 114.633 19 112.938 19H99.5703C97.8828 19 97 19.8672 97 21.5469V31.0547C97 32.7266 97.8828 33.6016 99.5703 33.6016ZM99.6719 32.0469C98.9531 32.0469 98.5547 31.6719 98.5547 30.9141V21.6875C98.5547 20.9297 98.9531 20.5547 99.6719 20.5547H103.234V32.0469H99.6719ZM112.836 20.5547C113.555 20.5547 113.953 20.9297 113.953 21.6875V30.9141C113.953 31.6719 113.555 32.0469 112.836 32.0469H104.711V20.5547H112.836ZM101.703 23.4141C101.984 23.4141 102.219 23.1719 102.219 22.9062C102.219 22.6406 101.984 22.4062 101.703 22.4062H100.102C99.8203 22.4062 99.5859 22.6406 99.5859 22.9062C99.5859 23.1719 99.8203 23.4141 100.102 23.4141H101.703ZM101.703 25.5156C101.984 25.5156 102.219 25.2812 102.219 25.0078C102.219 24.7422 101.984 24.5078 101.703 24.5078H100.102C99.8203 24.5078 99.5859 24.7422 99.5859 25.0078C99.5859 25.2812 99.8203 25.5156 100.102 25.5156H101.703ZM101.703 27.6094C101.984 27.6094 102.219 27.3828 102.219 27.1094C102.219 26.8438 101.984 26.6172 101.703 26.6172H100.102C99.8203 26.6172 99.5859 26.8438 99.5859 27.1094C99.5859 27.3828 99.8203 27.6094 100.102 27.6094H101.703Z"
234
+ fill="#A3A3A3"
235
+ />
236
+ </g>
237
+ <g className="mix-blend-luminosity">
238
+ <path
239
+ d="M143.914 32.5938C144.094 32.7656 144.312 32.8594 144.562 32.8594C145.086 32.8594 145.492 32.4531 145.492 31.9375C145.492 31.6797 145.391 31.4453 145.211 31.2656L139.742 25.9219L145.211 20.5938C145.391 20.4141 145.492 20.1719 145.492 19.9219C145.492 19.4062 145.086 19 144.562 19C144.312 19 144.094 19.0938 143.922 19.2656L137.844 25.2031C137.625 25.4062 137.516 25.6562 137.516 25.9297C137.516 26.2031 137.625 26.4375 137.836 26.6484L143.914 32.5938Z"
240
+ fill="#A3A3A3"
241
+ />
242
+ </g>
243
+ <g className="mix-blend-luminosity">
244
+ <path
245
+ d="M168.422 32.8594C168.68 32.8594 168.891 32.7656 169.07 32.5938L175.148 26.6562C175.359 26.4375 175.469 26.2109 175.469 25.9297C175.469 25.6562 175.367 25.4141 175.148 25.2109L169.07 19.2656C168.891 19.0938 168.68 19 168.422 19C167.898 19 167.492 19.4062 167.492 19.9219C167.492 20.1719 167.602 20.4141 167.773 20.5938L173.25 25.9375L167.773 31.2656C167.594 31.4531 167.492 31.6797 167.492 31.9375C167.492 32.4531 167.898 32.8594 168.422 32.8594Z"
246
+ fill="#A3A3A3"
247
+ />
248
+ </g>
249
+ </>
250
+ ) : null}
251
+ </g>
252
+ </svg>
253
+ </div>
254
+ )
255
+ }
@@ -0,0 +1,70 @@
1
+ // SPDX-License-Identifier: AGPL-3.0-or-later
2
+ // AllBlue - 理想之海
3
+ // Copyright (C) 2026 AllBlue Contributors
4
+ //
5
+ // This program is free software: you can redistribute it and/or modify
6
+ // it under the terms of the GNU Affero General Public License as published by
7
+ // the Free Software Foundation, either version 3 of the License, or
8
+ // (at your option) any later version.
9
+ //
10
+ // This program is distributed in the hope that it will be useful,
11
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ // GNU Affero General Public License for more details.
14
+ //
15
+ // You should have received a copy of the GNU Affero General Public License
16
+ // along with this program. If not, see <https://www.gnu.org/licenses/>.
17
+
18
+ import * as React from "react"
19
+ import { ScrollArea as ScrollAreaPrimitive } from "radix-ui"
20
+
21
+ import { cn } from "@/lib/utils"
22
+
23
+ function ScrollArea({
24
+ className,
25
+ children,
26
+ ...props
27
+ }: React.ComponentProps<typeof ScrollAreaPrimitive.Root>) {
28
+ return (
29
+ <ScrollAreaPrimitive.Root
30
+ data-slot="scroll-area"
31
+ className={cn("relative", className)}
32
+ {...props}
33
+ >
34
+ <ScrollAreaPrimitive.Viewport
35
+ data-slot="scroll-area-viewport"
36
+ className="size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1"
37
+ >
38
+ {children}
39
+ </ScrollAreaPrimitive.Viewport>
40
+ <ScrollBar />
41
+ <ScrollAreaPrimitive.Corner />
42
+ </ScrollAreaPrimitive.Root>
43
+ )
44
+ }
45
+
46
+ function ScrollBar({
47
+ className,
48
+ orientation = "vertical",
49
+ ...props
50
+ }: React.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>) {
51
+ return (
52
+ <ScrollAreaPrimitive.ScrollAreaScrollbar
53
+ data-slot="scroll-area-scrollbar"
54
+ data-orientation={orientation}
55
+ orientation={orientation}
56
+ className={cn(
57
+ "flex touch-none p-px transition-colors select-none data-horizontal:h-2.5 data-horizontal:flex-col data-horizontal:border-t data-horizontal:border-t-transparent data-vertical:h-full data-vertical:w-2.5 data-vertical:border-l data-vertical:border-l-transparent",
58
+ className
59
+ )}
60
+ {...props}
61
+ >
62
+ <ScrollAreaPrimitive.ScrollAreaThumb
63
+ data-slot="scroll-area-thumb"
64
+ className="relative flex-1 rounded-full bg-border"
65
+ />
66
+ </ScrollAreaPrimitive.ScrollAreaScrollbar>
67
+ )
68
+ }
69
+
70
+ export { ScrollArea, ScrollBar }
@@ -0,0 +1 @@
1
+ export * from '@allbluecn/ui/select'