* feat(frontend): wip
* feat(frontend): wip
* feat(frontend): wip
* feat(frontend): move component inside containers
* feat(frontend): done
* feat(frontend): done
* fix(frontend): wip
* fix(frontend): wip
* fix(frontend): done
* fix(frontend): done
* fix(frontend): fix anchored
* fix(frontend): restore event
* feat(frontend): support dropping on the top level + hide the shadow when leaving the grid
* feat(frontend): drop in the correct subgrid when there are multiple
* feat(frontend): wip
* feat(frontend): fix hide shadow
* feat(frontend): remove dead code
* feat(frontend): wip
* feat(frontend): fix overflow
* feat(frontend): wip
* feat(frontend): done
* feat(frontend): fix z-index
* feat(frontend): wip
* feat(frontend): fix shadow
* feat(frontend): fix resize + drop position
* feat(frontend): fix dropped when no movement
* feat(frontend): hide the fake shadow if the move mode is set
* feat(frontend): add small timeout when we leave the insert mode
* feat(frontend): render the shadow where the component will drop
* feat(frontend): done
* feat(frontend): done
* feat(frontend): improve perf
* feat(frontend): done
* feat(frontend): remove console.log
* feat(frontend): fix move toplevel
* feat(frontend): Components positions are restored when the mode changes
* feat(frontend): Components positions are restored when the mode changes
* feat(frontend): Components positions are restored when the mode changes
* feat(frontend): fix edges cases + improve perf
* feat(frontend): fix drop position
* feat(frontend): fix final drop position
* feat(frontend): fix final drop position
* feat(frontend): fix insert from component bar
* feat(frontend): Fix disapearing components
* Add new component `ExecutionDuration`
Reusable component helps with tracking execution time of job
It is not using job.started_at, but instead uses it's own tracking mechanism
The key difference that it can give insights during execution of job and measures pure execution time
Accuracy is configurable with `updateResolution`
Can also detect if job is `longRunning` e.g. runs more than X-seconds
* Implement Hint for Explicit Progress
It uses ExecutionDuration component introduced in previous commit
and device's local storage to handle `Dont show again`
* Remove dublication of `FlowProgressBar` in `run` page
* Change Hint styling
* Change values in `ExecutionDuration` to match required
`longDefinition`: 3 -> 30
`updateResolution`: 2 -> 10
Meaning jobs running more than 30s counts as a `Long Running Job`
* Fix broken link
* Scope to langs: `python3`, `bun` and `deno` jobKinds: `script`
* Simplify ExecutionDuration for new scope
* Bring `preview` job kind into the scope
We need this to show this tip in preview pages.
e.g. By clicking on subjob details of flow (this subjob is preview)