/* Pagination mapping. ui-viz lists Pagination only as a component name (no spec), so these are current HM values built from the HM Semantic tokens. Links are independent anchor styles (not the Button tokens): a square page link, a padded Previous / Next link, a filled current page, and a dimmed aria-disabled link. */ :root, [data-hm-theme] { --hm-pagination-gap: 4px; --hm-pagination-height: 34px; --hm-pagination-min-width: 34px; --hm-pagination-padding-x: 12px; --hm-pagination-radius: var(--hm-radius-control-md); --hm-pagination-font-size: 14px; --hm-pagination-line-height: 20px; --hm-pagination-font-weight: 500; --hm-pagination-icon-size: 16px; --hm-pagination-text: var(--hm-sem-fg-primary); --hm-pagination-hover-background: var(--hm-sem-surface-highlight); --hm-pagination-hover-text: var(--accent-foreground); --hm-pagination-active-background: var(--hm-sem-action-primary); --hm-pagination-active-text: var(--hm-sem-on-action-primary); --hm-pagination-active-font-weight: 700; --hm-pagination-ellipsis-color: var(--hm-sem-fg-secondary); /* Current HM value for this component only; not a global Disabled rule. */ --hm-pagination-disabled-opacity: 0.6; } [data-slot="pagination-content"] { gap: var(--hm-pagination-gap); } [data-slot="pagination-link"] { box-sizing: border-box; height: var(--hm-pagination-height); min-width: var(--hm-pagination-min-width); padding: 0; border-radius: var(--hm-pagination-radius); color: var(--hm-pagination-text); font-size: var(--hm-pagination-font-size); line-height: var(--hm-pagination-line-height); font-weight: var(--hm-pagination-font-weight); text-decoration: none; outline: none; } [data-slot="pagination-link"][data-size="default"] { padding: 0 var(--hm-pagination-padding-x); } [data-slot="pagination-link"] > svg { width: var(--hm-pagination-icon-size); height: var(--hm-pagination-icon-size); flex-shrink: 0; } [data-slot="pagination-link"]:hover { background: var(--hm-pagination-hover-background); color: var(--hm-pagination-hover-text); } [data-slot="pagination-link"]:focus-visible { box-shadow: 0 0 0 3px color-mix(in srgb, var(--ring) 50%, transparent); } /* Current page: filled, stays filled on hover. */ [data-slot="pagination-link"][aria-current="page"] { background: var(--hm-pagination-active-background); color: var(--hm-pagination-active-text); font-weight: var(--hm-pagination-active-font-weight); } [data-slot="pagination-link"][aria-disabled="true"] { opacity: var(--hm-pagination-disabled-opacity); cursor: not-allowed; } [data-slot="pagination-link"][aria-disabled="true"]:hover { background: transparent; color: var(--hm-pagination-text); } [data-slot="pagination-ellipsis"] { width: var(--hm-pagination-min-width); height: var(--hm-pagination-height); color: var(--hm-pagination-ellipsis-color); } [data-slot="pagination-ellipsis"] > svg { width: var(--hm-pagination-icon-size); height: var(--hm-pagination-icon-size); }