| <script lang="ts"> |
| import { getContext } from "svelte"; |
|
|
| import type { FullscreenState } from "@graphite/state-providers/fullscreen"; |
|
|
| import LayoutRow from "@graphite/components/layout/LayoutRow.svelte"; |
| import IconLabel from "@graphite/components/widgets/labels/IconLabel.svelte"; |
| import TextLabel from "@graphite/components/widgets/labels/TextLabel.svelte"; |
|
|
| const fullscreen = getContext<FullscreenState>("fullscreen"); |
|
|
| $: requestFullscreenHotkeys = fullscreen.keyboardLockApiSupported && !$fullscreen.keyboardLocked; |
|
|
| async function handleClick() { |
| if ($fullscreen.windowFullscreen) fullscreen.exitFullscreen(); |
| else fullscreen.enterFullscreen(); |
| } |
| </script> |
|
|
| <LayoutRow class="window-buttons-web" on:click={() => handleClick()} tooltip={($fullscreen.windowFullscreen ? "Exit" : "Enter") + " Fullscreen (F11)"}> |
| {#if requestFullscreenHotkeys} |
| <TextLabel italic={true}>Go fullscreen to access all hotkeys</TextLabel> |
| {/if} |
| <IconLabel icon={$fullscreen.windowFullscreen ? "FullscreenExit" : "FullscreenEnter"} /> |
| </LayoutRow> |
|
|
| <style lang="scss" global> |
| .window-buttons-web { |
| flex: 0 0 auto; |
| align-items: center; |
| padding: 0 8px; |
|
|
| svg { |
| fill: var(--color-e-nearwhite); |
| } |
|
|
| .text-label { |
| margin-right: 8px; |
| } |
|
|
| &:hover { |
| background: var(--color-6-lowergray); |
| color: var(--color-f-white); |
|
|
| svg { |
| fill: var(--color-f-white); |
| } |
| } |
| } |
| </style> |
|
|