test(web): count the preset icon and keep the access chevron aria-hidden

This commit is contained in:
Yif
2026-08-10 22:54:19 +08:00
parent 021ecb53c5
commit eb298a439f
4 changed files with 10 additions and 7 deletions
@@ -51,6 +51,9 @@
} }
.chevron { .chevron {
/* inline-flex, not inline: an inline seat reserves baseline descent under
the svg and floats the glyph off-center in the 28px trigger. */
display: inline-flex;
flex: 0 0 auto; flex: 0 0 auto;
color: var(--dsw-alias-label-caption); color: var(--dsw-alias-label-caption);
transition: transform 120ms ease; transition: transform 120ms ease;
@@ -147,10 +147,10 @@ export function PermissionSelect({ value, locked, command, t }: PermissionSelect
<span className={css.triggerIcon} aria-hidden>{permissionGlyph(currentValue)}</span> <span className={css.triggerIcon} aria-hidden>{permissionGlyph(currentValue)}</span>
)} )}
<span className={css.triggerLabel}>{current === undefined ? displayName(currentValue) : optionLabel(current)}</span> <span className={css.triggerLabel}>{current === undefined ? displayName(currentValue) : optionLabel(current)}</span>
{/* Same glyph + open rotation as the sibling ModelSelect trigger; {/* Same glyph + open rotation as the sibling ModelSelect trigger. */}
class on the svg itself — an inline wrapper span leaves <span className={clsx(css.chevron, open && css.chevronOpen)} aria-hidden>
baseline descent under the icon and floats it off-center. */} <IconChevronDownOutline14 />
<IconChevronDownOutline14 className={clsx(css.chevron, open && css.chevronOpen)} /> </span>
</button> </button>
} }
/> />
@@ -349,7 +349,7 @@ export const IconThinkOutline16 = ({ size = 16, className }: IconProps) => (
</svg> </svg>
) )
/** ic_ds_agent_preset_outline_16. The three node interiors knock out to transparency via mask so the glyph sits on any background. */ /** ic_ds_agent_preset_outline_16 (figma extract): node interiors knock out to transparency via mask, so the glyph sits on any fill. */
export const IconAgentPresetOutline16 = ({ size = 16, className }: IconProps) => ( export const IconAgentPresetOutline16 = ({ size = 16, className }: IconProps) => (
<svg width={size} height={size} className={className} viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> <svg width={size} height={size} className={className} viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<mask id="mask0_agent_preset_16" maskUnits="userSpaceOnUse" x="0" y="0" width="16" height="16"> <mask id="mask0_agent_preset_16" maskUnits="userSpaceOnUse" x="0" y="0" width="16" height="16">
@@ -16,8 +16,8 @@ const icons = Object.fromEntries(
const iconNames = Object.keys(icons) const iconNames = Object.keys(icons)
describe('ic_ds_ icon set', () => { describe('ic_ds_ icon set', () => {
it('exports the full icon set (46 deepsuite + 18 figma extracts + three product glyphs outside those sets)', () => { it('exports the full icon set (46 deepsuite + 19 figma extracts + three product glyphs outside those sets)', () => {
expect(iconNames.length).toBe(67) expect(iconNames.length).toBe(68)
}) })
it.each(iconNames)('%s renders an svg with currentColor fills and no hardcoded palette', (name) => { it.each(iconNames)('%s renders an svg with currentColor fills and no hardcoded palette', (name) => {