diff --git a/website/src/repl/components/panel/ConsoleTab.jsx b/website/src/repl/components/panel/ConsoleTab.jsx index 02e40e48..f0fca584 100644 --- a/website/src/repl/components/panel/ConsoleTab.jsx +++ b/website/src/repl/components/panel/ConsoleTab.jsx @@ -2,7 +2,7 @@ import cx from '@src/cx.mjs'; export function ConsoleTab({ log }) { return ( -
{`███████╗████████╗██████╗ ██╗ ██╗██████╗ ███████╗██╗
██╔════╝╚══██╔══╝██╔══██╗██║ ██║██╔══██╗██╔════╝██║
███████╗ ██║ ██████╔╝██║ ██║██║ ██║█████╗ ██║
diff --git a/website/src/repl/components/panel/Panel.jsx b/website/src/repl/components/panel/Panel.jsx
index fea52786..bf67f725 100644
--- a/website/src/repl/components/panel/Panel.jsx
+++ b/website/src/repl/components/panel/Panel.jsx
@@ -3,7 +3,7 @@ import useEvent from '@src/useEvent.mjs';
import cx from '@src/cx.mjs';
import { nanoid } from 'nanoid';
import { useCallback, useState } from 'react';
-import { setActiveFooter as setTab, useSettings } from '../../../settings.mjs';
+import { setPanelPinned, setActiveFooter as setTab, useSettings } from '../../../settings.mjs';
import { ConsoleTab } from './ConsoleTab';
import { FilesTab } from './FilesTab';
import { Reference } from './Reference';
@@ -16,50 +16,56 @@ import { ChevronLeftIcon } from '@heroicons/react/16/solid';
const TAURI = typeof window !== 'undefined' && window.__TAURI__;
export function HorizontalPanel({ context }) {
- const [pinned, setPinned] = useState(true);
const settings = useSettings();
- const tab = settings.activeFooter;
+ const { isPanelPinned: pinned, activeFooter: tab } = settings;
+ const [isHovered, setIsHovered] = useState(false);
+ const showContent = isHovered || pinned;
+
return (
setIsHovered(true)}
+ onMouseLeave={(x) => setIsHovered(false)}
className={cx(
- 'hover:max-h-[360px] hover:min-h-[360px] flex flex-col overflow-hidden ',
- pinned ? `min-h-[360px] max-h-[360px]` : 'min-h-8 max-h-8',
+ 'hover:max-h-[360px] hover:min-h-[360px] justify-between flex flex-col',
+ pinned ? `min-h-[360px] max-h-[360px]` : 'min-h-10 max-h-10',
)}
>
-
-
-
-
-
+ {showContent && (
+
+
+
+ )}
+
-
+
);
}
export function VerticalPanel({ context }) {
- const [pinned, setPinned] = useState(true);
const settings = useSettings();
- const tab = settings.activeFooter;
+ const { isPanelPinned: pinned, activeFooter: tab } = settings;
+ const [isHovered, setIsHovered] = useState(false);
+ const showContent = isHovered || pinned;
+
return (
setIsHovered(true)}
+ onMouseLeave={(x) => setIsHovered(false)}
+ className={cx('hover:w-[600px]', pinned ? `w-[600px]` : 'w-8')}
>
-
+
-
-
-
-
-
+
+ {showContent && (
+
+
+
+ )}
-
@@ -71,17 +77,21 @@ const tabNames = {
welcome: 'intro',
patterns: 'patterns',
sounds: 'sounds',
- console: 'console',
reference: 'reference',
+ console: 'console',
settings: 'settings',
};
if (TAURI) {
tabNames.files = 'files';
}
-function PanelNav({ children, className }) {
+function PanelNav({ children, className, ...props }) {
return (
-
)}
-
+
{patternFilter === patternFilterName.user && (
diff --git a/website/src/repl/components/panel/Reference.jsx b/website/src/repl/components/panel/Reference.jsx
index 6411ea7b..4a778a84 100644
--- a/website/src/repl/components/panel/Reference.jsx
+++ b/website/src/repl/components/panel/Reference.jsx
@@ -25,32 +25,34 @@ export function Reference() {
}, [search]);
return (
-
-
-
+
+
+
setSearch(event.target.value)}
/>
- {visibleFunctions.map((entry, i) => (
- {
- const el = document.getElementById(`doc-${i}`);
- const container = document.getElementById('reference-container');
- container.scrollTo(0, el.offsetTop);
- }}
- >
- {entry.name} {/* {entry.meta.filename} */}
-
- ))}
+
-
-
+
+
API Reference
This is the long list functions you can use! Remember that you don't need to remember all of those and that
@@ -78,7 +80,7 @@ export function Reference() {
))}
))}
-
+
);
diff --git a/website/src/repl/components/panel/SettingsTab.jsx b/website/src/repl/components/panel/SettingsTab.jsx
index 768af4ff..6f15b887 100644
--- a/website/src/repl/components/panel/SettingsTab.jsx
+++ b/website/src/repl/components/panel/SettingsTab.jsx
@@ -105,7 +105,7 @@ export function SettingsTab({ started }) {
const shouldAlwaysSync = isUdels();
const canChangeAudioDevice = AudioContext.prototype.setSinkId != null;
return (
-
+
{canChangeAudioDevice && (
-
- setSearch(e.target.value)}
/>
-
+
settingsMap.setKey('soundsFilter', 'user')} />
-
+
+
{soundEntries.map(([name, { data, onTrigger }]) => {
return (
settingsMap.setKey('activeFooter', tab);
+export const setPanelPinned = (isPinned) => settingsMap.setKey('isPanelPinned', isPinned);
export const setIsZen = (active) => settingsMap.setKey('isZen', !!active);
diff --git a/website/src/styles/index.css b/website/src/styles/index.css
index e50a54cf..af02a277 100644
--- a/website/src/styles/index.css
+++ b/website/src/styles/index.css
@@ -52,6 +52,7 @@
}
:root {
--app-height: 100vh;
+ --app-width: 100vw;
}
#console-tab {
diff --git a/website/tailwind.config.cjs b/website/tailwind.config.cjs
index d92d5949..4c76159e 100644
--- a/website/tailwind.config.cjs
+++ b/website/tailwind.config.cjs
@@ -34,6 +34,7 @@ module.exports = {
},
spacing: {
'app-height': 'var(--app-height)',
+ 'app-width': 'var(--app-width)'
},
typography(theme) {
return {