Commit Graph

877 Commits

Author SHA1 Message Date
andrewwallacespeckle 79a65ff49a refetch activeUserWorkspaceExistenceCheckQuery to fix middleware 2025-05-28 15:17:31 +02:00
andrewwallacespeckle 0c451e1ece Remove mutation 2025-05-28 11:49:18 +02:00
andrewwallacespeckle 3d7de381e7 Update card when autojoin 2025-05-27 16:26:37 +02:00
andrewwallacespeckle f39d5df750 Fix linting 2025-05-27 12:44:19 +02:00
andrewwallacespeckle 958f0ca13a Merge branch 'main' into andrew/placeholder-updates-to-workspace-settings 2025-05-27 10:21:56 +02:00
Mike ce03abb602 Feat: Nudge users to use workemail (#4811) 2025-05-26 14:39:32 +02:00
Mike f38556db20 Fix: Update workspace invite checks to canInvite permission (#4814) 2025-05-26 13:08:54 +02:00
Mike b74c2fe197 Fix: Change project can invite to permission result (#4813) 2025-05-26 12:18:51 +02:00
Alexandru Popovici 0ef0a13979 Pro Measurement Tools (#4452)
* feat(viewer-lib): WIP on area measurement

* feat(viewer-lib): WIP on area measurement. Basics are working. Needs more bling

* feat(viewer-lib): Implemented polygon triangulation for measured area

* chore(shared): Updated MeasurementType

* Add Area control to measure panel

* feat(viewer-lib): Real time updates of the fill polygon and area value

* feat(viewer-lib): Added pole of innacessibility as area label anchor using the polylabel libraryh

* feat(viewer-lib): Fixed fill polygon material

* feat(viewer-lib): Changed the surface normal indicator from the faulty disc to a outlined rectangle. Looks and works much better now

* fix(viewer-lib): Measurements get clipped by sections planes

* faet(viewer-lib): Measurements can now optionally define their own snapping method. Area measurement snaps to first point in screen space. Generic vertex snap still applies if enabled

* fix(viewer-lib): Forgot to project the measured point

* feat(viewer-lib): Double click auto-finishes the area measurmenet by instantly joining with the first point. Right clikc removes current area measurement point so you can 'undo'

* fix(viewer-lib: Fixed a stupid bug relatedto text because somebody thought that making it 'async' would be sooooo cool...

* fix(frontend): Prevent zoom on double click when using area measurement

* chore(viewer-lib): Refined and fomralized a bit now that the general idea of a measurement has got more complex

* chore(viewer-lib): Moved state switching a bit

* chore(viewer-lib): Replaced the old disc normal indicator with the new one and made it standard. Added an option to the gizmo's style that determines the pixels size of the normal indicator

* chore(viewer-lib): Documented the area measurement tool

* chore(viewer-lib): Some updates:
- Implemented proper bounds getter for area measurement
- Got rid of the static vector buffers in Measurement and replaced them with consts where needed
- Reduced the min click timing from 250ms to 150ms
- Other small adjustments

* feat(viewer-lib): Added the option to chain measurements

* chore(frontend-2): Added toggle for measurement chaining

* chore(viewer-lib): Perpendicular measurement chaining now align on the same line as requested

* feat(viewer-lib): Implemented point (coordinate) measurement:
- Added support for billboard offseting in NDC in the shader via vec2 offset uniform. Not a dream come true, but required mostly because of how troika works
- SpeckleText background now follows text anchoring
- Implemented new POINT measurement type

* chore(viewer-lib): Separated label position calculation. We now update only the label transform each frame, instead of updating the entire label redunantly

* chore(viewer-lib): Offsets are now constants. Removed redundant vector and matrix creation

* chore(frontend-2): Placeholder radio button for point measurement type. Fixed compile errors

* fix(viewer-lib): Fixes WEB-3105. Export all measurement types

* updated icons

* Update description

---------

Co-authored-by: andrewwallacespeckle <andrew@speckle.systems>
Co-authored-by: Mike Tasset <mike.tasset@gmail.com>
2025-05-26 12:10:19 +03:00
andrewwallacespeckle bdc72782f2 Merge branch 'main' into andrew/placeholder-updates-to-workspace-settings 2025-05-23 09:55:05 +02:00
andrewwallacespeckle 3d3fda617f Merge branch 'main' into andrew/placeholder-updates-to-workspace-settings 2025-05-23 09:44:30 +02:00
andrewwallacespeckle fc32b19817 feat(fe): Improve domain discoverability
feat(fe): Improve domain discoverability
2025-05-23 09:43:32 +02:00
Mike cc60140967 Feat: Disable Speckle branding on embeds (#4801) 2025-05-22 17:02:04 +02:00
andrewwallacespeckle f02d57c697 feat(fe): add temp join policy to security settings 2025-05-22 16:28:38 +02:00
andrewwallacespeckle c15ea3fc65 Use Benjamins copy 2025-05-22 15:48:59 +02:00
andrewwallacespeckle d9d1c21fb0 Merge branch 'main' into andrew/show-admins-in-discoverable-workspace-card 2025-05-22 12:51:46 +02:00
Kristaps Fabians Geikins fd061d1159 feat(fe2): proper file upload access checks (#4785)
* feat(fe2): proper file upload access checks

* updated disabled upload empty state

* perm check fix
2025-05-22 12:45:39 +03:00
Chuck Driesler 0f5c22329b Chuck/web 3465 auto join discoverable workspace setting (#4791)
* feat(workspaces): enable toggle for auto-join discoverable workspaces

* fix(workspaces): include auto-join flag on LimitedWorkspace

* chore(workspaces): gqlgen
2025-05-22 10:11:05 +01:00
andrewwallacespeckle 9b977a5f43 Merge branch 'main' into andrew/show-admins-in-discoverable-workspace-card 2025-05-22 10:43:34 +02:00
Alexandru Popovici b50076ee29 Explode + Outlines (#4792)
* fix(viewer-lib): Implemented event for explode extension that allows section outline to sync up

* chore(sandbox): Fixed compile error
2025-05-22 10:03:31 +03:00
andrewwallacespeckle 3e9b96aca9 feat(fe): show admins in discoverable workspace card 2025-05-21 15:18:22 +02:00
Mike 3dc8c78f97 Fix: Some intercom improvements (#4782) 2025-05-21 14:31:26 +02:00
andrewwallacespeckle ce00d948bd GQL 2025-05-21 11:50:04 +02:00
andrewwallacespeckle 58fdd245ef Merge branch 'main' into andrew/specklecon-banner-dismissable 2025-05-21 11:49:54 +02:00
Mike d38488b152 Feat: Add Intercom tracking events (#4780) 2025-05-21 11:42:45 +02:00
andrewwallacespeckle a4278e5863 Merge branch 'main' into andrew/specklecon-banner-dismissable 2025-05-21 11:40:40 +02:00
Alexandru Popovici a385823b2d feat(viewer): objectloader2 integration (#4267)
* feat(viewer-sandbox): Made a sandbox function that will only invoke the object-loader loading objects

* first pass of creating an objectloader2

* updated build + added vitest

* try to get viewer sandbox to use new code

* sandbox type fix

* refactor a bit

* can download root

* intermediate commit for downloader/caching queue

* can download stuff!

* refactor files

* intro isBase and fix isString

* move single download to downloader

* fix download

* PR feedback

* some intermediate commit

* do clean up and download better

* clean up promises and linting

* can generate values while downloading and caching

* add a finish method

* remove unused functions

* remove asBase

* add temporary docs

* add more docs with mermaid

* add more test models

* add response validation

* add tests and redo options

* add test for download batch

* fix downloader tests and change Item to have clearer Base items

* add tests and refactor a little

* use fetch in downloader as an option

* use optional in-memory indexdb instead of monkey patching the global one

* more refactors for options for objectloader2

* add tests for objectloader2

* adjust single download

* benchmark loading and adjust ol2 batches

* download more!

* adjust to use hash privates

* refactored again with renaming

* cleanup

* make setupCacheDb throw instead

* use BatchedPool for downloads!

* fix tests

* adjust timings and add adaptive waiting

* Only wait if queue wasn't empty and queue size was full

* fix tests

* fix file names and some private usage

* fix interval and private usage

* rename vars

* use params for methods

* fix params for constructors and tests

* fix params for constructors and tests again

* using dexie

* faster settings but doesn't end well

* fixed end, optimized and removed logs

* fix tests

* fix types?

* update lock with WSL

* add e2e small model test

* fix/update yarn.lock

* Remove unused eslint ignore to fix pre-commit

* prettier fixes

* fix real DB usage

* rename methods to better match OL1

* rename methods to better match OL1 again

* add extra header collection

* add headers correctly

* test getTotalObjectCount

* feat(viewer-lib): Replaced old object loader with Adam's  objectloder2

* fix(viewer-lib): Removed the old object loader. Removed unneeded pause time in speckle loader

* Testing

* only deferred if not downloaded....don't save everything

* Lockfile

* pool isn't adjustable, adjust download buckets, dexie read is faster

* chore

* fix(viewer-lib): Fixed compiler errors

* fix getObject access with real indexeddb...adjust buffer for deferred access

* Fix disposal and pausing

* don't index item!

* fix dockerfiles to use OL2

* fix Dockerfile

* Fix dockerfile

* defer correctly and use record to add/lookup/remove to

* delete stuff correctly

* chore(sandbox): Enabled viewer loading

* use objects instead of arrays to avoid findIndex

* remove extra count

* add a found cache to avoid some db hits

* order matters for deferment

* move found map to deferment

* change option numbers

* 2 level cache with expiry

* defer everything, use loader to track what is requested....expire only found items

* add deferment disposal

* oops mismerge

* chore(sandbox): Default stream

* Beta version of CachePump and CacheReader

* Clean up initialization

* More clean up

* chore(objectloader2): Fixed CI compiler error

* chore(objectloader2): Fixed prettier

* add cachePump tests

* add cacheReader tests

* fixed more tests

* fixed final tests

* moving stuff around and lock return value

* try to move stuff out of objectloader2

* use a factory

* rename factory

* formatting

* eslist fixes

* try allocating no strings

* add comments

* small refactor and add another test

* fix deferment expiration and have test

* use byte size for max memory cache size

* fix deferment manager tests

* saved comment

* fix(viewer-sandbox): Fixed compiler error

* ignore tshy

* chore(frontend): Attempt to make viewer loading sequential

---------

Co-authored-by: Adam Hathcock <adam@hathcock.uk>
Co-authored-by: Kristaps Fabians Geikins <fabis94@live.com>
Co-authored-by: Iain Sproat <68657+iainsproat@users.noreply.github.com>
2025-05-21 10:05:50 +03:00
Mike aaa4e1ab71 Feat: Add embed option to disable title link (#4778) 2025-05-20 22:25:03 +02:00
Mike 3a2564d44c Feat: Add option to hide Speckle branding on embed (#4777) 2025-05-20 15:48:57 +02:00
andrewwallacespeckle c571d51d27 feat: add speckleConBannerDismissed to activeUser.meta 2025-05-20 13:55:32 +02:00
Kristaps Fabians Geikins 7d64667ea0 fix(fe2): project delete btn not following auth policy (#4770) 2025-05-20 13:32:07 +03:00
Kristaps Fabians Geikins 814bd2ca40 chore: branch -> model in error msg (#4768)
* chore: branch -> model in error msg

* tests fix
2025-05-20 12:27:05 +03:00
Benjamin Ottensten 3d4c4395f4 Feat: Enable Intercom for in-app support (#4640) 2025-05-19 15:35:16 +02:00
Chuck Driesler 969ca64a1b feat(workspaces): toggle embedded viewer branding (#4762)
* feat(viewer): embedded viewer option to hide speckle branding

* chore(viewer): can edit embed options policy

* chore(embeds): tests for new policy and gql
2025-05-19 13:19:38 +01:00
Alexandru Popovici 12545c6f16 Oriented Section Tool (#4230)
* feat(viewer-lib): WIP on the new OrientedSectionTool

* feat(viewer-lib): Added proper face pulling for the oriented section box

* feat(viewer-lib): Several updates on the oriented sectioning tool
- Implemented section planes calculation and propagation
- Unified obb computation from all gizmos
- Implemented proper setBox function
- Updated the viewer-core to work with OBB instead of AABB for it's clipping volume
- Updated the intersections to work with OBB for their intersting bounds
- Added extension methods to Box3 and OBB

* feat(viewer-lib): Better way of handling gizmo input events overlapping

* fix(viewer-lib): Updated clippingVolume occurences to OBB

* feat(viewer-lib): Section outlines now work with oriented section tool!

* feat(viewer-lib): Integrated new section tool with the frontend and API
- Defined an archtype for SectionTool which all section tools can derive from
- The old section tool is renamed to AxisAlignedSectionTool
- Replaced the old section tool with the oriented one in the frontend

* fix(viewer-lib): Fixed compile errors

* feat(viewer-lib): Some updates:
- Section tool outline, the visible box, is now rendered as before however it's correctly being RTE'd. And we can also make it thinner/thicker now
- Fixed the issue where the scale controls had 'exponential' growth. It's now linear like the translate one

* feat(viewer-lib): Implemented highlghting the box face when clicking on it to extend/retract it

* fix(viewer-lib): A bunch of fixes for the oriented section tool

* feat(viewer-lib): Some updates:
- Documented new OrientedSectionTool code
- Fixed som issues related to section box reseting
- Hid the translation and rotation gizmos that we aren't using
- Tidied up a bit

* feat(viewer-lib): Set the translate and rotate gizmos in local space so the rotation will affect them as wll

* chore(viewer-lib): Purged the old section tool

* chore(viewer-lib): Updated section box data type. Updated LegacyViewer section box data handling. Updated frontend to use new data type. Still not working doe

* fix(viewer-lib): Fixed an issue where comments with section boxes did not enable section outlines at startup

* chore(frontend): Fixed ci compiler error

* fix(viewer-lib): Fixes WEB-1593
2025-05-19 11:30:50 +03:00
Mike e6cd9a88d6 Fix: Enable grasshopper in connectors (#4753) 2025-05-15 16:35:08 +02:00
Chuck Driesler a8ae414bde chore(workspaces): drop legacy join() (#4752)
* fix(workspaces): drop legacy discoverable workspace join

* fix(workspaces): one more reference
2025-05-15 13:22:42 +01:00
andrewwallacespeckle c16912d6ae fix(fe): Add available editor seats query to component. refetch on change confirm
fix(fe): Add available editor seats query to component. refetch on change confirm
2025-05-15 10:48:27 +02:00
Benjamin Ottensten 77101832bf Fix: Copy fixes for private projects (#4747)
* Change copy, icons, and order of items

* Update general access copy if project is private
2025-05-15 08:58:28 +02:00
andrewwallacespeckle 9124687352 fix: add available seats query in component. refetch on confirm. 2025-05-14 16:44:44 +02:00
Kristaps Fabians Geikins 4db1531064 feat: "workspace" project visibility (#4704)
* WIP new visi

* test fixes

* visibility seems to work

* authz policies & authorizeResolver updated

* various test fixes

* users tests

* frontend changes

* minor adjustments

* shared test fix

* test fixes

* force rerun CI
2025-05-14 15:20:26 +03:00
andrewwallacespeckle ac38bd539d feat(fe): Disable file upload menu item in some cases
feat(fe): Disable file upload menu item in some cases
2025-05-14 10:34:50 +02:00
andrewwallacespeckle 93ee2266fd feat(fe): Disable file upload menu item in some cases 2025-05-13 15:40:33 +02:00
Mike a8ad4eeba0 Chore: Remove all noPersonalEmails related logic (#4726) 2025-05-13 14:42:08 +02:00
andrewwallacespeckle 484f772689 fix: update unnecessary available seat calculation
fix: update unnecessary available seat calculation
2025-05-13 14:20:41 +02:00
andrewwallacespeckle 6ccac31c33 fix: remove unnecessary available seat calculation 2025-05-13 14:06:23 +02:00
andrewwallacespeckle 9b2e9f2d11 Update ui.ts 2025-05-13 10:09:30 +02:00
Chuck Driesler 19ea8b2879 fix(authz): expose canInvite gql queries (#4712) 2025-05-12 21:10:47 +01:00
Mike 26489fb420 Fix: Allow selecting of the default color (#4701) 2025-05-12 16:14:28 +02:00
andrewwallacespeckle c02aa237bf fix: add refetch. Only show button when pagination is needed 2025-05-12 14:42:30 +02:00