super-productivity/packages
Johannes Millan cae32b6db7 feat(document-mode): editable task titles, tight inline list layout
Task chips were atom nodes that just displayed the title and floated as
cards, with extra block spacing between them. Now they're content-bearing
nodes whose inline content IS the task title — typing inside one edits
the linked task.

- taskRef switches from atom to content: 'inline*', exposes contentDOM
  on the .title span so ProseMirror manages the editable content.
- isDone moves to an attr (instead of read-from-cache) so undo/redo
  carries it; the checkbox dispatches a setNodeAttribute transaction.
- buildSeedDoc populates each taskRef with the task title from cache.
- migrateStoredDoc walks older atom-style stored docs and backfills
  content from the cache so they load under the new schema.
- Title write-back: walking the doc on each onUpdate, per-task debounced
  updateTask. pendingTitleWrites + isTaskRefFocused guard the
  reconciler from clobbering an active edit with the echo of our own
  write (or an unrelated ANY_TASK_UPDATE).
- ANY_TASK_UPDATE now refreshes only the affected node via a precise
  replaceWith on the taskRef's inline range — preserves cursor on
  surrounding blocks.
- CSS: zero margin between consecutive taskRefs, baseline-aligned
  checkbox, no card background — the chip reads as a list item.
2026-05-21 17:40:53 +02:00
..
plugin-api feat(plugins): work-context buttons, embed slot, and WORK_CONTEXT_CHANGE hook 2026-05-21 17:21:27 +02:00
plugin-dev feat(document-mode): editable task titles, tight inline list layout 2026-05-21 17:40:53 +02:00
shared-schema
super-sync-server
sync-core Merge branch 'feat/do-a-complete-review-of-the-extration-66f89a' 2026-05-13 19:59:36 +02:00
sync-providers Merge branch 'feat/do-a-complete-review-of-the-extration-66f89a' 2026-05-13 19:59:36 +02:00
vite-plugin
build-packages.js
README.md

Super Productivity Packages

This directory contains plugin packages and the plugin API for Super Productivity.

Structure

  • plugin-api/ - TypeScript definitions for the plugin API
  • plugin-dev/ - Plugin development examples and tools
    • api-test-plugin/ - Basic API test plugin
    • procrastination-buster/ - Example SolidJS-based plugin
    • yesterday-tasks-plugin/ - Simple plugin showing yesterday's tasks
    • boilerplate-solid-js/ - Template for creating new SolidJS plugins (not built)
    • sync-md/ - Markdown sync plugin (not built)

Building Packages

All packages are built automatically when running the main build process:

npm run build:packages

This command:

  1. Builds the plugin-api TypeScript definitions
  2. Builds plugins that require compilation (e.g., procrastination-buster)
  3. Copies plugin files to src/assets/ for inclusion in the app

Development

To work on a specific plugin:

cd plugin-dev/[plugin-name]
npm install
npm run dev

Adding a New Plugin

  1. Create a new directory in plugin-dev/
  2. Add the plugin configuration to /packages/build-packages.js
  3. Run npm run build:packages to test the build

Notes

  • The boilerplate-solid-js and sync-md plugins are development templates and are not included in production builds
  • Plugin files are automatically copied to src/assets/ during the build process
  • The build script handles dependency installation automatically