You're Invited: Meet the Socket team at BSidesSF and RSAC - April 27 - May 1.RSVP
Socket
Sign inDemoInstall
Socket

@rmwc/menu

Package Overview
Dependencies
Maintainers
1
Versions
176
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@rmwc/menu - npm Package Compare versions

Comparing version

to
14.0.0-alpha.0

26

dist/menu-surface/foundation.js

@@ -8,2 +8,3 @@ "use strict";

var menu_surface_1 = require("@material/menu-surface");
var animation_1 = require("@material/animation");
var ANCHOR_CORNER_MAP = {

@@ -71,20 +72,2 @@ bottomEnd: 'BOTTOM_END',

}
},
isFirstElementFocused: function () {
return !!firstFocusableElementRef.current &&
firstFocusableElementRef.current === document.activeElement;
},
isLastElementFocused: function () {
return !!firstFocusableElementRef.current &&
firstFocusableElementRef.current === document.activeElement;
},
focusFirstElement: function () {
return !!firstFocusableElementRef.current &&
firstFocusableElementRef.current.focus &&
firstFocusableElementRef.current.focus();
},
focusLastElement: function () {
return !!firstFocusableElementRef.current &&
firstFocusableElementRef.current.focus &&
firstFocusableElementRef.current.focus();
}

@@ -141,5 +124,9 @@ };

setOpen(false);
}, notifyClosing: function () {
return emit(menu_surface_1.MDCMenuSurfaceFoundation.strings.CLOSING_EVENT, {});
}, notifyOpen: function () {
emit('onOpen', {});
registerBodyClickListener();
}, notifyOpening: function () {
return emit(menu_surface_1.MDCMenuSurfaceFoundation.strings.OPENING_EVENT, {});
}, isElementInContainer: function (el) {

@@ -151,3 +138,4 @@ return rootEl.ref === el || (!!rootEl.ref && rootEl.ref.contains(el));

}, setTransformOrigin: function (origin) {
rootEl.setStyle(menu_surface_1.util.getTransformPropertyName(window) + "-origin", origin);
var propertyName = animation_1.getCorrectPropertyName(window, 'transform') + "-origin";
rootEl.setStyle(propertyName, origin);
} }, getFocusAdapterMethods()), getDimensionAdapterMethods()));

@@ -154,0 +142,0 @@ // Fixes a very annoying issue where the menu isn't stateful

@@ -39,3 +39,3 @@ import * as RMWC from '@rmwc/types';

export declare const MenuSurface: {
<Tag extends React.ElementType<any> = "div">(props: RMWC.ComponentProps<MenuSurfaceProps, React.HTMLProps<HTMLElement>, Tag>, ref: any): JSX.Element;
<Tag extends React.ElementType<any> = "div">(props: RMWC.ComponentProps<MenuSurfaceProps, React.HTMLProps<HTMLElement>, Tag>, ref: any): React.JSX.Element;
displayName: string;

@@ -50,4 +50,4 @@ };

export declare const MenuSurfaceAnchor: {
<Tag extends React.ElementType<any> = "div">(props: RMWC.ComponentProps<MenuSurfaceAnchorProps, React.HTMLProps<HTMLElement>, Tag>, ref: any): JSX.Element;
<Tag extends React.ElementType<any> = "div">(props: RMWC.ComponentProps<MenuSurfaceAnchorProps, React.HTMLProps<HTMLElement>, Tag>, ref: any): React.JSX.Element;
displayName: string;
};

@@ -93,3 +93,3 @@ "use strict";

// fixes an issue with nested span element on list items
var el = base_1.closest(evt.target, '.mdc-list-item');
var el = base_1.closest(evt.target, '.mdc-deprecated-list-item');
el && foundation.handleItemAction(el);

@@ -96,0 +96,0 @@ }, [foundation, onClick]);

@@ -33,3 +33,3 @@ import * as RMWC from '@rmwc/types';

export declare const MenuItems: {
<Tag extends React.ElementType<any> = "div">(props: RMWC.ComponentProps<MenuItemsProps, React.HTMLProps<HTMLElement>, Tag>, ref: any): JSX.Element;
<Tag extends React.ElementType<any> = "div">(props: RMWC.ComponentProps<MenuItemsProps, React.HTMLProps<HTMLElement>, Tag>, ref: any): React.JSX.Element;
displayName: string;

@@ -42,3 +42,3 @@ };

export declare const MenuItem: {
<Tag extends React.ElementType<any> = "div">(props: RMWC.ComponentProps<MenuItemProps, React.HTMLProps<HTMLElement>, Tag>, ref: any): JSX.Element;
<Tag extends React.ElementType<any> = "div">(props: RMWC.ComponentProps<MenuItemProps, React.HTMLProps<HTMLElement>, Tag>, ref: any): React.JSX.Element;
displayName: string;

@@ -45,0 +45,0 @@ };

@@ -1,3 +0,3 @@

/// <reference types="react" />
export default function Readme(): JSX.Element;
export declare const galleryExample: JSX.Element;
import React from 'react';
export default function Readme(): React.JSX.Element;
export declare const galleryExample: React.JSX.Element;

@@ -122,5 +122,5 @@ "use strict";

exports.galleryExample = (react_1.default.createElement("div", { "aria-hidden": "false", className: "mdc-menu mdc-menu-surface--open mdc-menu-surface", style: { position: 'static' } },
react_1.default.createElement("div", { role: "menu", className: "mdc-list mdc-menu__items mdc-list" },
react_1.default.createElement("div", { role: "menuitem", className: "mdc-ripple-upgraded mdc-list-item" }, "Cookies"),
react_1.default.createElement("div", { role: "menuitem", className: "mdc-ripple-upgraded mdc-list-item" }, "Pizza"),
react_1.default.createElement("div", { role: "menuitem", className: "mdc-ripple-upgraded mdc-list-item" }, "Icecream"))));
react_1.default.createElement("div", { role: "menu", className: "mdc-deprecated-list mdc-menu__items mdc-deprecated-list" },
react_1.default.createElement("div", { role: "menuitem", className: "mdc-ripple-upgraded mdc-deprecated-list-item" }, "Cookies"),
react_1.default.createElement("div", { role: "menuitem", className: "mdc-ripple-upgraded mdc-deprecated-list-item" }, "Pizza"),
react_1.default.createElement("div", { role: "menuitem", className: "mdc-ripple-upgraded mdc-deprecated-list-item" }, "Icecream"))));
import { __assign, __read, __rest } from "tslib";
import { useCallback, useEffect, useState, useRef } from 'react';
import { useFoundation, closest, emptyClientRect, raf } from '@rmwc/base';
import { MDCMenuSurfaceFoundation, util } from '@material/menu-surface';
import { MDCMenuSurfaceFoundation } from '@material/menu-surface';
import { getCorrectPropertyName } from '@material/animation';
var ANCHOR_CORNER_MAP = {

@@ -67,20 +68,2 @@ bottomEnd: 'BOTTOM_END',

}
},
isFirstElementFocused: function () {
return !!firstFocusableElementRef.current &&
firstFocusableElementRef.current === document.activeElement;
},
isLastElementFocused: function () {
return !!firstFocusableElementRef.current &&
firstFocusableElementRef.current === document.activeElement;
},
focusFirstElement: function () {
return !!firstFocusableElementRef.current &&
firstFocusableElementRef.current.focus &&
firstFocusableElementRef.current.focus();
},
focusLastElement: function () {
return !!firstFocusableElementRef.current &&
firstFocusableElementRef.current.focus &&
firstFocusableElementRef.current.focus();
}

@@ -137,5 +120,9 @@ };

setOpen(false);
}, notifyClosing: function () {
return emit(MDCMenuSurfaceFoundation.strings.CLOSING_EVENT, {});
}, notifyOpen: function () {
emit('onOpen', {});
registerBodyClickListener();
}, notifyOpening: function () {
return emit(MDCMenuSurfaceFoundation.strings.OPENING_EVENT, {});
}, isElementInContainer: function (el) {

@@ -147,3 +134,4 @@ return rootEl.ref === el || (!!rootEl.ref && rootEl.ref.contains(el));

}, setTransformOrigin: function (origin) {
rootEl.setStyle(util.getTransformPropertyName(window) + "-origin", origin);
var propertyName = getCorrectPropertyName(window, 'transform') + "-origin";
rootEl.setStyle(propertyName, origin);
} }, getFocusAdapterMethods()), getDimensionAdapterMethods()));

@@ -150,0 +138,0 @@ // Fixes a very annoying issue where the menu isn't stateful

@@ -39,3 +39,3 @@ import * as RMWC from '@rmwc/types';

export declare const MenuSurface: {
<Tag extends React.ElementType<any> = "div">(props: RMWC.ComponentProps<MenuSurfaceProps, React.HTMLProps<HTMLElement>, Tag>, ref: any): JSX.Element;
<Tag extends React.ElementType<any> = "div">(props: RMWC.ComponentProps<MenuSurfaceProps, React.HTMLProps<HTMLElement>, Tag>, ref: any): React.JSX.Element;
displayName: string;

@@ -50,4 +50,4 @@ };

export declare const MenuSurfaceAnchor: {
<Tag extends React.ElementType<any> = "div">(props: RMWC.ComponentProps<MenuSurfaceAnchorProps, React.HTMLProps<HTMLElement>, Tag>, ref: any): JSX.Element;
<Tag extends React.ElementType<any> = "div">(props: RMWC.ComponentProps<MenuSurfaceAnchorProps, React.HTMLProps<HTMLElement>, Tag>, ref: any): React.JSX.Element;
displayName: string;
};

@@ -90,3 +90,3 @@ import { __assign, __read, __rest, __spreadArray } from "tslib";

// fixes an issue with nested span element on list items
var el = closest(evt.target, '.mdc-list-item');
var el = closest(evt.target, '.mdc-deprecated-list-item');
el && foundation.handleItemAction(el);

@@ -93,0 +93,0 @@ }, [foundation, onClick]);

@@ -33,3 +33,3 @@ import * as RMWC from '@rmwc/types';

export declare const MenuItems: {
<Tag extends React.ElementType<any> = "div">(props: RMWC.ComponentProps<MenuItemsProps, React.HTMLProps<HTMLElement>, Tag>, ref: any): JSX.Element;
<Tag extends React.ElementType<any> = "div">(props: RMWC.ComponentProps<MenuItemsProps, React.HTMLProps<HTMLElement>, Tag>, ref: any): React.JSX.Element;
displayName: string;

@@ -42,3 +42,3 @@ };

export declare const MenuItem: {
<Tag extends React.ElementType<any> = "div">(props: RMWC.ComponentProps<MenuItemProps, React.HTMLProps<HTMLElement>, Tag>, ref: any): JSX.Element;
<Tag extends React.ElementType<any> = "div">(props: RMWC.ComponentProps<MenuItemProps, React.HTMLProps<HTMLElement>, Tag>, ref: any): React.JSX.Element;
displayName: string;

@@ -45,0 +45,0 @@ };

@@ -1,3 +0,3 @@

/// <reference types="react" />
export default function Readme(): JSX.Element;
export declare const galleryExample: JSX.Element;
import React from 'react';
export default function Readme(): React.JSX.Element;
export declare const galleryExample: React.JSX.Element;

@@ -118,5 +118,5 @@ import { __read } from "tslib";

export var galleryExample = (React.createElement("div", { "aria-hidden": "false", className: "mdc-menu mdc-menu-surface--open mdc-menu-surface", style: { position: 'static' } },
React.createElement("div", { role: "menu", className: "mdc-list mdc-menu__items mdc-list" },
React.createElement("div", { role: "menuitem", className: "mdc-ripple-upgraded mdc-list-item" }, "Cookies"),
React.createElement("div", { role: "menuitem", className: "mdc-ripple-upgraded mdc-list-item" }, "Pizza"),
React.createElement("div", { role: "menuitem", className: "mdc-ripple-upgraded mdc-list-item" }, "Icecream"))));
React.createElement("div", { role: "menu", className: "mdc-deprecated-list mdc-menu__items mdc-deprecated-list" },
React.createElement("div", { role: "menuitem", className: "mdc-ripple-upgraded mdc-deprecated-list-item" }, "Cookies"),
React.createElement("div", { role: "menuitem", className: "mdc-ripple-upgraded mdc-deprecated-list-item" }, "Pizza"),
React.createElement("div", { role: "menuitem", className: "mdc-ripple-upgraded mdc-deprecated-list-item" }, "Icecream"))));
{
"name": "@rmwc/menu",
"version": "8.0.8",
"version": "14.0.0-alpha.0",
"description": "RMWC Menu component",

@@ -39,9 +39,10 @@ "main": "dist/index.js",

"dependencies": {
"@material/menu": "^8.0.0",
"@material/menu-surface": "^8.0.0",
"@rmwc/base": "^8.0.8",
"@rmwc/list": "^8.0.8",
"@rmwc/types": "^8.0.8"
"@material/animation": "^14.0.0",
"@material/menu": "^14.0.0",
"@material/menu-surface": "^14.0.0",
"@rmwc/base": "^14.0.0-alpha.0",
"@rmwc/list": "^14.0.0-alpha.0",
"@rmwc/types": "^14.0.0-alpha.0"
},
"gitHead": "d9befec0e3b258864b71686eecd16c16feb43cf1"
}

@@ -22,85 +22,93 @@ # Menus

```jsx
function Example() {
const [open, setOpen] = React.useState(false);
<>
{function Example() {
const [open, setOpen] = React.useState(false);
return (
<MenuSurfaceAnchor>
<Menu
open={open}
onSelect={(evt) => console.log(evt.detail.index)}
onClose={(evt) => setOpen(false)}
>
<MenuItem>Cookies</MenuItem>
<MenuItem>Pizza</MenuItem>
{/** MenuItem is just a ListItem, so you can intermingle other List components */}
<ListDivider />
<MenuItem>Icecream</MenuItem>
</Menu>
return (
<MenuSurfaceAnchor>
<Menu
open={open}
onSelect={(evt) => console.log(evt.detail.index)}
onClose={(evt) => setOpen(false)}
>
<MenuItem>Cookies</MenuItem>
<MenuItem>Pizza</MenuItem>
{/** MenuItem is just a ListItem, so you can intermingle other List components */}
<ListDivider />
<MenuItem>Icecream</MenuItem>
</Menu>
<Button raised onClick={(evt) => setOpen(!open)}>
Menu
</Button>
</MenuSurfaceAnchor>
);
}
<Button raised onClick={(evt) => setOpen(!open)}>
Menu
</Button>
</MenuSurfaceAnchor>
);
}}
</>
```
```jsx
function Example() {
const [open, setOpen] = React.useState(false);
<>
{function Example() {
const [open, setOpen] = React.useState(false);
return (
<MenuSurfaceAnchor>
<MenuSurface open={open} onClose={(evt) => setOpen(false)}>
<div style={{ padding: '1rem', width: '8rem' }}>
Make the content whatever you want.
</div>
</MenuSurface>
return (
<MenuSurfaceAnchor>
<MenuSurface open={open} onClose={(evt) => setOpen(false)}>
<div style={{ padding: '1rem', width: '8rem' }}>
Make the content whatever you want.
</div>
</MenuSurface>
<Button raised onClick={(evt) => setOpen(!open)}>
Menu Surface
</Button>
</MenuSurfaceAnchor>
);
}
<Button raised onClick={(evt) => setOpen(!open)}>
Menu Surface
</Button>
</MenuSurfaceAnchor>
);
}}
</>
```
```jsx
function Example() {
const [open, setOpen] = React.useState(false);
<>
{function Example() {
const [open, setOpen] = React.useState(false);
return (
<MenuSurfaceAnchor>
<MenuSurface open={open} onClose={(evt) => setOpen(false)}>
<div style={{ padding: '1rem', width: '8rem' }}>Menu</div>
</MenuSurface>
{/** The handle can be any component you want */}
<IconButton icon="menu" onClick={(evt) => setOpen(!open)} />
</MenuSurfaceAnchor>
);
}
return (
<MenuSurfaceAnchor>
<MenuSurface open={open} onClose={(evt) => setOpen(false)}>
<div style={{ padding: '1rem', width: '8rem' }}>Menu</div>
</MenuSurface>
{/** The handle can be any component you want */}
<IconButton icon="menu" onClick={(evt) => setOpen(!open)} />
</MenuSurfaceAnchor>
);
}}
</>
```
```jsx
function Example() {
const [open, setOpen] = React.useState(false);
<>
{function Example() {
const [open, setOpen] = React.useState(false);
return (
<MenuSurfaceAnchor>
<Menu
open={open}
onSelect={(evt) => console.log(evt.detail.index)}
onClose={(evt) => setOpen(false)}
>
<MenuItem>Item One</MenuItem>
<MenuItem disabled>Item Two (disabled)</MenuItem>
<MenuItem>Item Three</MenuItem>
</Menu>
return (
<MenuSurfaceAnchor>
<Menu
open={open}
onSelect={(evt) => console.log(evt.detail.index)}
onClose={(evt) => setOpen(false)}
>
<MenuItem>Item One</MenuItem>
<MenuItem disabled>Item Two (disabled)</MenuItem>
<MenuItem>Item Three</MenuItem>
</Menu>
<Button raised onClick={() => setOpen(!open)}>
Menu
</Button>
</MenuSurfaceAnchor>
);
}
<Button raised onClick={() => setOpen(!open)}>
Menu
</Button>
</MenuSurfaceAnchor>
);
}}
</>
```

@@ -133,35 +141,37 @@

```jsx
function Example() {
const [anchorCorner, setAnchorCorner] =
React.useState('topLeft');
<>
{function Example() {
const [anchorCorner, setAnchorCorner] =
React.useState('topLeft');
return (
<>
<MenuSurfaceAnchor>
<MenuSurface anchorCorner={anchorCorner} open={true}>
<div style={{ padding: '1rem', width: '8rem' }}>
anchorCorner: {anchorCorner}
</div>
</MenuSurface>
<Button raised label="Anchored Menu" />
</MenuSurfaceAnchor>
return (
<>
<MenuSurfaceAnchor>
<MenuSurface anchorCorner={anchorCorner} open={true}>
<div style={{ padding: '1rem', width: '8rem' }}>
anchorCorner: {anchorCorner}
</div>
</MenuSurface>
<Button raised label="Anchored Menu" />
</MenuSurfaceAnchor>
<Select
value={anchorCorner}
label="anchorCorner"
onChange={(evt) => setAnchorCorner(evt.currentTarget.value)}
options={[
'topLeft',
'topRight',
'bottomLeft',
'bottomRight',
'topStart',
'topEnd',
'bottomStart',
'bottomEnd'
]}
/>
</>
);
}
<Select
value={anchorCorner}
label="anchorCorner"
onChange={(evt) => setAnchorCorner(evt.currentTarget.value)}
options={[
'topLeft',
'topRight',
'bottomLeft',
'bottomRight',
'topStart',
'topEnd',
'bottomStart',
'bottomEnd'
]}
/>
</>
);
}}
</>
```

@@ -199,38 +209,42 @@

```jsx
function Example() {
const [renderToPortal, setRenderToPortal] = React.useState(true);
const [menuIsOpen, setMenuIsOpen] = React.useState(false);
const options = ['Cookies', 'Pizza', 'Icecream'];
return (
<>
<div
style={{
marginBottom: '10rem',
height: '3.5rem',
overflow: 'hidden'
}}
>
<MenuSurfaceAnchor>
<Button raised onClick={() => setMenuIsOpen(!menuIsOpen)}>
Open Menu
</Button>
<Menu
open={menuIsOpen}
onClose={() => setMenuIsOpen(false)}
renderToPortal={renderToPortal}
>
{options.map((o) => (
<MenuItem key={o}>{o}</MenuItem>
))}
</Menu>
</MenuSurfaceAnchor>
</div>
<Checkbox
checked={renderToPortal}
onChange={(evt) => setRenderToPortal(evt.currentTarget.checked)}
label="renderToPortal"
/>
</>
);
}
<>
{function Example() {
const [renderToPortal, setRenderToPortal] = React.useState(true);
const [menuIsOpen, setMenuIsOpen] = React.useState(false);
const options = ['Cookies', 'Pizza', 'Icecream'];
return (
<>
<div
style={{
marginBottom: '10rem',
height: '3.5rem',
overflow: 'hidden'
}}
>
<MenuSurfaceAnchor>
<Button raised onClick={() => setMenuIsOpen(!menuIsOpen)}>
Open Menu
</Button>
<Menu
open={menuIsOpen}
onClose={() => setMenuIsOpen(false)}
renderToPortal={renderToPortal}
>
{options.map((o) => (
<MenuItem key={o}>{o}</MenuItem>
))}
</Menu>
</MenuSurfaceAnchor>
</div>
<Checkbox
checked={renderToPortal}
onChange={(evt) =>
setRenderToPortal(evt.currentTarget.checked)
}
label="renderToPortal"
/>
</>
);
}}
</>
```

@@ -237,0 +251,0 @@

Sorry, the diff of this file is not supported yet