diff --git a/src/features/schedule/components/ScheduleLegDetails.scss b/src/features/schedule/components/ScheduleLegDetails.scss new file mode 100644 index 00000000..11a8d6f0 --- /dev/null +++ b/src/features/schedule/components/ScheduleLegDetails.scss @@ -0,0 +1,128 @@ +@use "../../../styles/colors" as colors; +@use "../../../styles/variables" as vars; +@use "../../../styles/fonts" as fonts; + +.schedule-leg-details { + background: colors.$white; + border-top: 1px solid colors.$border; + + &__header { + display: flex; + align-items: center; + justify-content: space-between; + width: 100%; + padding: vars.$space-l vars.$space-xl; + background: colors.$white; + border: none; + cursor: pointer; + min-height: 0; + + &:hover { + background: colors.$blue-extra-light; + } + } + + &__title { + color: colors.$light-gray; + font-size: fonts.$font-size-m; + font-weight: fonts.$font-regular; + } + + &__chevron { + display: inline-flex; + align-items: center; + color: colors.$blue; + transition: transform 0.2s ease; + // Expanded: arrow points up (no rotation, base SVG apex-up). + transform: rotate(0deg); + + &--collapsed { + // Collapsed: rotate 180° so apex points down, matching Angular's + // `arrow-down-icon` (non-rotated == 180deg). + transform: rotate(180deg); + } + } + + &__body { + padding: 0 vars.$space-xl vars.$space-l; + display: flex; + flex-direction: column; + } + + &__row { + display: grid; + grid-template-columns: 40px 140px 1fr; + align-items: center; + gap: vars.$space-m; + padding: vars.$space-m 0; + border-bottom: 1px dashed colors.$border; + + &:last-child { + border-bottom: none; + } + + &--meals .schedule-leg-details__label { + align-self: flex-start; + padding-top: 8px; + } + } + + &__icon { + display: inline-flex; + align-items: center; + justify-content: center; + color: colors.$blue; + // Reserve a fixed slot so the row layout isn't pushed when the + // SVGs (plane = 19×19, dining = 34×26) have different intrinsic + // sizes — gives a consistent left rail across rows. + width: 36px; + flex-shrink: 0; + } + + &__label { + color: colors.$light-gray; + font-size: fonts.$font-size-m; + } + + &__link { + color: colors.$blue; + font-size: fonts.$font-size-m; + text-decoration: underline; + + &:hover { + color: colors.$blue--hover; + } + } + + &__value { + color: colors.$text-color; + font-size: fonts.$font-size-m; + } + + &__meals { + display: flex; + align-items: flex-start; + gap: vars.$space-xl; + flex-wrap: wrap; + } + + &__meal { + display: flex; + flex-direction: column; + align-items: center; + gap: 6px; + min-width: 68px; + color: colors.$blue; + font-size: fonts.$font-size-s; + text-align: center; + } + + &__meal-icon { + width: 40px; + height: 40px; + } + + &__meal-caption { + color: colors.$blue; + } +} diff --git a/src/features/schedule/components/ScheduleLegDetails.tsx b/src/features/schedule/components/ScheduleLegDetails.tsx index 59105f46..d0ca39a3 100644 --- a/src/features/schedule/components/ScheduleLegDetails.tsx +++ b/src/features/schedule/components/ScheduleLegDetails.tsx @@ -83,12 +83,21 @@ export const ScheduleLegDetails: FC = ({ flight }) => { {aircraft && (