diff --git a/README.md b/README.md index 05a29be..e73ee19 100644 --- a/README.md +++ b/README.md @@ -1,149 +1,115 @@ # Note Status for Obsidian +[![PayPal](https://img.shields.io/badge/PayPal-00457C?style=for-the-badge&logo=paypal&logoColor=white)](https://paypal.me/aleixsoler) +[![Buy Me a Coffee](https://img.shields.io/badge/Buy%20Me%20a%20Coffee-FFDD00?style=for-the-badge&logo=buy-me-a-coffee&logoColor=black)](https://buymeacoffee.com/aleixsoler) + [![GitHub release](https://img.shields.io/github/v/release/devonthesofa/obsidian-note-status)](https://github.com/devonthesofa/obsidian-note-status/releases) [![Build Status](https://img.shields.io/github/actions/workflow/status/devonthesofa/obsidian-note-status/release.yml)](https://github.com/devonthesofa/obsidian-note-status/actions) [![Obsidian Downloads](https://img.shields.io/badge/dynamic/json?logo=obsidian&color=%23483699&label=downloads&query=%24%5B%22note-status%22%5D.downloads&url=https%3A%2F%2Fraw.githubusercontent.com%2Fobsidianmd%2Fobsidian-releases%2Fmaster%2Fcommunity-plugin-stats.json)](https://obsidian.md/plugins?id=note-status) [![GitHub License](https://img.shields.io/github/license/devonthesofa/obsidian-note-status)](https://github.com/devonthesofa/obsidian-note-status/blob/master/LICENSE) [![GitHub Stars](https://img.shields.io/github/stars/devonthesofa/obsidian-note-status)](https://github.com/devonthesofa/obsidian-note-status/stargazers) -Track the status of your notes with a powerful, customizable status management system. Mark notes as active, completed, on hold, or create your own custom workflows. +Track the lifecycle of every file in your vault using statuses you fully control. Note Status brings visual clarity and structured workflows to Obsidianβ€”whether you're managing research notes, writing projects, tasks, or long-term archives. -![Status assignment workflow demonstration](images/status-assignment-demo.png) +It works on both Markdown and non-Markdown files, integrates into multiple UI surfaces, and provides configurable dashboards, commands, and fast actions to keep information flowing. -_Alt: Demonstration of assigning status to a note using the toolbar dropdown_ +## Contents -## 🎯 Features +- [Feature Guide](docs/features.md): what the plugin can do across commands, UI surfaces, and workflows. +- [Settings Reference](docs/settings.md): every option, grouped like the in-app settings. -- **πŸ“‹ Status Assignment** - Mark notes with workflow statuses (active, completed, on hold, etc.) -- **🎯 Multi-Status Support** - Assign multiple statuses per note -- **πŸ“ File Explorer Icons** - Visual indicators next to filenames with configurable positioning -- **🧭 Status Bar Integration** - View current status at bottom of editor -- **⬇️ Toolbar Dropdown** - Change statuses quickly from editor toolbar -- **πŸ“Š Status Dashboard** - Vault overview with statistics and quick actions -- **πŸ“ˆ Grouped View** - Browse notes organized by status with search and filtering -- **⚑ Batch Operations** - Update multiple files simultaneously -- **🎨 Custom Statuses** - Create your own statuses with icons, colors, and descriptions -- **🏷️ Template Scoping** - Organize statuses by note templates -- **πŸš€ Performance Optimized** - Works with large vaults (40k+ notes tested) +![Big picture 1](images/big-picture-1.png) +![Big picture 1](images/big-picture-2.png) -![File explorer with status icons](images/file-explorer-status-icons.png) +## Quick start -_Alt: File explorer showing multiple notes with different status icons positioned next to note names and the tooltip with status overview_ +1. Open Settings β†’ Note Status. +2. Expand **Templates & Statuses** and keep a built-in template or add your own/custom-only set. +3. Pick where to see/change status: **Status Bar** or **Editor Toolbar**. +4. Set a status from the badge or run `Change current note status`. +5. Watch file explorer icons update; hover for the overview popup or click to change again. +6. If enabled, open the **Status Dashboard** or **Grouped Status View** from the ribbon/commands. -![Status dashboard with vault statistics](images/status-dashboard-overview1.png) +## Key features -_Alt: Status dashboard showing current note information, vault statistics with total notes and coverage percentages_ -![Status dashboard with vault statistics](images/status-dashboard-overview2.png) +- Status picker everywhere: status bar badge, editor toolbar, explorer context menus, commands. +- Multi-status or single-status workflows; quick-status commands for hotkeys. +- File explorer icons with configurable placement, frames, and visual treatments (row tint, underline, dot, border). +- Status bar badges with accent/filled/dot styles and icon/text options; template names can auto-show on conflicts. +- Dashboards and grouped views (gated by experimental toggles and vault size limit) for vault-wide visibility and quick actions. +- Built-in templates (Colorful, Minimal, Academic, Project) plus full custom templates and standalone custom statuses. +- Works with YAML frontmatter and non-Markdown via a synced JSON store; frontmatter mappings let you write to multiple keys. -_Alt: Status distribution chart showing different statuses with colored bars and note counts for each status type_ -![Status dashboard with vault statistics](images/status-dashboard-overview3.png) +## Data model -_Alt: Quick actions panel with organized sections for views, current note operations, clipboard actions, and tools_ +- **Markdown**: statuses live under the tag prefix (default `obsidian-note-status`). Map templates/statuses to extra YAML keys and optionally also write to the default. +- **Non-Markdown**: stored in `.obsidian/plugins/obsidian-note-status/non-markdown-statuses.json`, kept in sync on rename/delete. +- **Single vs multi**: multiple statuses by default; single-status mode can store as list (`status: [draft]`) or string (`status: draft`) for compatibility. -## πŸ’» Technology Stack +## Screenshots -Built with modern web technologies for performance and reliability: +- Nav bar with current status -- **TypeScript** - Type-safe development -- **React** - Modern UI framework -- **esbuild** - Fast bundling and development -- **Obsidian API** - Deep vault integration + - ![navbar-unnasigned](images/navbar-unnasigned.png) + - ![navbar-multiple](images/navbar-multiple.png) -## πŸ“¦ Installation +- Status assignment: -### Community Plugin Store (Recommended) + - ![change-not-status-modal](images/change-not-status-modal.png) -1. Open Obsidian β†’ Settings β†’ Community plugins -2. Disable Safe mode β†’ Browse β†’ Search "Note Status" -3. Install and Enable +- File explorer with status icons and hover overview: + - ![file-explorer-and-popup](images/file-explorer-and-popup.png) +- Multiple settings: + - ![settings-collapsed](images/settings-collapsed.png) +- Custom templates editor: + - ![settings-collapsed](images/status-templates-1.png) + - ![settings-collapsed](images/custom-templates.png) +- Frontmatter tags mapping + - ![frontmatter-mappings](images/frontmatter-mappings.png) +- Grouped status view: + - ![status-groups-full-picture-2](images/status-groups-full-picture-2.png) +- Status dashboard: + - ![status-dashboard-1](images/status-dashboard-1.png) + - ![status-dashboard-2](images/status-dashboard-2.png) + - ![status-dashboard-3](images/status-dashboard-3.png) -### Manual Installation +## Installation -1. Download latest release from [GitHub Releases](https://github.com/devonthesofa/obsidian-note-status/releases) -2. Extract `main.js`, `manifest.json`, and `styles.css` to `.obsidian/plugins/note-status/` -3. Enable in Community plugins settings +### Community Plugin Store (recommended) -## πŸš€ How to Use +1. Obsidian β†’ Settings β†’ Community plugins. +2. Disable Safe mode β†’ Browse β†’ search β€œNote Status”. +3. Install and enable. -### Quick Start +### Manual -1. **Assign Status**: +1. Download the latest release from [GitHub Releases](https://github.com/devonthesofa/obsidian-note-status/releases). +2. Extract `main.js`, `manifest.json`, and `styles.css` to `.obsidian/plugins/note-status/`. +3. Enable in Community plugins settings. - 1. Click the "No status" in toolbar +## Example workflows - ![Status toolbar](images/no-status-toolbar.png) - - _Alt: Editor toolbar showing "No status" button for status assignment_ - - 2. β†’ Select a status - -2. **View in Explorer**: Status icons appear next to note names - - ![File explorer item](images/file-explorer-item.png) - - _Alt: Single file explorer item showing a note with status icon positioned next to the filename_ - -3. **Browse by Status or open the Dashboard**: Open from left sidebar - - ![Open status view](images/open-view-buttons.png) - - _Alt: Left sidebar showing ribbon buttons for opening grouped status view and status dashboard_ - -4. **Batch Update**: Select multiple files β†’ Right-click β†’ Change status - - ![Multiple status context](images/change-multiple-statuses.png) - - _Alt: Context menu appearing when right-clicking multiple selected files, showing "Change note status" option_ - -### Example Workflows - -**Personal Knowledge Management** +**Personal knowledge** ``` πŸ’‘ idea β†’ πŸ“ draft β†’ ✏️ editing β†’ βœ… completed β†’ πŸ“¦ archived ``` -**Project Management** +**Project delivery** ``` πŸ“‹ backlog β†’ 🚦 ready β†’ πŸ‘¨β€πŸ’» inDevelopment β†’ πŸ§ͺ testing β†’ πŸš€ live ``` -**Academic Research** +**Academic** ``` πŸ” research β†’ πŸ“‘ outline β†’ ✏️ draft β†’ πŸ”¬ review β†’ πŸ“š final ``` -![Grouped status view with filtering](images/grouped-status-filtering.png) +## Data format -_Alt: Grouped status view showing notes organized by status with template filtering and search functionality_ - -### Custom Statuses - -Create your own workflow: - -1. **Settings** β†’ Note Status β†’ Custom Statuses -2. **Add Status** β†’ Configure name, icon, color, description -3. **Reorder** using arrow controls -4. **Use** in your notes - -Example custom status: - -``` -Name: urgent -Icon: πŸ”₯ -Color: #FF0000 -Description: Requires immediate attention -``` - -![Custom statuses](images/custom-status-change.png) - -_Alt: Status selection modal showing custom and template statuses with icons, names, and selection interface_ - -## πŸ“‹ Data Format - -Statuses are stored in YAML frontmatter: +Statuses in YAML(as string or array, it depends of your settings): ```yaml --- @@ -153,51 +119,13 @@ obsidian-note-status: --- ``` -Works with: +Works with Dataview, Templater, QuickAdd, and search. Non-Markdown uses the JSON store noted above. -- **Dataview queries** -- **Templater scripts** -- **QuickAdd macros** -- **Global search** - -Non-Markdown files (PDF, Canvas, images, etc.) can't host YAML frontmatter. Their statuses live in a lightweight JSON file under `.obsidian/plugins/obsidian-note-status/non-markdown-statuses.json`, and every command/view in the plugin reads from that store transparently. External tools such as Dataview or Templater still only see Markdown/frontmatter data, so keep using Markdown files if you need those integrations. - -## πŸ› οΈ API Reference - -For developers building integrations or contributing: - -πŸ“š **[Developer Documentation](https://github.com/devonthesofa/obsidian-note-status/wiki)** - -Includes: - -- Architecture overview -- Development setup -- API reference -- Contributing guide - -## 🀝 Contributing - -We welcome contributions! - -1. **Check** [GitHub Issues](https://github.com/devonthesofa/obsidian-note-status/issues) for bugs/features -2. **Fork** the repository -3. **Follow** [Development Setup](https://github.com/devonthesofa/obsidian-note-status/wiki/πŸ”§-Development-Setup) -4. **Submit** pull request - -## πŸ› Support - -- **πŸ“– Documentation**: [Complete Wiki](https://github.com/devonthesofa/obsidian-note-status/wiki) -- **🐞 Bug Reports**: [GitHub Issues](https://github.com/devonthesofa/obsidian-note-status/issues) -- **πŸ’‘ Feature Requests**: [GitHub Discussions](https://github.com/devonthesofa/obsidian-note-status/discussions) - -## ❀️ Support Development - -If you find this plugin useful: +## Support the project [![PayPal](https://img.shields.io/badge/PayPal-00457C?style=for-the-badge&logo=paypal&logoColor=white)](https://paypal.me/aleixsoler) - -**PayPal**: https://paypal.me/aleixsoler +[![Buy Me a Coffee](https://img.shields.io/badge/Buy%20Me%20a%20Coffee-FFDD00?style=for-the-badge&logo=buy-me-a-coffee&logoColor=black)](https://buymeacoffee.com/aleixsoler) --- -**License**: MIT | **Author**: [Aleix Soler](https://aleixsoler.com) +**License**: MIT Β· **Author**: [Aleix Soler](https://aleixsoler.com) diff --git a/components/SettingsUI/index.tsx b/components/SettingsUI/index.tsx index 096247c..894b5aa 100644 --- a/components/SettingsUI/index.tsx +++ b/components/SettingsUI/index.tsx @@ -195,6 +195,45 @@ const SettingsUI: React.FC = ({ settings, onChange }) => { ); })} + +
+

+ Note Status keeps your vault aligned with clear, + configurable workflows. Tune the sections below to match how + you review notes, surface statuses, and keep storage tidy. +

+
+ + Support via PayPal + + + Buy me a coffee + + + Star the project on GitHub + +
+
); }; diff --git a/docs/features.md b/docs/features.md new file mode 100644 index 0000000..5f44643 --- /dev/null +++ b/docs/features.md @@ -0,0 +1,78 @@ +# Feature Guide + +## Status editing & selection + +- Open the picker from the status bar badge, editor toolbar button, file explorer context menu, or the `Change current note status` command. The same modal handles single files, multi-select batches, and folder runs. +- Browse by template tabs (All, per template, Custom), search, and use full keyboard navigation (arrows/Tab + Enter/Backspace/Escape). Current statuses appear as removable chips; single-status mode keeps only one value. +- Works on Markdown and non-Markdown; resolves every relevant frontmatter key (default tag and any mappings) before writing. +- Clipboard helpers: `Copy current note status` and `Paste status to current note` mirror what you see in the picker. + +## Bulk changes & context menus + +- Right-click one or many files β†’ `Change note status` to batch-apply statuses. +- Right-click a folder β†’ `Apply note status to folder`; enable recursion in settings if you want nested folders included. +- The modal shows how many files will change before you confirm. + +## Status surfaces + +**Status bar** + +- Clickable badges; hide entirely or auto-hide when empty. Keep a β€œNo status” badge with custom text/icon/color if you prefer. +- Template names can be hidden, auto-shown only on conflicts, or always shown. +- Badge visuals: accent stripe, solid fill, or dot; content can be icon+text, icon only, text only, or empty accent. + +**Editor toolbar** + +- Optional badge in the editor header. Place it left, right-before actions, or right, and choose whether it shows for all editors or only the active one. +- Uses the same unknown-status icon/color you configure elsewhere. + +**File explorer** + +- Status icons appear next to file names. Choose placement (filename left, filename right, absolute right), add a frame or keep it frameless, and pick whether icons use status colors or the theme. +- Extra cues per option: color filename, tint the row, add a left border, append a dot, underline the filename. Unknowns can be hidden. +- Hover an icon to open the Status Overview popup listing every frontmatter key with statuses, highlighting the default tag. + +**Status overview popup** + +- Lightweight popup used by explorer/status icons; lists statuses per key and labels the default tag. Respects the enable/disable toggle. + +## Dashboards and views (experimental) + +**Status Dashboard** + +- Ribbon icon/command (gated by Experimental Features + Dashboard toggles and the vault size limit). Shows the active note (path, modified time, statuses per tag), vault totals, and a status distribution chart. Clicking a bar runs a search for that status. +- Quick Actions panel: open grouped view, find unassigned notes, change/cycle/clear status, copy/paste status, search by status, toggle multi-status mode, and run Quick Status Commands. + +**Grouped Status View** + +- Ribbon icon/command (same gating and vault limit). Groups notes by frontmatter key, then by status (template badges shown when relevant). +- Filters: quick search, filter by note name substring, and filter by template id. Groups are collapsible and support β€œload more” for large sets. Clicking a note opens it in a new leaf. + +## Templates & custom statuses + +- Built-in templates: + - Colorful (idea β†’ draft β†’ inProgress β†’ editing β†’ pending β†’ onHold β†’ needsUpdate β†’ completed β†’ archived) + - Minimal (todo β†’ inProgress β†’ review β†’ done) + - Academic (research β†’ outline β†’ draft β†’ review β†’ revision β†’ final β†’ published) + - Project (planning β†’ backlog β†’ ready β†’ inDevelopment β†’ testing β†’ review β†’ approved β†’ live). +- Build your own templates (name, description, ordered statuses with emoji/Lucide + color). New templates auto-enable; you can edit/delete or reset built-ins anytime. +- Custom statuses live outside templates; create, reorder, delete them, or run in β€œCustom only” mode to hide template statuses entirely. +- Unknown status handling is configurable (icon/Lucide icon, color, and whether unknowns show in explorer/status bar). + +## Commands & keyboard shortcuts + +- Change current note status (opens picker). +- Cycle through statuses (single-status mode only). +- Clear status. +- Copy/Paste status (clipboard). +- Toggle multiple statuses mode. +- Search notes by current status (opens Global Search with queries for every configured frontmatter key). +- Open grouped status view (requires toggle). +- Quick Status Commands: select statuses in settings to auto-register `Set status to ...` commands you can bind to hotkeys. + +## Data & compatibility + +- Frontmatter key prefix defaults to `obsidian-note-status`; change it per vault. Map templates/statuses to extra YAML keys, and optionally also write mapped tags to the default key. +- Single-status mode can store the value as a list (`status: [in-progress]`) or plain string (`status: in-progress`) for compatibility with plugins that expect strings. +- Non-Markdown files store statuses in `.obsidian/plugins/obsidian-note-status/non-markdown-statuses.json`. Rename/delete events stay in sync automatically. +- Strict status validation removes unknown statuses when you edit a file’s statusesβ€”use with caution if you expect ad-hoc values. diff --git a/docs/settings.md b/docs/settings.md new file mode 100644 index 0000000..cfa119d --- /dev/null +++ b/docs/settings.md @@ -0,0 +1,126 @@ +## Settings Reference + +All settings are grouped the same way you see them in the plugin. Each section lists what it controls and when to tweak it. + +--- + +## Templates & Statuses + +### Status templates + +- Enable/disable built-in templates or build your own (name, description, ordered statuses with emoji/Lucide + color). +- Auto-enables new templates; you can reset built-ins anytime. +- Good for shared workflows: research pipelines, task boards, project phases. + +### Use only custom statuses + +- Hides all template statuses so only your standalone statuses appear. +- Handy for very small personal vocabularies (e.g., `idea`, `draft`, `done`). + +### Custom statuses + +- Create standalone statuses, reorder, delete. +- Useful for special-purpose tags like `needsReviewByJohn` or `instagramPostReady`. + +--- + +## Quick Actions + +### Quick Status Commands + +- Registers `Set status to ...` commands you can bind to hotkeys. +- Best when you want fast keyboard-driven changes; shines in single-status mode. + +--- + +## Status Bar + +### Visibility and behavior + +- Show status icon in status bar; optionally hide when no status is set. +- Show status overview popup on hover for a quick per-key breakdown. +- Show template names next to status: never / auto on conflicts (default) / always. + +### Badge visuals + +- Badge style: accent stripe / filled / dot. +- Badge content: icon + text / icon only / text only / empty accent. + +### No-status display + +- Custom text for empty state. +- Show icon when no status. +- Show text when no status. + +--- + +## Editor Toolbar + +### Toolbar button + +- Show/hide the status button in the editor header. +- Position: left / right-before-actions / right. +- Show for: all notes / active note only. + +--- + +## File Explorer + +### Icons and placement + +- Show status icons in file explorer. +- Icon position: filename left / filename right / absolute right. +- Hide icon when status is unknown. + +### Visual treatments (per-option) + +- Color filename text. +- Color entire row. +- Left border. +- Status dot. +- Underline filename. + +### Icon styling + +- Status icon frame: never / always. +- Status icon color: use status colors / inherit theme colors. + +--- + +## Unknown / No-Status Appearance + +### Fallback visuals + +- Icon for unknown status (emoji or Lucide). +- Color for unknown status (used across status bar/explorer fallbacks). + +--- + +## Behavior & Storage + +### Status model + +- Enable multiple statuses (default) or force single-status mode. +- Single-status format when multiple is off: list (`status: [draft]`) or string (`status: draft`). + +### Write targets + +- Apply status recursively to subfolders (folder context menu option). +- Status tag prefix (frontmatter key, default `obsidian-note-status`). +- Frontmatter mappings: map templates or statuses to additional YAML keys; optional β€œwrite mapped tags to default” to keep both in sync. +- Strict status validation: removes unknown statuses on edit (use in controlled vocabularies). + +### Safeguards + +- Vault size limit: disables dashboard and grouped view beyond the threshold. + +--- + +## Experimental Features + +### Toggles + +- Enable experimental features (master gate). +- Enable status dashboard. +- Enable grouped status view. +- Dashboard/grouped view respect the vault size limit. diff --git a/images/big-picture-1.png b/images/big-picture-1.png new file mode 100644 index 0000000..d283a14 Binary files /dev/null and b/images/big-picture-1.png differ diff --git a/images/big-picture-2.png b/images/big-picture-2.png new file mode 100644 index 0000000..7c79682 Binary files /dev/null and b/images/big-picture-2.png differ diff --git a/images/change-multiple-statuses.png b/images/change-multiple-statuses.png deleted file mode 100644 index 0a541dd..0000000 Binary files a/images/change-multiple-statuses.png and /dev/null differ diff --git a/images/change-not-status-modal.png b/images/change-not-status-modal.png new file mode 100644 index 0000000..5de8788 Binary files /dev/null and b/images/change-not-status-modal.png differ diff --git a/images/custom-status-change.png b/images/custom-status-change.png deleted file mode 100644 index abd9415..0000000 Binary files a/images/custom-status-change.png and /dev/null differ diff --git a/images/custom-templates.png b/images/custom-templates.png new file mode 100644 index 0000000..f6dc634 Binary files /dev/null and b/images/custom-templates.png differ diff --git a/images/file-explorer-and-popup.png b/images/file-explorer-and-popup.png new file mode 100644 index 0000000..c21b59d Binary files /dev/null and b/images/file-explorer-and-popup.png differ diff --git a/images/file-explorer-item.png b/images/file-explorer-item.png deleted file mode 100644 index d043087..0000000 Binary files a/images/file-explorer-item.png and /dev/null differ diff --git a/images/file-explorer-status-icons.png b/images/file-explorer-status-icons.png deleted file mode 100644 index 240ad34..0000000 Binary files a/images/file-explorer-status-icons.png and /dev/null differ diff --git a/images/frontmatter-mappings.png b/images/frontmatter-mappings.png new file mode 100644 index 0000000..121bb13 Binary files /dev/null and b/images/frontmatter-mappings.png differ diff --git a/images/grouped-status-filtering.png b/images/grouped-status-filtering.png deleted file mode 100644 index 43bbc0f..0000000 Binary files a/images/grouped-status-filtering.png and /dev/null differ diff --git a/images/navbar-multiple.png b/images/navbar-multiple.png new file mode 100644 index 0000000..13b1ff2 Binary files /dev/null and b/images/navbar-multiple.png differ diff --git a/images/navbar-unnasigned.png b/images/navbar-unnasigned.png new file mode 100644 index 0000000..794a5cb Binary files /dev/null and b/images/navbar-unnasigned.png differ diff --git a/images/no-status-toolbar.png b/images/no-status-toolbar.png deleted file mode 100644 index 1b96baa..0000000 Binary files a/images/no-status-toolbar.png and /dev/null differ diff --git a/images/open-view-buttons.png b/images/open-view-buttons.png deleted file mode 100644 index 79641a5..0000000 Binary files a/images/open-view-buttons.png and /dev/null differ diff --git a/images/settings-collapsed.png b/images/settings-collapsed.png new file mode 100644 index 0000000..f7a9bf7 Binary files /dev/null and b/images/settings-collapsed.png differ diff --git a/images/status-assignment-demo.png b/images/status-assignment-demo.png deleted file mode 100644 index ffb85c3..0000000 Binary files a/images/status-assignment-demo.png and /dev/null differ diff --git a/images/status-dashboard-1.png b/images/status-dashboard-1.png new file mode 100644 index 0000000..aea0ac0 Binary files /dev/null and b/images/status-dashboard-1.png differ diff --git a/images/status-dashboard-2.png b/images/status-dashboard-2.png new file mode 100644 index 0000000..2a1aa49 Binary files /dev/null and b/images/status-dashboard-2.png differ diff --git a/images/status-dashboard-3.png b/images/status-dashboard-3.png new file mode 100644 index 0000000..c07d184 Binary files /dev/null and b/images/status-dashboard-3.png differ diff --git a/images/status-dashboard-overview1.png b/images/status-dashboard-overview1.png deleted file mode 100644 index b5ecb99..0000000 Binary files a/images/status-dashboard-overview1.png and /dev/null differ diff --git a/images/status-dashboard-overview2.png b/images/status-dashboard-overview2.png deleted file mode 100644 index 88ef8c2..0000000 Binary files a/images/status-dashboard-overview2.png and /dev/null differ diff --git a/images/status-dashboard-overview3.png b/images/status-dashboard-overview3.png deleted file mode 100644 index 5d8dcde..0000000 Binary files a/images/status-dashboard-overview3.png and /dev/null differ diff --git a/images/status-groups-full-picture-2.png b/images/status-groups-full-picture-2.png new file mode 100644 index 0000000..990b933 Binary files /dev/null and b/images/status-groups-full-picture-2.png differ diff --git a/images/status-groups.png b/images/status-groups.png new file mode 100644 index 0000000..c434df6 Binary files /dev/null and b/images/status-groups.png differ diff --git a/images/status-templates-1.png b/images/status-templates-1.png new file mode 100644 index 0000000..2dc5e81 Binary files /dev/null and b/images/status-templates-1.png differ diff --git a/styles.css b/styles.css index 2dc1fdb..005e569 100644 --- a/styles.css +++ b/styles.css @@ -1 +1 @@ -.status-bar-no-status{display:inline-flex;align-items:center;gap:var(--size-2-2);color:var(--status-empty-color, var(--text-muted))}.status-bar-no-status:hover{color:var(--text-normal)}.status-bar-no-status__icon{opacity:.9}.status-bar-no-status__label{font-weight:var(--font-medium)}.status-bar-enable-button{cursor:pointer;opacity:var(--icon-opacity);transition:opacity var(--anim-duration-fast) ease}.status-bar-enable-button:hover{opacity:var(--icon-opacity-hover)}.status-bar-group-row{display:flex;align-items:center;gap:var(--size-4-2)}.status-bar-group-container{display:flex;gap:var(--size-2-1);flex-wrap:wrap;align-items:center}.status-bar-status-item{display:inline-flex;align-items:center}.status-bar-status-item--animated{animation:status-slide-in var(--anim-duration-fast) ease-out var(--status-anim-delay, 0s) both}@keyframes status-slide-in{0%{opacity:0;transform:scale(.8) translateY(4px)}to{opacity:1;transform:scale(1) translateY(0)}}.note-status-section{border:1px solid var(--background-modifier-border);border-radius:var(--radius-m);background:var(--background-primary);margin-bottom:var(--size-4-3);overflow:hidden}.note-status-section__header{width:100%;display:flex;align-items:flex-start;justify-content:space-between;gap:var(--size-4-1);padding:var(--size-4-2) var(--size-4-3);background:var(--background-secondary);border:none;color:inherit;cursor:pointer;text-align:left}.note-status-section__header:hover{background:var(--background-modifier-hover)}.note-status-section__title-block{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--size-2-1)}.note-status-section__title-block .setting-item-name,.note-status-section__title-block .setting-item-description{white-space:normal;line-height:1.4}.note-status-section__title-block .setting-item-description{color:var(--text-muted)}.note-status-section__chevron{font-size:var(--font-ui-medium);color:var(--text-muted)}.note-status-section__content{padding:var(--size-4-3);border-top:1px solid var(--background-modifier-border)}.note-status-settings__stack{display:flex;flex-direction:column;gap:var(--size-4-3)}.setting-item-full{width:100%}.setting-item-vertical{flex-direction:column;align-items:flex-start;gap:var(--size-2-2)}.ui-settings__no-status-input{max-width:150px}.custom-status-item{background:var(--background-secondary);border:1px solid var(--background-modifier-border);border-radius:var(--radius-m);padding:var(--size-4-3);margin-bottom:var(--size-4-2);transition:all var(--anim-duration-fast) ease}.custom-status-item:hover{border-color:var(--interactive-hover)}.custom-status-item__row{display:flex;align-items:end;gap:var(--size-4-2);margin-bottom:var(--size-4-2)}.custom-status-item__row--icons{align-items:stretch;flex-wrap:wrap}.custom-status-item__field{display:flex;flex-direction:column;gap:var(--size-2-1)}.custom-status-item__field--icon,.custom-status-item__field--lucide{flex:1;min-width:240px}.custom-status-item__field--name,.custom-status-item__field--description{flex:2;min-width:120px}.custom-status-item__field--color{flex:0 0 auto}.custom-status-item__field--reorder,.custom-status-item__field--actions{flex:0 0 auto;padding-top:var(--size-4-1)}.custom-status-item__label{font-size:var(--font-ui-smaller);font-weight:var(--font-medium);color:var(--text-muted);margin-bottom:var(--size-2-1)}.custom-status-item__label--required{color:var(--text-error)}.custom-status-item__input--icon{width:100%!important;text-align:left;font-size:1em}.custom-status-item__hint{margin:0;font-size:var(--font-ui-smaller);color:var(--text-muted)}.custom-status-item__input--name{font-weight:var(--font-medium)}.custom-status-item__input--name.custom-status-item__input--invalid{border-color:var(--text-error)!important;background:var(--background-modifier-error)!important}.custom-status-item__input--description{color:var(--text-muted)}.custom-status-item__input--color{width:40px!important;height:32px!important;border-radius:var(--radius-s);cursor:pointer;border:2px solid var(--background-modifier-border)!important}.custom-status-item__input--color:hover{border-color:var(--interactive-hover)!important}.custom-status-item__remove-btn{width:32px;height:32px;border-radius:var(--radius-s);background:var(--background-modifier-error);color:var(--text-on-accent);border:none;cursor:pointer;font-size:18px;font-weight:700;transition:all var(--anim-duration-fast) ease}.custom-status-item__remove-btn:hover{background:var(--text-error);transform:scale(1.05)}.custom-status-item__reorder-buttons{display:flex;flex-direction:column;gap:2px}.custom-status-item__reorder-btn{width:24px;height:24px;border-radius:var(--radius-s);background:var(--background-modifier-border);color:var(--text-normal);border:none;cursor:pointer;font-size:12px;font-weight:700;transition:all var(--anim-duration-fast) ease;display:flex;align-items:center;justify-content:center;line-height:1}.custom-status-item__reorder-btn:hover:not(:disabled){background:var(--interactive-hover);transform:scale(1.05)}.custom-status-item__reorder-btn:disabled{opacity:.5;cursor:not-allowed}.custom-status-item__preview{display:flex;align-items:center;gap:var(--size-2-2);padding:var(--size-2-3) var(--size-4-2);background:var(--background-primary-alt);border-radius:var(--radius-s);border-left:3px solid var(--background-modifier-border);font-size:var(--font-ui-small)}.custom-status-item__preview-icon{font-size:1.1em;min-width:20px;text-align:center}.custom-status-item__preview-text{font-weight:var(--font-medium)}.custom-status-item__preview-desc{color:var(--text-muted);font-style:italic}.custom-status-item__preview-desc:before{content:"\2014 "}.custom-status-item__error{color:var(--text-error);font-size:var(--font-ui-smaller);margin-top:var(--size-2-1);padding:var(--size-2-1) var(--size-2-2);background:var(--background-modifier-error);border-radius:var(--radius-s);border-left:3px solid var(--text-error)}.custom-status-list__empty{text-align:center;padding:var(--size-4-4) var(--size-4-2);color:var(--text-muted);font-style:italic;border:2px dashed var(--background-modifier-border);border-radius:var(--radius-m);background:var(--background-primary-alt)}.custom-status-list__empty p{margin:0}.status-group{margin-bottom:var(--size-4-4);padding:var(--size-4-3);background:var(--background-primary-alt);border-radius:var(--radius-m);border:1px solid var(--background-modifier-border)}.status-group__header{margin-bottom:var(--size-4-2);padding-bottom:var(--size-2-2);border-bottom:1px solid var(--background-modifier-border)}.status-group__title{font-weight:var(--font-semibold);color:var(--text-normal);font-size:var(--font-ui-medium)}.status-group__description{font-size:var(--font-ui-smaller);color:var(--text-muted);margin-top:var(--size-2-1);line-height:var(--line-height-tight)}.status-group__items{display:flex;flex-direction:column;gap:var(--size-2-2)}.status-selector{display:flex;align-items:center;justify-content:space-between;padding:var(--size-2-3) var(--size-4-2);border:1px solid var(--background-modifier-border);border-radius:var(--radius-m);background:var(--background-primary);cursor:pointer;transition:all var(--anim-duration-fast) ease;position:relative}.status-selector:hover{background:var(--background-modifier-hover);border-color:var(--background-modifier-border-hover)}.status-selector--selected{background:var(--background-modifier-success);border-color:var(--interactive-success)}.status-selector--selected:hover{background:var(--background-modifier-success-hover)}.status-selector__content{flex:1;min-width:0}.status-selector__status{display:flex;align-items:center;gap:var(--size-2-2);margin-bottom:var(--size-2-1)}.status-selector__icon{font-size:var(--font-ui-medium);width:var(--size-4-3);text-align:center;flex-shrink:0}.status-selector__name{font-weight:var(--font-medium);color:var(--text-normal)}.status-selector__description{font-size:var(--font-ui-smaller);color:var(--text-muted);line-height:var(--line-height-tight)}.status-selector__checkbox{margin-left:var(--size-4-2);pointer-events:none;flex-shrink:0}.quick-commands-container{margin-top:var(--size-4-2)}.template-settings-actions{display:flex;justify-content:end;gap:var(--size-4-2);padding-bottom:var(--size-4-2)}.template-create-btn{display:flex;align-items:center;gap:var(--size-2-2);padding:var(--size-2-3) var(--size-4-3);font-weight:var(--font-medium);font-size:var(--font-ui-medium)}.template-reset-btn{display:flex;align-items:center;gap:var(--size-2-2);padding:var(--size-2-3) var(--size-4-3);background:var(--interactive-normal);border:1px solid var(--background-modifier-border);border-radius:var(--radius-s);color:var(--text-normal);cursor:pointer;font-size:var(--font-ui-medium);transition:all var(--anim-duration-fast) ease}.template-reset-btn:hover{background:var(--interactive-hover);color:var(--text-normal)}.template-section{margin-bottom:var(--size-4-6)}.template-section-title{display:flex;align-items:center;gap:var(--size-2-2);font-size:var(--font-ui-large);font-weight:var(--font-semibold);color:var(--text-normal);margin-bottom:var(--size-4-3);padding-bottom:var(--size-2-2);border-bottom:2px solid var(--background-modifier-border)}.template-section-title .lucide{opacity:.8;color:var(--text-muted)}.template-list{display:flex;flex-direction:column;gap:var(--size-4-2)}.template-item{position:relative;display:flex;align-items:stretch;border:1px solid var(--background-modifier-border);border-radius:var(--radius-m);background:var(--background-primary-alt);transition:all var(--anim-duration-fast) ease;overflow:hidden}.template-item:hover{background:var(--background-modifier-hover);border-color:var(--background-modifier-border-hover);box-shadow:0 2px 8px var(--shadow-color)}.template-item.enabled{background:var(--background-modifier-hover);border-color:var(--interactive-accent);box-shadow:0 0 0 1px var(--interactive-accent)}.template-item.enabled:hover{box-shadow:0 2px 8px var(--shadow-color),0 0 0 1px var(--interactive-accent)}.template-item-content{flex:1;border:none!important;border-radius:0!important;background:transparent!important}.template-item-main{flex:1}.template-header{display:flex;align-items:center;gap:var(--size-2-2);margin-bottom:var(--size-2-1)}.template-custom-badge{display:flex;align-items:center;gap:var(--size-2-1);padding:var(--size-2-1) var(--size-2-2);background:var(--interactive-accent);color:var(--text-on-accent);font-size:var(--font-ui-smaller);font-weight:var(--font-medium);border-radius:var(--radius-s);text-transform:uppercase;letter-spacing:.05em}.template-item-actions{display:flex;flex-direction:column;padding:var(--size-4-2);gap:var(--size-2-1);background:var(--background-modifier-border);border-left:1px solid var(--background-modifier-border-hover);min-width:44px;align-items:center;justify-content:center}.template-editor-modal{background:var(--background-primary);border:1px solid var(--background-modifier-border);border-radius:var(--radius-l);box-shadow:var(--shadow-l);max-width:800px;width:100%}.template-editor-modal__header{padding:var(--size-4-4) var(--size-4-6);background:var(--background-secondary);border-bottom:1px solid var(--background-modifier-border);border-radius:var(--radius-l) var(--radius-l) 0 0}.template-editor-modal__header h2{margin:0;font-size:var(--font-ui-larger);font-weight:var(--font-bold);color:var(--text-normal)}.template-editor-modal__content{padding:var(--size-4-6);max-height:70vh;overflow-y:auto}.template-editor-statuses{display:flex;flex-direction:column;gap:var(--size-4-3)}.template-editor-add-status{display:flex;align-items:center;gap:var(--size-2-2);align-self:flex-start;margin-top:var(--size-4-2)}.template-editor-add-status .lucide{width:16px;height:16px}.template-editor-modal__actions{display:flex;gap:var(--size-4-2);justify-content:flex-end;padding:var(--size-4-4) var(--size-4-6);background:var(--background-secondary);border-top:1px solid var(--background-modifier-border);border-radius:0 0 var(--radius-l) var(--radius-l)}.template-editor-modal__actions button{padding:var(--size-2-3) var(--size-4-4);border-radius:var(--radius-m);font-size:var(--font-ui-medium);font-weight:var(--font-medium);cursor:pointer;transition:all var(--anim-duration-fast) ease;border:1px solid var(--background-modifier-border)}.template-editor-modal__actions button:not(.mod-cta){background:var(--interactive-normal);color:var(--text-normal)}.template-editor-modal__actions button:not(.mod-cta):hover{background:var(--interactive-hover)}.template-editor-modal__actions .mod-cta:disabled{opacity:.5;cursor:not-allowed;transform:none}.template-editor-modal__actions .mod-cta:disabled:hover{transform:none}@media (max-width: 768px){.template-settings-actions,.template-item{flex-direction:column}.template-item-actions{flex-direction:row;border-left:none;border-top:1px solid var(--background-modifier-border-hover);min-width:unset;padding:var(--size-2-3) var(--size-4-2)}.template-editor-modal{margin:var(--size-4-2);max-width:calc(100% - var(--size-4-4))}}.template-editor-modal__content::-webkit-scrollbar{width:var(--scrollbar-width)}.template-editor-modal__content::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb-bg);border-radius:var(--radius-s)}.template-editor-modal__content::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-active-bg)}.status-dashboard-view-container{height:100%;overflow:hidden}.status-dashboard{background:var(--background-primary)}.status-dashboard-header{display:flex;justify-content:space-between;align-items:center;padding:var(--size-4-3) var(--size-4-4);background:var(--background-secondary);border-bottom:1px solid var(--background-modifier-border)}.status-dashboard-title{margin:0;font-size:var(--font-ui-larger);font-weight:var(--font-bold)}.status-dashboard-refresh{padding:var(--size-2-2) var(--size-2-3);border:1px solid var(--background-modifier-border);border-radius:var(--radius-s);background:var(--interactive-normal);color:var(--text-normal);cursor:pointer;font-size:var(--font-ui-medium);transition:all var(--anim-duration-fast) ease}.status-dashboard-refresh:hover{background:var(--interactive-hover);transform:rotate(90deg)}.status-dashboard-content{flex:1;overflow-y:auto;padding:var(--size-4-3);display:flex;flex-direction:column;gap:var(--size-4-4)}.status-dashboard-section{background:var(--background-secondary);border:1px solid var(--background-modifier-border);border-radius:var(--radius-m);overflow:hidden}.status-dashboard-section-header{padding:var(--size-4-2) var(--size-4-3);background:var(--background-modifier-hover);border-bottom:1px solid var(--background-modifier-border)}.status-dashboard-section-header h3{margin:0;font-size:var(--font-ui-large);font-weight:var(--font-semibold)}.status-dashboard-current-note{padding:var(--size-4-3)}.current-note-info{margin-bottom:var(--size-4-3);padding-bottom:var(--size-4-2);border-bottom:1px solid var(--background-modifier-border)}.current-note-name{font-size:var(--font-ui-large);font-weight:var(--font-semibold);margin-bottom:var(--size-2-1)}.current-note-path{font-size:var(--font-ui-small);color:var(--text-muted);font-family:var(--font-monospace);margin-bottom:var(--size-2-1)}.current-note-modified{font-size:var(--font-ui-smaller);color:var(--text-faint);font-style:italic}.current-note-statuses{display:flex;flex-direction:column;gap:var(--size-4-2)}.current-note-tag-group{display:flex;flex-direction:column;gap:var(--size-2-2)}.current-note-status-list{display:flex;flex-wrap:wrap;gap:var(--size-2-2)}.current-note-no-status{font-size:var(--font-ui-small);color:var(--text-muted);font-style:italic;padding:var(--size-2-1) var(--size-2-3);background:var(--background-modifier-border);border-radius:var(--radius-s)}.current-note-empty{text-align:center;color:var(--text-muted);font-style:italic;padding:var(--size-4-4)}.vault-overview{padding:var(--size-4-3)}.vault-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--size-4-2)}.vault-stat-card{text-align:center;padding:var(--size-4-2);background:var(--background-primary);border:1px solid var(--background-modifier-border);border-radius:var(--radius-m);transition:all var(--anim-duration-fast) ease}.vault-stat-card:hover{background:var(--background-modifier-hover);transform:translateY(-2px);box-shadow:var(--shadow-s)}.vault-stat-number{font-size:var(--font-ui-largest);font-weight:var(--font-bold);color:var(--interactive-accent);margin-bottom:var(--size-2-1)}.vault-stat-label{font-size:var(--font-ui-small);color:var(--text-muted);font-weight:var(--font-medium);text-transform:uppercase;letter-spacing:.05em}.status-distribution{padding:var(--size-4-3)}.status-chart{display:flex;flex-direction:column;gap:var(--size-4-2)}.status-chart-item{display:flex;flex-direction:column;gap:var(--size-2-1)}.status-chart-item--clickable{cursor:pointer;transition:all var(--anim-duration-fast) ease;padding:var(--size-2-2);border-radius:var(--radius-s)}.status-chart-item--clickable:hover{background:var(--background-modifier-hover);transform:translateY(-1px)}.status-chart-info{display:flex;align-items:center;gap:var(--size-2-3)}.status-chart-count{font-size:var(--font-ui-small);color:var(--text-muted);font-weight:var(--font-medium)}.status-chart-bar{height:8px;background:var(--background-modifier-border);border-radius:var(--radius-s);overflow:hidden}.status-chart-fill{height:100%;transition:width var(--anim-duration-moderate) ease}.status-distribution-empty{text-align:center;color:var(--text-muted);font-style:italic;padding:var(--size-4-4)}.quick-actions{padding:var(--size-4-3);display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--size-4-3)}.quick-actions-group{display:flex;flex-direction:column;gap:var(--size-2-2)}.quick-actions-group-title{font-size:var(--font-ui-small);font-weight:var(--font-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;padding-bottom:var(--size-2-1);border-bottom:1px solid var(--background-modifier-border);margin-bottom:var(--size-2-1)}.quick-action-btn{width:100%;padding:var(--size-2-3) var(--size-4-2);border:1px solid var(--background-modifier-border);border-radius:var(--radius-m);background:var(--interactive-normal);color:var(--text-normal);cursor:pointer;font-size:var(--font-ui-medium);font-weight:var(--font-medium);text-align:left;display:flex;align-items:center;gap:var(--size-2-2);transition:all var(--anim-duration-fast) ease}.quick-action-btn:hover:not(:disabled){background:var(--interactive-hover);transform:translateY(-1px);box-shadow:var(--shadow-s)}.quick-action-btn:disabled{opacity:.5;cursor:not-allowed;background:var(--background-modifier-border);color:var(--text-faint)}@media (max-width: 768px){.quick-actions{grid-template-columns:1fr}}.status-dashboard-loading{display:flex;align-items:center;justify-content:center;height:100%;font-size:var(--font-ui-medium);color:var(--text-muted)}.status-dashboard-disabled{display:flex;align-items:center;justify-content:center;height:100%;padding:var(--size-4-4);text-align:center;font-size:var(--font-ui-medium);color:var(--text-muted);background:var(--background-secondary);border:2px dashed var(--background-modifier-border);border-radius:var(--radius-m);margin:var(--size-4-4)}.status-dashboard-content::-webkit-scrollbar{width:var(--scrollbar-width)}.status-dashboard-content::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb-bg);border-radius:var(--radius-s)}.status-dashboard-content::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-active-bg)}.grouped-status-view-container{height:100%;overflow:hidden}.grouped-status-header{padding:var(--size-4-2) var(--size-4-3);background:var(--background-secondary);border-bottom:1px solid var(--background-modifier-border)}.grouped-status-title{margin:0 0 var(--size-4-2) 0;font-size:var(--font-ui-large);font-weight:var(--font-semibold)}.grouped-status-filters{display:flex;flex-direction:column;gap:var(--size-4-2)}.grouped-status-note-input{width:100%;padding:var(--size-2-2) var(--size-2-3);border:1px solid var(--background-modifier-border);border-radius:var(--radius-s);background:var(--background-primary);color:var(--text-normal);font-size:var(--font-ui-medium)}.grouped-status-note-input:focus{outline:none;border-color:var(--interactive-accent);box-shadow:0 0 0 2px var(--background-modifier-accent)}.grouped-status-content{flex:1;overflow-y:auto;padding:var(--size-4-2)}.grouped-status-tag-section{margin-bottom:var(--size-4-3)}.grouped-status-tag-header{display:flex;justify-content:space-between;align-items:center;padding:var(--size-4-2) var(--size-4-3);background:var(--background-secondary);border:1px solid var(--background-modifier-border);border-radius:var(--radius-m);cursor:pointer;transition:all var(--anim-duration-fast) ease;margin-bottom:var(--size-4-2)}.grouped-status-tag-header:hover{background:var(--background-modifier-hover)}.grouped-status-tag-content{padding-left:var(--size-4-2)}.grouped-status-group{margin-bottom:var(--size-4-2);background:var(--background-primary);border:1px solid var(--background-modifier-border);border-radius:var(--radius-m);overflow:hidden;box-shadow:0 1px 3px #0000001a;transition:box-shadow var(--anim-duration-fast) ease}.grouped-status-group:hover{box-shadow:0 2px 8px #00000026}.grouped-status-group__header{display:flex;justify-content:space-between;align-items:center;padding:var(--size-4-2) var(--size-4-3);cursor:pointer;transition:background var(--anim-duration-fast) ease;position:relative}.grouped-status-group__header:hover{background:var(--background-modifier-hover)}.grouped-status-group__header:focus{outline:2px solid var(--color-accent);outline-offset:-2px}.grouped-status-group__status{display:flex;align-items:center;gap:var(--size-2-2);min-width:0;flex:1}.grouped-status-group__template-badge{display:inline-flex;align-items:center;padding:var(--size-2-1) var(--size-2-2);background:var(--background-modifier-border);border-radius:var(--radius-s);font-size:var(--font-ui-smaller);color:var(--text-muted);font-weight:var(--font-medium)}.grouped-status-group__info{display:flex;align-items:center;gap:var(--size-2-2);margin-left:auto}.grouped-status-files{background:var(--background-secondary);border-top:1px solid var(--background-modifier-border)}.grouped-status-files-list{max-height:300px;overflow-y:auto}.grouped-status-file-item{padding:var(--size-2-3) var(--size-4-3);cursor:pointer;transition:background var(--anim-duration-fast) ease;border-bottom:1px solid var(--background-modifier-border-hover)}.grouped-status-file-item:hover{background:var(--background-modifier-hover)}.grouped-status-file-item:last-child{border-bottom:none}.grouped-status-file-name{font-weight:var(--font-medium);color:var(--text-normal);margin-bottom:2px}.grouped-status-file-path{font-size:var(--font-ui-small);color:var(--text-muted);opacity:.8}.grouped-status-load-more{display:flex;justify-content:center;padding:var(--size-4-2);border-top:1px solid var(--background-modifier-border)}.grouped-status-load-btn{padding:var(--size-2-2) var(--size-4-2);border:1px solid var(--background-modifier-border);border-radius:var(--radius-s);background:var(--interactive-normal);color:var(--text-normal);cursor:pointer;font-size:var(--font-ui-small);font-weight:var(--font-medium);transition:all var(--anim-duration-fast) ease}.grouped-status-load-btn:hover{background:var(--interactive-hover);transform:translateY(-1px)}.grouped-status-loading,.grouped-status-empty{display:flex;align-items:center;justify-content:center;padding:var(--size-4-6);color:var(--text-muted);font-size:var(--font-ui-medium)}.grouped-status-view-disabled{display:flex;align-items:center;justify-content:center;height:100%;padding:var(--size-4-4);text-align:center;font-size:var(--font-ui-medium);color:var(--text-muted);background:var(--background-secondary);border:2px dashed var(--background-modifier-border);border-radius:var(--radius-m);margin:var(--size-4-4)}.grouped-status-content::-webkit-scrollbar,.grouped-status-files-list::-webkit-scrollbar{width:var(--scrollbar-width)}.grouped-status-content::-webkit-scrollbar-thumb,.grouped-status-files-list::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb-bg);border-radius:var(--radius-s)}.grouped-status-content::-webkit-scrollbar-thumb:hover,.grouped-status-files-list::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-active-bg)}.grouped-status-filters__template{display:flex;flex-direction:column;gap:var(--size-2-1)}.grouped-status-filters__template-select{width:100%;padding:var(--size-2-2) var(--size-2-3);border:1px solid var(--background-modifier-border);border-radius:var(--radius-s);background:var(--background-primary);color:var(--text-normal);font-size:var(--font-ui-small);cursor:pointer}.grouped-status-filters__template-select:focus{outline:none;border-color:var(--interactive-accent);box-shadow:0 0 0 2px var(--background-modifier-accent)}.grouped-status-filters__note{display:flex;flex-direction:column;gap:var(--size-2-1)}.grouped-status-filters__note-input{width:100%;padding:var(--size-2-2) var(--size-2-3);border:1px solid var(--background-modifier-border);border-radius:var(--radius-s);background:var(--background-primary);color:var(--text-normal);font-size:var(--font-ui-small)}.grouped-status-filters__note-input:focus{outline:none;border-color:var(--interactive-accent);box-shadow:0 0 0 2px var(--background-modifier-accent)}.grouped-status-group__status{display:flex;align-items:center;gap:var(--size-2-2)}.grouped-status-group__template-badge{background:var(--background-modifier-border);color:var(--text-muted);padding:var(--size-2-1) var(--size-2-2);border-radius:var(--radius-s);font-size:var(--font-ui-smaller);font-weight:var(--font-medium);text-transform:capitalize;white-space:nowrap}.custom-icon{display:inline-flex}.custom-icon__absolute-right{position:absolute;right:0}.note-status-colored-block{position:relative;border-radius:var(--radius-s);z-index:0}.note-status-colored-block:before{content:"";position:absolute;inset:0;border-radius:inherit;background-color:var(--note-status-block-color, transparent);opacity:.18;pointer-events:none;z-index:-1;transition:background-color var(--anim-duration-fast) ease,opacity var(--anim-duration-fast) ease}.note-status-border-left{position:relative}.note-status-border-left:after{content:"";position:absolute;left:0;top:2px;bottom:2px;width:3px;border-radius:var(--radius-s);background-color:var(--note-status-border-color, transparent);opacity:.35;pointer-events:none}.note-status-underline{text-decoration-line:underline;text-decoration-thickness:2px;text-decoration-color:var(--note-status-underline-color, currentColor);text-underline-offset:3px}.note-status-dot-badge{width:6px;height:6px;border-radius:50%;margin-left:var(--size-2-1);display:inline-flex;align-items:center;justify-content:center;box-shadow:0 0 0 1px var(--background-modifier-border);flex-shrink:0}.status-wrapper{position:relative;display:inline-block}.status-minimal{display:inline-flex;align-items:center;gap:2px;margin-left:var(--size-2-2);padding:2px;border-radius:var(--radius-s);cursor:pointer;opacity:.7;transition:all var(--anim-duration-fast) ease}.status-minimal:hover{opacity:1;background:var(--background-modifier-hover);transform:scale(1.05)}.status-minimal--compact{margin-left:0;padding:0;background:transparent;gap:var(--size-2-1)}.status-minimal--compact .status-minimal__icon{font-size:var(--font-ui-medium)}.status-minimal[data-status-color] .status-minimal__count{background:var(--interactive-accent)}.status-minimal__icon{font-size:11px;line-height:1;display:inline-flex;align-items:center;justify-content:center;filter:grayscale(.2);transition:filter var(--anim-duration-fast) ease}.status-minimal:hover .status-minimal__icon{filter:grayscale(0)}.status-minimal__count{min-width:14px;height:14px;padding:0 3px;background:var(--interactive-accent);color:var(--text-on-accent);font-size:var(--font-ui-smaller);font-weight:var(--font-semibold);border-radius:var(--radius-m);display:flex;align-items:center;justify-content:center}.status-info-popup{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:var(--layer-popover);background:var(--background-primary);border:1px solid var(--background-modifier-border);border-radius:var(--radius-m);box-shadow:var(--shadow-l);min-width:280px;max-width:400px;overflow:hidden;pointer-events:none}.status-popup-header{display:flex;align-items:center;gap:var(--size-2-2);padding:var(--size-4-2) var(--size-4-3);background:var(--background-secondary);border-bottom:1px solid var(--background-modifier-border);font-weight:var(--font-semibold);font-size:var(--font-ui-small)}.status-popup-content{padding:var(--size-4-2)}.status-popup-empty{padding:var(--size-4-4);text-align:center;color:var(--text-muted);font-style:italic}.status-tag-grid{display:flex;flex-direction:column;gap:var(--size-4-2)}.status-tag-card{border:1px solid var(--background-modifier-border);border-radius:var(--radius-m);padding:var(--size-4-2);background:var(--background-primary-alt);box-shadow:var(--shadow-xs)}.status-tag-card__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--size-2-2)}.status-tag-card__title{display:flex;flex-direction:column;gap:var(--size-2-1)}.status-tag-card__label{font-weight:var(--font-semibold);text-transform:none}.status-tag-card__badge{font-size:var(--font-ui-smaller);color:var(--text-muted);background:var(--background-modifier-border);padding:2px 6px;border-radius:var(--radius-s);width:fit-content}.status-tag-card__count{font-size:var(--font-ui-small);color:var(--text-muted);background:var(--background-modifier-border);padding:2px 10px;border-radius:var(--radius-s);font-weight:var(--font-medium)}.status-tag-card__statuses{display:flex;flex-wrap:wrap;gap:var(--size-2-2)}.status-group{margin-bottom:var(--size-4-2)}.status-group:last-child{margin-bottom:0}.status-group__header{display:flex;justify-content:space-between;align-items:center;padding:var(--size-2-2) var(--size-2-3);background:var(--background-secondary-alt);border-radius:var(--radius-s);margin-bottom:var(--size-2-2);border:1px solid var(--background-modifier-border);transition:background var(--anim-duration-fast) ease}.status-group__header:hover{background:var(--background-modifier-hover)}.status-group__name{text-transform:capitalize;font-weight:var(--font-medium);font-size:var(--font-ui-smaller);color:var(--text-normal)}.status-group__count{display:inline-flex;align-items:center;padding:var(--size-2-1) var(--size-2-2);background:var(--background-modifier-border);border-radius:var(--radius-s);font-size:var(--font-ui-smaller);color:var(--text-muted);font-weight:var(--font-medium);min-width:20px;justify-content:center}.status-group__items{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:var(--size-2-2);padding:0 var(--size-2-1)}.status-item{display:flex;flex-direction:column;gap:var(--size-2-1);padding:var(--size-2-2);background:var(--background-primary-alt);border:1px solid var(--background-modifier-border);border-radius:var(--radius-s)}.status-description{font-size:var(--font-ui-smaller);color:var(--text-muted);line-height:1.4}.group-label-container{display:flex;align-items:center;gap:var(--size-2-2);font-size:var(--font-ui-small);font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);transition:color var(--anim-duration-fast) ease}.group-label-container--highlighted{color:var(--text-normal)}.group-label-container svg{width:16px;height:16px;opacity:.8}.collapsible-counter-container{padding:var(--size-2-1) var(--size-2-3);border-radius:var(--radius-s);background:var(--background-modifier-border);border:1px solid var(--background-modifier-border-hover);color:var(--text-muted);font-weight:var(--font-medium);font-size:var(--font-ui-smaller);cursor:pointer;transition:all var(--anim-duration-fast) ease;min-width:28px;text-align:center}.collapsible-counter-container:hover{background:var(--background-modifier-border-hover);color:var(--text-normal)}.note-status-chip{display:inline-flex;align-items:center;gap:var(--size-2-2);padding:var(--size-2-1) var(--size-2-3);background:var(--interactive-accent);color:var(--text-on-accent);border-radius:var(--radius-s);font-size:var(--font-ui-smaller);cursor:default;transition:transform var(--anim-duration-fast) ease,opacity var(--anim-duration-fast) ease,box-shadow var(--anim-duration-fast) ease}.note-status-chip--clickable{cursor:pointer}.note-status-chip--clickable:hover{opacity:.92;transform:translateY(-1px);box-shadow:var(--shadow-s)}.note-status-chip--removing{opacity:.5;transform:scale(.95)}.note-status-chip__icon{font-size:1em;display:inline-flex}.note-status-chip__text{font-weight:var(--font-medium)}.note-status-chip__remove{display:flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:rgba(255,255,255,.2);margin-left:var(--size-2-1);cursor:pointer;border:none;color:inherit;padding:0;font:inherit;line-height:1}.note-status-chip__remove:hover{background:rgba(255,255,255,.3)}.note-status-chip__remove:focus-visible{outline:2px solid var(--background-modifier-border)}.status-badge-container{display:inline-flex;align-items:center;gap:var(--size-2-2);padding:var(--size-2-1) var(--size-4-2);border-radius:var(--radius-s);border:1px solid var(--background-modifier-border);background:var(--background-primary);position:relative;overflow:hidden;isolation:isolate}.status-badge-container:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:transparent;opacity:.85;display:none}.status-badge-container--clickable{cursor:pointer;transition:background var(--anim-duration-fast) ease,box-shadow var(--anim-duration-fast) ease,filter var(--anim-duration-fast) ease}.status-badge-container--clickable:not(.status-badge--filled):hover{background:var(--background-modifier-hover);box-shadow:var(--shadow-s)}.status-badge--accent{padding-left:calc(var(--size-4-1) + 4px)}.status-badge--accent:before{display:block;background:var(--status-accent, var(--interactive-accent))}.status-badge--filled{background:var(--status-accent, var(--interactive-accent));border-color:var(--status-accent, var(--interactive-accent));color:var(--text-on-accent);padding-left:var(--size-4-2)}.status-badge--filled .status-badge-icon,.status-badge--filled .status-badge-text{color:inherit}.status-badge--filled.status-badge-container--clickable:hover{filter:brightness(1.05);background:var(--status-accent, var(--interactive-accent));box-shadow:var(--shadow-s)}.status-badge--dot{border:none;background:transparent;padding:var(--size-2-1) var(--size-2-2);gap:var(--size-2-1)}.status-badge--dot:before{display:none}.status-badge--dot .status-badge-item{gap:var(--size-2-2)}.status-badge-dot{width:8px;height:8px;border-radius:50%;background:var(--status-accent, var(--interactive-accent));box-shadow:0 0 0 1px var(--background-primary)}.status-badge--empty{min-width:32px;justify-content:center}.status-badge-item{display:flex;align-items:center;gap:var(--size-2-1);position:relative;z-index:1}.status-badge-icon{font-size:var(--font-ui-small)}.status-badge-text{font-weight:var(--font-medium);font-size:var(--font-ui-small)}.status-badge-empty{display:inline-block;min-width:var(--size-3-2);height:var(--size-3-2)}.template-status-chip{display:inline-flex;align-items:center;gap:var(--size-2-1);padding:var(--size-2-1) var(--size-2-3);background:var(--background-secondary);border:1px solid var(--background-modifier-border);border-radius:var(--radius-m);font-size:var(--font-ui-smaller);cursor:default;transition:background var(--anim-duration-fast) ease}.template-status-chip[data-clickable=true]{cursor:pointer}.template-status-chip[data-clickable=true]:hover{background:var(--background-modifier-hover)}.template-status-color-dot{width:8px;height:8px;border-radius:50%;background-color:var(--dot-color)}.template-status-chip__label{display:inline-flex;align-items:center;gap:var(--size-2-1)}.template-status-chip__icon{display:inline-flex;font-size:1em}.lucide-icon-picker{position:relative;display:flex;flex-direction:column;gap:var(--size-2-1)}.lucide-icon-picker__text-input{max-width:240px}.lucide-icon-picker__row{display:flex;gap:var(--size-2-1);align-items:center}.lucide-icon-picker__modal-button{display:inline-flex;align-items:center;gap:var(--size-2-1);border:1px solid var(--background-modifier-border);border-radius:var(--radius-m);padding:var(--size-2-1) var(--size-4-1);background:var(--background-secondary);cursor:pointer;transition:border var(--anim-duration-fast) ease,background var(--anim-duration-fast) ease;min-width:220px;justify-content:space-between}.lucide-icon-picker__modal-button:hover{border-color:var(--interactive-accent)}.lucide-icon-picker__preview{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px}.lucide-icon-picker__label{flex:1;text-align:left;font-size:var(--font-ui-smaller);color:var(--text-muted)}.lucide-icon-picker__clear-trigger{background:transparent;border:none;color:var(--text-muted);font-size:var(--font-ui-smaller);cursor:pointer;padding:var(--size-2-1) var(--size-2-2)}.lucide-icon-picker__clear-trigger:hover{color:var(--text-normal);text-decoration:underline}.lucide-icon-modal-wrapper{padding:var(--size-4-2)}.lucide-icon-modal{display:flex;flex-direction:column;gap:var(--size-2-1)}.lucide-icon-modal__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--size-2-2)}.lucide-icon-modal__count{margin:0;font-size:var(--font-ui-smaller);color:var(--text-muted)}.lucide-icon-modal__close{display:inline-flex;align-items:center;justify-content:center}.lucide-icon-modal__search{width:100%}.lucide-icon-modal__toggle{display:inline-flex;align-items:center;gap:var(--size-2-1);font-size:var(--font-ui-smaller);color:var(--text-muted)}.lucide-icon-modal__list{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--size-2-1);max-height:360px;overflow-y:auto;padding-right:var(--size-2-1)}.lucide-icon-modal__list--icons-only{grid-template-columns:repeat(auto-fill,minmax(70px,1fr))}.lucide-icon-modal__option{display:flex;align-items:center;gap:var(--size-2-1);padding:var(--size-2-1);border-radius:var(--radius-s);border:1px solid var(--background-modifier-border);background:var(--background-secondary);cursor:pointer;font-size:var(--font-ui-smaller);justify-content:flex-start}.lucide-icon-modal__option:hover{background:var(--background-modifier-hover)}.lucide-icon-modal__option--selected{border-color:var(--interactive-accent);background:var(--background-modifier-success)}.lucide-icon-modal__option--compact{justify-content:center}.lucide-icon-modal__option--compact span{display:none}.lucide-icon-modal__empty{grid-column:1 / -1;text-align:center;font-size:var(--font-ui-smaller);color:var(--text-muted);padding:var(--size-4-2)}.icon-selection-field{display:flex;flex-wrap:wrap;gap:var(--size-4-2)}.icon-selection-field__column{flex:1;min-width:220px}.icon-selection-field__label{display:block;font-size:var(--font-ui-smaller);font-weight:var(--font-medium);color:var(--text-muted);margin-bottom:var(--size-2-1)}.icon-selection-field__emoji-input{max-width:260px}.icon-selection-field__hint{margin-top:var(--size-2-1);font-size:var(--font-ui-smaller);color:var(--text-muted)}.status-icon{display:inline-flex;align-items:center;justify-content:center;line-height:1}.obsidian-icon{display:inline-flex;align-items:center;justify-content:center}.obsidian-icon svg{width:100%;height:100%}.note-status-editor-toolbar-badge{display:inline-flex;align-items:center;margin:0 var(--size-2-1)}.note-status-editor-toolbar-badge--hidden{display:none}.editor-toolbar-button__icon{font-size:16px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);width:18px;height:18px;line-height:1}.editor-toolbar-button__icon--has-status{color:var(--interactive-accent)}.editor-toolbar-button__icon-container{position:relative;display:flex;align-items:center;justify-content:center}.editor-toolbar-button__counter{position:absolute;top:-4px;right:-6px;min-width:12px;height:12px;padding:0 2px;background:var(--interactive-accent);color:var(--text-on-accent);font-size:8px;font-weight:var(--font-semibold);border-radius:6px;display:flex;align-items:center;justify-content:center;line-height:1;border:1px solid var(--background-primary)}.status-mapping-list{display:flex;flex-direction:column;gap:var(--size-4-2);width:100%}.status-mapping-row{border:1px solid var(--background-modifier-border);border-radius:var(--radius-m);padding:var(--size-4-3);background:var(--background-primary-alt);display:flex;flex-direction:column;gap:var(--size-2-2)}.status-mapping-empty{padding:var(--size-4-3);text-align:center;color:var(--text-muted);font-style:italic;border:1px dashed var(--background-modifier-border);border-radius:var(--radius-m)}.status-mapping-row__fields{display:flex;flex-wrap:wrap;gap:var(--size-4-2);width:100%}.status-mapping-field{display:flex;flex-direction:column;gap:var(--size-2-1);flex:1 1 180px}.status-mapping-field label{font-size:var(--font-ui-smaller);color:var(--text-muted)}.status-mapping-field small{color:var(--text-faint)}.status-mapping-field select,.status-mapping-field input{width:100%}.status-mapping-row__actions{display:flex;justify-content:flex-end}.status-mapping-remove-btn{background:var(--background-modifier-error);color:var(--text-on-accent);border:none;border-radius:var(--radius-s);padding:4px 10px;cursor:pointer}.status-mapping-remove-btn:hover{opacity:.9}.status-mapping-add-btn{align-self:flex-start;padding:var(--size-2-2) var(--size-4-2);border-radius:var(--radius-s);border:1px solid var(--background-modifier-border);background:var(--interactive-normal);cursor:pointer}.status-mapping-add-btn:hover{background:var(--interactive-hover)}.note-status-input{width:100%;border:1px solid var(--background-modifier-border);border-radius:var(--radius-s);background:var(--background-primary);color:var(--text-normal);font-size:var(--font-ui-small);padding:var(--size-2-2) var(--size-2-3);transition:border-color var(--anim-duration-fast) ease,box-shadow var(--anim-duration-fast) ease}.note-status-input:focus{outline:none;border-color:var(--interactive-accent);box-shadow:0 0 0 2px var(--background-modifier-accent)}.note-status-input--search{padding-left:var(--size-4-1)}.note-status-input--color{width:36px;height:32px;padding:var(--size-2-1);cursor:pointer}.note-status-input--color::-webkit-color-swatch{border:none;border-radius:var(--radius-s)}.note-status-input--color::-webkit-color-swatch-wrapper{padding:0}.note-status-input:disabled{opacity:.65;cursor:not-allowed}.note-status-options{max-height:300px;overflow-y:auto;border:1px solid var(--background-modifier-border);border-radius:var(--radius-s);background:var(--background-primary);box-shadow:var(--shadow-xs)}.note-status-options::-webkit-scrollbar{width:var(--scrollbar-width)}.note-status-options::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb-bg);border-radius:var(--radius-s)}.note-status-option{align-items:stretch}.note-status-option .selectable-list-item-icon{display:flex;align-items:center;justify-content:center}.note-status-option__icon-wrapper{display:inline-flex;align-items:center;justify-content:center;padding:var(--size-2-1);border-radius:var(--radius-m);border:1px solid var(--background-modifier-border);background:var(--background-secondary);min-width:36px;transition:border-color var(--anim-duration-fast) ease,background var(--anim-duration-fast) ease}.note-status-option:hover .note-status-option__icon-wrapper,.note-status-option[data-selected=true] .note-status-option__icon-wrapper{border-color:var(--interactive-accent);background:var(--background-modifier-hover)}.note-status-option__text{display:flex;flex-direction:column;gap:2px}.note-status-option__name{font-weight:var(--font-medium);color:var(--text-normal)}.note-status-option__description{font-size:var(--font-ui-smaller);color:var(--text-muted)}.note-status-chips{display:flex;flex-wrap:wrap;gap:var(--size-2-2);min-height:32px;align-items:center;padding:var(--size-2-1) 0}.status-selector-empty{padding:var(--size-4-2);text-align:center;color:var(--text-muted);font-style:italic;border:1px dashed var(--background-modifier-border);border-radius:var(--radius-m);background:var(--background-primary-alt)}.selectable-list-item{display:flex;align-items:center;gap:var(--size-4-2);padding:var(--size-2-3) var(--size-4-2);cursor:pointer;border-bottom:1px solid var(--background-modifier-border);transition:background var(--anim-duration-fast) ease}.selectable-list-item:hover{background:var(--background-modifier-hover)}.selectable-list-item[data-focused=true]{outline:2px solid var(--interactive-accent);outline-offset:-2px}.selectable-list-item[data-selected=true]{background:var(--background-modifier-hover)}.selectable-list-item-icon{font-size:16px;min-width:20px}.selectable-list-item-content{flex:1;font-size:var(--font-ui-small)}.selectable-list-item-check{color:var(--interactive-accent);display:flex;align-items:center}.status-selector-group{display:flex;flex-direction:column;gap:var(--size-4-2);outline:none}.status-selector-group:focus-visible{outline:2px solid var(--background-modifier-border-hover);outline-offset:4px}.note-status-template-tabs{display:inline-flex;align-items:center;gap:var(--size-2-1);padding:var(--size-2-2);border:1px solid var(--background-modifier-border);border-radius:var(--radius-m);background:var(--background-secondary);margin-bottom:var(--size-2-2)}.note-status-template-tab{border:none;background:transparent;color:var(--text-muted);padding:var(--size-2-2) var(--size-3-1);border-radius:var(--radius-s);cursor:pointer;transition:background var(--anim-duration-fast) ease,color var(--anim-duration-fast) ease,box-shadow var(--anim-duration-fast) ease}.note-status-template-tab:not(.is-active):hover{background:var(--background-modifier-hover);color:var(--text-normal)}.note-status-template-tab.is-active{background:var(--interactive-accent);color:var(--text-on-accent);box-shadow:0 0 0 1px var(--background-modifier-border)}.note-status-template-tab:focus-visible{outline:2px solid var(--background-modifier-border)} +.status-bar-no-status{display:inline-flex;align-items:center;gap:var(--size-2-2);color:var(--status-empty-color, var(--text-muted))}.status-bar-no-status:hover{color:var(--text-normal)}.status-bar-no-status__icon{opacity:.9}.status-bar-no-status__label{font-weight:var(--font-medium)}.status-bar-enable-button{cursor:pointer;opacity:var(--icon-opacity);transition:opacity var(--anim-duration-fast) ease}.status-bar-enable-button:hover{opacity:var(--icon-opacity-hover)}.status-bar-group-row{display:flex;align-items:center;gap:var(--size-4-2)}.status-bar-group-container{display:flex;gap:var(--size-2-1);flex-wrap:wrap;align-items:center}.status-bar-status-item{display:inline-flex;align-items:center}.status-bar-status-item--animated{animation:status-slide-in var(--anim-duration-fast) ease-out var(--status-anim-delay, 0s) both}@keyframes status-slide-in{0%{opacity:0;transform:scale(.8) translateY(4px)}to{opacity:1;transform:scale(1) translateY(0)}}.note-status-settings__intro{background:var(--background-secondary);border:1px solid var(--background-modifier-border);border-radius:var(--radius-m);padding:var(--size-4-3);margin-bottom:var(--size-4-3);display:flex;flex-direction:column;gap:var(--size-4-2)}.note-status-settings__description{margin:0;color:var(--text-normal);line-height:1.5}.note-status-settings__support{display:flex;flex-wrap:wrap;gap:var(--size-4-2)}.note-status-settings__badge{padding:0;border:none;background:transparent}.note-status-settings__badge img{display:block;height:32px}.note-status-settings__badge:hover{background:transparent;border-color:transparent;transform:translateY(-1px)}.note-status-settings__badge:focus-visible{outline:2px solid var(--interactive-accent);outline-offset:2px;border-radius:var(--radius-s)}.note-status-settings__support a:not(.note-status-settings__badge){display:inline-flex;align-items:center;justify-content:center;gap:var(--size-2-2);padding:var(--size-2-3) var(--size-4-2);border-radius:var(--radius-s);border:1px solid var(--background-modifier-border);text-decoration:none;color:var(--text-normal);background:var(--background-primary);transition:background var(--anim-duration-fast) ease,border-color var(--anim-duration-fast) ease,transform var(--anim-duration-fast) ease}.note-status-settings__support a:not(.note-status-settings__badge):hover{background:var(--background-modifier-hover);border-color:var(--interactive-accent);transform:translateY(-1px)}.note-status-settings__support a:not(.note-status-settings__badge):focus-visible{outline:2px solid var(--interactive-accent);outline-offset:2px}.note-status-section{border:1px solid var(--background-modifier-border);border-radius:var(--radius-m);background:var(--background-primary);margin-bottom:var(--size-4-3);overflow:hidden}.note-status-section__header{width:100%;display:flex;align-items:flex-start;justify-content:space-between;gap:var(--size-4-1);padding:var(--size-4-2) var(--size-4-3);background:var(--background-secondary);border:none;color:inherit;cursor:pointer;text-align:left}.note-status-section__header:hover{background:var(--background-modifier-hover)}.note-status-section__title-block{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--size-2-1)}.note-status-section__title-block .setting-item-name,.note-status-section__title-block .setting-item-description{white-space:normal;line-height:1.4}.note-status-section__title-block .setting-item-description{color:var(--text-muted)}.note-status-section__chevron{font-size:var(--font-ui-medium);color:var(--text-muted)}.note-status-section__content{padding:var(--size-4-3);border-top:1px solid var(--background-modifier-border)}.note-status-settings__stack{display:flex;flex-direction:column;gap:var(--size-4-3)}.setting-item-full{width:100%}.setting-item-vertical{flex-direction:column;align-items:flex-start;gap:var(--size-2-2)}.ui-settings__no-status-input{max-width:150px}.custom-status-item{background:var(--background-secondary);border:1px solid var(--background-modifier-border);border-radius:var(--radius-m);padding:var(--size-4-3);margin-bottom:var(--size-4-2);transition:all var(--anim-duration-fast) ease}.custom-status-item:hover{border-color:var(--interactive-hover)}.custom-status-item__row{display:flex;align-items:end;gap:var(--size-4-2);margin-bottom:var(--size-4-2)}.custom-status-item__row--icons{align-items:stretch;flex-wrap:wrap}.custom-status-item__field{display:flex;flex-direction:column;gap:var(--size-2-1)}.custom-status-item__field--icon,.custom-status-item__field--lucide{flex:1;min-width:240px}.custom-status-item__field--name,.custom-status-item__field--description{flex:2;min-width:120px}.custom-status-item__field--color{flex:0 0 auto}.custom-status-item__field--reorder,.custom-status-item__field--actions{flex:0 0 auto;padding-top:var(--size-4-1)}.custom-status-item__label{font-size:var(--font-ui-smaller);font-weight:var(--font-medium);color:var(--text-muted);margin-bottom:var(--size-2-1)}.custom-status-item__label--required{color:var(--text-error)}.custom-status-item__input--icon{width:100%!important;text-align:left;font-size:1em}.custom-status-item__hint{margin:0;font-size:var(--font-ui-smaller);color:var(--text-muted)}.custom-status-item__input--name{font-weight:var(--font-medium)}.custom-status-item__input--name.custom-status-item__input--invalid{border-color:var(--text-error)!important;background:var(--background-modifier-error)!important}.custom-status-item__input--description{color:var(--text-muted)}.custom-status-item__input--color{width:40px!important;height:32px!important;border-radius:var(--radius-s);cursor:pointer;border:2px solid var(--background-modifier-border)!important}.custom-status-item__input--color:hover{border-color:var(--interactive-hover)!important}.custom-status-item__remove-btn{width:32px;height:32px;border-radius:var(--radius-s);background:var(--background-modifier-error);color:var(--text-on-accent);border:none;cursor:pointer;font-size:18px;font-weight:700;transition:all var(--anim-duration-fast) ease}.custom-status-item__remove-btn:hover{background:var(--text-error);transform:scale(1.05)}.custom-status-item__reorder-buttons{display:flex;flex-direction:column;gap:2px}.custom-status-item__reorder-btn{width:24px;height:24px;border-radius:var(--radius-s);background:var(--background-modifier-border);color:var(--text-normal);border:none;cursor:pointer;font-size:12px;font-weight:700;transition:all var(--anim-duration-fast) ease;display:flex;align-items:center;justify-content:center;line-height:1}.custom-status-item__reorder-btn:hover:not(:disabled){background:var(--interactive-hover);transform:scale(1.05)}.custom-status-item__reorder-btn:disabled{opacity:.5;cursor:not-allowed}.custom-status-item__preview{display:flex;align-items:center;gap:var(--size-2-2);padding:var(--size-2-3) var(--size-4-2);background:var(--background-primary-alt);border-radius:var(--radius-s);border-left:3px solid var(--background-modifier-border);font-size:var(--font-ui-small)}.custom-status-item__preview-icon{font-size:1.1em;min-width:20px;text-align:center}.custom-status-item__preview-text{font-weight:var(--font-medium)}.custom-status-item__preview-desc{color:var(--text-muted);font-style:italic}.custom-status-item__preview-desc:before{content:"\2014 "}.custom-status-item__error{color:var(--text-error);font-size:var(--font-ui-smaller);margin-top:var(--size-2-1);padding:var(--size-2-1) var(--size-2-2);background:var(--background-modifier-error);border-radius:var(--radius-s);border-left:3px solid var(--text-error)}.custom-status-list__empty{text-align:center;padding:var(--size-4-4) var(--size-4-2);color:var(--text-muted);font-style:italic;border:2px dashed var(--background-modifier-border);border-radius:var(--radius-m);background:var(--background-primary-alt)}.custom-status-list__empty p{margin:0}.status-group{margin-bottom:var(--size-4-4);padding:var(--size-4-3);background:var(--background-primary-alt);border-radius:var(--radius-m);border:1px solid var(--background-modifier-border)}.status-group__header{margin-bottom:var(--size-4-2);padding-bottom:var(--size-2-2);border-bottom:1px solid var(--background-modifier-border)}.status-group__title{font-weight:var(--font-semibold);color:var(--text-normal);font-size:var(--font-ui-medium)}.status-group__description{font-size:var(--font-ui-smaller);color:var(--text-muted);margin-top:var(--size-2-1);line-height:var(--line-height-tight)}.status-group__items{display:flex;flex-direction:column;gap:var(--size-2-2)}.status-selector{display:flex;align-items:center;justify-content:space-between;padding:var(--size-2-3) var(--size-4-2);border:1px solid var(--background-modifier-border);border-radius:var(--radius-m);background:var(--background-primary);cursor:pointer;transition:all var(--anim-duration-fast) ease;position:relative}.status-selector:hover{background:var(--background-modifier-hover);border-color:var(--background-modifier-border-hover)}.status-selector--selected{background:var(--background-modifier-success);border-color:var(--interactive-success)}.status-selector--selected:hover{background:var(--background-modifier-success-hover)}.status-selector__content{flex:1;min-width:0}.status-selector__status{display:flex;align-items:center;gap:var(--size-2-2);margin-bottom:var(--size-2-1)}.status-selector__icon{font-size:var(--font-ui-medium);width:var(--size-4-3);text-align:center;flex-shrink:0}.status-selector__name{font-weight:var(--font-medium);color:var(--text-normal)}.status-selector__description{font-size:var(--font-ui-smaller);color:var(--text-muted);line-height:var(--line-height-tight)}.status-selector__checkbox{margin-left:var(--size-4-2);pointer-events:none;flex-shrink:0}.quick-commands-container{margin-top:var(--size-4-2)}.template-settings-actions{display:flex;justify-content:end;gap:var(--size-4-2);padding-bottom:var(--size-4-2)}.template-create-btn{display:flex;align-items:center;gap:var(--size-2-2);padding:var(--size-2-3) var(--size-4-3);font-weight:var(--font-medium);font-size:var(--font-ui-medium)}.template-reset-btn{display:flex;align-items:center;gap:var(--size-2-2);padding:var(--size-2-3) var(--size-4-3);background:var(--interactive-normal);border:1px solid var(--background-modifier-border);border-radius:var(--radius-s);color:var(--text-normal);cursor:pointer;font-size:var(--font-ui-medium);transition:all var(--anim-duration-fast) ease}.template-reset-btn:hover{background:var(--interactive-hover);color:var(--text-normal)}.template-section{margin-bottom:var(--size-4-6)}.template-section-title{display:flex;align-items:center;gap:var(--size-2-2);font-size:var(--font-ui-large);font-weight:var(--font-semibold);color:var(--text-normal);margin-bottom:var(--size-4-3);padding-bottom:var(--size-2-2);border-bottom:2px solid var(--background-modifier-border)}.template-section-title .lucide{opacity:.8;color:var(--text-muted)}.template-list{display:flex;flex-direction:column;gap:var(--size-4-2)}.template-item{position:relative;display:flex;align-items:stretch;border:1px solid var(--background-modifier-border);border-radius:var(--radius-m);background:var(--background-primary-alt);transition:all var(--anim-duration-fast) ease;overflow:hidden}.template-item:hover{background:var(--background-modifier-hover);border-color:var(--background-modifier-border-hover);box-shadow:0 2px 8px var(--shadow-color)}.template-item.enabled{background:var(--background-modifier-hover);border-color:var(--interactive-accent);box-shadow:0 0 0 1px var(--interactive-accent)}.template-item.enabled:hover{box-shadow:0 2px 8px var(--shadow-color),0 0 0 1px var(--interactive-accent)}.template-item-content{flex:1;border:none!important;border-radius:0!important;background:transparent!important}.template-item-main{flex:1}.template-header{display:flex;align-items:center;gap:var(--size-2-2);margin-bottom:var(--size-2-1)}.template-custom-badge{display:flex;align-items:center;gap:var(--size-2-1);padding:var(--size-2-1) var(--size-2-2);background:var(--interactive-accent);color:var(--text-on-accent);font-size:var(--font-ui-smaller);font-weight:var(--font-medium);border-radius:var(--radius-s);text-transform:uppercase;letter-spacing:.05em}.template-item-actions{display:flex;flex-direction:column;padding:var(--size-4-2);gap:var(--size-2-1);background:var(--background-modifier-border);border-left:1px solid var(--background-modifier-border-hover);min-width:44px;align-items:center;justify-content:center}.template-editor-modal{background:var(--background-primary);border:1px solid var(--background-modifier-border);border-radius:var(--radius-l);box-shadow:var(--shadow-l);max-width:800px;width:100%}.template-editor-modal__header{padding:var(--size-4-4) var(--size-4-6);background:var(--background-secondary);border-bottom:1px solid var(--background-modifier-border);border-radius:var(--radius-l) var(--radius-l) 0 0}.template-editor-modal__header h2{margin:0;font-size:var(--font-ui-larger);font-weight:var(--font-bold);color:var(--text-normal)}.template-editor-modal__content{padding:var(--size-4-6);max-height:70vh;overflow-y:auto}.template-editor-statuses{display:flex;flex-direction:column;gap:var(--size-4-3)}.template-editor-add-status{display:flex;align-items:center;gap:var(--size-2-2);align-self:flex-start;margin-top:var(--size-4-2)}.template-editor-add-status .lucide{width:16px;height:16px}.template-editor-modal__actions{display:flex;gap:var(--size-4-2);justify-content:flex-end;padding:var(--size-4-4) var(--size-4-6);background:var(--background-secondary);border-top:1px solid var(--background-modifier-border);border-radius:0 0 var(--radius-l) var(--radius-l)}.template-editor-modal__actions button{padding:var(--size-2-3) var(--size-4-4);border-radius:var(--radius-m);font-size:var(--font-ui-medium);font-weight:var(--font-medium);cursor:pointer;transition:all var(--anim-duration-fast) ease;border:1px solid var(--background-modifier-border)}.template-editor-modal__actions button:not(.mod-cta){background:var(--interactive-normal);color:var(--text-normal)}.template-editor-modal__actions button:not(.mod-cta):hover{background:var(--interactive-hover)}.template-editor-modal__actions .mod-cta:disabled{opacity:.5;cursor:not-allowed;transform:none}.template-editor-modal__actions .mod-cta:disabled:hover{transform:none}@media (max-width: 768px){.template-settings-actions,.template-item{flex-direction:column}.template-item-actions{flex-direction:row;border-left:none;border-top:1px solid var(--background-modifier-border-hover);min-width:unset;padding:var(--size-2-3) var(--size-4-2)}.template-editor-modal{margin:var(--size-4-2);max-width:calc(100% - var(--size-4-4))}}.template-editor-modal__content::-webkit-scrollbar{width:var(--scrollbar-width)}.template-editor-modal__content::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb-bg);border-radius:var(--radius-s)}.template-editor-modal__content::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-active-bg)}.status-dashboard-view-container{height:100%;overflow:hidden}.status-dashboard{background:var(--background-primary)}.status-dashboard-header{display:flex;justify-content:space-between;align-items:center;padding:var(--size-4-3) var(--size-4-4);background:var(--background-secondary);border-bottom:1px solid var(--background-modifier-border)}.status-dashboard-title{margin:0;font-size:var(--font-ui-larger);font-weight:var(--font-bold)}.status-dashboard-refresh{padding:var(--size-2-2) var(--size-2-3);border:1px solid var(--background-modifier-border);border-radius:var(--radius-s);background:var(--interactive-normal);color:var(--text-normal);cursor:pointer;font-size:var(--font-ui-medium);transition:all var(--anim-duration-fast) ease}.status-dashboard-refresh:hover{background:var(--interactive-hover);transform:rotate(90deg)}.status-dashboard-content{flex:1;overflow-y:auto;padding:var(--size-4-3);display:flex;flex-direction:column;gap:var(--size-4-4)}.status-dashboard-section{background:var(--background-secondary);border:1px solid var(--background-modifier-border);border-radius:var(--radius-m);overflow:hidden}.status-dashboard-section-header{padding:var(--size-4-2) var(--size-4-3);background:var(--background-modifier-hover);border-bottom:1px solid var(--background-modifier-border)}.status-dashboard-section-header h3{margin:0;font-size:var(--font-ui-large);font-weight:var(--font-semibold)}.status-dashboard-current-note{padding:var(--size-4-3)}.current-note-info{margin-bottom:var(--size-4-3);padding-bottom:var(--size-4-2);border-bottom:1px solid var(--background-modifier-border)}.current-note-name{font-size:var(--font-ui-large);font-weight:var(--font-semibold);margin-bottom:var(--size-2-1)}.current-note-path{font-size:var(--font-ui-small);color:var(--text-muted);font-family:var(--font-monospace);margin-bottom:var(--size-2-1)}.current-note-modified{font-size:var(--font-ui-smaller);color:var(--text-faint);font-style:italic}.current-note-statuses{display:flex;flex-direction:column;gap:var(--size-4-2)}.current-note-tag-group{display:flex;flex-direction:column;gap:var(--size-2-2)}.current-note-status-list{display:flex;flex-wrap:wrap;gap:var(--size-2-2)}.current-note-no-status{font-size:var(--font-ui-small);color:var(--text-muted);font-style:italic;padding:var(--size-2-1) var(--size-2-3);background:var(--background-modifier-border);border-radius:var(--radius-s)}.current-note-empty{text-align:center;color:var(--text-muted);font-style:italic;padding:var(--size-4-4)}.vault-overview{padding:var(--size-4-3)}.vault-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--size-4-2)}.vault-stat-card{text-align:center;padding:var(--size-4-2);background:var(--background-primary);border:1px solid var(--background-modifier-border);border-radius:var(--radius-m);transition:all var(--anim-duration-fast) ease}.vault-stat-card:hover{background:var(--background-modifier-hover);transform:translateY(-2px);box-shadow:var(--shadow-s)}.vault-stat-number{font-size:var(--font-ui-largest);font-weight:var(--font-bold);color:var(--interactive-accent);margin-bottom:var(--size-2-1)}.vault-stat-label{font-size:var(--font-ui-small);color:var(--text-muted);font-weight:var(--font-medium);text-transform:uppercase;letter-spacing:.05em}.status-distribution{padding:var(--size-4-3)}.status-chart{display:flex;flex-direction:column;gap:var(--size-4-2)}.status-chart-item{display:flex;flex-direction:column;gap:var(--size-2-1)}.status-chart-item--clickable{cursor:pointer;transition:all var(--anim-duration-fast) ease;padding:var(--size-2-2);border-radius:var(--radius-s)}.status-chart-item--clickable:hover{background:var(--background-modifier-hover);transform:translateY(-1px)}.status-chart-info{display:flex;align-items:center;gap:var(--size-2-3)}.status-chart-count{font-size:var(--font-ui-small);color:var(--text-muted);font-weight:var(--font-medium)}.status-chart-bar{height:8px;background:var(--background-modifier-border);border-radius:var(--radius-s);overflow:hidden}.status-chart-fill{height:100%;transition:width var(--anim-duration-moderate) ease}.status-distribution-empty{text-align:center;color:var(--text-muted);font-style:italic;padding:var(--size-4-4)}.quick-actions{padding:var(--size-4-3);display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--size-4-3)}.quick-actions-group{display:flex;flex-direction:column;gap:var(--size-2-2)}.quick-actions-group-title{font-size:var(--font-ui-small);font-weight:var(--font-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;padding-bottom:var(--size-2-1);border-bottom:1px solid var(--background-modifier-border);margin-bottom:var(--size-2-1)}.quick-action-btn{width:100%;padding:var(--size-2-3) var(--size-4-2);border:1px solid var(--background-modifier-border);border-radius:var(--radius-m);background:var(--interactive-normal);color:var(--text-normal);cursor:pointer;font-size:var(--font-ui-medium);font-weight:var(--font-medium);text-align:left;display:flex;align-items:center;gap:var(--size-2-2);transition:all var(--anim-duration-fast) ease}.quick-action-btn:hover:not(:disabled){background:var(--interactive-hover);transform:translateY(-1px);box-shadow:var(--shadow-s)}.quick-action-btn:disabled{opacity:.5;cursor:not-allowed;background:var(--background-modifier-border);color:var(--text-faint)}@media (max-width: 768px){.quick-actions{grid-template-columns:1fr}}.status-dashboard-loading{display:flex;align-items:center;justify-content:center;height:100%;font-size:var(--font-ui-medium);color:var(--text-muted)}.status-dashboard-disabled{display:flex;align-items:center;justify-content:center;height:100%;padding:var(--size-4-4);text-align:center;font-size:var(--font-ui-medium);color:var(--text-muted);background:var(--background-secondary);border:2px dashed var(--background-modifier-border);border-radius:var(--radius-m);margin:var(--size-4-4)}.status-dashboard-content::-webkit-scrollbar{width:var(--scrollbar-width)}.status-dashboard-content::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb-bg);border-radius:var(--radius-s)}.status-dashboard-content::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-active-bg)}.grouped-status-view-container{height:100%;overflow:hidden}.grouped-status-header{padding:var(--size-4-2) var(--size-4-3);background:var(--background-secondary);border-bottom:1px solid var(--background-modifier-border)}.grouped-status-title{margin:0 0 var(--size-4-2) 0;font-size:var(--font-ui-large);font-weight:var(--font-semibold)}.grouped-status-filters{display:flex;flex-direction:column;gap:var(--size-4-2)}.grouped-status-note-input{width:100%;padding:var(--size-2-2) var(--size-2-3);border:1px solid var(--background-modifier-border);border-radius:var(--radius-s);background:var(--background-primary);color:var(--text-normal);font-size:var(--font-ui-medium)}.grouped-status-note-input:focus{outline:none;border-color:var(--interactive-accent);box-shadow:0 0 0 2px var(--background-modifier-accent)}.grouped-status-content{flex:1;overflow-y:auto;padding:var(--size-4-2)}.grouped-status-tag-section{margin-bottom:var(--size-4-3)}.grouped-status-tag-header{display:flex;justify-content:space-between;align-items:center;padding:var(--size-4-2) var(--size-4-3);background:var(--background-secondary);border:1px solid var(--background-modifier-border);border-radius:var(--radius-m);cursor:pointer;transition:all var(--anim-duration-fast) ease;margin-bottom:var(--size-4-2)}.grouped-status-tag-header:hover{background:var(--background-modifier-hover)}.grouped-status-tag-content{padding-left:var(--size-4-2)}.grouped-status-group{margin-bottom:var(--size-4-2);background:var(--background-primary);border:1px solid var(--background-modifier-border);border-radius:var(--radius-m);overflow:hidden;box-shadow:0 1px 3px #0000001a;transition:box-shadow var(--anim-duration-fast) ease}.grouped-status-group:hover{box-shadow:0 2px 8px #00000026}.grouped-status-group__header{display:flex;justify-content:space-between;align-items:center;padding:var(--size-4-2) var(--size-4-3);cursor:pointer;transition:background var(--anim-duration-fast) ease;position:relative}.grouped-status-group__header:hover{background:var(--background-modifier-hover)}.grouped-status-group__header:focus{outline:2px solid var(--color-accent);outline-offset:-2px}.grouped-status-group__status{display:flex;align-items:center;gap:var(--size-2-2);min-width:0;flex:1}.grouped-status-group__template-badge{display:inline-flex;align-items:center;padding:var(--size-2-1) var(--size-2-2);background:var(--background-modifier-border);border-radius:var(--radius-s);font-size:var(--font-ui-smaller);color:var(--text-muted);font-weight:var(--font-medium)}.grouped-status-group__info{display:flex;align-items:center;gap:var(--size-2-2);margin-left:auto}.grouped-status-files{background:var(--background-secondary);border-top:1px solid var(--background-modifier-border)}.grouped-status-files-list{max-height:300px;overflow-y:auto}.grouped-status-file-item{padding:var(--size-2-3) var(--size-4-3);cursor:pointer;transition:background var(--anim-duration-fast) ease;border-bottom:1px solid var(--background-modifier-border-hover)}.grouped-status-file-item:hover{background:var(--background-modifier-hover)}.grouped-status-file-item:last-child{border-bottom:none}.grouped-status-file-name{font-weight:var(--font-medium);color:var(--text-normal);margin-bottom:2px}.grouped-status-file-path{font-size:var(--font-ui-small);color:var(--text-muted);opacity:.8}.grouped-status-load-more{display:flex;justify-content:center;padding:var(--size-4-2);border-top:1px solid var(--background-modifier-border)}.grouped-status-load-btn{padding:var(--size-2-2) var(--size-4-2);border:1px solid var(--background-modifier-border);border-radius:var(--radius-s);background:var(--interactive-normal);color:var(--text-normal);cursor:pointer;font-size:var(--font-ui-small);font-weight:var(--font-medium);transition:all var(--anim-duration-fast) ease}.grouped-status-load-btn:hover{background:var(--interactive-hover);transform:translateY(-1px)}.grouped-status-loading,.grouped-status-empty{display:flex;align-items:center;justify-content:center;padding:var(--size-4-6);color:var(--text-muted);font-size:var(--font-ui-medium)}.grouped-status-view-disabled{display:flex;align-items:center;justify-content:center;height:100%;padding:var(--size-4-4);text-align:center;font-size:var(--font-ui-medium);color:var(--text-muted);background:var(--background-secondary);border:2px dashed var(--background-modifier-border);border-radius:var(--radius-m);margin:var(--size-4-4)}.grouped-status-content::-webkit-scrollbar,.grouped-status-files-list::-webkit-scrollbar{width:var(--scrollbar-width)}.grouped-status-content::-webkit-scrollbar-thumb,.grouped-status-files-list::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb-bg);border-radius:var(--radius-s)}.grouped-status-content::-webkit-scrollbar-thumb:hover,.grouped-status-files-list::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-active-bg)}.grouped-status-filters__template{display:flex;flex-direction:column;gap:var(--size-2-1)}.grouped-status-filters__template-select{width:100%;padding:var(--size-2-2) var(--size-2-3);border:1px solid var(--background-modifier-border);border-radius:var(--radius-s);background:var(--background-primary);color:var(--text-normal);font-size:var(--font-ui-small);cursor:pointer}.grouped-status-filters__template-select:focus{outline:none;border-color:var(--interactive-accent);box-shadow:0 0 0 2px var(--background-modifier-accent)}.grouped-status-filters__note{display:flex;flex-direction:column;gap:var(--size-2-1)}.grouped-status-filters__note-input{width:100%;padding:var(--size-2-2) var(--size-2-3);border:1px solid var(--background-modifier-border);border-radius:var(--radius-s);background:var(--background-primary);color:var(--text-normal);font-size:var(--font-ui-small)}.grouped-status-filters__note-input:focus{outline:none;border-color:var(--interactive-accent);box-shadow:0 0 0 2px var(--background-modifier-accent)}.grouped-status-group__status{display:flex;align-items:center;gap:var(--size-2-2)}.grouped-status-group__template-badge{background:var(--background-modifier-border);color:var(--text-muted);padding:var(--size-2-1) var(--size-2-2);border-radius:var(--radius-s);font-size:var(--font-ui-smaller);font-weight:var(--font-medium);text-transform:capitalize;white-space:nowrap}.custom-icon{display:inline-flex}.custom-icon__absolute-right{position:absolute;right:0}.note-status-colored-block{position:relative;border-radius:var(--radius-s);z-index:0}.note-status-colored-block:before{content:"";position:absolute;inset:0;border-radius:inherit;background-color:var(--note-status-block-color, transparent);opacity:.18;pointer-events:none;z-index:-1;transition:background-color var(--anim-duration-fast) ease,opacity var(--anim-duration-fast) ease}.note-status-border-left{position:relative}.note-status-border-left:after{content:"";position:absolute;left:0;top:2px;bottom:2px;width:3px;border-radius:var(--radius-s);background-color:var(--note-status-border-color, transparent);opacity:.35;pointer-events:none}.note-status-underline{text-decoration-line:underline;text-decoration-thickness:2px;text-decoration-color:var(--note-status-underline-color, currentColor);text-underline-offset:3px}.note-status-dot-badge{width:6px;height:6px;border-radius:50%;margin-left:var(--size-2-1);display:inline-flex;align-items:center;justify-content:center;box-shadow:0 0 0 1px var(--background-modifier-border);flex-shrink:0}.status-wrapper{position:relative;display:inline-block}.status-minimal{display:inline-flex;align-items:center;gap:2px;margin-left:var(--size-2-2);padding:2px;border-radius:var(--radius-s);cursor:pointer;opacity:.7;transition:all var(--anim-duration-fast) ease}.status-minimal:hover{opacity:1;background:var(--background-modifier-hover);transform:scale(1.05)}.status-minimal--compact{margin-left:0;padding:0;background:transparent;gap:var(--size-2-1)}.status-minimal--compact .status-minimal__icon{font-size:var(--font-ui-medium)}.status-minimal[data-status-color] .status-minimal__count{background:var(--interactive-accent)}.status-minimal__icon{font-size:11px;line-height:1;display:inline-flex;align-items:center;justify-content:center;filter:grayscale(.2);transition:filter var(--anim-duration-fast) ease}.status-minimal:hover .status-minimal__icon{filter:grayscale(0)}.status-minimal__count{min-width:14px;height:14px;padding:0 3px;background:var(--interactive-accent);color:var(--text-on-accent);font-size:var(--font-ui-smaller);font-weight:var(--font-semibold);border-radius:var(--radius-m);display:flex;align-items:center;justify-content:center}.status-info-popup{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:var(--layer-popover);background:var(--background-primary);border:1px solid var(--background-modifier-border);border-radius:var(--radius-m);box-shadow:var(--shadow-l);min-width:280px;max-width:400px;overflow:hidden;pointer-events:none}.status-popup-header{display:flex;align-items:center;gap:var(--size-2-2);padding:var(--size-4-2) var(--size-4-3);background:var(--background-secondary);border-bottom:1px solid var(--background-modifier-border);font-weight:var(--font-semibold);font-size:var(--font-ui-small)}.status-popup-content{padding:var(--size-4-2)}.status-popup-empty{padding:var(--size-4-4);text-align:center;color:var(--text-muted);font-style:italic}.status-tag-grid{display:flex;flex-direction:column;gap:var(--size-4-2)}.status-tag-card{border:1px solid var(--background-modifier-border);border-radius:var(--radius-m);padding:var(--size-4-2);background:var(--background-primary-alt);box-shadow:var(--shadow-xs)}.status-tag-card__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--size-2-2)}.status-tag-card__title{display:flex;flex-direction:column;gap:var(--size-2-1)}.status-tag-card__label{font-weight:var(--font-semibold);text-transform:none}.status-tag-card__badge{font-size:var(--font-ui-smaller);color:var(--text-muted);background:var(--background-modifier-border);padding:2px 6px;border-radius:var(--radius-s);width:fit-content}.status-tag-card__count{font-size:var(--font-ui-small);color:var(--text-muted);background:var(--background-modifier-border);padding:2px 10px;border-radius:var(--radius-s);font-weight:var(--font-medium)}.status-tag-card__statuses{display:flex;flex-wrap:wrap;gap:var(--size-2-2)}.status-group{margin-bottom:var(--size-4-2)}.status-group:last-child{margin-bottom:0}.status-group__header{display:flex;justify-content:space-between;align-items:center;padding:var(--size-2-2) var(--size-2-3);background:var(--background-secondary-alt);border-radius:var(--radius-s);margin-bottom:var(--size-2-2);border:1px solid var(--background-modifier-border);transition:background var(--anim-duration-fast) ease}.status-group__header:hover{background:var(--background-modifier-hover)}.status-group__name{text-transform:capitalize;font-weight:var(--font-medium);font-size:var(--font-ui-smaller);color:var(--text-normal)}.status-group__count{display:inline-flex;align-items:center;padding:var(--size-2-1) var(--size-2-2);background:var(--background-modifier-border);border-radius:var(--radius-s);font-size:var(--font-ui-smaller);color:var(--text-muted);font-weight:var(--font-medium);min-width:20px;justify-content:center}.status-group__items{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:var(--size-2-2);padding:0 var(--size-2-1)}.status-item{display:flex;flex-direction:column;gap:var(--size-2-1);padding:var(--size-2-2);background:var(--background-primary-alt);border:1px solid var(--background-modifier-border);border-radius:var(--radius-s)}.status-description{font-size:var(--font-ui-smaller);color:var(--text-muted);line-height:1.4}.group-label-container{display:flex;align-items:center;gap:var(--size-2-2);font-size:var(--font-ui-small);font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);transition:color var(--anim-duration-fast) ease}.group-label-container--highlighted{color:var(--text-normal)}.group-label-container svg{width:16px;height:16px;opacity:.8}.collapsible-counter-container{padding:var(--size-2-1) var(--size-2-3);border-radius:var(--radius-s);background:var(--background-modifier-border);border:1px solid var(--background-modifier-border-hover);color:var(--text-muted);font-weight:var(--font-medium);font-size:var(--font-ui-smaller);cursor:pointer;transition:all var(--anim-duration-fast) ease;min-width:28px;text-align:center}.collapsible-counter-container:hover{background:var(--background-modifier-border-hover);color:var(--text-normal)}.note-status-chip{display:inline-flex;align-items:center;gap:var(--size-2-2);padding:var(--size-2-1) var(--size-2-3);background:var(--interactive-accent);color:var(--text-on-accent);border-radius:var(--radius-s);font-size:var(--font-ui-smaller);cursor:default;transition:transform var(--anim-duration-fast) ease,opacity var(--anim-duration-fast) ease,box-shadow var(--anim-duration-fast) ease}.note-status-chip--clickable{cursor:pointer}.note-status-chip--clickable:hover{opacity:.92;transform:translateY(-1px);box-shadow:var(--shadow-s)}.note-status-chip--removing{opacity:.5;transform:scale(.95)}.note-status-chip__icon{font-size:1em;display:inline-flex}.note-status-chip__text{font-weight:var(--font-medium)}.note-status-chip__remove{display:flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:rgba(255,255,255,.2);margin-left:var(--size-2-1);cursor:pointer;border:none;color:inherit;padding:0;font:inherit;line-height:1}.note-status-chip__remove:hover{background:rgba(255,255,255,.3)}.note-status-chip__remove:focus-visible{outline:2px solid var(--background-modifier-border)}.status-badge-container{display:inline-flex;align-items:center;gap:var(--size-2-2);padding:var(--size-2-1) var(--size-4-2);border-radius:var(--radius-s);border:1px solid var(--background-modifier-border);background:var(--background-primary);position:relative;overflow:hidden;isolation:isolate}.status-badge-container:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:transparent;opacity:.85;display:none}.status-badge-container--clickable{cursor:pointer;transition:background var(--anim-duration-fast) ease,box-shadow var(--anim-duration-fast) ease,filter var(--anim-duration-fast) ease}.status-badge-container--clickable:not(.status-badge--filled):hover{background:var(--background-modifier-hover);box-shadow:var(--shadow-s)}.status-badge--accent{padding-left:calc(var(--size-4-1) + 4px)}.status-badge--accent:before{display:block;background:var(--status-accent, var(--interactive-accent))}.status-badge--filled{background:var(--status-accent, var(--interactive-accent));border-color:var(--status-accent, var(--interactive-accent));color:var(--text-on-accent);padding-left:var(--size-4-2)}.status-badge--filled .status-badge-icon,.status-badge--filled .status-badge-text{color:inherit}.status-badge--filled.status-badge-container--clickable:hover{filter:brightness(1.05);background:var(--status-accent, var(--interactive-accent));box-shadow:var(--shadow-s)}.status-badge--dot{border:none;background:transparent;padding:var(--size-2-1) var(--size-2-2);gap:var(--size-2-1)}.status-badge--dot:before{display:none}.status-badge--dot .status-badge-item{gap:var(--size-2-2)}.status-badge-dot{width:8px;height:8px;border-radius:50%;background:var(--status-accent, var(--interactive-accent));box-shadow:0 0 0 1px var(--background-primary)}.status-badge--empty{min-width:32px;justify-content:center}.status-badge-item{display:flex;align-items:center;gap:var(--size-2-1);position:relative;z-index:1}.status-badge-icon{font-size:var(--font-ui-small)}.status-badge-text{font-weight:var(--font-medium);font-size:var(--font-ui-small)}.status-badge-empty{display:inline-block;min-width:var(--size-3-2);height:var(--size-3-2)}.template-status-chip{display:inline-flex;align-items:center;gap:var(--size-2-1);padding:var(--size-2-1) var(--size-2-3);background:var(--background-secondary);border:1px solid var(--background-modifier-border);border-radius:var(--radius-m);font-size:var(--font-ui-smaller);cursor:default;transition:background var(--anim-duration-fast) ease}.template-status-chip[data-clickable=true]{cursor:pointer}.template-status-chip[data-clickable=true]:hover{background:var(--background-modifier-hover)}.template-status-color-dot{width:8px;height:8px;border-radius:50%;background-color:var(--dot-color)}.template-status-chip__label{display:inline-flex;align-items:center;gap:var(--size-2-1)}.template-status-chip__icon{display:inline-flex;font-size:1em}.lucide-icon-picker{position:relative;display:flex;flex-direction:column;gap:var(--size-2-1)}.lucide-icon-picker__text-input{max-width:240px}.lucide-icon-picker__row{display:flex;gap:var(--size-2-1);align-items:center}.lucide-icon-picker__modal-button{display:inline-flex;align-items:center;gap:var(--size-2-1);border:1px solid var(--background-modifier-border);border-radius:var(--radius-m);padding:var(--size-2-1) var(--size-4-1);background:var(--background-secondary);cursor:pointer;transition:border var(--anim-duration-fast) ease,background var(--anim-duration-fast) ease;min-width:220px;justify-content:space-between}.lucide-icon-picker__modal-button:hover{border-color:var(--interactive-accent)}.lucide-icon-picker__preview{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px}.lucide-icon-picker__label{flex:1;text-align:left;font-size:var(--font-ui-smaller);color:var(--text-muted)}.lucide-icon-picker__clear-trigger{background:transparent;border:none;color:var(--text-muted);font-size:var(--font-ui-smaller);cursor:pointer;padding:var(--size-2-1) var(--size-2-2)}.lucide-icon-picker__clear-trigger:hover{color:var(--text-normal);text-decoration:underline}.lucide-icon-modal-wrapper{padding:var(--size-4-2)}.lucide-icon-modal{display:flex;flex-direction:column;gap:var(--size-2-1)}.lucide-icon-modal__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--size-2-2)}.lucide-icon-modal__count{margin:0;font-size:var(--font-ui-smaller);color:var(--text-muted)}.lucide-icon-modal__close{display:inline-flex;align-items:center;justify-content:center}.lucide-icon-modal__search{width:100%}.lucide-icon-modal__toggle{display:inline-flex;align-items:center;gap:var(--size-2-1);font-size:var(--font-ui-smaller);color:var(--text-muted)}.lucide-icon-modal__list{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--size-2-1);max-height:360px;overflow-y:auto;padding-right:var(--size-2-1)}.lucide-icon-modal__list--icons-only{grid-template-columns:repeat(auto-fill,minmax(70px,1fr))}.lucide-icon-modal__option{display:flex;align-items:center;gap:var(--size-2-1);padding:var(--size-2-1);border-radius:var(--radius-s);border:1px solid var(--background-modifier-border);background:var(--background-secondary);cursor:pointer;font-size:var(--font-ui-smaller);justify-content:flex-start}.lucide-icon-modal__option:hover{background:var(--background-modifier-hover)}.lucide-icon-modal__option--selected{border-color:var(--interactive-accent);background:var(--background-modifier-success)}.lucide-icon-modal__option--compact{justify-content:center}.lucide-icon-modal__option--compact span{display:none}.lucide-icon-modal__empty{grid-column:1 / -1;text-align:center;font-size:var(--font-ui-smaller);color:var(--text-muted);padding:var(--size-4-2)}.icon-selection-field{display:flex;flex-wrap:wrap;gap:var(--size-4-2)}.icon-selection-field__column{flex:1;min-width:220px}.icon-selection-field__label{display:block;font-size:var(--font-ui-smaller);font-weight:var(--font-medium);color:var(--text-muted);margin-bottom:var(--size-2-1)}.icon-selection-field__emoji-input{max-width:260px}.icon-selection-field__hint{margin-top:var(--size-2-1);font-size:var(--font-ui-smaller);color:var(--text-muted)}.status-icon{display:inline-flex;align-items:center;justify-content:center;line-height:1}.obsidian-icon{display:inline-flex;align-items:center;justify-content:center}.obsidian-icon svg{width:100%;height:100%}.note-status-editor-toolbar-badge{display:inline-flex;align-items:center;margin:0 var(--size-2-1)}.note-status-editor-toolbar-badge--hidden{display:none}.editor-toolbar-button__icon{font-size:16px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);width:18px;height:18px;line-height:1}.editor-toolbar-button__icon--has-status{color:var(--interactive-accent)}.editor-toolbar-button__icon-container{position:relative;display:flex;align-items:center;justify-content:center}.editor-toolbar-button__counter{position:absolute;top:-4px;right:-6px;min-width:12px;height:12px;padding:0 2px;background:var(--interactive-accent);color:var(--text-on-accent);font-size:8px;font-weight:var(--font-semibold);border-radius:6px;display:flex;align-items:center;justify-content:center;line-height:1;border:1px solid var(--background-primary)}.status-mapping-list{display:flex;flex-direction:column;gap:var(--size-4-2);width:100%}.status-mapping-row{border:1px solid var(--background-modifier-border);border-radius:var(--radius-m);padding:var(--size-4-3);background:var(--background-primary-alt);display:flex;flex-direction:column;gap:var(--size-2-2)}.status-mapping-empty{padding:var(--size-4-3);text-align:center;color:var(--text-muted);font-style:italic;border:1px dashed var(--background-modifier-border);border-radius:var(--radius-m)}.status-mapping-row__fields{display:flex;flex-wrap:wrap;gap:var(--size-4-2);width:100%}.status-mapping-field{display:flex;flex-direction:column;gap:var(--size-2-1);flex:1 1 180px}.status-mapping-field label{font-size:var(--font-ui-smaller);color:var(--text-muted)}.status-mapping-field small{color:var(--text-faint)}.status-mapping-field select,.status-mapping-field input{width:100%}.status-mapping-row__actions{display:flex;justify-content:flex-end}.status-mapping-remove-btn{background:var(--background-modifier-error);color:var(--text-on-accent);border:none;border-radius:var(--radius-s);padding:4px 10px;cursor:pointer}.status-mapping-remove-btn:hover{opacity:.9}.status-mapping-add-btn{align-self:flex-start;padding:var(--size-2-2) var(--size-4-2);border-radius:var(--radius-s);border:1px solid var(--background-modifier-border);background:var(--interactive-normal);cursor:pointer}.status-mapping-add-btn:hover{background:var(--interactive-hover)}.note-status-input{width:100%;border:1px solid var(--background-modifier-border);border-radius:var(--radius-s);background:var(--background-primary);color:var(--text-normal);font-size:var(--font-ui-small);padding:var(--size-2-2) var(--size-2-3);transition:border-color var(--anim-duration-fast) ease,box-shadow var(--anim-duration-fast) ease}.note-status-input:focus{outline:none;border-color:var(--interactive-accent);box-shadow:0 0 0 2px var(--background-modifier-accent)}.note-status-input--search{padding-left:var(--size-4-1)}.note-status-input--color{width:36px;height:32px;padding:var(--size-2-1);cursor:pointer}.note-status-input--color::-webkit-color-swatch{border:none;border-radius:var(--radius-s)}.note-status-input--color::-webkit-color-swatch-wrapper{padding:0}.note-status-input:disabled{opacity:.65;cursor:not-allowed}.note-status-options{max-height:300px;overflow-y:auto;border:1px solid var(--background-modifier-border);border-radius:var(--radius-s);background:var(--background-primary);box-shadow:var(--shadow-xs)}.note-status-options::-webkit-scrollbar{width:var(--scrollbar-width)}.note-status-options::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb-bg);border-radius:var(--radius-s)}.note-status-option{align-items:stretch}.note-status-option .selectable-list-item-icon{display:flex;align-items:center;justify-content:center}.note-status-option__icon-wrapper{display:inline-flex;align-items:center;justify-content:center;padding:var(--size-2-1);border-radius:var(--radius-m);border:1px solid var(--background-modifier-border);background:var(--background-secondary);min-width:36px;transition:border-color var(--anim-duration-fast) ease,background var(--anim-duration-fast) ease}.note-status-option:hover .note-status-option__icon-wrapper,.note-status-option[data-selected=true] .note-status-option__icon-wrapper{border-color:var(--interactive-accent);background:var(--background-modifier-hover)}.note-status-option__text{display:flex;flex-direction:column;gap:2px}.note-status-option__name{font-weight:var(--font-medium);color:var(--text-normal)}.note-status-option__description{font-size:var(--font-ui-smaller);color:var(--text-muted)}.note-status-chips{display:flex;flex-wrap:wrap;gap:var(--size-2-2);min-height:32px;align-items:center;padding:var(--size-2-1) 0}.status-selector-empty{padding:var(--size-4-2);text-align:center;color:var(--text-muted);font-style:italic;border:1px dashed var(--background-modifier-border);border-radius:var(--radius-m);background:var(--background-primary-alt)}.selectable-list-item{display:flex;align-items:center;gap:var(--size-4-2);padding:var(--size-2-3) var(--size-4-2);cursor:pointer;border-bottom:1px solid var(--background-modifier-border);transition:background var(--anim-duration-fast) ease}.selectable-list-item:hover{background:var(--background-modifier-hover)}.selectable-list-item[data-focused=true]{outline:2px solid var(--interactive-accent);outline-offset:-2px}.selectable-list-item[data-selected=true]{background:var(--background-modifier-hover)}.selectable-list-item-icon{font-size:16px;min-width:20px}.selectable-list-item-content{flex:1;font-size:var(--font-ui-small)}.selectable-list-item-check{color:var(--interactive-accent);display:flex;align-items:center}.status-selector-group{display:flex;flex-direction:column;gap:var(--size-4-2);outline:none}.status-selector-group:focus-visible{outline:2px solid var(--background-modifier-border-hover);outline-offset:4px}.note-status-template-tabs{display:inline-flex;align-items:center;gap:var(--size-2-1);padding:var(--size-2-2);border:1px solid var(--background-modifier-border);border-radius:var(--radius-m);background:var(--background-secondary);margin-bottom:var(--size-2-2)}.note-status-template-tab{border:none;background:transparent;color:var(--text-muted);padding:var(--size-2-2) var(--size-3-1);border-radius:var(--radius-s);cursor:pointer;transition:background var(--anim-duration-fast) ease,color var(--anim-duration-fast) ease,box-shadow var(--anim-duration-fast) ease}.note-status-template-tab:not(.is-active):hover{background:var(--background-modifier-hover);color:var(--text-normal)}.note-status-template-tab.is-active{background:var(--interactive-accent);color:var(--text-on-accent);box-shadow:0 0 0 1px var(--background-modifier-border)}.note-status-template-tab:focus-visible{outline:2px solid var(--background-modifier-border)} diff --git a/styles/components/settings.css b/styles/components/settings.css index 9ae25d0..71f687a 100644 --- a/styles/components/settings.css +++ b/styles/components/settings.css @@ -4,6 +4,81 @@ /* Settings use Obsidian's built-in classes mostly */ +.note-status-settings__intro { + background: var(--background-secondary); + border: 1px solid var(--background-modifier-border); + border-radius: var(--radius-m); + padding: var(--size-4-3); + margin-bottom: var(--size-4-3); + display: flex; + flex-direction: column; + gap: var(--size-4-2); +} + +.note-status-settings__description { + margin: 0; + color: var(--text-normal); + line-height: 1.5; +} + +.note-status-settings__support { + display: flex; + flex-wrap: wrap; + gap: var(--size-4-2); +} + +.note-status-settings__badge { + padding: 0; + border: none; + background: transparent; +} + +.note-status-settings__badge img { + display: block; + height: 32px; +} + +.note-status-settings__badge:hover { + background: transparent; + border-color: transparent; + transform: translateY(-1px); +} + +.note-status-settings__badge:focus-visible { + outline: 2px solid var(--interactive-accent); + outline-offset: 2px; + border-radius: var(--radius-s); +} + +.note-status-settings__support a:not(.note-status-settings__badge) { + display: inline-flex; + align-items: center; + justify-content: center; + gap: var(--size-2-2); + padding: var(--size-2-3) var(--size-4-2); + border-radius: var(--radius-s); + border: 1px solid var(--background-modifier-border); + text-decoration: none; + color: var(--text-normal); + background: var(--background-primary); + transition: + background var(--anim-duration-fast) ease, + border-color var(--anim-duration-fast) ease, + transform var(--anim-duration-fast) ease; +} + +.note-status-settings__support a:not(.note-status-settings__badge):hover { + background: var(--background-modifier-hover); + border-color: var(--interactive-accent); + transform: translateY(-1px); +} + +.note-status-settings__support + a:not(.note-status-settings__badge):focus-visible { + outline: 2px solid var(--interactive-accent); + outline-offset: 2px; +} + .note-status-section { border: 1px solid var(--background-modifier-border); border-radius: var(--radius-m);