diff --git a/hyperglass/ui/components/debugger.tsx b/hyperglass/ui/components/debugger.tsx index c4c91a8..89a3ba6 100644 --- a/hyperglass/ui/components/debugger.tsx +++ b/hyperglass/ui/components/debugger.tsx @@ -13,7 +13,7 @@ import { ModalCloseButton, } from '@chakra-ui/react'; import { useConfig, useColorValue, useBreakpointValue } from '~/context'; -import { CodeBlock, DynamicIcon } from '~/components'; +import { CodeBlock, DynamicIcon } from '~/elements'; import { useHyperglassConfig } from '~/hooks'; import type { UseDisclosureReturn } from '@chakra-ui/react'; diff --git a/hyperglass/ui/components/directive-info-modal.tsx b/hyperglass/ui/components/directive-info-modal.tsx index 3271696..aa3aa65 100644 --- a/hyperglass/ui/components/directive-info-modal.tsx +++ b/hyperglass/ui/components/directive-info-modal.tsx @@ -9,8 +9,8 @@ import { useDisclosure, ModalCloseButton, } from '@chakra-ui/react'; -import { DynamicIcon, Markdown } from '~/components'; import { useColorValue } from '~/context'; +import { DynamicIcon, Markdown } from '~/elements'; import type { ModalContentProps } from '@chakra-ui/react'; diff --git a/hyperglass/ui/components/footer/button.tsx b/hyperglass/ui/components/footer/button.tsx index fd747c1..b92bcbe 100644 --- a/hyperglass/ui/components/footer/button.tsx +++ b/hyperglass/ui/components/footer/button.tsx @@ -1,7 +1,7 @@ import { useMemo } from 'react'; import { Button, Menu, MenuButton, MenuList } from '@chakra-ui/react'; -import { Markdown } from '~/components'; import { useColorValue, useBreakpointValue, useConfig } from '~/context'; +import { Markdown } from '~/elements'; import { useOpposingColor, useStrf } from '~/hooks'; import type { MenuListProps } from '@chakra-ui/react'; diff --git a/hyperglass/ui/components/footer/color-mode.tsx b/hyperglass/ui/components/footer/color-mode.tsx index 8644caf..dbc0c9c 100644 --- a/hyperglass/ui/components/footer/color-mode.tsx +++ b/hyperglass/ui/components/footer/color-mode.tsx @@ -1,8 +1,8 @@ import { forwardRef } from 'react'; import { Button, Tooltip } from '@chakra-ui/react'; import { Switch, Case } from 'react-if'; -import { DynamicIcon } from '~/components'; import { useColorMode, useColorValue, useBreakpointValue } from '~/context'; +import { DynamicIcon } from '~/elements'; import { useOpposingColor } from '~/hooks'; import type { ButtonProps } from '@chakra-ui/react'; diff --git a/hyperglass/ui/components/footer/footer.tsx b/hyperglass/ui/components/footer/footer.tsx index 2b1e3dc..60f4a82 100644 --- a/hyperglass/ui/components/footer/footer.tsx +++ b/hyperglass/ui/components/footer/footer.tsx @@ -1,8 +1,8 @@ import { useMemo } from 'react'; import { Flex, HStack, useToken } from '@chakra-ui/react'; import { If, Then } from 'react-if'; -import { DynamicIcon } from '~/components'; import { useConfig, useMobile, useColorValue, useBreakpointValue } from '~/context'; +import { DynamicIcon } from '~/elements'; import { useStrf } from '~/hooks'; import { FooterButton } from './button'; import { ColorModeToggle } from './color-mode'; diff --git a/hyperglass/ui/components/greeting.tsx b/hyperglass/ui/components/greeting.tsx index b34bf3e..959d206 100644 --- a/hyperglass/ui/components/greeting.tsx +++ b/hyperglass/ui/components/greeting.tsx @@ -10,7 +10,7 @@ import { ModalCloseButton, } from '@chakra-ui/react'; import { If, Then } from 'react-if'; -import { Markdown } from '~/components'; +import { Markdown } from '~/elements'; import { useConfig, useColorValue } from '~/context'; import { useGreeting, useOpposingColor } from '~/hooks'; diff --git a/hyperglass/ui/components/header/header.tsx b/hyperglass/ui/components/header/header.tsx index 338bc95..2e408c6 100644 --- a/hyperglass/ui/components/header/header.tsx +++ b/hyperglass/ui/components/header/header.tsx @@ -1,6 +1,6 @@ import { Flex, ScaleFade } from '@chakra-ui/react'; -import { motionChakra } from '~/components'; import { useBreakpointValue } from '~/context'; +import { motionChakra } from '~/elements'; import { useBooleanValue, useFormInteractive } from '~/hooks'; import { Title } from './title'; diff --git a/hyperglass/ui/components/index.ts b/hyperglass/ui/components/index.ts index 3358af0..6c0f318 100644 --- a/hyperglass/ui/components/index.ts +++ b/hyperglass/ui/components/index.ts @@ -1,24 +1,19 @@ -export * from './animated'; -export * from './card'; -export * from './code-block'; -export * from './countdown'; -export * from './custom'; +/** + * The components directory contains React components that handle logic. + * + * Generally, components that call hooks or reference configuration, or API types should be in + * components. + */ + export * from './debugger'; export * from './directive-info-modal'; -export * from './dynamic-icon'; -export * from './favicon'; export * from './footer'; export * from './form-field'; -export * from './form-row'; export * from './greeting'; export * from './header'; -export * from './label'; export * from './layout'; -export * from './load-error'; -export * from './loading'; export * from './location-card'; export * from './looking-glass-form'; -export * from './markdown'; export * from './meta'; export * from './output'; export * from './path'; @@ -26,6 +21,7 @@ export * from './prompt'; export * from './query-location'; export * from './query-target'; export * from './query-type'; +export * from './reset-button'; export * from './resolved-target'; export * from './results'; export * from './select'; diff --git a/hyperglass/ui/components/layout/frame.tsx b/hyperglass/ui/components/layout.tsx similarity index 77% rename from hyperglass/ui/components/layout/frame.tsx rename to hyperglass/ui/components/layout.tsx index 1014cb0..c90d307 100644 --- a/hyperglass/ui/components/layout/frame.tsx +++ b/hyperglass/ui/components/layout.tsx @@ -1,18 +1,29 @@ import { useCallback, useRef } from 'react'; import { Flex } from '@chakra-ui/react'; -import { motion } from 'framer-motion'; import { isSafari } from 'react-device-detect'; import { If, Then } from 'react-if'; -import { Debugger, Greeting, Footer, Header } from '~/components'; +import { Debugger, Greeting, Footer, Header, ResetButton } from '~/components'; import { useConfig } from '~/context'; +import { motionChakra } from '~/elements'; import { useFormState } from '~/hooks'; -import { ResetButton } from './reset-button'; import type { FlexProps } from '@chakra-ui/react'; -const AnimatedFlex = motion(Flex); +const Main = motionChakra('main', { + baseStyle: { + px: 4, + py: 0, + w: '100%', + display: 'flex', + flex: '1 1 auto', + flexDir: 'column', + textAlign: 'center', + alignItems: 'center', + justifyContent: 'start', + }, +}); -export const Frame = (props: FlexProps): JSX.Element => { +export const Layout = (props: FlexProps): JSX.Element => { const { developerMode } = useConfig(); const { setStatus, reset } = useFormState( useCallback(({ setStatus, reset }) => ({ setStatus, reset }), []), @@ -42,24 +53,15 @@ export const Frame = (props: FlexProps): JSX.Element => { minHeight={isSafari ? '-webkit-fill-available' : '100vh'} >
- {props.children} - +