@popmenu/ordering-ui 0.124.1 → 0.125.1

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/index.js CHANGED
@@ -213,12 +213,12 @@ var useStyles$6 = core.makeStyles(function () { return ({
213
213
  }); });
214
214
  var MenuItemImg = function (props) {
215
215
  var _a = props.image, image = _a === void 0 ? {} : _a;
216
- var src = image.src, alt = image.alt;
216
+ var src = image.src;
217
217
  var classes = useStyles$6();
218
- if (!src || !alt) {
218
+ if (!src) {
219
219
  return null;
220
220
  }
221
- return (React__default['default'].createElement(core.Box, { width: 125, height: "100%", borderRadius: 16, overflow: "hidden", flexShrink: 0 }, React__default['default'].createElement("img", { src: src, alt: alt, className: classes.img })));
221
+ return (React__default['default'].createElement(core.Box, { width: 125, height: "100%", borderRadius: 16, overflow: "hidden", flexShrink: 0 }, React__default['default'].createElement("img", { src: src, alt: "", className: classes.img })));
222
222
  };
223
223
 
224
224
  var MenuItemInfo = function (props) {
@@ -1539,13 +1539,13 @@ StatusTag.defaultProps = {
1539
1539
  StatusTag.displayName = 'StatusTag';
1540
1540
 
1541
1541
  var MenuItem = React.forwardRef(function (props, ref) {
1542
- var onClick = props.onClick, id = props.id, description = props.description, isOutOfStock = props.isOutOfStock, title = props.title, loading = props.loading, isFeatured = props.isFeatured, image = props.image, likeCount = props.likeCount, reviewCount = props.reviewCount, price = props.price, available = props.available, itemTags = props.itemTags, className = props.className, restProps = __rest$1(props, ["onClick", "id", "description", "isOutOfStock", "title", "loading", "isFeatured", "image", "likeCount", "reviewCount", "price", "available", "itemTags", "className"]);
1542
+ var ariaLabel = props.ariaLabel, onClick = props.onClick, id = props.id, description = props.description, isOutOfStock = props.isOutOfStock, title = props.title, loading = props.loading, isFeatured = props.isFeatured, image = props.image, likeCount = props.likeCount, reviewCount = props.reviewCount, price = props.price, available = props.available, itemTags = props.itemTags, className = props.className, restProps = __rest$1(props, ["ariaLabel", "onClick", "id", "description", "isOutOfStock", "title", "loading", "isFeatured", "image", "likeCount", "reviewCount", "price", "available", "itemTags", "className"]);
1543
1543
  var classes = useMenuItemStyles(props);
1544
1544
  var handleClick = function (event) {
1545
1545
  onClick(id, event);
1546
1546
  };
1547
1547
  return (React__default['default'].createElement(core.Card, __assign$1({ className: classNames(classes.card, className), ref: ref, elevation: 0, "data-component-type": "menu-item" }, restProps),
1548
- React__default['default'].createElement(core.CardActionArea, { className: classes.cardActionArea, onClick: handleClick, disabled: loading },
1548
+ React__default['default'].createElement(core.CardActionArea, { className: classes.cardActionArea, onClick: handleClick, disabled: loading, "aria-label": ariaLabel },
1549
1549
  React__default['default'].createElement(MenuItemInfo, null,
1550
1550
  isFeatured && React__default['default'].createElement(StatusTag, { color: "highlight", label: "Featured", variant: "filled", size: "sm" }),
1551
1551
  React__default['default'].createElement(core.Box, { display: "flex", gridGap: 8, alignItems: "center" },
@@ -1659,7 +1659,7 @@ var OrderingAppContextProvider = function (props) {
1659
1659
  var DishCheckoutCard = function (props) {
1660
1660
  var _a;
1661
1661
  var id = props.id, name = props.name, quantity = props.quantity, modifierGroups = props.modifierGroups, onDelete = props.onDelete, onEdit = props.onEdit, onQuantityChange = props.onQuantityChange, price = props.price, specialInstructions = props.specialInstructions, disabled = props.disabled, warningMessage = props.warningMessage, _b = props.image, image = _b === void 0 ? {} : _b, messages = props.messages;
1662
- var src = image.src, alt = image.alt;
1662
+ var src = image.src;
1663
1663
  var classes = useDishCheckoutCardStyles(props);
1664
1664
  var appContext = useOrderingAppContext()[0];
1665
1665
  var _c = React.useState(false), open = _c[0], setOpen = _c[1];
@@ -1705,7 +1705,7 @@ var DishCheckoutCard = function (props) {
1705
1705
  };
1706
1706
  return (React__default['default'].createElement(core.Box, { className: classes.root },
1707
1707
  React__default['default'].createElement(core.Box, { display: "flex", gridGap: 3 },
1708
- src && alt && React__default['default'].createElement("img", { src: src, alt: alt, className: classes.img }),
1708
+ src && React__default['default'].createElement("img", { src: src, alt: "", className: classes.img }),
1709
1709
  React__default['default'].createElement(core.Box, { flexGrow: 1 },
1710
1710
  React__default['default'].createElement(Typography, { variant: "h2", className: classes.name }, name),
1711
1711
  modifierGroups && formatModifiers(modifierGroups),
@@ -1719,7 +1719,7 @@ var DishCheckoutCard = function (props) {
1719
1719
  React__default['default'].createElement(Icon, { icon: SvgTrash, size: "large" })))),
1720
1720
  React__default['default'].createElement(core.Box, { display: "flex", gridGap: 16, alignItems: "center" },
1721
1721
  React__default['default'].createElement(core.FormControl, { variant: "outlined", hiddenLabel: true },
1722
- React__default['default'].createElement(core.Select, { disabled: disabled, open: open, value: quantity, labelId: "select-label-" + id, "aria-label": labelString(name) + " quantity select", onClick: function () { return setOpen(!open); }, disableUnderline: true, onChange: handleQuantityChange, fullWidth: true, startAdornment: React__default['default'].createElement(core.InputAdornment, { position: "start" },
1722
+ React__default['default'].createElement(core.Select, { disabled: disabled, value: quantity, onOpen: function () { return setOpen(true); }, onClose: function () { return setOpen(false); }, SelectDisplayProps: { 'aria-label': labelString(name) + " quantity select" }, disableUnderline: true, onChange: handleQuantityChange, fullWidth: true, startAdornment: React__default['default'].createElement(core.InputAdornment, { position: "start" },
1723
1723
  React__default['default'].createElement(Icon, { icon: open ? SvgChevronUp : SvgChevronDown, size: "large" })), inputProps: { shrink: false }, MenuProps: {
1724
1724
  disablePortal: true,
1725
1725
  anchorOrigin: {
@@ -1741,13 +1741,13 @@ var DishCheckoutCard = function (props) {
1741
1741
  };
1742
1742
 
1743
1743
  var DishDetailsReview = React.forwardRef(function (props) {
1744
- var userName = props.userName, userAvatarUrl = props.userAvatarUrl, content = props.content, createdAgo = props.createdAgo;
1744
+ var userName = props.userName, userAvatarUrl = props.userAvatarUrl, content = props.content, createdAgo = props.createdAgo, alt = props.alt;
1745
1745
  return (React__default['default'].createElement(core.Box, { display: "flex" },
1746
1746
  React__default['default'].createElement(core.Box, { mr: 1 },
1747
- React__default['default'].createElement(Avatar, { size: "small", src: userAvatarUrl })),
1747
+ React__default['default'].createElement(Avatar, { size: "small", src: userAvatarUrl, alt: alt })),
1748
1748
  React__default['default'].createElement(core.Box, { width: "100%" },
1749
1749
  React__default['default'].createElement(core.Box, { display: "flex", justifyContent: "space-between", mb: 1 },
1750
- React__default['default'].createElement(Typography, { color: "grey.600", style: { display: 'flex', alignItems: 'center' } }, userName),
1750
+ React__default['default'].createElement(Typography, { variant: "body1", variantMapping: { body1: 'h3' }, color: "grey.600", style: { display: 'flex', alignItems: 'center' } }, userName),
1751
1751
  React__default['default'].createElement(Typography, { color: "grey.600", variant: "subtitle1", style: { display: 'flex', alignItems: 'center' } }, createdAgo)),
1752
1752
  React__default['default'].createElement(Typography, { color: "grey.900", weight: "regular" }, content))));
1753
1753
  });
@@ -1765,6 +1765,9 @@ var useDishModifierCardStyles = styles.makeStyles(function (theme) { return ({
1765
1765
  error: {
1766
1766
  color: theme.palette.error.main,
1767
1767
  },
1768
+ helperText: {
1769
+ color: theme.palette.text.primary,
1770
+ },
1768
1771
  name: {
1769
1772
  fontSize: theme.spacing(2.25),
1770
1773
  marginBottom: theme.spacing(2),
@@ -1884,7 +1887,7 @@ var useEndAdornmentStyles = styles.makeStyles(function (theme) { return ({
1884
1887
  }); });
1885
1888
 
1886
1889
  var QuantityPicker = function (props) {
1887
- var value = props.value, onChange = props.onChange, disabled = props.disabled, disableIncrement = props.disableIncrement, preventManualChange = props.preventManualChange, variation = props.variation;
1890
+ var value = props.value, onChange = props.onChange, disabled = props.disabled, disableIncrement = props.disableIncrement, preventManualChange = props.preventManualChange, variation = props.variation, name = props.name;
1888
1891
  var fieldClasses = useQuantityPickerStyles();
1889
1892
  var inputClasses = useQuantityInputStyles(props);
1890
1893
  var startAdornmentClasses = useStartAdornmentStyles(props);
@@ -1906,9 +1909,9 @@ var QuantityPicker = function (props) {
1906
1909
  return (React__default['default'].createElement(core.TextField, { classes: fieldClasses, type: "number", variant: variation === 'itemCount' ? 'filled' : 'standard', value: value, disabled: disabled, onChange: handleChange, InputProps: {
1907
1910
  classes: inputClasses,
1908
1911
  disableUnderline: true,
1909
- endAdornment: (React__default['default'].createElement(IconButton, { "aria-label": "plus one", className: endAdornmentClasses.root, color: "default", onClick: onIncrement, disabled: disabled || disableIncrement },
1912
+ endAdornment: (React__default['default'].createElement(IconButton, { "aria-label": "increase quantity " + name, className: endAdornmentClasses.root, color: "default", onClick: onIncrement, disabled: disabled || disableIncrement },
1910
1913
  React__default['default'].createElement(Icon, { icon: SvgPlusCircle }))),
1911
- startAdornment: (React__default['default'].createElement(IconButton, { "aria-label": "minus one", className: startAdornmentClasses.root, color: "default", onClick: onDecrement, disabled: disabled || value <= 0 },
1914
+ startAdornment: (React__default['default'].createElement(IconButton, { "aria-label": "decrease quantity " + name, className: startAdornmentClasses.root, color: "default", onClick: onDecrement, disabled: disabled || value <= 0 },
1912
1915
  React__default['default'].createElement(Icon, { icon: SvgMinusCircle }))),
1913
1916
  } }));
1914
1917
  };
@@ -2007,7 +2010,7 @@ var MultipleQuantitySelectControl = function (props) {
2007
2010
  React__default['default'].createElement(Label, { name: modifier.name, price: modifier.formattedPrice, disabled: isOutOfStock || modifier.outOfStock }),
2008
2011
  modifier.outOfStock && (React__default['default'].createElement(core.Box, { minWidth: "90px", marginLeft: 2 },
2009
2012
  React__default['default'].createElement(StatusTag, { color: "warning", label: "Out of stock", variant: "outlined", size: "md" }))),
2010
- !modifier.outOfStock && (React__default['default'].createElement(QuantityPicker, { variation: "modifierCount", value: modifier.quantity, disableIncrement: disableNewSelections, preventManualChange: true, onChange: makeHandleChange(modifier), disabled: isOutOfStock || modifier.outOfStock }))),
2013
+ !modifier.outOfStock && (React__default['default'].createElement(QuantityPicker, { variation: "modifierCount", value: modifier.quantity, disableIncrement: disableNewSelections, preventManualChange: true, onChange: makeHandleChange(modifier), disabled: isOutOfStock || modifier.outOfStock, name: modifier.name }))),
2011
2014
  React__default['default'].createElement(core.Box, { display: "flex", alignItems: "flex-start", gridGap: 4 },
2012
2015
  modifier.hasModifiers && !modifier.outOfStock && (React__default['default'].createElement(Options, { handleOptionsClick: function () { return handleOptionsClick(modifier.id); } })),
2013
2016
  selectionQuantity[modifier.id] &&
@@ -2057,12 +2060,13 @@ var getStatusTagProps = function (props) {
2057
2060
  return { color: color, label: label, variant: variant };
2058
2061
  };
2059
2062
  var DishModifierCard = function (props) {
2063
+ var _a;
2060
2064
  var aggregatePrice = props.aggregatePrice, name = props.name, disableNewSelections = props.disableNewSelections, modifiers = props.modifiers, value = props.value, messages = props.messages, onChange = props.onChange, type = props.type, error = props.error, isOutOfStock = props.isOutOfStock, isRequired = props.isRequired, handleOptionsClick = props.handleOptionsClick, selectionQuantity = props.selectionQuantity;
2061
2065
  var classes = useDishModifierCardStyles();
2062
2066
  return (React__default['default'].createElement(core.Box, { className: classes.root },
2063
2067
  React__default['default'].createElement(core.Box, { display: "flex", justifyContent: "space-between", width: "100%", alignItems: "center", height: "fit-content", marginBottom: 2 },
2064
2068
  React__default['default'].createElement(StatusTag, __assign$1({}, getStatusTagProps(props))),
2065
- !isOutOfStock && (React__default['default'].createElement(Typography, { variant: "subtitle1", className: error ? classes.error : undefined }, messages.helperText))),
2069
+ !isOutOfStock && (React__default['default'].createElement(Typography, { variant: "subtitle1", className: classNames((_a = {}, _a[classes.error] = error, _a[classes.helperText] = !error, _a)) }, messages.helperText))),
2066
2070
  React__default['default'].createElement(Typography, { className: classes.name }, name),
2067
2071
  React__default['default'].createElement(core.Box, null,
2068
2072
  React__default['default'].createElement(ModifierControls, { value: value, modifiers: modifiers, isOutOfStock: isOutOfStock, isRequired: isRequired, onChange: onChange, disableNewSelections: disableNewSelections, type: type, messages: messages, handleOptionsClick: handleOptionsClick, aggregatePrice: aggregatePrice, selectionQuantity: selectionQuantity }))));
@@ -2137,7 +2141,7 @@ var LocationCard = function (props) {
2137
2141
  onClick(value);
2138
2142
  };
2139
2143
  return (React__default['default'].createElement(core.Card, __assign$1({ className: classes.root }, muiProps),
2140
- React__default['default'].createElement(core.CardActionArea, __assign$1({ onClick: handleClick, role: "checkbox", "aria-checked": selected, disabled: outOfRange || Boolean(anyAvailability), classes: { focusHighlight: classes.actionAreaFocusHighlight } }, CardActionAreaProps),
2144
+ React__default['default'].createElement(core.CardActionArea, __assign$1({ onClick: handleClick, role: "radio", "aria-checked": selected, disabled: outOfRange || Boolean(anyAvailability), classes: { focusHighlight: classes.actionAreaFocusHighlight } }, CardActionAreaProps),
2141
2145
  React__default['default'].createElement(core.CardContent, { className: classes.content },
2142
2146
  React__default['default'].createElement(core.Box, { className: classes.locationInfo },
2143
2147
  React__default['default'].createElement(core.Box, { display: "flex", justifyContent: "space-between" },
@@ -2200,7 +2204,8 @@ var MenuDropdown = function (props) {
2200
2204
  return breakpoints.down('md');
2201
2205
  });
2202
2206
  return (React__default['default'].createElement(core.FormControl, { hiddenLabel: true, classes: { root: classes.formControl } },
2203
- React__default['default'].createElement(core.Select, { open: open, value: selectedOptionId, id: "menu-dropdown-select", "aria-label": props.label, onClick: function () { return setOpen(!open); }, disableUnderline: true, onChange: function (event) { return onSelect(event.target.value); }, fullWidth: true, startAdornment: React__default['default'].createElement(core.InputAdornment, { position: "start" },
2207
+ React__default['default'].createElement("label", { id: "menu-dropdown-label", className: "sr-only" }, props.label),
2208
+ React__default['default'].createElement(core.Select, { SelectDisplayProps: { 'aria-labelledby': 'menu-dropdown-label' }, value: selectedOptionId, onOpen: function () { return setOpen(true); }, onClose: function () { return setOpen(false); }, disableUnderline: true, onChange: function (event) { return onSelect(event.target.value); }, fullWidth: true, startAdornment: React__default['default'].createElement(core.InputAdornment, { position: "start" },
2204
2209
  React__default['default'].createElement(Icon, { icon: SvgRestaurantMenu, size: isMobile ? 'extra-large' : 'large' })), IconComponent: function () { return (React__default['default'].createElement(core.InputAdornment, { position: "end" },
2205
2210
  React__default['default'].createElement(Icon, { color: "#0076CB", icon: open ? SvgChevronUp : SvgChevronDown, size: "large" }))); }, MenuProps: {
2206
2211
  disablePortal: true,
@@ -2311,7 +2316,7 @@ var useSelectableChipStyles = styles.makeStyles(function (theme) { return ({
2311
2316
 
2312
2317
  var SelectableChip = function (props) {
2313
2318
  var classes = useSelectableChipStyles(props);
2314
- return (React__default['default'].createElement(Tab__default['default'], __assign$1({ classes: {
2319
+ return (React__default['default'].createElement(Tab__default['default'], __assign$1({ "data-tab-for-section-id": props.value, classes: {
2315
2320
  root: classes.root,
2316
2321
  selected: classes.selected,
2317
2322
  } }, props)));
@@ -2423,12 +2428,12 @@ var useStyles$1 = core.makeStyles(function () { return ({
2423
2428
  },
2424
2429
  }); });
2425
2430
  var DialogTitle = function (props) {
2426
- var Icon = props.Icon, title = props.title, onClose = props.onClose;
2431
+ var Icon = props.Icon, title = props.title, titleId = props.titleId, onClose = props.onClose;
2427
2432
  var classes = useStyles$1();
2428
2433
  return (React__default['default'].createElement(core.DialogTitle, null,
2429
2434
  React__default['default'].createElement(core.Box, { display: "flex", alignItems: "center", gridGap: 16 },
2430
2435
  Icon && Icon,
2431
- React__default['default'].createElement(core.Typography, { component: "h1", variant: "h6" }, title)),
2436
+ React__default['default'].createElement(core.Typography, { component: "h1", style: { fontSize: '1.25rem', fontWeight: 500, lineHeight: 1.6 }, id: titleId }, title)),
2432
2437
  onClose && (React__default['default'].createElement(core.IconButton, { color: "inherit", className: classes.closeButton, "aria-label": "Close dialog", onClick: onClose },
2433
2438
  React__default['default'].createElement(SvgX, null)))));
2434
2439
  };
@@ -2643,11 +2648,22 @@ var overrides = {
2643
2648
  '@global': {
2644
2649
  '*:focus-visible, a:focus-visible': {
2645
2650
  '&': {
2646
- outline: '2px solid #0076CB',
2647
- outlineOffset: '-4px',
2651
+ outline: '2px solid #0076CB !important',
2652
+ outlineOffset: -4,
2648
2653
  borderRadius: 8,
2649
2654
  },
2650
2655
  },
2656
+ 'sr-only': {
2657
+ position: 'absolute',
2658
+ width: 1,
2659
+ height: 1,
2660
+ padding: 0,
2661
+ margin: -1,
2662
+ overflow: 'hidden',
2663
+ clip: 'rect(0, 0, 0, 0)',
2664
+ whiteSpace: 'nowrap',
2665
+ borderWidth: 0,
2666
+ },
2651
2667
  },
2652
2668
  },
2653
2669
  };
@@ -2667,30 +2683,15 @@ var typography = {
2667
2683
  fontFamily: fonts.join(', '),
2668
2684
  h1: {
2669
2685
  fontWeight: 400,
2670
- fontSize: '6rem',
2671
- lineHeight: '9rem',
2686
+ fontSize: '1.25rem',
2687
+ lineHeight: '1.875rem',
2672
2688
  },
2673
2689
  h2: {
2674
- fontWeight: 400,
2675
- fontSize: '3.75rem',
2676
- lineHeight: '5.625rem',
2677
- },
2678
- h3: {
2679
- fontWeight: 400,
2680
- fontSize: '3rem',
2681
- lineHeight: '4.5rem',
2682
- },
2683
- h4: {
2684
- fontWeight: 400,
2685
- fontSize: '2.125rem',
2686
- lineHeight: '3.25rem',
2687
- },
2688
- h5: {
2689
2690
  fontWeight: 500,
2690
- fontSize: '1.5rem',
2691
- lineHeight: '2.25rem',
2691
+ fontSize: '1.125rem',
2692
+ lineHeight: '1.6875rem',
2692
2693
  },
2693
- h6: {
2694
+ h3: {
2694
2695
  fontWeight: 500,
2695
2696
  fontSize: '1.25rem',
2696
2697
  lineHeight: '1.875rem',