Skip to content

Feat native post native loading window indicator#92

Merged
AllTerrainDeveloper merged 10 commits intotrunkfrom
feat-native-post-native-loading-window-indicator
May 6, 2026
Merged

Feat native post native loading window indicator#92
AllTerrainDeveloper merged 10 commits intotrunkfrom
feat-native-post-native-loading-window-indicator

Conversation

@AllTerrainDeveloper
Copy link
Copy Markdown
Collaborator

@AllTerrainDeveloper AllTerrainDeveloper commented May 6, 2026

Native Posts Window

A brand-new, desktop-native Posts experience for WP Desktop Mode — no iframe, no classic edit.php, just a fast, spatial UI built on our own component kit. This branch turns "manage your posts" into something that finally feels at home on the desktop.

What's new

A native Posts window

  • A full Posts window rendered directly in the shell (no chromeless iframe), with its own REST layer, table, filters, and editing affordances.
  • Opt-in via OS Settings → Features (nativePostsEnabled), gated server-side with a proper capability check and PHPUnit coverage.
  • Clean URL remapping so deep links to posts/edit screens route into the native window instead of bouncing through edit.php.
Posts.mov

A Terms tab (Categories & Tags) that actually feels good

  • Unified UI for managing categories and tags in one place: stats strip, search/add toolbar, paginated table.
  • Hierarchical category support with a parent picker, plus add / edit / delete with proper confirmation and error handling.
  • Live broadcast: when categories change in one picker, every other open picker updates instantly.

Categories Mindmap & Tags Cloud

  • Two new visualizations of your taxonomy: an interactive categories mindmap and a tags cloud, both with smooth zoom, pan, and debounced re-fitting on window resize.
  • Bigger, more legible text; consistent font sizing between category chips and post titles; a cleaner Uncategorized node.

A proper component kit

New reusable Lit components under src/ui/components/:

  • wpd-category-picker — chain-aware picker with descendant/segment removal logic
  • wpd-crumb-chain — breadcrumb chain rendering
  • wpd-multiselect, wpd-tag-input, wpd-chip
  • wpd-save-status — unified save-state indicator
Save.indicator.mov

Plus upgrades to existing ones: sticky-column visual dividers and dynamic last-sticky detection in wpd-table, password-manager-resistant masking in wpd-text-field, polish in wpd-tabs.

Why it's awesome

  • It's native. This is the first major surface that isn't an iframe-wrapped legacy screen — it's the proof that desktop-first WP Admin works.
  • It's fast. No iframe boot, no Core CSS reset fights, no double-paint. Filters, sorting, and pagination feel instant.
  • It's extensible. Lit components, documented hooks, and new docs (native-posts.md, window-activity.md, hooks/JS reference updates) so plugin authors can build on top of all of this.
  • It's tested. New PHPUnit tests for registration and settings, vitest coverage for URL remapping and REST plumbing.
  • It's a foundation. The component kit and REST patterns introduced here are what every future native window (Media, Pages, Comments…) will reuse.

Touched docs

docs/examples/native-posts.md, docs/examples/window-activity.md, docs/hooks-reference.md, docs/javascript-reference.md, plus README and .pot updates.

Open WordPress Playground Preview

- Introduced Tests_DesktopMode_PostsWindowRegistration to validate registration and permission gates for the native Posts window.
- Added Tests_DesktopMode_PostsWindowSettings to ensure the `nativePostsEnabled` field is correctly handled in user settings.
- Created vitest tests for native URL remapping and REST interactions in the Posts window, covering various scenarios including fetching posts, handling errors, and building edit post URLs.
This commit introduces a new `terms-tab.ts` file that implements a unified UI for managing categories and tags within the native Posts window. The new design features a stats strip, a search and add toolbar, and a paginated table for displaying terms. The implementation supports hierarchical categories with a parent picker and includes functionality for adding, editing, and deleting terms. The UI is designed to enhance user experience by providing a cleaner layout and improved interaction patterns.
…ity and styling

- Removed minimum chip visual scale in categories mindmap for consistent text readability across zoom levels.
- Updated category chip font size to match post title font size for visual consistency.
- Implemented category deletion functionality in the category picker, including confirmation prompts and error handling.
- Enhanced category picker to broadcast fresh category trees to all active pickers upon category changes.
- Added delete button to category rows, visible on hover or keyboard focus, to allow for easy category removal.
- Improved table styling to provide a clear visual divider for sticky columns, enhancing usability.
- Refactored table component to compute the last sticky column index dynamically, ensuring accurate rendering of sticky edges.
…ng and improved text rendering

- Added debounced fitting for categories mindmap and tags cloud on window resize events to ensure proper layout during transitions.
- Increased font sizes for better readability in both components.
- Implemented a new text resolution constant for consistent text rendering across different UI elements.
- Updated the handling of the Uncategorized node in the categories mindmap for improved visual representation.
- Introduced CSS-only password masking in the text field component to prevent password managers from interfering with API key inputs.
- Enhanced unit tests for the text field component to cover new password masking behavior and autocomplete attributes.
- Updated `fetchPosts` to handle `author` and `tags` parameters as arrays, ensuring proper REST API compatibility.
- Improved `mountTagsCloud` to enhance zoom functionality and resize handling, including a new cache mechanism for posts.
- Adjusted table styles to differentiate column borders and ensure better visual clarity.
- Enhanced `wpd-table` component to clarify filtering behavior for `filterRender` columns, ensuring they are not filtered client-side.
- Improved performance by optimizing header and filter row rendering in `wpd-table`.
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 6, 2026

✅ WordPress Plugin Check Report

✅ Status: Passed

📊 Report

All checks passed! No errors or warnings found.


🤖 Generated by WordPress Plugin Check Action • Learn more about Plugin Check

@AllTerrainDeveloper AllTerrainDeveloper merged commit 4e55f06 into trunk May 6, 2026
5 checks passed
@AllTerrainDeveloper AllTerrainDeveloper deleted the feat-native-post-native-loading-window-indicator branch May 6, 2026 10:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant