canonrs-server 0.1.0

CanonRS server-side rendering support
/* =============================================================================
   TABLE - Family F Data tokens compliant
   State via data-rs-state — zero pseudo-class state selectors
   ============================================================================= */

[data-rs-table-wrapper] {
  width: 100%;
  overflow-x: auto;
}

[data-rs-table] {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
}

[data-rs-table-header] {
  background: var(--table-header-bg);
  border-bottom: var(--table-border-width) solid var(--table-border-color);
}

[data-rs-table-row] {
  height: var(--table-row-height);
  border-bottom: var(--table-border-width) solid var(--table-border-color);
  transition:
    background var(--table-row-transition-duration) var(--table-row-transition-ease),
    color var(--table-row-transition-duration) var(--table-row-transition-ease);
}

[data-rs-table-row][data-rs-state~="hover"] {
  background: var(--table-row-bg-hover);
}

[data-rs-table-row][data-rs-state~="selected"] {
  background: var(--table-row-bg-selected);
}

[data-rs-table-head] {
  height: var(--table-header-height);
  padding-inline: var(--table-cell-padding-x);
  padding-block: var(--table-cell-padding-y);
  text-align: left;
  font-size: var(--table-header-font-size);
  font-weight: var(--table-header-font-weight);
  color: var(--table-header-fg);
  cursor: pointer;
  user-select: none;
}

[data-rs-table-head][data-rs-sort="ascending"]::after {
  content: "";
}

[data-rs-table-head][data-rs-sort="descending"]::after {
  content: "";
}

[data-rs-table-cell] {
  padding-inline: var(--table-cell-padding-x);
  padding-block: var(--table-cell-padding-y);
  font-size: var(--table-cell-font-size);
  font-weight: var(--font-weight-normal);
  color: var(--table-cell-fg);
}

[data-rs-table-caption] {
  padding-block: var(--table-caption-padding-y);
  font-size: var(--table-caption-font-size);
  color: var(--table-caption-fg);
  text-align: left;
}

[data-rs-table][data-rs-striped] [data-rs-table-row][data-rs-state~="odd"] {
  background: var(--table-row-bg-striped);
}

[data-rs-table-row][data-rs-action="navigate"] {
  cursor: pointer;
}

[data-rs-table-cell][data-rs-copyable] {
  cursor: copy;
  position: relative;
  transition: background var(--table-row-transition-duration) var(--table-row-transition-ease);
}

[data-rs-table-cell][data-rs-copyable][data-rs-state~="hover"] {
  background: var(--table-row-bg-hover);
}

[data-rs-table-cell][data-rs-state~="copied"]::after {
  content: attr(data-rs-copy-label);
  position: absolute;
  top: 50%;
  right: var(--space-sm);
  transform: translateY(-50%);
  background: var(--theme-action-accent-bg);
  color: var(--theme-action-accent-fg);
  font-size: var(--font-size-xs);
  padding: var(--space-2xs) var(--space-xs);
  border-radius: var(--radius-xs);
  pointer-events: none;
}

[data-rs-table-cell][data-rs-truncate] {
  max-width: var(--layout-width-xs);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  transition:
    max-width var(--table-row-transition-duration) var(--motion-ease-standard),
    white-space var(--table-row-transition-duration) var(--motion-ease-standard);
}

[data-rs-table-cell][data-rs-truncate][data-rs-state~="hover"] {
  max-width: none;
  overflow: visible;
  text-overflow: unset;
  white-space: normal;
  word-break: break-all;
}

[data-rs-table][data-rs-state~="loading"] {
  opacity: var(--opacity-disabled);
  pointer-events: none;
}

[data-rs-table][data-rs-state~="error"] {
  outline: var(--table-border-width) solid var(--theme-state-error-bg);
}

[data-rs-table][data-rs-state~="empty"] [data-rs-table-body] {
  opacity: var(--opacity-disabled);
}