@yamada-ui/menu 1.0.24-dev-20240418191913 → 1.1.0-dev-20240420143734
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/dist/{chunk-3I42NCZV.mjs → chunk-ATDFQB5W.mjs} +2 -2
- package/dist/{chunk-J4OG7DMN.mjs → chunk-B6YWHVG4.mjs} +2 -2
- package/dist/{chunk-D6AU4S44.mjs → chunk-JHE6GKYD.mjs} +2 -2
- package/dist/chunk-KRNJ4HQH.mjs +63720 -0
- package/dist/chunk-KRNJ4HQH.mjs.map +1 -0
- package/dist/chunk-RX3BDZRV.mjs +521 -0
- package/dist/chunk-RX3BDZRV.mjs.map +1 -0
- package/dist/{chunk-6OASXRNF.mjs → chunk-ZADUBQ5D.mjs} +3 -3
- package/dist/index.d.mts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +63402 -357
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +14 -10
- package/dist/menu-button.d.mts +9 -1
- package/dist/menu-button.d.ts +9 -1
- package/dist/menu-button.js +63519 -47
- package/dist/menu-button.js.map +1 -1
- package/dist/menu-button.mjs +10 -4
- package/dist/menu-divider.js +4 -0
- package/dist/menu-divider.js.map +1 -1
- package/dist/menu-divider.mjs +2 -2
- package/dist/menu-group.js +4 -0
- package/dist/menu-group.js.map +1 -1
- package/dist/menu-group.mjs +2 -2
- package/dist/menu-item.d.mts +15 -2
- package/dist/menu-item.d.ts +15 -2
- package/dist/menu-item.js +132 -22
- package/dist/menu-item.js.map +1 -1
- package/dist/menu-item.mjs +11 -4
- package/dist/menu-list.js +4 -0
- package/dist/menu-list.js.map +1 -1
- package/dist/menu-list.mjs +2 -2
- package/dist/menu-option-group.js +196 -92
- package/dist/menu-option-group.js.map +1 -1
- package/dist/menu-option-group.mjs +3 -4
- package/dist/menu.d.mts +19 -9
- package/dist/menu.d.ts +19 -9
- package/dist/menu.js +391 -50
- package/dist/menu.js.map +1 -1
- package/dist/menu.mjs +7 -3
- package/package.json +3 -3
- package/dist/chunk-SP4GE4RO.mjs +0 -190
- package/dist/chunk-SP4GE4RO.mjs.map +0 -1
- package/dist/chunk-SUYEIZLL.mjs +0 -61
- package/dist/chunk-SUYEIZLL.mjs.map +0 -1
- package/dist/chunk-TWAYMPIS.mjs +0 -123
- package/dist/chunk-TWAYMPIS.mjs.map +0 -1
- /package/dist/{chunk-3I42NCZV.mjs.map → chunk-ATDFQB5W.mjs.map} +0 -0
- /package/dist/{chunk-J4OG7DMN.mjs.map → chunk-B6YWHVG4.mjs.map} +0 -0
- /package/dist/{chunk-D6AU4S44.mjs.map → chunk-JHE6GKYD.mjs.map} +0 -0
- /package/dist/{chunk-6OASXRNF.mjs.map → chunk-ZADUBQ5D.mjs.map} +0 -0
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@yamada-ui/menu",
|
3
|
-
"version": "1.0
|
3
|
+
"version": "1.1.0-dev-20240420143734",
|
4
4
|
"description": "Yamada UI menu component",
|
5
5
|
"keywords": [
|
6
6
|
"yamada",
|
@@ -38,12 +38,12 @@
|
|
38
38
|
"dependencies": {
|
39
39
|
"@yamada-ui/core": "1.6.4",
|
40
40
|
"@yamada-ui/utils": "1.1.3",
|
41
|
-
"@yamada-ui/popover": "1.0
|
41
|
+
"@yamada-ui/popover": "1.1.0-dev-20240420143734",
|
42
42
|
"@yamada-ui/motion": "1.0.23",
|
43
43
|
"@yamada-ui/transitions": "1.0.23",
|
44
44
|
"@yamada-ui/use-disclosure": "1.0.12",
|
45
45
|
"@yamada-ui/use-descendant": "1.0.12",
|
46
|
-
"@yamada-ui/use-clickable": "1.
|
46
|
+
"@yamada-ui/use-clickable": "1.2.0-dev-20240420143734",
|
47
47
|
"@yamada-ui/use-controllable-state": "1.0.12"
|
48
48
|
},
|
49
49
|
"devDependencies": {
|
package/dist/chunk-SP4GE4RO.mjs
DELETED
@@ -1,190 +0,0 @@
|
|
1
|
-
"use client"
|
2
|
-
import {
|
3
|
-
useMenu,
|
4
|
-
useMenuDescendant
|
5
|
-
} from "./chunk-TWAYMPIS.mjs";
|
6
|
-
|
7
|
-
// src/menu-item.tsx
|
8
|
-
import { ui, forwardRef } from "@yamada-ui/core";
|
9
|
-
import { useClickable } from "@yamada-ui/use-clickable";
|
10
|
-
import {
|
11
|
-
ariaAttr,
|
12
|
-
cx,
|
13
|
-
isActiveElement,
|
14
|
-
isHTMLElement,
|
15
|
-
mergeRefs,
|
16
|
-
useUpdateEffect
|
17
|
-
} from "@yamada-ui/utils";
|
18
|
-
import { useCallback, useRef } from "react";
|
19
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
20
|
-
var isTargetMenuItem = (target) => {
|
21
|
-
var _a;
|
22
|
-
return isHTMLElement(target) && !!((_a = target == null ? void 0 : target.getAttribute("role")) == null ? void 0 : _a.startsWith("menu-item"));
|
23
|
-
};
|
24
|
-
var MenuItem = forwardRef(
|
25
|
-
({
|
26
|
-
as,
|
27
|
-
className,
|
28
|
-
type,
|
29
|
-
isDisabled,
|
30
|
-
isFocusable,
|
31
|
-
closeOnSelect: customCloseOnSelect,
|
32
|
-
icon,
|
33
|
-
command,
|
34
|
-
children,
|
35
|
-
onClick: onClickProp,
|
36
|
-
onFocus: onFocusProp,
|
37
|
-
...props
|
38
|
-
}, ref) => {
|
39
|
-
const {
|
40
|
-
focusedIndex,
|
41
|
-
setFocusedIndex,
|
42
|
-
isOpen,
|
43
|
-
onClose,
|
44
|
-
closeOnSelect: generalCloseOnSelect,
|
45
|
-
menuRef,
|
46
|
-
styles
|
47
|
-
} = useMenu();
|
48
|
-
const trulyDisabled = isDisabled && !isFocusable;
|
49
|
-
const buttonRef = useRef(null);
|
50
|
-
const { index, register } = useMenuDescendant({ disabled: trulyDisabled });
|
51
|
-
const isFocused = index === focusedIndex;
|
52
|
-
const onClick = useCallback(
|
53
|
-
(ev) => {
|
54
|
-
onClickProp == null ? void 0 : onClickProp(ev);
|
55
|
-
if (!isTargetMenuItem(ev.currentTarget))
|
56
|
-
return;
|
57
|
-
if (customCloseOnSelect != null ? customCloseOnSelect : generalCloseOnSelect)
|
58
|
-
onClose();
|
59
|
-
},
|
60
|
-
[onClickProp, customCloseOnSelect, generalCloseOnSelect, onClose]
|
61
|
-
);
|
62
|
-
const onFocus = useCallback(
|
63
|
-
(ev) => {
|
64
|
-
onFocusProp == null ? void 0 : onFocusProp(ev);
|
65
|
-
setFocusedIndex(index);
|
66
|
-
},
|
67
|
-
[onFocusProp, setFocusedIndex, index]
|
68
|
-
);
|
69
|
-
const rest = useClickable({
|
70
|
-
...props,
|
71
|
-
onClick,
|
72
|
-
onFocus,
|
73
|
-
ref: mergeRefs(register, buttonRef, ref),
|
74
|
-
isDisabled,
|
75
|
-
isFocusable
|
76
|
-
});
|
77
|
-
useUpdateEffect(() => {
|
78
|
-
if (!isOpen)
|
79
|
-
return;
|
80
|
-
if (isFocused && !trulyDisabled && buttonRef.current) {
|
81
|
-
requestAnimationFrame(() => {
|
82
|
-
var _a;
|
83
|
-
return (_a = buttonRef.current) == null ? void 0 : _a.focus();
|
84
|
-
});
|
85
|
-
} else if (menuRef.current && !isActiveElement(menuRef.current)) {
|
86
|
-
menuRef.current.focus();
|
87
|
-
}
|
88
|
-
}, [isFocused, trulyDisabled, menuRef, isOpen]);
|
89
|
-
type = as || type ? type != null ? type : void 0 : "button";
|
90
|
-
children = icon || command ? /* @__PURE__ */ jsx(ui.span, { style: { flex: 1 }, children }) : children;
|
91
|
-
const css = {
|
92
|
-
textDecoration: "none",
|
93
|
-
color: "inherit",
|
94
|
-
userSelect: "none",
|
95
|
-
display: "flex",
|
96
|
-
width: "100%",
|
97
|
-
alignItems: "center",
|
98
|
-
textAlign: "start",
|
99
|
-
flex: "0 0 auto",
|
100
|
-
outline: 0,
|
101
|
-
gap: "0.75rem",
|
102
|
-
...styles.item
|
103
|
-
};
|
104
|
-
return /* @__PURE__ */ jsxs(
|
105
|
-
ui.li,
|
106
|
-
{
|
107
|
-
...rest,
|
108
|
-
as,
|
109
|
-
type,
|
110
|
-
role: "menu-item",
|
111
|
-
tabIndex: isFocused ? 0 : -1,
|
112
|
-
className: cx("ui-menu__item", className),
|
113
|
-
__css: css,
|
114
|
-
children: [
|
115
|
-
icon ? /* @__PURE__ */ jsx(MenuIcon, { children: icon }) : null,
|
116
|
-
children,
|
117
|
-
command ? /* @__PURE__ */ jsx(MenuCommand, { children: command }) : null
|
118
|
-
]
|
119
|
-
}
|
120
|
-
);
|
121
|
-
}
|
122
|
-
);
|
123
|
-
var MenuOptionItem = forwardRef(
|
124
|
-
({ className, icon, isChecked, closeOnSelect = false, children, ...rest }, ref) => {
|
125
|
-
return /* @__PURE__ */ jsxs(
|
126
|
-
MenuItem,
|
127
|
-
{
|
128
|
-
ref,
|
129
|
-
className: cx("ui-menu__item--option", className),
|
130
|
-
"aria-checked": ariaAttr(isChecked),
|
131
|
-
closeOnSelect,
|
132
|
-
...rest,
|
133
|
-
children: [
|
134
|
-
icon !== null ? /* @__PURE__ */ jsx(MenuIcon, { opacity: isChecked ? 1 : 0, children: icon || /* @__PURE__ */ jsx(CheckIcon, {}) }) : null,
|
135
|
-
children
|
136
|
-
]
|
137
|
-
}
|
138
|
-
);
|
139
|
-
}
|
140
|
-
);
|
141
|
-
var MenuIcon = forwardRef(
|
142
|
-
({ className, ...rest }, ref) => {
|
143
|
-
const { styles } = useMenu();
|
144
|
-
const css = {
|
145
|
-
flexShrink: 0,
|
146
|
-
display: "inline-flex",
|
147
|
-
justifyContent: "center",
|
148
|
-
alignItems: "center",
|
149
|
-
fontSize: "0.85em",
|
150
|
-
...styles.icon
|
151
|
-
};
|
152
|
-
return /* @__PURE__ */ jsx(
|
153
|
-
ui.span,
|
154
|
-
{
|
155
|
-
ref,
|
156
|
-
className: cx("ui-menu__item__icon", className),
|
157
|
-
__css: css,
|
158
|
-
...rest
|
159
|
-
}
|
160
|
-
);
|
161
|
-
}
|
162
|
-
);
|
163
|
-
var MenuCommand = forwardRef(
|
164
|
-
({ className, ...rest }, ref) => {
|
165
|
-
const { styles } = useMenu();
|
166
|
-
const css = { ...styles.command };
|
167
|
-
return /* @__PURE__ */ jsx(
|
168
|
-
ui.span,
|
169
|
-
{
|
170
|
-
ref,
|
171
|
-
className: cx("ui-menu__item__command", className),
|
172
|
-
__css: css,
|
173
|
-
...rest
|
174
|
-
}
|
175
|
-
);
|
176
|
-
}
|
177
|
-
);
|
178
|
-
var CheckIcon = () => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 14 14", width: "1em", height: "1em", children: /* @__PURE__ */ jsx(
|
179
|
-
"polygon",
|
180
|
-
{
|
181
|
-
fill: "currentColor",
|
182
|
-
points: "5.5 11.9993304 14 3.49933039 12.5 2 5.5 8.99933039 1.5 4.9968652 0 6.49933039"
|
183
|
-
}
|
184
|
-
) });
|
185
|
-
|
186
|
-
export {
|
187
|
-
MenuItem,
|
188
|
-
MenuOptionItem
|
189
|
-
};
|
190
|
-
//# sourceMappingURL=chunk-SP4GE4RO.mjs.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"sources":["../src/menu-item.tsx"],"sourcesContent":["import type { HTMLUIProps, CSSUIObject } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { useClickable } from \"@yamada-ui/use-clickable\"\nimport {\n ariaAttr,\n cx,\n isActiveElement,\n isHTMLElement,\n mergeRefs,\n useUpdateEffect,\n} from \"@yamada-ui/utils\"\nimport type { FC, FocusEvent, MouseEvent, ReactElement } from \"react\"\nimport { useCallback, useRef } from \"react\"\nimport { useMenu, useMenuDescendant } from \"./menu\"\n\nconst isTargetMenuItem = (target: EventTarget | null) => {\n return (\n isHTMLElement(target) &&\n !!target?.getAttribute(\"role\")?.startsWith(\"menu-item\")\n )\n}\n\ntype MenuItemOptions = {\n /**\n * If `true`, the menu item will be disabled.\n *\n * @default false\n */\n isDisabled?: boolean\n /**\n * If `true`, the menu item will be focusable.\n *\n * @default false\n */\n isFocusable?: boolean\n /**\n * If `true`, the list element will be closed when selected.\n *\n * @default false\n */\n closeOnSelect?: boolean\n /**\n * The menu item icon to use.\n */\n icon?: ReactElement\n /**\n * Right-aligned label text content, useful for displaying hotkeys.\n */\n command?: string\n}\n\nexport type MenuItemProps = HTMLUIProps<\"button\"> & MenuItemOptions\n\nexport const MenuItem = forwardRef<MenuItemProps, \"button\">(\n (\n {\n as,\n className,\n type,\n isDisabled,\n isFocusable,\n closeOnSelect: customCloseOnSelect,\n icon,\n command,\n children,\n onClick: onClickProp,\n onFocus: onFocusProp,\n ...props\n },\n ref,\n ) => {\n const {\n focusedIndex,\n setFocusedIndex,\n isOpen,\n onClose,\n closeOnSelect: generalCloseOnSelect,\n menuRef,\n styles,\n } = useMenu()\n\n const trulyDisabled = isDisabled && !isFocusable\n\n const buttonRef = useRef<HTMLButtonElement>(null)\n const { index, register } = useMenuDescendant({ disabled: trulyDisabled })\n\n const isFocused = index === focusedIndex\n\n const onClick = useCallback(\n (ev: MouseEvent<HTMLButtonElement>) => {\n onClickProp?.(ev)\n\n if (!isTargetMenuItem(ev.currentTarget)) return\n\n if (customCloseOnSelect ?? generalCloseOnSelect) onClose()\n },\n [onClickProp, customCloseOnSelect, generalCloseOnSelect, onClose],\n )\n\n const onFocus = useCallback(\n (ev: FocusEvent<HTMLButtonElement>) => {\n onFocusProp?.(ev)\n\n setFocusedIndex(index)\n },\n [onFocusProp, setFocusedIndex, index],\n )\n\n const rest = useClickable<HTMLButtonElement>({\n ...props,\n onClick,\n onFocus,\n ref: mergeRefs(register, buttonRef, ref),\n isDisabled,\n isFocusable,\n })\n\n useUpdateEffect(() => {\n if (!isOpen) return\n\n if (isFocused && !trulyDisabled && buttonRef.current) {\n requestAnimationFrame(() => buttonRef.current?.focus())\n } else if (menuRef.current && !isActiveElement(menuRef.current)) {\n menuRef.current.focus()\n }\n }, [isFocused, trulyDisabled, menuRef, isOpen])\n\n type = as || type ? type ?? undefined : \"button\"\n\n children =\n icon || command ? (\n <ui.span style={{ flex: 1 }}>{children}</ui.span>\n ) : (\n children\n )\n\n const css: CSSUIObject = {\n textDecoration: \"none\",\n color: \"inherit\",\n userSelect: \"none\",\n display: \"flex\",\n width: \"100%\",\n alignItems: \"center\",\n textAlign: \"start\",\n flex: \"0 0 auto\",\n outline: 0,\n gap: \"0.75rem\",\n ...styles.item,\n }\n\n return (\n <ui.li\n {...rest}\n as={as}\n type={type}\n role=\"menu-item\"\n tabIndex={isFocused ? 0 : -1}\n className={cx(\"ui-menu__item\", className)}\n __css={css}\n >\n {icon ? <MenuIcon>{icon}</MenuIcon> : null}\n {children}\n {command ? <MenuCommand>{command}</MenuCommand> : null}\n </ui.li>\n )\n },\n)\n\ntype MenuOptionItemOptions = {\n /**\n * The menu option item icon to use.\n */\n icon?: ReactElement | null\n /**\n * The value of the menu option item.\n */\n value?: string\n /**\n * If `true`, the checkbox or radio will be checked.\n *\n * @default false\n */\n isChecked?: boolean\n /**\n * The type of the menu option item.\n */\n type?: \"radio\" | \"checkbox\"\n}\n\nexport type MenuOptionItemProps = Omit<MenuItemProps, \"icon\" | \"command\"> &\n MenuOptionItemOptions\n\nexport const MenuOptionItem = forwardRef<MenuOptionItemProps, \"button\">(\n (\n { className, icon, isChecked, closeOnSelect = false, children, ...rest },\n ref,\n ) => {\n return (\n <MenuItem\n ref={ref}\n className={cx(\"ui-menu__item--option\", className)}\n aria-checked={ariaAttr(isChecked)}\n closeOnSelect={closeOnSelect}\n {...rest}\n >\n {icon !== null ? (\n <MenuIcon opacity={isChecked ? 1 : 0}>\n {icon || <CheckIcon />}\n </MenuIcon>\n ) : null}\n {children}\n </MenuItem>\n )\n },\n)\n\ntype MenuIconProps = HTMLUIProps<\"span\">\n\nconst MenuIcon = forwardRef<MenuIconProps, \"span\">(\n ({ className, ...rest }, ref) => {\n const { styles } = useMenu()\n\n const css: CSSUIObject = {\n flexShrink: 0,\n display: \"inline-flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n fontSize: \"0.85em\",\n ...styles.icon,\n }\n\n return (\n <ui.span\n ref={ref}\n className={cx(\"ui-menu__item__icon\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n\ntype MenuCommandProps = HTMLUIProps<\"span\">\n\nconst MenuCommand = forwardRef<MenuCommandProps, \"span\">(\n ({ className, ...rest }, ref) => {\n const { styles } = useMenu()\n\n const css: CSSUIObject = { ...styles.command }\n\n return (\n <ui.span\n ref={ref}\n className={cx(\"ui-menu__item__command\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n\nconst CheckIcon: FC = () => (\n <svg viewBox=\"0 0 14 14\" width=\"1em\" height=\"1em\">\n <polygon\n fill=\"currentColor\"\n points=\"5.5 11.9993304 14 3.49933039 12.5 2 5.5 8.99933039 1.5 4.9968652 0 6.49933039\"\n />\n </svg>\n)\n"],"mappings":"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","names":[]}
|
package/dist/chunk-SUYEIZLL.mjs
DELETED
@@ -1,61 +0,0 @@
|
|
1
|
-
"use client"
|
2
|
-
import {
|
3
|
-
useMenu
|
4
|
-
} from "./chunk-TWAYMPIS.mjs";
|
5
|
-
|
6
|
-
// src/menu-button.tsx
|
7
|
-
import { ui, forwardRef } from "@yamada-ui/core";
|
8
|
-
import { PopoverTrigger } from "@yamada-ui/popover";
|
9
|
-
import { ariaAttr, cx, dataAttr, funcAll, handlerAll } from "@yamada-ui/utils";
|
10
|
-
import { useCallback } from "react";
|
11
|
-
import { jsx } from "react/jsx-runtime";
|
12
|
-
var MenuButton = forwardRef(
|
13
|
-
({ className, children, as: As, ...rest }, ref) => {
|
14
|
-
const { isOpen, onOpen, onFocusFirstItem, onFocusLastItem } = useMenu();
|
15
|
-
const onKeyDown = useCallback(
|
16
|
-
(ev) => {
|
17
|
-
const actions = {
|
18
|
-
Enter: funcAll(onOpen, onFocusFirstItem),
|
19
|
-
ArrowDown: funcAll(onOpen, onFocusFirstItem),
|
20
|
-
ArrowUp: funcAll(onOpen, onFocusLastItem)
|
21
|
-
};
|
22
|
-
const action = actions[ev.key];
|
23
|
-
if (!action)
|
24
|
-
return;
|
25
|
-
ev.preventDefault();
|
26
|
-
ev.stopPropagation();
|
27
|
-
action();
|
28
|
-
},
|
29
|
-
[onFocusFirstItem, onFocusLastItem, onOpen]
|
30
|
-
);
|
31
|
-
const Component = As || Button;
|
32
|
-
return /* @__PURE__ */ jsx(PopoverTrigger, { children: /* @__PURE__ */ jsx(
|
33
|
-
Component,
|
34
|
-
{
|
35
|
-
ref,
|
36
|
-
className: cx("ui-menu", className),
|
37
|
-
...rest,
|
38
|
-
"data-active": dataAttr(isOpen),
|
39
|
-
"aria-expanded": ariaAttr(isOpen),
|
40
|
-
onKeyDown: handlerAll(rest.onKeyDown, onKeyDown),
|
41
|
-
children: /* @__PURE__ */ jsx(ui.span, { __css: { pointerEvents: "none", flex: "1 1 auto", minW: 0 }, children })
|
42
|
-
}
|
43
|
-
) });
|
44
|
-
}
|
45
|
-
);
|
46
|
-
var Button = forwardRef((rest, ref) => {
|
47
|
-
const { styles } = useMenu();
|
48
|
-
const css = {
|
49
|
-
display: "inline-flex",
|
50
|
-
appearance: "none",
|
51
|
-
alignItems: "center",
|
52
|
-
outline: 0,
|
53
|
-
...styles.button
|
54
|
-
};
|
55
|
-
return /* @__PURE__ */ jsx(ui.button, { ref, __css: css, ...rest });
|
56
|
-
});
|
57
|
-
|
58
|
-
export {
|
59
|
-
MenuButton
|
60
|
-
};
|
61
|
-
//# sourceMappingURL=chunk-SUYEIZLL.mjs.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"sources":["../src/menu-button.tsx"],"sourcesContent":["import type { HTMLUIProps, CSSUIObject } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { PopoverTrigger } from \"@yamada-ui/popover\"\nimport { ariaAttr, cx, dataAttr, funcAll, handlerAll } from \"@yamada-ui/utils\"\nimport type { KeyboardEvent } from \"react\"\nimport { useCallback } from \"react\"\nimport { useMenu } from \"./menu\"\n\nexport type MenuButtonProps = HTMLUIProps<\"button\">\n\nexport const MenuButton = forwardRef<MenuButtonProps, \"button\">(\n ({ className, children, as: As, ...rest }, ref) => {\n const { isOpen, onOpen, onFocusFirstItem, onFocusLastItem } = useMenu()\n\n const onKeyDown = useCallback(\n (ev: KeyboardEvent) => {\n const actions: Record<string, Function> = {\n Enter: funcAll(onOpen, onFocusFirstItem),\n ArrowDown: funcAll(onOpen, onFocusFirstItem),\n ArrowUp: funcAll(onOpen, onFocusLastItem),\n }\n\n const action = actions[ev.key]\n\n if (!action) return\n\n ev.preventDefault()\n ev.stopPropagation()\n action()\n },\n [onFocusFirstItem, onFocusLastItem, onOpen],\n )\n\n const Component = As || Button\n\n return (\n <PopoverTrigger>\n <Component\n ref={ref}\n className={cx(\"ui-menu\", className)}\n {...rest}\n data-active={dataAttr(isOpen)}\n aria-expanded={ariaAttr(isOpen)}\n onKeyDown={handlerAll(rest.onKeyDown, onKeyDown)}\n >\n <ui.span __css={{ pointerEvents: \"none\", flex: \"1 1 auto\", minW: 0 }}>\n {children}\n </ui.span>\n </Component>\n </PopoverTrigger>\n )\n },\n)\n\nconst Button = forwardRef<MenuButtonProps, \"button\">((rest, ref) => {\n const { styles } = useMenu()\n\n const css: CSSUIObject = {\n display: \"inline-flex\",\n appearance: \"none\",\n alignItems: \"center\",\n outline: 0,\n ...styles.button,\n }\n\n return <ui.button ref={ref} __css={css} {...rest} />\n})\n"],"mappings":";;;;;;AACA,SAAS,IAAI,kBAAkB;AAC/B,SAAS,sBAAsB;AAC/B,SAAS,UAAU,IAAI,UAAU,SAAS,kBAAkB;AAE5D,SAAS,mBAAmB;AAwClB;AAnCH,IAAM,aAAa;AAAA,EACxB,CAAC,EAAE,WAAW,UAAU,IAAI,IAAI,GAAG,KAAK,GAAG,QAAQ;AACjD,UAAM,EAAE,QAAQ,QAAQ,kBAAkB,gBAAgB,IAAI,QAAQ;AAEtE,UAAM,YAAY;AAAA,MAChB,CAAC,OAAsB;AACrB,cAAM,UAAoC;AAAA,UACxC,OAAO,QAAQ,QAAQ,gBAAgB;AAAA,UACvC,WAAW,QAAQ,QAAQ,gBAAgB;AAAA,UAC3C,SAAS,QAAQ,QAAQ,eAAe;AAAA,QAC1C;AAEA,cAAM,SAAS,QAAQ,GAAG,GAAG;AAE7B,YAAI,CAAC;AAAQ;AAEb,WAAG,eAAe;AAClB,WAAG,gBAAgB;AACnB,eAAO;AAAA,MACT;AAAA,MACA,CAAC,kBAAkB,iBAAiB,MAAM;AAAA,IAC5C;AAEA,UAAM,YAAY,MAAM;AAExB,WACE,oBAAC,kBACC;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAW,GAAG,WAAW,SAAS;AAAA,QACjC,GAAG;AAAA,QACJ,eAAa,SAAS,MAAM;AAAA,QAC5B,iBAAe,SAAS,MAAM;AAAA,QAC9B,WAAW,WAAW,KAAK,WAAW,SAAS;AAAA,QAE/C,8BAAC,GAAG,MAAH,EAAQ,OAAO,EAAE,eAAe,QAAQ,MAAM,YAAY,MAAM,EAAE,GAChE,UACH;AAAA;AAAA,IACF,GACF;AAAA,EAEJ;AACF;AAEA,IAAM,SAAS,WAAsC,CAAC,MAAM,QAAQ;AAClE,QAAM,EAAE,OAAO,IAAI,QAAQ;AAE3B,QAAM,MAAmB;AAAA,IACvB,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,GAAG,OAAO;AAAA,EACZ;AAEA,SAAO,oBAAC,GAAG,QAAH,EAAU,KAAU,OAAO,KAAM,GAAG,MAAM;AACpD,CAAC;","names":[]}
|
package/dist/chunk-TWAYMPIS.mjs
DELETED
@@ -1,123 +0,0 @@
|
|
1
|
-
"use client"
|
2
|
-
|
3
|
-
// src/menu.tsx
|
4
|
-
import { useMultiComponentStyle, omitThemeProps } from "@yamada-ui/core";
|
5
|
-
import { Popover } from "@yamada-ui/popover";
|
6
|
-
import { createDescendant } from "@yamada-ui/use-descendant";
|
7
|
-
import { useDisclosure } from "@yamada-ui/use-disclosure";
|
8
|
-
import {
|
9
|
-
createContext,
|
10
|
-
useUnmountEffect,
|
11
|
-
useUpdateEffect
|
12
|
-
} from "@yamada-ui/utils";
|
13
|
-
import { useCallback, useRef, useState } from "react";
|
14
|
-
import { jsx } from "react/jsx-runtime";
|
15
|
-
var {
|
16
|
-
DescendantsContextProvider,
|
17
|
-
useDescendantsContext: useMenuDescendantsContext,
|
18
|
-
useDescendants,
|
19
|
-
useDescendant: useMenuDescendant
|
20
|
-
} = createDescendant();
|
21
|
-
var [MenuProvider, useMenu] = createContext({
|
22
|
-
name: "MenuContext",
|
23
|
-
errorMessage: `useMenu returned is 'undefined'. Seems you forgot to wrap the components in "<Menu />"`
|
24
|
-
});
|
25
|
-
var Menu = (props) => {
|
26
|
-
const [styles, mergedProps] = useMultiComponentStyle("Menu", props);
|
27
|
-
const {
|
28
|
-
initialFocusRef,
|
29
|
-
closeOnSelect = true,
|
30
|
-
placement = "bottom-start",
|
31
|
-
duration = 0.2,
|
32
|
-
...rest
|
33
|
-
} = omitThemeProps(mergedProps);
|
34
|
-
const descendants = useDescendants();
|
35
|
-
const [focusedIndex, setFocusedIndex] = useState(-1);
|
36
|
-
const menuRef = useRef(null);
|
37
|
-
const timeoutIds = useRef(/* @__PURE__ */ new Set([]));
|
38
|
-
const onFocusMenu = useCallback(() => {
|
39
|
-
requestAnimationFrame(
|
40
|
-
() => {
|
41
|
-
var _a;
|
42
|
-
return (_a = menuRef.current) == null ? void 0 : _a.focus({ preventScroll: false });
|
43
|
-
}
|
44
|
-
);
|
45
|
-
}, []);
|
46
|
-
const onFocusFirstItem = useCallback(() => {
|
47
|
-
const id = setTimeout(() => {
|
48
|
-
if (initialFocusRef)
|
49
|
-
return;
|
50
|
-
const first = descendants.enabledFirstValue();
|
51
|
-
if (first)
|
52
|
-
setFocusedIndex(first.index);
|
53
|
-
});
|
54
|
-
timeoutIds.current.add(id);
|
55
|
-
}, [descendants, initialFocusRef]);
|
56
|
-
const onFocusLastItem = useCallback(() => {
|
57
|
-
const id = setTimeout(() => {
|
58
|
-
if (initialFocusRef)
|
59
|
-
return;
|
60
|
-
const last = descendants.enabledLastValue();
|
61
|
-
if (last)
|
62
|
-
setFocusedIndex(last.index);
|
63
|
-
});
|
64
|
-
timeoutIds.current.add(id);
|
65
|
-
}, [descendants, initialFocusRef]);
|
66
|
-
const onOpenInternal = useCallback(() => {
|
67
|
-
var _a;
|
68
|
-
(_a = rest.onOpen) == null ? void 0 : _a.call(rest);
|
69
|
-
onFocusMenu();
|
70
|
-
}, [onFocusMenu, rest]);
|
71
|
-
const { isOpen, onOpen, onClose } = useDisclosure({
|
72
|
-
...props,
|
73
|
-
onOpen: onOpenInternal
|
74
|
-
});
|
75
|
-
useUpdateEffect(() => {
|
76
|
-
if (!isOpen)
|
77
|
-
setFocusedIndex(-1);
|
78
|
-
}, [isOpen]);
|
79
|
-
useUnmountEffect(() => {
|
80
|
-
timeoutIds.current.forEach((id) => clearTimeout(id));
|
81
|
-
timeoutIds.current.clear();
|
82
|
-
});
|
83
|
-
return /* @__PURE__ */ jsx(DescendantsContextProvider, { value: descendants, children: /* @__PURE__ */ jsx(
|
84
|
-
MenuProvider,
|
85
|
-
{
|
86
|
-
value: {
|
87
|
-
isOpen,
|
88
|
-
onOpen,
|
89
|
-
onClose,
|
90
|
-
onFocusFirstItem,
|
91
|
-
onFocusLastItem,
|
92
|
-
closeOnSelect,
|
93
|
-
focusedIndex,
|
94
|
-
setFocusedIndex,
|
95
|
-
menuRef,
|
96
|
-
styles
|
97
|
-
},
|
98
|
-
children: /* @__PURE__ */ jsx(
|
99
|
-
Popover,
|
100
|
-
{
|
101
|
-
...{
|
102
|
-
...rest,
|
103
|
-
isOpen,
|
104
|
-
onOpen,
|
105
|
-
onClose,
|
106
|
-
placement,
|
107
|
-
duration,
|
108
|
-
initialFocusRef,
|
109
|
-
closeOnButton: false
|
110
|
-
}
|
111
|
-
}
|
112
|
-
)
|
113
|
-
}
|
114
|
-
) });
|
115
|
-
};
|
116
|
-
|
117
|
-
export {
|
118
|
-
useMenuDescendantsContext,
|
119
|
-
useMenuDescendant,
|
120
|
-
useMenu,
|
121
|
-
Menu
|
122
|
-
};
|
123
|
-
//# sourceMappingURL=chunk-TWAYMPIS.mjs.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"sources":["../src/menu.tsx"],"sourcesContent":["/**\n * `Menu` is a component that displays a common dropdown menu.\n *\n * @see Docs https://yamada-ui.com/components/overlay/menu\n */\nimport type { CSSUIObject, ThemeProps } from \"@yamada-ui/core\"\nimport { useMultiComponentStyle, omitThemeProps } from \"@yamada-ui/core\"\nimport type { PopoverProps } from \"@yamada-ui/popover\"\nimport { Popover } from \"@yamada-ui/popover\"\nimport { createDescendant } from \"@yamada-ui/use-descendant\"\nimport { useDisclosure } from \"@yamada-ui/use-disclosure\"\nimport {\n createContext,\n useUnmountEffect,\n useUpdateEffect,\n} from \"@yamada-ui/utils\"\nimport type { Dispatch, FC, RefObject, SetStateAction } from \"react\"\nimport { useCallback, useRef, useState } from \"react\"\n\nconst {\n DescendantsContextProvider,\n useDescendantsContext: useMenuDescendantsContext,\n useDescendants,\n useDescendant: useMenuDescendant,\n} = createDescendant<HTMLElement>()\n\nexport { useMenuDescendantsContext, useMenuDescendant }\n\ntype MenuContext = MenuOptions & {\n isOpen: boolean\n onOpen: () => void\n onClose: () => void\n onFocusFirstItem: () => void\n onFocusLastItem: () => void\n focusedIndex: number\n setFocusedIndex: Dispatch<SetStateAction<number>>\n menuRef: RefObject<HTMLDivElement>\n styles: Record<string, CSSUIObject>\n}\n\nconst [MenuProvider, useMenu] = createContext<MenuContext>({\n name: \"MenuContext\",\n errorMessage: `useMenu returned is 'undefined'. Seems you forgot to wrap the components in \"<Menu />\"`,\n})\n\nexport { useMenu }\n\ntype MenuOptions = {\n /**\n * If `true`, the list element will be closed when value is selected.\n *\n * @default true\n */\n closeOnSelect?: boolean\n}\n\nexport type MenuProps = ThemeProps<\"Menu\"> &\n Omit<PopoverProps, \"closeOnButton\"> &\n MenuOptions\n\nexport const Menu: FC<MenuProps> = (props) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"Menu\", props)\n const {\n initialFocusRef,\n closeOnSelect = true,\n placement = \"bottom-start\",\n duration = 0.2,\n ...rest\n } = omitThemeProps(mergedProps)\n\n const descendants = useDescendants()\n\n const [focusedIndex, setFocusedIndex] = useState<number>(-1)\n\n const menuRef = useRef<HTMLDivElement>(null)\n const timeoutIds = useRef<Set<any>>(new Set([]))\n\n const onFocusMenu = useCallback(() => {\n requestAnimationFrame(() =>\n menuRef.current?.focus({ preventScroll: false }),\n )\n }, [])\n\n const onFocusFirstItem = useCallback(() => {\n const id = setTimeout(() => {\n if (initialFocusRef) return\n\n const first = descendants.enabledFirstValue()\n\n if (first) setFocusedIndex(first.index)\n })\n\n timeoutIds.current.add(id)\n }, [descendants, initialFocusRef])\n\n const onFocusLastItem = useCallback(() => {\n const id = setTimeout(() => {\n if (initialFocusRef) return\n\n const last = descendants.enabledLastValue()\n\n if (last) setFocusedIndex(last.index)\n })\n\n timeoutIds.current.add(id)\n }, [descendants, initialFocusRef])\n\n const onOpenInternal = useCallback(() => {\n rest.onOpen?.()\n\n onFocusMenu()\n }, [onFocusMenu, rest])\n\n const { isOpen, onOpen, onClose } = useDisclosure({\n ...props,\n onOpen: onOpenInternal,\n })\n\n useUpdateEffect(() => {\n if (!isOpen) setFocusedIndex(-1)\n }, [isOpen])\n\n useUnmountEffect(() => {\n timeoutIds.current.forEach((id) => clearTimeout(id))\n timeoutIds.current.clear()\n })\n\n return (\n <DescendantsContextProvider value={descendants}>\n <MenuProvider\n value={{\n isOpen,\n onOpen,\n onClose,\n onFocusFirstItem,\n onFocusLastItem,\n closeOnSelect,\n focusedIndex,\n setFocusedIndex,\n menuRef,\n styles,\n }}\n >\n <Popover\n {...{\n ...rest,\n isOpen,\n onOpen,\n onClose,\n placement,\n duration,\n initialFocusRef,\n closeOnButton: false,\n }}\n />\n </MenuProvider>\n </DescendantsContextProvider>\n )\n}\n"],"mappings":";;;AAMA,SAAS,wBAAwB,sBAAsB;AAEvD,SAAS,eAAe;AACxB,SAAS,wBAAwB;AACjC,SAAS,qBAAqB;AAC9B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,aAAa,QAAQ,gBAAgB;AA8HtC;AA5HR,IAAM;AAAA,EACJ;AAAA,EACA,uBAAuB;AAAA,EACvB;AAAA,EACA,eAAe;AACjB,IAAI,iBAA8B;AAgBlC,IAAM,CAAC,cAAc,OAAO,IAAI,cAA2B;AAAA,EACzD,MAAM;AAAA,EACN,cAAc;AAChB,CAAC;AAiBM,IAAM,OAAsB,CAAC,UAAU;AAC5C,QAAM,CAAC,QAAQ,WAAW,IAAI,uBAAuB,QAAQ,KAAK;AAClE,QAAM;AAAA,IACJ;AAAA,IACA,gBAAgB;AAAA,IAChB,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,GAAG;AAAA,EACL,IAAI,eAAe,WAAW;AAE9B,QAAM,cAAc,eAAe;AAEnC,QAAM,CAAC,cAAc,eAAe,IAAI,SAAiB,EAAE;AAE3D,QAAM,UAAU,OAAuB,IAAI;AAC3C,QAAM,aAAa,OAAiB,oBAAI,IAAI,CAAC,CAAC,CAAC;AAE/C,QAAM,cAAc,YAAY,MAAM;AACpC;AAAA,MAAsB,MAAG;AA9E7B;AA+EM,6BAAQ,YAAR,mBAAiB,MAAM,EAAE,eAAe,MAAM;AAAA;AAAA,IAChD;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,QAAM,mBAAmB,YAAY,MAAM;AACzC,UAAM,KAAK,WAAW,MAAM;AAC1B,UAAI;AAAiB;AAErB,YAAM,QAAQ,YAAY,kBAAkB;AAE5C,UAAI;AAAO,wBAAgB,MAAM,KAAK;AAAA,IACxC,CAAC;AAED,eAAW,QAAQ,IAAI,EAAE;AAAA,EAC3B,GAAG,CAAC,aAAa,eAAe,CAAC;AAEjC,QAAM,kBAAkB,YAAY,MAAM;AACxC,UAAM,KAAK,WAAW,MAAM;AAC1B,UAAI;AAAiB;AAErB,YAAM,OAAO,YAAY,iBAAiB;AAE1C,UAAI;AAAM,wBAAgB,KAAK,KAAK;AAAA,IACtC,CAAC;AAED,eAAW,QAAQ,IAAI,EAAE;AAAA,EAC3B,GAAG,CAAC,aAAa,eAAe,CAAC;AAEjC,QAAM,iBAAiB,YAAY,MAAM;AA3G3C;AA4GI,eAAK,WAAL;AAEA,gBAAY;AAAA,EACd,GAAG,CAAC,aAAa,IAAI,CAAC;AAEtB,QAAM,EAAE,QAAQ,QAAQ,QAAQ,IAAI,cAAc;AAAA,IAChD,GAAG;AAAA,IACH,QAAQ;AAAA,EACV,CAAC;AAED,kBAAgB,MAAM;AACpB,QAAI,CAAC;AAAQ,sBAAgB,EAAE;AAAA,EACjC,GAAG,CAAC,MAAM,CAAC;AAEX,mBAAiB,MAAM;AACrB,eAAW,QAAQ,QAAQ,CAAC,OAAO,aAAa,EAAE,CAAC;AACnD,eAAW,QAAQ,MAAM;AAAA,EAC3B,CAAC;AAED,SACE,oBAAC,8BAA2B,OAAO,aACjC;AAAA,IAAC;AAAA;AAAA,MACC,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MAEA;AAAA,QAAC;AAAA;AAAA,UACE,GAAG;AAAA,YACF,GAAG;AAAA,YACH;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA,eAAe;AAAA,UACjB;AAAA;AAAA,MACF;AAAA;AAAA,EACF,GACF;AAEJ;","names":[]}
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|