@use 'iro-sass/src/index' as iro; @use '../functions' as fn; @include iro.props-namespace('bubble-group') { @include iro.props-store(( --dims: ( --spacing-x: fn.global-dim(--size --225), --spacing-y: fn.global-dim(--size --150), --compact: ( --spacing-x: fn.global-dim(--size --225), --spacing-y: fn.global-dim(--size --50), ) ) ), 'dims'); @include iro.bem-layout(iro.props-namespace()) { display: flex; align-items: flex-start; gap: fn.dim(--spacing-x); @include iro.bem-elem('avatar') { flex: 0 0 auto; } @include iro.bem-elem('content') { grid-column: content; display: flex; flex-direction: column; min-width: 0; gap: fn.dim(--spacing-y); } @include iro.bem-modifier('compact') { gap: fn.dim(--compact --spacing-x); @include iro.bem-elem('content') { gap: fn.dim(--compact --spacing-y); } @include iro.bem-modifier('left') { @include iro.bem-elem('content') { align-items: flex-start; } } @include iro.bem-modifier('right') { @include iro.bem-elem('content') { align-items: flex-end; } } } @include iro.bem-modifier('right') { flex-direction: row-reverse; } @include iro.bem-modifier('no-avatar') { @include iro.bem-elem('avatar') { display: none; } } @include iro.bem-modifier('arrow') { @include iro.bem-elem('bubble') { &::before { display: block; } @include iro.bem-sibling-elem('bubble') { &::before { display: none; } } } @include iro.bem-modifier('right') { @include iro.bem-elem('bubble') { &::before { display: none; } &::after { display: block; } @include iro.bem-sibling-elem('bubble') { &::after { display: none; } } } } } } }