@popmenu/ordering-ui 0.78.0 → 0.80.0

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
@@ -4,10 +4,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var core = require('@material-ui/core');
6
6
  var React = require('react');
7
+ var styles = require('@material-ui/core/styles');
7
8
  require('@material-ui/lab/Alert');
8
9
  require('@material-ui/core/AppBar');
9
10
  var MuiAvatar = require('@material-ui/core/Avatar');
10
- var styles = require('@material-ui/core/styles');
11
11
  require('@material-ui/core/Badge');
12
12
  var MuiButton = require('@material-ui/core/Button');
13
13
  var CircularProgress = require('@material-ui/core/CircularProgress');
@@ -45,7 +45,7 @@ var MuiRadio = require('@material-ui/core/Radio');
45
45
  require('@material-ui/core/TextField');
46
46
  var MuiSwitch = require('@material-ui/core/Switch');
47
47
  var Tab = require('@material-ui/core/Tab');
48
- var Tabs = require('@material-ui/core/Tabs');
48
+ require('@material-ui/core/Tabs');
49
49
  var MuiToggleButton = require('@material-ui/lab/ToggleButton');
50
50
  var MuiToggleButtonGroup = require('@material-ui/lab/ToggleButtonGroup');
51
51
  var MuiTooltip = require('@material-ui/core/Tooltip');
@@ -87,7 +87,6 @@ var MuiIconButton__default = /*#__PURE__*/_interopDefaultLegacy(MuiIconButton);
87
87
  var MuiRadio__default = /*#__PURE__*/_interopDefaultLegacy(MuiRadio);
88
88
  var MuiSwitch__default = /*#__PURE__*/_interopDefaultLegacy(MuiSwitch);
89
89
  var Tab__default = /*#__PURE__*/_interopDefaultLegacy(Tab);
90
- var Tabs__default = /*#__PURE__*/_interopDefaultLegacy(Tabs);
91
90
  var MuiToggleButton__default = /*#__PURE__*/_interopDefaultLegacy(MuiToggleButton);
92
91
  var MuiToggleButtonGroup__default = /*#__PURE__*/_interopDefaultLegacy(MuiToggleButtonGroup);
93
92
  var MuiTooltip__default = /*#__PURE__*/_interopDefaultLegacy(MuiTooltip);
@@ -148,6 +147,321 @@ var Button$1 = React.forwardRef(function (props, ref) {
148
147
  });
149
148
  Button$1.displayName = 'Button';
150
149
 
150
+ var useDishCardStyles = styles.makeStyles(function (theme) { return ({
151
+ cardActionArea: {
152
+ display: 'flex',
153
+ gridGap: 16,
154
+ height: '100%',
155
+ },
156
+ card: {
157
+ // TODO: https://app.shortcut.com/popmenu/story/92467/hide-menuitem-borders-in-2-column-view-widths
158
+ '&:after': {
159
+ content: '""',
160
+ position: 'absolute',
161
+ backgroundColor: '#E0E0E0',
162
+ width: '100%',
163
+ height: 1,
164
+ bottom: -16,
165
+ left: 0,
166
+ },
167
+ height: 185,
168
+ position: 'relative',
169
+ overflow: 'visible',
170
+ },
171
+ cardTitle: {
172
+ fontWeight: 500,
173
+ fontSize: 18,
174
+ lineHeight: '27px',
175
+ color: theme.palette.grey[900],
176
+ '-webkit-line-clamp': 2,
177
+ display: '-webkit-box',
178
+ '-webkit-box-orient': 'vertical',
179
+ textOverflow: 'ellipsis',
180
+ overflow: 'hidden',
181
+ },
182
+ cardDescription: {
183
+ fontWeight: 400,
184
+ fontSize: 14,
185
+ lineHeight: '20px',
186
+ color: theme.palette.grey[700],
187
+ '-webkit-line-clamp': 2,
188
+ display: '-webkit-box',
189
+ '-webkit-box-orient': 'vertical',
190
+ textOverflow: 'ellipsis',
191
+ overflow: 'hidden',
192
+ },
193
+ }); });
194
+
195
+ var useStyles$5 = core.makeStyles(function () { return ({
196
+ img: {
197
+ objectFit: 'cover',
198
+ width: '100%',
199
+ height: '100%',
200
+ },
201
+ }); });
202
+ var MenuItemImg = function (props) {
203
+ var _a = props.image, image = _a === void 0 ? {} : _a;
204
+ var src = image.src, alt = image.alt;
205
+ var classes = useStyles$5();
206
+ if (!src || !alt) {
207
+ return null;
208
+ }
209
+ 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 })));
210
+ };
211
+
212
+ var MenuItemInfo = function (props) {
213
+ return (React__default['default'].createElement(core.Box, { display: "flex", flexGrow: 1, flexDirection: "column", height: "100%" }, props.children));
214
+ };
215
+
216
+ var _path$1g;
217
+
218
+ function _extends$2O() { _extends$2O = 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$2O.apply(this, arguments); }
219
+
220
+ function SvgChevronDown(props) {
221
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$2O({
222
+ viewBox: "0 0 16 16",
223
+ fill: "none",
224
+ strokeLinecap: "round",
225
+ strokeLinejoin: "round",
226
+ width: "1em",
227
+ height: "1em"
228
+ }, props), _path$1g || (_path$1g = /*#__PURE__*/React__namespace.createElement("path", {
229
+ d: "M4 6l4 4 4-4",
230
+ stroke: "currentColor"
231
+ })));
232
+ }
233
+
234
+ var _path$1f;
235
+
236
+ function _extends$2N() { _extends$2N = 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$2N.apply(this, arguments); }
237
+
238
+ function SvgChevronUp(props) {
239
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$2N({
240
+ viewBox: "0 0 16 16",
241
+ fill: "none",
242
+ strokeLinecap: "round",
243
+ strokeLinejoin: "round",
244
+ width: "1em",
245
+ height: "1em"
246
+ }, props), _path$1f || (_path$1f = /*#__PURE__*/React__namespace.createElement("path", {
247
+ d: "M12 10L8 6l-4 4",
248
+ stroke: "currentColor"
249
+ })));
250
+ }
251
+
252
+ var _path$14;
253
+
254
+ function _extends$2u() { _extends$2u = 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$2u.apply(this, arguments); }
255
+
256
+ function SvgCheck(props) {
257
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$2u({
258
+ viewBox: "0 0 16 16",
259
+ fill: "none",
260
+ strokeLinecap: "round",
261
+ strokeLinejoin: "round",
262
+ width: "1em",
263
+ height: "1em"
264
+ }, props), _path$14 || (_path$14 = /*#__PURE__*/React__namespace.createElement("path", {
265
+ d: "M13.333 4L6 11.333 2.667 8",
266
+ stroke: "currentColor"
267
+ })));
268
+ }
269
+
270
+ var _g$1n, _defs$K;
271
+
272
+ function _extends$2s() { _extends$2s = 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$2s.apply(this, arguments); }
273
+
274
+ function SvgClock(props) {
275
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$2s({
276
+ viewBox: "0 0 16 16",
277
+ fill: "none",
278
+ strokeLinecap: "round",
279
+ strokeLinejoin: "round",
280
+ width: "1em",
281
+ height: "1em"
282
+ }, props), _g$1n || (_g$1n = /*#__PURE__*/React__namespace.createElement("g", {
283
+ clipPath: "url(#clock_svg__clip0_8_5092)",
284
+ stroke: "currentColor"
285
+ }, /*#__PURE__*/React__namespace.createElement("path", {
286
+ d: "M8 14.667A6.667 6.667 0 108 1.334a6.667 6.667 0 000 13.333z"
287
+ }), /*#__PURE__*/React__namespace.createElement("path", {
288
+ d: "M8 4v4l2.667 1.333"
289
+ }))), _defs$K || (_defs$K = /*#__PURE__*/React__namespace.createElement("defs", null, /*#__PURE__*/React__namespace.createElement("clipPath", {
290
+ id: "clock_svg__clip0_8_5092"
291
+ }, /*#__PURE__*/React__namespace.createElement("path", {
292
+ fill: "currentColor",
293
+ d: "M0 0h16v16H0z"
294
+ })))));
295
+ }
296
+
297
+ var _g$1m, _defs$J;
298
+
299
+ function _extends$2q() { _extends$2q = 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$2q.apply(this, arguments); }
300
+
301
+ function SvgXCircle(props) {
302
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$2q({
303
+ viewBox: "0 0 16 16",
304
+ fill: "none",
305
+ strokeLinecap: "round",
306
+ strokeLinejoin: "round",
307
+ width: "1em",
308
+ height: "1em"
309
+ }, props), _g$1m || (_g$1m = /*#__PURE__*/React__namespace.createElement("g", {
310
+ clipPath: "url(#x-circle_svg__clip0_8_6136)",
311
+ stroke: "currentColor"
312
+ }, /*#__PURE__*/React__namespace.createElement("path", {
313
+ d: "M8 14.667A6.667 6.667 0 108 1.334a6.667 6.667 0 000 13.333zM10 6l-4 4m0-4l4 4"
314
+ }))), _defs$J || (_defs$J = /*#__PURE__*/React__namespace.createElement("defs", null, /*#__PURE__*/React__namespace.createElement("clipPath", {
315
+ id: "x-circle_svg__clip0_8_6136"
316
+ }, /*#__PURE__*/React__namespace.createElement("path", {
317
+ fill: "currentColor",
318
+ d: "M0 0h16v16H0z"
319
+ })))));
320
+ }
321
+
322
+ var _path$10;
323
+
324
+ function _extends$2i() { _extends$2i = 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$2i.apply(this, arguments); }
325
+
326
+ function SvgHeart(props) {
327
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$2i({
328
+ viewBox: "0 0 16 16",
329
+ fill: "none",
330
+ strokeLinecap: "round",
331
+ strokeLinejoin: "round",
332
+ width: "1em",
333
+ height: "1em"
334
+ }, props), _path$10 || (_path$10 = /*#__PURE__*/React__namespace.createElement("path", {
335
+ d: "M13.893 3.074a3.667 3.667 0 00-5.186 0L8 3.78l-.707-.706A3.668 3.668 0 002.107 8.26l.706.707L8 14.154l5.187-5.187.706-.707a3.667 3.667 0 000-5.186v0z",
336
+ stroke: "currentColor"
337
+ })));
338
+ }
339
+
340
+ var _g$19, _defs$C;
341
+
342
+ function _extends$24() { _extends$24 = 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$24.apply(this, arguments); }
343
+
344
+ function SvgMinusCircle(props) {
345
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$24({
346
+ viewBox: "0 0 16 16",
347
+ fill: "none",
348
+ strokeLinecap: "round",
349
+ strokeLinejoin: "round",
350
+ width: "1em",
351
+ height: "1em"
352
+ }, props), _g$19 || (_g$19 = /*#__PURE__*/React__namespace.createElement("g", {
353
+ clipPath: "url(#minus-circle_svg__clip0_8_5970)",
354
+ stroke: "currentColor"
355
+ }, /*#__PURE__*/React__namespace.createElement("path", {
356
+ d: "M8 14.667A6.667 6.667 0 108 1.334a6.667 6.667 0 000 13.333zM5.333 8h5.334"
357
+ }))), _defs$C || (_defs$C = /*#__PURE__*/React__namespace.createElement("defs", null, /*#__PURE__*/React__namespace.createElement("clipPath", {
358
+ id: "minus-circle_svg__clip0_8_5970"
359
+ }, /*#__PURE__*/React__namespace.createElement("path", {
360
+ fill: "currentColor",
361
+ d: "M0 0h16v16H0z"
362
+ })))));
363
+ }
364
+
365
+ var _path$S;
366
+
367
+ function _extends$20() { _extends$20 = 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$20.apply(this, arguments); }
368
+
369
+ function SvgPlus(props) {
370
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$20({
371
+ viewBox: "0 0 16 16",
372
+ fill: "none",
373
+ strokeLinecap: "round",
374
+ strokeLinejoin: "round",
375
+ width: "1em",
376
+ height: "1em"
377
+ }, props), _path$S || (_path$S = /*#__PURE__*/React__namespace.createElement("path", {
378
+ d: "M8 3.333v9.334M3.333 8h9.334",
379
+ stroke: "currentColor"
380
+ })));
381
+ }
382
+
383
+ var _g$18, _defs$B;
384
+
385
+ function _extends$1$() { _extends$1$ = 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$1$.apply(this, arguments); }
386
+
387
+ function SvgPlusCircle(props) {
388
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$1$({
389
+ viewBox: "0 0 16 16",
390
+ fill: "none",
391
+ strokeLinecap: "round",
392
+ strokeLinejoin: "round",
393
+ width: "1em",
394
+ height: "1em"
395
+ }, props), _g$18 || (_g$18 = /*#__PURE__*/React__namespace.createElement("g", {
396
+ clipPath: "url(#plus-circle_svg__clip0_8_5870)",
397
+ stroke: "currentColor"
398
+ }, /*#__PURE__*/React__namespace.createElement("path", {
399
+ d: "M8 14.667A6.667 6.667 0 108 1.334a6.667 6.667 0 000 13.333zm0-9.334v5.334M5.333 8h5.334"
400
+ }))), _defs$B || (_defs$B = /*#__PURE__*/React__namespace.createElement("defs", null, /*#__PURE__*/React__namespace.createElement("clipPath", {
401
+ id: "plus-circle_svg__clip0_8_5870"
402
+ }, /*#__PURE__*/React__namespace.createElement("path", {
403
+ fill: "currentColor",
404
+ d: "M0 0h16v16H0z"
405
+ })))));
406
+ }
407
+
408
+ var _path$O;
409
+
410
+ function _extends$1T() { _extends$1T = 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$1T.apply(this, arguments); }
411
+
412
+ function SvgTag(props) {
413
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$1T({
414
+ viewBox: "0 0 16 16",
415
+ fill: "none",
416
+ strokeLinecap: "round",
417
+ strokeLinejoin: "round",
418
+ width: "1em",
419
+ height: "1em"
420
+ }, props), _path$O || (_path$O = /*#__PURE__*/React__namespace.createElement("path", {
421
+ 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",
422
+ stroke: "currentColor"
423
+ })));
424
+ }
425
+
426
+ var _path$z;
427
+
428
+ function _extends$1o() { _extends$1o = 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$1o.apply(this, arguments); }
429
+
430
+ function SvgTrash(props) {
431
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$1o({
432
+ viewBox: "0 0 16 16",
433
+ fill: "none",
434
+ strokeLinecap: "round",
435
+ strokeLinejoin: "round",
436
+ width: "1em",
437
+ height: "1em"
438
+ }, props), _path$z || (_path$z = /*#__PURE__*/React__namespace.createElement("path", {
439
+ d: "M2 4h12M5.333 4V2.667a1.333 1.333 0 011.334-1.333h2.666a1.333 1.333 0 011.334 1.333V4m2 0v9.334a1.333 1.333 0 01-1.334 1.333H4.667a1.333 1.333 0 01-1.334-1.333V4h9.334zm-6 3.333v4m2.666-4v4",
440
+ stroke: "currentColor"
441
+ })));
442
+ }
443
+
444
+ var _path$e, _path2$2;
445
+
446
+ function _extends$y() { _extends$y = 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$y.apply(this, arguments); }
447
+
448
+ function SvgReviews(props) {
449
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$y({
450
+ viewBox: "0 0 16 16",
451
+ fill: "none",
452
+ strokeLinecap: "round",
453
+ strokeLinejoin: "round",
454
+ width: "1em",
455
+ height: "1em"
456
+ }, props), _path$e || (_path$e = /*#__PURE__*/React__namespace.createElement("path", {
457
+ d: "M14 7.667a5.587 5.587 0 01-.6 2.533 5.666 5.666 0 01-5.067 3.133 5.588 5.588 0 01-2.533-.6L2 14l1.267-3.8a5.586 5.586 0 01-.6-2.533A5.667 5.667 0 015.8 2.6 5.587 5.587 0 018.333 2h.334A5.654 5.654 0 0114 7.333v.334z",
458
+ stroke: "currentColor"
459
+ })), _path2$2 || (_path2$2 = /*#__PURE__*/React__namespace.createElement("path", {
460
+ d: "M8.375 5.363a.2.2 0 01.358 0l.578 1.17a.2.2 0 00.15.11l1.292.189a.2.2 0 01.11.34l-.934.911a.2.2 0 00-.057.177l.22 1.286a.2.2 0 01-.29.21L8.647 9.15a.2.2 0 00-.186 0l-1.155.608a.2.2 0 01-.29-.211l.22-1.286a.2.2 0 00-.058-.177l-.934-.91a.2.2 0 01.11-.341l1.293-.19a.2.2 0 00.15-.109l.578-1.17z",
461
+ fill: "currentColor"
462
+ })));
463
+ }
464
+
151
465
  /*! *****************************************************************************
152
466
  Copyright (c) Microsoft Corporation.
153
467
 
@@ -186,19 +500,19 @@ function __rest(s, e) {
186
500
  return t;
187
501
  }
188
502
 
189
- var _path$M;
503
+ var _path$N;
190
504
 
191
- function _extends$1L() { _extends$1L = 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$1L.apply(this, arguments); }
505
+ function _extends$1N() { _extends$1N = 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$1N.apply(this, arguments); }
192
506
 
193
507
  function SvgUser(props) {
194
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$1L({
508
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$1N({
195
509
  viewBox: "0 0 16 16",
196
510
  fill: "none",
197
511
  strokeLinecap: "round",
198
512
  strokeLinejoin: "round",
199
513
  width: "1em",
200
514
  height: "1em"
201
- }, props), _path$M || (_path$M = /*#__PURE__*/React__namespace.createElement("path", {
515
+ }, props), _path$N || (_path$N = /*#__PURE__*/React__namespace.createElement("path", {
202
516
  d: "M13.333 14v-1.333A2.667 2.667 0 0010.667 10H5.333a2.667 2.667 0 00-2.666 2.667V14M8 7.333A2.667 2.667 0 108 2a2.667 2.667 0 000 5.333z",
203
517
  stroke: "currentColor"
204
518
  })));
@@ -698,7 +1012,7 @@ Link.defaultProps = {
698
1012
  };
699
1013
  Link.displayName = 'Link';
700
1014
 
701
- var useStyles$1 = core.makeStyles(function (_a) {
1015
+ var useStyles$4 = core.makeStyles(function (_a) {
702
1016
  var spacing = _a.spacing;
703
1017
  return ({
704
1018
  root: {
@@ -712,7 +1026,7 @@ var useStyles$1 = core.makeStyles(function (_a) {
712
1026
  });
713
1027
  var Paper = React.forwardRef(function (props, ref) {
714
1028
  var legacyStyles = props.legacyStyles, restProps = __rest(props, ["legacyStyles"]);
715
- var classes = useStyles$1(props);
1029
+ var classes = useStyles$4(props);
716
1030
  return React__default['default'].createElement(core.Paper, __assign({}, ref, { classes: __assign({}, (legacyStyles && classes)) }, restProps));
717
1031
  });
718
1032
  Paper.displayName = 'Paper';
@@ -865,381 +1179,46 @@ core.makeStyles(function (theme) { return ({
865
1179
  },
866
1180
  }); });
867
1181
 
868
- var _path$1f;
869
-
870
- function _extends$2M() { _extends$2M = 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$2M.apply(this, arguments); }
871
-
872
- function SvgChevronDown(props) {
873
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$2M({
874
- viewBox: "0 0 16 16",
875
- fill: "none",
876
- strokeLinecap: "round",
877
- strokeLinejoin: "round",
878
- width: "1em",
879
- height: "1em"
880
- }, props), _path$1f || (_path$1f = /*#__PURE__*/React__namespace.createElement("path", {
881
- d: "M4 6l4 4 4-4",
882
- stroke: "currentColor"
883
- })));
884
- }
885
-
886
- var _path$1e;
887
-
888
- function _extends$2L() { _extends$2L = 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$2L.apply(this, arguments); }
889
-
890
- function SvgChevronUp(props) {
891
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$2L({
892
- viewBox: "0 0 16 16",
893
- fill: "none",
894
- strokeLinecap: "round",
895
- strokeLinejoin: "round",
896
- width: "1em",
897
- height: "1em"
898
- }, props), _path$1e || (_path$1e = /*#__PURE__*/React__namespace.createElement("path", {
899
- d: "M12 10L8 6l-4 4",
900
- stroke: "currentColor"
901
- })));
902
- }
903
-
904
- var _path$13;
905
-
906
- function _extends$2s() { _extends$2s = 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$2s.apply(this, arguments); }
907
-
908
- function SvgCheck(props) {
909
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$2s({
910
- viewBox: "0 0 16 16",
911
- fill: "none",
912
- strokeLinecap: "round",
913
- strokeLinejoin: "round",
914
- width: "1em",
915
- height: "1em"
916
- }, props), _path$13 || (_path$13 = /*#__PURE__*/React__namespace.createElement("path", {
917
- d: "M13.333 4L6 11.333 2.667 8",
918
- stroke: "currentColor"
919
- })));
920
- }
921
-
922
- var _g$1m, _defs$K;
923
-
924
- function _extends$2q() { _extends$2q = 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$2q.apply(this, arguments); }
925
-
926
- function SvgClock(props) {
927
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$2q({
928
- viewBox: "0 0 16 16",
929
- fill: "none",
930
- strokeLinecap: "round",
931
- strokeLinejoin: "round",
932
- width: "1em",
933
- height: "1em"
934
- }, props), _g$1m || (_g$1m = /*#__PURE__*/React__namespace.createElement("g", {
935
- clipPath: "url(#clock_svg__clip0_8_5092)",
936
- stroke: "currentColor"
937
- }, /*#__PURE__*/React__namespace.createElement("path", {
938
- d: "M8 14.667A6.667 6.667 0 108 1.334a6.667 6.667 0 000 13.333z"
939
- }), /*#__PURE__*/React__namespace.createElement("path", {
940
- d: "M8 4v4l2.667 1.333"
941
- }))), _defs$K || (_defs$K = /*#__PURE__*/React__namespace.createElement("defs", null, /*#__PURE__*/React__namespace.createElement("clipPath", {
942
- id: "clock_svg__clip0_8_5092"
943
- }, /*#__PURE__*/React__namespace.createElement("path", {
944
- fill: "currentColor",
945
- d: "M0 0h16v16H0z"
946
- })))));
947
- }
948
-
949
- var _g$1l, _defs$J;
950
-
951
- function _extends$2o() { _extends$2o = 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$2o.apply(this, arguments); }
952
-
953
- function SvgXCircle(props) {
954
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$2o({
955
- viewBox: "0 0 16 16",
956
- fill: "none",
957
- strokeLinecap: "round",
958
- strokeLinejoin: "round",
959
- width: "1em",
960
- height: "1em"
961
- }, props), _g$1l || (_g$1l = /*#__PURE__*/React__namespace.createElement("g", {
962
- clipPath: "url(#x-circle_svg__clip0_8_6136)",
963
- stroke: "currentColor"
964
- }, /*#__PURE__*/React__namespace.createElement("path", {
965
- d: "M8 14.667A6.667 6.667 0 108 1.334a6.667 6.667 0 000 13.333zM10 6l-4 4m0-4l4 4"
966
- }))), _defs$J || (_defs$J = /*#__PURE__*/React__namespace.createElement("defs", null, /*#__PURE__*/React__namespace.createElement("clipPath", {
967
- id: "x-circle_svg__clip0_8_6136"
968
- }, /*#__PURE__*/React__namespace.createElement("path", {
969
- fill: "currentColor",
970
- d: "M0 0h16v16H0z"
971
- })))));
972
- }
973
-
974
- var _path$$;
975
-
976
- function _extends$2g() { _extends$2g = 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$2g.apply(this, arguments); }
977
-
978
- function SvgHeart(props) {
979
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$2g({
980
- viewBox: "0 0 16 16",
981
- fill: "none",
982
- strokeLinecap: "round",
983
- strokeLinejoin: "round",
984
- width: "1em",
985
- height: "1em"
986
- }, props), _path$$ || (_path$$ = /*#__PURE__*/React__namespace.createElement("path", {
987
- d: "M13.893 3.074a3.667 3.667 0 00-5.186 0L8 3.78l-.707-.706A3.668 3.668 0 002.107 8.26l.706.707L8 14.154l5.187-5.187.706-.707a3.667 3.667 0 000-5.186v0z",
988
- stroke: "currentColor"
989
- })));
990
- }
991
-
992
- var _g$18, _defs$C;
993
-
994
- function _extends$22() { _extends$22 = 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$22.apply(this, arguments); }
995
-
996
- function SvgMinusCircle(props) {
997
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$22({
998
- viewBox: "0 0 16 16",
999
- fill: "none",
1000
- strokeLinecap: "round",
1001
- strokeLinejoin: "round",
1002
- width: "1em",
1003
- height: "1em"
1004
- }, props), _g$18 || (_g$18 = /*#__PURE__*/React__namespace.createElement("g", {
1005
- clipPath: "url(#minus-circle_svg__clip0_8_5970)",
1006
- stroke: "currentColor"
1007
- }, /*#__PURE__*/React__namespace.createElement("path", {
1008
- d: "M8 14.667A6.667 6.667 0 108 1.334a6.667 6.667 0 000 13.333zM5.333 8h5.334"
1009
- }))), _defs$C || (_defs$C = /*#__PURE__*/React__namespace.createElement("defs", null, /*#__PURE__*/React__namespace.createElement("clipPath", {
1010
- id: "minus-circle_svg__clip0_8_5970"
1011
- }, /*#__PURE__*/React__namespace.createElement("path", {
1012
- fill: "currentColor",
1013
- d: "M0 0h16v16H0z"
1014
- })))));
1015
- }
1016
-
1017
- var _path$R;
1018
-
1019
- function _extends$1_() { _extends$1_ = 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$1_.apply(this, arguments); }
1020
-
1021
- function SvgPlus(props) {
1022
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$1_({
1023
- viewBox: "0 0 16 16",
1024
- fill: "none",
1025
- strokeLinecap: "round",
1026
- strokeLinejoin: "round",
1027
- width: "1em",
1028
- height: "1em"
1029
- }, props), _path$R || (_path$R = /*#__PURE__*/React__namespace.createElement("path", {
1030
- d: "M8 3.333v9.334M3.333 8h9.334",
1031
- stroke: "currentColor"
1032
- })));
1033
- }
1034
-
1035
- var _g$17, _defs$B;
1036
-
1037
- function _extends$1Z() { _extends$1Z = 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$1Z.apply(this, arguments); }
1038
-
1039
- function SvgPlusCircle(props) {
1040
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$1Z({
1041
- viewBox: "0 0 16 16",
1042
- fill: "none",
1043
- strokeLinecap: "round",
1044
- strokeLinejoin: "round",
1045
- width: "1em",
1046
- height: "1em"
1047
- }, props), _g$17 || (_g$17 = /*#__PURE__*/React__namespace.createElement("g", {
1048
- clipPath: "url(#plus-circle_svg__clip0_8_5870)",
1049
- stroke: "currentColor"
1050
- }, /*#__PURE__*/React__namespace.createElement("path", {
1051
- d: "M8 14.667A6.667 6.667 0 108 1.334a6.667 6.667 0 000 13.333zm0-9.334v5.334M5.333 8h5.334"
1052
- }))), _defs$B || (_defs$B = /*#__PURE__*/React__namespace.createElement("defs", null, /*#__PURE__*/React__namespace.createElement("clipPath", {
1053
- id: "plus-circle_svg__clip0_8_5870"
1054
- }, /*#__PURE__*/React__namespace.createElement("path", {
1055
- fill: "currentColor",
1056
- d: "M0 0h16v16H0z"
1057
- })))));
1058
- }
1059
-
1060
- var _path$N;
1061
-
1062
- function _extends$1R() { _extends$1R = 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$1R.apply(this, arguments); }
1063
-
1064
- function SvgTag(props) {
1065
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$1R({
1066
- viewBox: "0 0 16 16",
1067
- fill: "none",
1068
- strokeLinecap: "round",
1069
- strokeLinejoin: "round",
1070
- width: "1em",
1071
- height: "1em"
1072
- }, props), _path$N || (_path$N = /*#__PURE__*/React__namespace.createElement("path", {
1073
- 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",
1074
- stroke: "currentColor"
1075
- })));
1076
- }
1077
-
1078
- var _path$y;
1079
-
1080
- function _extends$1m() { _extends$1m = 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$1m.apply(this, arguments); }
1081
-
1082
- function SvgTrash(props) {
1083
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$1m({
1084
- viewBox: "0 0 16 16",
1085
- fill: "none",
1086
- strokeLinecap: "round",
1087
- strokeLinejoin: "round",
1088
- width: "1em",
1089
- height: "1em"
1090
- }, props), _path$y || (_path$y = /*#__PURE__*/React__namespace.createElement("path", {
1091
- d: "M2 4h12M5.333 4V2.667a1.333 1.333 0 011.334-1.333h2.666a1.333 1.333 0 011.334 1.333V4m2 0v9.334a1.333 1.333 0 01-1.334 1.333H4.667a1.333 1.333 0 01-1.334-1.333V4h9.334zm-6 3.333v4m2.666-4v4",
1092
- stroke: "currentColor"
1093
- })));
1094
- }
1095
-
1096
- var _path$d, _path2$1;
1097
-
1098
- function _extends$w() { _extends$w = 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$w.apply(this, arguments); }
1099
-
1100
- function SvgReviews(props) {
1101
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$w({
1102
- viewBox: "0 0 16 16",
1103
- fill: "none",
1104
- strokeLinecap: "round",
1105
- strokeLinejoin: "round",
1106
- width: "1em",
1107
- height: "1em"
1108
- }, props), _path$d || (_path$d = /*#__PURE__*/React__namespace.createElement("path", {
1109
- d: "M14 7.667a5.587 5.587 0 01-.6 2.533 5.666 5.666 0 01-5.067 3.133 5.588 5.588 0 01-2.533-.6L2 14l1.267-3.8a5.586 5.586 0 01-.6-2.533A5.667 5.667 0 015.8 2.6 5.587 5.587 0 018.333 2h.334A5.654 5.654 0 0114 7.333v.334z",
1110
- stroke: "currentColor"
1111
- })), _path2$1 || (_path2$1 = /*#__PURE__*/React__namespace.createElement("path", {
1112
- d: "M8.375 5.363a.2.2 0 01.358 0l.578 1.17a.2.2 0 00.15.11l1.292.189a.2.2 0 01.11.34l-.934.911a.2.2 0 00-.057.177l.22 1.286a.2.2 0 01-.29.21L8.647 9.15a.2.2 0 00-.186 0l-1.155.608a.2.2 0 01-.29-.211l.22-1.286a.2.2 0 00-.058-.177l-.934-.91a.2.2 0 01.11-.341l1.293-.19a.2.2 0 00.15-.109l.578-1.17z",
1113
- fill: "currentColor"
1114
- })));
1115
- }
1116
-
1117
- var classnames = {exports: {}};
1118
-
1119
- /*!
1120
- Copyright (c) 2018 Jed Watson.
1121
- Licensed under the MIT License (MIT), see
1122
- http://jedwatson.github.io/classnames
1123
- */
1124
-
1125
- (function (module) {
1126
- /* global define */
1127
-
1128
- (function () {
1129
-
1130
- var hasOwn = {}.hasOwnProperty;
1131
-
1132
- function classNames() {
1133
- var classes = [];
1134
-
1135
- for (var i = 0; i < arguments.length; i++) {
1136
- var arg = arguments[i];
1137
- if (!arg) continue;
1138
-
1139
- var argType = typeof arg;
1140
-
1141
- if (argType === 'string' || argType === 'number') {
1142
- classes.push(arg);
1143
- } else if (Array.isArray(arg)) {
1144
- if (arg.length) {
1145
- var inner = classNames.apply(null, arg);
1146
- if (inner) {
1147
- classes.push(inner);
1148
- }
1149
- }
1150
- } else if (argType === 'object') {
1151
- if (arg.toString === Object.prototype.toString) {
1152
- for (var key in arg) {
1153
- if (hasOwn.call(arg, key) && arg[key]) {
1154
- classes.push(key);
1155
- }
1156
- }
1157
- } else {
1158
- classes.push(arg.toString());
1159
- }
1160
- }
1161
- }
1162
-
1163
- return classes.join(' ');
1164
- }
1165
-
1166
- if (module.exports) {
1167
- classNames.default = classNames;
1168
- module.exports = classNames;
1169
- } else {
1170
- window.classNames = classNames;
1171
- }
1172
- }());
1173
- }(classnames));
1174
-
1175
- var classNames = classnames.exports;
1176
-
1177
- var ReactionCounter = function (props) {
1178
- var count = props.count, icon = props.icon;
1179
- return (React__default['default'].createElement(core.Box, { display: "flex", alignItems: "center", gridGap: 6 },
1180
- React__default['default'].createElement(Icon, { icon: icon, size: "large" }),
1181
- React__default['default'].createElement(Typography, { variant: "body2" }, count)));
1182
- };
1182
+ var ReactionCounter = function (props) {
1183
+ var count = props.count, icon = props.icon;
1184
+ return (React__default['default'].createElement(core.Box, { display: "flex", alignItems: "center", gridGap: 6 },
1185
+ React__default['default'].createElement(Icon, { icon: icon, size: "large" }),
1186
+ React__default['default'].createElement(Typography, { variant: "body2" }, count)));
1187
+ };
1183
1188
 
1184
1189
  var ReactionCounterGroup = function (props) {
1185
1190
  var children = props.children;
1186
1191
  return (React__default['default'].createElement(core.Box, { display: "flex", gridGap: 16 }, children));
1187
1192
  };
1188
1193
 
1189
- var useDishCardStyles = styles.makeStyles(function (theme) { return ({
1190
- root: function (_a) {
1191
- var _b = _a.isMobile, isMobile = _b === void 0 ? false : _b;
1192
- return {
1193
- background: '#FFF',
1194
- borderRadius: isMobile ? '0px' : '30px',
1195
- border: isMobile ? '0px' : '1px solid var(--surfaces-card-stroke, #E0E0E0)',
1196
- display: 'flex',
1197
- height: '185px',
1198
- justifyContent: 'space-between',
1199
- padding: isMobile ? 0 : theme.spacing(2.5),
1200
- cursor: 'pointer',
1201
- color: theme.palette.grey[900],
1202
- };
1203
- },
1204
- description: {
1205
- color: '#616161',
1206
- marginTop: theme.spacing(0.25),
1207
- marginBottom: theme.spacing(1.5),
1208
- width: '100%',
1209
- },
1210
- image: {
1211
- borderRadius: '16px',
1212
- objectFit: 'cover',
1213
- marginLeft: theme.spacing(2),
1214
- width: '125px',
1215
- height: '100%',
1216
- },
1217
- plusIcon: {
1218
- height: '100%',
1219
- padding: theme.spacing(0.25),
1220
- background: '#0076CB',
1221
- color: theme.palette.common.white,
1222
- borderRadius: '30px',
1223
- marginRight: theme.spacing(1),
1224
- },
1225
- title: {
1226
- fontSize: '1.125rem',
1227
- },
1228
- truncate: {
1229
- '-webkit-line-clamp': 2,
1230
- display: '-webkit-box',
1231
- '-webkit-box-orient': 'vertical',
1232
- textOverflow: 'ellipsis',
1233
- overflow: 'hidden',
1234
- },
1235
- price: {
1236
- fontSize: '1.25rem',
1237
- },
1238
- }); });
1194
+ var MenuItemReactions = function (props) {
1195
+ var likeCount = props.likeCount, reviewCount = props.reviewCount;
1196
+ var showLikes = likeCount ? likeCount > 0 : false;
1197
+ var showReviews = reviewCount ? reviewCount > 0 : false;
1198
+ return (React__default['default'].createElement(ReactionCounterGroup, null,
1199
+ showLikes && React__default['default'].createElement(ReactionCounter, { icon: SvgHeart, count: likeCount !== null && likeCount !== void 0 ? likeCount : 0 }),
1200
+ showReviews && React__default['default'].createElement(ReactionCounter, { icon: SvgReviews, count: reviewCount !== null && reviewCount !== void 0 ? reviewCount : 0 })));
1201
+ };
1239
1202
 
1240
- var ItemTagGroup = function (props) {
1241
- var children = props.children;
1242
- return (React__default['default'].createElement(core.Box, { display: "flex", gridGap: 6, ml: 1, flexWrap: "wrap" }, children));
1203
+ var useStyles$3 = core.makeStyles(function (_a) {
1204
+ var palette = _a.palette, spacing = _a.spacing;
1205
+ return ({
1206
+ plusIcon: {
1207
+ height: '100%',
1208
+ padding: spacing(0.25),
1209
+ background: palette.info.main,
1210
+ color: palette.info.contrastText,
1211
+ borderRadius: '30px',
1212
+ marginRight: spacing(1),
1213
+ },
1214
+ });
1215
+ });
1216
+ var MenuItemPrice = function (props) {
1217
+ var classes = useStyles$3();
1218
+ return (React__default['default'].createElement(core.Box, { display: "flex", alignItems: "center" },
1219
+ React__default['default'].createElement(core.Box, { display: "flex", className: classes.plusIcon },
1220
+ React__default['default'].createElement(Icon, { icon: SvgPlus, size: "medium" })),
1221
+ React__default['default'].createElement(core.Typography, null, props.price)));
1243
1222
  };
1244
1223
 
1245
1224
  var useItemtagStyles = styles.makeStyles(function (theme) { return ({
@@ -1270,35 +1249,34 @@ var ItemTag = React.forwardRef(function (props, ref) {
1270
1249
  React__default['default'].createElement(Typography, { variant: "caption", className: classes.text }, children)));
1271
1250
  });
1272
1251
 
1273
- var DishCard = function (props) {
1274
- var title = props.title, description = props.description, image = props.image, likeCount = props.likeCount, reviewCount = props.reviewCount, itemTags = props.itemTags, price = props.price, onClick = props.onClick, id = props.id;
1252
+ var ItemTagGroup = function (props) {
1253
+ var children = props.children;
1254
+ return (React__default['default'].createElement(core.Box, { display: "flex", gridGap: 6, ml: 1, flexWrap: "wrap" }, children));
1255
+ };
1256
+
1257
+ var MenuItemTags = function (props) {
1258
+ var itemTags = props.itemTags;
1259
+ return (React__default['default'].createElement(ItemTagGroup, null, itemTags === null || itemTags === void 0 ? void 0 : itemTags.slice(0, 5).map(function (itemTag) { return (React__default['default'].createElement(ItemTag, { key: itemTag.name, alt: itemTag.name, color: itemTag.color }, itemTag.abbr)); })));
1260
+ };
1261
+
1262
+ var MenuItem = React.forwardRef(function (props, ref) {
1263
+ var onClick = props.onClick, id = props.id, title = props.title, description = props.description;
1275
1264
  var classes = useDishCardStyles(props);
1276
- var theme = core.useTheme();
1277
- var validImage = (image === null || image === void 0 ? void 0 : image.src) && (image === null || image === void 0 ? void 0 : image.alt);
1278
- var getTruncatedSizePx = function (typography) {
1279
- var lineHeightRem = parseFloat(theme.typography[typography].lineHeight);
1280
- var collapsedSizeRem = 2 * lineHeightRem;
1281
- var documentFontSize = parseFloat(getComputedStyle(document.documentElement).fontSize);
1282
- return collapsedSizeRem * documentFontSize;
1265
+ var handleClick = function (event) {
1266
+ onClick(id, event);
1283
1267
  };
1284
- return (React__default['default'].createElement(core.Box, { className: classes.root, onClick: onClick, id: id },
1285
- React__default['default'].createElement(core.Box, { display: "flex", flexDirection: "column", justifyContent: "space-between", width: "100%", marginRight: 1 },
1286
- React__default['default'].createElement(core.Box, null,
1287
- React__default['default'].createElement(core.Box, { maxHeight: getTruncatedSizePx('h6') + 'px' },
1288
- React__default['default'].createElement(Typography, { variant: "h6", className: classNames([classes.title, classes.truncate]) }, title)),
1289
- React__default['default'].createElement(core.Box, { maxHeight: getTruncatedSizePx('body2') + 'px' },
1290
- React__default['default'].createElement(Typography, { variant: "body2", className: classNames([classes.description, classes.truncate]) }, description)),
1291
- React__default['default'].createElement(ReactionCounterGroup, null,
1292
- React__default['default'].createElement(ReactionCounter, { icon: SvgHeart, count: likeCount }),
1293
- React__default['default'].createElement(ReactionCounter, { icon: SvgReviews, count: reviewCount }))),
1294
- React__default['default'].createElement(core.Box, { display: "flex", justifyContent: "space-between", alignItems: "center" },
1295
- React__default['default'].createElement(core.Box, { display: "flex", alignItems: "center", mr: 2 },
1296
- React__default['default'].createElement(core.Box, { display: "flex", className: classes.plusIcon },
1297
- React__default['default'].createElement(Icon, { icon: SvgPlus, size: "medium" })),
1298
- React__default['default'].createElement(Typography, { className: classes.price }, price)),
1299
- React__default['default'].createElement(ItemTagGroup, null, itemTags.map(function (itemTag, i) { return (React__default['default'].createElement(ItemTag, { key: i, alt: itemTag.abbr, color: itemTag.color }, itemTag.abbr)); })))),
1300
- validImage && React__default['default'].createElement("img", { src: image.src, alt: image.alt, className: classes.image })));
1301
- };
1268
+ return (React__default['default'].createElement(core.Card, { className: classes.card, ref: ref, elevation: 0, "data-component-type": "menu-item" },
1269
+ React__default['default'].createElement(core.CardActionArea, { className: classes.cardActionArea, onClick: handleClick },
1270
+ React__default['default'].createElement(MenuItemInfo, null,
1271
+ React__default['default'].createElement(core.Typography, { className: classes.cardTitle }, title),
1272
+ React__default['default'].createElement(core.Typography, { className: classes.cardDescription, paragraph: true }, description),
1273
+ React__default['default'].createElement(MenuItemReactions, { likeCount: props.likeCount, reviewCount: props.reviewCount }),
1274
+ React__default['default'].createElement(core.Box, { display: "flex", justifyContent: "space-between", alignItems: "end", flexGrow: 1 },
1275
+ React__default['default'].createElement(MenuItemPrice, { price: props.price }),
1276
+ React__default['default'].createElement(MenuItemTags, { itemTags: props.itemTags }))),
1277
+ React__default['default'].createElement(MenuItemImg, { image: props.image }))));
1278
+ });
1279
+ MenuItem.displayName = 'MenuItem';
1302
1280
 
1303
1281
  var useDishCheckoutCardStyles = styles.makeStyles(function (theme) { return ({
1304
1282
  root: {
@@ -1492,6 +1470,66 @@ var useStatusTagStyles = styles.makeStyles(function (theme) { return ({
1492
1470
  },
1493
1471
  }); });
1494
1472
 
1473
+ var classnames = {exports: {}};
1474
+
1475
+ /*!
1476
+ Copyright (c) 2018 Jed Watson.
1477
+ Licensed under the MIT License (MIT), see
1478
+ http://jedwatson.github.io/classnames
1479
+ */
1480
+
1481
+ (function (module) {
1482
+ /* global define */
1483
+
1484
+ (function () {
1485
+
1486
+ var hasOwn = {}.hasOwnProperty;
1487
+
1488
+ function classNames() {
1489
+ var classes = [];
1490
+
1491
+ for (var i = 0; i < arguments.length; i++) {
1492
+ var arg = arguments[i];
1493
+ if (!arg) continue;
1494
+
1495
+ var argType = typeof arg;
1496
+
1497
+ if (argType === 'string' || argType === 'number') {
1498
+ classes.push(arg);
1499
+ } else if (Array.isArray(arg)) {
1500
+ if (arg.length) {
1501
+ var inner = classNames.apply(null, arg);
1502
+ if (inner) {
1503
+ classes.push(inner);
1504
+ }
1505
+ }
1506
+ } else if (argType === 'object') {
1507
+ if (arg.toString === Object.prototype.toString) {
1508
+ for (var key in arg) {
1509
+ if (hasOwn.call(arg, key) && arg[key]) {
1510
+ classes.push(key);
1511
+ }
1512
+ }
1513
+ } else {
1514
+ classes.push(arg.toString());
1515
+ }
1516
+ }
1517
+ }
1518
+
1519
+ return classes.join(' ');
1520
+ }
1521
+
1522
+ if (module.exports) {
1523
+ classNames.default = classNames;
1524
+ module.exports = classNames;
1525
+ } else {
1526
+ window.classNames = classNames;
1527
+ }
1528
+ }());
1529
+ }(classnames));
1530
+
1531
+ var classNames = classnames.exports;
1532
+
1495
1533
  var StatusTag = function (props) {
1496
1534
  var variant = props.variant, label = props.label, _a = props.color, color = _a === void 0 ? 'default' : _a;
1497
1535
  var classes = useStatusTagStyles(props);
@@ -1866,26 +1904,24 @@ var useSelectableChipGroupStyles = styles.makeStyles(function (theme) { return (
1866
1904
  root: {
1867
1905
  display: 'flex',
1868
1906
  alignItems: 'center',
1869
- '& div.MuiTabs-scroller': {
1870
- '& .MuiTabs-flexContainer': {
1871
- gridGap: theme.spacing(1.5),
1872
- },
1873
- },
1907
+ },
1908
+ flexContainer: {
1909
+ gridGap: theme.spacing(1.5),
1874
1910
  },
1875
1911
  }); });
1876
1912
 
1877
1913
  var SelectableChipGroup = function (props) {
1878
1914
  var children = props.children, muiProps = __rest$1(props, ["children"]);
1879
1915
  var classes = useSelectableChipGroupStyles(props);
1880
- return (React__default['default'].createElement(Tabs__default['default'], __assign$1({ TabIndicatorProps: {
1916
+ return (React__default['default'].createElement(core.Tabs, __assign$1({ TabIndicatorProps: {
1881
1917
  hidden: true,
1882
- }, variant: "scrollable", scrollButtons: "off", classes: { root: classes.root } }, muiProps),
1918
+ }, variant: "scrollable", scrollButtons: "off", classes: classes }, muiProps),
1883
1919
  React__default['default'].createElement(core.Box, { minWidth: "1px" }),
1884
1920
  children,
1885
1921
  React__default['default'].createElement(core.Box, { minWidth: "1px" })));
1886
1922
  };
1887
1923
 
1888
- var useStyles = core.makeStyles(function (_a) {
1924
+ var useStyles$2 = core.makeStyles(function (_a) {
1889
1925
  var spacing = _a.spacing;
1890
1926
  return ({
1891
1927
  root: {
@@ -1903,12 +1939,51 @@ var useStyles = core.makeStyles(function (_a) {
1903
1939
  });
1904
1940
  var SelectedMenuFiltersList = function (props) {
1905
1941
  var filters = props.filters, onChipClick = props.onChipClick;
1906
- var classes = useStyles();
1942
+ var classes = useStyles$2();
1907
1943
  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,
1908
1944
  React__default['default'].createElement(ItemTag, { alt: filter.abbr, color: filter.color }, filter.abbr),
1909
1945
  React__default['default'].createElement(core.Typography, { variant: "caption" }, filter.name)) })); })));
1910
1946
  };
1911
1947
 
1948
+ var MenuSectionGroup = React.forwardRef(function (props, ref) {
1949
+ var children = props.children, restProps = __rest$1(props, ["children"]);
1950
+ return (React__default['default'].createElement(core.Box, __assign$1({ display: "flex", flexDirection: "column", gridGap: 40, marginBottom: 4 }, restProps, { ref: ref }, { "data-component-type": "menu-section-group" }), children));
1951
+ });
1952
+ MenuSectionGroup.displayName = 'MenuSectionGroup';
1953
+
1954
+ var useStyles$1 = core.makeStyles(function () { return ({
1955
+ title: {
1956
+ fontWeight: 400,
1957
+ fontSize: 20,
1958
+ lineHeight: '30px',
1959
+ },
1960
+ }); });
1961
+
1962
+ var MenuSection = React.forwardRef(function (props, ref) {
1963
+ var name = props.name, children = props.children, restProps = __rest$1(props, ["name", "children"]);
1964
+ var classes = useStyles$1();
1965
+ return (React__default['default'].createElement(core.Box, __assign$1({}, restProps, { ref: ref }, { "data-component-type": "menu-section" }),
1966
+ React__default['default'].createElement(core.Box, { marginTop: 1, marginBottom: 4 },
1967
+ React__default['default'].createElement(core.Typography, { className: classes.title }, name)),
1968
+ children));
1969
+ });
1970
+ MenuSection.displayName = 'MenuSection';
1971
+
1972
+ var useStyles = core.makeStyles(function () { return ({
1973
+ main: {
1974
+ display: 'grid',
1975
+ // tune so that 2x columns hit at the md breakpoint
1976
+ gridTemplateColumns: 'repeat(auto-fit, minmax(280px, 1fr))',
1977
+ gridGap: 32,
1978
+ },
1979
+ }); });
1980
+
1981
+ var MenuItemGroup = React.forwardRef(function (props, ref) {
1982
+ var classes = useStyles();
1983
+ return (React__default['default'].createElement(core.Box, __assign$1({ className: classes.main }, { ref: ref }, { "data-component-type": "menu-item-group" }), props.children));
1984
+ });
1985
+ MenuItemGroup.displayName = 'MenuItemGroup';
1986
+
1912
1987
  var palette = {
1913
1988
  primary: {
1914
1989
  light: '#7B7FA3',
@@ -2024,7 +2099,6 @@ var orderingTheme = {
2024
2099
  };
2025
2100
 
2026
2101
  exports.Button = Button$1;
2027
- exports.DishCard = DishCard;
2028
2102
  exports.DishCheckoutCard = DishCheckoutCard;
2029
2103
  exports.DishDetailsReview = DishDetailsReview;
2030
2104
  exports.DishModifierCard = DishModifierCard;
@@ -2033,6 +2107,10 @@ exports.ItemTagGroup = ItemTagGroup;
2033
2107
  exports.LocationCard = LocationCard;
2034
2108
  exports.MenuDropdown = MenuDropdown;
2035
2109
  exports.MenuFilter = MenuFilter;
2110
+ exports.MenuItem = MenuItem;
2111
+ exports.MenuItemGroup = MenuItemGroup;
2112
+ exports.MenuSection = MenuSection;
2113
+ exports.MenuSectionGroup = MenuSectionGroup;
2036
2114
  exports.QuantityPicker = QuantityPicker;
2037
2115
  exports.ReactionCounter = ReactionCounter;
2038
2116
  exports.ReactionCounterGroup = ReactionCounterGroup;