doxa-maps/plugin-designs/plugin-studio
Doxa Maps 4241609572 Plugin Studio: the open tab is in the address, so a reload keeps it and a sent link opens it
Plugin Studio read its tab from #<bundle/profile> or from localStorage, and
never wrote it, so a reload worked for one reader but a sent link did not. It
now writes the view address through useViewAddress: ?tab=<bundle>__<profile>
(a row key's "/" is not a plain id; the double underscore keeps a sent link
meaning one row even if another bundle later adopts the profile's name). A
reader's tab click is a push, the first paint a replace, and Back/Forward
re-open the named tab without writing. route() reads ?tab= first (or a bare
profile name while it names exactly one row), then the old #bundle/profile
(rewritten to ?tab= on first paint, its hash dropped), then the remembered
tab, then the first row. The listener is removed before the hot-update return.

generate-tree bakes urlOwner 'app' into our own leaf pages only (never into an
embed snippet), and a framed leaf drops it at runtime, so a page embedded in a
partner's iframe reads its address but never adds entries to the partner's
Back button.
2026-10-03 05:26:13 +00:00
..
src The Plugin Studio's tree says why it imitates VS Code without pointing outside the repo 2026-09-29 03:22:40 +00:00
index.html Bake profile type into manifest; plugin-studio cap-5 element; UPG-100 print+dots 2026-09-19 06:56:27 +00:00
index.js library: one embedScript for the app shells, replacing four private copies 2026-09-28 07:07:33 +00:00
plugin-studio.instances.json Bake profile type into manifest; plugin-studio cap-5 element; UPG-100 print+dots 2026-09-19 06:56:27 +00:00
plugin-studio.meta.json Plugin studio: give the plugin the whole stage, and stop showing the grid twice 2026-09-24 19:25:50 +00:00
plugin-studio.vue Plugin Studio: the open tab is in the address, so a reload keeps it and a sent link opens it 2026-10-03 05:26:13 +00:00