@popmenu/ordering-ui 0.126.6 → 0.127.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.
Files changed (248) hide show
  1. package/build/cjs/components/Button/index.d.ts +1 -1
  2. package/build/cjs/components/Checkbox/Checkbox.d.ts +0 -1
  3. package/build/cjs/components/DishCheckoutCard/DishCheckoutCard.d.ts +1 -2
  4. package/build/cjs/components/DishCheckoutCard/DishCheckoutCard.styles.d.ts +1 -1
  5. package/build/cjs/components/DishCheckoutCard/DishCheckoutCardProps.d.ts +6 -2
  6. package/build/cjs/components/DishCheckoutCard/index.d.ts +2 -2
  7. package/build/cjs/components/DishDetailsReview/index.d.ts +2 -2
  8. package/build/cjs/components/DishModifierCard/DishModifierCard.d.ts +0 -1
  9. package/build/cjs/components/DishModifierCard/DishModifierCardProps.d.ts +7 -7
  10. package/build/cjs/components/DishModifierCard/ModifierControls.d.ts +0 -1
  11. package/build/cjs/components/DishModifierCard/ModifierForm.d.ts +0 -1
  12. package/build/cjs/components/DishModifierCard/index.d.ts +2 -2
  13. package/build/cjs/components/ItemTag/index.d.ts +2 -2
  14. package/build/cjs/components/ItemTagGroup/index.d.ts +1 -1
  15. package/build/cjs/components/LocationCard/LocationCard.d.ts +0 -1
  16. package/build/cjs/components/LocationCard/index.d.ts +2 -2
  17. package/build/cjs/components/MenuBanner/MenuBanner.d.ts +0 -1
  18. package/build/cjs/components/MenuBanner/MenuBannerIcons.d.ts +0 -1
  19. package/build/cjs/components/MenuBanner/MenuBannerProps.d.ts +1 -1
  20. package/build/cjs/components/MenuBanner/index.d.ts +1 -1
  21. package/build/cjs/components/MenuDropdown/MenuDropdown.d.ts +0 -1
  22. package/build/cjs/components/MenuDropdown/MenuDropdownProps.d.ts +1 -1
  23. package/build/cjs/components/MenuDropdown/index.d.ts +2 -2
  24. package/build/cjs/components/MenuFilter/MenuFilter.d.ts +0 -1
  25. package/build/cjs/components/MenuFilter/MenuFilterProps.d.ts +3 -4
  26. package/build/cjs/components/MenuFilter/index.d.ts +2 -2
  27. package/build/cjs/components/MenuItem/MenuItemImg.d.ts +1 -2
  28. package/build/cjs/components/MenuItem/MenuItemPrice.d.ts +1 -2
  29. package/build/cjs/components/MenuItem/MenuItemProps.d.ts +1 -1
  30. package/build/cjs/components/MenuItem/MenuItemReactions.d.ts +1 -2
  31. package/build/cjs/components/MenuItem/MenuItemTags.d.ts +1 -2
  32. package/build/cjs/components/MenuItem/index.d.ts +1 -1
  33. package/build/cjs/components/MenuItemGroup/MenuItemGroup.d.ts +1 -1
  34. package/build/cjs/components/MenuSection/MenuSectionProps.d.ts +0 -1
  35. package/build/cjs/components/MenuSection/index.d.ts +1 -1
  36. package/build/cjs/components/MenuTab/MenuTab.d.ts +0 -1
  37. package/build/cjs/components/MenuTab/MenuTabProps.d.ts +1 -1
  38. package/build/cjs/components/MenuTab/index.d.ts +2 -2
  39. package/build/cjs/components/MenuTabGroup/MenuTabGroup.d.ts +0 -1
  40. package/build/cjs/components/MenuTabGroup/MenuTabGroupProps.d.ts +1 -4
  41. package/build/cjs/components/MenuTabGroup/index.d.ts +2 -2
  42. package/build/cjs/components/OrderingAppContext/OrderingAppContext.d.ts +3 -3
  43. package/build/cjs/components/QuantityPicker/QuantityPicker.d.ts +1 -2
  44. package/build/cjs/components/QuantityPicker/QuantityPicker.styles.d.ts +3 -3
  45. package/build/cjs/components/QuantityPicker/QuantityPickerProps.d.ts +6 -2
  46. package/build/cjs/components/QuantityPicker/index.d.ts +2 -2
  47. package/build/cjs/components/Radio/Radio.d.ts +0 -1
  48. package/build/cjs/components/ReactionCounter/ReactionCounter.d.ts +0 -1
  49. package/build/cjs/components/ReactionCounter/index.d.ts +2 -2
  50. package/build/cjs/components/ReactionCounterGroup/ReactionCounterGroup.d.ts +1 -1
  51. package/build/cjs/components/ReactionCounterGroup/index.d.ts +1 -1
  52. package/build/cjs/components/SelectableChip/SelectableChip.d.ts +0 -1
  53. package/build/cjs/components/SelectableChip/SelectableChipProps.d.ts +1 -1
  54. package/build/cjs/components/SelectableChip/index.d.ts +2 -2
  55. package/build/cjs/components/SelectableChipGroup/SelectableChipGroup.d.ts +0 -1
  56. package/build/cjs/components/SelectableChipGroup/SelectableChipGroupProps.d.ts +1 -4
  57. package/build/cjs/components/SelectableChipGroup/index.d.ts +2 -2
  58. package/build/cjs/components/SelectedMenuFiltersList/SelectedMenuFiltersList.d.ts +0 -1
  59. package/build/cjs/components/SelectedMenuFiltersList/index.d.ts +1 -1
  60. package/build/cjs/components/StatusTag/StatusTag.d.ts +0 -1
  61. package/build/cjs/components/StatusTag/index.d.ts +2 -2
  62. package/build/cjs/components/Switch/Switch.d.ts +0 -1
  63. package/build/cjs/components/index.d.ts +41 -22
  64. package/build/cjs/index.js +553 -677
  65. package/build/cjs/index.js.map +1 -1
  66. package/build/esm/components/Button/Button.js +4 -5
  67. package/build/esm/components/Button/Button.js.map +1 -1
  68. package/build/esm/components/Button/index.d.ts +1 -1
  69. package/build/esm/components/Checkbox/Checkbox.d.ts +0 -1
  70. package/build/esm/components/Checkbox/Checkbox.js +7 -10
  71. package/build/esm/components/Checkbox/Checkbox.js.map +1 -1
  72. package/build/esm/components/DialogSection/DialogSection.js +3 -4
  73. package/build/esm/components/DialogSection/DialogSection.js.map +1 -1
  74. package/build/esm/components/DialogTitle/DialogTitle.js +5 -5
  75. package/build/esm/components/DialogTitle/DialogTitle.js.map +1 -1
  76. package/build/esm/components/DishCheckoutCard/DishCheckoutCard.d.ts +1 -2
  77. package/build/esm/components/DishCheckoutCard/DishCheckoutCard.js +21 -31
  78. package/build/esm/components/DishCheckoutCard/DishCheckoutCard.js.map +1 -1
  79. package/build/esm/components/DishCheckoutCard/DishCheckoutCard.styles.d.ts +1 -1
  80. package/build/esm/components/DishCheckoutCard/DishCheckoutCard.styles.js +3 -6
  81. package/build/esm/components/DishCheckoutCard/DishCheckoutCard.styles.js.map +1 -1
  82. package/build/esm/components/DishCheckoutCard/DishCheckoutCardProps.d.ts +6 -2
  83. package/build/esm/components/DishCheckoutCard/index.d.ts +2 -2
  84. package/build/esm/components/DishDetailsReview/DishDetailsReview.js +2 -2
  85. package/build/esm/components/DishDetailsReview/DishDetailsReview.js.map +1 -1
  86. package/build/esm/components/DishDetailsReview/index.d.ts +2 -2
  87. package/build/esm/components/DishModifierCard/DishModifierCard.d.ts +0 -1
  88. package/build/esm/components/DishModifierCard/DishModifierCard.js +15 -17
  89. package/build/esm/components/DishModifierCard/DishModifierCard.js.map +1 -1
  90. package/build/esm/components/DishModifierCard/DishModifierCard.styles.js +11 -11
  91. package/build/esm/components/DishModifierCard/DishModifierCard.styles.js.map +1 -1
  92. package/build/esm/components/DishModifierCard/DishModifierCardProps.d.ts +7 -7
  93. package/build/esm/components/DishModifierCard/ModifierControls.d.ts +0 -1
  94. package/build/esm/components/DishModifierCard/ModifierControls.js +47 -54
  95. package/build/esm/components/DishModifierCard/ModifierControls.js.map +1 -1
  96. package/build/esm/components/DishModifierCard/ModifierForm.d.ts +0 -1
  97. package/build/esm/components/DishModifierCard/index.d.ts +2 -2
  98. package/build/esm/components/ItemTag/ItemTag.js +3 -3
  99. package/build/esm/components/ItemTag/ItemTag.js.map +1 -1
  100. package/build/esm/components/ItemTag/index.d.ts +2 -2
  101. package/build/esm/components/ItemTag/itemTag.styles.js +2 -2
  102. package/build/esm/components/ItemTag/itemTag.styles.js.map +1 -1
  103. package/build/esm/components/ItemTagGroup/ItemTagGroup.js +2 -2
  104. package/build/esm/components/ItemTagGroup/ItemTagGroup.js.map +1 -1
  105. package/build/esm/components/ItemTagGroup/index.d.ts +1 -1
  106. package/build/esm/components/LocationCard/LocationCard.d.ts +0 -1
  107. package/build/esm/components/LocationCard/LocationCard.js +7 -8
  108. package/build/esm/components/LocationCard/LocationCard.js.map +1 -1
  109. package/build/esm/components/LocationCard/LocationCard.styles.js +6 -12
  110. package/build/esm/components/LocationCard/LocationCard.styles.js.map +1 -1
  111. package/build/esm/components/LocationCard/index.d.ts +2 -2
  112. package/build/esm/components/MenuBanner/MenuBanner.d.ts +0 -1
  113. package/build/esm/components/MenuBanner/MenuBanner.js +9 -10
  114. package/build/esm/components/MenuBanner/MenuBanner.js.map +1 -1
  115. package/build/esm/components/MenuBanner/MenuBanner.styles.js +12 -16
  116. package/build/esm/components/MenuBanner/MenuBanner.styles.js.map +1 -1
  117. package/build/esm/components/MenuBanner/MenuBannerIcons.d.ts +0 -1
  118. package/build/esm/components/MenuBanner/MenuBannerIcons.js +2 -2
  119. package/build/esm/components/MenuBanner/MenuBannerIcons.js.map +1 -1
  120. package/build/esm/components/MenuBanner/MenuBannerProps.d.ts +1 -1
  121. package/build/esm/components/MenuBanner/index.d.ts +1 -1
  122. package/build/esm/components/MenuDropdown/MenuDropdown.d.ts +0 -1
  123. package/build/esm/components/MenuDropdown/MenuDropdown.js +12 -15
  124. package/build/esm/components/MenuDropdown/MenuDropdown.js.map +1 -1
  125. package/build/esm/components/MenuDropdown/MenuDropdown.styles.js +29 -33
  126. package/build/esm/components/MenuDropdown/MenuDropdown.styles.js.map +1 -1
  127. package/build/esm/components/MenuDropdown/MenuDropdownProps.d.ts +1 -1
  128. package/build/esm/components/MenuDropdown/index.d.ts +2 -2
  129. package/build/esm/components/MenuFilter/MenuFilter.d.ts +0 -1
  130. package/build/esm/components/MenuFilter/MenuFilter.js +18 -18
  131. package/build/esm/components/MenuFilter/MenuFilter.js.map +1 -1
  132. package/build/esm/components/MenuFilter/MenuFilter.styles.js +2 -2
  133. package/build/esm/components/MenuFilter/MenuFilter.styles.js.map +1 -1
  134. package/build/esm/components/MenuFilter/MenuFilterProps.d.ts +3 -4
  135. package/build/esm/components/MenuFilter/index.d.ts +2 -2
  136. package/build/esm/components/MenuItem/MenuItem.js +10 -11
  137. package/build/esm/components/MenuItem/MenuItem.js.map +1 -1
  138. package/build/esm/components/MenuItem/MenuItem.styles.js +56 -60
  139. package/build/esm/components/MenuItem/MenuItem.styles.js.map +1 -1
  140. package/build/esm/components/MenuItem/MenuItemImg.d.ts +1 -2
  141. package/build/esm/components/MenuItem/MenuItemImg.js +6 -6
  142. package/build/esm/components/MenuItem/MenuItemImg.js.map +1 -1
  143. package/build/esm/components/MenuItem/MenuItemInfo.js +1 -1
  144. package/build/esm/components/MenuItem/MenuItemInfo.js.map +1 -1
  145. package/build/esm/components/MenuItem/MenuItemPrice.d.ts +1 -2
  146. package/build/esm/components/MenuItem/MenuItemPrice.js +12 -15
  147. package/build/esm/components/MenuItem/MenuItemPrice.js.map +1 -1
  148. package/build/esm/components/MenuItem/MenuItemProps.d.ts +1 -1
  149. package/build/esm/components/MenuItem/MenuItemReactions.d.ts +1 -2
  150. package/build/esm/components/MenuItem/MenuItemReactions.js +7 -7
  151. package/build/esm/components/MenuItem/MenuItemReactions.js.map +1 -1
  152. package/build/esm/components/MenuItem/MenuItemTags.d.ts +1 -2
  153. package/build/esm/components/MenuItem/MenuItemTags.js +3 -3
  154. package/build/esm/components/MenuItem/MenuItemTags.js.map +1 -1
  155. package/build/esm/components/MenuItem/index.d.ts +1 -1
  156. package/build/esm/components/MenuItemGroup/MenuItemGroup.d.ts +1 -1
  157. package/build/esm/components/MenuItemGroup/MenuItemGroup.js +5 -6
  158. package/build/esm/components/MenuItemGroup/MenuItemGroup.js.map +1 -1
  159. package/build/esm/components/MenuItemGroup/MenuItemGroupStyles.js +12 -16
  160. package/build/esm/components/MenuItemGroup/MenuItemGroupStyles.js.map +1 -1
  161. package/build/esm/components/MenuSection/MenuSection.js +4 -5
  162. package/build/esm/components/MenuSection/MenuSection.js.map +1 -1
  163. package/build/esm/components/MenuSection/MenuSectionProps.d.ts +0 -1
  164. package/build/esm/components/MenuSection/MenuSectionStyles.js +2 -2
  165. package/build/esm/components/MenuSection/MenuSectionStyles.js.map +1 -1
  166. package/build/esm/components/MenuSection/index.d.ts +1 -1
  167. package/build/esm/components/MenuSectionGroup/MenuSectionGroup.js +3 -4
  168. package/build/esm/components/MenuSectionGroup/MenuSectionGroup.js.map +1 -1
  169. package/build/esm/components/MenuTab/MenuTab.d.ts +0 -1
  170. package/build/esm/components/MenuTab/MenuTab.js +5 -6
  171. package/build/esm/components/MenuTab/MenuTab.js.map +1 -1
  172. package/build/esm/components/MenuTab/MenuTab.styles.js +13 -16
  173. package/build/esm/components/MenuTab/MenuTab.styles.js.map +1 -1
  174. package/build/esm/components/MenuTab/MenuTabProps.d.ts +1 -1
  175. package/build/esm/components/MenuTab/index.d.ts +2 -2
  176. package/build/esm/components/MenuTabGroup/MenuTabGroup.d.ts +0 -1
  177. package/build/esm/components/MenuTabGroup/MenuTabGroup.js +4 -5
  178. package/build/esm/components/MenuTabGroup/MenuTabGroup.js.map +1 -1
  179. package/build/esm/components/MenuTabGroup/MenuTabGroupProps.d.ts +1 -4
  180. package/build/esm/components/MenuTabGroup/index.d.ts +2 -2
  181. package/build/esm/components/OrderingAppContext/OrderingAppContext.d.ts +3 -3
  182. package/build/esm/components/OrderingAppContext/OrderingAppContext.js +6 -6
  183. package/build/esm/components/OrderingAppContext/OrderingAppContext.js.map +1 -1
  184. package/build/esm/components/PageSection/PageSection.js +1 -1
  185. package/build/esm/components/PageSection/PageSection.js.map +1 -1
  186. package/build/esm/components/QuantityPicker/QuantityPicker.d.ts +1 -2
  187. package/build/esm/components/QuantityPicker/QuantityPicker.js +39 -16
  188. package/build/esm/components/QuantityPicker/QuantityPicker.js.map +1 -1
  189. package/build/esm/components/QuantityPicker/QuantityPicker.styles.d.ts +3 -3
  190. package/build/esm/components/QuantityPicker/QuantityPicker.styles.js +17 -17
  191. package/build/esm/components/QuantityPicker/QuantityPicker.styles.js.map +1 -1
  192. package/build/esm/components/QuantityPicker/QuantityPickerProps.d.ts +6 -2
  193. package/build/esm/components/QuantityPicker/index.d.ts +2 -2
  194. package/build/esm/components/Radio/Radio.d.ts +0 -1
  195. package/build/esm/components/Radio/Radio.js +7 -10
  196. package/build/esm/components/Radio/Radio.js.map +1 -1
  197. package/build/esm/components/ReactionCounter/ReactionCounter.d.ts +0 -1
  198. package/build/esm/components/ReactionCounter/ReactionCounter.js +2 -2
  199. package/build/esm/components/ReactionCounter/ReactionCounter.js.map +1 -1
  200. package/build/esm/components/ReactionCounter/index.d.ts +2 -2
  201. package/build/esm/components/ReactionCounterGroup/ReactionCounterGroup.d.ts +1 -1
  202. package/build/esm/components/ReactionCounterGroup/ReactionCounterGroup.js +2 -2
  203. package/build/esm/components/ReactionCounterGroup/ReactionCounterGroup.js.map +1 -1
  204. package/build/esm/components/ReactionCounterGroup/index.d.ts +1 -1
  205. package/build/esm/components/SelectableChip/SelectableChip.d.ts +0 -1
  206. package/build/esm/components/SelectableChip/SelectableChip.js +4 -5
  207. package/build/esm/components/SelectableChip/SelectableChip.js.map +1 -1
  208. package/build/esm/components/SelectableChip/SelectableChip.styles.js +2 -2
  209. package/build/esm/components/SelectableChip/SelectableChip.styles.js.map +1 -1
  210. package/build/esm/components/SelectableChip/SelectableChipProps.d.ts +1 -1
  211. package/build/esm/components/SelectableChip/index.d.ts +2 -2
  212. package/build/esm/components/SelectableChipGroup/SelectableChipGroup.d.ts +0 -1
  213. package/build/esm/components/SelectableChipGroup/SelectableChipGroup.js +5 -6
  214. package/build/esm/components/SelectableChipGroup/SelectableChipGroup.js.map +1 -1
  215. package/build/esm/components/SelectableChipGroup/SelectableChipGroup.styles.js +12 -16
  216. package/build/esm/components/SelectableChipGroup/SelectableChipGroup.styles.js.map +1 -1
  217. package/build/esm/components/SelectableChipGroup/SelectableChipGroupProps.d.ts +1 -4
  218. package/build/esm/components/SelectableChipGroup/index.d.ts +2 -2
  219. package/build/esm/components/SelectedMenuFiltersList/SelectedMenuFiltersList.d.ts +0 -1
  220. package/build/esm/components/SelectedMenuFiltersList/SelectedMenuFiltersList.js +20 -23
  221. package/build/esm/components/SelectedMenuFiltersList/SelectedMenuFiltersList.js.map +1 -1
  222. package/build/esm/components/SelectedMenuFiltersList/index.d.ts +1 -1
  223. package/build/esm/components/StatusTag/StatusTag.d.ts +0 -1
  224. package/build/esm/components/StatusTag/StatusTag.js +3 -4
  225. package/build/esm/components/StatusTag/StatusTag.js.map +1 -1
  226. package/build/esm/components/StatusTag/StatusTag.styles.js +3 -3
  227. package/build/esm/components/StatusTag/StatusTag.styles.js.map +1 -1
  228. package/build/esm/components/StatusTag/index.d.ts +2 -2
  229. package/build/esm/components/Switch/Switch.d.ts +0 -1
  230. package/build/esm/components/Switch/Switch.js +14 -17
  231. package/build/esm/components/Switch/Switch.js.map +1 -1
  232. package/build/esm/components/index.d.ts +41 -22
  233. package/build/esm/index.js +3 -3
  234. package/build/esm/theme/overrides.js +1 -1
  235. package/build/esm/theme/overrides.js.map +1 -1
  236. package/build/esm/theme/palette.js +1 -1
  237. package/build/esm/theme/palette.js.map +1 -1
  238. package/build/esm/theme/props.js +1 -1
  239. package/build/esm/theme/props.js.map +1 -1
  240. package/build/esm/theme/theme.js +5 -5
  241. package/build/esm/theme/theme.js.map +1 -1
  242. package/build/esm/theme/typography.js +2 -2
  243. package/build/esm/theme/typography.js.map +1 -1
  244. package/package.json +4 -4
  245. package/build/esm/_virtual/index.js +0 -4
  246. package/build/esm/_virtual/index.js.map +0 -1
  247. package/build/esm/node_modules/classnames/index.js +0 -81
  248. package/build/esm/node_modules/classnames/index.js.map +0 -1
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
3
  var core = require('@material-ui/core');
4
- var tslib = require('tslib');
5
4
  var React = require('react');
6
- var webIcons = require('@popmenu/web-icons');
7
- var commonUi = require('@popmenu/common-ui');
8
5
  var lab = require('@material-ui/lab');
6
+ var classNames = require('classnames');
7
+ var commonUi = require('@popmenu/common-ui');
8
+ var webIcons = require('@popmenu/web-icons');
9
9
 
10
10
  function _interopNamespaceDefault(e) {
11
11
  var n = Object.create(null);
@@ -26,9 +26,9 @@ function _interopNamespaceDefault(e) {
26
26
 
27
27
  var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
28
28
 
29
- var Button = React.forwardRef(function (props, ref) {
30
- var _a = props.variation, variation = _a === void 0 ? 'primary' : _a, muiProps = tslib.__rest(props, ["variation"]);
31
- var variationProps = {};
29
+ const Button = React.forwardRef((props, ref) => {
30
+ const { variation = 'primary', ...muiProps } = props;
31
+ const variationProps = {};
32
32
  switch (variation) {
33
33
  case 'primary':
34
34
  variationProps.variant = 'contained';
@@ -39,137 +39,173 @@ var Button = React.forwardRef(function (props, ref) {
39
39
  variationProps.color = 'primary';
40
40
  break;
41
41
  }
42
- return React.createElement(core.Button, tslib.__assign({}, variationProps, muiProps, { ref: ref }));
42
+ return React.createElement(core.Button, { ...variationProps, ...muiProps, ref: ref });
43
43
  });
44
44
  Button.displayName = 'Button';
45
45
 
46
- var useMenuItemStyles = core.makeStyles(function (theme) {
47
- var _a, _b;
48
- return ({
49
- cardActionArea: (_a = {
50
- display: 'flex',
51
- gridGap: 16,
52
- height: '100%'
53
- },
54
- _a[theme.breakpoints.up('lg')] = {
55
- border: '1px solid #E0E0E0',
56
- borderRadius: theme.spacing(2),
57
- padding: theme.spacing(2),
58
- },
59
- _a),
60
- card: (_b = {},
61
- _b[theme.breakpoints.down('md')] = {
62
- '&:after': {
63
- content: '""',
64
- position: 'absolute',
65
- backgroundColor: '#E0E0E0',
66
- width: '100%',
67
- height: 1,
68
- bottom: -16,
69
- left: 0,
70
- },
71
- },
72
- _b.height = 185,
73
- _b.position = 'relative',
74
- _b.overflow = 'visible',
75
- _b),
76
- cardTitle: {
77
- flexGrow: 1,
78
- fontWeight: 500,
79
- fontSize: 18,
80
- lineHeight: '27px',
81
- color: theme.palette.grey[900],
82
- '-webkit-line-clamp': 2,
83
- display: '-webkit-box',
84
- '-webkit-box-orient': 'vertical',
85
- textOverflow: 'ellipsis',
86
- overflow: 'hidden',
87
- },
88
- cardDescription: {
89
- fontWeight: 400,
90
- fontSize: 14,
91
- lineHeight: '20px',
92
- margin: theme.spacing(0.5, 0, 1, 0),
93
- color: theme.palette.grey[800],
94
- '-webkit-line-clamp': 2,
95
- display: '-webkit-box',
96
- '-webkit-box-orient': 'vertical',
97
- textOverflow: 'ellipsis',
98
- overflow: 'hidden',
46
+ const useStatusTagStyles = core.makeStyles((theme) => ({
47
+ root: {
48
+ borderRadius: '5px',
49
+ display: 'flex',
50
+ padding: theme.spacing(1),
51
+ alignItems: 'center',
52
+ justifyContent: 'center',
53
+ width: 'fit-content',
54
+ },
55
+ filled: {
56
+ backgroundColor: theme.palette.grey[100],
57
+ color: theme.palette.grey[900],
58
+ },
59
+ outlined: {
60
+ border: `1px solid var(--surfaces-card-stroke, ${theme.palette.grey[900]})`,
61
+ },
62
+ small: {
63
+ padding: theme.spacing(0.25, 0.75),
64
+ },
65
+ default: {
66
+ color: theme.palette.grey[900],
67
+ },
68
+ warning: {
69
+ borderColor: theme.palette.warning.dark,
70
+ color: theme.palette.warning.dark,
71
+ },
72
+ error: {
73
+ borderColor: theme.palette.error.main,
74
+ color: theme.palette.error.main,
75
+ },
76
+ highlight: {
77
+ backgroundColor: theme.palette.warning.light,
78
+ color: theme.palette.grey[900],
79
+ },
80
+ }));
81
+
82
+ const StatusTag = ({ color = 'default', label, size = 'md', variant }) => {
83
+ const classes = useStatusTagStyles();
84
+ return (React.createElement(commonUi.Box, { className: classNames([classes.root, classes[color], classes[variant], size === 'sm' ? classes.small : '']) },
85
+ React.createElement(commonUi.Typography, { variant: "caption" }, label)));
86
+ };
87
+ StatusTag.displayName = 'StatusTag';
88
+
89
+ const useMenuItemStyles = core.makeStyles((theme) => ({
90
+ cardActionArea: {
91
+ display: 'flex',
92
+ gridGap: 16,
93
+ height: '100%',
94
+ [theme.breakpoints.up('lg')]: {
95
+ border: '1px solid #E0E0E0',
96
+ borderRadius: theme.spacing(2),
97
+ padding: theme.spacing(2),
99
98
  },
100
- outOfStockTag: {
101
- minWidth: '90px',
102
- marginLeft: theme.spacing(1),
103
- display: 'inline-block',
104
- verticalAlign: 'bottom',
99
+ },
100
+ card: {
101
+ [theme.breakpoints.down('md')]: {
102
+ '&:after': {
103
+ content: '""',
104
+ position: 'absolute',
105
+ backgroundColor: '#E0E0E0',
106
+ width: '100%',
107
+ height: 1,
108
+ bottom: -16,
109
+ left: 0,
110
+ },
105
111
  },
106
- });
107
- });
112
+ height: 185,
113
+ position: 'relative',
114
+ overflow: 'visible',
115
+ },
116
+ cardTitle: {
117
+ flexGrow: 1,
118
+ fontWeight: 500,
119
+ fontSize: 18,
120
+ lineHeight: '27px',
121
+ color: theme.palette.grey[900],
122
+ '-webkit-line-clamp': 2,
123
+ display: '-webkit-box',
124
+ '-webkit-box-orient': 'vertical',
125
+ textOverflow: 'ellipsis',
126
+ overflow: 'hidden',
127
+ },
128
+ cardDescription: {
129
+ fontWeight: 400,
130
+ fontSize: 14,
131
+ lineHeight: '20px',
132
+ margin: theme.spacing(0.5, 0, 1, 0),
133
+ color: theme.palette.grey[800],
134
+ '-webkit-line-clamp': 2,
135
+ display: '-webkit-box',
136
+ '-webkit-box-orient': 'vertical',
137
+ textOverflow: 'ellipsis',
138
+ overflow: 'hidden',
139
+ },
140
+ outOfStockTag: {
141
+ minWidth: '90px',
142
+ marginLeft: theme.spacing(1),
143
+ display: 'inline-block',
144
+ verticalAlign: 'bottom',
145
+ },
146
+ }));
108
147
 
109
- var useStyles$6 = core.makeStyles(function () { return ({
148
+ const useStyles$6 = core.makeStyles(() => ({
110
149
  img: {
111
150
  objectFit: 'cover',
112
151
  width: '100%',
113
152
  height: '100%',
114
153
  },
115
- }); });
116
- var MenuItemImg = function (props) {
117
- var _a = props.image, image = _a === void 0 ? {} : _a;
118
- var src = image.src;
119
- var classes = useStyles$6();
154
+ }));
155
+ const MenuItemImg = (props) => {
156
+ const { image = {} } = props;
157
+ const { src } = image;
158
+ const classes = useStyles$6();
120
159
  if (!src) {
121
160
  return null;
122
161
  }
123
162
  return (React.createElement(core.Box, { width: 125, height: "100%", borderRadius: 16, overflow: "hidden", flexShrink: 0 }, React.createElement("img", { src: src, alt: "", className: classes.img })));
124
163
  };
125
164
 
126
- var MenuItemInfo = function (props) {
165
+ const MenuItemInfo = (props) => {
127
166
  return (React.createElement(core.Box, { display: "flex", flexGrow: 1, flexDirection: "column", height: "100%" }, props.children));
128
167
  };
129
168
 
130
- var ReactionCounter = function (props) {
131
- var count = props.count, icon = props.icon, label = props.label;
169
+ const useStyles$5 = core.makeStyles(({ palette, spacing }) => ({
170
+ plusIcon: {
171
+ height: '100%',
172
+ padding: spacing(0.25),
173
+ background: (props) => (props.available ? palette.info.main : 'none'),
174
+ color: (props) => (props.available ? palette.info.contrastText : palette.warning.main),
175
+ borderRadius: '30px',
176
+ marginRight: spacing(1),
177
+ },
178
+ }));
179
+ const MenuItemPrice = (props) => {
180
+ const classes = useStyles$5(props);
181
+ return (React.createElement(core.Box, { display: "flex", alignItems: "center" },
182
+ React.createElement(core.Box, { display: "flex", className: classes.plusIcon },
183
+ React.createElement(commonUi.Icon, { icon: props.available ? webIcons.Plus : webIcons.Lock, size: "medium" })),
184
+ React.createElement(core.Typography, null, props.price)));
185
+ };
186
+
187
+ const ReactionCounter = (props) => {
188
+ const { count, icon, label } = props;
132
189
  return (React.createElement(commonUi.Box, { display: "flex", alignItems: "center", gridGap: 6, color: "grey.900" },
133
190
  React.createElement(commonUi.Icon, { icon: icon, size: "large", color: "inherit", "aria-label": label }),
134
191
  React.createElement(commonUi.Typography, { variant: "body2", color: "grey.900" }, count)));
135
192
  };
136
193
 
137
- var ReactionCounterGroup = function (props) {
138
- var children = props.children;
194
+ const ReactionCounterGroup = (props) => {
195
+ const { children } = props;
139
196
  return (React.createElement(commonUi.Box, { display: "flex", gridGap: 16 }, children));
140
197
  };
141
198
 
142
- var MenuItemReactions = function (props) {
143
- var likeCount = props.likeCount, reviewCount = props.reviewCount;
144
- var showLikes = likeCount ? likeCount > 0 : false;
145
- var showReviews = reviewCount ? reviewCount > 0 : false;
199
+ const MenuItemReactions = (props) => {
200
+ const { likeCount, reviewCount } = props;
201
+ const showLikes = likeCount ? likeCount > 0 : false;
202
+ const showReviews = reviewCount ? reviewCount > 0 : false;
146
203
  return (React.createElement(ReactionCounterGroup, null,
147
- showLikes && React.createElement(ReactionCounter, { icon: webIcons.Heart, count: likeCount !== null && likeCount !== void 0 ? likeCount : 0, label: "likes" }),
148
- showReviews && React.createElement(ReactionCounter, { icon: webIcons.Reviews, count: reviewCount !== null && reviewCount !== void 0 ? reviewCount : 0, label: "reviews" })));
204
+ showLikes && React.createElement(ReactionCounter, { icon: webIcons.Heart, count: likeCount ?? 0, label: "likes" }),
205
+ showReviews && React.createElement(ReactionCounter, { icon: webIcons.Reviews, count: reviewCount ?? 0, label: "reviews" })));
149
206
  };
150
207
 
151
- var useStyles$5 = core.makeStyles(function (_a) {
152
- var palette = _a.palette, spacing = _a.spacing;
153
- return ({
154
- plusIcon: {
155
- height: '100%',
156
- padding: spacing(0.25),
157
- background: function (props) { return (props.available ? palette.info.main : 'none'); },
158
- color: function (props) { return (props.available ? palette.info.contrastText : palette.warning.main); },
159
- borderRadius: '30px',
160
- marginRight: spacing(1),
161
- },
162
- });
163
- });
164
- var MenuItemPrice = function (props) {
165
- var classes = useStyles$5(props);
166
- return (React.createElement(core.Box, { display: "flex", alignItems: "center" },
167
- React.createElement(core.Box, { display: "flex", className: classes.plusIcon },
168
- React.createElement(commonUi.Icon, { icon: props.available ? webIcons.Plus : webIcons.Lock, size: "medium" })),
169
- React.createElement(core.Typography, null, props.price)));
170
- };
171
-
172
- var useItemTagStyles = core.makeStyles(function (theme) { return ({
208
+ const useItemTagStyles = core.makeStyles((theme) => ({
173
209
  root: {
174
210
  color: theme.palette.text.primary,
175
211
  borderColor: theme.palette.text.primary,
@@ -183,156 +219,33 @@ var useItemTagStyles = core.makeStyles(function (theme) { return ({
183
219
  text: {
184
220
  lineHeight: 1.5,
185
221
  },
186
- }); });
222
+ }));
187
223
 
188
- var ItemTag = React.forwardRef(function (props, ref) {
189
- var alt = props.alt, children = props.children;
190
- var classes = useItemTagStyles();
224
+ const ItemTag = React.forwardRef((props, ref) => {
225
+ const { alt, children } = props;
226
+ const classes = useItemTagStyles();
191
227
  return (React.createElement(core.Avatar, { ref: ref, alt: alt, classes: { root: classes.root } },
192
228
  React.createElement(commonUi.Typography, { variant: "caption", className: classes.text }, children)));
193
229
  });
194
230
  ItemTag.displayName = 'ItemTag';
195
231
 
196
- var ItemTagGroup = function (props) {
197
- var children = props.children;
232
+ const ItemTagGroup = (props) => {
233
+ const { children } = props;
198
234
  return (React.createElement(core.Box, { display: "flex", gridGap: 6, ml: 1, flexWrap: "wrap" }, children));
199
235
  };
200
236
 
201
- var MenuItemTags = function (props) {
202
- var itemTags = props.itemTags;
203
- return (React.createElement(ItemTagGroup, null, itemTags === null || itemTags === void 0 ? void 0 : itemTags.slice(0, 5).map(function (itemTag) { return (React.createElement(ItemTag, { key: itemTag.name, alt: itemTag.name, color: itemTag.color }, itemTag.abbr)); })));
237
+ const MenuItemTags = (props) => {
238
+ const { itemTags } = props;
239
+ return (React.createElement(ItemTagGroup, null, itemTags?.slice(0, 5).map((itemTag) => (React.createElement(ItemTag, { key: itemTag.name, alt: itemTag.name, color: itemTag.color }, itemTag.abbr)))));
204
240
  };
205
241
 
206
- var useStatusTagStyles = core.makeStyles(function (theme) { return ({
207
- root: {
208
- borderRadius: '5px',
209
- display: 'flex',
210
- padding: theme.spacing(1),
211
- alignItems: 'center',
212
- justifyContent: 'center',
213
- width: 'fit-content',
214
- },
215
- filled: {
216
- backgroundColor: theme.palette.grey[100],
217
- color: theme.palette.grey[900],
218
- },
219
- outlined: {
220
- border: "1px solid var(--surfaces-card-stroke, " + theme.palette.grey[900] + ")",
221
- },
222
- small: {
223
- padding: theme.spacing(0.25, 0.75),
224
- },
225
- default: {
226
- color: theme.palette.grey[900],
227
- },
228
- warning: {
229
- borderColor: theme.palette.warning.dark,
230
- color: theme.palette.warning.dark,
231
- },
232
- error: {
233
- borderColor: theme.palette.error.main,
234
- color: theme.palette.error.main,
235
- },
236
- highlight: {
237
- backgroundColor: theme.palette.warning.light,
238
- color: theme.palette.grey[900],
239
- },
240
- }); });
241
-
242
- var classnames = {exports: {}};
243
-
244
- /*!
245
- Copyright (c) 2018 Jed Watson.
246
- Licensed under the MIT License (MIT), see
247
- http://jedwatson.github.io/classnames
248
- */
249
-
250
- (function (module) {
251
- /* global define */
252
-
253
- (function () {
254
-
255
- var hasOwn = {}.hasOwnProperty;
256
-
257
- function classNames () {
258
- var classes = '';
259
-
260
- for (var i = 0; i < arguments.length; i++) {
261
- var arg = arguments[i];
262
- if (arg) {
263
- classes = appendClass(classes, parseValue(arg));
264
- }
265
- }
266
-
267
- return classes;
268
- }
269
-
270
- function parseValue (arg) {
271
- if (typeof arg === 'string' || typeof arg === 'number') {
272
- return arg;
273
- }
274
-
275
- if (typeof arg !== 'object') {
276
- return '';
277
- }
278
-
279
- if (Array.isArray(arg)) {
280
- return classNames.apply(null, arg);
281
- }
282
-
283
- if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {
284
- return arg.toString();
285
- }
286
-
287
- var classes = '';
288
-
289
- for (var key in arg) {
290
- if (hasOwn.call(arg, key) && arg[key]) {
291
- classes = appendClass(classes, key);
292
- }
293
- }
294
-
295
- return classes;
296
- }
297
-
298
- function appendClass (value, newClass) {
299
- if (!newClass) {
300
- return value;
301
- }
302
-
303
- if (value) {
304
- return value + ' ' + newClass;
305
- }
306
-
307
- return value + newClass;
308
- }
309
-
310
- if (module.exports) {
311
- classNames.default = classNames;
312
- module.exports = classNames;
313
- } else {
314
- window.classNames = classNames;
315
- }
316
- }());
317
- }(classnames));
318
-
319
- var classNames = classnames.exports;
320
-
321
- var StatusTag = function (_a) {
322
- var _b = _a.color, color = _b === void 0 ? 'default' : _b, label = _a.label, _c = _a.size, size = _c === void 0 ? 'md' : _c, variant = _a.variant;
323
- var classes = useStatusTagStyles();
324
- return (React.createElement(commonUi.Box, { className: classNames([classes.root, classes[color], classes[variant], size === 'sm' ? classes.small : '']) },
325
- React.createElement(commonUi.Typography, { variant: "caption" }, label)));
326
- };
327
- StatusTag.displayName = 'StatusTag';
328
-
329
- var MenuItem = React.forwardRef(function (props, ref) {
330
- 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 = tslib.__rest(props, ["ariaLabel", "onClick", "id", "description", "isOutOfStock", "title", "loading", "isFeatured", "image", "likeCount", "reviewCount", "price", "available", "itemTags", "className"]);
331
- var classes = useMenuItemStyles(props);
332
- var handleClick = function (event) {
242
+ const MenuItem = React.forwardRef((props, ref) => {
243
+ const { ariaLabel, onClick, id, description, isOutOfStock, title, loading, isFeatured, image, likeCount, reviewCount, price, available, itemTags, className, ...restProps } = props;
244
+ const classes = useMenuItemStyles(props);
245
+ const handleClick = (event) => {
333
246
  onClick(id, event);
334
247
  };
335
- return (React.createElement(core.Card, tslib.__assign({ className: classNames(classes.card, className), ref: ref, elevation: 0, "data-component-type": "menu-item" }, restProps),
248
+ return (React.createElement(core.Card, { className: classNames(classes.card, className), ref: ref, elevation: 0, "data-component-type": "menu-item", ...restProps },
336
249
  React.createElement(core.CardActionArea, { className: classes.cardActionArea, onClick: handleClick, disabled: loading, "aria-label": ariaLabel },
337
250
  React.createElement(MenuItemInfo, null,
338
251
  isFeatured && React.createElement(StatusTag, { color: "highlight", label: "Featured", variant: "filled", size: "sm" }),
@@ -351,7 +264,49 @@ var MenuItem = React.forwardRef(function (props, ref) {
351
264
  });
352
265
  MenuItem.displayName = 'MenuItem';
353
266
 
354
- var useDishCheckoutCardStyles = core.makeStyles(function (theme) { return ({
267
+ const useMenuTabStyles = core.makeStyles(({ palette, spacing }) => ({
268
+ root: {
269
+ '& > .MuiTab-wrapper': {
270
+ flexDirection: 'row-reverse',
271
+ gridGap: spacing(1),
272
+ textAlign: 'center',
273
+ '& > svg': {
274
+ marginBottom: '0 !important',
275
+ },
276
+ },
277
+ },
278
+ isUnavailable: {
279
+ color: palette.grey[700],
280
+ },
281
+ }));
282
+
283
+ const MenuTab = (props) => {
284
+ const { isUnavailable, value } = props;
285
+ const classes = useMenuTabStyles(props);
286
+ return (React.createElement(core.Tab, { "data-tab-for-section-id": value, classes: {
287
+ root: classes.root,
288
+ }, disabled: isUnavailable, icon: isUnavailable ? React.createElement(commonUi.Icon, { icon: webIcons.Clock, size: "large" }) : undefined, ...props }));
289
+ };
290
+
291
+ const MenuTabGroup = (props) => {
292
+ const { children, ...muiProps } = props;
293
+ return (React.createElement(core.Tabs, { scrollButtons: "on", variant: "scrollable", ...muiProps }, children));
294
+ };
295
+
296
+ const OrderingAppContext = React.createContext(null);
297
+ const useOrderingAppContext = () => {
298
+ const context = React.useContext(OrderingAppContext);
299
+ if (!context) {
300
+ throw new Error('useOrderingAppContext has to be used within <OrderingAppContext.Provider>');
301
+ }
302
+ return context;
303
+ };
304
+ const OrderingAppContextProvider = (props) => {
305
+ const context = React.useState(props.defaultContext);
306
+ return React.createElement(OrderingAppContext.Provider, { value: context }, props.children);
307
+ };
308
+
309
+ const useDishCheckoutCardStyles = core.makeStyles((theme) => ({
355
310
  root: {
356
311
  '&:first-of-type': {
357
312
  paddingTop: 0,
@@ -366,10 +321,7 @@ var useDishCheckoutCardStyles = core.makeStyles(function (theme) { return ({
366
321
  flexDirection: 'column',
367
322
  width: '100%',
368
323
  gridGap: theme.spacing(2),
369
- borderBottom: function (_a) {
370
- var borderBottom = _a.borderBottom;
371
- return (borderBottom ? '1px solid #E0E0E0' : 'none');
372
- },
324
+ borderBottom: ({ borderBottom }) => (borderBottom ? '1px solid #E0E0E0' : 'none'),
373
325
  },
374
326
  deleteButton: {
375
327
  color: theme.palette.info.main,
@@ -430,58 +382,35 @@ var useDishCheckoutCardStyles = core.makeStyles(function (theme) { return ({
430
382
  display: 'flex',
431
383
  gridGap: theme.spacing(0.825),
432
384
  },
433
- }); });
385
+ }));
434
386
 
435
- var OrderingAppContext = React.createContext(null);
436
- var useOrderingAppContext = function () {
437
- var context = React.useContext(OrderingAppContext);
438
- if (!context) {
439
- throw new Error('useOrderingAppContext has to be used within <OrderingAppContext.Provider>');
440
- }
441
- return context;
442
- };
443
- var OrderingAppContextProvider = function (props) {
444
- var context = React.useState(props.defaultContext);
445
- return React.createElement(OrderingAppContext.Provider, { value: context }, props.children);
446
- };
447
-
448
- var DishCheckoutCard = function (props) {
449
- var _a;
450
- 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;
451
- var src = image.src;
452
- var classes = useDishCheckoutCardStyles(props);
453
- var appContext = useOrderingAppContext()[0];
454
- var _c = React.useState(false), open = _c[0], setOpen = _c[1];
455
- var formattedPrice = typeof price === 'number' ? "" + ((_a = appContext.currencySymbol) !== null && _a !== void 0 ? _a : '') + price.toFixed(2) : price;
456
- var handleQuantityChange = function (event) {
457
- return onQuantityChange(id, parseInt(event.target.value, 10));
458
- };
459
- var labelString = function (label) {
387
+ const DishCheckoutCard = ({ id, borderBottom, name, quantity, modifierGroups, onDelete, onEdit, onQuantityChange, price, specialInstructions, disabled, warningMessage, image = {}, messages, maxQuantity = 99, minQuantity = 1, }) => {
388
+ const { src } = image;
389
+ const classes = useDishCheckoutCardStyles({ borderBottom });
390
+ const [appContext] = useOrderingAppContext();
391
+ const [open, setOpen] = React.useState(false);
392
+ const formattedPrice = typeof price === 'number' ? `${appContext.currencySymbol ?? ''}${price.toFixed(2)}` : price;
393
+ const handleQuantityChange = (event) => onQuantityChange(id, parseInt(event.target.value, 10));
394
+ const labelString = (label) => {
460
395
  return label.replace(/[^a-zA-Z\s]/g, '').toLowerCase();
461
396
  };
462
- var formatModifiers = function (groups, nested) {
463
- if (nested === void 0) { nested = false; }
464
- return groups.map(function (group) {
397
+ const formatModifiers = (groups, nested = false) => {
398
+ return groups.map((group) => {
465
399
  // Get all selected modifiers for this group
466
- var modifiers = group.selectedModifiers
467
- .map(function (modifier) {
468
- return modifier.quantity > 1 ? modifier.modifierName + " \u00D7 " + modifier.quantity : modifier.modifierName;
469
- })
400
+ const modifiers = group.selectedModifiers
401
+ .map((modifier) => modifier.quantity > 1 ? `${modifier.modifierName} × ${modifier.quantity}` : modifier.modifierName)
470
402
  .join(', ');
471
403
  // Render nested groups recursively
472
- var nestedGroups = group.selectedModifiers.flatMap(function (modifier) {
473
- var _a;
474
- return (modifier === null || modifier === void 0 ? void 0 : modifier.selectedModifierGroups) && ((_a = modifier === null || modifier === void 0 ? void 0 : modifier.selectedModifierGroups) === null || _a === void 0 ? void 0 : _a.length) > 0
475
- ? formatModifiers(modifier.selectedModifierGroups, true)
476
- : [];
477
- });
404
+ const nestedGroups = group.selectedModifiers.flatMap((modifier) => modifier?.selectedModifierGroups && modifier?.selectedModifierGroups?.length > 0
405
+ ? formatModifiers(modifier.selectedModifierGroups, true)
406
+ : []);
478
407
  // For top-level groups, we render without the list
479
408
  if (!nested) {
480
409
  return (React.createElement(commonUi.Typography, { key: group.id, variant: "body2" },
481
410
  group.menuItemModifierGroupName,
482
411
  ": ",
483
412
  modifiers,
484
- (nestedGroups === null || nestedGroups === void 0 ? void 0 : nestedGroups.length) > 0 && React.createElement("ul", { className: classes.ul }, nestedGroups)));
413
+ nestedGroups?.length > 0 && React.createElement("ul", { className: classes.ul }, nestedGroups)));
485
414
  }
486
415
  // For nested groups, we use list items
487
416
  return (React.createElement("li", { key: group.id, className: classes.li },
@@ -508,7 +437,7 @@ var DishCheckoutCard = function (props) {
508
437
  React.createElement(commonUi.Icon, { icon: webIcons.Trash, size: "large" })))),
509
438
  React.createElement(commonUi.Box, { display: "flex", gridGap: 16, alignItems: "center" },
510
439
  React.createElement(core.FormControl, { variant: "outlined", hiddenLabel: true },
511
- React.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.createElement(core.InputAdornment, { position: "start" },
440
+ React.createElement(core.Select, { disabled: disabled, value: quantity, onOpen: () => setOpen(true), onClose: () => setOpen(false), SelectDisplayProps: { 'aria-label': `${labelString(name)} quantity select` }, disableUnderline: true, onChange: handleQuantityChange, fullWidth: true, startAdornment: React.createElement(core.InputAdornment, { position: "start" },
512
441
  React.createElement(commonUi.Icon, { icon: open ? webIcons.ChevronUp : webIcons.ChevronDown, size: "large" })), inputProps: { shrink: false }, MenuProps: {
513
442
  disablePortal: true,
514
443
  anchorOrigin: {
@@ -521,7 +450,7 @@ var DishCheckoutCard = function (props) {
521
450
  },
522
451
  getContentAnchorEl: null,
523
452
  classes: { paper: classes.selectPaper },
524
- }, className: classes.select }, Array.from({ length: 99 }, function (_, index) { return (React.createElement(core.MenuItem, { key: index + 1, value: index + 1, "aria-label": "" + (index + 1) }, index + 1)); }))),
453
+ }, className: classes.select }, Array.from({ length: maxQuantity - minQuantity + 1 }, (_, index) => (React.createElement(core.MenuItem, { key: index + minQuantity, value: index + minQuantity, "aria-label": `${index + minQuantity}` }, index + minQuantity))))),
525
454
  React.createElement(commonUi.Typography, { className: classes.price }, formattedPrice)),
526
455
  warningMessage && (React.createElement(commonUi.Box, { className: classes.warning },
527
456
  React.createElement(commonUi.Box, { paddingTop: 0.25 },
@@ -529,8 +458,8 @@ var DishCheckoutCard = function (props) {
529
458
  React.createElement(commonUi.Typography, { variant: "body2" }, warningMessage)))));
530
459
  };
531
460
 
532
- var DishDetailsReview = React.forwardRef(function (props) {
533
- var userName = props.userName, userAvatarUrl = props.userAvatarUrl, content = props.content, createdAgo = props.createdAgo, alt = props.alt;
461
+ const DishDetailsReview = React.forwardRef((props) => {
462
+ const { userName, userAvatarUrl, content, createdAgo, alt } = props;
534
463
  return (React.createElement(commonUi.Box, { display: "flex" },
535
464
  React.createElement(commonUi.Box, { mr: 1 },
536
465
  React.createElement(commonUi.Avatar, { size: "small", src: userAvatarUrl, alt: alt })),
@@ -542,14 +471,14 @@ var DishDetailsReview = React.forwardRef(function (props) {
542
471
  });
543
472
  DishDetailsReview.displayName = 'DishDetailsReview';
544
473
 
545
- var useDishModifierCardStyles = core.makeStyles(function (theme) { return ({
474
+ const useDishModifierCardStyles = core.makeStyles((theme) => ({
546
475
  root: {
547
476
  borderRadius: '8px',
548
477
  border: '1px solid var(--surfaces-card-stroke, #E0E0E0)',
549
478
  display: 'flex',
550
479
  flexDirection: 'column',
551
480
  padding: theme.spacing(2.5),
552
- color: theme.palette.grey[900] + " !important",
481
+ color: `${theme.palette.grey[900]} !important`,
553
482
  },
554
483
  error: {
555
484
  color: theme.palette.error.main,
@@ -561,8 +490,8 @@ var useDishModifierCardStyles = core.makeStyles(function (theme) { return ({
561
490
  fontSize: theme.spacing(2.25),
562
491
  marginBottom: theme.spacing(2),
563
492
  },
564
- }); });
565
- var useRadioModifierFormStyles = core.makeStyles(function (theme) { return ({
493
+ }));
494
+ const useRadioModifierFormStyles = core.makeStyles((theme) => ({
566
495
  label: {
567
496
  alignItems: 'center',
568
497
  display: 'flex',
@@ -587,8 +516,8 @@ var useRadioModifierFormStyles = core.makeStyles(function (theme) { return ({
587
516
  flex: 1,
588
517
  },
589
518
  },
590
- }); });
591
- var useCheckboxModifierFormStyles = core.makeStyles(function (theme) { return ({
519
+ }));
520
+ const useCheckboxModifierFormStyles = core.makeStyles((theme) => ({
592
521
  label: {
593
522
  alignItems: 'center',
594
523
  display: 'flex',
@@ -613,8 +542,8 @@ var useCheckboxModifierFormStyles = core.makeStyles(function (theme) { return ({
613
542
  flex: 1,
614
543
  },
615
544
  },
616
- }); });
617
- var useLabelStyles = core.makeStyles(function (theme) { return ({
545
+ }));
546
+ const useLabelStyles = core.makeStyles((theme) => ({
618
547
  label: {
619
548
  margin: theme.spacing(0.5, 0),
620
549
  },
@@ -624,27 +553,27 @@ var useLabelStyles = core.makeStyles(function (theme) { return ({
624
553
  price: {
625
554
  color: theme.palette.grey[700],
626
555
  },
627
- }); });
628
- var useOptionsStyles = core.makeStyles(function (theme) { return ({
556
+ }));
557
+ const useOptionsStyles = core.makeStyles((theme) => ({
629
558
  options: {
630
559
  color: theme.palette.info.main,
631
560
  marginBottom: theme.spacing(1.5),
632
561
  padding: 0,
633
562
  },
634
- }); });
563
+ }));
635
564
 
636
- var useQuantityPickerStyles = core.makeStyles(function (theme) { return ({
565
+ const useQuantityPickerStyles = core.makeStyles((theme) => ({
637
566
  root: {
638
567
  height: theme.spacing(7),
639
568
  backgroundColor: 'none',
640
569
  },
641
- }); });
642
- var useQuantityInputStyles = core.makeStyles(function (theme) { return ({
570
+ }));
571
+ const useQuantityInputStyles = core.makeStyles((theme) => ({
643
572
  root: {
644
573
  height: '100%',
645
574
  width: 'min-content',
646
575
  borderRadius: theme.spacing(12.5),
647
- background: function (props) { return (props.variation === 'modifierCount' ? 'unset' : theme.palette.grey[100]); },
576
+ background: (props) => (props.variation === 'modifierCount' ? 'unset' : theme.palette.grey[100]),
648
577
  },
649
578
  input: {
650
579
  '&::-webkit-clear-button, &::-webkit-outer-spin-button, &::-webkit-inner-spin-button': {
@@ -654,81 +583,103 @@ var useQuantityInputStyles = core.makeStyles(function (theme) { return ({
654
583
  fontWeight: 600,
655
584
  padding: 0,
656
585
  textAlign: 'center',
657
- zIndex: function (props) { return (props.value === 0 && props.variation === 'modifierCount' ? -1 : 1); },
658
- backgroundColor: function (props) { return (props.variation === 'modifierCount' ? theme.palette.grey[100] : 'unset'); },
659
- alignSelf: function (props) { return (props.variation === 'modifierCount' ? 'stretch' : 'unset'); },
660
- height: function (props) { return (props.variation === 'modifierCount' ? 'auto' : 'unset'); },
661
- minWidth: function (props) { return (props.variation === 'modifierCount' ? theme.spacing(5) : theme.spacing(2.75)); },
662
- borderRadius: function (props) { return (props.variation === 'modifierCount' ? theme.spacing(1) : 'unset'); },
663
- margin: function (props) { return (props.variation === 'modifierCount' ? theme.spacing(0.5, 0) : 0); },
664
- },
665
- }); });
666
- var useStartAdornmentStyles = core.makeStyles(function (theme) { return ({
586
+ zIndex: (props) => (props.value === 0 && props.variation === 'modifierCount' ? -1 : 1),
587
+ backgroundColor: (props) => (props.variation === 'modifierCount' ? theme.palette.grey[100] : 'unset'),
588
+ alignSelf: (props) => (props.variation === 'modifierCount' ? 'stretch' : 'unset'),
589
+ height: (props) => (props.variation === 'modifierCount' ? 'auto' : 'unset'),
590
+ minWidth: (props) => (props.variation === 'modifierCount' ? theme.spacing(5) : theme.spacing(2.75)),
591
+ borderRadius: (props) => (props.variation === 'modifierCount' ? theme.spacing(1) : 'unset'),
592
+ margin: (props) => (props.variation === 'modifierCount' ? theme.spacing(0.5, 0) : 0),
593
+ },
594
+ }));
595
+ const useStartAdornmentStyles = core.makeStyles((theme) => ({
667
596
  root: {
668
597
  color: theme.palette.text.primary,
669
- zIndex: function (props) { return (props.value === 0 && props.variation === 'modifierCount' ? -1 : 1); },
598
+ zIndex: (props) => (props.value === 0 && props.variation === 'modifierCount' ? -1 : 1),
670
599
  },
671
- }); });
672
- var useEndAdornmentStyles = core.makeStyles(function (theme) { return ({
600
+ }));
601
+ const useEndAdornmentStyles = core.makeStyles((theme) => ({
673
602
  root: {
674
603
  color: theme.palette.text.primary,
675
604
  },
676
- }); });
605
+ }));
677
606
 
678
- var QuantityPicker = function (props) {
679
- var value = props.value, onChange = props.onChange, disabled = props.disabled, disableIncrement = props.disableIncrement, preventManualChange = props.preventManualChange, variation = props.variation, name = props.name;
680
- var fieldClasses = useQuantityPickerStyles();
681
- var inputClasses = useQuantityInputStyles(props);
682
- var startAdornmentClasses = useStartAdornmentStyles(props);
683
- var endAdornmentClasses = useEndAdornmentStyles(props);
684
- var onIncrement = function (event) {
607
+ const QuantityPicker = ({ value, onChange, disabled, preventManualChange, disableIncrement, variation, name, min = 1, max = 99, }) => {
608
+ const fieldClasses = useQuantityPickerStyles();
609
+ const inputClasses = useQuantityInputStyles({ variation, value });
610
+ const startAdornmentClasses = useStartAdornmentStyles({ variation, value });
611
+ const endAdornmentClasses = useEndAdornmentStyles({ variation, value });
612
+ const inputRef = React.useRef(null);
613
+ const [shouldSelect, setShouldSelect] = React.useState(false);
614
+ const onIncrement = (event) => {
685
615
  onChange(event, { quantity: value + 1, reason: 'increment' });
686
616
  };
687
- var onDecrement = function (event) {
617
+ const onDecrement = (event) => {
688
618
  onChange(event, { quantity: value - 1, reason: 'decrement' });
689
619
  };
690
- var handleChange = function (event) {
620
+ const handleChange = (event) => {
691
621
  if (preventManualChange) {
692
622
  event.preventDefault();
623
+ return;
693
624
  }
694
- if (!preventManualChange) {
695
- onChange(event, { quantity: parseInt(event.target.value), reason: 'change' });
625
+ let newValue = parseInt(event.target.value, 10);
626
+ if (isNaN(newValue)) {
627
+ newValue = min;
628
+ setShouldSelect(true);
696
629
  }
630
+ else {
631
+ setShouldSelect(false);
632
+ }
633
+ // Clamp value between min and max
634
+ if (newValue < min)
635
+ newValue = min;
636
+ if (newValue > max)
637
+ newValue = max;
638
+ onChange(event, { quantity: newValue, reason: 'change' });
697
639
  };
698
- return (React.createElement(core.TextField, { classes: fieldClasses, type: "number", variant: variation === 'itemCount' ? 'filled' : 'standard', value: value, disabled: disabled, onChange: handleChange, InputProps: {
640
+ React.useEffect(() => {
641
+ if (shouldSelect && inputRef.current) {
642
+ inputRef.current.focus();
643
+ inputRef.current.select();
644
+ setShouldSelect(false);
645
+ }
646
+ }, [shouldSelect, value]);
647
+ return (React.createElement(core.TextField, { classes: fieldClasses, type: "number", variant: variation === 'itemCount' ? 'filled' : 'standard', value: value, disabled: disabled, onChange: handleChange, inputRef: inputRef, InputProps: {
699
648
  classes: inputClasses,
700
649
  disableUnderline: true,
701
- endAdornment: (React.createElement(commonUi.IconButton, { "aria-label": "increase quantity " + name, className: endAdornmentClasses.root, color: "default", onClick: onIncrement, disabled: disabled || disableIncrement },
650
+ endAdornment: (React.createElement(commonUi.IconButton, { "aria-label": `increase quantity ${name}`, className: endAdornmentClasses.root, color: "default", onClick: onIncrement, disabled: disabled || value >= max || disableIncrement },
702
651
  React.createElement(commonUi.Icon, { icon: webIcons.PlusCircle }))),
703
- startAdornment: (React.createElement(commonUi.IconButton, { "aria-label": "decrease quantity " + name, className: startAdornmentClasses.root, color: "default", onClick: onDecrement, disabled: disabled || value <= 0 },
652
+ startAdornment: (React.createElement(commonUi.IconButton, { "aria-label": `decrease quantity ${name}`, className: startAdornmentClasses.root, color: "default", onClick: onDecrement, disabled: disabled || value <= min },
704
653
  React.createElement(commonUi.Icon, { icon: webIcons.MinusCircle }))),
654
+ }, inputProps: {
655
+ min,
656
+ max,
705
657
  } }));
706
658
  };
707
659
 
708
- var Label = function (props) {
709
- var _a, _b, _c;
710
- var name = props.name, price = props.price, _d = props.disabled, disabled = _d === void 0 ? false : _d;
711
- var classes = useLabelStyles();
660
+ const Label = (props) => {
661
+ const { name, price, disabled = false } = props;
662
+ const classes = useLabelStyles();
712
663
  return (React.createElement(core.Box, { display: "flex", flexDirection: "column", className: classes.label },
713
664
  React.createElement(core.Box, { display: "flex", alignItems: "center", gridGap: 8 },
714
- React.createElement(core.Typography, { className: classNames((_a = {}, _a[classes.disabled] = disabled, _a)) }, name)),
715
- price && (React.createElement(core.Typography, { className: classNames((_b = {}, _b[classes.price] = !disabled, _b), (_c = {}, _c[classes.disabled] = disabled, _c)) },
665
+ React.createElement(core.Typography, { className: classNames({ [classes.disabled]: disabled }) }, name)),
666
+ price && (React.createElement(core.Typography, { className: classNames({ [classes.price]: !disabled }, { [classes.disabled]: disabled }) },
716
667
  "+ ",
717
668
  price))));
718
669
  };
719
- var Options = function (props) {
720
- var handleOptionsClick = props.handleOptionsClick;
721
- var classes = useOptionsStyles();
670
+ const Options = (props) => {
671
+ const { handleOptionsClick } = props;
672
+ const classes = useOptionsStyles();
722
673
  return (React.createElement(core.Box, null,
723
674
  React.createElement(Button, { variation: "none", className: classes.options, onClick: handleOptionsClick },
724
675
  React.createElement(core.Typography, { variant: "caption" }, "OPTIONS"),
725
676
  React.createElement(commonUi.Icon, { icon: webIcons.ChevronRight }))));
726
677
  };
727
- var SingleSelectModifierControl = function (props) {
728
- var modifiers = props.modifiers, name = props.name, isOutOfStock = props.isOutOfStock, onChange = props.onChange, value = props.value, handleOptionsClick = props.handleOptionsClick, aggregatePrice = props.aggregatePrice, isRequired = props.isRequired;
729
- var radioClasses = useRadioModifierFormStyles();
730
- var makeHandleChange = function (modifier) { return function (e) {
731
- var isModifierInValue = Boolean(value.find(function (v) { return v.modifierId === modifier.id; }));
678
+ const SingleSelectModifierControl = (props) => {
679
+ const { modifiers, name, isOutOfStock, onChange, value, handleOptionsClick, aggregatePrice, isRequired } = props;
680
+ const radioClasses = useRadioModifierFormStyles();
681
+ const makeHandleChange = (modifier) => (e) => {
682
+ const isModifierInValue = Boolean(value.find((v) => v.modifierId === modifier.id));
732
683
  if (!isModifierInValue && modifier.hasModifiers) {
733
684
  handleOptionsClick(modifier.id);
734
685
  }
@@ -740,27 +691,23 @@ var SingleSelectModifierControl = function (props) {
740
691
  price: modifier.price || 0,
741
692
  quantity: 1,
742
693
  });
743
- }; };
694
+ };
744
695
  return (React.createElement(core.FormControl, { fullWidth: true },
745
- React.createElement(core.RadioGroup, { "aria-label": name }, modifiers.map(function (modifier) {
746
- var _a;
747
- var _b;
748
- return (React.createElement(core.Box, { key: modifier.id },
749
- React.createElement(core.FormControlLabel, { key: modifier.id, value: modifier.id, className: radioClasses.root, control: React.createElement(core.Radio, { checked: ((_b = value[0]) === null || _b === void 0 ? void 0 : _b.modifierId) === modifier.id, className: classNames((_a = {},
750
- _a[radioClasses.hideRadio] = modifier.outOfStock,
751
- _a[radioClasses.radio] = !modifier.outOfStock,
752
- _a)), disabled: isOutOfStock || modifier.outOfStock, onChange: makeHandleChange(modifier), required: isRequired }), label: React.createElement(core.Box, { className: radioClasses.label },
753
- React.createElement(Label, { name: modifier.name, price: aggregatePrice[modifier.id] || modifier.formattedPrice, disabled: isOutOfStock || modifier.outOfStock }),
754
- modifier.outOfStock && (React.createElement(core.Box, { minWidth: "90px", marginLeft: 2 },
755
- React.createElement(StatusTag, { color: "warning", label: "Out of stock", variant: "outlined", size: "md" })))), labelPlacement: "start" }),
756
- modifier.hasModifiers && !modifier.outOfStock && (React.createElement(Options, { handleOptionsClick: function () { return handleOptionsClick(modifier.id); } }))));
757
- }))));
696
+ React.createElement(core.RadioGroup, { "aria-label": name }, modifiers.map((modifier) => (React.createElement(core.Box, { key: modifier.id },
697
+ React.createElement(core.FormControlLabel, { key: modifier.id, value: modifier.id, className: radioClasses.root, control: React.createElement(core.Radio, { checked: value[0]?.modifierId === modifier.id, className: classNames({
698
+ [radioClasses.hideRadio]: modifier.outOfStock,
699
+ [radioClasses.radio]: !modifier.outOfStock,
700
+ }), disabled: isOutOfStock || modifier.outOfStock, onChange: makeHandleChange(modifier), required: isRequired }), label: React.createElement(core.Box, { className: radioClasses.label },
701
+ React.createElement(Label, { name: modifier.name, price: aggregatePrice[modifier.id] || modifier.formattedPrice, disabled: isOutOfStock || modifier.outOfStock }),
702
+ modifier.outOfStock && (React.createElement(core.Box, { minWidth: "90px", marginLeft: 2 },
703
+ React.createElement(StatusTag, { color: "warning", label: "Out of stock", variant: "outlined", size: "md" })))), labelPlacement: "start" }),
704
+ modifier.hasModifiers && !modifier.outOfStock && (React.createElement(Options, { handleOptionsClick: () => handleOptionsClick(modifier.id) }))))))));
758
705
  };
759
- var MultipleSelectControl = function (props) {
760
- var modifiers = props.modifiers, value = props.value, isOutOfStock = props.isOutOfStock, onChange = props.onChange, disableNewSelections = props.disableNewSelections, handleOptionsClick = props.handleOptionsClick, aggregatePrice = props.aggregatePrice;
761
- var classes = useCheckboxModifierFormStyles();
762
- var makeHandleChange = function (modifier) { return function () {
763
- var isModifierInValue = Boolean(value.find(function (v) { return v.modifierId === modifier.id; }));
706
+ const MultipleSelectControl = (props) => {
707
+ const { modifiers, value, isOutOfStock, onChange, disableNewSelections, handleOptionsClick, aggregatePrice } = props;
708
+ const classes = useCheckboxModifierFormStyles();
709
+ const makeHandleChange = (modifier) => () => {
710
+ const isModifierInValue = Boolean(value.find((v) => v.modifierId === modifier.id));
764
711
  if (!isModifierInValue && modifier.hasModifiers) {
765
712
  handleOptionsClick(modifier.id);
766
713
  }
@@ -772,21 +719,20 @@ var MultipleSelectControl = function (props) {
772
719
  price: modifier.price || 0,
773
720
  quantity: isModifierInValue ? 0 : 1,
774
721
  });
775
- }; };
722
+ };
776
723
  return (React.createElement(core.FormControl, { fullWidth: true },
777
- React.createElement(core.FormGroup, null, modifiers.map(function (modifier) {
778
- var _a, _b;
724
+ React.createElement(core.FormGroup, null, modifiers.map((modifier) => {
779
725
  return (React.createElement(core.Box, { key: modifier.id },
780
- React.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.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.createElement(core.Box, { className: classes.label },
726
+ React.createElement(core.FormControlLabel, { key: modifier.id, value: modifier.id, className: classes.root, checked: value.some((v) => v.modifierId === modifier.id), onChange: makeHandleChange(modifier), control: React.createElement(core.Checkbox, { className: classNames({ [classes.hideCheckbox]: modifier.outOfStock }, { [classes.checkbox]: !modifier.outOfStock }), disabled: isOutOfStock || modifier.outOfStock || (!modifier.quantity && disableNewSelections) }), label: React.createElement(core.Box, { className: classes.label },
781
727
  React.createElement(Label, { name: modifier.name, price: aggregatePrice[modifier.id] || modifier.formattedPrice, disabled: isOutOfStock || modifier.outOfStock }),
782
728
  modifier.outOfStock && (React.createElement(core.Box, { minWidth: "90px", marginLeft: 2 },
783
729
  React.createElement(StatusTag, { color: "warning", label: "Out of stock", variant: "outlined", size: "md" })))), labelPlacement: "start" }),
784
- modifier.hasModifiers && !modifier.outOfStock && (React.createElement(Options, { handleOptionsClick: function () { return handleOptionsClick(modifier.id); } }))));
730
+ modifier.hasModifiers && !modifier.outOfStock && (React.createElement(Options, { handleOptionsClick: () => handleOptionsClick(modifier.id) }))));
785
731
  }))));
786
732
  };
787
- var MultipleQuantitySelectControl = function (props) {
788
- var modifiers = props.modifiers, isOutOfStock = props.isOutOfStock, onChange = props.onChange, disableNewSelections = props.disableNewSelections, handleOptionsClick = props.handleOptionsClick, selectionQuantity = props.selectionQuantity;
789
- var makeHandleChange = function (modifier) { return function (_e, customEvent) {
733
+ const MultipleQuantitySelectControl = (props) => {
734
+ const { modifiers, isOutOfStock, onChange, disableNewSelections, handleOptionsClick, selectionQuantity } = props;
735
+ const makeHandleChange = (modifier) => (_e, customEvent) => {
790
736
  onChange({
791
737
  isRadio: false,
792
738
  modifierId: modifier.id,
@@ -795,16 +741,16 @@ var MultipleQuantitySelectControl = function (props) {
795
741
  price: modifier.price || 0,
796
742
  quantity: customEvent.quantity,
797
743
  });
798
- }; };
744
+ };
799
745
  return (React.createElement(core.FormControl, { fullWidth: true },
800
- React.createElement(core.FormGroup, null, modifiers.map(function (modifier) { return (React.createElement(core.Box, { key: modifier.id, style: { justifyContent: 'space-between', flexDirection: 'column' }, display: "flex" },
746
+ React.createElement(core.FormGroup, null, modifiers.map((modifier) => (React.createElement(core.Box, { key: modifier.id, style: { justifyContent: 'space-between', flexDirection: 'column' }, display: "flex" },
801
747
  React.createElement(core.Box, { display: "flex", alignItems: "center", justifyContent: "space-between", width: "100%" },
802
748
  React.createElement(Label, { name: modifier.name, price: modifier.formattedPrice, disabled: isOutOfStock || modifier.outOfStock }),
803
749
  modifier.outOfStock && (React.createElement(core.Box, { minWidth: "90px", marginLeft: 2 },
804
750
  React.createElement(StatusTag, { color: "warning", label: "Out of stock", variant: "outlined", size: "md" }))),
805
751
  !modifier.outOfStock && (React.createElement(QuantityPicker, { variation: "modifierCount", value: modifier.quantity, disableIncrement: disableNewSelections, preventManualChange: true, onChange: makeHandleChange(modifier), disabled: isOutOfStock || modifier.outOfStock, name: modifier.name }))),
806
752
  React.createElement(core.Box, { display: "flex", alignItems: "flex-start", gridGap: 4 },
807
- modifier.hasModifiers && !modifier.outOfStock && (React.createElement(Options, { handleOptionsClick: function () { return handleOptionsClick(modifier.id); } })),
753
+ modifier.hasModifiers && !modifier.outOfStock && (React.createElement(Options, { handleOptionsClick: () => handleOptionsClick(modifier.id) })),
808
754
  selectionQuantity[modifier.id] &&
809
755
  selectionQuantity[modifier.id].requiredSelectionCount > 0 &&
810
756
  selectionQuantity[modifier.id].requiredSelectionCount !==
@@ -812,25 +758,25 @@ var MultipleQuantitySelectControl = function (props) {
812
758
  selectionQuantity[modifier.id].currentSelectionCount,
813
759
  "/",
814
760
  selectionQuantity[modifier.id].requiredSelectionCount,
815
- " selected"))))); }))));
761
+ " selected")))))))));
816
762
  };
817
- var ModifierControls = function (props) {
763
+ const ModifierControls = (props) => {
818
764
  switch (props.type) {
819
765
  case 'singleSelect':
820
- return React.createElement(SingleSelectModifierControl, tslib.__assign({}, props));
766
+ return React.createElement(SingleSelectModifierControl, { ...props });
821
767
  case 'multipleSelect':
822
- return React.createElement(MultipleSelectControl, tslib.__assign({}, props));
768
+ return React.createElement(MultipleSelectControl, { ...props });
823
769
  case 'multipleQuantitySelect':
824
- return React.createElement(MultipleQuantitySelectControl, tslib.__assign({}, props));
770
+ return React.createElement(MultipleQuantitySelectControl, { ...props });
825
771
  default:
826
772
  return null;
827
773
  }
828
774
  };
829
775
 
830
- var getStatusTagProps = function (props) {
831
- var messages = props.messages, error = props.error, isRequired = props.isRequired, isOutOfStock = props.isOutOfStock;
832
- var optionalText = messages.optionalText, outOfStockText = messages.outOfStockText, requiredText = messages.requiredText;
833
- var color = 'default';
776
+ const getStatusTagProps = (props) => {
777
+ const { messages, error, isRequired, isOutOfStock } = props;
778
+ const { optionalText, outOfStockText, requiredText } = messages;
779
+ let color = 'default';
834
780
  switch (true) {
835
781
  case error:
836
782
  color = 'error';
@@ -839,7 +785,7 @@ var getStatusTagProps = function (props) {
839
785
  color = 'warning';
840
786
  break;
841
787
  }
842
- var label = optionalText;
788
+ let label = optionalText;
843
789
  switch (true) {
844
790
  case isOutOfStock:
845
791
  label = outOfStockText;
@@ -848,40 +794,33 @@ var getStatusTagProps = function (props) {
848
794
  label = requiredText;
849
795
  break;
850
796
  }
851
- var variant = isRequired || isOutOfStock ? 'outlined' : 'filled';
852
- return { color: color, label: label, variant: variant };
797
+ const variant = isRequired || isOutOfStock ? 'outlined' : 'filled';
798
+ return { color, label, variant };
853
799
  };
854
- var DishModifierCard = function (props) {
855
- var _a;
856
- 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;
857
- var classes = useDishModifierCardStyles();
800
+ const DishModifierCard = (props) => {
801
+ const { aggregatePrice, name, disableNewSelections, modifiers, value, messages, onChange, type, error, isOutOfStock, isRequired, handleOptionsClick, selectionQuantity, } = props;
802
+ const classes = useDishModifierCardStyles();
858
803
  return (React.createElement(commonUi.Box, { className: classes.root },
859
804
  React.createElement(commonUi.Box, { display: "flex", justifyContent: "space-between", width: "100%", alignItems: "center", height: "fit-content", marginBottom: 2 },
860
- React.createElement(StatusTag, tslib.__assign({}, getStatusTagProps(props))),
861
- !isOutOfStock && (React.createElement(commonUi.Typography, { variant: "subtitle1", className: classNames((_a = {}, _a[classes.error] = error, _a[classes.helperText] = !error, _a)) }, messages.helperText))),
805
+ React.createElement(StatusTag, { ...getStatusTagProps(props) }),
806
+ !isOutOfStock && (React.createElement(commonUi.Typography, { variant: "subtitle1", className: classNames({ [classes.error]: error, [classes.helperText]: !error }) }, messages.helperText))),
862
807
  React.createElement(commonUi.Typography, { className: classes.name }, name),
863
808
  React.createElement(commonUi.Box, null,
864
809
  React.createElement(ModifierControls, { name: name, value: value, modifiers: modifiers, isOutOfStock: isOutOfStock, isRequired: isRequired, onChange: onChange, disableNewSelections: disableNewSelections, type: type, messages: messages, handleOptionsClick: handleOptionsClick, aggregatePrice: aggregatePrice, selectionQuantity: selectionQuantity }))));
865
810
  };
866
811
  DishModifierCard.displayName = 'DishModifierCard';
867
812
 
868
- var useLocationCardStyles = core.makeStyles(function (theme) {
869
- var _a = theme.palette, info = _a.info, grey = _a.grey, secondary = _a.secondary, background = _a.background, spacing = theme.spacing;
870
- var selectedBackgroundColor = core.lighten(info.light, 0.9);
871
- var backgroundColor = background.default;
813
+ const useLocationCardStyles = core.makeStyles((theme) => {
814
+ const { palette: { info, grey, secondary, background }, spacing, } = theme;
815
+ const selectedBackgroundColor = core.lighten(info.light, 0.9);
816
+ const backgroundColor = background.default;
872
817
  return {
873
818
  root: {
874
- border: function (_a) {
875
- var selected = _a.selected;
876
- return selected ? "1px solid " + info.light : '1px solid var(--surfaces-card-stroke, #E0E0E0)';
877
- },
819
+ border: ({ selected }) => selected ? `1px solid ${info.light}` : '1px solid var(--surfaces-card-stroke, #E0E0E0)',
878
820
  display: 'flex',
879
821
  borderRadius: '10px',
880
822
  color: grey[900],
881
- backgroundColor: function (_a) {
882
- var selected = _a.selected, outOfRange = _a.outOfRange;
883
- return selected ? selectedBackgroundColor : outOfRange ? grey[200] : backgroundColor;
884
- },
823
+ backgroundColor: ({ selected, outOfRange }) => selected ? selectedBackgroundColor : outOfRange ? grey[200] : backgroundColor,
885
824
  },
886
825
  actionAreaFocusHighlight: {
887
826
  '&:disabled': {
@@ -925,15 +864,15 @@ var useLocationCardStyles = core.makeStyles(function (theme) {
925
864
  };
926
865
  });
927
866
 
928
- var LocationCard = function (props) {
929
- var name = props.name, address = props.address, distance = props.distance, generalAvailability = props.generalAvailability, pickupAvailability = props.pickupAvailability, deliveryAvailability = props.deliveryAvailability, onClick = props.onClick, selected = props.selected, value = props.value, outOfRange = props.outOfRange, outOfRangeMessage = props.outOfRangeMessage, CardActionAreaProps = props.CardActionAreaProps, muiProps = tslib.__rest(props, ["name", "address", "distance", "generalAvailability", "pickupAvailability", "deliveryAvailability", "onClick", "selected", "value", "outOfRange", "outOfRangeMessage", "CardActionAreaProps"]);
930
- var classes = useLocationCardStyles(props);
931
- var anyAvailability = generalAvailability || pickupAvailability || deliveryAvailability;
932
- var handleClick = function () {
867
+ const LocationCard = (props) => {
868
+ const { name, address, distance, generalAvailability, pickupAvailability, deliveryAvailability, onClick, selected, value, outOfRange, outOfRangeMessage, CardActionAreaProps, ...muiProps } = props;
869
+ const classes = useLocationCardStyles(props);
870
+ const anyAvailability = generalAvailability || pickupAvailability || deliveryAvailability;
871
+ const handleClick = () => {
933
872
  onClick(value);
934
873
  };
935
- return (React.createElement(core.Card, tslib.__assign({ className: classes.root }, muiProps),
936
- React.createElement(core.CardActionArea, tslib.__assign({ onClick: handleClick, role: "radio", "aria-checked": selected, disabled: outOfRange || Boolean(anyAvailability), classes: { focusHighlight: classes.actionAreaFocusHighlight } }, CardActionAreaProps),
874
+ return (React.createElement(core.Card, { className: classes.root, ...muiProps },
875
+ React.createElement(core.CardActionArea, { onClick: handleClick, role: "radio", "aria-checked": selected, disabled: outOfRange || Boolean(anyAvailability), classes: { focusHighlight: classes.actionAreaFocusHighlight }, ...CardActionAreaProps },
937
876
  React.createElement(core.CardContent, { className: classes.content },
938
877
  React.createElement(core.Box, { className: classes.locationInfo },
939
878
  React.createElement(core.Box, { display: "flex", justifyContent: "space-between" },
@@ -951,55 +890,48 @@ var LocationCard = function (props) {
951
890
  React.createElement(core.Typography, { variant: "body2", className: classes.greyText }, outOfRangeMessage)))))));
952
891
  };
953
892
 
954
- var useMenuDropdownStyles = core.makeStyles(function (theme) {
955
- var _a, _b;
956
- return ({
957
- formControl: (_a = {},
958
- _a[theme.breakpoints.up('lg')] = {
959
- alignSelf: 'start',
960
- },
961
- _a),
962
- menuItem: {
963
- alignItems: 'center',
964
- display: 'flex',
965
- gridGap: theme.spacing(1),
966
- },
967
- select: {
968
- '& .MuiSelect-root': (_b = {
969
- '&:focus': {
970
- outline: '2px solid #0076CB',
971
- borderRadius: 8,
972
- },
973
- color: '#212121',
974
- padding: theme.spacing(1, 0.5, 1, 0.5),
975
- zIndex: 10
976
- },
977
- _b[theme.breakpoints.down('md')] = {
978
- width: 0,
979
- minWidth: 0,
980
- padding: 0,
981
- },
982
- _b),
893
+ const useMenuDropdownStyles = core.makeStyles((theme) => ({
894
+ formControl: {
895
+ [theme.breakpoints.up('lg')]: {
896
+ alignSelf: 'start',
983
897
  },
984
- unavailable: {
985
- color: theme.palette.grey[700],
898
+ },
899
+ menuItem: {
900
+ alignItems: 'center',
901
+ display: 'flex',
902
+ gridGap: theme.spacing(1),
903
+ },
904
+ select: {
905
+ '& .MuiSelect-root': {
906
+ '&:focus': {
907
+ outline: '2px solid #0076CB',
908
+ borderRadius: 8,
909
+ },
910
+ color: '#212121',
911
+ padding: theme.spacing(1, 0.5, 1, 0.5),
912
+ zIndex: 10,
913
+ [theme.breakpoints.down('md')]: {
914
+ width: 0,
915
+ minWidth: 0,
916
+ padding: 0,
917
+ },
986
918
  },
987
- });
988
- });
919
+ },
920
+ unavailable: {
921
+ color: theme.palette.grey[700],
922
+ },
923
+ }));
989
924
 
990
- var MenuDropdown = function (props) {
991
- var menuOptions = props.menuOptions, onSelect = props.onSelect, selectedOptionId = props.selectedOptionId;
992
- var classes = useMenuDropdownStyles(props);
993
- var _a = React.useState(false), open = _a[0], setOpen = _a[1];
994
- var isMobile = core.useMediaQuery(function (_a) {
995
- var breakpoints = _a.breakpoints;
996
- return breakpoints.down('md');
997
- });
925
+ const MenuDropdown = (props) => {
926
+ const { menuOptions, onSelect, selectedOptionId } = props;
927
+ const classes = useMenuDropdownStyles(props);
928
+ const [open, setOpen] = React.useState(false);
929
+ const isMobile = core.useMediaQuery((theme) => theme.breakpoints.down('md'));
998
930
  return (React.createElement(core.FormControl, { hiddenLabel: true, classes: { root: classes.formControl } },
999
931
  React.createElement("label", { id: "menu-dropdown-label", className: "sr-only" }, props.label),
1000
- React.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, open: open, startAdornment: React.createElement(core.InputAdornment, { position: "start", onClick: function () { return setOpen(true); } },
1001
- React.createElement(commonUi.Icon, { icon: webIcons.RestaurantMenu, size: isMobile ? 'extra-large' : 'large' })), IconComponent: function () { return (React.createElement(core.InputAdornment, { position: "end", onClick: function () { return setOpen(true); } },
1002
- React.createElement(commonUi.Icon, { color: "#0076CB", icon: open ? webIcons.ChevronUp : webIcons.ChevronDown, size: "large" }))); }, MenuProps: {
932
+ React.createElement(core.Select, { SelectDisplayProps: { 'aria-labelledby': 'menu-dropdown-label' }, value: selectedOptionId, onOpen: () => setOpen(true), onClose: () => setOpen(false), disableUnderline: true, onChange: (event) => onSelect(event.target.value), fullWidth: true, open: open, startAdornment: React.createElement(core.InputAdornment, { position: "start", onClick: () => setOpen(true) },
933
+ React.createElement(commonUi.Icon, { icon: webIcons.RestaurantMenu, size: isMobile ? 'extra-large' : 'large' })), IconComponent: () => (React.createElement(core.InputAdornment, { position: "end", onClick: () => setOpen(true) },
934
+ React.createElement(commonUi.Icon, { color: "#0076CB", icon: open ? webIcons.ChevronUp : webIcons.ChevronDown, size: "large" }))), MenuProps: {
1003
935
  disablePortal: true,
1004
936
  anchorOrigin: {
1005
937
  vertical: 'bottom',
@@ -1010,9 +942,9 @@ var MenuDropdown = function (props) {
1010
942
  horizontal: 'left',
1011
943
  },
1012
944
  getContentAnchorEl: null,
1013
- }, className: classes.select, renderValue: function (selected) { var _a; return (_a = menuOptions.find(function (menuOption) { return menuOption.id === selected; })) === null || _a === void 0 ? void 0 : _a.name; } }, menuOptions.map(function (option, index) { return (React.createElement(core.MenuItem, { key: index, value: option.id, className: classNames(classes.menuItem, option.isUnavailable ? classes.unavailable : '') },
945
+ }, className: classes.select, renderValue: (selected) => menuOptions.find((menuOption) => menuOption.id === selected)?.name }, menuOptions.map((option, index) => (React.createElement(core.MenuItem, { key: index, value: option.id, className: classNames(classes.menuItem, option.isUnavailable ? classes.unavailable : '') },
1014
946
  option.name,
1015
- option.isUnavailable && React.createElement(commonUi.Icon, { icon: webIcons.Clock, size: "large" }))); }))));
947
+ option.isUnavailable && React.createElement(commonUi.Icon, { icon: webIcons.Clock, size: "large" })))))));
1016
948
  };
1017
949
 
1018
950
  var _path;
@@ -1032,36 +964,36 @@ function SvgLeafIcon(props) {
1032
964
  })));
1033
965
  }
1034
966
 
1035
- var useMenuFilterStyles = core.makeStyles(function (theme) { return ({
967
+ const useMenuFilterStyles = core.makeStyles((theme) => ({
1036
968
  triggerLabel: {
1037
969
  color: theme.palette.info.main,
1038
970
  whiteSpace: 'nowrap',
1039
971
  },
1040
- }); });
1041
-
1042
- var MenuFilter = function (props) {
1043
- 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;
1044
- var triggerId = 'menu-filter-trigger';
1045
- var popoverId = 'menu-filter-popover';
1046
- var classes = useMenuFilterStyles();
1047
- var _c = React.useState(null), anchorEl = _c[0], setAnchorEl = _c[1];
1048
- var open = Boolean(anchorEl);
1049
- var optionIds = options.map(function (opt) { return opt.id; });
1050
- var valueIds = value.map(function (val) { return val.id; });
1051
- var availableIds = optionIds.filter(function (optionId) { return !valueIds.includes(optionId); });
1052
- var availableFilters = options.filter(function (opt) { return availableIds.includes(opt.id); });
1053
- var allFiltersSelected = availableFilters.length === 0;
1054
- var handleChange = function (value, event) {
972
+ }));
973
+
974
+ const MenuFilter = (props) => {
975
+ const { options, onChange, onClear, value, triggerLabel = 'Add Filter', noOptionsLabel = 'Reset Filters' } = props;
976
+ const triggerId = 'menu-filter-trigger';
977
+ const popoverId = 'menu-filter-popover';
978
+ const classes = useMenuFilterStyles();
979
+ const [anchorEl, setAnchorEl] = React.useState(null);
980
+ const open = Boolean(anchorEl);
981
+ const optionIds = options.map((opt) => opt.id);
982
+ const valueIds = value.map((val) => val.id);
983
+ const availableIds = optionIds.filter((optionId) => !valueIds.includes(optionId));
984
+ const availableFilters = options.filter((opt) => availableIds.includes(opt.id));
985
+ const allFiltersSelected = availableFilters.length === 0;
986
+ const handleChange = (value, event) => {
1055
987
  onChange(value, event);
1056
988
  setAnchorEl(null);
1057
989
  };
1058
- var handleTriggerClick = function (event) {
990
+ const handleTriggerClick = (event) => {
1059
991
  setAnchorEl(event.currentTarget);
1060
992
  };
1061
- var handleClose = function () {
993
+ const handleClose = () => {
1062
994
  setAnchorEl(null);
1063
995
  };
1064
- var handleClear = function () {
996
+ const handleClear = () => {
1065
997
  onClear();
1066
998
  setAnchorEl(null);
1067
999
  };
@@ -1070,46 +1002,14 @@ var MenuFilter = function (props) {
1070
1002
  }
1071
1003
  return (React.createElement(React.Fragment, null,
1072
1004
  React.createElement(core.Button, { id: triggerId, "aria-controls": popoverId, "aria-haspopup": "true", "aria-expanded": open, onClick: handleTriggerClick, size: "small", startIcon: React.createElement(commonUi.Icon, { icon: SvgLeafIcon }), classes: { label: classes.triggerLabel } }, triggerLabel),
1073
- React.createElement(core.Menu, { id: popoverId, anchorEl: anchorEl, open: open, onClose: handleClose }, availableFilters.map(function (option, index) {
1074
- return (React.createElement(core.MenuItem, { key: index, value: option.id, onClick: function (event) { return handleChange(option, event); } },
1005
+ React.createElement(core.Menu, { id: popoverId, anchorEl: anchorEl, open: open, onClose: handleClose }, availableFilters.map((option, index) => {
1006
+ return (React.createElement(core.MenuItem, { key: index, value: option.id, onClick: (event) => handleChange(option, event) },
1075
1007
  React.createElement(ItemTag, { alt: option.abbr, color: option.color }, option.abbr),
1076
1008
  React.createElement(core.Box, { ml: 1 }, option.name)));
1077
1009
  }))));
1078
1010
  };
1079
1011
 
1080
- var useMenuTabStyles = core.makeStyles(function (_a) {
1081
- var palette = _a.palette, spacing = _a.spacing;
1082
- return ({
1083
- root: {
1084
- '& > .MuiTab-wrapper': {
1085
- flexDirection: 'row-reverse',
1086
- gridGap: spacing(1),
1087
- textAlign: 'center',
1088
- '& > svg': {
1089
- marginBottom: '0 !important',
1090
- },
1091
- },
1092
- },
1093
- isUnavailable: {
1094
- color: palette.grey[700],
1095
- },
1096
- });
1097
- });
1098
-
1099
- var MenuTab = function (props) {
1100
- var isUnavailable = props.isUnavailable, value = props.value;
1101
- var classes = useMenuTabStyles(props);
1102
- return (React.createElement(core.Tab, tslib.__assign({ "data-tab-for-section-id": value, classes: {
1103
- root: classes.root,
1104
- }, disabled: isUnavailable, icon: isUnavailable ? React.createElement(commonUi.Icon, { icon: webIcons.Clock, size: "large" }) : undefined }, props)));
1105
- };
1106
-
1107
- var MenuTabGroup = function (props) {
1108
- var children = props.children, muiProps = tslib.__rest(props, ["children"]);
1109
- return (React.createElement(core.Tabs, tslib.__assign({ scrollButtons: "on", variant: "scrollable" }, muiProps), children));
1110
- };
1111
-
1112
- var useSelectableChipStyles = core.makeStyles(function (theme) { return ({
1012
+ const useSelectableChipStyles = core.makeStyles((theme) => ({
1113
1013
  root: {
1114
1014
  border: '2px solid',
1115
1015
  borderColor: theme.palette.grey[100],
@@ -1137,124 +1037,113 @@ var useSelectableChipStyles = core.makeStyles(function (theme) { return ({
1137
1037
  },
1138
1038
  },
1139
1039
  },
1140
- }); });
1040
+ }));
1141
1041
 
1142
- var SelectableChip = function (props) {
1143
- var classes = useSelectableChipStyles(props);
1144
- return (React.createElement(core.Tab, tslib.__assign({ "data-tab-for-section-id": props.value, classes: {
1042
+ const SelectableChip = (props) => {
1043
+ const classes = useSelectableChipStyles(props);
1044
+ return (React.createElement(core.Tab, { "data-tab-for-section-id": props.value, classes: {
1145
1045
  root: classes.root,
1146
1046
  selected: classes.selected,
1147
- } }, props)));
1047
+ }, ...props }));
1148
1048
  };
1149
1049
 
1150
- var useSelectableChipGroupStyles = core.makeStyles(function (_a) {
1151
- var _b;
1152
- var breakpoints = _a.breakpoints, spacing = _a.spacing;
1153
- return ({
1154
- flexContainer: (_b = {},
1155
- _b[breakpoints.down('md')] = {
1156
- padding: spacing(0, 2),
1157
- },
1158
- _b[breakpoints.up('lg')] = {
1159
- alignItems: 'flex-start',
1160
- flexDirection: 'column',
1161
- },
1162
- _b.gridGap = spacing(1.5),
1163
- _b),
1164
- });
1165
- });
1050
+ const useSelectableChipGroupStyles = core.makeStyles(({ breakpoints, spacing }) => ({
1051
+ flexContainer: {
1052
+ [breakpoints.down('md')]: {
1053
+ padding: spacing(0, 2),
1054
+ },
1055
+ [breakpoints.up('lg')]: {
1056
+ alignItems: 'flex-start',
1057
+ flexDirection: 'column',
1058
+ },
1059
+ gridGap: spacing(1.5),
1060
+ },
1061
+ }));
1166
1062
 
1167
- var SelectableChipGroup = function (props) {
1168
- var children = props.children, muiProps = tslib.__rest(props, ["children"]);
1169
- var classes = useSelectableChipGroupStyles(props);
1170
- return (React.createElement(core.Tabs, tslib.__assign({ TabIndicatorProps: {
1063
+ const SelectableChipGroup = (props) => {
1064
+ const { children, ...muiProps } = props;
1065
+ const classes = useSelectableChipGroupStyles(props);
1066
+ return (React.createElement(core.Tabs, { TabIndicatorProps: {
1171
1067
  hidden: true,
1172
- }, variant: "scrollable", scrollButtons: "off", classes: classes }, muiProps), children));
1068
+ }, variant: "scrollable", scrollButtons: "off", classes: classes, ...muiProps }, children));
1173
1069
  };
1174
1070
 
1175
- var useStyles$4 = core.makeStyles(function (_a) {
1176
- var spacing = _a.spacing;
1177
- return ({
1178
- root: {
1179
- padding: spacing(0.5, 0),
1180
- height: 'unset',
1181
- borderRadius: 4,
1182
- },
1183
- label: {
1184
- paddingLeft: 8,
1185
- display: 'flex',
1186
- gridGap: 8,
1187
- alignItems: 'center',
1188
- },
1189
- });
1190
- });
1191
- var SelectedMenuFiltersList = function (props) {
1192
- var filters = props.filters, onChipClick = props.onChipClick;
1193
- var classes = useStyles$4();
1194
- return (React.createElement(React.Fragment, null, filters.map(function (filter, index) { return (React.createElement(core.Chip, { key: filter.name + "-" + index, classes: classes, onClick: function (event) { return onChipClick(filter, event); }, label: React.createElement(React.Fragment, null,
1071
+ const useStyles$4 = core.makeStyles(({ spacing }) => ({
1072
+ root: {
1073
+ padding: spacing(0.5, 0),
1074
+ height: 'unset',
1075
+ borderRadius: 4,
1076
+ },
1077
+ label: {
1078
+ paddingLeft: 8,
1079
+ display: 'flex',
1080
+ gridGap: 8,
1081
+ alignItems: 'center',
1082
+ },
1083
+ }));
1084
+ const SelectedMenuFiltersList = (props) => {
1085
+ const { filters, onChipClick } = props;
1086
+ const classes = useStyles$4();
1087
+ return (React.createElement(React.Fragment, null, filters.map((filter, index) => (React.createElement(core.Chip, { key: `${filter.name}-${index}`, classes: classes, onClick: (event) => onChipClick(filter, event), label: React.createElement(React.Fragment, null,
1195
1088
  React.createElement(ItemTag, { alt: filter.abbr, color: filter.color }, filter.abbr),
1196
1089
  React.createElement(core.Typography, { variant: "caption" }, filter.name),
1197
- React.createElement(commonUi.Icon, { icon: webIcons.XCircle, size: "large" })) })); })));
1090
+ React.createElement(commonUi.Icon, { icon: webIcons.XCircle, size: "large" })) })))));
1198
1091
  };
1199
1092
 
1200
- var MenuSectionGroup = React.forwardRef(function (props, ref) {
1201
- var children = props.children, restProps = tslib.__rest(props, ["children"]);
1202
- return (React.createElement(core.Box, tslib.__assign({ display: "flex", flexDirection: "column", gridGap: 40, marginBottom: 4 }, restProps, { ref: ref }, { "data-component-type": "menu-section-group" }), children));
1203
- });
1204
- MenuSectionGroup.displayName = 'MenuSectionGroup';
1205
-
1206
- var useStyles$3 = core.makeStyles(function () { return ({
1093
+ const useStyles$3 = core.makeStyles(() => ({
1207
1094
  title: {
1208
1095
  fontWeight: 400,
1209
1096
  fontSize: 20,
1210
1097
  lineHeight: '30px',
1211
1098
  },
1212
- }); });
1099
+ }));
1213
1100
 
1214
- var MenuSection = React.forwardRef(function (props, ref) {
1215
- var name = props.name, children = props.children, loading = props.loading, restProps = tslib.__rest(props, ["name", "children", "loading"]);
1216
- var classes = useStyles$3();
1217
- return (React.createElement(core.Box, tslib.__assign({}, restProps, { ref: ref, component: 'section' }, { "data-component-type": "menu-section", style: { scrollMarginTop: '70px' } }),
1101
+ const MenuSection = React.forwardRef((props, ref) => {
1102
+ const { name, children, loading, ...restProps } = props;
1103
+ const classes = useStyles$3();
1104
+ return (React.createElement(core.Box, { ...restProps, ref, component: 'section', "data-component-type": "menu-section", style: { scrollMarginTop: '70px' } },
1218
1105
  React.createElement(core.Box, { marginTop: 1, marginBottom: 4 },
1219
1106
  React.createElement(core.Typography, { component: "h1", className: classes.title }, loading ? React.createElement(lab.Skeleton, null) : name)),
1220
1107
  children));
1221
1108
  });
1222
1109
  MenuSection.displayName = 'MenuSection';
1223
1110
 
1224
- var useStyles$2 = core.makeStyles(function (_a) {
1225
- var _b;
1226
- var breakpoints = _a.breakpoints;
1227
- return ({
1228
- main: (_b = {},
1229
- _b[breakpoints.down('md')] = {
1230
- gridTemplateColumns: '1fr',
1231
- },
1232
- _b[breakpoints.up('lg')] = {
1233
- gridTemplateColumns: 'repeat(2, minmax(280px, 1fr))',
1234
- },
1235
- _b.display = 'grid',
1236
- _b.gridGap = 32,
1237
- _b),
1238
- });
1111
+ const MenuSectionGroup = React.forwardRef((props, ref) => {
1112
+ const { children, ...restProps } = props;
1113
+ return (React.createElement(core.Box, { display: "flex", flexDirection: "column", gridGap: 40, marginBottom: 4, ...restProps, ref, "data-component-type": "menu-section-group" }, children));
1239
1114
  });
1115
+ MenuSectionGroup.displayName = 'MenuSectionGroup';
1240
1116
 
1241
- var MenuItemGroup = React.forwardRef(function (props, ref) {
1242
- var classes = useStyles$2();
1243
- props.children; var className = props.className, restProps = tslib.__rest(props, ["children", "className"]);
1244
- return (React.createElement(core.Box, tslib.__assign({ className: classNames(classes.main, className) }, { ref: ref }, { "data-component-type": "menu-item-group" }, restProps), props.children));
1117
+ const useStyles$2 = core.makeStyles(({ breakpoints }) => ({
1118
+ main: {
1119
+ [breakpoints.down('md')]: {
1120
+ gridTemplateColumns: '1fr',
1121
+ },
1122
+ [breakpoints.up('lg')]: {
1123
+ gridTemplateColumns: 'repeat(2, minmax(280px, 1fr))',
1124
+ },
1125
+ display: 'grid',
1126
+ gridGap: 32,
1127
+ },
1128
+ }));
1129
+
1130
+ const MenuItemGroup = React.forwardRef((props, ref) => {
1131
+ const classes = useStyles$2();
1132
+ const { children, className, ...restProps } = props;
1133
+ return (React.createElement(core.Box, { className: classNames(classes.main, className), ref, "data-component-type": "menu-item-group", ...restProps }, props.children));
1245
1134
  });
1246
1135
  MenuItemGroup.displayName = 'MenuItemGroup';
1247
1136
 
1248
- var PageSection = function (props) { return (React.createElement(core.Box, { p: 4, borderBottom: "1px solid #E0E0E0" }, props.children)); };
1137
+ const PageSection = (props) => (React.createElement(core.Box, { p: 4, borderBottom: "1px solid #E0E0E0" }, props.children));
1249
1138
 
1250
- var useStyles$1 = core.makeStyles(function () { return ({
1139
+ const useStyles$1 = core.makeStyles(() => ({
1251
1140
  closeButton: {
1252
1141
  padding: 0,
1253
1142
  },
1254
- }); });
1255
- var DialogTitle = function (props) {
1256
- var Icon = props.Icon, title = props.title, titleId = props.titleId, onClose = props.onClose;
1257
- var classes = useStyles$1();
1143
+ }));
1144
+ const DialogTitle = (props) => {
1145
+ const { Icon, title, titleId, onClose } = props;
1146
+ const classes = useStyles$1();
1258
1147
  return (React.createElement(core.DialogTitle, null,
1259
1148
  React.createElement(core.Box, { display: "flex", alignItems: "center", gridGap: 16 },
1260
1149
  Icon && Icon,
@@ -1263,56 +1152,47 @@ var DialogTitle = function (props) {
1263
1152
  React.createElement(commonUi.Icon, { icon: webIcons.X })))));
1264
1153
  };
1265
1154
 
1266
- var DialogSection = function (props) {
1267
- var edgeToEdge = props.edgeToEdge, borderBottom = props.borderBottom, children = props.children, restProps = tslib.__rest(props, ["edgeToEdge", "borderBottom", "children"]);
1268
- return (React.createElement(core.Box, tslib.__assign({ paddingTop: 4, paddingBottom: borderBottom ? 4 : 0, paddingX: edgeToEdge ? 0 : 2, borderBottom: borderBottom ? '1px solid #E0E0E0' : undefined }, restProps), children));
1155
+ const DialogSection = (props) => {
1156
+ const { edgeToEdge, borderBottom, children, ...restProps } = props;
1157
+ return (React.createElement(core.Box, { paddingTop: 4, paddingBottom: borderBottom ? 4 : 0, paddingX: edgeToEdge ? 0 : 2, borderBottom: borderBottom ? '1px solid #E0E0E0' : undefined, ...restProps }, children));
1269
1158
  };
1270
1159
 
1271
- var Switch = core.withStyles(function (_a) {
1272
- var palette = _a.palette;
1273
- return ({
1274
- checked: {
1275
- '& $thumb': {
1276
- backgroundColor: palette.success.main,
1277
- },
1278
- '&& + $track': {
1279
- backgroundColor: palette.success.main,
1280
- opacity: 0.5,
1281
- },
1160
+ const Switch = core.withStyles(({ palette }) => ({
1161
+ checked: {
1162
+ '& $thumb': {
1163
+ backgroundColor: palette.success.main,
1282
1164
  },
1283
- switchBase: {
1284
- color: palette.grey[300],
1165
+ '&& + $track': {
1166
+ backgroundColor: palette.success.main,
1167
+ opacity: 0.5,
1285
1168
  },
1286
- thumb: {},
1287
- track: {},
1288
- });
1289
- })(core.Switch);
1169
+ },
1170
+ switchBase: {
1171
+ color: palette.grey[300],
1172
+ },
1173
+ thumb: {},
1174
+ track: {},
1175
+ }))(core.Switch);
1290
1176
 
1291
- var Checkbox = core.withStyles(function (_a) {
1292
- var palette = _a.palette;
1293
- return ({
1294
- checked: {},
1295
- root: {
1296
- '&$checked': {
1297
- color: palette.info.main,
1298
- },
1177
+ const Checkbox = core.withStyles(({ palette }) => ({
1178
+ checked: {},
1179
+ root: {
1180
+ '&$checked': {
1181
+ color: palette.info.main,
1299
1182
  },
1300
- });
1301
- })(core.Checkbox);
1183
+ },
1184
+ }))(core.Checkbox);
1302
1185
 
1303
- var Radio = core.withStyles(function (_a) {
1304
- var palette = _a.palette;
1305
- return ({
1306
- checked: {},
1307
- root: {
1308
- '&$checked': {
1309
- color: palette.info.main,
1310
- },
1186
+ const Radio = core.withStyles(({ palette }) => ({
1187
+ checked: {},
1188
+ root: {
1189
+ '&$checked': {
1190
+ color: palette.info.main,
1311
1191
  },
1312
- });
1313
- })(core.Radio);
1192
+ },
1193
+ }))(core.Radio);
1314
1194
 
1315
- var useStyles = core.makeStyles(function (theme) { return ({
1195
+ const useStyles = core.makeStyles((theme) => ({
1316
1196
  root: {
1317
1197
  '& > div': {
1318
1198
  padding: 0,
@@ -1334,63 +1214,59 @@ var useStyles = core.makeStyles(function (theme) { return ({
1334
1214
  color: theme.palette.grey[700],
1335
1215
  },
1336
1216
  header: {
1337
- color: function (props) {
1338
- return ({
1339
- alert: theme.palette.error.main,
1340
- info: theme.palette.info.main,
1341
- offer: theme.palette.success.main,
1342
- }[props.type]);
1343
- },
1217
+ color: (props) => ({
1218
+ alert: theme.palette.error.main,
1219
+ info: theme.palette.info.main,
1220
+ offer: theme.palette.success.main,
1221
+ }[props.type]),
1344
1222
  },
1345
1223
  headerTitle: {
1346
- color: function (props) {
1347
- return ({
1348
- alert: theme.palette.error.main,
1349
- info: theme.palette.info.main,
1350
- offer: theme.palette.success.main,
1351
- }[props.type]);
1352
- },
1224
+ color: (props) => ({
1225
+ alert: theme.palette.error.main,
1226
+ info: theme.palette.info.main,
1227
+ offer: theme.palette.success.main,
1228
+ }[props.type]),
1353
1229
  fontWeight: 600,
1354
1230
  },
1355
1231
  content: {
1356
1232
  marginLeft: theme.spacing(5),
1357
1233
  },
1358
- }); });
1234
+ }));
1359
1235
 
1360
- var bannerIconStyles = { color: 'inherit', width: 24, height: 24 };
1361
- var BannerTypeIcons = {
1236
+ const bannerIconStyles = { color: 'inherit', width: 24, height: 24 };
1237
+ const BannerTypeIcons = {
1362
1238
  alert: React.createElement(webIcons.Warning, { style: bannerIconStyles }),
1363
1239
  info: React.createElement(webIcons.Info, { style: bannerIconStyles }),
1364
1240
  offer: React.createElement(webIcons.DollarSign, { style: bannerIconStyles }),
1365
1241
  };
1366
1242
 
1367
- var MenuBanner = function (props) {
1368
- var show = props.show;
1369
- var classes = useStyles(props);
1243
+ const MenuBanner = (props) => {
1244
+ const { show } = props;
1245
+ const classes = useStyles(props);
1370
1246
  if (!show)
1371
1247
  return null;
1372
1248
  return (React.createElement(core.Card, { classes: { root: classes.root }, variant: "outlined" },
1373
1249
  React.createElement(core.CardHeader, { avatar: BannerTypeIcons[props.type], title: props.title, titleTypographyProps: { variant: 'body1' }, classes: { root: classes.header, title: classes.headerTitle } }),
1374
- React.createElement(MenuBannerDescription, tslib.__assign({}, props)),
1375
- React.createElement(MenuBannerButton, tslib.__assign({}, props))));
1250
+ React.createElement(MenuBannerDescription, { ...props }),
1251
+ React.createElement(MenuBannerButton, { ...props })));
1376
1252
  };
1377
1253
  function MenuBannerDescription(props) {
1378
- var classes = useStyles(props);
1379
- var description = props.description;
1254
+ const classes = useStyles(props);
1255
+ const { description } = props;
1380
1256
  if (!description)
1381
1257
  return null;
1382
1258
  return (React.createElement(core.CardContent, { classes: { root: classes.content } },
1383
1259
  React.createElement(core.Typography, { className: classes.description, variant: "body2" }, props.description)));
1384
1260
  }
1385
1261
  function MenuBannerButton(props) {
1386
- var classes = useStyles(props);
1262
+ const classes = useStyles(props);
1387
1263
  if (!props.buttonLabel)
1388
1264
  return null;
1389
1265
  return (React.createElement(core.CardContent, { classes: { root: classes.content } },
1390
- React.createElement(core.Link, tslib.__assign({}, { component: 'button', variant: 'body2', className: classes.button }, props.ButtonProps), props.buttonLabel)));
1266
+ React.createElement(core.Link, { component: 'button', variant: 'body2', className: classes.button, ...props.ButtonProps }, props.buttonLabel)));
1391
1267
  }
1392
1268
 
1393
- var palette = {
1269
+ const palette = {
1394
1270
  primary: {
1395
1271
  main: '#0A202F',
1396
1272
  },
@@ -1417,7 +1293,7 @@ var palette = {
1417
1293
  },
1418
1294
  };
1419
1295
 
1420
- var overrides = {
1296
+ const overrides = {
1421
1297
  MuiButton: {
1422
1298
  root: {
1423
1299
  borderRadius: 32,
@@ -1490,7 +1366,7 @@ var overrides = {
1490
1366
  },
1491
1367
  };
1492
1368
 
1493
- var props = {
1369
+ const props = {
1494
1370
  MuiButton: {
1495
1371
  disableElevation: true,
1496
1372
  },
@@ -1499,8 +1375,8 @@ var props = {
1499
1375
  },
1500
1376
  };
1501
1377
 
1502
- var fonts = ['"Poppins"', '"sans-serif"'];
1503
- var typography = {
1378
+ const fonts = ['"Poppins"', '"sans-serif"'];
1379
+ const typography = {
1504
1380
  htmlFontSize: 16,
1505
1381
  fontFamily: fonts.join(', '),
1506
1382
  h1: {
@@ -1557,11 +1433,11 @@ var typography = {
1557
1433
  },
1558
1434
  };
1559
1435
 
1560
- var orderingTheme = {
1561
- typography: typography,
1562
- palette: palette,
1563
- overrides: overrides,
1564
- props: props,
1436
+ const orderingTheme = {
1437
+ typography,
1438
+ palette,
1439
+ overrides,
1440
+ props,
1565
1441
  };
1566
1442
 
1567
1443
  exports.Button = Button;