@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,191 +0,0 @@
1
- import React from "react"
2
- import { Link } from "wouter"
3
- import { Package } from "fake-snippets-api/lib/db/schema"
4
- import { StarIcon, LockClosedIcon } from "@radix-ui/react-icons"
5
- import {
6
- GlobeIcon,
7
- MoreVertical,
8
- PencilIcon,
9
- Share2,
10
- Trash2,
11
- CircuitBoard,
12
- } from "lucide-react"
13
- import { Button } from "@/components/ui/button"
14
- import {
15
- DropdownMenu,
16
- DropdownMenuContent,
17
- DropdownMenuItem,
18
- DropdownMenuTrigger,
19
- } from "@/components/ui/dropdown-menu"
20
- import { SnippetType, SnippetTypeIcon } from "./SnippetTypeIcon"
21
- import { timeAgo } from "@/lib/utils/timeAgo"
22
- import { useCopyToClipboard } from "@/hooks/use-copy-to-clipboard"
23
- import { getPackagePreviewImageUrl } from "@/lib/utils/getPackagePreviewImageUrl"
24
-
25
- export interface PackageCardProps {
26
- /** The package data to display */
27
- pkg: Package
28
- /** Whether to show the owner name (useful in starred views) */
29
- showOwner?: boolean
30
- /** Whether this is the current user's package (enables edit/delete options) */
31
- isCurrentUserPackage?: boolean
32
- /** Callback when delete is clicked */
33
- onDeleteClick?: (e: React.MouseEvent, pkg: Package) => void
34
- /** Custom class name for the card container */
35
- className?: string
36
- /** Custom image size (default is h-16 w-16) */
37
- imageSize?: string
38
- /** Custom image transform style */
39
- imageTransform?: string
40
- /** Whether to render the card with a link to the package page */
41
- withLink?: boolean
42
- /** Custom render function for actions */
43
- renderActions?: (pkg: Package) => React.ReactNode
44
- }
45
-
46
- export const PackageCard: React.FC<PackageCardProps> = ({
47
- pkg,
48
- showOwner = false,
49
- isCurrentUserPackage = false,
50
- onDeleteClick,
51
- className = "",
52
- imageSize = "h-16 w-16",
53
- imageTransform = "transition-transform duration-300 -rotate-45 hover:rotate-0 hover:scale-110 scale-150",
54
- withLink = true,
55
- renderActions,
56
- }) => {
57
- const handleDeleteClick = (e: React.MouseEvent) => {
58
- e.preventDefault() // Prevent navigation
59
- if (onDeleteClick) {
60
- onDeleteClick(e, pkg)
61
- }
62
- }
63
-
64
- const { copyToClipboard } = useCopyToClipboard()
65
-
66
- const handleShareClick = (e: React.MouseEvent) => {
67
- e.preventDefault()
68
- const shareUrl = `${window.location.origin}/${pkg.name}`
69
- copyToClipboard(shareUrl)
70
- }
71
-
72
- const availableImages = ["pcb", "schematic", "assembly", "3d"]
73
-
74
- const previewImageUrl = getPackagePreviewImageUrl(
75
- pkg,
76
- pkg.default_view as "pcb" | "schematic" | "3d",
77
- )
78
-
79
- const cardContent = (
80
- <div
81
- className={`border p-4 rounded-md hover:shadow-md transition-shadow flex flex-col gap-4 ${className}`}
82
- >
83
- <div className="flex items-start gap-4">
84
- <div
85
- className={`${imageSize} flex-shrink-0 rounded-md overflow-hidden bg-gray-50 border flex items-center justify-center`}
86
- >
87
- <img
88
- src={String(previewImageUrl)}
89
- alt={`${pkg.unscoped_name} ${availableImages.includes(pkg.default_view || "") ? pkg.default_view : "3D"} view`}
90
- className={`object-cover h-full w-full ${imageTransform}`}
91
- onError={(e) => {
92
- e.currentTarget.style.display = "none"
93
- e.currentTarget.nextElementSibling?.classList.remove("hidden")
94
- e.currentTarget.nextElementSibling?.classList.add("flex")
95
- }}
96
- />
97
- <div className="hidden items-center justify-center h-full w-full">
98
- <CircuitBoard className="w-6 h-6 text-gray-300" />
99
- </div>
100
- </div>
101
- <div className="flex-1 min-w-0">
102
- <div className="flex justify-between items-start mb-[2px] -mt-[3px]">
103
- <h2 className="text-md font-semibold truncate pr-[30px]">
104
- {showOwner && (
105
- <>
106
- <span className="text-gray-700 text-md">
107
- {pkg.owner_github_username}
108
- </span>
109
- <span className="mx-1">/</span>
110
- </>
111
- )}
112
- <span className="text-gray-900">{pkg.unscoped_name}</span>
113
- </h2>
114
- <div className="flex items-center gap-2">
115
- <SnippetTypeIcon
116
- type={pkg.snippet_type as SnippetType}
117
- className="pt-[2.5px]"
118
- />
119
- <div className="flex items-center gap-1 text-gray-600">
120
- <StarIcon className="w-4 h-4 pt-[2.5px]" />
121
- <span className="text-[16px]">{pkg.star_count || 0}</span>
122
- </div>
123
- <DropdownMenu>
124
- <DropdownMenuTrigger asChild>
125
- <Button
126
- variant="ghost"
127
- size="icon"
128
- className="h-[1.5rem] w-[1.5rem]"
129
- >
130
- <MoreVertical className="h-4 w-4" />
131
- </Button>
132
- </DropdownMenuTrigger>
133
- <DropdownMenuContent>
134
- <DropdownMenuItem
135
- className="text-xs cursor-pointer"
136
- onClick={handleShareClick}
137
- >
138
- <Share2 className="mr-2 h-3 w-3" />
139
- Share Package
140
- </DropdownMenuItem>{" "}
141
- {isCurrentUserPackage && onDeleteClick && (
142
- <DropdownMenuItem
143
- className="text-xs text-red-600"
144
- onClick={handleDeleteClick}
145
- >
146
- <Trash2 className="mr-2 h-3 w-3" />
147
- Delete Package
148
- </DropdownMenuItem>
149
- )}
150
- </DropdownMenuContent>
151
- </DropdownMenu>
152
- {renderActions && renderActions(pkg)}
153
- </div>
154
- </div>
155
- <p
156
- className={`${!pkg.description && "h-[1.25rem]"} text-sm text-gray-500 mb-1 truncate max-w-xs`}
157
- >
158
- {pkg.description ? pkg.description : " "}
159
- </p>
160
- <div className={`flex items-center gap-4`}>
161
- {pkg.is_private ? (
162
- <div className="flex items-center text-xs gap-1 text-gray-500">
163
- <LockClosedIcon height={12} width={12} />
164
- <span>Private</span>
165
- </div>
166
- ) : (
167
- <div className="flex items-center text-xs gap-1 text-gray-500">
168
- <GlobeIcon height={12} width={12} />
169
- <span>Public</span>
170
- </div>
171
- )}
172
- <div className="flex items-center text-xs gap-1 text-gray-500">
173
- <PencilIcon height={12} width={12} />
174
- <span>{timeAgo(new Date(pkg.updated_at))}</span>
175
- </div>
176
- </div>
177
- </div>
178
- </div>
179
- </div>
180
- )
181
-
182
- if (withLink) {
183
- return (
184
- <Link key={pkg.package_id} href={`/${pkg.name}`}>
185
- {cardContent}
186
- </Link>
187
- )
188
- }
189
-
190
- return cardContent
191
- }
@@ -1,17 +0,0 @@
1
- export const PackageCardSkeleton = () => {
2
- return (
3
- <div className="border p-4 rounded-md animate-pulse">
4
- <div className="flex items-start gap-4">
5
- <div className="h-16 w-16 flex-shrink-0 rounded-md bg-slate-200"></div>
6
- <div className="flex-1">
7
- <div className="h-5 bg-slate-200 rounded w-3/4 mb-2"></div>
8
- <div className="h-4 bg-slate-200 rounded w-1/2 mb-2"></div>
9
- <div className="flex gap-2">
10
- <div className="h-3 bg-slate-200 rounded w-16"></div>
11
- <div className="h-3 bg-slate-200 rounded w-16"></div>
12
- </div>
13
- </div>
14
- </div>
15
- </div>
16
- )
17
- }
@@ -1,29 +0,0 @@
1
- import { Link } from "wouter"
2
- import { Star } from "lucide-react"
3
- import { Package } from "fake-snippets-api/lib/db/schema"
4
-
5
- export const PackageLink = (pkg: Package) => {
6
- return (
7
- <>
8
- <Link
9
- className="text-blue-500 font-semibold hover:underline"
10
- href={`/${pkg.owner_github_username}`}
11
- >
12
- {pkg.owner_github_username}
13
- </Link>
14
- <span className="px-0.5 text-gray-500">/</span>
15
- <Link
16
- className="text-blue-500 font-semibold hover:underline"
17
- href={`/${pkg.unscoped_name}`}
18
- >
19
- {pkg.unscoped_name}
20
- </Link>
21
- {pkg.star_count !== undefined && (
22
- <span className="ml-2 text-gray-500 text-xs flex items-center">
23
- <Star className="w-3 h-3 mr-1" />
24
- {pkg.star_count}
25
- </span>
26
- )}
27
- </>
28
- )
29
- }
@@ -1,81 +0,0 @@
1
- import React from "react"
2
- import { Package } from "fake-snippets-api/lib/db/schema"
3
- import { PackageCardSkeleton } from "./PackageCardSkeleton"
4
- import { Search } from "lucide-react"
5
- import { PackageCard } from "./PackageCard"
6
-
7
- interface PackageSearchResultsProps {
8
- isLoading: boolean
9
- error: unknown
10
- filteredPackages: Package[] | undefined
11
- apiBaseUrl: string
12
- emptyStateMessage: string
13
- }
14
-
15
- const PackageGrid = ({
16
- packages,
17
- }: { packages: Package[]; baseUrl: string }) => (
18
- <div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4">
19
- {packages.map((pkg) => (
20
- <PackageCard key={pkg.package_id} pkg={pkg} showOwner={true} />
21
- ))}
22
- </div>
23
- )
24
-
25
- export const LoadingState = () => (
26
- <div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4">
27
- {[...Array(6)].map((_, i) => (
28
- <PackageCardSkeleton key={i} />
29
- ))}
30
- </div>
31
- )
32
-
33
- const ErrorState = () => (
34
- <div className="bg-red-50 border border-red-200 text-red-700 p-6 rounded-xl shadow-sm max-w-2xl mx-auto">
35
- <div className="flex items-start">
36
- <div className="mr-4 bg-red-100 p-2 rounded-full">
37
- <Search className="w-6 h-6 text-red-600" />
38
- </div>
39
- <div>
40
- <h3 className="text-lg font-semibold mb-2">Error Loading packages</h3>
41
- <p className="text-red-600">
42
- We couldn't load the trending packages. Please try again later.
43
- </p>
44
- </div>
45
- </div>
46
- </div>
47
- )
48
-
49
- const EmptyState = ({
50
- message,
51
- }: {
52
- message?: string
53
- }) => (
54
- <div className="text-center py-12 px-4">
55
- <div className="bg-slate-50 inline-flex rounded-full p-4 mb-4">
56
- <Search className="w-8 h-8 text-slate-400" />
57
- </div>
58
- <h3 className="text-xl font-medium text-slate-900 mb-2">
59
- No Matching Packages
60
- </h3>
61
- {message && (
62
- <p className="text-slate-500 max-w-md mx-auto mb-6">{message}</p>
63
- )}
64
- </div>
65
- )
66
-
67
- const PackageSearchResults: React.FC<PackageSearchResultsProps> = ({
68
- isLoading,
69
- error,
70
- filteredPackages,
71
- apiBaseUrl,
72
- emptyStateMessage,
73
- }) => {
74
- if (isLoading) return <LoadingState />
75
- if (error) return <ErrorState />
76
- if (!filteredPackages?.length)
77
- return <EmptyState message={emptyStateMessage} />
78
- return <PackageGrid packages={filteredPackages} baseUrl={apiBaseUrl} />
79
- }
80
-
81
- export default PackageSearchResults
@@ -1,71 +0,0 @@
1
- import { Button } from "@/components/ui/button"
2
- import { ChevronDown, ChevronUp, Star } from "lucide-react"
3
- import { Link } from "wouter"
4
- import { Package } from "fake-snippets-api/lib/db/schema"
5
-
6
- interface PackagesListProps {
7
- title: string
8
- packages?: Package[]
9
- showAll?: boolean
10
- onToggleShowAll?: () => void
11
- maxItems?: number
12
- }
13
-
14
- export const PackagesList = ({
15
- title,
16
- packages = [],
17
- showAll = false,
18
- onToggleShowAll,
19
- maxItems = 5,
20
- }: PackagesListProps) => {
21
- const displayedPackages = showAll ? packages : packages.slice(0, maxItems)
22
-
23
- return (
24
- <div>
25
- <div className="flex items-center justify-between">
26
- <h2 className="text-sm font-bold text-gray-700">{title}</h2>
27
- {packages.length > maxItems && onToggleShowAll && (
28
- <Button
29
- variant="ghost"
30
- size="sm"
31
- onClick={onToggleShowAll}
32
- className="text-blue-600 hover:text-blue-700 hover:bg-transparent"
33
- >
34
- {showAll ? (
35
- <>
36
- Show less <ChevronUp className="w-3 h-3 ml-1" />
37
- </>
38
- ) : (
39
- <>
40
- Show more <ChevronDown className="w-3 h-3 ml-1" />
41
- </>
42
- )}
43
- </Button>
44
- )}
45
- </div>
46
- <div className="border-b border-gray-200" />
47
- {packages && (
48
- <ul className="space-y-1 mt-2">
49
- {displayedPackages.map((pkg) => (
50
- <li key={pkg.package_id}>
51
- <div className="flex items-center">
52
- <Link
53
- href={`/${pkg.name}`}
54
- className="text-blue-600 hover:underline text-sm"
55
- >
56
- {pkg.name}
57
- </Link>
58
- {pkg.star_count > 0 && (
59
- <span className="ml-2 text-gray-500 text-xs flex items-center">
60
- <Star className="w-3 h-3 mr-1" />
61
- {pkg.star_count}
62
- </span>
63
- )}
64
- </div>
65
- </li>
66
- ))}
67
- </ul>
68
- )}
69
- </div>
70
- )
71
- }
@@ -1,47 +0,0 @@
1
- import React, { useRef, useState, useLayoutEffect } from "react"
2
- import { PCBViewer } from "@tscircuit/pcb-viewer"
3
-
4
- export const PcbViewerWithContainerHeight = ({
5
- containerClassName,
6
- ...props
7
- }: {
8
- containerClassName?: string
9
- } & React.ComponentProps<typeof PCBViewer>) => {
10
- const containerRef = useRef<HTMLDivElement>(null)
11
- const [computedHeight, setComputedHeight] = useState(620)
12
-
13
- useLayoutEffect(() => {
14
- const updateHeight = () => {
15
- if (containerRef.current) {
16
- const containerHeight = containerRef.current.clientHeight
17
- const screenHeight = window.innerHeight
18
- setComputedHeight(
19
- Math.min(Math.max(containerHeight, 620), screenHeight),
20
- )
21
- }
22
- }
23
-
24
- // Immediate synchronous calculation
25
- updateHeight()
26
-
27
- // Resize listener for dynamic changes
28
- const resizeObserver = new ResizeObserver(updateHeight)
29
- if (containerRef.current) {
30
- resizeObserver.observe(containerRef.current)
31
- }
32
-
33
- // Fallback for window resize
34
- window.addEventListener("resize", updateHeight)
35
-
36
- return () => {
37
- resizeObserver.disconnect()
38
- window.removeEventListener("resize", updateHeight)
39
- }
40
- }, [])
41
-
42
- return (
43
- <div ref={containerRef} className={containerClassName || "w-full h-full"}>
44
- <PCBViewer {...props} height={computedHeight} />
45
- </div>
46
- )
47
- }
@@ -1,114 +0,0 @@
1
- import { Link } from "wouter"
2
- import { useEffect } from "react"
3
- import { useInView } from "react-intersection-observer"
4
- import { useQueryClient } from "react-query"
5
- import { useAxios } from "@/hooks/use-axios"
6
-
7
- // Whitelist of known pages that can be safely prefetched
8
- const PREFETCHABLE_PAGES = new Set([
9
- "landing",
10
- "editor",
11
- "search",
12
- "trending",
13
- "dashboard",
14
- "latest",
15
- "settings",
16
- "quickstart",
17
- "datasheets",
18
- ])
19
-
20
- // Helper to check if a path is a package path (e.g. /username/package-name)
21
- const isPackagePath = (path: string) => {
22
- const parts = path.split("/").filter(Boolean)
23
- if (parts.length !== 2) return false
24
-
25
- // Make sure we're not matching paths with query parameters in the first segment
26
- const firstPart = parts[0].split("?")[0]
27
- return firstPart.length > 0 && !PREFETCHABLE_PAGES.has(firstPart)
28
- }
29
-
30
- // Helper to check if a path is a user profile path
31
- const isUserProfilePath = (path: string) => {
32
- const parts = path.split("/").filter(Boolean)
33
- if (parts.length !== 1) return false
34
-
35
- // Extract the base path without query parameters
36
- const basePath = parts[0].split("?")[0]
37
- return !PREFETCHABLE_PAGES.has(basePath)
38
- }
39
-
40
- export const PrefetchPageLink = ({
41
- href,
42
- children,
43
- className,
44
- ...props
45
- }: {
46
- href: string
47
- children: React.ReactNode
48
- className?: string
49
- [key: string]: any
50
- }) => {
51
- const { ref, inView } = useInView({
52
- triggerOnce: true,
53
- threshold: 0,
54
- })
55
- const queryClient = useQueryClient()
56
- const axios = useAxios()
57
-
58
- useEffect(() => {
59
- if (!inView) return
60
-
61
- const path = href === "/" ? "landing" : href.slice(1)
62
- if (!path) return
63
-
64
- // Handle user profile paths
65
- if (isUserProfilePath(path)) {
66
- const username = path.split("/")[0]
67
- // Prefetch user profile data
68
- queryClient.prefetchQuery(["account", username], async () => {
69
- const { data } = await axios.post("/accounts/get", {
70
- github_username: username,
71
- })
72
- return data.account
73
- })
74
- return
75
- }
76
-
77
- // Handle package paths
78
- if (isPackagePath(path)) {
79
- const [owner, name] = path.split("/")
80
- const packageName = name.split("#")[0]
81
- // Prefetch package data
82
- queryClient.prefetchQuery(
83
- ["package", `${owner}/${packageName}`],
84
- async () => {
85
- const { data } = await axios.get("/packages/get", {
86
- params: { name: `${owner}/${packageName}` },
87
- })
88
- return data.package
89
- },
90
- )
91
- return
92
- }
93
-
94
- // Handle regular pages
95
- const pageName = path.split("?")[0]
96
- if (PREFETCHABLE_PAGES.has(pageName)) {
97
- import(`@/pages/${pageName}.tsx`).catch((error) => {
98
- console.error(`Failed to prefetch page module ${pageName}:`, error)
99
- })
100
- }
101
- }, [inView, href])
102
-
103
- return (
104
- <Link
105
- {...props}
106
- href={href}
107
- className={className}
108
- draggable={false}
109
- ref={ref}
110
- >
111
- {children}
112
- </Link>
113
- )
114
- }
@@ -1,16 +0,0 @@
1
- import { Button } from "@/components/ui/button"
2
- import { PlayIcon } from "lucide-react"
3
-
4
- const PreviewEmptyState = ({
5
- triggerRunTsx,
6
- }: { triggerRunTsx: () => void }) => (
7
- <div className="flex items-center gap-3 bg-gray-100 text-center justify-center py-10">
8
- No circuit json loaded
9
- <Button className="bg-blue-600 hover:bg-blue-500" onClick={triggerRunTsx}>
10
- Run Code
11
- <PlayIcon className="w-3 h-3 ml-2" />
12
- </Button>
13
- </div>
14
- )
15
-
16
- export default PreviewEmptyState
@@ -1,30 +0,0 @@
1
- import React from "react"
2
- import { useParams } from "wouter"
3
- import { OrganizationProfilePageContent } from "@/pages/organization-profile"
4
- import { UserProfilePage } from "@/pages/user-profile"
5
- import NotFoundPage from "@/pages/404"
6
- import { FullPageLoader } from "@/App"
7
- import { useOrganization } from "@/hooks/use-organization"
8
-
9
- const ProfileRouter: React.FC = () => {
10
- const { username } = useParams()
11
- const { organization, isLoading, error } = useOrganization({
12
- orgName: username,
13
- })
14
-
15
- if (!username) {
16
- return <NotFoundPage heading="Username Not Provided" />
17
- }
18
-
19
- if (isLoading) {
20
- return <FullPageLoader />
21
- }
22
-
23
- if (organization && !organization.is_personal_org && !error) {
24
- return <OrganizationProfilePageContent org={organization} />
25
- }
26
-
27
- return <UserProfilePage />
28
- }
29
-
30
- export default ProfileRouter
@@ -1,27 +0,0 @@
1
- import { Loader2Icon, PlayIcon } from "lucide-react"
2
- import { Button } from "./ui/button"
3
-
4
- export const RunButton = ({
5
- onClick,
6
- disabled,
7
- isRunningCode,
8
- }: {
9
- onClick: () => void
10
- disabled: boolean
11
- isRunningCode?: boolean
12
- }) => {
13
- return (
14
- <Button
15
- className="bg-blue-600 hover:bg-blue-500 run-button"
16
- onClick={onClick}
17
- disabled={disabled || isRunningCode}
18
- >
19
- Run
20
- {isRunningCode ? (
21
- <Loader2Icon className="w-3 h-3 ml-2 animate-spin" />
22
- ) : (
23
- <PlayIcon className="w-3 h-3 ml-2" />
24
- )}
25
- </Button>
26
- )
27
- }