Commit Graph

195 Commits

Author SHA1 Message Date
041e071961 Move favicon designer presets to JSON 2026-01-18 00:17:39 +00:00
c901b8d8ec Merge pull request #21 from johndoe6345789/codex/separate-components-into-individual-files
Split DocumentationView components into separate files
2026-01-18 00:10:27 +00:00
936070ca1a Split DocumentationView components 2026-01-18 00:10:13 +00:00
9a84d99614 Refactor global search components 2026-01-18 00:09:35 +00:00
copilot-swe-agent[bot]
507ad0bce4 Changes before error encountered
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-17 23:40:14 +00:00
copilot-swe-agent[bot]
33787398e2 Fix icon consistency in CICDPlatformItem component
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-17 23:20:28 +00:00
copilot-swe-agent[bot]
1414a08aa7 Refactor FaviconDesigner into modular components
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-17 23:16:45 +00:00
copilot-swe-agent[bot]
f221a36c88 Refactor DocumentationView and FeatureIdeaCloud into modular components
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-17 23:13:23 +00:00
copilot-swe-agent[bot]
6be1e9d918 Implement JSON-friendly expression system for events
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-17 22:53:54 +00:00
copilot-swe-agent[bot]
e5c0ef197e Fix event naming: use lowercase 'change' per schema conventions
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-17 22:50:46 +00:00
copilot-swe-agent[bot]
c68d47c326 Fix event naming consistency: use onChange instead of change
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-17 22:48:45 +00:00
copilot-swe-agent[bot]
0bf5a9d42c Add null checks to transform functions
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-17 22:47:19 +00:00
copilot-swe-agent[bot]
d58fa8be2a Add safety checks to compute functions and schema loader
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-17 22:45:45 +00:00
copilot-swe-agent[bot]
96740fbbd9 Add consistent error logging to schema loader
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-17 22:40:38 +00:00
copilot-swe-agent[bot]
212c4e125e Remove old TypeScript schema files
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-17 22:39:15 +00:00
copilot-swe-agent[bot]
f82c7aa081 Convert TypeScript schemas to JSON with compute functions
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-17 22:38:31 +00:00
ab152bbd67 Generated by Spark: Work on low hanging fruit from JSON_COMPATIBILITY_ANALYSIS.md 2026-01-17 22:21:40 +00:00
copilot-swe-agent[bot]
58437b9770 Migrate 20+ components to JSON UI system - now 46 supported
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-17 21:54:51 +00:00
copilot-swe-agent[bot]
a8dea7cd42 Remove legacy App files and obsolete documentation
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-17 21:36:46 +00:00
copilot-swe-agent[bot]
716e38a324 Add documentation for legacy App files
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-17 21:34:18 +00:00
copilot-swe-agent[bot]
d4512a3e98 Remove duplicate components, prefer JSON versions
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-17 21:31:38 +00:00
321e6c8d04 Generated by Spark: Remove duplicate components, prefer json version. 2026-01-17 21:23:16 +00:00
613450f8fb Generated by Spark: Remove duplicate components, prefer json version. 2026-01-17 21:18:55 +00:00
98f4b49edf Generated by Spark: Create Redux persistence middleware to sync state with database automatically 2026-01-17 21:14:31 +00:00
45454ac34b Generated by Spark: Add conflict resolution UI for handling sync conflicts between local and remote data 2026-01-17 21:08:10 +00:00
f58c7ac857 Generated by Spark: Implement Redux, Integrate redux into IndexedDB / Flask API system. 2026-01-17 21:01:23 +00:00
98b11d34e9 Generated by Spark: 1. Convert stuff to JSON Component Trees. 2. Make atomic components for said component trees. 2026-01-17 20:54:33 +00:00
cd19aef42f Generated by Spark: Breadcrumb should probably have a clear / reset button 2026-01-17 20:36:01 +00:00
23465084e0 Generated by Spark: Expand All, Collapse All buttons are too big, Maybe just use icon buttons? Don't really need the text, tooltip would be nice. 2026-01-17 20:29:59 +00:00
c7ebafe6a8 Generated by Spark: IndexedDB and Flask replaces Spark. Fix this please. Run npx tsc --noEmit
Error: src/components/FeatureIdeaCloud.tsx(920,37): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/components/PlaywrightDesigner.tsx(105,37): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/components/StorybookDesigner.tsx(115,37): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/components/TemplateExplorer.tsx(40,31): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/components/TemplateExplorer.tsx(44,32): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/components/UnitTestDesigner.tsx(138,37): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/hooks/data/use-seed-data.ts(23,19): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/hooks/data/use-seed-data.ts(30,33): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/hooks/data/use-seed-data.ts(40,24): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/hooks/data/use-seed-data.ts(63,19): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/hooks/data/use-seed-data.ts(71,22): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/hooks/data/use-seed-data.ts(86,19): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/hooks/data/use-seed-data.ts(91,33): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/hooks/data/use-seed-data.ts(95,22): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/hooks/data/use-seed-templates.ts(87,22): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/hooks/data/use-seed-templates.ts(102,33): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/hooks/data/use-seed-templates.ts(104,22): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/hooks/data/use-seed-templates.ts(126,43): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/hooks/data/use-seed-templates.ts(129,24): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/hooks/data/use-seed-templates.ts(131,24): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/hooks/json-ui/use-data-sources.ts(25,40): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/hooks/json-ui/use-data-sources.ts(47,20): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/hooks/orchestration/use-actions.ts(119,31): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/hooks/use-component-tree-loader.ts(22,19): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/hooks/use-component-tree-loader.ts(27,42): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/hooks/use-component-tree-loader.ts(31,22): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/hooks/use-component-tree-loader.ts(43,24): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/hooks/use-component-tree-loader.ts(60,17): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/hooks/use-component-tree-loader.ts(65,32): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/hooks/use-component-tree-loader.ts(90,19): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/hooks/use-component-tree-loader.ts(94,20): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/lib/project-service.ts(21,39): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/lib/project-service.ts(61,18): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/lib/project-service.ts(63,38): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/lib/project-service.ts(66,20): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/lib/project-service.ts(74,36): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/lib/project-service.ts(83,18): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/lib/project-service.ts(85,38): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/lib/project-service.ts(87,18): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/lib/protected-llm-service.ts(39,31): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/lib/unified-storage.ts(199,17): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/lib/unified-storage.ts(200,25): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/lib/unified-storage.ts(204,17): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/lib/unified-storage.ts(205,18): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/lib/unified-storage.ts(209,17): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/lib/unified-storage.ts(210,18): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/lib/unified-storage.ts(214,17): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/lib/unified-storage.ts(215,25): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/lib/unified-storage.ts(219,17): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/lib/unified-storage.ts(220,34): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/lib/unified-storage.ts(221,49): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: src/lib/unified-storage.ts(409,18): error TS2339: Property 'spark' does not exist on type 'Window & typeof globalThis'.
Error: Process completed with exit code 2.
2026-01-17 20:19:44 +00:00
9b13431bd3 Generated by Spark: Expand All, Collapse All buttons are too big, Maybe just use icon buttons? 2026-01-17 20:09:04 +00:00
c14aeeec87 Generated by Spark: maybe we can fix these warnings: @johndoe6345789 ➜ /workspaces/spark-template (main) $ npm run dev
> spark-template@0.0.0 dev
> vite

7:54:09 PM [vite] (client) Re-optimizing dependencies because lockfile has changed
Port 5000 is in use, trying another one...

  VITE v7.3.1  ready in 381 ms

  ➜  Local:   http://localhost:5001/
  ➜  Network: http://10.0.0.185:5001/
  ➜  press h + enter to show help
7:54:16 PM [vite] (client) warning:
/workspaces/spark-template/src/lib/component-registry.ts
21 |          for (const path of pathVariants){
22 |              try {
23 |                  const module = await import(path);
   |                                              ^^^^
24 |                  const exportName = componentConfig.export || 'default';
25 |                  if (module[exportName]) {
The above dynamic import cannot be analyzed by Vite.
See https://github.com/rollup/plugins/tree/master/packages/dynamic-import-vars#limitations for supported dynamic import formats. If this is intended to be left as-is, you can use the /* @vite-ignore */ comment inside the import() call to suppress this warning.

  Plugin: vite:import-analysis
  File: /workspaces/spark-template/src/lib/component-registry.ts
7:54:16 PM [vite] (client) warning:
/workspaces/spark-template/src/lib/unified-storage.ts
201 |          const moduleName = 'sql.js';
202 |          try {
203 |              return await import(moduleName);
    |                                  ^^^^^^^^^^
204 |          } catch  {
205 |              throw new Error(`${moduleName} not installed. Run: npm install ${moduleName}`);
The above dynamic import cannot be analyzed by Vite.
See https://github.com/rollup/plugins/tree/master/packages/dynamic-import-vars#limitations for supported dynamic import formats. If this is intended to be left as-is, you can use the /* @vite-ignore */ comment inside the import() call to suppress this warning.

  Plugin: vite:import-analysis
  File: /workspaces/spark-template/src/lib/unified-storage.ts
7:54:23 PM [vite] (client)  new dependencies optimized: framer-motion
7:54:23 PM [vite] (client)  optimized dependencies changed. reloading
7:54:23 PM [vite] (client) warning:
/workspaces/spark-template/src/lib/component-registry.ts
21 |          for (const path of pathVariants){
22 |              try {
23 |                  const module = await import(path);
   |                                              ^^^^
24 |                  const exportName = componentConfig.export || 'default';
25 |                  if (module[exportName]) {
The above dynamic import cannot be analyzed by Vite.
See https://github.com/rollup/plugins/tree/master/packages/dynamic-import-vars#limitations for supported dynamic import formats. If this is intended to be left as-is, you can use the /* @vite-ignore */ comment inside the import() call to suppress this warning.

  Plugin: vite:import-analysis
  File: /workspaces/spark-template/src/lib/component-registry.ts
7:54:24 PM [vite] (client) warning:
/workspaces/spark-template/src/lib/unified-storage.ts
201 |          const moduleName = 'sql.js';
202 |          try {
203 |              return await import(moduleName);
    |                                  ^^^^^^^^^^
204 |          } catch  {
205 |              throw new Error(`${moduleName} not installed. Run: npm install ${moduleName}`);
The above dynamic import cannot be analyzed by Vite.
See https://github.com/rollup/plugins/tree/master/packages/dynamic-import-vars#limitations for supported dynamic import formats. If this is intended to be left as-is, you can use the /* @vite-ignore */ comment inside the import() call to suppress this warning.

  Plugin: vite:import-analysis
  File: /workspaces/spark-template/src/lib/unified-storage.ts
2026-01-17 20:01:58 +00:00
4dfded3533 Generated by Spark: @johndoe6345789 ➜ /workspaces/low-code-react-app-b (main) $ npm run build
> spark-template@0.0.0 prebuild
> mkdir -p /tmp/dist || true

> spark-template@0.0.0 build
> tsc -b --noCheck && vite build

vite v7.3.1 building client environment for production...
<script src="/runtime-config.js"> in "/index.html" can't be bundled without type="module" attribute
✓ 37 modules transformed.
✗ Build failed in 1.07s
error during build:
[vite]: Rollup failed to resolve import "@github/spark/hooks" from "/workspaces/low-code-react-app-b/src/hooks/use-project-state.ts".
This is most likely unintended because it can break your application at runtime.
If you do want to externalize this module explicitly add it to
`build.rollupOptions.external`
    at viteLog (file:///workspaces/low-code-react-app-b/node_modules/vite/dist/node/chunks/config.js:33635:57)
    at file:///workspaces/low-code-react-app-b/node_modules/vite/dist/node/chunks/config.js:33669:73
    at onwarn (file:///workspaces/low-code-react-app-b/node_modules/@vitejs/plugin-react-swc/index.js:76:7)
    at file:///workspaces/low-code-react-app-b/node_modules/vite/dist/node/chunks/config.js:33669:28
    at onRollupLog (file:///workspaces/low-code-react-app-b/node_modules/vite/dist/node/chunks/config.js:33664:63)
    at onLog (file:///workspaces/low-code-react-app-b/node_modules/vite/dist/node/chunks/config.js:33467:4)
    at file:///workspaces/low-code-react-app-b/node_modules/rollup/dist/es/shared/node-entry.js:20961:32
    at Object.logger [as onLog] (file:///workspaces/low-code-react-app-b/node_modules/rollup/dist/es/shared/node-entry.js:22848:9)
    at ModuleLoader.handleInvalidResolvedId (file:///workspaces/low-code-react-app-b/node_modules/rollup/dist/es/shared/node-entry.js:21592:26)
    at file:///workspaces/low-code-react-app-b/node_modules/rollup/dist/es/shared/node-entry.js:21550:26
@johndoe6345789 ➜ /workspaces/low-code-react-app-b (main) $
2026-01-17 19:39:46 +00:00
882f9b0d3b Generated by Spark: Remove packages folder and packages folder references. Use IndexedDB by default. Give user option to use Flask API, if Flask fails, switch back to IndexedDB. Actually delete the packages folder. 2026-01-17 19:20:00 +00:00
0d1a4c4c2b Generated by Spark: Remove packages folder and packages folder references. Use IndexedDB by default. Give user option to use Flask API, if Flask fails, switch back to IndexedDB. 2026-01-17 19:13:16 +00:00
595f1ae9c0 Generated by Spark: A library in packages folder - Seems its still trying to use fetch. If a fetch fails, switch back to IndexedDB. 2026-01-17 18:57:01 +00:00
cbb303fb8d Generated by Spark: Seems its still trying to use fetch. If a fetch fails, switch back to IndexedDB. 2026-01-17 18:53:12 +00:00
7b91fe1975 Generated by Spark: I am having issues with this. Remember, we should be defaulting to IndexedDB, not the Flask API. Flask API is obtained by explicitly setting it in the UI or setting a env variable. export default function applyFetchPatch() {
if (ssrSafeWindow) {
    ssrSafeWindow.fetch = async (input: string | URL | Request, init?: RequestInit) => {
      try {
        const response = await globalFetch(input, init)
        sendFetchStats({input, error: !response.ok, status: response.status})
        return response
      } catch (error) {
        sendFetchStats({input, error: true, status: 'unknown'})
        throw error
      }
    }
  }
}
2026-01-17 18:50:06 +00:00
76e7716c10 Generated by Spark: I can auto default to flask backend with docker environment variable. If its not set used IndexedDB. 2026-01-17 18:38:17 +00:00
519ad0016d Generated by Spark: Ok I figured it out. Make a backend folder, put a flask backend in it with a Dockerfile. Main UI uses IndexedDB then with a UI setting, it can be moved to the flask backend. 2026-01-17 18:31:43 +00:00
02eb47e83f Generated by Spark: Perhaps it could use sqlite on disk if possible, else use indexeddb 2026-01-17 18:19:45 +00:00
270d0be790 Generated by Spark: Reduce reliance on spark database. Just use sqlite. 2026-01-17 18:14:23 +00:00
0f01311120 Generated by Spark: The sidebar change has potential but the styling is messed up. Maybe it should load the styling from a theme json 2026-01-17 18:01:25 +00:00
e1a51ebc9a Generated by Spark: Fix all reported errors. 2026-01-17 17:55:26 +00:00
6c05d8daab Generated by Spark: Would be nice if sidebar pushed content to right 2026-01-17 17:51:12 +00:00
feaa7d7a9e Generated by Spark: Make this function smarter, wide variety of search paths and other permissive logic - function createLazyComponent(componentConfig: ComponentConfig) {
const loader = () => {
    if (componentConfig.preloadDependencies) {
      componentConfig.preloadDependencies.forEach(depName => {
        const preloader = dependencyPreloaders[depName]
        if (preloader) {
          preloader()
        }
      })
    }

    return import(componentConfig.path).then(m => ({ default: m[componentConfig.export] }))
  }
2026-01-17 17:46:36 +00:00
bd2443c7ec Generated by Spark: code is flip flopping between this change - its something else. red herring. "path": "@/components/ProjectDashboard", 2026-01-17 17:33:47 +00:00
bad1e7b0f7 Generated by Spark: View ROADMAP.md - work on Near-Term (Next 2-3 Iterations) 2026-01-17 17:18:02 +00:00
640c861ac2 Generated by Spark: Load molecule and organism component trees from json 2026-01-17 16:54:00 +00:00
11a340cea1 Generated by Spark: Integrate atomic components into remaining molecule-level components 2026-01-17 16:46:53 +00:00