"""Prefix-based IDs for hidden keyboard action buttons."""

# AUTOGENERATED! DO NOT EDIT! File to edit: ../../nbs/core/button_ids.ipynb.

# %% auto #0
__all__ = ['CardStackButtonIds']

# %% ../../nbs/core/button_ids.ipynb #d1000003
from dataclasses import dataclass

# %% ../../nbs/core/button_ids.ipynb #d1000005
@dataclass
class CardStackButtonIds:
    """Prefix-based IDs for hidden keyboard action buttons."""
    prefix: str  # ID prefix for this card stack instance

    # --- Navigation buttons ---

    @property
    def nav_up(self) -> str:  # Navigate to previous item
        """Navigate up button."""
        return f"{self.prefix}-btn-nav-up"

    @property
    def nav_down(self) -> str:  # Navigate to next item
        """Navigate down button."""
        return f"{self.prefix}-btn-nav-down"

    @property
    def nav_first(self) -> str:  # Navigate to first item
        """Navigate to first item button."""
        return f"{self.prefix}-btn-nav-first"

    @property
    def nav_last(self) -> str:  # Navigate to last item
        """Navigate to last item button."""
        return f"{self.prefix}-btn-nav-last"

    @property
    def nav_page_up(self) -> str:  # Page jump up
        """Page up button."""
        return f"{self.prefix}-btn-nav-page-up"

    @property
    def nav_page_down(self) -> str:  # Page jump down
        """Page down button."""
        return f"{self.prefix}-btn-nav-page-down"

    # --- Viewport control buttons ---

    @property
    def width_narrow(self) -> str:  # Decrease viewport width
        """Narrow viewport button."""
        return f"{self.prefix}-btn-width-narrow"

    @property
    def width_widen(self) -> str:  # Increase viewport width
        """Widen viewport button."""
        return f"{self.prefix}-btn-width-widen"

    @property
    def scale_decrease(self) -> str:  # Decrease content scale
        """Decrease scale button."""
        return f"{self.prefix}-btn-scale-decrease"

    @property
    def scale_increase(self) -> str:  # Increase content scale
        """Increase scale button."""
        return f"{self.prefix}-btn-scale-increase"
