## [Unreleased]

================================================================================
Vamoose's Dye Studio - Changelog
================================================================================


Version 1.3.0 (March 2026)
--------------------------------------------------------------------------------

OWNED FILTER:
- New "Owned" checkbox in the title bar (bag icon + checkbox) filters the dye
  list to only show dyes you currently have in your inventory
- Checks bags, bank, reagent bank, and Warband Bank for full coverage
- When active, each dye row shows your owned quantity in green (e.g. x9)
  instead of the shopping cart count
- Works across all browse modes (Category, Color, Theme, Dyes, Custom)
- Filter state persists across sessions
- Combines naturally with search text filtering

FIXED:
- Minimap button no longer overlaps the minimap on non-default minimap sizes
  (now uses dynamic radius based on actual minimap dimensions)


Version 1.2.3 (February 2026)
--------------------------------------------------------------------------------

HERBS TAB:
- Herb tooltips and detail strip now show "Also makes: X pigments" when an herb
  is used across multiple pigment recipes, reducing confusion about which dyes
  a given herb can produce
- Category headers updated to "Salvage in BLACK pigment recipe for BLACK dye"
  for clarity on how herbs map to dye colors
- Header text uses sentence case with bright color names for readability

CUSTOM PALETTES:
- Fixed detail strip overwriting management buttons when clicking a dye while
  editing a custom palette; palette info and buttons now stay visible


Version 1.2.2 (February 2026)
--------------------------------------------------------------------------------

SHOPPING CART:
- Left-click dyes or herbs to add to cart, right-click to remove
- Cart quantities persist across sessions
- Multiplier button (x1/x10/x100/x250) for bulk herb additions
- "Send to AH" exports cart to Auctionator shopping list with quantities
- "Clear Cart" wipes both dye and herb carts
- Shift-click dye or herb rows to search AH

LIVE DYEING:
- Recent dyes strip: last 10 applied dyes as clickable swatches below the
  action bar for quick re-selection
- Herbs tab disabled during live mode (auto-switches to Color)
- Custom palette management (+ New, Import) hidden in live mode
- Cart buttons hidden during live mode

HERB DETAIL:
- Compact herb detail panel (68px, matching dye detail)
- Herb info condensed to 3 lines (name/expansion/pigment, stock/price,
  cost-per-dye/available)
- Herb rows reduced to 21px height for denser browsing
- Auto-preview on hover for both dye and herb rows (suppressed in live mode)

UI:
- Added Housing category tag in addon list
- Bottom padding on scroll content (last row no longer clipped)

================================================================================

Version 1.2.1 (February 2026)
--------------------------------------------------------------------------------

VISUAL POLISH:
- FilterChip: matte pill texture replacing flat white backgrounds
- DyeRow: 15% white gradient gloss overlay for satin sheen depth effect
- Panel background: abstract wave texture with dark cool grey tint
- DetailStrip: watercolor paper texture with inner shadow (recessed tray look)
- StyleScrollBar: strip Blizzard gold artwork, slim 4px teal thumb
- Close button: XMarksTheSpot atlas icon replacing FontString "X"
- HerbRow: secondary text bumped from 11px to 12px
- Textures folder cleanup: removed backups, downsized panel_bg (84% folder
  size reduction)

================================================================================

Version 1.2.0 (February 2026)
--------------------------------------------------------------------------------

UI REDESIGN:
- Complete "Color Ribbon" layout: wide 36px dye rows (65% swatch / 35% text)
- Borderless flat design replacing BackdropTemplate borders throughout
- Sidebar replaced with horizontal tab bar + scrollable filter chip row
- Category headers as full-width muted separator bars with accent line
- Selection shown with 2px left accent bar instead of full-row highlight
- Dynamic detail strip height (compact 52px for dyes, expanded for
  herbs/custom themes)
- Custom minimap icon

LIVE DYEING:
- 3D decor model preview in detail strip (rotate/zoom via
  PanningModelSceneMixin) when dyeing placed furniture
- Right-click dye slots to clear to "Default (undyed)"
- Apply button disabled with tooltip when using unowned dyes
- Swatch updates to show active slot's dye color
- Gold border on preview swatch matching slot button style

CODE:
- File split: monolithic VDS_DyePanel.lua broken into focused modules
  (Renderer, Filters, Detail, LivePreview)
- New UI factory methods: TabButton, FilterChip, DyeRow, HerbRow,
  CategoryHeader, DetailStrip, SearchBox, ProgressBar

OPTIMIZATION PASS:
- DyeRenderer: O(1) pool acquisition (free-list index vs linear scan),
  SetScript moved to pool creation (no closures in render loop),
  localized FLOATING_WIDGET constants, eliminated double search pass,
  deduplicated pending herb item loads
- DyeData: removed 7 dead public functions, totalOwnedCount O(1) cache,
  Auctionator loaded flag cached, O(1) custom theme lookup (hash table),
  hoisted sort comparators to module level, cached GetCraftingGroupRGB
- LivePreview: WireActionBar guard (wire once), merged 3 slot loops
  into 1, slot button scripts cached on creation, apply button state
  guard (only update when lock state changes), deferred callback guards
- DyeDetail: herb sort OnClick at module level, herbToPigment O(1)
  reverse lookup, palette swatch scripts cached on creation, math.floor
  in hex color formatting
- Framework: StyleScrollBar refactored (no temp tables for unpack),
  HookScript guard prevents duplicate hooks, removed unused params
- SchemeConstants: GetScheme caches HDG function reference (one-time
  lookup), removed dead font entries and NON_LATIN_LOCALES table
- Main: recursive MergeDefaults for SavedVariables init, fixed minimap
  toggle polarity bug, removed dead HDG bridge code

================================================================================

Version 1.1.0 (February 2026)
--------------------------------------------------------------------------------

RENAME:
- Addon folder renamed from VamooseDyeStudio to VamoosesDyeStudio
- Aligns with other addons (VamoosesEndeavors, VamoosesCompanion)
- Existing settings (VDS_DB) are preserved -- no data loss
- Users updating via CurseForge/Wago: automatic, no action needed
- Manual installs: delete the old VamooseDyeStudio folder first

================================================================================

Version 1.0.0 (February 2026)
--------------------------------------------------------------------------------

INITIAL RELEASE:
- Standalone dye browser for WoW Housing -- no other addons required
- Extracted and expanded from Housing Decor Guide's dye system

BROWSE MODES:
- Category -- Blizzard's General / Wood / Metal groupings
- Color Group -- 12 hue-based families (Red, Orange, Yellow, Green, Teal,
  Blue, Purple, Pink, Brown, Grey, Black, White)
- Theme -- 23 curated palettes (Alliance, Horde, class themes, and more)
- Dyes -- Grouped by pigment color with AH pricing (requires Auctionator)
- Herbs -- Herb inventory by pigment group with stock counts, expansion
  filters, AH pricing, and sort by expansion/price
- Custom -- Create your own palettes (up to 20 palettes, 20 dyes each)

DYE BROWSER:
- Color swatches with ownership indicators (gold border = owned)
- Stock counts color-coded: 0 = dim dash, 1-2 = gold, 3+ = green
- Crafting detail panel shows pigment, herbs, and profession for each dye
- Craft cost display: cheapest herb cost per pigment
- Search bar to filter dyes by name
- Shift-click any dye or herb row to search AH
- Right-click dye rows to search via Auctionator (if installed)

HERBS MODE:
- Browse all crafting herbs grouped by pigment category
- Stock counts from bags, bank, reagent bank, and warband bank
- Expansion filter pills (Classic through Midnight)
- Sort toggle: Expansion / Price Low / Price High
- "Open Prof" button to open Alchemy/Inscription profession window
- Herb detail panel with name, expansion, stock, AH price, cost per dye

CUSTOM PALETTES:
- Create, rename, delete palettes
- Click dyes to toggle add/remove from palette
- Visual palette strip showing all dyes at a glance
- Import/Export via encoded strings (VDS: prefix)
- Total cost estimate when Auctionator data available
- Palettes persist across sessions and characters

LIVE DYEING:
- "Replace Blizzard UI" checkbox auto-opens Dye Studio when editing decor
- Click any dye for instant in-place preview
- Dye slot bar shows all slots on selected decor
- Right-click a slot to revert to original color
- Slot labels colored by stock status (teal = in stock, red = out of stock)
- Apply button with bright white text for visibility

UI:
- Minimap button with square minimap support (ElvUI, VelUI, SexyMap)
- Addon compartment integration (minimap drawer button)
- LibDataBroker support (Bazooka, Titan Panel, ChocolateBar)
- Help button with full feature guide
- Slash commands: /dyes, /vds, /dyestudio

DATA:
- 62 housing dyes with full crafting chain data
- 120 herb entries across 10 pigments (Classic through Midnight)
- All herb item IDs verified against HDG_ReagentsDB
- Color group classifications community-verified by Kiyo

================================================================================
