- Added methods to manage search source definitions and their enabled state via localStorage
- Added UI toggles in the options dialog for each search source
- Updated CSS for source icons in the options
- Refactored source selection logic to use enabled sources
- Ensured at least one source remains enabled (defaults to local)
- Add ml-tab-label span elements for better tab label structure
- Update padding and hover/focus states for consistent styling
- Remove isolation property and simplify transition handling
- Set opacity: 0 for ::after pseudo-element by default
- Active tab: use CSS mask for corner effects instead of box-shadow
- Hover tab: add pseudo-element overlay with proper z-index layering
- Increase tab hover background opacity from 0.045 to 0.075
- Add --ml-tab-corner-size variable for corner radius control
- Fix tab separator color to use active bg color instead of inset shadow
- Update header border in linker-shell.css for better contrast
- Replace unicode text ('⛶', '×') with SVG icons for fullscreen/close buttons
- Add new SVG icons (windowMaximize, windowRestore, x) to icon_utils.js
- Update CSS selectors to scope window button styles under #model-linker-modal
- Remove border/box-shadow from buttons, add hover states
- Increase button size to 46x40px with full height
- Add aria-label attributes for accessibility
- Adjust dialog controls layout with stretch alignment
- Move tab elements before dialog controls in DOM order
- Update tab styling: smaller min-height, rounded corners, subtle backgrounds
- Add ml-dialog-brand and ml-dialog-controls flex classes
- Adjust active tab border and background opacity
- Add new utility classes: ml-is-hidden, ml-is-visible, ml-is-inline-flex
- Add ml-is-muted and ml-is-error for text color states
- Add ml-is-success-action for success button styling
- Add ml-icon-img for icon vertical alignment
- Replace style.display = 'block/none' with classList toggles in linker.js
- Update getIconHtml to use ml-icon-img class instead of inline styles
- Add --ml-missing-control-* variables for background, border, focus states
- Add --ml-missing-chip-* variables for chip components
- Add --ml-missing-icon-* and dimension variables
- Update linker-main.css to use new variables with fallbacks
- Replace radial gradient background with solid color for missing list pane
- Use CSS variables for missing surface and text colors
- Refine chip and button styles with consistent border-radius and shadows
- Update hover states with subtle transforms and opacity adjustments
- Improve icon sizing and alignment in buttons
- Add getMissingNodeDisplay() helper to centralize node label formatting
- Make missing list rows keyboard-accessible (Enter/Space selection)
- Add clickable locate buttons for missing nodes to center in graph
- Style focus states for accessibility (outline, box-shadow)
- Add refreshCw icon to icon_utils.js for combo refresh buttons
- Refactor row HTML structure for better semantics
Remove backgrounds, borders, and border-radius from columns and download sections.
Adjust spacing and add borders between columns for a cleaner layout.
- Add CSS for .ml-local-alternatives-toggle component with hover/focus states
- Update missing browser button styles to use compact link button
- Adjust disabled footer button opacity for better visibility
- Replace alternatives div with toggle button in linker.js
- Enhance MLToggleHidden to support aria-expanded and dynamic label/state updates
- Implement CSS styles for missing models browser interface (.ml-missing-browser and related classes)
- Add JavaScript methods for handling missing models:
* getMissingModelKey, getMissingFilename, getBestLocalMatch
* getMissingModelSummaryStats, getMissingSourceStatus
* renderMissingSourcesSummary, hasRenderableSearchState
- Replace missing models rendering logic with new implementation
- Support for exact/partial match statistics and source status indicators
- Remove transform transitions and animations from action buttons
- Restyle buttons with consistent sizing, colors, and hover states
- Convert anchor tags to buttons with proper type attributes
- Add click handlers for opening links in new tabs with security attributes
- Clear subfolder list when repopulating options
- Replace HTML <select> elements with custom div-based dropdown components
- Add CSS variable --ml-download-control-height for consistent control sizing
- Update search source and category selectors to use custom styled dropdowns
- Improve responsive layout with grid template columns and media queries
- Add keyboard and mouse event handling for custom dropdowns
- Ensure consistent styling across all form controls
Add helper methods to normalize and split model and version names, render versioned model names in search results, cards, loading states and CivitAI links, include version metadata on rows, and add CSS styling for model version text. Improves display clarity when models include version names and avoids duplicated filenames.
Add estimated progress timers and helpers to show smoother search progress across sources. Track per-run timers, compute eased percentages, update progress state on completion/error, and adjust CSS for running state and transitions.
Improve UX for model relinking: add context menu actions (Show Info, Open on CivitAI, Open containing folder), sanitize CivitAI descriptions, persist info dialog size, and adjust CSS spacing and visibility.
Remove ~8000 lines of inline JavaScript styles from linker.js and organize
them into two focused stylesheets:
- linker-shell.css: modal shell, backdrop, window controls, layout structure
- linker-main.css: main content area (cards, buttons, forms, dialogs, tabs)
Simplify and clean up css-variables.css variable definitions.
Update css-loader.js to load both new stylesheet files.
Significantly improves code maintainability and separation of concerns.