@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
package/src/App.tsx DELETED
@@ -1,314 +0,0 @@
1
- import { ComponentType, Suspense, lazy } from "react"
2
- import { Route, Switch } from "wouter"
3
- import "./components/CmdKMenu"
4
- import { ContextProviders } from "./ContextProviders"
5
- import React from "react"
6
- import { ReloadIcon } from "@radix-ui/react-icons"
7
- import { Loader2 } from "lucide-react"
8
-
9
- export const FullPageLoader = () => (
10
- <div className="fixed inset-0 flex items-center justify-center bg-white z-50">
11
- <div className="w-48">
12
- <div className="loading">
13
- <div className="loading-bar"></div>
14
- </div>
15
- </div>
16
- </div>
17
- )
18
-
19
- const lazyImport = (importFn: () => Promise<any>) =>
20
- lazy<ComponentType<any>>(async () => {
21
- try {
22
- await new Promise((resolve) => setTimeout(resolve, 500))
23
- const module = await importFn()
24
-
25
- if (module.default) {
26
- return { default: module.default }
27
- }
28
-
29
- const pageExportNames = ["Page", "Component", "View"]
30
- for (const suffix of pageExportNames) {
31
- const keys = Object.keys(module).filter((key) => key.endsWith(suffix))
32
- if (keys.length > 0) {
33
- return { default: module[keys[0]] }
34
- }
35
- }
36
-
37
- const componentExport = Object.values(module).find(
38
- (exp) => typeof exp === "function" && exp.prototype?.isReactComponent,
39
- )
40
- if (componentExport) {
41
- return { default: componentExport }
42
- }
43
-
44
- throw new Error(
45
- `No valid React component found in module. Available exports: ${Object.keys(module).join(", ")}`,
46
- )
47
- } catch (error) {
48
- console.error("Failed to load component:", error)
49
- throw error
50
- }
51
- })
52
-
53
- const AuthenticatePage = lazyImport(() => import("@/pages/authorize"))
54
- const DashboardPage = lazyImport(() => import("@/pages/dashboard"))
55
- const EditorPage = lazyImport(async () => {
56
- const [editorModule] = await Promise.all([
57
- import("@/pages/editor"),
58
- import("@/lib/utils/load-prettier").then((m) => m.loadPrettier()),
59
- ])
60
- return editorModule
61
- })
62
- const LandingPage = lazyImport(() => import("@/pages/landing"))
63
- const MyOrdersPage = lazyImport(() => import("@/pages/my-orders"))
64
- const LatestPage = lazyImport(() => import("@/pages/latest"))
65
- const QuickstartPage = lazyImport(() => import("@/pages/quickstart"))
66
- const SearchPage = lazyImport(() => import("@/pages/search"))
67
- const CreateOrganizationPage = lazyImport(
68
- () => import("@/pages/create-organization"),
69
- )
70
- const ProfileRouter = lazyImport(() => import("@/components/ProfileRouter"))
71
- const DevLoginPage = lazyImport(() => import("@/pages/dev-login"))
72
- const ViewPackagePage = lazyImport(() => import("@/pages/view-package"))
73
- const TrendingPage = lazyImport(() => import("@/pages/trending"))
74
- const DatasheetPage = lazyImport(() => import("@/pages/datasheet"))
75
- const DatasheetsPage = lazyImport(() => import("@/pages/datasheets"))
76
- const PackageEditorPage = lazyImport(async () => {
77
- const [editorModule] = await Promise.all([
78
- import("@/pages/package-editor"),
79
- import("@/lib/utils/load-prettier").then((m) => m.loadPrettier()),
80
- ])
81
- return editorModule
82
- })
83
- const ReleasesPage = lazyImport(() => import("@/pages/releases"))
84
- const ReleaseDetailPage = lazyImport(() => import("@/pages/release-detail"))
85
- const ReleaseBuildsPage = lazyImport(() => import("@/pages/release-builds"))
86
- const ReleasePreviewPage = lazyImport(() => import("@/pages/preview-release"))
87
- const OrganizationSettingsPage = lazyImport(
88
- () => import("@/pages/organization-settings"),
89
- )
90
- const UserSettingsPage = lazyImport(() => import("@/pages/user-settings"))
91
-
92
- class ErrorBoundary extends React.Component<
93
- { children: React.ReactNode },
94
- { hasError: boolean; reloading: boolean }
95
- > {
96
- private visibilityHandler?: () => void
97
- private reloadTimeout?: number
98
-
99
- constructor(props: { children: React.ReactNode }) {
100
- super(props)
101
- this.state = { hasError: false, reloading: false }
102
- }
103
-
104
- static getDerivedStateFromError() {
105
- return { hasError: true, reloading: false }
106
- }
107
-
108
- componentDidCatch(error: Error) {
109
- console.error("ErrorBoundary caught", error)
110
- const message = error.message || ""
111
- if (
112
- /(Loading chunk|ChunkLoadError|dynamically imported module)/i.test(
113
- message,
114
- )
115
- ) {
116
- const loadedAt = window.__APP_LOADED_AT || Date.now()
117
- if (Date.now() - loadedAt >= 180_000) {
118
- this.performReload()
119
- }
120
- }
121
- }
122
-
123
- componentDidUpdate(_prevProps: any, prevState: any) {
124
- if (!prevState.hasError && this.state.hasError && !this.state.reloading) {
125
- this.setupIdleReload()
126
- }
127
- }
128
-
129
- componentWillUnmount() {
130
- this.cleanup()
131
- }
132
-
133
- cleanup = () => {
134
- if (this.visibilityHandler) {
135
- document.removeEventListener("visibilitychange", this.visibilityHandler)
136
- window.removeEventListener("focus", this.visibilityHandler)
137
- this.visibilityHandler = undefined
138
- }
139
- if (this.reloadTimeout) {
140
- clearTimeout(this.reloadTimeout)
141
- this.reloadTimeout = undefined
142
- }
143
- }
144
-
145
- performReload = () => {
146
- if (this.state.reloading) return // Prevent multiple reloads
147
-
148
- this.cleanup() // Clean up listeners before reload
149
- this.setState({ reloading: true })
150
- this.reloadTimeout = window.setTimeout(() => {
151
- if (window?.location.href.includes("localhost:")) return
152
- if (window?.location.href.includes("127.0.0.1:")) return
153
- window.location.reload()
154
- }, 500)
155
- }
156
-
157
- setupIdleReload = () => {
158
- this.cleanup() // Clean up any existing handlers
159
-
160
- this.visibilityHandler = () => {
161
- const loadedAt = window.__APP_LOADED_AT || Date.now()
162
- if (
163
- document.visibilityState === "visible" &&
164
- this.state.hasError &&
165
- !this.state.reloading &&
166
- Date.now() - loadedAt >= 180_000
167
- ) {
168
- this.performReload()
169
- }
170
- }
171
-
172
- document.addEventListener("visibilitychange", this.visibilityHandler)
173
- window.addEventListener("focus", this.visibilityHandler)
174
-
175
- // In case the tab is already visible when the error occurs
176
- this.visibilityHandler()
177
- }
178
-
179
- render() {
180
- if (this.state.reloading) {
181
- return (
182
- <div className="min-h-screen flex items-center justify-center bg-gray-50 dark:bg-gray-900 px-4">
183
- <div className="max-w-md w-full text-center">
184
- <div className="mb-6">
185
- <div className="inline-flex items-center justify-center w-16 h-16 bg-blue-100 dark:bg-blue-900 rounded-full mb-4">
186
- <Loader2 className="w-8 h-8 text-blue-600 dark:text-blue-400 animate-spin" />
187
- </div>
188
- <h2 className="text-xl font-semibold text-gray-900 dark:text-white mb-2">
189
- Reloading Page
190
- </h2>
191
- <p className="text-gray-600 dark:text-gray-400">
192
- We encountered an issue and are refreshing the page for you.
193
- </p>
194
- </div>
195
- </div>
196
- </div>
197
- )
198
- }
199
- if (this.state.hasError) {
200
- return (
201
- <div className="min-h-screen flex items-center justify-center bg-gray-50 dark:bg-gray-900 px-4">
202
- <div className="max-w-lg w-full text-center">
203
- <div className="mb-8">
204
- <div className="inline-flex items-center justify-center w-20 h-20 bg-red-100 dark:bg-red-900 rounded-full mb-6">
205
- <svg
206
- className="w-10 h-10 text-red-600 dark:text-red-400"
207
- fill="none"
208
- stroke="currentColor"
209
- viewBox="0 0 24 24"
210
- >
211
- <path
212
- strokeLinecap="round"
213
- strokeLinejoin="round"
214
- strokeWidth={2}
215
- d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L3.732 16.5c-.77.833.192 2.5 1.732 2.5z"
216
- />
217
- </svg>
218
- </div>
219
- <h1 className="text-2xl font-bold text-gray-900 dark:text-white mb-3">
220
- Oops! Something went wrong
221
- </h1>
222
- <p className="text-gray-600 dark:text-gray-400 mb-6">
223
- We're experiencing technical difficulties. The page will
224
- automatically reload when you return to this tab.
225
- </p>
226
- </div>
227
- <div className="space-y-3">
228
- <button
229
- onClick={this.performReload}
230
- className="w-full sm:w-auto inline-flex items-center justify-center px-6 py-2 border border-transparent text-base font-medium rounded-lg text-white bg-red-600 hover:bg-red-700 dark:bg-red-500 dark:hover:bg-red-600 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-red-500 transition-colors duration-200"
231
- >
232
- <ReloadIcon className="w-4 h-4 mr-2" />
233
- Reload Now
234
- </button>
235
- </div>
236
- </div>
237
- </div>
238
- )
239
- }
240
- return this.props.children
241
- }
242
- }
243
-
244
- function App() {
245
- return (
246
- <ContextProviders>
247
- <ErrorBoundary>
248
- <Suspense fallback={<FullPageLoader />}>
249
- <Switch>
250
- <Route path="/" component={LandingPage} />
251
- <Route
252
- path="/view-package/:author/:packageName"
253
- component={ViewPackagePage}
254
- />
255
- <Route path="/editor" component={PackageEditorPage} />
256
- <Route path="/legacy-editor" component={EditorPage} />
257
- <Route path="/quickstart" component={QuickstartPage} />
258
- <Route path="/dashboard" component={DashboardPage} />
259
- <Route path="/latest" component={LatestPage} />
260
- <Route path="/search" component={SearchPage} />
261
- <Route path="/trending" component={TrendingPage} />
262
- <Route path="/datasheets" component={DatasheetsPage} />
263
- <Route path="/datasheets/:chipName" component={DatasheetPage} />
264
- <Route path="/authorize" component={AuthenticatePage} />
265
- <Route path="/my-orders" component={MyOrdersPage} />
266
- <Route path="/dev-login" component={DevLoginPage} />
267
-
268
- {/* Organization creation route */}
269
- <Route path="/orgs/new" component={CreateOrganizationPage} />
270
-
271
- {/* User settings */}
272
- <Route path="/settings" component={UserSettingsPage} />
273
-
274
- {/* Organization settings route */}
275
- <Route
276
- path="/:orgname/settings"
277
- component={OrganizationSettingsPage}
278
- />
279
-
280
- {/* Profile fallback route - handles both organizations and users */}
281
- <Route path="/:username" component={ProfileRouter} />
282
-
283
- {/* Package-related routes - must come after profile fallback */}
284
- <Route
285
- path="/:author/:packageName/releases/:releaseId/builds"
286
- component={ReleaseBuildsPage}
287
- />
288
- <Route
289
- path="/:author/:packageName/releases/:releaseId"
290
- component={ReleaseDetailPage}
291
- />
292
- <Route
293
- path="/:author/:packageName/releases/:packageReleaseId/preview"
294
- component={ReleasePreviewPage}
295
- />
296
- <Route
297
- path="/:author/:packageName/releases/:packageReleaseId"
298
- component={ReleaseDetailPage}
299
- />
300
- <Route
301
- path="/:author/:packageName/releases"
302
- component={ReleasesPage}
303
- />
304
- <Route path="/:author/:packageName" component={ViewPackagePage} />
305
- {/* 404 fallback */}
306
- <Route component={lazyImport(() => import("@/pages/404"))} />
307
- </Switch>
308
- </Suspense>
309
- </ErrorBoundary>
310
- </ContextProviders>
311
- )
312
- }
313
-
314
- export default App
@@ -1,94 +0,0 @@
1
- import {
2
- MutationCache,
3
- QueryCache,
4
- QueryClient,
5
- QueryClientProvider,
6
- } from "react-query"
7
- import { HelmetProvider } from "react-helmet-async"
8
- import { useEffect } from "react"
9
- import { useGlobalStore } from "./hooks/use-global-store"
10
- import { posthog } from "./lib/posthog"
11
- import { Toaster } from "react-hot-toast"
12
- import { populateQueryCacheWithSSRData } from "./lib/populate-query-cache-with-ssr-data"
13
- import { trackReactQueryApiFailure } from "./lib/react-query-api-failure-tracking"
14
-
15
- const staffGithubUsernames = [
16
- "imrishabh18",
17
- "seveibar",
18
- "testuser",
19
- ...(import.meta.env.VITE_STAFF_GITHUB_USERNAMES?.split(",") || []),
20
- ]
21
-
22
- const queryClient = new QueryClient({
23
- queryCache: new QueryCache({
24
- onError: (error, query) => {
25
- trackReactQueryApiFailure(error, {
26
- operationType: "query",
27
- queryKey: query.queryKey,
28
- })
29
- },
30
- }),
31
- mutationCache: new MutationCache({
32
- onError: (error, _variables, _context, mutation) => {
33
- trackReactQueryApiFailure(error, {
34
- operationType: "mutation",
35
- mutationKey: mutation.options?.mutationKey,
36
- })
37
- },
38
- }),
39
- })
40
- populateQueryCacheWithSSRData(queryClient)
41
-
42
- const isInternalGithubUser = (githubUsername?: string | null) => {
43
- if (!githubUsername) return false
44
- return staffGithubUsernames.some(
45
- (internalGithubUsername: string) =>
46
- internalGithubUsername.toLowerCase() === githubUsername.toLowerCase(),
47
- )
48
- }
49
-
50
- function PostHogIdentifier() {
51
- const session = useGlobalStore((s) => s.session)
52
-
53
- useEffect(() => {
54
- if (!posthog.__loaded) {
55
- const checkInterval = setInterval(() => {
56
- if (posthog.__loaded) {
57
- clearInterval(checkInterval)
58
- identifyUser()
59
- }
60
- }, 100)
61
- return () => clearInterval(checkInterval)
62
- }
63
-
64
- const identifyUser = async () => {
65
- try {
66
- const githubUsername = session?.github_username
67
-
68
- if (isInternalGithubUser(githubUsername)) {
69
- posthog.identify(session?.github_username, {
70
- is_tscircuit_staff: true,
71
- })
72
- }
73
- } catch (error) {
74
- // Error handling silently fails
75
- }
76
- }
77
-
78
- identifyUser()
79
- }, [session])
80
-
81
- return null
82
- }
83
-
84
- export const ContextProviders = ({ children }: any) => {
85
- return (
86
- <QueryClientProvider client={queryClient}>
87
- <HelmetProvider>
88
- <PostHogIdentifier />
89
- {children}
90
- <Toaster position="bottom-right" />
91
- </HelmetProvider>
92
- </QueryClientProvider>
93
- )
94
- }
@@ -1,86 +0,0 @@
1
- import { BotIcon, ChevronDown, Eye, RotateCcw } from "lucide-react"
2
- import { Button } from "@/components/ui/button"
3
- import { Avatar } from "@/components/ui/avatar"
4
- import {
5
- DropdownMenu,
6
- DropdownMenuContent,
7
- DropdownMenuItem,
8
- DropdownMenuTrigger,
9
- } from "@/components/ui/dropdown-menu"
10
-
11
- export interface AiChatMessage {
12
- sender: "user" | "bot"
13
- content: string
14
- codeVersion?: number
15
- }
16
-
17
- export const AiChatMessage = ({ message }: { message: AiChatMessage }) => {
18
- const renderContent = (content: string) => {
19
- const parts = content.split(/(```[\s\S]*?(?:```|$))/g)
20
- return parts.map((part, index) => {
21
- if (part.startsWith("```")) {
22
- const isComplete = part.endsWith("```")
23
- return (
24
- <div
25
- key={index}
26
- className="bg-gray-100 rounded-md p-2 my-2 text-sm font-mono"
27
- >
28
- {isComplete
29
- ? `Code Version ${message.codeVersion ?? "??"}`
30
- : "generating..."}
31
- </div>
32
- )
33
- }
34
- return (
35
- <p key={index} className="text-xs font-mono whitespace-pre-wrap">
36
- {part}
37
- </p>
38
- )
39
- })
40
- }
41
-
42
- return (
43
- <div
44
- className={`flex ${
45
- message.sender === "user" ? "justify-end" : "justify-start"
46
- }`}
47
- >
48
- <div
49
- className={`max-w-[80%] rounded-lg p-4 ${
50
- message.sender === "user" ? "bg-blue-100" : "bg-white"
51
- }`}
52
- >
53
- {message.sender === "bot" && (
54
- <div className="flex items-center mb-2">
55
- <Avatar className="w-7 h-7 mr-2 flex items-center justify-center bg-black">
56
- <BotIcon className="text-white px-1" />
57
- </Avatar>
58
- <DropdownMenu>
59
- <DropdownMenuTrigger>
60
- <Button
61
- variant="outline"
62
- size="sm"
63
- className="h-6 px-2 text-xs"
64
- >
65
- version {message.codeVersion}
66
- <ChevronDown className="ml-1 h-3 w-3" />
67
- </Button>
68
- </DropdownMenuTrigger>
69
- <DropdownMenuContent>
70
- <DropdownMenuItem className="text-xs bg-white flex">
71
- <RotateCcw className="mr-1 h-3 w-3" />
72
- Revert to v{message.codeVersion}
73
- </DropdownMenuItem>
74
- <DropdownMenuItem className="text-xs bg-white flex">
75
- <Eye className="mr-1 h-3 w-3" />
76
- View v{message.codeVersion}
77
- </DropdownMenuItem>
78
- </DropdownMenuContent>
79
- </DropdownMenu>
80
- </div>
81
- )}
82
- {renderContent(message.content)}
83
- </div>
84
- </div>
85
- )
86
- }
@@ -1,23 +0,0 @@
1
- import { Analytics as VercelAnalytics } from "@vercel/analytics/react"
2
-
3
- export const Analytics = () => {
4
- return (
5
- <div className="absolute bottom-0 left-0 right-0">
6
- <VercelAnalytics />
7
- {/* <CookieConsent
8
- buttonText="Accept"
9
- cookieName="cookieConsent"
10
- style={{ background: "#2B373B" }}
11
- acceptOnScroll
12
- buttonStyle={{
13
- backgroundColor: "#111",
14
- color: "#fff",
15
- fontSize: "13px",
16
- }}
17
- expires={150}
18
- >
19
- This website uses cookies to enhance the user experience.
20
- </CookieConsent> */}
21
- </div>
22
- )
23
- }
@@ -1,69 +0,0 @@
1
- import { SupplierName } from "@tscircuit/props"
2
- import { AnyCircuitElement } from "circuit-json"
3
- import { Link } from "wouter"
4
-
5
- interface BomTableProps {
6
- circuitJson: AnyCircuitElement[]
7
- }
8
-
9
- export const linkify = (supplier: string, partNumber: string) => {
10
- if (supplier === "jlcpcb") {
11
- return (
12
- <a
13
- className="underline text-blue-500"
14
- target="_blank"
15
- href={`https://jlcpcb.com/partdetail/${partNumber}`}
16
- >
17
- {partNumber}
18
- </a>
19
- )
20
- }
21
- return partNumber
22
- }
23
-
24
- export const BomTable: React.FC<BomTableProps> = ({ circuitJson }) => {
25
- const sourceComponents = circuitJson.filter(
26
- (el) => el.type === "source_component",
27
- )
28
-
29
- const supplierColumns = new Set<SupplierName>()
30
- sourceComponents.forEach((comp) => {
31
- if (comp.supplier_part_numbers) {
32
- Object.keys(comp.supplier_part_numbers).forEach((supplier) =>
33
- supplierColumns.add(supplier as SupplierName),
34
- )
35
- }
36
- })
37
-
38
- return (
39
- <div className="overflow-x-auto">
40
- <table className="w-full text-left text-sm">
41
- <thead>
42
- <tr className="border-b">
43
- <th className="p-2">Name</th>
44
- {Array.from(supplierColumns).map((supplier) => (
45
- <th key={supplier} className="p-2 capitalize">
46
- {supplier}
47
- </th>
48
- ))}
49
- </tr>
50
- </thead>
51
- <tbody>
52
- {sourceComponents.map((comp) => (
53
- <tr key={comp.source_component_id} className="border-b">
54
- <td className="p-2">{comp.name}</td>
55
- {Array.from(supplierColumns).map((supplier) => (
56
- <td key={supplier} className="p-2">
57
- {linkify(
58
- supplier,
59
- comp.supplier_part_numbers?.[supplier]?.[0] || "",
60
- )}
61
- </td>
62
- ))}
63
- </tr>
64
- ))}
65
- </tbody>
66
- </table>
67
- </div>
68
- )
69
- }
@@ -1,53 +0,0 @@
1
- import { Button } from "@/components/ui/button"
2
- import { Input } from "@/components/ui/input"
3
- import { Paperclip, ArrowUp } from "lucide-react"
4
- import { useState, FormEvent } from "react"
5
-
6
- interface ChatInputProps {
7
- onSubmit: (message: string) => void
8
- disabled: boolean
9
- }
10
-
11
- export default function ChatInput({ onSubmit, disabled }: ChatInputProps) {
12
- const [inputValue, setInputValue] = useState("")
13
-
14
- const handleSubmit = (e: FormEvent) => {
15
- e.preventDefault()
16
- if (inputValue.trim()) {
17
- onSubmit(inputValue)
18
- setInputValue("")
19
- }
20
- }
21
-
22
- return (
23
- <form
24
- onSubmit={handleSubmit}
25
- className="relative shadow-lg border-2 border-gray-300 rounded-full m-4"
26
- >
27
- <Input
28
- disabled={disabled}
29
- type="text"
30
- placeholder="Ask for more"
31
- className="pr-20 pl-4 py-6 bg-white rounded-full border-none focus:ring-2 focus:ring-blue-500"
32
- value={inputValue}
33
- onChange={(e) => setInputValue(e.target.value)}
34
- />
35
- {/* For when we support attachments */}
36
- {/* <Button
37
- size="icon"
38
- variant="ghost"
39
- className="absolute left-2 top-1/2 transform -translate-y-1/2 text-gray-400 hover:text-gray-600"
40
- >
41
- <Paperclip className="h-5 w-5" />
42
- </Button> */}
43
- <Button
44
- type="submit"
45
- size="icon"
46
- className="absolute right-2 top-1/2 transform -translate-y-1/2 bg-blue-500 hover:bg-blue-600 text-white rounded-full"
47
- disabled={disabled}
48
- >
49
- <ArrowUp className="h-5 w-5" />
50
- </Button>
51
- </form>
52
- )
53
- }