@tscircuit/fake-snippets 0.0.120 → 0.0.122

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 (612) hide show
  1. package/dist/bundle.js +1 -2
  2. package/package.json +4 -1
  3. package/.github/CODEOWNERS +0 -1
  4. package/.github/workflows/bun-formatcheck.yml +0 -26
  5. package/.github/workflows/bun-pver-release.yml +0 -28
  6. package/.github/workflows/bun-test.yml +0 -28
  7. package/.github/workflows/bun-typecheck.yml +0 -26
  8. package/.github/workflows/bundle-size-analysis.yml +0 -79
  9. package/.github/workflows/stale.yml +0 -40
  10. package/.github/workflows/update-package.yml +0 -58
  11. package/.github/workflows/update-snapshots.yml +0 -49
  12. package/CLAUDE.md +0 -92
  13. package/CONTRIBUTING.md +0 -59
  14. package/api/generated-index.js +0 -456
  15. package/biome.json +0 -67
  16. package/bun-tests/fake-snippets-api/fixtures/get-test-server.ts +0 -141
  17. package/bun-tests/fake-snippets-api/fixtures/preload.ts +0 -18
  18. package/bun-tests/fake-snippets-api/fixtures/start-server.ts +0 -48
  19. package/bun-tests/fake-snippets-api/routes/accounts/get.test.ts +0 -64
  20. package/bun-tests/fake-snippets-api/routes/accounts/get_account_balance.test.ts +0 -14
  21. package/bun-tests/fake-snippets-api/routes/ai_reviews/create.test.ts +0 -21
  22. package/bun-tests/fake-snippets-api/routes/ai_reviews/get.test.ts +0 -16
  23. package/bun-tests/fake-snippets-api/routes/ai_reviews/list.test.ts +0 -14
  24. package/bun-tests/fake-snippets-api/routes/ai_reviews/process_review.test.ts +0 -16
  25. package/bun-tests/fake-snippets-api/routes/bug_reports/create.test.ts +0 -37
  26. package/bun-tests/fake-snippets-api/routes/bug_reports/upload_file.test.ts +0 -89
  27. package/bun-tests/fake-snippets-api/routes/datasheets/create.test.ts +0 -16
  28. package/bun-tests/fake-snippets-api/routes/datasheets/get.test.ts +0 -54
  29. package/bun-tests/fake-snippets-api/routes/datasheets/list.test.ts +0 -49
  30. package/bun-tests/fake-snippets-api/routes/datasheets/process_all_datasheets.test.ts +0 -22
  31. package/bun-tests/fake-snippets-api/routes/datasheets/run_async_tasks.test.ts +0 -19
  32. package/bun-tests/fake-snippets-api/routes/health.test.ts +0 -9
  33. package/bun-tests/fake-snippets-api/routes/order_files/get.test.ts +0 -48
  34. package/bun-tests/fake-snippets-api/routes/order_files/upload.test.ts +0 -77
  35. package/bun-tests/fake-snippets-api/routes/order_quotes/create.test.ts +0 -33
  36. package/bun-tests/fake-snippets-api/routes/orders/create.test.ts +0 -17
  37. package/bun-tests/fake-snippets-api/routes/orders/get.test.ts +0 -199
  38. package/bun-tests/fake-snippets-api/routes/orders/list.test.ts +0 -30
  39. package/bun-tests/fake-snippets-api/routes/orgs/add_member.test.ts +0 -26
  40. package/bun-tests/fake-snippets-api/routes/orgs/create.test.ts +0 -37
  41. package/bun-tests/fake-snippets-api/routes/orgs/get.test.ts +0 -53
  42. package/bun-tests/fake-snippets-api/routes/orgs/get_member.test.ts +0 -110
  43. package/bun-tests/fake-snippets-api/routes/orgs/list.test.ts +0 -17
  44. package/bun-tests/fake-snippets-api/routes/orgs/list_members.test.ts +0 -24
  45. package/bun-tests/fake-snippets-api/routes/orgs/remove_member.test.ts +0 -81
  46. package/bun-tests/fake-snippets-api/routes/orgs/update.test.ts +0 -151
  47. package/bun-tests/fake-snippets-api/routes/package_builds/get.test.ts +0 -279
  48. package/bun-tests/fake-snippets-api/routes/package_builds/list.test.ts +0 -292
  49. package/bun-tests/fake-snippets-api/routes/package_files/create.test.ts +0 -320
  50. package/bun-tests/fake-snippets-api/routes/package_files/create_or_update.test.ts +0 -603
  51. package/bun-tests/fake-snippets-api/routes/package_files/delete.test.ts +0 -233
  52. package/bun-tests/fake-snippets-api/routes/package_files/download.test.ts +0 -248
  53. package/bun-tests/fake-snippets-api/routes/package_files/get.test.ts +0 -230
  54. package/bun-tests/fake-snippets-api/routes/package_files/list.test.ts +0 -212
  55. package/bun-tests/fake-snippets-api/routes/package_releases/create.test.ts +0 -171
  56. package/bun-tests/fake-snippets-api/routes/package_releases/get.test.ts +0 -181
  57. package/bun-tests/fake-snippets-api/routes/package_releases/get_image_generation_fields.test.ts +0 -38
  58. package/bun-tests/fake-snippets-api/routes/package_releases/list.test.ts +0 -149
  59. package/bun-tests/fake-snippets-api/routes/package_releases/update.test.ts +0 -160
  60. package/bun-tests/fake-snippets-api/routes/packages/add_star.test.ts +0 -129
  61. package/bun-tests/fake-snippets-api/routes/packages/create.test.ts +0 -67
  62. package/bun-tests/fake-snippets-api/routes/packages/delete.test.ts +0 -74
  63. package/bun-tests/fake-snippets-api/routes/packages/fork.test.ts +0 -132
  64. package/bun-tests/fake-snippets-api/routes/packages/get.test.ts +0 -112
  65. package/bun-tests/fake-snippets-api/routes/packages/images.test.ts +0 -72
  66. package/bun-tests/fake-snippets-api/routes/packages/list-1.test.ts +0 -145
  67. package/bun-tests/fake-snippets-api/routes/packages/list-2.test.ts +0 -48
  68. package/bun-tests/fake-snippets-api/routes/packages/list_latest.test.ts +0 -110
  69. package/bun-tests/fake-snippets-api/routes/packages/list_trending.test.ts +0 -103
  70. package/bun-tests/fake-snippets-api/routes/packages/remove_star.test.ts +0 -131
  71. package/bun-tests/fake-snippets-api/routes/packages/update.test.ts +0 -217
  72. package/bun-tests/fake-snippets-api/routes/proxy.test.ts +0 -42
  73. package/bun.lock +0 -2724
  74. package/bunfig.toml +0 -3
  75. package/components.json +0 -20
  76. package/docs/CIRCUIT_JSON_SOURCE_COMPONENT_OVERVIEW.md +0 -151
  77. package/fake-snippets-api/README.md +0 -6
  78. package/fake-snippets-api/biome.json +0 -47
  79. package/fake-snippets-api/bun.lockb +0 -0
  80. package/fake-snippets-api/lib/db/autoload-dev-packages.ts +0 -222
  81. package/fake-snippets-api/lib/db/autoload-packages.json +0 -8
  82. package/fake-snippets-api/lib/db/db-client.ts +0 -1857
  83. package/fake-snippets-api/lib/db/schema.ts +0 -502
  84. package/fake-snippets-api/lib/db/seed.ts +0 -1843
  85. package/fake-snippets-api/lib/index.ts +0 -3
  86. package/fake-snippets-api/lib/middleware/with-ctx-error.ts +0 -26
  87. package/fake-snippets-api/lib/middleware/with-db.ts +0 -15
  88. package/fake-snippets-api/lib/middleware/with-error-handling.ts +0 -24
  89. package/fake-snippets-api/lib/middleware/with-optional-session-auth.ts +0 -53
  90. package/fake-snippets-api/lib/middleware/with-request-logging.ts +0 -54
  91. package/fake-snippets-api/lib/middleware/with-session-auth.ts +0 -102
  92. package/fake-snippets-api/lib/middleware/with-winter-spec.ts +0 -24
  93. package/fake-snippets-api/lib/package_file/generate-fs-sha.ts +0 -20
  94. package/fake-snippets-api/lib/package_file/get-package-file-id-from-file-descriptor.ts +0 -173
  95. package/fake-snippets-api/lib/package_release/find-package-release-id.ts +0 -120
  96. package/fake-snippets-api/lib/public-mapping/public-map-org.ts +0 -34
  97. package/fake-snippets-api/lib/public-mapping/public-map-package-build.ts +0 -48
  98. package/fake-snippets-api/lib/public-mapping/public-map-package-release.ts +0 -88
  99. package/fake-snippets-api/lib/public-mapping/public-map-package.ts +0 -60
  100. package/fake-snippets-api/lib/with-winter-spec.ts +0 -1
  101. package/fake-snippets-api/next-env.d.ts +0 -5
  102. package/fake-snippets-api/routes/api/_fake/ai_reviews/process_review.ts +0 -31
  103. package/fake-snippets-api/routes/api/_fake/datasheets/process_all_datasheets.ts +0 -38
  104. package/fake-snippets-api/routes/api/_fake/db.ts +0 -11
  105. package/fake-snippets-api/routes/api/_fake/move_orders_forward.ts +0 -65
  106. package/fake-snippets-api/routes/api/_fake/received_quotes.ts +0 -112
  107. package/fake-snippets-api/routes/api/_fake/run_async_tasks.ts +0 -12
  108. package/fake-snippets-api/routes/api/_fake/seed.ts +0 -13
  109. package/fake-snippets-api/routes/api/accounts/get.ts +0 -35
  110. package/fake-snippets-api/routes/api/accounts/get_account_balance.ts +0 -22
  111. package/fake-snippets-api/routes/api/accounts/search.ts +0 -20
  112. package/fake-snippets-api/routes/api/accounts/update.ts +0 -32
  113. package/fake-snippets-api/routes/api/ai/[...anyroute].ts +0 -31
  114. package/fake-snippets-api/routes/api/ai.ts +0 -2
  115. package/fake-snippets-api/routes/api/ai_reviews/create.ts +0 -44
  116. package/fake-snippets-api/routes/api/ai_reviews/get.ts +0 -24
  117. package/fake-snippets-api/routes/api/ai_reviews/list.ts +0 -14
  118. package/fake-snippets-api/routes/api/aistream/[...anyroute].ts +0 -65
  119. package/fake-snippets-api/routes/api/autocomplete/create_autocomplete.ts +0 -16
  120. package/fake-snippets-api/routes/api/bug_reports/create.ts +0 -43
  121. package/fake-snippets-api/routes/api/bug_reports/upload_file.ts +0 -113
  122. package/fake-snippets-api/routes/api/datasheets/create.ts +0 -18
  123. package/fake-snippets-api/routes/api/datasheets/get.ts +0 -35
  124. package/fake-snippets-api/routes/api/datasheets/list.ts +0 -29
  125. package/fake-snippets-api/routes/api/github/installations/create_new_installation_redirect.ts +0 -75
  126. package/fake-snippets-api/routes/api/github/repos/list_available.ts +0 -91
  127. package/fake-snippets-api/routes/api/github/repos/refresh.ts +0 -44
  128. package/fake-snippets-api/routes/api/health.ts +0 -9
  129. package/fake-snippets-api/routes/api/internal/sessions/create_without_auth.ts +0 -63
  130. package/fake-snippets-api/routes/api/order_files/get.ts +0 -28
  131. package/fake-snippets-api/routes/api/order_files/upload.ts +0 -46
  132. package/fake-snippets-api/routes/api/order_quotes/create.ts +0 -60
  133. package/fake-snippets-api/routes/api/order_quotes/create_all_vendor_quotes.ts +0 -30
  134. package/fake-snippets-api/routes/api/order_quotes/get.ts +0 -29
  135. package/fake-snippets-api/routes/api/orders/create.ts +0 -70
  136. package/fake-snippets-api/routes/api/orders/get.ts +0 -168
  137. package/fake-snippets-api/routes/api/orders/list.ts +0 -15
  138. package/fake-snippets-api/routes/api/orgs/add_member.ts +0 -52
  139. package/fake-snippets-api/routes/api/orgs/create.ts +0 -48
  140. package/fake-snippets-api/routes/api/orgs/get.ts +0 -39
  141. package/fake-snippets-api/routes/api/orgs/get_member.ts +0 -67
  142. package/fake-snippets-api/routes/api/orgs/list.ts +0 -31
  143. package/fake-snippets-api/routes/api/orgs/list_members.ts +0 -106
  144. package/fake-snippets-api/routes/api/orgs/remove_member.ts +0 -46
  145. package/fake-snippets-api/routes/api/orgs/update.ts +0 -118
  146. package/fake-snippets-api/routes/api/package_builds/get.ts +0 -70
  147. package/fake-snippets-api/routes/api/package_builds/list.ts +0 -97
  148. package/fake-snippets-api/routes/api/package_files/create.ts +0 -135
  149. package/fake-snippets-api/routes/api/package_files/create_or_update.ts +0 -194
  150. package/fake-snippets-api/routes/api/package_files/delete.ts +0 -109
  151. package/fake-snippets-api/routes/api/package_files/download.ts +0 -87
  152. package/fake-snippets-api/routes/api/package_files/get.ts +0 -68
  153. package/fake-snippets-api/routes/api/package_files/list.ts +0 -54
  154. package/fake-snippets-api/routes/api/package_releases/create.ts +0 -109
  155. package/fake-snippets-api/routes/api/package_releases/get.ts +0 -137
  156. package/fake-snippets-api/routes/api/package_releases/list.ts +0 -85
  157. package/fake-snippets-api/routes/api/package_releases/rebuild.ts +0 -66
  158. package/fake-snippets-api/routes/api/package_releases/update.ts +0 -122
  159. package/fake-snippets-api/routes/api/packages/add_star.ts +0 -84
  160. package/fake-snippets-api/routes/api/packages/create.ts +0 -136
  161. package/fake-snippets-api/routes/api/packages/delete.ts +0 -41
  162. package/fake-snippets-api/routes/api/packages/fork.ts +0 -165
  163. package/fake-snippets-api/routes/api/packages/generate_from_jlcpcb.ts +0 -111
  164. package/fake-snippets-api/routes/api/packages/get.ts +0 -81
  165. package/fake-snippets-api/routes/api/packages/images/[owner_github_username]/[unscoped_name]/[view_format].ts +0 -119
  166. package/fake-snippets-api/routes/api/packages/list.ts +0 -105
  167. package/fake-snippets-api/routes/api/packages/list_latest.ts +0 -29
  168. package/fake-snippets-api/routes/api/packages/list_trending.ts +0 -43
  169. package/fake-snippets-api/routes/api/packages/remove_star.ts +0 -70
  170. package/fake-snippets-api/routes/api/packages/search.ts +0 -19
  171. package/fake-snippets-api/routes/api/packages/update.ts +0 -112
  172. package/fake-snippets-api/routes/api/packages/update_ai_description.ts +0 -37
  173. package/fake-snippets-api/routes/api/proxy.ts +0 -128
  174. package/fake-snippets-api/routes/api/snippets/add_star.ts +0 -62
  175. package/fake-snippets-api/routes/api/snippets/create.ts +0 -184
  176. package/fake-snippets-api/routes/api/snippets/delete.ts +0 -41
  177. package/fake-snippets-api/routes/api/snippets/download.ts +0 -162
  178. package/fake-snippets-api/routes/api/snippets/generate_from_jlcpcb.ts +0 -48
  179. package/fake-snippets-api/routes/api/snippets/get.ts +0 -83
  180. package/fake-snippets-api/routes/api/snippets/get_image.ts +0 -65
  181. package/fake-snippets-api/routes/api/snippets/images/[author]/[snippet_name]/[typeFormat].ts +0 -80
  182. package/fake-snippets-api/routes/api/snippets/list.ts +0 -151
  183. package/fake-snippets-api/routes/api/snippets/list_latest.ts +0 -13
  184. package/fake-snippets-api/routes/api/snippets/list_trending.ts +0 -38
  185. package/fake-snippets-api/routes/api/snippets/remove_star.ts +0 -42
  186. package/fake-snippets-api/routes/api/snippets/search.ts +0 -18
  187. package/fake-snippets-api/routes/api/snippets/update.ts +0 -114
  188. package/fake-snippets-api/utils/normalizeProjectFilePath.ts +0 -60
  189. package/fake-snippets-api/utils/order-steps.ts +0 -20
  190. package/favicon.ico +0 -0
  191. package/index.html +0 -125
  192. package/landing.html +0 -23
  193. package/playwright-tests/ai-page.spec.ts +0 -19
  194. package/playwright-tests/circuit-json-import.spec.ts +0 -133
  195. package/playwright-tests/cmd-click.spec.ts +0 -43
  196. package/playwright-tests/dashboard-page.spec.ts +0 -10
  197. package/playwright-tests/editor-page.spec.ts +0 -15
  198. package/playwright-tests/exampleCircuitJson.ts +0 -498
  199. package/playwright-tests/files-dialog.spec.ts +0 -19
  200. package/playwright-tests/footprint-dialog/footprint-dialog.spec.ts +0 -27
  201. package/playwright-tests/footprint-dialog/footprint-insertion.spec.ts +0 -38
  202. package/playwright-tests/footprint-dialog/footprint-preview.spec.ts +0 -34
  203. package/playwright-tests/footprint-dialog/footprint-selection.spec.ts +0 -29
  204. package/playwright-tests/handle-manual-edits.spec.ts +0 -55
  205. package/playwright-tests/home-page.spec.ts +0 -10
  206. package/playwright-tests/images.spec.ts +0 -17
  207. package/playwright-tests/manual-edits.spec.ts +0 -89
  208. package/playwright-tests/preview-page.spec.ts +0 -7
  209. package/playwright-tests/profile-page.spec.ts +0 -108
  210. package/playwright-tests/quickstart-page.spec.ts +0 -10
  211. package/playwright-tests/search-links.spec.ts +0 -21
  212. package/playwright-tests/search.spec.ts +0 -27
  213. package/playwright-tests/snapshots/ai-page.spec.ts-AI-Page-lg.png +0 -0
  214. package/playwright-tests/snapshots/ai-page.spec.ts-AI-Page-md.png +0 -0
  215. package/playwright-tests/snapshots/ai-page.spec.ts-AI-Page-xs.png +0 -0
  216. package/playwright-tests/snapshots/cmd-click.spec.ts-underlined-imports.png +0 -0
  217. package/playwright-tests/snapshots/dashboard-page.spec.ts-Dashboard-page-lg.png +0 -0
  218. package/playwright-tests/snapshots/dashboard-page.spec.ts-Dashboard-page-md.png +0 -0
  219. package/playwright-tests/snapshots/dashboard-page.spec.ts-Dashboard-page-xs.png +0 -0
  220. package/playwright-tests/snapshots/editor-page.spec.ts-editor-with-snippet.png +0 -0
  221. package/playwright-tests/snapshots/error-fallback.spec.ts-error-fallback-lg.png +0 -0
  222. package/playwright-tests/snapshots/error-fallback.spec.ts-error-fallback-md.png +0 -0
  223. package/playwright-tests/snapshots/error-fallback.spec.ts-error-fallback-xs.png +0 -0
  224. package/playwright-tests/snapshots/files-dialog.spec.ts-view-snippet-files.png +0 -0
  225. package/playwright-tests/snapshots/footprint-dialog/footprint-dialog.spec.ts-footprint-preview-lg.png +0 -0
  226. package/playwright-tests/snapshots/footprint-dialog/footprint-dialog.spec.ts-footprint-preview-md.png +0 -0
  227. package/playwright-tests/snapshots/footprint-dialog/footprint-dialog.spec.ts-footprint-preview-xs.png +0 -0
  228. package/playwright-tests/snapshots/footprint-dialog/footprint-insertion.spec.ts-footprint-insertion-lg.png +0 -0
  229. package/playwright-tests/snapshots/footprint-dialog/footprint-insertion.spec.ts-footprint-insertion-md.png +0 -0
  230. package/playwright-tests/snapshots/footprint-dialog/footprint-insertion.spec.ts-footprint-insertion-xs.png +0 -0
  231. package/playwright-tests/snapshots/footprint-dialog/footprint-preview.spec.ts-footprint-preview-lg.png +0 -0
  232. package/playwright-tests/snapshots/footprint-dialog/footprint-preview.spec.ts-footprint-preview-md.png +0 -0
  233. package/playwright-tests/snapshots/footprint-dialog/footprint-preview.spec.ts-footprint-preview-xs.png +0 -0
  234. package/playwright-tests/snapshots/footprint-dialog/footprint-selection.spec.ts-footprint-preview-lg.png +0 -0
  235. package/playwright-tests/snapshots/footprint-dialog/footprint-selection.spec.ts-footprint-preview-md.png +0 -0
  236. package/playwright-tests/snapshots/footprint-dialog/footprint-selection.spec.ts-footprint-preview-xs.png +0 -0
  237. package/playwright-tests/snapshots/handle-manual-edits.spec.ts-handle-manual-edits.png +0 -0
  238. package/playwright-tests/snapshots/home-page.spec.ts-Home-page-lg.png +0 -0
  239. package/playwright-tests/snapshots/home-page.spec.ts-Home-page-md.png +0 -0
  240. package/playwright-tests/snapshots/home-page.spec.ts-Home-page-xs.png +0 -0
  241. package/playwright-tests/snapshots/images.spec.ts-pcb-image.png +0 -0
  242. package/playwright-tests/snapshots/images.spec.ts-schematic-image.png +0 -0
  243. package/playwright-tests/snapshots/manual-edits.spec.ts-editor-manual-edits.png +0 -0
  244. package/playwright-tests/snapshots/manual-edits.spec.ts-manual-edits-view.png +0 -0
  245. package/playwright-tests/snapshots/preview-page.spec.ts-preview-snippet-pcb.png +0 -0
  246. package/playwright-tests/snapshots/profile-page.spec.ts-profile-page-before-delete.png +0 -0
  247. package/playwright-tests/snapshots/profile-page.spec.ts-profile-page-delete-dialog.png +0 -0
  248. package/playwright-tests/snapshots/profile-page.spec.ts-profile-page-dropdown-open.png +0 -0
  249. package/playwright-tests/snapshots/profile-page.spec.ts-profile-page-snippets-tab.png +0 -0
  250. package/playwright-tests/snapshots/profile-page.spec.ts-profile-page-starred-tab.png +0 -0
  251. package/playwright-tests/snapshots/profile-page.spec.ts-snippet-page-open-after-star-click.png +0 -0
  252. package/playwright-tests/snapshots/quickstart-page.spec.ts-Quickstart-Pagelg.png +0 -0
  253. package/playwright-tests/snapshots/quickstart-page.spec.ts-Quickstart-Pagemd.png +0 -0
  254. package/playwright-tests/snapshots/quickstart-page.spec.ts-Quickstart-Pagexs.png +0 -0
  255. package/playwright-tests/snapshots/search-links.spec.ts-search-links.png +0 -0
  256. package/playwright-tests/snapshots/search.spec.ts-search-lg.png +0 -0
  257. package/playwright-tests/snapshots/search.spec.ts-search-md.png +0 -0
  258. package/playwright-tests/snapshots/search.spec.ts-search-xs.png +0 -0
  259. package/playwright-tests/snapshots/star.spec.ts-remove-star-button.png +0 -0
  260. package/playwright-tests/snapshots/star.spec.ts-star-button.png +0 -0
  261. package/playwright-tests/snapshots/update-description.spec.ts-update-description.png +0 -0
  262. package/playwright-tests/snapshots/view-snippet.spec.ts-view-snippet-after-lg.png +0 -0
  263. package/playwright-tests/snapshots/view-snippet.spec.ts-view-snippet-after-md.png +0 -0
  264. package/playwright-tests/snapshots/view-snippet.spec.ts-view-snippet-after-xs.png +0 -0
  265. package/playwright-tests/snapshots/view-snippet.spec.ts-view-snippet-before-lg.png +0 -0
  266. package/playwright-tests/snapshots/view-snippet.spec.ts-view-snippet-before-md.png +0 -0
  267. package/playwright-tests/snapshots/view-snippet.spec.ts-view-snippet-before-xs.png +0 -0
  268. package/playwright-tests/snapshots/view-snippet.spec.ts-view-snippet-files.png +0 -0
  269. package/playwright-tests/star.spec.ts +0 -40
  270. package/playwright-tests/update-description.spec.ts +0 -18
  271. package/playwright-tests/view-snippet.spec.ts +0 -35
  272. package/playwright-tests/viewports.ts +0 -5
  273. package/playwright.config.ts +0 -27
  274. package/postcss.config.js +0 -6
  275. package/public/robots.txt +0 -9
  276. package/renovate.json +0 -25
  277. package/scripts/generate-image-sizes.ts +0 -57
  278. package/scripts/generate-sitemap.ts +0 -103
  279. package/scripts/generate_bundle_stats.js +0 -208
  280. package/scripts/snapshot.ts +0 -35
  281. package/src/App.tsx +0 -314
  282. package/src/ContextProviders.tsx +0 -94
  283. package/src/assets/originals/editor_example_1.webp +0 -0
  284. package/src/assets/originals/editor_example_1_more_square.webp +0 -0
  285. package/src/assets/originals/editor_example_2.webp +0 -0
  286. package/src/assets/originals/example_schematic.webp +0 -0
  287. package/src/components/AiChatMessage.tsx +0 -86
  288. package/src/components/Analytics.tsx +0 -23
  289. package/src/components/BomTable.tsx +0 -69
  290. package/src/components/ChatInput.tsx +0 -53
  291. package/src/components/CircuitJsonImportDialog.tsx +0 -269
  292. package/src/components/CircuitToSvgWithMouseControl.tsx +0 -78
  293. package/src/components/CmdKMenu.tsx +0 -809
  294. package/src/components/CreateNewSnippetWithAiHero.tsx +0 -81
  295. package/src/components/CreateReleaseDialog.tsx +0 -124
  296. package/src/components/DownloadButtonAndMenu.tsx +0 -443
  297. package/src/components/ErrorFallback.tsx +0 -25
  298. package/src/components/ErrorOutline.tsx +0 -35
  299. package/src/components/ErrorTabContent.tsx +0 -122
  300. package/src/components/ExpandableText.tsx +0 -29
  301. package/src/components/FAQ.tsx +0 -189
  302. package/src/components/FileSidebar.tsx +0 -271
  303. package/src/components/Footer.tsx +0 -144
  304. package/src/components/GithubAvatarWithFallback.tsx +0 -35
  305. package/src/components/Header.tsx +0 -202
  306. package/src/components/Header2.tsx +0 -202
  307. package/src/components/HeaderDropdown.tsx +0 -88
  308. package/src/components/HeaderLogin.tsx +0 -105
  309. package/src/components/HiddenFilesDropdown.tsx +0 -42
  310. package/src/components/ImageWithFallback.tsx +0 -37
  311. package/src/components/LatestSnippets.tsx +0 -39
  312. package/src/components/NotFound.tsx +0 -37
  313. package/src/components/OptimizedImage.tsx +0 -100
  314. package/src/components/PackageBreadcrumb.tsx +0 -105
  315. package/src/components/PackageBuildsPage/ErrorObject.ts +0 -12
  316. package/src/components/PackageBuildsPage/capitalCase.ts +0 -4
  317. package/src/components/PackageBuildsPage/getColorForDisplayStatus.ts +0 -17
  318. package/src/components/PackageCard.tsx +0 -191
  319. package/src/components/PackageCardSkeleton.tsx +0 -17
  320. package/src/components/PackageLink.tsx +0 -29
  321. package/src/components/PackageSearchResults.tsx +0 -81
  322. package/src/components/PackagesList.tsx +0 -71
  323. package/src/components/PcbViewerWithContainerHeight.tsx +0 -47
  324. package/src/components/PrefetchPageLink.tsx +0 -114
  325. package/src/components/PreviewEmptyState.tsx +0 -16
  326. package/src/components/ProfileRouter.tsx +0 -30
  327. package/src/components/RunButton.tsx +0 -27
  328. package/src/components/SearchComponent.tsx +0 -282
  329. package/src/components/SentryNotFoundReporter.tsx +0 -44
  330. package/src/components/SnippetTypeIcon.tsx +0 -60
  331. package/src/components/StaticPreviewContent.tsx +0 -89
  332. package/src/components/StaticViewSnippetSidebar.tsx +0 -100
  333. package/src/components/SuspenseRunFrame.tsx +0 -28
  334. package/src/components/TableViewer/CircuitJsonTableViewer.tsx +0 -316
  335. package/src/components/TableViewer/ClickableText.tsx +0 -21
  336. package/src/components/TableViewer/HeaderCell.tsx +0 -27
  337. package/src/components/TableViewer/Modal.tsx +0 -39
  338. package/src/components/TrendingPackagesCarousel.tsx +0 -79
  339. package/src/components/TypeBadge.tsx +0 -31
  340. package/src/components/UserCard.tsx +0 -80
  341. package/src/components/ViewPackagePage/components/ShikiCodeViewer.tsx +0 -49
  342. package/src/components/ViewPackagePage/components/build-status.tsx +0 -38
  343. package/src/components/ViewPackagePage/components/important-files-view.tsx +0 -611
  344. package/src/components/ViewPackagePage/components/main-content-header.tsx +0 -181
  345. package/src/components/ViewPackagePage/components/main-content-view-selector.tsx +0 -167
  346. package/src/components/ViewPackagePage/components/markdown-viewer.tsx +0 -88
  347. package/src/components/ViewPackagePage/components/mobile-sidebar.tsx +0 -301
  348. package/src/components/ViewPackagePage/components/package-header.tsx +0 -264
  349. package/src/components/ViewPackagePage/components/preview-image-squares.tsx +0 -47
  350. package/src/components/ViewPackagePage/components/repo-page-content.tsx +0 -266
  351. package/src/components/ViewPackagePage/components/sidebar-about-section.tsx +0 -223
  352. package/src/components/ViewPackagePage/components/sidebar-packages-section.tsx +0 -16
  353. package/src/components/ViewPackagePage/components/sidebar-releases-section.tsx +0 -126
  354. package/src/components/ViewPackagePage/components/sidebar.tsx +0 -29
  355. package/src/components/ViewPackagePage/components/tab-views/3d-view.tsx +0 -43
  356. package/src/components/ViewPackagePage/components/tab-views/bom-view.tsx +0 -30
  357. package/src/components/ViewPackagePage/components/tab-views/files-view.tsx +0 -295
  358. package/src/components/ViewPackagePage/components/tab-views/pcb-view.tsx +0 -35
  359. package/src/components/ViewPackagePage/components/tab-views/schematic-view.tsx +0 -38
  360. package/src/components/ViewPackagePage/components/theme-toggle.tsx +0 -40
  361. package/src/components/ViewPackagePage/hooks/use-current-package-circuit-json.ts +0 -46
  362. package/src/components/ViewPackagePage/hooks/use-mobile.tsx +0 -19
  363. package/src/components/ViewPackagePage/hooks/use-toast.tsx +0 -69
  364. package/src/components/ViewPackagePage/utils/fuzz-search.ts +0 -121
  365. package/src/components/ViewPackagePage/utils/get-license-content.ts +0 -119
  366. package/src/components/ViewPackagePage/utils/is-hidden-file.ts +0 -55
  367. package/src/components/ViewPackagePage/utils/is-package-file-important.ts +0 -35
  368. package/src/components/ViewPackagePage/utils/is-within-directory.ts +0 -32
  369. package/src/components/dialogs/GitHubRepositorySelector.tsx +0 -300
  370. package/src/components/dialogs/confirm-delete-package-dialog.tsx +0 -74
  371. package/src/components/dialogs/confirm-discard-changes-dialog.tsx +0 -73
  372. package/src/components/dialogs/create-use-dialog.tsx +0 -40
  373. package/src/components/dialogs/edit-description-dialog.tsx +0 -96
  374. package/src/components/dialogs/edit-package-details-dialog.tsx +0 -474
  375. package/src/components/dialogs/files-dialog.tsx +0 -70
  376. package/src/components/dialogs/import-component-dialog.tsx +0 -32
  377. package/src/components/dialogs/import-package-dialog.tsx +0 -90
  378. package/src/components/dialogs/new-package-save-prompt-dialog.tsx +0 -199
  379. package/src/components/dialogs/package-visibility-settings-dialog.tsx +0 -93
  380. package/src/components/dialogs/pcb-download-dialog.tsx +0 -113
  381. package/src/components/dialogs/rename-package-dialog.tsx +0 -86
  382. package/src/components/dialogs/rename-snippet-dialog.tsx +0 -81
  383. package/src/components/dialogs/update-package-description-dialog.tsx +0 -96
  384. package/src/components/dialogs/view-ts-files-dialog.tsx +0 -664
  385. package/src/components/organization/OrganizationCard.tsx +0 -202
  386. package/src/components/organization/OrganizationCardSkeleton.tsx +0 -55
  387. package/src/components/organization/OrganizationHeader.tsx +0 -140
  388. package/src/components/organization/OrganizationMembers.tsx +0 -117
  389. package/src/components/package-port/CodeAndPreview.tsx +0 -253
  390. package/src/components/package-port/CodeEditor.tsx +0 -866
  391. package/src/components/package-port/CodeEditorHeader.tsx +0 -427
  392. package/src/components/package-port/EditorNav.tsx +0 -606
  393. package/src/components/package-port/GlobalFindReplace.tsx +0 -681
  394. package/src/components/package-port/QuickOpen.tsx +0 -241
  395. package/src/components/preview/BuildsList.tsx +0 -237
  396. package/src/components/preview/ConnectedPackagesList.tsx +0 -229
  397. package/src/components/preview/ConnectedRepoOverview.tsx +0 -588
  398. package/src/components/preview/PackageReleasesDashboard.tsx +0 -228
  399. package/src/components/preview/index.tsx +0 -54
  400. package/src/components/ui/accordion.tsx +0 -55
  401. package/src/components/ui/alert-dialog.tsx +0 -139
  402. package/src/components/ui/alert.tsx +0 -59
  403. package/src/components/ui/aspect-ratio.tsx +0 -5
  404. package/src/components/ui/avatar.tsx +0 -48
  405. package/src/components/ui/badge.tsx +0 -36
  406. package/src/components/ui/breadcrumb.tsx +0 -118
  407. package/src/components/ui/button.tsx +0 -58
  408. package/src/components/ui/calendar.tsx +0 -73
  409. package/src/components/ui/card.tsx +0 -76
  410. package/src/components/ui/carousel.tsx +0 -260
  411. package/src/components/ui/chart.tsx +0 -363
  412. package/src/components/ui/checkbox.tsx +0 -28
  413. package/src/components/ui/collapsible.tsx +0 -9
  414. package/src/components/ui/combobox.tsx +0 -178
  415. package/src/components/ui/command.tsx +0 -151
  416. package/src/components/ui/context-menu.tsx +0 -202
  417. package/src/components/ui/dialog.tsx +0 -120
  418. package/src/components/ui/drawer.tsx +0 -116
  419. package/src/components/ui/dropdown-menu.tsx +0 -203
  420. package/src/components/ui/form.tsx +0 -182
  421. package/src/components/ui/hover-card.tsx +0 -27
  422. package/src/components/ui/input.tsx +0 -25
  423. package/src/components/ui/label.tsx +0 -24
  424. package/src/components/ui/menubar.tsx +0 -238
  425. package/src/components/ui/navigation-menu.tsx +0 -129
  426. package/src/components/ui/pagination.tsx +0 -121
  427. package/src/components/ui/popover.tsx +0 -31
  428. package/src/components/ui/progress.tsx +0 -26
  429. package/src/components/ui/radio-group.tsx +0 -42
  430. package/src/components/ui/resizable.tsx +0 -43
  431. package/src/components/ui/role-badge.tsx +0 -27
  432. package/src/components/ui/scroll-area.tsx +0 -46
  433. package/src/components/ui/searchable-select.tsx +0 -94
  434. package/src/components/ui/select.tsx +0 -162
  435. package/src/components/ui/separator.tsx +0 -29
  436. package/src/components/ui/sheet.tsx +0 -141
  437. package/src/components/ui/skeleton.tsx +0 -18
  438. package/src/components/ui/slider.tsx +0 -26
  439. package/src/components/ui/sonner.tsx +0 -30
  440. package/src/components/ui/switch.tsx +0 -27
  441. package/src/components/ui/table.tsx +0 -120
  442. package/src/components/ui/tabs.tsx +0 -53
  443. package/src/components/ui/textarea.tsx +0 -24
  444. package/src/components/ui/toast.tsx +0 -128
  445. package/src/components/ui/toaster.tsx +0 -1
  446. package/src/components/ui/toggle-group.tsx +0 -59
  447. package/src/components/ui/toggle.tsx +0 -43
  448. package/src/components/ui/tooltip.tsx +0 -28
  449. package/src/components/ui/tree-view.tsx +0 -563
  450. package/src/entry-server.tsx +0 -12
  451. package/src/hooks/use-account-balance.ts +0 -25
  452. package/src/hooks/use-add-org-member-mutation.ts +0 -51
  453. package/src/hooks/use-ai-api.ts +0 -35
  454. package/src/hooks/use-ai-review.ts +0 -31
  455. package/src/hooks/use-axios.ts +0 -20
  456. package/src/hooks/use-code-completion-ai-api.ts +0 -11
  457. package/src/hooks/use-copy-to-clipboard.ts +0 -26
  458. package/src/hooks/use-create-datasheet.ts +0 -30
  459. package/src/hooks/use-create-org-mutation.ts +0 -38
  460. package/src/hooks/use-create-package-files-mutation.ts +0 -76
  461. package/src/hooks/use-create-package-mutation.ts +0 -54
  462. package/src/hooks/use-create-package-release-mutation.ts +0 -107
  463. package/src/hooks/use-create-release-dialog.ts +0 -160
  464. package/src/hooks/use-create-snippet-mutation.ts +0 -65
  465. package/src/hooks/use-current-package-id.ts +0 -16
  466. package/src/hooks/use-current-package-info.ts +0 -32
  467. package/src/hooks/use-current-package-release.ts +0 -48
  468. package/src/hooks/use-current-snippet-id.ts +0 -78
  469. package/src/hooks/use-current-snippet.ts +0 -24
  470. package/src/hooks/use-datasheet.ts +0 -18
  471. package/src/hooks/use-debounce.ts +0 -17
  472. package/src/hooks/use-delete-package.ts +0 -45
  473. package/src/hooks/use-download-zip.ts +0 -50
  474. package/src/hooks/use-fork-package-mutation.ts +0 -61
  475. package/src/hooks/use-global-store.ts +0 -36
  476. package/src/hooks/use-hotkey.ts +0 -116
  477. package/src/hooks/use-hydration.ts +0 -30
  478. package/src/hooks/use-is-using-fake-api.ts +0 -3
  479. package/src/hooks/use-jlcpcb-component-import.tsx +0 -164
  480. package/src/hooks/use-list-org-members.ts +0 -32
  481. package/src/hooks/use-list-user-orgs.ts +0 -25
  482. package/src/hooks/use-now.ts +0 -12
  483. package/src/hooks/use-org-by-github-handle.ts +0 -24
  484. package/src/hooks/use-org.ts +0 -24
  485. package/src/hooks/use-organization.ts +0 -42
  486. package/src/hooks/use-package-as-snippet.ts +0 -81
  487. package/src/hooks/use-package-builds.ts +0 -91
  488. package/src/hooks/use-package-by-package-id.ts +0 -24
  489. package/src/hooks/use-package-by-package-name.ts +0 -29
  490. package/src/hooks/use-package-details-form.ts +0 -146
  491. package/src/hooks/use-package-files.ts +0 -122
  492. package/src/hooks/use-package-release-by-id-or-version.ts +0 -45
  493. package/src/hooks/use-package-release-images.ts +0 -105
  494. package/src/hooks/use-package-release.ts +0 -124
  495. package/src/hooks/use-package-stars.ts +0 -163
  496. package/src/hooks/use-package.ts +0 -24
  497. package/src/hooks/use-packages-base-api-url.ts +0 -3
  498. package/src/hooks/use-preview-images.ts +0 -78
  499. package/src/hooks/use-rebuild-package-release-mutation.ts +0 -41
  500. package/src/hooks/use-remove-org-member-mutation.ts +0 -32
  501. package/src/hooks/use-request-ai-review-mutation.ts +0 -54
  502. package/src/hooks/use-run-tsx/eval-compiled-js.ts +0 -9
  503. package/src/hooks/use-shiki-highlighter.ts +0 -33
  504. package/src/hooks/use-sign-in.ts +0 -24
  505. package/src/hooks/use-snippet-by-name.ts +0 -25
  506. package/src/hooks/use-snippet.ts +0 -24
  507. package/src/hooks/use-toast.tsx +0 -90
  508. package/src/hooks/use-update-ai-description-mutation.ts +0 -42
  509. package/src/hooks/use-update-org-mutation.ts +0 -41
  510. package/src/hooks/use-url-params.ts +0 -31
  511. package/src/hooks/use-warn-user-on-page-change.ts +0 -90
  512. package/src/hooks/useFileManagement.ts +0 -602
  513. package/src/hooks/useForkPackageMutation.ts +0 -50
  514. package/src/hooks/useForkSnippetMutation.ts +0 -53
  515. package/src/hooks/useOptimizedPackageFilesLoader.ts +0 -136
  516. package/src/hooks/usePackageFilesLoader.ts +0 -58
  517. package/src/hooks/useUpdatePackageFilesMutation.ts +0 -131
  518. package/src/hooks/useUpdatePackageMutation.ts +0 -63
  519. package/src/index.css +0 -108
  520. package/src/lib/__tests__/constants.test.ts +0 -66
  521. package/src/lib/base64ToBytes.ts +0 -5
  522. package/src/lib/bytesToBase64.ts +0 -4
  523. package/src/lib/codemirror/basic-setup.ts +0 -67
  524. package/src/lib/constants.ts +0 -23
  525. package/src/lib/decodeUrlHashToFsMap.ts +0 -17
  526. package/src/lib/decodeUrlHashToText.ts +0 -15
  527. package/src/lib/defaultCodeForBlankCode.tsx +0 -7
  528. package/src/lib/download-fns/createBlobURL.ts +0 -4
  529. package/src/lib/download-fns/download-assembly-svg.ts +0 -12
  530. package/src/lib/download-fns/download-circuit-json-fn.ts +0 -12
  531. package/src/lib/download-fns/download-circuit-png.ts +0 -96
  532. package/src/lib/download-fns/download-dsn-file-fn.ts +0 -12
  533. package/src/lib/download-fns/download-fabrication-files.ts +0 -233
  534. package/src/lib/download-fns/download-gltf-from-circuit-json.ts +0 -44
  535. package/src/lib/download-fns/download-gltf.ts +0 -43
  536. package/src/lib/download-fns/download-kicad-files.ts +0 -38
  537. package/src/lib/download-fns/download-pcb-svg.ts +0 -35
  538. package/src/lib/download-fns/download-png-utils.ts +0 -31
  539. package/src/lib/download-fns/download-readable-netlist.ts +0 -12
  540. package/src/lib/download-fns/download-schematic-svg.ts +0 -12
  541. package/src/lib/download-fns/download-simple-route-json.ts +0 -17
  542. package/src/lib/download-fns/download-spice-file.ts +0 -13
  543. package/src/lib/download-fns/download-step.ts +0 -12
  544. package/src/lib/encodeFsMapToUrlHash.ts +0 -13
  545. package/src/lib/encodeTextToUrlHash.ts +0 -17
  546. package/src/lib/get-snippet-template.ts +0 -26
  547. package/src/lib/getLicenseFromLicenseContent.ts +0 -67
  548. package/src/lib/handleManualEditsImport.tsx +0 -65
  549. package/src/lib/handleManualEditsImportWithSupportForMultipleFiles.ts +0 -67
  550. package/src/lib/normalize-svg-for-tile.ts +0 -50
  551. package/src/lib/populate-query-cache-with-ssr-data.ts +0 -53
  552. package/src/lib/posthog.ts +0 -17
  553. package/src/lib/react-query-api-failure-tracking.ts +0 -148
  554. package/src/lib/sentry.ts +0 -14
  555. package/src/lib/templates/blank-3d-model-template.ts +0 -12
  556. package/src/lib/templates/blank-circuit-board-template.ts +0 -20
  557. package/src/lib/templates/blank-footprint-template.ts +0 -29
  558. package/src/lib/templates/blank-package-template.ts +0 -21
  559. package/src/lib/templates/blinking-led-board-template.ts +0 -64
  560. package/src/lib/templates/usb-c-led-flashlight-template.ts +0 -22
  561. package/src/lib/ts-lib-cache.ts +0 -162
  562. package/src/lib/types.ts +0 -31
  563. package/src/lib/utils/checkIfManualEditsImported.ts +0 -20
  564. package/src/lib/utils/findTargetFile.ts +0 -97
  565. package/src/lib/utils/formatTimeAgo.ts +0 -10
  566. package/src/lib/utils/getPackagePreviewImageUrl.ts +0 -15
  567. package/src/lib/utils/index.ts +0 -6
  568. package/src/lib/utils/isComponentExported.ts +0 -10
  569. package/src/lib/utils/isUuid.ts +0 -5
  570. package/src/lib/utils/isValidFileName.ts +0 -17
  571. package/src/lib/utils/load-prettier.ts +0 -23
  572. package/src/lib/utils/member-role.tsx +0 -61
  573. package/src/lib/utils/package-utils.ts +0 -7
  574. package/src/lib/utils/parseJsonOrNull.ts +0 -8
  575. package/src/lib/utils/pcbManualEditEventHandler.ts +0 -156
  576. package/src/lib/utils/resolveRelativePath.ts +0 -40
  577. package/src/lib/utils/timeAgo.ts +0 -20
  578. package/src/lib/utils/toastManualEditConflicts.tsx +0 -39
  579. package/src/lib/utils/transformFilesToTreeData.tsx +0 -195
  580. package/src/main.tsx +0 -15
  581. package/src/pages/404.tsx +0 -23
  582. package/src/pages/authorize.tsx +0 -208
  583. package/src/pages/create-organization.tsx +0 -169
  584. package/src/pages/dashboard.tsx +0 -254
  585. package/src/pages/datasheet.tsx +0 -198
  586. package/src/pages/datasheets.tsx +0 -148
  587. package/src/pages/dev-login.tsx +0 -68
  588. package/src/pages/editor.tsx +0 -54
  589. package/src/pages/landing.tsx +0 -237
  590. package/src/pages/latest.tsx +0 -145
  591. package/src/pages/my-orders.tsx +0 -54
  592. package/src/pages/organization-profile.tsx +0 -197
  593. package/src/pages/organization-settings.tsx +0 -571
  594. package/src/pages/package-editor.tsx +0 -60
  595. package/src/pages/preview-release.tsx +0 -209
  596. package/src/pages/quickstart.tsx +0 -258
  597. package/src/pages/release-builds.tsx +0 -99
  598. package/src/pages/release-detail.tsx +0 -211
  599. package/src/pages/releases.tsx +0 -55
  600. package/src/pages/search.tsx +0 -288
  601. package/src/pages/settings-redirect.tsx +0 -44
  602. package/src/pages/trending.tsx +0 -201
  603. package/src/pages/user-profile.tsx +0 -330
  604. package/src/pages/user-settings.tsx +0 -161
  605. package/src/pages/view-package.tsx +0 -90
  606. package/src/types/package.ts +0 -4
  607. package/src/vite-env.d.ts +0 -1
  608. package/tailwind.config.js +0 -47
  609. package/tsconfig.json +0 -30
  610. package/vercel.json +0 -50
  611. package/vite.config.ts +0 -236
  612. package/winterspec.config.ts +0 -6
@@ -1,266 +0,0 @@
1
- import { useState, useEffect, useMemo } from "react"
2
- import MainContentHeader from "./main-content-header"
3
- import Sidebar from "./sidebar"
4
- import MobileSidebar from "./mobile-sidebar"
5
- import ImportantFilesView from "./important-files-view"
6
-
7
- // Tab Views
8
- import FilesView from "./tab-views/files-view"
9
- import ThreeDView from "./tab-views/3d-view"
10
- import PCBView from "./tab-views/pcb-view"
11
- import SchematicView from "./tab-views/schematic-view"
12
- import BOMView from "./tab-views/bom-view"
13
- import {
14
- isPackageFileImportant,
15
- scorePackageFileImportance,
16
- } from "../utils/is-package-file-important"
17
- import Header from "@/components/Header"
18
- import Footer from "@/components/Footer"
19
- import PackageHeader from "./package-header"
20
- import { useGlobalStore } from "@/hooks/use-global-store"
21
- import type {
22
- Package,
23
- PackageFile as ApiPackageFile,
24
- } from "fake-snippets-api/lib/db/schema"
25
- import { useRequestAiReviewMutation } from "@/hooks/use-request-ai-review-mutation"
26
- import { useUpdateAiDescriptionMutation } from "@/hooks/use-update-ai-description-mutation"
27
- import { useAiReview } from "@/hooks/use-ai-review"
28
- import { useQueryClient } from "react-query"
29
- import SidebarReleasesSection from "./sidebar-releases-section"
30
-
31
- interface PackageFile extends ApiPackageFile {
32
- file_content?: string
33
- content_text?: string | null // Keep for backward compatibility
34
- }
35
-
36
- interface RepoPageContentProps {
37
- packageFiles?: PackageFile[]
38
- importantFilePaths?: string[]
39
- packageInfo?: Package
40
- packageRelease?: import("fake-snippets-api/lib/db/schema").PackageRelease
41
- onFileClicked?: (file: PackageFile) => void
42
- onEditClicked?: () => void
43
- arePackageFilesFetched?: boolean
44
- }
45
-
46
- export default function RepoPageContent({
47
- packageFiles,
48
- arePackageFilesFetched = false,
49
- packageInfo,
50
- packageRelease,
51
- onFileClicked,
52
- onEditClicked,
53
- }: RepoPageContentProps) {
54
- const [activeView, setActiveView] = useState<string>("files")
55
- const [pendingAiReviewId, setPendingAiReviewId] = useState<string | null>(
56
- null,
57
- )
58
- const [licenseFileRequested, setLicenseFileRequested] =
59
- useState<boolean>(false)
60
- const queryClient = useQueryClient()
61
- const { data: aiReview } = useAiReview(pendingAiReviewId, {
62
- refetchInterval: (data) => (data && !data.ai_review_text ? 2000 : false),
63
- })
64
- useEffect(() => {
65
- if (aiReview?.ai_review_text) {
66
- queryClient.invalidateQueries(["packageRelease"])
67
- setPendingAiReviewId(null)
68
- }
69
- }, [aiReview?.ai_review_text, queryClient])
70
- const session = useGlobalStore((s) => s.session)
71
-
72
- // Check if circuit.json exists without downloading it
73
- const circuitJsonExists = useMemo(() => {
74
- return packageFiles?.some((file) => file.file_path === "dist/circuit.json")
75
- }, [packageFiles])
76
-
77
- const { mutate: requestAiReview, isLoading: isRequestingAiReview } =
78
- useRequestAiReviewMutation({
79
- onSuccess: (_packageRelease, aiReview) => {
80
- setPendingAiReviewId(aiReview.ai_review_id)
81
- },
82
- })
83
-
84
- const { mutate: updateAiDescription, isLoading: isUpdatingAiDescription } =
85
- useUpdateAiDescriptionMutation()
86
-
87
- const aiReviewRequested =
88
- Boolean(packageRelease?.ai_review_requested) ||
89
- Boolean(pendingAiReviewId) ||
90
- isRequestingAiReview
91
-
92
- const handleLicenseFileRequest = () => {
93
- setLicenseFileRequested(true)
94
- setTimeout(() => setLicenseFileRequested(false), 100)
95
- }
96
-
97
- // Handle initial view selection and hash-based view changes
98
- useEffect(() => {
99
- if (!packageInfo || !arePackageFilesFetched) return
100
- const hash = window.location.hash.slice(1)
101
- const validViews = ["files", "3d", "pcb", "schematic", "bom"]
102
- const circuitDependentViews = ["3d", "pcb", "schematic", "bom"]
103
-
104
- const availableViews = circuitJsonExists
105
- ? validViews
106
- : validViews.filter((view) => !circuitDependentViews.includes(view))
107
-
108
- if (hash && availableViews.includes(hash)) {
109
- setActiveView(hash)
110
- } else if (
111
- packageInfo?.default_view &&
112
- availableViews.includes(packageInfo.default_view)
113
- ) {
114
- setActiveView(packageInfo.default_view)
115
- window.location.hash = packageInfo.default_view
116
- } else {
117
- setActiveView("files")
118
- if (!hash || !availableViews.includes(hash)) {
119
- window.location.hash = "files"
120
- }
121
- }
122
- }, [packageInfo?.default_view, circuitJsonExists])
123
-
124
- const importantFilePaths = packageFiles
125
- ?.filter((pf) => isPackageFileImportant(pf.file_path))
126
- ?.map((pf) => pf.file_path)
127
-
128
- // We've moved the directory and file computation to the FilesView component
129
-
130
- // Find important files based on importantFilePaths
131
- const importantFiles = useMemo(() => {
132
- if (!packageFiles || !importantFilePaths) return []
133
-
134
- return packageFiles
135
- .filter((file) =>
136
- importantFilePaths.some((path) => file.file_path.endsWith(path)),
137
- )
138
- .sort((a, b) => {
139
- const aImportance = scorePackageFileImportance(a.file_path)
140
- const bImportance = scorePackageFileImportance(b.file_path)
141
- return aImportance - bImportance
142
- })
143
- .reverse()
144
- }, [packageFiles, importantFilePaths])
145
-
146
- // Render the appropriate content based on the active view
147
- const renderContent = () => {
148
- switch (activeView) {
149
- case "files":
150
- return (
151
- <FilesView
152
- packageFiles={packageFiles}
153
- arePackageFilesFetched={arePackageFilesFetched}
154
- onFileClicked={onFileClicked}
155
- />
156
- )
157
- case "3d":
158
- return <ThreeDView />
159
- case "pcb":
160
- return <PCBView />
161
- case "schematic":
162
- return <SchematicView />
163
- case "bom":
164
- return <BOMView />
165
- default:
166
- return (
167
- <FilesView
168
- packageFiles={packageFiles}
169
- arePackageFilesFetched={arePackageFilesFetched}
170
- onFileClicked={onFileClicked}
171
- />
172
- )
173
- }
174
- }
175
-
176
- return (
177
- <div className="min-h-screen bg-white dark:bg-[#0d1117] text-gray-900 dark:text-[#c9d1d9] font-sans">
178
- <Header />
179
- <PackageHeader
180
- packageInfo={packageInfo}
181
- isPrivate={packageInfo?.is_private ?? false}
182
- isCurrentUserAuthor={
183
- packageInfo?.creator_account_id === session?.github_username
184
- }
185
- />
186
-
187
- {/* Mobile Sidebar */}
188
- <div className="max-w-[1200px] mx-auto">
189
- <MobileSidebar
190
- onViewChange={(view) => {
191
- setActiveView(view)
192
- // Update URL hash when view changes
193
- window.location.hash = view
194
- }}
195
- isLoading={!packageInfo}
196
- />
197
- </div>
198
-
199
- {/* Main Content */}
200
- <div className="max-w-[1200px] mx-auto">
201
- <div className="flex flex-col md:flex-row">
202
- {/* Main Content Area */}
203
- <div className="w-full md:flex-1 border-r border-gray-200 dark:border-[#30363d] p-4 md:max-w-[calc(100%-296px)] max-w-full">
204
- {/* Main Content Header with Tabs */}
205
- <MainContentHeader
206
- activeView={activeView}
207
- packageFiles={packageFiles ?? []}
208
- onViewChange={(view) => {
209
- setActiveView(view)
210
- // Update URL hash when view changes
211
- window.location.hash = view
212
- }}
213
- packageInfo={packageInfo}
214
- />
215
-
216
- {/* Dynamic Content based on active view */}
217
- {renderContent()}
218
- {/* Important Files View - Always shown */}
219
- <ImportantFilesView
220
- importantFiles={importantFiles}
221
- isFetched={arePackageFilesFetched}
222
- pkg={packageInfo}
223
- onEditClicked={onEditClicked}
224
- aiReviewText={packageRelease?.ai_review_text ?? null}
225
- aiReviewRequested={aiReviewRequested}
226
- onRequestAiReview={() => {
227
- if (packageRelease) {
228
- requestAiReview({
229
- package_release_id: packageRelease.package_release_id,
230
- })
231
- }
232
- }}
233
- onRequestAiDescriptionUpdate={() => {
234
- if (packageInfo) {
235
- updateAiDescription({
236
- package_id: packageInfo.package_id,
237
- })
238
- }
239
- }}
240
- onLicenseFileRequested={licenseFileRequested}
241
- />
242
- </div>
243
-
244
- {/* Sidebar - Hidden on mobile, shown on md and up */}
245
- <div className="hidden md:block md:w-[296px] flex-shrink-0">
246
- <Sidebar
247
- packageInfo={packageInfo}
248
- isLoading={!packageInfo}
249
- onViewChange={(view) => {
250
- setActiveView(view)
251
- // Update URL hash when view changes
252
- window.location.hash = view
253
- }}
254
- onLicenseClick={handleLicenseFileRequest}
255
- />
256
- </div>
257
- {/* Releases section - Only visible on small screens */}
258
- <div className="block md:hidden w-full px-5">
259
- <SidebarReleasesSection />
260
- </div>
261
- </div>
262
- </div>
263
- <Footer />
264
- </div>
265
- )
266
- }
@@ -1,223 +0,0 @@
1
- import { Badge } from "@/components/ui/badge"
2
- import { GitFork, Star, Settings, LinkIcon, Github, Plus } from "lucide-react"
3
- import { Skeleton } from "@/components/ui/skeleton"
4
- import { useCurrentPackageInfo } from "@/hooks/use-current-package-info"
5
- import { useCurrentPackageRelease } from "@/hooks/use-current-package-release"
6
- import { useGlobalStore } from "@/hooks/use-global-store"
7
- import { Button } from "@/components/ui/button"
8
- import { useEditPackageDetailsDialog } from "@/components/dialogs/edit-package-details-dialog"
9
- import { useState, useEffect, useMemo } from "react"
10
- import { usePackageFileById, usePackageFiles } from "@/hooks/use-package-files"
11
- import { getLicenseFromLicenseContent } from "@/lib/getLicenseFromLicenseContent"
12
- import { PackageInfo } from "@/lib/types"
13
-
14
- interface SidebarAboutSectionProps {
15
- packageInfo?: PackageInfo
16
- isLoading?: boolean
17
- onLicenseClick?: () => void
18
- }
19
-
20
- export default function SidebarAboutSection({
21
- onLicenseClick,
22
- }: SidebarAboutSectionProps = {}) {
23
- const { packageInfo, refetch: refetchPackageInfo } = useCurrentPackageInfo()
24
- const { packageRelease } = useCurrentPackageRelease({
25
- include_ai_review: true,
26
- })
27
-
28
- const { data: releaseFiles } = usePackageFiles(
29
- packageInfo?.latest_package_release_id,
30
- )
31
- const licenseFileId = useMemo(() => {
32
- return (
33
- releaseFiles?.find((f) => f.file_path === "LICENSE")?.package_file_id ||
34
- null
35
- )
36
- }, [releaseFiles])
37
- const { data: licenseFileMeta } = usePackageFileById(licenseFileId)
38
- const currentLicense = useMemo(() => {
39
- if (packageInfo?.latest_license) {
40
- return packageInfo?.latest_license
41
- }
42
- if (licenseFileMeta?.content_text) {
43
- return getLicenseFromLicenseContent(licenseFileMeta.content_text)
44
- }
45
- return null
46
- }, [licenseFileMeta, packageInfo?.latest_license])
47
- const topics = packageInfo?.is_package ? ["Package"] : ["Board"]
48
- const isLoading = !packageInfo || !packageRelease
49
- const isLoggedIn = useGlobalStore((s) => Boolean(s.session))
50
- const isOwner =
51
- isLoggedIn &&
52
- packageInfo?.owner_github_username ===
53
- useGlobalStore((s) => s.session?.github_username)
54
-
55
- // Local state to store updated values before the query refetches
56
- const [localDescription, setLocalDescription] = useState<string>("")
57
- const [localWebsite, setLocalWebsite] = useState<string>("")
58
-
59
- // Update local state when packageInfo changes
60
- useEffect(() => {
61
- if (packageInfo) {
62
- setLocalDescription(
63
- packageInfo.description || packageInfo.ai_description || "",
64
- )
65
- setLocalWebsite((packageInfo as any)?.website || "")
66
- }
67
- }, [packageInfo])
68
-
69
- const {
70
- Dialog: EditPackageDetailsDialog,
71
- openDialog: openEditPackageDetailsDialog,
72
- } = useEditPackageDetailsDialog()
73
-
74
- // Handle updates from the dialog
75
- const handlePackageUpdate = (newDescription: string, newWebsite: string) => {
76
- // Update local state immediately for a responsive UI
77
- setLocalDescription(newDescription)
78
- setLocalWebsite(newWebsite)
79
-
80
- // Refetch the package info to get the updated data from the server
81
- refetchPackageInfo()
82
- }
83
-
84
- if (isLoading) {
85
- return (
86
- <div className="mb-6">
87
- <h2 className="text-lg font-semibold mb-2">About</h2>
88
- <Skeleton className="h-4 w-full mb-3" />
89
- <Skeleton className="h-4 w-3/4 mb-4" />
90
- <div className="flex flex-wrap gap-2 mb-4">
91
- {[1, 2, 3].map((i) => (
92
- <Skeleton key={i} className="h-6 w-20 rounded-full" />
93
- ))}
94
- </div>
95
- <div className="space-y-2">
96
- <Skeleton className="h-4 w-24" />
97
- <Skeleton className="h-4 w-20" />
98
- <Skeleton className="h-4 w-20" />
99
- </div>
100
- </div>
101
- )
102
- }
103
-
104
- return (
105
- <>
106
- <div className="mb-6">
107
- <div className="flex justify-between items-center mb-2">
108
- <h2 className="text-lg font-semibold">About</h2>
109
- {isOwner && (
110
- <Button
111
- variant="ghost"
112
- size="sm"
113
- className="h-8 w-8 p-0"
114
- onClick={openEditPackageDetailsDialog}
115
- title="Edit package details"
116
- >
117
- <Settings className="h-4 w-4 text-gray-500" />
118
- </Button>
119
- )}
120
- </div>
121
- <p className="text-sm mb-3">
122
- {/* Use local state if available, otherwise fall back to packageInfo */}
123
- {localDescription ||
124
- packageInfo?.description ||
125
- packageInfo?.ai_description}
126
- </p>
127
- {localWebsite && (
128
- <a
129
- href={localWebsite}
130
- target="_blank"
131
- rel="noopener noreferrer"
132
- className="text-blue-600 font-medium dark:text-[#58a6ff] hover:underline text-sm flex items-center mb-4 max-w-full overflow-hidden"
133
- >
134
- <LinkIcon className="h-4 w-4 min-w-[16px] mr-1 flex-shrink-0" />
135
- <span className="truncate">{localWebsite}</span>
136
- </a>
137
- )}
138
- <div className="flex flex-wrap gap-2 mb-4">
139
- {topics.map((topic, index) => (
140
- <Badge
141
- key={index}
142
- variant="outline"
143
- className="text-xs rounded-full px-2 py-0.5 bg-blue-100 dark:bg-[#1f6feb33] text-blue-600 dark:text-[#58a6ff] border-blue-300 dark:border-[#1f6feb66]"
144
- >
145
- {topic}
146
- </Badge>
147
- ))}
148
- </div>
149
- <div className="space-y-2 text-sm">
150
- <button
151
- className="flex items-center hover:underline hover:underline-offset-2 cursor-pointer hover:decoration-gray-500"
152
- onClick={onLicenseClick}
153
- disabled={!onLicenseClick}
154
- >
155
- <svg
156
- className="h-4 w-4 mr-2 text-gray-500 dark:text-[#8b949e]"
157
- viewBox="0 0 16 16"
158
- fill="currentColor"
159
- >
160
- <path d="M8.75.75V2h.985c.304 0 .603.08.867.231l1.29.736c.038.022.08.033.124.033h2.234a.75.75 0 0 1 0 1.5h-.427l2.111 4.692a.75.75 0 0 1-.154.838l-.53-.53.53.53-.001.002-.002.002-.006.006-.006.005-.01.01-.045.04c-.21.176-.441.327-.686.45C14.556 10.78 13.88 11 13 11a4.498 4.498 0 0 1-2.023-.454 3.544 3.544 0 0 1-.686-.45l-.045-.04-.016-.015-.006-.006-.004-.004v-.001a.75.75 0 0 1-.154-.838L12.178 4.5h-.162c-.305 0-.604-.079-.868-.231l-1.29-.736a.245.245 0 0 0-.124-.033H8.75V13h2.5a.75.75 0 0 1 0 1.5h-6.5a.75.75 0 0 1 0-1.5h2.5V3.5h-.984a.245.245 0 0 0-.124.033l-1.29.736c-.264.152-.563.231-.868.231h-.162l2.112 4.692a.75.75 0 0 1-.154.838l-.53-.53.53.53-.001.002-.002.002-.006.006-.016.015-.045.04c-.21.176-.441.327-.686.45C4.556 10.78 3.88 11 3 11a4.498 4.498 0 0 1-2.023-.454 3.544 3.544 0 0 1-.686-.45l-.045-.04-.016-.015-.006-.006-.004-.004v-.001a.75.75 0 0 1-.154-.838L2.178 4.5H1.75a.75.75 0 0 1 0-1.5h2.234a.249.249 0 0 0 .125-.033l1.29-.736c.263-.15.561-.231.865-.231H7.25V.75a.75.75 0 0 1 1.5 0Zm2.945 8.477c.285.135.718.273 1.305.273s1.02-.138 1.305-.273L13 6.327Zm-10 0c.285.135.718.273 1.305.273s1.02-.138 1.305-.273L3 6.327Z"></path>
161
- </svg>
162
- <span>{currentLicense ?? "Unset"} license</span>
163
- </button>
164
-
165
- <div className="flex items-center">
166
- <Star className="h-4 w-4 mr-2 text-gray-500 dark:text-[#8b949e]" />
167
- <span>{packageInfo?.star_count} stars </span>
168
- </div>
169
- <div className="flex items-center">
170
- <GitFork className="h-4 w-4 mr-2 text-gray-500 dark:text-[#8b949e]" />
171
- <span>{(packageInfo as any)?.fork_count ?? "0"} forks</span>
172
- </div>
173
- {packageInfo?.github_repo_full_name ? (
174
- <a
175
- target="_blank"
176
- href={`https://github.com/${packageInfo.github_repo_full_name}`}
177
- className="flex items-center hover:underline hover:underline-offset-2 cursor-pointer hover:decoration-gray-500"
178
- >
179
- <Github className="h-4 w-4 mr-2 text-gray-500 dark:text-[#8b949e]" />
180
- <span>{packageInfo?.github_repo_full_name.split("/")[1]}</span>
181
- </a>
182
- ) : (
183
- <>
184
- {isOwner && (
185
- <div
186
- className="flex items-center hover:underline hover:underline-offset-2 cursor-pointer hover:decoration-gray-500"
187
- onClick={openEditPackageDetailsDialog}
188
- title="Connect GitHub"
189
- >
190
- <div className="relative mr-2">
191
- <Github className="h-4 w-4 text-gray-500 dark:text-[#8b949e]" />
192
- <Plus className="h-2 w-2 absolute -bottom-0.5 -right-0.5 text-gray-500 dark:text-[#8b949e] bg-white dark:bg-[#0d1117] rounded-full" />
193
- </div>
194
- <span>Connect GitHub</span>
195
- </div>
196
- )}
197
- </>
198
- )}
199
- </div>
200
- </div>
201
-
202
- {packageInfo && (
203
- <EditPackageDetailsDialog
204
- unscopedPackageName={packageInfo.unscoped_name}
205
- packageReleaseId={packageInfo.latest_package_release_id}
206
- packageId={packageInfo.package_id}
207
- currentGithubRepoFullName={packageInfo.github_repo_full_name}
208
- currentDescription={
209
- packageInfo.description || packageInfo?.ai_description || ""
210
- }
211
- currentLicense={currentLicense}
212
- currentWebsite={(packageInfo as any)?.website || ""}
213
- isPrivate={Boolean(packageInfo.is_private)}
214
- packageAuthor={packageInfo.owner_github_username}
215
- onUpdate={handlePackageUpdate}
216
- packageName={packageInfo.name}
217
- currentDefaultView={packageInfo.default_view}
218
- currentAllowPrPreviews={packageInfo.allow_pr_previews}
219
- />
220
- )}
221
- </>
222
- )
223
- }
@@ -1,16 +0,0 @@
1
- export default function SidebarPackagesSection() {
2
- return (
3
- <div className="mb-6">
4
- <h2 className="text-lg font-semibold mb-2">Packages</h2>
5
- <p className="text-sm text-gray-500 dark:text-[#8b949e] mb-1">
6
- No packages published
7
- </p>
8
- <a
9
- href="#"
10
- className="text-blue-600 dark:text-[#58a6ff] hover:underline text-sm"
11
- >
12
- Publish your first package
13
- </a>
14
- </div>
15
- )
16
- }
@@ -1,126 +0,0 @@
1
- import { Tag, Clock } from "lucide-react"
2
- import { Skeleton } from "@/components/ui/skeleton"
3
- import { useCurrentPackageInfo } from "@/hooks/use-current-package-info"
4
- import { useCurrentPackageRelease } from "@/hooks/use-current-package-release"
5
- import { timeAgo } from "@/lib/utils/timeAgo"
6
- import { BuildStatus, BuildStep } from "./build-status"
7
- import type { PackageRelease } from "fake-snippets-api/lib/db/schema"
8
- import { getBuildStatus, StatusIcon } from "@/components/preview"
9
- import { Link } from "wouter"
10
- import { usePackageBuild } from "@/hooks/use-package-builds"
11
-
12
- function getTranspilationStatus(
13
- pr?: PackageRelease | null,
14
- ): BuildStep["status"] {
15
- switch (pr?.transpilation_display_status) {
16
- case "complete":
17
- return "success"
18
- case "error":
19
- return "error"
20
- case "building":
21
- return "running"
22
- default:
23
- return "pending"
24
- }
25
- }
26
-
27
- function getCircuitJsonStatus(pr?: PackageRelease | null): BuildStep["status"] {
28
- switch (pr?.circuit_json_build_display_status) {
29
- case "complete":
30
- return "success"
31
- case "error":
32
- return "error"
33
- case "building":
34
- return "running"
35
- default:
36
- return "pending"
37
- }
38
- }
39
-
40
- export default function SidebarReleasesSection() {
41
- const { packageInfo } = useCurrentPackageInfo()
42
- const { packageRelease } = useCurrentPackageRelease({
43
- include_ai_review: true,
44
- })
45
- const { data: latestBuild } = usePackageBuild(
46
- packageRelease?.latest_package_build_id ?? null,
47
- )
48
-
49
- const buildSteps: BuildStep[] = [
50
- {
51
- id: "package_transpilation",
52
- name: "Package Transpilation",
53
- status: getTranspilationStatus(packageRelease),
54
- },
55
- {
56
- id: "circuit_json_build",
57
- name: "Circuit JSON Build",
58
- status: getCircuitJsonStatus(packageRelease),
59
- },
60
- ]
61
-
62
- if (!packageRelease) {
63
- return (
64
- <div className="mb-6">
65
- <h2 className="text-lg font-semibold mb-2">Releases</h2>
66
- <div className="mb-2">
67
- <Skeleton className="h-4 w-20" />
68
- </div>
69
- <div className="mb-3">
70
- <Skeleton className="h-4 w-24" />
71
- </div>
72
- <Skeleton className="h-4 w-32" />
73
- </div>
74
- )
75
- }
76
-
77
- const { status, label } = latestBuild
78
- ? getBuildStatus(latestBuild)
79
- : { status: "pending", label: "pending" }
80
- return (
81
- <div className="mb-6">
82
- <h2 className="text-lg font-semibold mb-2">
83
- <Link
84
- href={`/${packageInfo?.name}/releases`}
85
- className="hover:underline"
86
- >
87
- Releases
88
- </Link>
89
- </h2>
90
- <div className="flex flex-col space-y-2">
91
- <Link
92
- href={`/${packageInfo?.name}/releases`}
93
- className="flex items-center hover:underline"
94
- >
95
- <Tag className="h-4 w-4 mr-2 text-gray-500 dark:text-[#8b949e]" />
96
- <span className="text-sm font-medium">v{packageRelease.version}</span>
97
- </Link>
98
- <div className="flex items-center">
99
- <Clock className="h-4 w-4 mr-2 text-gray-500 dark:text-[#8b949e]" />
100
- <span className="text-sm text-gray-500 dark:text-[#8b949e]">
101
- {timeAgo(new Date(packageRelease.created_at))}
102
- </span>
103
- </div>
104
- {buildSteps.map((step) => (
105
- <BuildStatus
106
- key={step.id}
107
- step={step}
108
- packageReleaseId={packageRelease.package_release_id}
109
- />
110
- ))}
111
- {latestBuild && (
112
- <Link
113
- href={`/${packageInfo?.name}/releases`}
114
- className="flex items-center gap-2 text-sm text-gray-500 dark:text-[#8b949e]"
115
- >
116
- <StatusIcon status={status} />
117
- <span>Package Preview {label}</span>
118
- </Link>
119
- )}
120
- </div>
121
- {/* <a href="#" className="text-blue-600 dark:text-[#58a6ff] hover:underline text-sm">
122
- Push a new release
123
- </a> */}
124
- </div>
125
- )
126
- }
@@ -1,29 +0,0 @@
1
- import { Package } from "fake-snippets-api/lib/db/schema"
2
- import SidebarAboutSection from "./sidebar-about-section"
3
- import SidebarReleasesSection from "./sidebar-releases-section"
4
- import PreviewImageSquares from "./preview-image-squares"
5
-
6
- interface SidebarProps {
7
- packageInfo?: Package
8
- isLoading?: boolean
9
- onViewChange?: (view: "3d" | "pcb" | "schematic") => void
10
- onLicenseClick?: () => void
11
- }
12
-
13
- export default function Sidebar({
14
- packageInfo,
15
- isLoading = false,
16
- onViewChange,
17
- onLicenseClick,
18
- }: SidebarProps) {
19
- return (
20
- <div className="h-full p-4 bg-white dark:bg-[#0d1117] overflow-y-auto">
21
- <SidebarAboutSection onLicenseClick={onLicenseClick} />
22
- <PreviewImageSquares
23
- packageInfo={packageInfo}
24
- onViewChange={onViewChange}
25
- />
26
- <SidebarReleasesSection />
27
- </div>
28
- )
29
- }