@popmenu/ordering-ui 0.113.2 → 0.113.5

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
@@ -493,24 +493,6 @@ function SvgPlusCircle(props) {
493
493
  })))));
494
494
  }
495
495
 
496
- var _path$1E;
497
-
498
- function _extends$3N() { _extends$3N = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$3N.apply(this, arguments); }
499
-
500
- function SvgTag(props) {
501
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$3N({
502
- viewBox: "0 0 16 16",
503
- fill: "none",
504
- strokeLinecap: "round",
505
- strokeLinejoin: "round",
506
- width: "1em",
507
- height: "1em"
508
- }, props), _path$1E || (_path$1E = /*#__PURE__*/React__namespace.createElement("path", {
509
- d: "M13.727 8.94l-4.78 4.78a1.334 1.334 0 01-1.887 0L1.333 8V1.333H8l5.727 5.727a1.333 1.333 0 010 1.88v0zm-9.06-4.273h.007",
510
- stroke: "currentColor"
511
- })));
512
- }
513
-
514
496
  var _path$1u;
515
497
 
516
498
  function _extends$3u() { _extends$3u = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$3u.apply(this, arguments); }
@@ -1405,23 +1387,16 @@ var MenuItemPrice = function (props) {
1405
1387
  React__default['default'].createElement(core.Typography, null, props.price)));
1406
1388
  };
1407
1389
 
1408
- var useItemtagStyles = styles.makeStyles(function (theme) { return ({
1409
- root: function (_a) {
1410
- var _b, _c;
1411
- var _d = _a.color, color = _d === void 0 ? '' : _d;
1412
- var _e = color.split('.'), colorGroup = _e[0], colorVariant = _e[1];
1413
- return {
1414
- // @ts-expect-error - todo.
1415
- color: ((_b = theme.palette[colorGroup]) === null || _b === void 0 ? void 0 : _b[colorVariant]) || color,
1416
- // @ts-expect-error - todo.
1417
- borderColor: ((_c = theme.palette[colorGroup]) === null || _c === void 0 ? void 0 : _c[colorVariant]) || color,
1418
- border: '1.5px solid',
1419
- background: 'none',
1420
- height: '24px',
1421
- lineHeight: 1.5,
1422
- position: 'static',
1423
- width: '24px',
1424
- };
1390
+ var useItemTagStyles = styles.makeStyles(function (theme) { return ({
1391
+ root: {
1392
+ color: theme.palette.text.primary,
1393
+ borderColor: theme.palette.text.primary,
1394
+ border: '1.5px solid',
1395
+ background: 'none',
1396
+ height: '24px',
1397
+ lineHeight: 1.5,
1398
+ position: 'static',
1399
+ width: '24px',
1425
1400
  },
1426
1401
  text: {
1427
1402
  lineHeight: 1.5,
@@ -1429,11 +1404,12 @@ var useItemtagStyles = styles.makeStyles(function (theme) { return ({
1429
1404
  }); });
1430
1405
 
1431
1406
  var ItemTag = React.forwardRef(function (props, ref) {
1432
- var _a = props.color, color = _a === void 0 ? 'gray.dark' : _a, alt = props.alt, children = props.children;
1433
- var classes = useItemtagStyles({ color: color });
1407
+ var alt = props.alt, children = props.children;
1408
+ var classes = useItemTagStyles();
1434
1409
  return (React__default['default'].createElement(core.Avatar, { ref: ref, alt: alt, classes: { root: classes.root } },
1435
1410
  React__default['default'].createElement(Typography, { variant: "caption", className: classes.text }, children)));
1436
- });
1411
+ });
1412
+ ItemTag.displayName = 'ItemTag';
1437
1413
 
1438
1414
  var ItemTagGroup = function (props) {
1439
1415
  var children = props.children;
@@ -1740,6 +1716,11 @@ var useDishModifierCardStyles = styles.makeStyles(function (theme) { return ({
1740
1716
  },
1741
1717
  }); });
1742
1718
  var useRadioModifierFormStyles = styles.makeStyles(function (theme) { return ({
1719
+ label: {
1720
+ alignItems: 'center',
1721
+ display: 'flex',
1722
+ justifyContent: 'space-between',
1723
+ },
1743
1724
  radio: {
1744
1725
  fontSize: theme.spacing(2),
1745
1726
  padding: 'unset',
@@ -1748,14 +1729,25 @@ var useRadioModifierFormStyles = styles.makeStyles(function (theme) { return ({
1748
1729
  color: theme.palette.info.main,
1749
1730
  },
1750
1731
  },
1732
+ hideRadio: {
1733
+ display: 'none',
1734
+ },
1751
1735
  root: {
1752
1736
  justifyContent: 'space-between',
1753
1737
  margin: 0,
1754
1738
  width: 'fill-available',
1739
+ '& > :last-child': {
1740
+ flex: 1,
1741
+ },
1755
1742
  },
1756
1743
  }); });
1757
1744
  var useCheckboxModifierFormStyles = styles.makeStyles(function (theme) { return ({
1758
- radio: {
1745
+ label: {
1746
+ alignItems: 'center',
1747
+ display: 'flex',
1748
+ justifyContent: 'space-between',
1749
+ },
1750
+ checkbox: {
1759
1751
  color: '#616161',
1760
1752
  fontSize: theme.spacing(2),
1761
1753
  marginRight: theme.spacing(-0.25),
@@ -1764,18 +1756,23 @@ var useCheckboxModifierFormStyles = styles.makeStyles(function (theme) { return
1764
1756
  color: theme.palette.info.main,
1765
1757
  },
1766
1758
  },
1759
+ hideCheckbox: {
1760
+ display: 'none',
1761
+ },
1767
1762
  root: {
1768
- justifyContent: 'space-between',
1769
1763
  margin: 0,
1770
1764
  width: 'fill-available',
1765
+ '& > :last-child': {
1766
+ flex: 1,
1767
+ },
1771
1768
  },
1772
1769
  }); });
1773
1770
  var useLabelStyles = styles.makeStyles(function (theme) { return ({
1774
1771
  label: {
1775
1772
  margin: theme.spacing(0.5, 0),
1776
1773
  },
1777
- outOfStock: {
1778
- color: theme.palette.warning.dark,
1774
+ disabled: {
1775
+ color: theme.palette.grey[500],
1779
1776
  },
1780
1777
  price: {
1781
1778
  color: theme.palette.grey[700],
@@ -1860,15 +1857,15 @@ var QuantityPicker = function (props) {
1860
1857
  };
1861
1858
 
1862
1859
  var Label = function (props) {
1863
- var name = props.name, price = props.price, outOfStock = props.outOfStock, messages = props.messages;
1860
+ var _a, _b, _c;
1861
+ var name = props.name, price = props.price, _d = props.disabled, disabled = _d === void 0 ? false : _d;
1864
1862
  var classes = useLabelStyles();
1865
1863
  return (React__default['default'].createElement(core.Box, { display: "flex", flexDirection: "column", className: classes.label },
1866
1864
  React__default['default'].createElement(core.Box, { display: "flex", alignItems: "center", gridGap: 8 },
1867
- React__default['default'].createElement(core.Typography, null, name),
1868
- outOfStock && (React__default['default'].createElement(core.Typography, { variant: "caption", className: classes.outOfStock }, messages.outOfStockText))),
1869
- price && React__default['default'].createElement(core.Typography, null,
1865
+ React__default['default'].createElement(core.Typography, { className: classNames((_a = {}, _a[classes.disabled] = disabled, _a)) }, name)),
1866
+ price && (React__default['default'].createElement(core.Typography, { className: classNames((_b = {}, _b[classes.price] = !disabled, _b), (_c = {}, _c[classes.disabled] = disabled, _c)) },
1870
1867
  "+ ",
1871
- price)));
1868
+ price))));
1872
1869
  };
1873
1870
  var Options = function (props) {
1874
1871
  var handleOptionsClick = props.handleOptionsClick, modifierId = props.modifierId;
@@ -1879,7 +1876,7 @@ var Options = function (props) {
1879
1876
  React__default['default'].createElement(Icon, { icon: SvgChevronRight }))));
1880
1877
  };
1881
1878
  var SingleSelectModifierControl = function (props) {
1882
- var modifiers = props.modifiers, isOutOfStock = props.isOutOfStock, onChange = props.onChange, value = props.value, messages = props.messages, handleOptionsClick = props.handleOptionsClick;
1879
+ var modifiers = props.modifiers, isOutOfStock = props.isOutOfStock, onChange = props.onChange, value = props.value, handleOptionsClick = props.handleOptionsClick;
1883
1880
  var radioClasses = useRadioModifierFormStyles();
1884
1881
  var makeHandleChange = function (modifier) { return function (e) {
1885
1882
  onChange({
@@ -1893,14 +1890,18 @@ var SingleSelectModifierControl = function (props) {
1893
1890
  }; };
1894
1891
  return (React__default['default'].createElement(core.FormControl, { fullWidth: true },
1895
1892
  React__default['default'].createElement(core.RadioGroup, null, modifiers.map(function (modifier) {
1896
- var _a;
1893
+ var _a, _b;
1894
+ var _c;
1897
1895
  return (React__default['default'].createElement(core.Box, { key: modifier.id },
1898
- React__default['default'].createElement(core.FormControlLabel, { key: modifier.id, value: modifier.id, className: radioClasses.root, control: React__default['default'].createElement(core.Radio, { checked: ((_a = value[0]) === null || _a === void 0 ? void 0 : _a.modifierId) === modifier.id, className: radioClasses.radio, disabled: isOutOfStock || modifier.outOfStock, onChange: makeHandleChange(modifier) }), label: React__default['default'].createElement(Label, { messages: messages, name: modifier.name, price: modifier.formattedPrice, disabled: isOutOfStock || modifier.outOfStock, outOfStock: isOutOfStock }), labelPlacement: "start" }),
1896
+ React__default['default'].createElement(core.FormControlLabel, { key: modifier.id, value: modifier.id, className: radioClasses.root, control: React__default['default'].createElement(core.Radio, { checked: ((_c = value[0]) === null || _c === void 0 ? void 0 : _c.modifierId) === modifier.id, className: classNames((_a = {}, _a[radioClasses.hideRadio] = modifier.outOfStock, _a), (_b = {}, _b[radioClasses.radio] = !modifier.outOfStock, _b)), disabled: isOutOfStock || modifier.outOfStock, onChange: makeHandleChange(modifier) }), label: React__default['default'].createElement(core.Box, { className: radioClasses.label },
1897
+ React__default['default'].createElement(Label, { name: modifier.name, price: modifier.formattedPrice, disabled: isOutOfStock || modifier.outOfStock }),
1898
+ modifier.outOfStock && (React__default['default'].createElement(core.Box, { minWidth: "90px", marginLeft: 2 },
1899
+ React__default['default'].createElement(StatusTag, { color: "warning", label: "Out of stock", variant: "outlined", size: "md" })))), labelPlacement: "start" }),
1899
1900
  modifier.hasModifiers && React__default['default'].createElement(Options, { handleOptionsClick: handleOptionsClick, modifierId: modifier.id })));
1900
1901
  }))));
1901
1902
  };
1902
1903
  var MultipleSelectControl = function (props) {
1903
- var modifiers = props.modifiers, value = props.value, isOutOfStock = props.isOutOfStock, onChange = props.onChange, messages = props.messages, disableNewSelections = props.disableNewSelections, handleOptionsClick = props.handleOptionsClick;
1904
+ var modifiers = props.modifiers, value = props.value, isOutOfStock = props.isOutOfStock, onChange = props.onChange, disableNewSelections = props.disableNewSelections, handleOptionsClick = props.handleOptionsClick;
1904
1905
  var classes = useCheckboxModifierFormStyles();
1905
1906
  var makeHandleChange = function (modifier) { return function () {
1906
1907
  var isModifierInValue = Boolean(value.find(function (v) { return v.modifierId === modifier.id; }));
@@ -1915,13 +1916,17 @@ var MultipleSelectControl = function (props) {
1915
1916
  }; };
1916
1917
  return (React__default['default'].createElement(core.FormControl, { fullWidth: true },
1917
1918
  React__default['default'].createElement(core.FormGroup, null, modifiers.map(function (modifier) {
1919
+ var _a, _b;
1918
1920
  return (React__default['default'].createElement(core.Box, { key: modifier.id },
1919
- React__default['default'].createElement(core.FormControlLabel, { key: modifier.id, value: modifier.id, className: classes.root, checked: value.some(function (v) { return v.modifierId === modifier.id; }), onChange: makeHandleChange(modifier), control: React__default['default'].createElement(core.Checkbox, { className: classes.radio, disabled: isOutOfStock || modifier.outOfStock || (!modifier.quantity && disableNewSelections) }), label: React__default['default'].createElement(Label, { messages: messages, name: modifier.name, price: modifier.formattedPrice, disabled: isOutOfStock || modifier.outOfStock, outOfStock: isOutOfStock }), labelPlacement: "start" }),
1921
+ React__default['default'].createElement(core.FormControlLabel, { key: modifier.id, value: modifier.id, className: classes.root, checked: value.some(function (v) { return v.modifierId === modifier.id; }), onChange: makeHandleChange(modifier), control: React__default['default'].createElement(core.Checkbox, { className: classNames((_a = {}, _a[classes.hideCheckbox] = modifier.outOfStock, _a), (_b = {}, _b[classes.checkbox] = !modifier.outOfStock, _b)), disabled: isOutOfStock || modifier.outOfStock || (!modifier.quantity && disableNewSelections) }), label: React__default['default'].createElement(core.Box, { className: classes.label },
1922
+ React__default['default'].createElement(Label, { name: modifier.name, price: modifier.formattedPrice, disabled: isOutOfStock || modifier.outOfStock }),
1923
+ modifier.outOfStock && (React__default['default'].createElement(core.Box, { minWidth: "90px", marginLeft: 2 },
1924
+ React__default['default'].createElement(StatusTag, { color: "warning", label: "Out of stock", variant: "outlined", size: "md" })))), labelPlacement: "start" }),
1920
1925
  modifier.hasModifiers && React__default['default'].createElement(Options, { handleOptionsClick: handleOptionsClick, modifierId: modifier.id })));
1921
1926
  }))));
1922
1927
  };
1923
1928
  var MultipleQuantitySelectControl = function (props) {
1924
- var modifiers = props.modifiers, isOutOfStock = props.isOutOfStock, onChange = props.onChange, messages = props.messages, disableNewSelections = props.disableNewSelections;
1929
+ var modifiers = props.modifiers, isOutOfStock = props.isOutOfStock, onChange = props.onChange, disableNewSelections = props.disableNewSelections;
1925
1930
  var makeHandleChange = function (modifier) { return function (_e, customEvent) {
1926
1931
  onChange({
1927
1932
  isRadio: false,
@@ -1933,9 +1938,12 @@ var MultipleQuantitySelectControl = function (props) {
1933
1938
  });
1934
1939
  }; };
1935
1940
  return (React__default['default'].createElement(core.FormControl, { fullWidth: true },
1936
- React__default['default'].createElement(core.FormGroup, null, modifiers.map(function (modifier) { return (React__default['default'].createElement(core.Box, { key: modifier.id, style: { justifyContent: 'space-between' }, display: "flex" },
1937
- React__default['default'].createElement(Label, { messages: messages, name: modifier.name, price: modifier.formattedPrice, disabled: isOutOfStock || modifier.outOfStock, outOfStock: isOutOfStock }),
1938
- React__default['default'].createElement(QuantityPicker, { variation: "modifierCount", value: modifier.quantity, disableIncrement: disableNewSelections, preventManualChange: true, onChange: makeHandleChange(modifier) }))); }))));
1941
+ React__default['default'].createElement(core.FormGroup, null, modifiers.map(function (modifier) { return (React__default['default'].createElement(core.Box, { key: modifier.id, style: { justifyContent: 'space-between', alignItems: 'center' }, display: "flex" },
1942
+ React__default['default'].createElement(core.Box, { display: "flex", alignItems: "center", justifyContent: "space-between", width: "100%" },
1943
+ React__default['default'].createElement(Label, { name: modifier.name, price: modifier.formattedPrice, disabled: isOutOfStock || modifier.outOfStock }),
1944
+ modifier.outOfStock && (React__default['default'].createElement(core.Box, { minWidth: "90px", marginLeft: 2 },
1945
+ React__default['default'].createElement(StatusTag, { color: "warning", label: "Out of stock", variant: "outlined", size: "md" }))),
1946
+ !modifier.outOfStock && (React__default['default'].createElement(QuantityPicker, { variation: "modifierCount", value: modifier.quantity, disableIncrement: disableNewSelections, preventManualChange: true, onChange: makeHandleChange(modifier), disabled: isOutOfStock || modifier.outOfStock }))))); }))));
1939
1947
  };
1940
1948
  var ModifierControls = function (props) {
1941
1949
  switch (props.type) {
@@ -2158,7 +2166,7 @@ function SvgLeafIcon(props) {
2158
2166
  }
2159
2167
 
2160
2168
  var MenuFilter = function (props) {
2161
- var options = props.options, onChange = props.onChange, value = props.value, _a = props.triggerLabel, triggerLabel = _a === void 0 ? 'Add Filter' : _a, _b = props.noOptionsLabel, noOptionsLabel = _b === void 0 ? 'All filters have been added' : _b;
2169
+ var options = props.options, onChange = props.onChange, onClear = props.onClear, value = props.value, _a = props.triggerLabel, triggerLabel = _a === void 0 ? 'Add Filter' : _a, _b = props.noOptionsLabel, noOptionsLabel = _b === void 0 ? 'Reset Filters' : _b;
2162
2170
  var triggerId = 'menu-filter-trigger';
2163
2171
  var popoverId = 'menu-filter-popover';
2164
2172
  var classes = useMenuFilterStyles();
@@ -2179,18 +2187,20 @@ var MenuFilter = function (props) {
2179
2187
  var handleClose = function () {
2180
2188
  setAnchorEl(null);
2181
2189
  };
2190
+ var handleClear = function () {
2191
+ onClear();
2192
+ setAnchorEl(null);
2193
+ };
2194
+ if (allFiltersSelected) {
2195
+ return (React__default['default'].createElement(core.Button, { size: "small", startIcon: React__default['default'].createElement(SvgLeafIcon, null), classes: { label: classes.triggerLabel }, onClick: handleClear }, noOptionsLabel));
2196
+ }
2182
2197
  return (React__default['default'].createElement(React__default['default'].Fragment, null,
2183
2198
  React__default['default'].createElement(core.Button, { id: triggerId, "aria-controls": popoverId, "aria-haspopup": "true", "aria-expanded": open, onClick: handleTriggerClick, size: "small", startIcon: React__default['default'].createElement(SvgLeafIcon, null), classes: { label: classes.triggerLabel } }, triggerLabel),
2184
- React__default['default'].createElement(core.Menu, { id: popoverId, anchorEl: anchorEl, open: open, onClose: handleClose },
2185
- availableFilters.map(function (option, index) {
2186
- return (React__default['default'].createElement(core.MenuItem, { key: index, value: option.id, onClick: function (event) { return handleChange(option, event); } },
2187
- React__default['default'].createElement(ItemTag, { alt: option.abbr, color: option.color }, option.abbr),
2188
- React__default['default'].createElement(core.Box, { ml: 1 }, option.name)));
2189
- }),
2190
- allFiltersSelected && (React__default['default'].createElement(core.MenuItem, { onClick: handleClose },
2191
- React__default['default'].createElement(core.Box, { display: "flex", flexDirection: "column", alignItems: "center" },
2192
- React__default['default'].createElement(Icon, { icon: SvgTag, color: "#9E9E9E", size: "large" }),
2193
- React__default['default'].createElement(Typography, { variant: "body1", color: "grey.500" }, noOptionsLabel)))))));
2199
+ React__default['default'].createElement(core.Menu, { id: popoverId, anchorEl: anchorEl, open: open, onClose: handleClose }, availableFilters.map(function (option, index) {
2200
+ return (React__default['default'].createElement(core.MenuItem, { key: index, value: option.id, onClick: function (event) { return handleChange(option, event); } },
2201
+ React__default['default'].createElement(ItemTag, { alt: option.abbr, color: option.color }, option.abbr),
2202
+ React__default['default'].createElement(core.Box, { ml: 1 }, option.name)));
2203
+ }))));
2194
2204
  };
2195
2205
 
2196
2206
  var useSelectableChipStyles = styles.makeStyles(function (theme) { return ({
@@ -2273,9 +2283,10 @@ var useStyles$4 = core.makeStyles(function (_a) {
2273
2283
  var SelectedMenuFiltersList = function (props) {
2274
2284
  var filters = props.filters, onChipClick = props.onChipClick;
2275
2285
  var classes = useStyles$4();
2276
- return (React__default['default'].createElement(React__default['default'].Fragment, null, filters.map(function (filter, index) { return (React__default['default'].createElement(core.Chip, { key: filter.name + "-" + index, classes: classes, deleteIcon: React__default['default'].createElement(SvgXCircle, null), onDelete: function (event) { return onChipClick(filter, event); }, label: React__default['default'].createElement(React__default['default'].Fragment, null,
2286
+ return (React__default['default'].createElement(React__default['default'].Fragment, null, filters.map(function (filter, index) { return (React__default['default'].createElement(core.Chip, { key: filter.name + "-" + index, classes: classes, onClick: function (event) { return onChipClick(filter, event); }, label: React__default['default'].createElement(React__default['default'].Fragment, null,
2277
2287
  React__default['default'].createElement(ItemTag, { alt: filter.abbr, color: filter.color }, filter.abbr),
2278
- React__default['default'].createElement(core.Typography, { variant: "caption" }, filter.name)) })); })));
2288
+ React__default['default'].createElement(core.Typography, { variant: "caption" }, filter.name),
2289
+ React__default['default'].createElement(Icon, { icon: SvgXCircle, size: "large" })) })); })));
2279
2290
  };
2280
2291
 
2281
2292
  var MenuSectionGroup = React.forwardRef(function (props, ref) {