Added window.presentSheet (domScript permission) API
Added window.inspector.addItem (domScript permission) API
Added URL open method and other URL (openURL permission) API
Added type parameters to clipboard API
Improved zoom animations when filtering
Show selected rows at full scale when filtering
Moved bike provided extension code from @Startup to @Bike
Fixed console.log output to show in Safari inspector
Fixed sidebar clicks to work when multiple windows open
New release! Big effort this time around is giving extensions the ability to display their own UI in WebViews. Along the way I also managed to reorganize a bunch of things.
Quite a few changes to extensions in this release. I donāt think that Iāve broken much (any?) API, but I have added a bunch of things and make some structure changes.
The big structure change is that now the @Bike folder (in the extensions folder) is itself an extension. So it contains both API type documentation and extension code that ships with Bike. It is always loaded first. The idea is that things such as āsidebar headings itemā that I want in a default Bike install will be added to this folder. It gets replaced on each launch, so the number of default additions can grow over time.
To go with that change the default @Startup extension now does nothing. Itās where you can add your own experiments, but doesnāt contain default behavior.
The next big changes is that extensions can now define their own views using web APIs. There are two places where they can do this: 1) window.inspector.addItem and 2) window.presentSheet. In future I will probably add other places.
Itās a bit complex because Bike extensions run in a headless javascript context⦠not associated Webview or DOM/HTML. To display custom views your extension will need to load a specified Dom script into a web view hosted in Bikeās UI. That script and your main extension code can communicate with each other using on message and postMessage. See this example.
Please give these things a try and let me know what needs fixing.
If you go digging into the API I just remembered some api that I havenāt filled in yet: inspector.addItem currently ignores the tab parameter and ignores the item.ordering parameter.
I forgot to mention, while I donāt think this release breaks much API extension structure has changed some. Most importantly extensions point to the @Bike extension for autocomplete types ⦠and those locations have changed. And that means tsconfig.json files needed to change.
If you are playing with @Startup or your own extension your best bet to get everything working well might be:
Move your customized @Startup extension to backup location.
Launch Bike so that it will recreate @Startup with new structure
Move your changes back into project
Open in VS Code and verify that autocomplete and type checking are working properly. Note that when editing files in src/dom you should get different autocomplete options⦠HTML/DOM API should be available, while most of Bike app API should not be available.
Thanks for finding, this is a bug. I havenāt made much use of this API and didnāt realize I had broken the field function a while back. Will fix for next release.