@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,254 +0,0 @@
1
- import React, { useState } from "react"
2
- import { useQuery } from "react-query"
3
- import { useAxios } from "@/hooks/use-axios"
4
- import Header from "@/components/Header"
5
- import Footer from "@/components/Footer"
6
- import { Package } from "fake-snippets-api/lib/db/schema"
7
- import { Edit2, KeyRound } from "lucide-react"
8
- import { Button } from "@/components/ui/button"
9
- import { useGlobalStore } from "@/hooks/use-global-store"
10
- import { Link } from "wouter"
11
- import { PackagesList } from "@/components/PackagesList"
12
- import { Helmet } from "react-helmet-async"
13
- import { useSignIn } from "@/hooks/use-sign-in"
14
- import { useApiBaseUrl } from "@/hooks/use-packages-base-api-url"
15
- import { useConfirmDeletePackageDialog } from "@/components/dialogs/confirm-delete-package-dialog"
16
- import { PackageCardSkeleton } from "@/components/PackageCardSkeleton"
17
- import { PackageCard } from "@/components/PackageCard"
18
- import { useListUserOrgs } from "@/hooks/use-list-user-orgs"
19
- import { OrganizationCard } from "@/components/organization/OrganizationCard"
20
-
21
- export const DashboardPage = () => {
22
- const axios = useAxios()
23
- const { data: organizations } = useListUserOrgs()
24
-
25
- const currentUser = useGlobalStore((s) => s.session?.github_username)
26
- const isLoggedIn = Boolean(currentUser)
27
- const signIn = useSignIn()
28
-
29
- const [showAllTrending, setShowAllTrending] = useState(false)
30
- const [showAllLatest, setShowAllLatest] = useState(false)
31
- const [packageToDelete, setPackageToDelete] = useState<Package | null>(null)
32
- const { Dialog: DeleteDialog, openDialog: openDeleteDialog } =
33
- useConfirmDeletePackageDialog()
34
-
35
- const {
36
- data: myPackages,
37
- isLoading,
38
- error,
39
- refetch: refetchUserPackages,
40
- } = useQuery<Package[]>(
41
- ["userPackages", currentUser],
42
- async () => {
43
- const response = await axios.post(`/packages/list`, {
44
- owner_github_username: currentUser,
45
- })
46
- return response.data.packages
47
- },
48
- {
49
- enabled: isLoggedIn,
50
- select: (data: Package[]) => {
51
- return [...data].sort(
52
- (a: Package, b: Package) =>
53
- new Date(b.updated_at || b.created_at).getTime() -
54
- new Date(a.updated_at || a.created_at).getTime(),
55
- )
56
- },
57
- },
58
- )
59
-
60
- const { data: trendingPackages } = useQuery<Package[]>(
61
- "trendingPackages",
62
- async () => {
63
- const response = await axios.get("/packages/list_trending")
64
- return response.data.packages
65
- },
66
- {
67
- refetchOnWindowFocus: false,
68
- refetchOnMount: false,
69
- refetchOnReconnect: false,
70
- },
71
- )
72
-
73
- const { data: latestPackages } = useQuery<Package[]>(
74
- "latestPackages",
75
- async () => {
76
- const response = await axios.get("/packages/list_latest", {
77
- params: {
78
- limit: 10,
79
- },
80
- })
81
- return response.data.packages
82
- },
83
- {
84
- refetchOnWindowFocus: false,
85
- refetchOnMount: false,
86
- refetchOnReconnect: false,
87
- },
88
- )
89
-
90
- const baseUrl = useApiBaseUrl()
91
-
92
- const handleDeleteClick = (e: React.MouseEvent, pkg: Package) => {
93
- e.preventDefault() // Prevent navigation
94
- setPackageToDelete(pkg)
95
- openDeleteDialog()
96
- }
97
- return (
98
- <div>
99
- <Helmet>
100
- <title>Dashboard - tscircuit</title>
101
- </Helmet>
102
- <Header />
103
- <div className="container mx-auto px-4 py-8 min-h-[80vh]">
104
- <div className="flex items-center justify-between mb-6">
105
- <h1 className="text-3xl font-bold">Dashboard</h1>
106
- </div>
107
- <div className="flex md:flex-row flex-col">
108
- <div className="md:w-3/4 p-0 md:pr-6">
109
- {!isLoggedIn ? (
110
- <div className="flex flex-col items-center justify-center h-64 rounded-md p-4 mt-[40px] mb-2 sm:mb-4">
111
- <div className="p-4 mb-4 rounded-full bg-blue-50 border border-blue-100 shadow-sm">
112
- <KeyRound className="text-blue-500" size={32} />
113
- </div>
114
- <h2 className="text-xl sm:text-2xl font-bold text-gray-800 mb-3">
115
- You're not logged in
116
- </h2>
117
-
118
- <p className="text-gray-600 mb-6 text-center max-w-md text-sm sm:text-base">
119
- Log in to access your dashboard and manage your packages.
120
- </p>
121
- <Button onClick={() => signIn()} variant="outline">
122
- Log In
123
- </Button>
124
- </div>
125
- ) : (
126
- <>
127
- <div className="mt-6 mb-4">
128
- <div className="flex items-center">
129
- <h2 className="text-sm text-gray-600 whitespace-nowrap">
130
- Edit Recent
131
- </h2>
132
- <div className="flex gap-2 items-center overflow-x-scroll md:overflow-hidden">
133
- {myPackages &&
134
- myPackages.slice(0, 3).map((pkg) => (
135
- <div key={pkg.package_id}>
136
- <Link
137
- href={`/editor?package_id=${pkg.package_id}`}
138
- className="text-blue-600 hover:underline"
139
- >
140
- <Button
141
- variant="ghost"
142
- size="sm"
143
- className="font-medium"
144
- >
145
- {pkg.unscoped_name}
146
- <Edit2 className="w-3 h-3 ml-2" />
147
- </Button>
148
- </Link>
149
- </div>
150
- ))}
151
- </div>
152
- </div>
153
- </div>
154
- {/* <CreateNewSnippetWithAiHero/> */}
155
- <h2 className="text-sm font-bold mb-2 text-gray-700 border-b border-gray-200">
156
- Your Recent Packages
157
- </h2>
158
- {isLoading && (
159
- <div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4">
160
- {[...Array(6)].map((_, i) => (
161
- <PackageCardSkeleton key={i} />
162
- ))}
163
- </div>
164
- )}
165
- {myPackages && myPackages.length > 0 ? (
166
- <div className="grid grid-cols-1 lg:grid-cols-2 gap-4">
167
- {myPackages.slice(0, 10).map((pkg) => (
168
- <PackageCard
169
- key={pkg.package_id}
170
- pkg={pkg}
171
- isCurrentUserPackage={
172
- pkg.owner_github_username === currentUser
173
- }
174
- onDeleteClick={handleDeleteClick}
175
- />
176
- ))}
177
- </div>
178
- ) : (
179
- !isLoading &&
180
- myPackages?.length === 0 && (
181
- <span className="font-medium text-sm text-gray-500">
182
- No packages found
183
- </span>
184
- )
185
- )}
186
- {myPackages && myPackages.length > 10 && (
187
- <Link
188
- href={`/${currentUser}`}
189
- className="text-sm text-blue-600 hover:underline mt-2 inline-block"
190
- >
191
- View all packages
192
- </Link>
193
- )}
194
-
195
- {/* Organizations Section */}
196
- {organizations && organizations.length > 0 && (
197
- <div className="mt-8">
198
- <h2 className="text-sm font-bold mb-2 text-gray-700 border-b border-gray-200">
199
- Your Organizations
200
- </h2>
201
- <div className="grid grid-cols-1 lg:grid-cols-2 gap-4">
202
- {organizations?.slice(0, 4).map((org: any, i: number) => (
203
- <OrganizationCard
204
- key={i}
205
- organization={org}
206
- withLink={true}
207
- showStats={true}
208
- showMembers={true}
209
- />
210
- ))}
211
- </div>
212
- {organizations && organizations.length > 4 && (
213
- <Link
214
- href="/organizations"
215
- className="text-sm text-blue-600 hover:underline mt-2 inline-block"
216
- >
217
- View all organizations
218
- </Link>
219
- )}
220
- </div>
221
- )}
222
- </>
223
- )}
224
- </div>
225
- <div className="md:w-1/4">
226
- <PackagesList
227
- title="Trending Packages"
228
- packages={trendingPackages}
229
- showAll={showAllTrending}
230
- onToggleShowAll={() => setShowAllTrending(!showAllTrending)}
231
- />
232
- <div className="mt-8">
233
- <PackagesList
234
- title="Latest Packages"
235
- packages={latestPackages}
236
- showAll={showAllLatest}
237
- onToggleShowAll={() => setShowAllLatest(!showAllLatest)}
238
- />
239
- </div>
240
- </div>
241
- </div>
242
- {packageToDelete && (
243
- <DeleteDialog
244
- packageId={packageToDelete.package_id}
245
- packageName={packageToDelete.unscoped_name}
246
- packageOwner={packageToDelete.owner_github_username ?? ""}
247
- refetchUserPackages={refetchUserPackages}
248
- />
249
- )}
250
- </div>
251
- <Footer />
252
- </div>
253
- )
254
- }
@@ -1,198 +0,0 @@
1
- import { useParams } from "wouter"
2
- import { useDatasheet } from "@/hooks/use-datasheet"
3
- import { useCreateDatasheet } from "@/hooks/use-create-datasheet"
4
- import Header from "@/components/Header"
5
- import Footer from "@/components/Footer"
6
- import ExpandableText from "@/components/ExpandableText"
7
- import type { Datasheet } from "fake-snippets-api/lib/db/schema"
8
- import { Card, CardHeader, CardTitle, CardContent } from "@/components/ui/card"
9
- import { Button } from "@/components/ui/button"
10
- import { Loader2, AlertCircle, FileText } from "lucide-react"
11
-
12
- const SectionCard = ({
13
- title,
14
- children,
15
- }: { title: string; children: React.ReactNode }) => (
16
- <Card className="mb-6">
17
- <CardHeader className="pb-2">
18
- <CardTitle className="text-xl font-semibold">{title}</CardTitle>
19
- </CardHeader>
20
- <CardContent>{children}</CardContent>
21
- </Card>
22
- )
23
-
24
- export const DatasheetPage = () => {
25
- const { chipName } = useParams<{ chipName: string }>()
26
- const datasheetQuery = useDatasheet(chipName)
27
- const createDatasheet = useCreateDatasheet()
28
-
29
- const handleCreate = () => {
30
- if (!chipName) return
31
- createDatasheet.mutate({ chip_name: chipName })
32
- }
33
-
34
- return (
35
- <div className="min-h-screen flex flex-col">
36
- <Header />
37
- <main className="flex-grow mx-auto px-4 md:px-20 lg:px-28 py-8 w-full">
38
- <div className="mb-8">
39
- <h1 className="text-3xl md:text-4xl font-bold text-gray-900 mb-2 break-words">
40
- {chipName} Datasheet
41
- </h1>
42
- <p className="text-lg text-gray-600 mb-4">
43
- View and download the datasheet for{" "}
44
- <span className="font-semibold text-gray-800">{chipName}</span>. If
45
- the datasheet is not available, you can request its creation.
46
- </p>
47
- <a
48
- href={`https://api.tscircuit.com/datasheets/get?chip_name=${encodeURIComponent(chipName)}`}
49
- className="inline-flex items-center gap-1 text-blue-600 hover:underline text-sm font-medium"
50
- target="_blank"
51
- rel="noopener noreferrer"
52
- >
53
- <FileText className="w-4 h-4" /> Download JSON
54
- </a>
55
- </div>
56
-
57
- {datasheetQuery.isLoading ? (
58
- <div className="flex flex-col items-center justify-center py-20">
59
- <Loader2 className="w-10 h-10 animate-spin text-blue-500 mb-4" />
60
- <h3 className="text-xl font-semibold mb-2">Loading Datasheet...</h3>
61
- <p className="text-gray-500 max-w-md text-center">
62
- Please wait while we fetch the datasheet information for{" "}
63
- <span className="font-semibold">{chipName}</span>.
64
- </p>
65
- </div>
66
- ) : datasheetQuery.data ? (
67
- <>
68
- {!(
69
- datasheetQuery.data.pin_information ||
70
- datasheetQuery.data.datasheet_pdf_urls
71
- ) && (
72
- <SectionCard title="Processing">
73
- <div className="flex items-center gap-3 text-yellow-700">
74
- <Loader2 className="w-5 h-5 animate-spin" />
75
- <span>Datasheet is processing. Please check back later.</span>
76
- </div>
77
- </SectionCard>
78
- )}
79
-
80
- <SectionCard title="Description">
81
- {datasheetQuery.data.ai_description ? (
82
- <div className="flex items-center gap-3 text-gray-500">
83
- <span>{datasheetQuery.data.ai_description}</span>
84
- </div>
85
- ) : (
86
- <p className="text-gray-500">No description available.</p>
87
- )}
88
- </SectionCard>
89
-
90
- <SectionCard title="PDFs">
91
- {datasheetQuery.data.datasheet_pdf_urls &&
92
- datasheetQuery.data.datasheet_pdf_urls.length > 0 ? (
93
- <ul className="list-disc pl-5 space-y-2">
94
- {datasheetQuery.data.datasheet_pdf_urls.map((url) => (
95
- <li key={url}>
96
- <a
97
- href={url}
98
- className="text-blue-600 underline break-all"
99
- target="_blank"
100
- rel="noopener noreferrer"
101
- >
102
- {url}
103
- </a>
104
- </li>
105
- ))}
106
- </ul>
107
- ) : (
108
- <p className="text-gray-500">No datasheet PDFs available.</p>
109
- )}
110
- </SectionCard>
111
-
112
- <SectionCard title="Pin Information">
113
- {datasheetQuery.data.pin_information &&
114
- datasheetQuery.data.pin_information.length > 0 ? (
115
- <div className="overflow-x-auto">
116
- <table className="min-w-full border-collapse text-sm">
117
- <thead>
118
- <tr>
119
- <th className="border-b px-3 py-2 text-left font-semibold">
120
- Pin
121
- </th>
122
- <th className="border-b px-3 py-2 text-left font-semibold">
123
- Name
124
- </th>
125
- <th className="border-b px-3 py-2 text-left font-semibold">
126
- Description
127
- </th>
128
- <th className="border-b px-3 py-2 text-left font-semibold">
129
- Capabilities
130
- </th>
131
- </tr>
132
- </thead>
133
- <tbody>
134
- {datasheetQuery.data.pin_information.map((pin) => (
135
- <tr key={pin.pin_number} className="hover:bg-gray-50">
136
- <td className="border-b px-3 py-2 font-mono">
137
- {pin.pin_number}
138
- </td>
139
- <td className="border-b px-3 py-2">{pin.name}</td>
140
- <td className="border-b px-3 py-2">
141
- {pin.description}
142
- </td>
143
- <td className="border-b px-3 py-2">
144
- <ExpandableText
145
- text={pin.capabilities.join(", ")}
146
- maxChars={30}
147
- />
148
- </td>
149
- </tr>
150
- ))}
151
- </tbody>
152
- </table>
153
- </div>
154
- ) : (
155
- <p className="text-gray-500">No pin information available.</p>
156
- )}
157
- </SectionCard>
158
- </>
159
- ) : datasheetQuery.error &&
160
- (datasheetQuery.error as any).status === 404 ? (
161
- <SectionCard title="No Datasheet Found">
162
- <div className="flex flex-col items-center gap-4">
163
- <AlertCircle className="w-8 h-8 text-red-500" />
164
- <p className="text-gray-700 text-center">
165
- No datasheet found for{" "}
166
- <span className="font-semibold">{chipName}</span>.<br />
167
- You can request its creation below.
168
- </p>
169
- <Button
170
- className="mt-2"
171
- onClick={handleCreate}
172
- disabled={createDatasheet.isLoading}
173
- size="lg"
174
- >
175
- {createDatasheet.isLoading ? "Creating..." : "Create Datasheet"}
176
- </Button>
177
- </div>
178
- </SectionCard>
179
- ) : (
180
- <div className="flex flex-col items-center justify-center py-16">
181
- <AlertCircle className="w-10 h-10 text-red-500 mb-4" />
182
- <h3 className="text-xl font-semibold mb-2">
183
- Error loading datasheet
184
- </h3>
185
- <p className="text-gray-500 max-w-md text-center">
186
- There was an error loading the datasheet for{" "}
187
- <span className="font-semibold">{chipName}</span>. Please try
188
- again later.
189
- </p>
190
- </div>
191
- )}
192
- </main>
193
- <Footer />
194
- </div>
195
- )
196
- }
197
-
198
- export default DatasheetPage
@@ -1,148 +0,0 @@
1
- import React, { useState } from "react"
2
- import { useQuery } from "react-query"
3
- import { useAxios } from "@/hooks/use-axios"
4
- import { useCreateDatasheet } from "@/hooks/use-create-datasheet"
5
- import Header from "@/components/Header"
6
- import Footer from "@/components/Footer"
7
- import { Input } from "@/components/ui/input"
8
- import { Loader2, Search } from "lucide-react"
9
- import { Link, useLocation } from "wouter"
10
-
11
- interface DatasheetSummary {
12
- datasheet_id: string
13
- chip_name: string
14
- }
15
-
16
- export const DatasheetsPage: React.FC = () => {
17
- const axios = useAxios()
18
- const [, navigate] = useLocation()
19
- const createDatasheet = useCreateDatasheet({
20
- onSuccess: (datasheet) => navigate(`/datasheets/${datasheet.chip_name}`),
21
- })
22
- const [searchQuery, setSearchQuery] = useState("")
23
-
24
- const {
25
- data: datasheets,
26
- isLoading,
27
- error,
28
- } = useQuery(
29
- ["datasheetList", searchQuery],
30
- async () => {
31
- const params = new URLSearchParams()
32
- if (searchQuery) {
33
- params.append("chip_name", searchQuery)
34
- } else {
35
- params.append("is_popular", "true")
36
- }
37
- const { data } = await axios.get(`/datasheets/list?${params.toString()}`)
38
- return data.datasheets as DatasheetSummary[]
39
- },
40
- { keepPreviousData: true },
41
- )
42
-
43
- return (
44
- <div className="min-h-screen flex flex-col">
45
- <Header />
46
- <main className="flex-grow container mx-auto px-4 py-8 min-h-[80vh]">
47
- <div className="mb-8 max-w-3xl">
48
- <div className="flex items-center gap-2 mb-3">
49
- <h1 className="text-4xl font-bold text-gray-900">Datasheets</h1>
50
- </div>
51
- <p className="text-lg text-gray-600 mb-4">
52
- Explore datasheets for popular electronic components and chips.
53
- Search to find specific ones.
54
- </p>
55
- </div>
56
-
57
- <div className="mb-6">
58
- <div className="flex flex-col sm:flex-row gap-4 mb-4">
59
- <div className="relative flex-grow">
60
- <Search className="absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 h-4 w-4" />
61
- <Input
62
- type="search"
63
- placeholder="Search datasheets..."
64
- className="pl-10"
65
- value={searchQuery}
66
- onChange={(e) => setSearchQuery(e.target.value)}
67
- aria-label="Search datasheets"
68
- role="searchbox"
69
- />
70
- </div>
71
- </div>
72
- </div>
73
-
74
- {isLoading ? (
75
- <div className="text-center py-20 px-4">
76
- <div className="bg-slate-50 inline-flex rounded-full p-4 mb-4">
77
- <Loader2 className="size-8 animate-spin text-slate-400" />
78
- </div>
79
- <h3 className="text-xl font-medium text-slate-900 mb-2">
80
- Loading Datasheets
81
- </h3>
82
- <p className="text-slate-500 max-w-md mx-auto mb-6">
83
- Please wait while we fetch the datasheets...
84
- </p>
85
- </div>
86
- ) : error ? (
87
- <div className="bg-red-50 border border-red-200 text-red-700 p-6 rounded-xl shadow-sm max-w-2xl mx-auto">
88
- <div className="flex items-start">
89
- <div className="mr-4 bg-red-100 p-2 rounded-full">
90
- <Search className="w-6 h-6 text-red-600" />
91
- </div>
92
- <div>
93
- <h3 className="text-lg font-semibold mb-2">
94
- Error Loading Datasheets
95
- </h3>
96
- <p className="text-red-600">
97
- We couldn't load the datasheets. Please try again later.
98
- </p>
99
- </div>
100
- </div>
101
- </div>
102
- ) : datasheets && datasheets.length > 0 ? (
103
- <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
104
- {datasheets.map((ds) => (
105
- <Link
106
- key={ds.datasheet_id}
107
- href={`/datasheets/${ds.chip_name}`}
108
- className="block p-4 bg-white rounded-lg shadow hover:shadow-md transition-shadow"
109
- >
110
- <h3 className="font-semibold text-gray-900">{ds.chip_name}</h3>
111
- </Link>
112
- ))}
113
- </div>
114
- ) : (
115
- <div className="text-center py-12 px-4">
116
- <div className="bg-slate-50 inline-flex rounded-full p-4 mb-4">
117
- <Search className="w-8 h-8 text-slate-400" />
118
- </div>
119
- <h3 className="text-xl font-medium text-slate-900 mb-2">
120
- No Matching Datasheets
121
- </h3>
122
- <p className="text-slate-500 max-w-md mx-auto mb-6">
123
- {searchQuery
124
- ? `No datasheets match your search for "${searchQuery}".`
125
- : "There are no popular datasheets at the moment."}
126
- </p>
127
- {searchQuery && (
128
- <button
129
- className="mt-2 px-4 py-2 bg-blue-600 text-white rounded"
130
- onClick={() =>
131
- createDatasheet.mutate({ chip_name: searchQuery })
132
- }
133
- disabled={createDatasheet.isLoading}
134
- >
135
- {createDatasheet.isLoading
136
- ? "Creating..."
137
- : `Create Datasheet for ${searchQuery}`}
138
- </button>
139
- )}
140
- </div>
141
- )}
142
- </main>
143
- <Footer />
144
- </div>
145
- )
146
- }
147
-
148
- export default DatasheetsPage
@@ -1,68 +0,0 @@
1
- import { useGlobalStore } from "@/hooks/use-global-store"
2
- import { useApiBaseUrl } from "@/hooks/use-packages-base-api-url"
3
- import { useState } from "react"
4
- import { useLocation } from "wouter"
5
-
6
- export const DevLoginPage = () => {
7
- const snippetsBaseApiUrl = useApiBaseUrl()
8
- const [username, setUsername] = useState("")
9
- const setSession = useGlobalStore((s) => s.setSession)
10
- const [, setLocation] = useLocation()
11
-
12
- const handleDevLogin = async () => {
13
- try {
14
- // Call passwordless login endpoint
15
- const response = await fetch(
16
- `${snippetsBaseApiUrl}/sessions/create_passwordless`,
17
- {
18
- method: "POST",
19
- headers: {
20
- "Content-Type": "application/json",
21
- },
22
- body: JSON.stringify({
23
- github_username: username,
24
- }),
25
- },
26
- )
27
-
28
- const data = await response.json()
29
- const token = data.session.token
30
-
31
- if (!token) {
32
- throw new Error("No token received from server")
33
- }
34
-
35
- // Set session in global store
36
- setSession({
37
- token,
38
- account_id: data.session.account_id,
39
- session_id: data.session.session_id,
40
- github_username: username,
41
- })
42
-
43
- // Redirect to home page
44
- setLocation("/")
45
- } catch (error) {
46
- console.error("Dev login failed:", error)
47
- }
48
- }
49
-
50
- return (
51
- <div className="flex flex-col items-center justify-center min-h-screen bg-gray-100">
52
- <h1 className="text-2xl font-bold mb-4">Development Login</h1>
53
- <input
54
- type="text"
55
- value={username}
56
- onChange={(e) => setUsername(e.target.value)}
57
- placeholder="Enter GitHub username"
58
- className="mb-4 p-2 border border-gray-300 rounded"
59
- />
60
- <button
61
- onClick={handleDevLogin}
62
- className="px-4 py-2 bg-blue-500 text-white rounded hover:bg-blue-600"
63
- >
64
- Login
65
- </button>
66
- </div>
67
- )
68
- }