/* Collapsible mapping. ui-viz has no Collapsible spec, so these are current HM values built from the HM Semantic tokens. Collapsible is one independent disclosure: a trigger and its content, with no divider system. A plain trigger (no asChild) gets a text-button look; with asChild the child (for example an HM Button) keeps its own style. Radix attributes drive the states. No --hm-accordion-* token is referenced. */ :root, [data-hm-theme] { --hm-collapsible-trigger-text: var(--hm-sem-fg-primary); --hm-collapsible-trigger-gap: 8px; --hm-collapsible-trigger-font-size: 14px; --hm-collapsible-trigger-line-height: 20px; --hm-collapsible-trigger-font-weight: 500; --hm-collapsible-icon-size: 16px; --hm-collapsible-icon-color: var(--hm-sem-fg-secondary); --hm-collapsible-content-gap: 8px; --hm-collapsible-content-text: var(--hm-sem-fg-primary); --hm-collapsible-content-font-size: 14px; --hm-collapsible-content-line-height: 20px; /* Current HM value for this component only; not a global Disabled rule. */ --hm-collapsible-disabled-opacity: 0.6; } [data-slot="collapsible-trigger"] { display: inline-flex; align-items: center; gap: var(--hm-collapsible-trigger-gap); padding: 0; border: 0; background: transparent; color: var(--hm-collapsible-trigger-text); font-size: var(--hm-collapsible-trigger-font-size); line-height: var(--hm-collapsible-trigger-line-height); font-weight: var(--hm-collapsible-trigger-font-weight); text-align: left; cursor: pointer; outline: none; } [data-slot="collapsible-trigger"]:hover:not(:disabled) { text-decoration: underline; text-underline-offset: 4px; } [data-slot="collapsible-trigger"]:focus-visible { box-shadow: 0 0 0 3px color-mix(in srgb, var(--ring) 50%, transparent); } [data-slot="collapsible-trigger"]:disabled { opacity: var(--hm-collapsible-disabled-opacity); cursor: not-allowed; } /* An icon placed directly in a plain trigger follows the open state. */ [data-slot="collapsible-trigger"] > svg { width: var(--hm-collapsible-icon-size); height: var(--hm-collapsible-icon-size); color: var(--hm-collapsible-icon-color); flex-shrink: 0; } [data-slot="collapsible-trigger"][data-state="open"] > svg { transform: rotate(180deg); } [data-slot="collapsible-content"] { padding-top: var(--hm-collapsible-content-gap); color: var(--hm-collapsible-content-text); font-size: var(--hm-collapsible-content-font-size); line-height: var(--hm-collapsible-content-line-height); overflow-wrap: anywhere; }