@cerberus-design/react 0.0.1-next-b88d5af → 0.0.1-next-ef8d639
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/legacy/_tsup-dts-rollup.d.cts +96 -1
- package/build/legacy/_tsup-dts-rollup.d.ts +96 -1
- package/build/legacy/aria-helpers/nav-menu.aria.cjs +36 -0
- package/build/legacy/aria-helpers/nav-menu.aria.cjs.map +1 -0
- package/build/legacy/aria-helpers/nav-menu.aria.d.cts +2 -0
- package/build/legacy/aria-helpers/nav-menu.aria.d.ts +2 -0
- package/build/legacy/aria-helpers/nav-menu.aria.js +11 -0
- package/build/legacy/aria-helpers/nav-menu.aria.js.map +1 -0
- package/build/legacy/components/Button.cjs.map +1 -1
- package/build/legacy/components/Button.js.map +1 -1
- package/build/legacy/components/NavMenuLink.cjs +69 -0
- package/build/legacy/components/NavMenuLink.cjs.map +1 -0
- package/build/legacy/components/NavMenuLink.d.cts +2 -0
- package/build/legacy/components/NavMenuLink.d.ts +2 -0
- package/build/legacy/components/NavMenuLink.js +44 -0
- package/build/legacy/components/NavMenuLink.js.map +1 -0
- package/build/legacy/components/NavMenuList.cjs +107 -0
- package/build/legacy/components/NavMenuList.cjs.map +1 -0
- package/build/legacy/components/NavMenuList.d.cts +3 -0
- package/build/legacy/components/NavMenuList.d.ts +3 -0
- package/build/legacy/components/NavMenuList.js +82 -0
- package/build/legacy/components/NavMenuList.js.map +1 -0
- package/build/legacy/components/NavMenuTrigger.cjs +98 -0
- package/build/legacy/components/NavMenuTrigger.cjs.map +1 -0
- package/build/legacy/components/NavMenuTrigger.d.cts +2 -0
- package/build/legacy/components/NavMenuTrigger.d.ts +2 -0
- package/build/legacy/components/NavMenuTrigger.js +78 -0
- package/build/legacy/components/NavMenuTrigger.js.map +1 -0
- package/build/legacy/context/navMenu.cjs +70 -0
- package/build/legacy/context/navMenu.cjs.map +1 -0
- package/build/legacy/context/navMenu.d.cts +5 -0
- package/build/legacy/context/navMenu.d.ts +5 -0
- package/build/legacy/context/navMenu.js +52 -0
- package/build/legacy/context/navMenu.js.map +1 -0
- package/build/legacy/context/theme.cjs +3 -9
- package/build/legacy/context/theme.cjs.map +1 -1
- package/build/legacy/context/theme.js +3 -9
- package/build/legacy/context/theme.js.map +1 -1
- package/build/legacy/index.cjs +13 -1
- package/build/legacy/index.cjs.map +1 -1
- package/build/legacy/index.d.cts +15 -0
- package/build/legacy/index.d.ts +15 -0
- package/build/legacy/index.js +6 -0
- package/build/legacy/index.js.map +1 -1
- package/build/legacy/types.cjs +19 -0
- package/build/legacy/types.cjs.map +1 -0
- package/build/legacy/types.d.cts +1 -0
- package/build/legacy/types.d.ts +1 -0
- package/build/legacy/types.js +1 -0
- package/build/legacy/types.js.map +1 -0
- package/build/modern/_tsup-dts-rollup.d.cts +96 -1
- package/build/modern/_tsup-dts-rollup.d.ts +96 -1
- package/build/modern/aria-helpers/nav-menu.aria.cjs +36 -0
- package/build/modern/aria-helpers/nav-menu.aria.cjs.map +1 -0
- package/build/modern/aria-helpers/nav-menu.aria.d.cts +2 -0
- package/build/modern/aria-helpers/nav-menu.aria.d.ts +2 -0
- package/build/modern/aria-helpers/nav-menu.aria.js +11 -0
- package/build/modern/aria-helpers/nav-menu.aria.js.map +1 -0
- package/build/modern/components/Button.cjs.map +1 -1
- package/build/modern/components/Button.js.map +1 -1
- package/build/modern/components/NavMenuLink.cjs +69 -0
- package/build/modern/components/NavMenuLink.cjs.map +1 -0
- package/build/modern/components/NavMenuLink.d.cts +2 -0
- package/build/modern/components/NavMenuLink.d.ts +2 -0
- package/build/modern/components/NavMenuLink.js +44 -0
- package/build/modern/components/NavMenuLink.js.map +1 -0
- package/build/modern/components/NavMenuList.cjs +107 -0
- package/build/modern/components/NavMenuList.cjs.map +1 -0
- package/build/modern/components/NavMenuList.d.cts +3 -0
- package/build/modern/components/NavMenuList.d.ts +3 -0
- package/build/modern/components/NavMenuList.js +82 -0
- package/build/modern/components/NavMenuList.js.map +1 -0
- package/build/modern/components/NavMenuTrigger.cjs +98 -0
- package/build/modern/components/NavMenuTrigger.cjs.map +1 -0
- package/build/modern/components/NavMenuTrigger.d.cts +2 -0
- package/build/modern/components/NavMenuTrigger.d.ts +2 -0
- package/build/modern/components/NavMenuTrigger.js +78 -0
- package/build/modern/components/NavMenuTrigger.js.map +1 -0
- package/build/modern/context/navMenu.cjs +70 -0
- package/build/modern/context/navMenu.cjs.map +1 -0
- package/build/modern/context/navMenu.d.cts +5 -0
- package/build/modern/context/navMenu.d.ts +5 -0
- package/build/modern/context/navMenu.js +52 -0
- package/build/modern/context/navMenu.js.map +1 -0
- package/build/modern/context/theme.cjs +3 -9
- package/build/modern/context/theme.cjs.map +1 -1
- package/build/modern/context/theme.js +3 -9
- package/build/modern/context/theme.js.map +1 -1
- package/build/modern/index.cjs +13 -1
- package/build/modern/index.cjs.map +1 -1
- package/build/modern/index.d.cts +15 -0
- package/build/modern/index.d.ts +15 -0
- package/build/modern/index.js +6 -0
- package/build/modern/index.js.map +1 -1
- package/build/modern/types.cjs +19 -0
- package/build/modern/types.cjs.map +1 -0
- package/build/modern/types.d.cts +1 -0
- package/build/modern/types.d.ts +1 -0
- package/build/modern/types.js +1 -0
- package/build/modern/types.js.map +1 -0
- package/package.json +3 -3
- package/src/aria-helpers/nav-menu.aria.ts +11 -0
- package/src/components/Button.tsx +4 -0
- package/src/components/NavMenuLink.tsx +43 -0
- package/src/components/NavMenuList.tsx +88 -0
- package/src/components/NavMenuTrigger.tsx +89 -0
- package/src/context/navMenu.tsx +65 -0
- package/src/context/theme.tsx +3 -9
- package/src/index.ts +12 -0
- package/src/types.ts +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Positions_alias_1 as Positions } from './_tsup-dts-rollup';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Positions_alias_1 as Positions } from './_tsup-dts-rollup';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cerberus-design/react",
|
|
3
|
-
"version": "0.0.1-next-
|
|
3
|
+
"version": "0.0.1-next-ef8d639",
|
|
4
4
|
"description": "The Cerberus Design React component library",
|
|
5
5
|
"browserslist": "> 0.25%, not dead",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
"react": "^18",
|
|
21
21
|
"react-dom": "^18",
|
|
22
22
|
"tsup": "^8.0.2",
|
|
23
|
-
"@cerberus-design/
|
|
24
|
-
"@cerberus-design/
|
|
23
|
+
"@cerberus-design/configs": "0.0.0",
|
|
24
|
+
"@cerberus-design/styled-system": "0.0.0"
|
|
25
25
|
},
|
|
26
26
|
"publishConfig": {
|
|
27
27
|
"access": "public"
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface NavTriggerAriaValues {
|
|
2
|
+
controls: string
|
|
3
|
+
expanded?: boolean
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
export function createNavTriggerProps(values: NavTriggerAriaValues) {
|
|
7
|
+
return {
|
|
8
|
+
['aria-controls']: values.controls,
|
|
9
|
+
['aria-expanded']: values.expanded ?? false,
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -8,6 +8,10 @@ export interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
|
8
8
|
shape?: 'sharp' | 'rounded'
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
+
/**
|
|
12
|
+
* A component that allows the user to perform actions
|
|
13
|
+
* @description https://github.com/omnifed/cerberus/blob/main/packages/react/src/components/Button.tsx
|
|
14
|
+
*/
|
|
11
15
|
export function Button(props: ButtonProps) {
|
|
12
16
|
const { palette, usage, shape, ...nativeProps } = props
|
|
13
17
|
return (
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { AnchorHTMLAttributes, ElementType } from 'react'
|
|
2
|
+
import { Show } from './Show'
|
|
3
|
+
import { css, cx } from '@cerberus-design/styled-system/css'
|
|
4
|
+
|
|
5
|
+
export interface NavMenuLinkProps
|
|
6
|
+
extends AnchorHTMLAttributes<HTMLAnchorElement> {
|
|
7
|
+
as?: ElementType
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export function NavMenuLink(props: NavMenuLinkProps) {
|
|
11
|
+
const { as, ...nativeProps } = props
|
|
12
|
+
const hasAs = Boolean(as)
|
|
13
|
+
const AsSub: ElementType = as!
|
|
14
|
+
|
|
15
|
+
return (
|
|
16
|
+
<li
|
|
17
|
+
className={css({
|
|
18
|
+
w: 'full',
|
|
19
|
+
})}
|
|
20
|
+
>
|
|
21
|
+
<Show
|
|
22
|
+
when={hasAs}
|
|
23
|
+
fallback={
|
|
24
|
+
<a
|
|
25
|
+
{...nativeProps}
|
|
26
|
+
className={cx(
|
|
27
|
+
nativeProps.className,
|
|
28
|
+
css({
|
|
29
|
+
color: 'action.navigation.initial',
|
|
30
|
+
textStyle: 'link',
|
|
31
|
+
_hover: {
|
|
32
|
+
color: 'action.navigation.hover',
|
|
33
|
+
},
|
|
34
|
+
}),
|
|
35
|
+
)}
|
|
36
|
+
/>
|
|
37
|
+
}
|
|
38
|
+
>
|
|
39
|
+
{hasAs && <AsSub {...nativeProps} />}
|
|
40
|
+
</Show>
|
|
41
|
+
</li>
|
|
42
|
+
)
|
|
43
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
|
|
3
|
+
import { useMemo, type HTMLAttributes } from 'react'
|
|
4
|
+
import { useNavMenuContext } from '../context/navMenu'
|
|
5
|
+
import { Show } from './Show'
|
|
6
|
+
import type { Positions } from '../types'
|
|
7
|
+
import { cx } from '@cerberus-design/styled-system/css'
|
|
8
|
+
import { vstack } from '@cerberus-design/styled-system/patterns'
|
|
9
|
+
|
|
10
|
+
export function getPosition(position: Positions) {
|
|
11
|
+
const defaultPositions = {
|
|
12
|
+
left: 'auto',
|
|
13
|
+
right: 'auto',
|
|
14
|
+
top: 'auto',
|
|
15
|
+
bottom: 'auto',
|
|
16
|
+
}
|
|
17
|
+
switch (position) {
|
|
18
|
+
case 'right':
|
|
19
|
+
return { ...defaultPositions, top: '0%', left: '105%' }
|
|
20
|
+
case 'left':
|
|
21
|
+
return { ...defaultPositions, top: '0%', right: '105%' }
|
|
22
|
+
case 'bottom':
|
|
23
|
+
return { ...defaultPositions, top: '110%' }
|
|
24
|
+
case 'top':
|
|
25
|
+
return { ...defaultPositions, bottom: '110%' }
|
|
26
|
+
default:
|
|
27
|
+
return defaultPositions
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const navListStyles = vstack({
|
|
32
|
+
alignItems: 'flex-start',
|
|
33
|
+
bgColor: 'neutral.surface.100',
|
|
34
|
+
boxShadow: 'lg',
|
|
35
|
+
gap: '2',
|
|
36
|
+
opacity: '0',
|
|
37
|
+
p: '4',
|
|
38
|
+
position: 'absolute',
|
|
39
|
+
rounded: 'md',
|
|
40
|
+
zIndex: 'dropdown',
|
|
41
|
+
_motionSafe: {
|
|
42
|
+
animationName: 'zoomIn',
|
|
43
|
+
animationDelay: '100ms',
|
|
44
|
+
animationDuration: '150ms',
|
|
45
|
+
animationFillMode: 'both',
|
|
46
|
+
animationTimingFunction: 'ease-in-out',
|
|
47
|
+
},
|
|
48
|
+
_positionBottom: {
|
|
49
|
+
transformOrigin: 'top left',
|
|
50
|
+
},
|
|
51
|
+
_positionTop: {
|
|
52
|
+
transformOrigin: 'bottom left',
|
|
53
|
+
},
|
|
54
|
+
_positionLeft: {
|
|
55
|
+
transformOrigin: 'top right',
|
|
56
|
+
},
|
|
57
|
+
_positionRight: {
|
|
58
|
+
transformOrigin: 'top left',
|
|
59
|
+
},
|
|
60
|
+
})
|
|
61
|
+
|
|
62
|
+
// <NavMenuList />
|
|
63
|
+
|
|
64
|
+
export interface NavMenuListProps extends HTMLAttributes<HTMLUListElement> {
|
|
65
|
+
id: string
|
|
66
|
+
position?: Positions
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export function NavMenuList(props: NavMenuListProps) {
|
|
70
|
+
const { position, ...nativeProps } = props
|
|
71
|
+
const { menuRef, expanded } = useNavMenuContext()
|
|
72
|
+
const locationStyles = useMemo(
|
|
73
|
+
() => getPosition(position ?? 'bottom'),
|
|
74
|
+
[position],
|
|
75
|
+
)
|
|
76
|
+
|
|
77
|
+
return (
|
|
78
|
+
<Show when={expanded}>
|
|
79
|
+
<ul
|
|
80
|
+
{...nativeProps}
|
|
81
|
+
data-position={position ?? 'bottom'}
|
|
82
|
+
className={cx(nativeProps.className, navListStyles)}
|
|
83
|
+
ref={menuRef}
|
|
84
|
+
style={locationStyles}
|
|
85
|
+
/>
|
|
86
|
+
</Show>
|
|
87
|
+
)
|
|
88
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
useCallback,
|
|
5
|
+
type ButtonHTMLAttributes,
|
|
6
|
+
type ElementType,
|
|
7
|
+
type MouseEvent,
|
|
8
|
+
} from 'react'
|
|
9
|
+
import { cx } from '@cerberus-design/styled-system/css'
|
|
10
|
+
import { button } from '@cerberus-design/styled-system/recipes'
|
|
11
|
+
import {
|
|
12
|
+
createNavTriggerProps,
|
|
13
|
+
type NavTriggerAriaValues,
|
|
14
|
+
} from '../aria-helpers/nav-menu.aria'
|
|
15
|
+
import { Show } from './Show'
|
|
16
|
+
import type { ButtonProps } from './Button'
|
|
17
|
+
import { useNavMenuContext } from '../context/navMenu'
|
|
18
|
+
|
|
19
|
+
export interface NavMenuTriggerProps
|
|
20
|
+
extends ButtonHTMLAttributes<HTMLButtonElement>,
|
|
21
|
+
ButtonProps,
|
|
22
|
+
NavTriggerAriaValues {
|
|
23
|
+
as?: ElementType
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* A component that allows the user to trigger a navigation menu.
|
|
28
|
+
* @description https://github.com/omnifed/cerberus/blob/main/packages/react/src/components/NavMenuTrigger.tsx
|
|
29
|
+
*/
|
|
30
|
+
export function NavMenuTrigger(props: NavMenuTriggerProps) {
|
|
31
|
+
const {
|
|
32
|
+
as,
|
|
33
|
+
palette,
|
|
34
|
+
usage,
|
|
35
|
+
shape,
|
|
36
|
+
controls,
|
|
37
|
+
expanded: propsExpanded,
|
|
38
|
+
onClick,
|
|
39
|
+
...nativeProps
|
|
40
|
+
} = props
|
|
41
|
+
const { triggerRef, onToggle, expanded } = useNavMenuContext()
|
|
42
|
+
const ariaProps = createNavTriggerProps({
|
|
43
|
+
controls,
|
|
44
|
+
expanded: propsExpanded ?? expanded,
|
|
45
|
+
})
|
|
46
|
+
const hasAs = Boolean(as)
|
|
47
|
+
const AsSub: ElementType = as!
|
|
48
|
+
|
|
49
|
+
const handleClick = useCallback(
|
|
50
|
+
(e: MouseEvent<HTMLButtonElement>) => {
|
|
51
|
+
if (onClick) return onClick(e)
|
|
52
|
+
onToggle()
|
|
53
|
+
},
|
|
54
|
+
[onClick, onToggle],
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
return (
|
|
58
|
+
<Show
|
|
59
|
+
when={hasAs}
|
|
60
|
+
fallback={
|
|
61
|
+
<button
|
|
62
|
+
{...nativeProps}
|
|
63
|
+
{...ariaProps}
|
|
64
|
+
className={cx(
|
|
65
|
+
nativeProps.className,
|
|
66
|
+
button({
|
|
67
|
+
palette,
|
|
68
|
+
usage,
|
|
69
|
+
shape,
|
|
70
|
+
}),
|
|
71
|
+
)}
|
|
72
|
+
onClick={handleClick}
|
|
73
|
+
ref={triggerRef}
|
|
74
|
+
>
|
|
75
|
+
{props.children}
|
|
76
|
+
</button>
|
|
77
|
+
}
|
|
78
|
+
>
|
|
79
|
+
{hasAs && (
|
|
80
|
+
<AsSub
|
|
81
|
+
{...nativeProps}
|
|
82
|
+
{...ariaProps}
|
|
83
|
+
onClick={handleClick}
|
|
84
|
+
ref={triggerRef}
|
|
85
|
+
/>
|
|
86
|
+
)}
|
|
87
|
+
</Show>
|
|
88
|
+
)
|
|
89
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
|
|
3
|
+
import { css } from '@cerberus-design/styled-system/css'
|
|
4
|
+
import {
|
|
5
|
+
createContext,
|
|
6
|
+
useCallback,
|
|
7
|
+
useContext,
|
|
8
|
+
useMemo,
|
|
9
|
+
useRef,
|
|
10
|
+
useState,
|
|
11
|
+
type PropsWithChildren,
|
|
12
|
+
type RefObject,
|
|
13
|
+
} from 'react'
|
|
14
|
+
|
|
15
|
+
export type NavTriggerRef = RefObject<HTMLButtonElement>
|
|
16
|
+
export type NavMenuRef = RefObject<HTMLUListElement>
|
|
17
|
+
|
|
18
|
+
export interface NavMenuContextValue {
|
|
19
|
+
triggerRef: NavTriggerRef | null
|
|
20
|
+
menuRef: NavMenuRef | null
|
|
21
|
+
expanded: boolean
|
|
22
|
+
onToggle: () => void
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
const NavMenuContext = createContext<NavMenuContextValue | null>(null)
|
|
26
|
+
|
|
27
|
+
export function NavMenu(props: PropsWithChildren) {
|
|
28
|
+
const triggerRef = useRef<HTMLButtonElement>(null)
|
|
29
|
+
const menuRef = useRef<HTMLUListElement>(null)
|
|
30
|
+
const [expanded, setExpanded] = useState<boolean>(false)
|
|
31
|
+
|
|
32
|
+
const handleToggle = useCallback(() => {
|
|
33
|
+
setExpanded((prev) => !prev)
|
|
34
|
+
}, [])
|
|
35
|
+
|
|
36
|
+
const value = useMemo(
|
|
37
|
+
() => ({
|
|
38
|
+
triggerRef,
|
|
39
|
+
menuRef,
|
|
40
|
+
expanded,
|
|
41
|
+
onToggle: handleToggle,
|
|
42
|
+
}),
|
|
43
|
+
[expanded, handleToggle],
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
return (
|
|
47
|
+
<NavMenuContext.Provider value={value}>
|
|
48
|
+
<nav
|
|
49
|
+
className={css({
|
|
50
|
+
position: 'relative',
|
|
51
|
+
})}
|
|
52
|
+
>
|
|
53
|
+
{props.children}
|
|
54
|
+
</nav>
|
|
55
|
+
</NavMenuContext.Provider>
|
|
56
|
+
)
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export function useNavMenuContext() {
|
|
60
|
+
const context = useContext(NavMenuContext)
|
|
61
|
+
if (!context) {
|
|
62
|
+
throw new Error('useNavMenuContext must be used within a NavMenu.')
|
|
63
|
+
}
|
|
64
|
+
return context
|
|
65
|
+
}
|
package/src/context/theme.tsx
CHANGED
|
@@ -17,15 +17,9 @@ export interface ThemeContextValue<T extends DefaultThemes> {
|
|
|
17
17
|
export const THEME_KEY = 'cerberus-theme'
|
|
18
18
|
export const MODE_KEY = 'cerberus-mode'
|
|
19
19
|
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
updateTheme: () => {},
|
|
24
|
-
updateMode: () => {},
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
const ThemeContext =
|
|
28
|
-
createContext<ThemeContextValue<DefaultThemes>>(initialThemeState)
|
|
20
|
+
const ThemeContext = createContext<ThemeContextValue<DefaultThemes> | null>(
|
|
21
|
+
null,
|
|
22
|
+
)
|
|
29
23
|
|
|
30
24
|
export function ThemeProvider(props: PropsWithChildren<unknown>) {
|
|
31
25
|
const state = useTheme()
|
package/src/index.ts
CHANGED
|
@@ -1,12 +1,24 @@
|
|
|
1
1
|
// components
|
|
2
2
|
|
|
3
3
|
export * from './components/Button'
|
|
4
|
+
export * from './components/NavMenuTrigger'
|
|
5
|
+
export * from './components/NavMenuList'
|
|
6
|
+
export * from './components/NavMenuLink'
|
|
4
7
|
export * from './components/Show'
|
|
5
8
|
|
|
6
9
|
// context
|
|
7
10
|
|
|
11
|
+
export * from './context/navMenu'
|
|
8
12
|
export * from './context/theme'
|
|
9
13
|
|
|
10
14
|
// hooks
|
|
11
15
|
|
|
12
16
|
export * from './hooks/useTheme'
|
|
17
|
+
|
|
18
|
+
// aria-helpers
|
|
19
|
+
|
|
20
|
+
export * from './aria-helpers/nav-menu.aria'
|
|
21
|
+
|
|
22
|
+
// shared types
|
|
23
|
+
|
|
24
|
+
export * from './types'
|
package/src/types.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type Positions = 'top' | 'right' | 'bottom' | 'left'
|