Commit Graph
400 Commits
Author SHA1 Message Date
Zef Hemel 47f9d9987c Annotated existing commands with menu placements 2026-04-23 10:16:49 +02:00
Zef Hemel 6dec86d236 Add initial schema support for native file menu bindings 2026-04-23 09:31:04 +02:00
Zef Hemel 8b241f9448 Rebranding LIQ to SLIQ! 2026-04-22 20:54:43 +02:00
Zef Hemel 6f5d3c776f fix: restrict Ctrl-v page-down binding to macOS 2026-04-22 14:23:07 +02:00
Zef Hemel 556404565e Client: portal notification panel to document.body
Render .sb-notifications via createPortal so notifications escape the top-bar stacking context and can overlay modal panels.
2026-04-21 16:55:24 +02:00
Zef Hemel b207e8a06e Client: extract prettifyShortcut into shared lib
Move isMacLike and prettifyShortcut out of command_palette into plug-api/lib/shortcut so the configuration manager's shortcuts UI can render identical key notation.
2026-04-21 16:54:24 +02:00
Zef Hemel a34c2d3ac9 Plugs: per-path load/unload syscalls
Track the source path on each Plug and rename the sandbox-factory "cacheKey" to "path" to reflect what it actually is. Fold the one-liner web_worker_sandbox helper into a WorkerSandbox.forPath factory and add system.loadPlug / system.unloadPlug syscalls so individual plugs can be (re)loaded by path — foundation for the upcoming configuration-manager libraries UI.
2026-04-21 16:51:33 +02:00
Zef Hemel e226bfd685 Client: add editor.focus syscall 2026-04-21 16:50:34 +02:00
Zef Hemel 15b1f37734 Potentially breaking CSS change for the themers: .sb-notifications is now elsewhere in the DOM
Goal: make it always appear above even modal windows
2026-04-21 16:29:38 +02:00
Zef Hemel 795c248a0c Set some sensible default (fallback) config options when defaults are not yet available (initial index) 2026-04-21 13:06:36 +02:00
Zef Hemel f1394f3bc0 Expose content type also via X-Content-Type header 2026-04-21 10:30:11 +02:00
Zef Hemel 21ce019ede Editor: move built-in commands from plug to client
Cursor motions, selection, delete, undo/redo, completion, and the various navigator/palette openers are registered directly on the CommandHook from client code, eliminating the async plug round-trip that was racing Enter/Backspace handling in some cases (especially e2e tests).

CommandHook gains `registerCommand` and a shared `mergeCommand`  helper so built-ins, plug commands.
2026-04-21 10:05:38 +02:00
Zef Hemel dcc5f8992c Plug compiler: add "build" steps (esbuild/sass/copy)
Adds an optional `build:` section to plug manifests, running esbuild,  sass, or copy transforms before asset bundling. Enables plugs to ship bundled TSX/SCSS UIs (used by the upcoming configuration-manager plug).
2026-04-21 10:04:34 +02:00
Zef Hemel 0c9c07b3e6 Config: schema defaults, UI categories and annotations
`config.define` now propagates schema `default` values, so features like smart quotes no longer need their own fallback constants.

Adds `defineCategory` / `getCategories` for the upcoming configuration  manager UI.
2026-04-21 10:03:40 +02:00
Zef Hemel efd827b721 Implements #510
Extracts almost all codemirror keyboard shortcuts into proper SB
commands so they can be rebound

Bonus: renders prettier versions of keyboard shortcuts on Mac
2026-04-17 16:45:11 +02:00
Zef Hemel ea2ad9a732 Add actionButton.define "command" attribute
This automatically triggers a command bound to an actionButton, and
notably also shows the keyboard shortcut connected to it (if any)
2026-04-16 14:23:54 +02:00
Zef Hemel 1ec2574836 Fix: button text wrapping 2026-04-16 14:09:51 +02:00
Zef Hemel c5a61acda2 Revert "Revert unnecessary Webkit hacks"
This reverts commit f46196adcf.
2026-04-14 08:09:58 +02:00
Zef Hemel 0627e7cb49 Fixes #1931 and #1923 (hopefully)
The service worker's proxy fallback only matched the wrapped "Offline"
error from HttpSpacePrimitives, but raw fetch() throws browser-native
errors like
"Failed to fetch" (Chrome), "NetworkError..." (Firefox), or "Load
failed"
(Safari). This caused a hard 503 instead of falling through to serve
local
data. Additionally, the `fullSyncConfirmed` flag reset on every service
worker
restart, forcing unnecessary proxying even when synced data existed in
IndexedDB.

In this commit:
- Use `isNetworkError()` in proxy_router.ts to catch all browser network
  errors
  and fall through to local serving instead of returning 503
* Recover `fullSyncConfirmed` from persisted sync snapshot on SW
  restart, so
  previously synced spaces serve locally immediately
* Adds e2e tests trying to emulate this behavior and prevent regressions
2026-04-14 08:01:43 +02:00
Zef Hemel f46196adcf Revert unnecessary Webkit hacks 2026-04-13 20:09:10 +02:00
Zef Hemel cf159dba06 Fix: too tall a mini editor in various pickers on Safari
Hacky, but... probably working with a safari bug here.
2026-04-13 18:04:44 +02:00
Zef Hemel 21de72c6b5 Fix: don't wait for index drain on navigation on initial index
Currently when an inintial index takes a long time, navigation will
basically be blocked until it's finished which isn't great. This
special-cases that scenario and doesn't block (at the cost of possibly
not showing up to date widgets on the target page).
2026-04-13 13:44:03 +02:00
Zef Hemel 453139780b Fix: initial sync handling 2026-04-13 07:59:16 +02:00
Zef Hemel c9f93dccde Fixes #1929 2026-04-12 10:33:44 +02:00
Zef Hemel 64898923e1 Restore separate copy path for Lua widgets with cleaner markdown
Specifically for tables using (less rich) markdown syntax when possible
2026-04-09 14:38:10 +02:00
Zef Hemel 1946df3cb5 Generate <br/> instead of <br> for line breaks 2026-04-07 18:15:43 +02:00
Zef Hemel fbaad6cffb Fix widget glitching
No longer cache widget HTML content just widget heights, either way the
widgets will briefly flash as the widget is recalculated and this saves
storage space and reduces issues in Webkit
2026-04-07 15:42:59 +02:00
Zef Hemel 97e84607e7 Minor layout regression fix 2026-04-07 15:42:59 +02:00
Matouš Jan FialkaandGitHub 83bf71a907 [LIQ] Fix: Coerce values to plain numbers in numeric aggregate functions (#1925)
* [LIQ] Fix: Coerce values to plain numbers in numeric aggregate functions

All numeric aggregate iterate functions (`sum`, `product`, `avg`,
`stddev`, variance, covariance, correlation, bitwise, quantile, ...)
used TypeScript as number type assertions which have no effect at
runtime.  When a value was a string (e.g., YAML `rs: '3000.0'`) or
a `LuaTaggedFloat` object JS arithmetic operators like `+=` would
silently perform string concatenation or produce `[object Object]`
nonsense instead of numeric addition.

The fix introduces a small helper wrapping the `coerceToNumber` that
correctly unwraps plain numbers, `LuaTaggedFloat` objects and numeric
strings to plain JS numbers, and applies it at every numeric aggregate
intake point.

Signed-off-by: Matouš Jan Fialka <mjf@mjf.cz>

* [LIQ] Fix: Unwrap `LuaTaggedFloat` before passing values iterate function

`executeAggregate` now unwraps `LuaTaggedFloat` boxing before passing
values to any iterate function ensuring user-defined aggregates also
receive plain JS numbers instead of opaque internal objects.

Signed-off-by: Matouš Jan Fialka <mjf@mjf.cz>

* Remove forgotten trivial wrapper `aggNum`

Signed-off-by: Matouš Jan Fialka <mjf@mjf.cz>

---------

Signed-off-by: Matouš Jan Fialka <mjf@mjf.cz>
2026-04-07 11:31:28 +02:00
Zef Hemel 5751d5b64f HTML tag Live Preview (second attempt) 2026-04-07 11:30:38 +02:00
Zef Hemel 909e6e208b Trim single values when rendering Lua results as markdown 2026-04-06 21:51:35 +02:00
Felix RiedelandGitHub e88842d90b feat: allow passing arguments to vim ex commands (#1924) 2026-04-06 20:52:32 +02:00
Zef Hemel 15317ce821 Refactored Lua expression result rendering
Now produce "markdown" (or <table> tags for tables) instead of pure
HTML. Hopefully doesn't introduce regressions. Added a test suite for
future iterations.
2026-04-06 20:13:25 +02:00
Zef Hemel d143693f4b Replacing the CM default HTML parser with a custom one, to support
embedded markdown inside HTML blocks (not supported by default)
In preparation of implementing HTML tag preview (among other things)
2026-04-06 15:46:37 +02:00
Zef Hemel 42635590c2 Fix tests 2026-04-06 15:20:46 +02:00
Zef Hemel 8da76f230a Customized implementation of Enter handling for lists
* Fine tunes a few behaviors (like not adding extra newlines, ever
  (should fix #1629))
* When a list item ends with :, it automaticaly indents the next item
* Adds an extensive test suite with various cases

This needs some more testing, but should be a good starting point for
adding more tweaks later.
2026-04-06 15:17:48 +02:00
Zef Hemel b158dc6697 Unit test for render_lua_html test to make future changes not regress 2026-04-06 14:53:19 +02:00
Zef Hemel 2ad3172568 Revert HTML tags live preview, too many edge cases 2026-04-02 14:36:54 +02:00
Zef Hemel 75d992c10e Support JS objects for spacelua.interpolate 2026-04-02 13:47:13 +02:00
Zef Hemel 6fc936ae5a Improve widgets.button() stylign 2026-04-02 09:34:58 +02:00
Zef Hemel e5f188e59e Tag enhancements
* tag.define now supports a `tagPage` attribute, allowing what page to
  send the user to when clicking on a hash tag in the editor
* index.contentPages() and index.metaPages() are convenience wrappers
  around the index.tag("page") collection that filter on content and
  meta pages respectively.
2026-04-01 08:44:50 +02:00
Zef Hemel bb1fa6d8be Fix object index update 2026-04-01 07:59:01 +02:00
Zef Hemel dc4e701ddf syntax.define refinements 2026-03-31 15:01:16 +02:00
Zef Hemel dbc95239f6 Fixes #702 implementing Live Preview for HTML tags
This may still have edge cases, but basics should be working.
2026-03-31 11:11:17 +02:00
Zef Hemel 52b96f7093 Fixes #1915 2026-03-29 15:41:56 +02:00
Zef Hemel 431bf787ac Optimization: chunk up all coding languages
Even though the service worker will proactively cache them in the
browser, the browser will not have to load them, parse them, interpret
them unless these languages are actually used. Less JS to load, less
waiting.
2026-03-28 16:49:24 +01:00
Zef Hemel cda71b4608 Fixes #1888 (hopefully): disables timeout on writeFile requests
These can be large and take longer than 30s.
2026-03-28 14:54:50 +01:00
Zef Hemel 764ac375c9 Fix (webkit) encode URLs with dot in path name to circumvent Safari
overriding headers (fixes opening e.g. PDF files)
2026-03-27 16:38:50 +01:00
Zef Hemel cabe886813 Mobile hamburger style tweaks 2026-03-26 17:54:02 +01:00
Zef Hemel dce311ad24 Fix: Reduce bouncing when navigating between pages 2026-03-26 17:38:23 +01:00