* Updates from Michal video 1
* Fix openWorkspaceCreateDialog
* Update color of + button
* Change isUserAdmin to isNotGuest
* Updated dialog
* Updated condtion
---------
Co-authored-by: Mike Tasset <mike.tasset@gmail.com>
* chore(workspaces): workspace cost schema
* chore(workspaces): test helper for workspace cost
* feat(workspaces): workspace billing cost
* fix(workspaces): fix onProjectCreated failing for the project creator if the creator is a member
* refactor(workspaces): change workspace cost calculation to a simpler query
* test(workspaceCost): fix costing logic and tests
* fix(workspaceTests): project emmiter needs owner now
---------
Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com>
* Color source implementation for a single level of instancing. I don't like it. I don't believe it's the right way to go
* Forgot this
* Rewritten the way prxy color sources are handled. Nesting instances now works for the most part
* Handled block-block situation from instance nesting
* Added sum comments for color proxy source implementation
* Disabled tonemaping for line materials
* Update Nav Link Font weight. Nowrap badge
* Plus spacing
* Workspace page tidy up
* Mobile testing
* Responsive fixes
* Fix clipping of avatar
* Adjust workspace item pl
* Square the plus button
* Font overwrites for workspace items in settings
* Remove unused props
* fix(users): verified should be a public limited user field
* feat(workspaceSecurity): update security tab copy
* feat(workspaces): add limited user domain policy compliance check
* fix(workspaces): transact all simultaneous workspace-project role changes
* fix(workspaces): more correct usage of transactions
* fix(workspaces): add tests for transaction-based role changes
* fix(workspaces): do not leak knex into domain
* fix(workspaces): transaction-ify factory functions
* fix(workspaces): factory-ify some old functions
* fix(workspaces): missed a resolver
* fix(workspaces): delete comment (very difficult)
* chore(workspaces): billing version limit graphql schema
* chore(workspaces): billing member role required
* chore(core): test helper for random string
* chore(core): test helpers
* chore(workspaces): workspaces billing version resolver
* chore(workspaces): rename version to versionsCount
- when sending Speckle objects to the server, they are batched into multi-part files
- a multi-part file therefore contains one or more Speckle objects
- the maximum limit for the multi-part file must therefore be greater than the maximum limit for a single Speckle object