@popmenu/ordering-ui 0.126.0 → 0.126.2

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 (337) hide show
  1. package/build/{components → cjs/components}/Button/Button.d.ts +3 -3
  2. package/build/{components → cjs/components}/Button/ButtonProps.d.ts +5 -5
  3. package/build/{components → cjs/components}/Button/index.d.ts +2 -2
  4. package/build/cjs/components/Checkbox/Checkbox.d.ts +2 -0
  5. package/build/{components → cjs/components}/Checkbox/index.d.ts +1 -1
  6. package/build/{components → cjs/components}/DialogSection/DialogSection.d.ts +8 -8
  7. package/build/{components → cjs/components}/DialogSection/index.d.ts +1 -1
  8. package/build/{components → cjs/components}/DialogTitle/DialogTitle.d.ts +9 -9
  9. package/build/{components → cjs/components}/DialogTitle/index.d.ts +1 -1
  10. package/build/{components → cjs/components}/DishCheckoutCard/DishCheckoutCard.d.ts +3 -3
  11. package/build/{components → cjs/components}/DishCheckoutCard/DishCheckoutCard.styles.d.ts +2 -2
  12. package/build/{components → cjs/components}/DishCheckoutCard/DishCheckoutCardProps.d.ts +44 -44
  13. package/build/{components → cjs/components}/DishCheckoutCard/index.d.ts +2 -2
  14. package/build/{components → cjs/components}/DishDetailsReview/DishDetailsReview.d.ts +3 -3
  15. package/build/{components → cjs/components}/DishDetailsReview/DishDetailsReviewProps.d.ts +12 -12
  16. package/build/{components → cjs/components}/DishDetailsReview/index.d.ts +2 -2
  17. package/build/{components → cjs/components}/DishModifierCard/DishModifierCard.d.ts +6 -6
  18. package/build/{components → cjs/components}/DishModifierCard/DishModifierCard.styles.d.ts +5 -5
  19. package/build/{components → cjs/components}/DishModifierCard/DishModifierCardProps.d.ts +71 -71
  20. package/build/{components → cjs/components}/DishModifierCard/ModifierControls.d.ts +3 -3
  21. package/build/{components → cjs/components}/DishModifierCard/ModifierForm.d.ts +4 -4
  22. package/build/{components → cjs/components}/DishModifierCard/index.d.ts +2 -2
  23. package/build/{components → cjs/components}/ItemTag/ItemTag.d.ts +3 -3
  24. package/build/{components → cjs/components}/ItemTag/ItemTagProps.d.ts +5 -5
  25. package/build/{components → cjs/components}/ItemTag/index.d.ts +2 -2
  26. package/build/{components → cjs/components}/ItemTag/itemTag.styles.d.ts +1 -1
  27. package/build/{components → cjs/components}/ItemTagGroup/ItemTagGroup.d.ts +2 -2
  28. package/build/{components → cjs/components}/ItemTagGroup/index.d.ts +1 -1
  29. package/build/{components → cjs/components}/LocationCard/LocationCard.d.ts +3 -3
  30. package/build/{components → cjs/components}/LocationCard/LocationCard.styles.d.ts +2 -2
  31. package/build/{components → cjs/components}/LocationCard/LocationCardProps.d.ts +27 -28
  32. package/build/{components → cjs/components}/LocationCard/index.d.ts +2 -2
  33. package/build/{components → cjs/components}/MenuBanner/MenuBanner.d.ts +3 -3
  34. package/build/{components → cjs/components}/MenuBanner/MenuBanner.styles.d.ts +2 -2
  35. package/build/{components → cjs/components}/MenuBanner/MenuBannerIcons.d.ts +6 -6
  36. package/build/{components → cjs/components}/MenuBanner/MenuBannerProps.d.ts +15 -15
  37. package/build/{components → cjs/components}/MenuBanner/index.d.ts +2 -2
  38. package/build/{components → cjs/components}/MenuDropdown/MenuDropdown.d.ts +3 -3
  39. package/build/{components → cjs/components}/MenuDropdown/MenuDropdown.styles.d.ts +2 -2
  40. package/build/{components → cjs/components}/MenuDropdown/MenuDropdownProps.d.ts +15 -15
  41. package/build/{components → cjs/components}/MenuDropdown/index.d.ts +2 -2
  42. package/build/cjs/components/MenuFilter/LeafIcon.d.ts +1 -0
  43. package/build/{components → cjs/components}/MenuFilter/MenuFilter.d.ts +3 -3
  44. package/build/{components → cjs/components}/MenuFilter/MenuFilter.styles.d.ts +1 -1
  45. package/build/{components → cjs/components}/MenuFilter/MenuFilterProps.d.ts +23 -23
  46. package/build/{components → cjs/components}/MenuFilter/index.d.ts +2 -2
  47. package/build/{components → cjs/components}/MenuItem/MenuItem.d.ts +3 -3
  48. package/build/{components → cjs/components}/MenuItem/MenuItem.styles.d.ts +1 -1
  49. package/build/{components → cjs/components}/MenuItem/MenuItemImg.d.ts +3 -3
  50. package/build/{components → cjs/components}/MenuItem/MenuItemInfo.d.ts +4 -4
  51. package/build/{components → cjs/components}/MenuItem/MenuItemPrice.d.ts +3 -3
  52. package/build/{components → cjs/components}/MenuItem/MenuItemProps.d.ts +41 -41
  53. package/build/{components → cjs/components}/MenuItem/MenuItemReactions.d.ts +3 -3
  54. package/build/{components → cjs/components}/MenuItem/MenuItemTags.d.ts +3 -3
  55. package/build/{components → cjs/components}/MenuItem/index.d.ts +2 -2
  56. package/build/{components → cjs/components}/MenuItemGroup/MenuItemGroup.d.ts +5 -5
  57. package/build/{components → cjs/components}/MenuItemGroup/MenuItemGroupStyles.d.ts +1 -1
  58. package/build/{components → cjs/components}/MenuItemGroup/index.d.ts +1 -1
  59. package/build/{components → cjs/components}/MenuSection/MenuSection.d.ts +3 -3
  60. package/build/{components → cjs/components}/MenuSection/MenuSectionProps.d.ts +9 -9
  61. package/build/{components → cjs/components}/MenuSection/MenuSectionStyles.d.ts +1 -1
  62. package/build/{components → cjs/components}/MenuSection/index.d.ts +2 -2
  63. package/build/{components → cjs/components}/MenuSectionGroup/MenuSectionGroup.d.ts +5 -5
  64. package/build/{components → cjs/components}/MenuSectionGroup/index.d.ts +1 -1
  65. package/build/{components → cjs/components}/OrderingAppContext/OrderingAppContext.d.ts +18 -18
  66. package/build/{components → cjs/components}/OrderingAppContext/index.d.ts +1 -1
  67. package/build/{components → cjs/components}/PageSection/PageSection.d.ts +4 -4
  68. package/build/{components → cjs/components}/PageSection/index.d.ts +1 -1
  69. package/build/{components → cjs/components}/QuantityPicker/QuantityPicker.d.ts +3 -3
  70. package/build/{components → cjs/components}/QuantityPicker/QuantityPicker.styles.d.ts +5 -5
  71. package/build/{components → cjs/components}/QuantityPicker/QuantityPickerProps.d.ts +21 -21
  72. package/build/{components → cjs/components}/QuantityPicker/index.d.ts +2 -2
  73. package/build/cjs/components/Radio/Radio.d.ts +2 -0
  74. package/build/{components → cjs/components}/Radio/index.d.ts +1 -1
  75. package/build/{components → cjs/components}/ReactionCounter/ReactionCounter.d.ts +3 -3
  76. package/build/{components → cjs/components}/ReactionCounter/ReactionCounterProps.d.ts +6 -6
  77. package/build/{components → cjs/components}/ReactionCounter/index.d.ts +2 -2
  78. package/build/{components → cjs/components}/ReactionCounterGroup/ReactionCounterGroup.d.ts +4 -4
  79. package/build/{components → cjs/components}/ReactionCounterGroup/index.d.ts +1 -1
  80. package/build/{components → cjs/components}/SelectableChip/SelectableChip.d.ts +3 -3
  81. package/build/{components → cjs/components}/SelectableChip/SelectableChip.styles.d.ts +2 -2
  82. package/build/{components → cjs/components}/SelectableChip/SelectableChipProps.d.ts +2 -2
  83. package/build/{components → cjs/components}/SelectableChip/index.d.ts +2 -2
  84. package/build/{components → cjs/components}/SelectableChipGroup/SelectableChipGroup.d.ts +3 -3
  85. package/build/{components → cjs/components}/SelectableChipGroup/SelectableChipGroup.styles.d.ts +1 -1
  86. package/build/{components → cjs/components}/SelectableChipGroup/SelectableChipGroupProps.d.ts +5 -5
  87. package/build/{components → cjs/components}/SelectableChipGroup/index.d.ts +2 -2
  88. package/build/{components → cjs/components}/SelectedMenuFiltersList/SelectedMenuFiltersList.d.ts +3 -3
  89. package/build/{components → cjs/components}/SelectedMenuFiltersList/SelectedMenuFiltersListProps.d.ts +6 -6
  90. package/build/{components → cjs/components}/SelectedMenuFiltersList/index.d.ts +2 -2
  91. package/build/{components → cjs/components}/StatusTag/StatusTag.d.ts +10 -10
  92. package/build/{components → cjs/components}/StatusTag/StatusTag.styles.d.ts +2 -2
  93. package/build/{components → cjs/components}/StatusTag/StatusTagProps.d.ts +10 -10
  94. package/build/{components → cjs/components}/StatusTag/index.d.ts +2 -2
  95. package/build/cjs/components/Switch/Switch.d.ts +2 -0
  96. package/build/{components → cjs/components}/Switch/index.d.ts +1 -1
  97. package/build/{components → cjs/components}/index.d.ts +29 -29
  98. package/build/{index.d.ts → cjs/index.d.ts} +2 -2
  99. package/build/cjs/index.js +1576 -0
  100. package/build/cjs/index.js.map +1 -0
  101. package/build/{theme → cjs/theme}/index.d.ts +1 -1
  102. package/build/cjs/theme/overrides.d.ts +2 -0
  103. package/build/{theme → cjs/theme}/palette.d.ts +26 -26
  104. package/build/cjs/theme/props.d.ts +2 -0
  105. package/build/{theme → cjs/theme}/theme.d.ts +2 -2
  106. package/build/cjs/theme/typography.d.ts +2 -0
  107. package/build/esm/_virtual/index.js +4 -0
  108. package/build/esm/_virtual/index.js.map +1 -0
  109. package/build/esm/assets/leaf-icon.svg.js +21 -0
  110. package/build/esm/assets/leaf-icon.svg.js.map +1 -0
  111. package/build/esm/components/Button/Button.d.ts +3 -0
  112. package/build/esm/components/Button/Button.js +23 -0
  113. package/build/esm/components/Button/Button.js.map +1 -0
  114. package/build/esm/components/Button/ButtonProps.d.ts +5 -0
  115. package/build/esm/components/Button/index.d.ts +2 -0
  116. package/build/esm/components/Checkbox/Checkbox.d.ts +2 -0
  117. package/build/esm/components/Checkbox/Checkbox.js +16 -0
  118. package/build/esm/components/Checkbox/Checkbox.js.map +1 -0
  119. package/build/esm/components/Checkbox/index.d.ts +1 -0
  120. package/build/esm/components/DialogSection/DialogSection.d.ts +8 -0
  121. package/build/esm/components/DialogSection/DialogSection.js +11 -0
  122. package/build/esm/components/DialogSection/DialogSection.js.map +1 -0
  123. package/build/esm/components/DialogSection/index.d.ts +1 -0
  124. package/build/esm/components/DialogTitle/DialogTitle.d.ts +9 -0
  125. package/build/esm/components/DialogTitle/DialogTitle.js +22 -0
  126. package/build/esm/components/DialogTitle/DialogTitle.js.map +1 -0
  127. package/build/esm/components/DialogTitle/index.d.ts +1 -0
  128. package/build/esm/components/DishCheckoutCard/DishCheckoutCard.d.ts +3 -0
  129. package/build/esm/components/DishCheckoutCard/DishCheckoutCard.js +94 -0
  130. package/build/esm/components/DishCheckoutCard/DishCheckoutCard.js.map +1 -0
  131. package/build/esm/components/DishCheckoutCard/DishCheckoutCard.styles.d.ts +2 -0
  132. package/build/esm/components/DishCheckoutCard/DishCheckoutCard.styles.js +85 -0
  133. package/build/esm/components/DishCheckoutCard/DishCheckoutCard.styles.js.map +1 -0
  134. package/build/esm/components/DishCheckoutCard/DishCheckoutCardProps.d.ts +44 -0
  135. package/build/esm/components/DishCheckoutCard/index.d.ts +2 -0
  136. package/build/esm/components/DishDetailsReview/DishDetailsReview.d.ts +3 -0
  137. package/build/esm/components/DishDetailsReview/DishDetailsReview.js +18 -0
  138. package/build/esm/components/DishDetailsReview/DishDetailsReview.js.map +1 -0
  139. package/build/esm/components/DishDetailsReview/DishDetailsReviewProps.d.ts +12 -0
  140. package/build/esm/components/DishDetailsReview/index.d.ts +2 -0
  141. package/build/esm/components/DishModifierCard/DishModifierCard.d.ts +6 -0
  142. package/build/esm/components/DishModifierCard/DishModifierCard.js +48 -0
  143. package/build/esm/components/DishModifierCard/DishModifierCard.js.map +1 -0
  144. package/build/esm/components/DishModifierCard/DishModifierCard.styles.d.ts +5 -0
  145. package/build/esm/components/DishModifierCard/DishModifierCard.styles.js +95 -0
  146. package/build/esm/components/DishModifierCard/DishModifierCard.styles.js.map +1 -0
  147. package/build/esm/components/DishModifierCard/DishModifierCardProps.d.ts +71 -0
  148. package/build/esm/components/DishModifierCard/ModifierControls.d.ts +3 -0
  149. package/build/esm/components/DishModifierCard/ModifierControls.js +135 -0
  150. package/build/esm/components/DishModifierCard/ModifierControls.js.map +1 -0
  151. package/build/esm/components/DishModifierCard/ModifierForm.d.ts +4 -0
  152. package/build/esm/components/DishModifierCard/index.d.ts +2 -0
  153. package/build/esm/components/ItemTag/ItemTag.d.ts +3 -0
  154. package/build/esm/components/ItemTag/ItemTag.js +15 -0
  155. package/build/esm/components/ItemTag/ItemTag.js.map +1 -0
  156. package/build/esm/components/ItemTag/ItemTagProps.d.ts +5 -0
  157. package/build/esm/components/ItemTag/index.d.ts +2 -0
  158. package/build/esm/components/ItemTag/itemTag.styles.d.ts +1 -0
  159. package/build/esm/components/ItemTag/itemTag.styles.js +20 -0
  160. package/build/esm/components/ItemTag/itemTag.styles.js.map +1 -0
  161. package/build/esm/components/ItemTagGroup/ItemTagGroup.d.ts +2 -0
  162. package/build/esm/components/ItemTagGroup/ItemTagGroup.js +10 -0
  163. package/build/esm/components/ItemTagGroup/ItemTagGroup.js.map +1 -0
  164. package/build/esm/components/ItemTagGroup/index.d.ts +1 -0
  165. package/build/esm/components/LocationCard/LocationCard.d.ts +3 -0
  166. package/build/esm/components/LocationCard/LocationCard.js +35 -0
  167. package/build/esm/components/LocationCard/LocationCard.js.map +1 -0
  168. package/build/esm/components/LocationCard/LocationCard.styles.d.ts +2 -0
  169. package/build/esm/components/LocationCard/LocationCard.styles.js +64 -0
  170. package/build/esm/components/LocationCard/LocationCard.styles.js.map +1 -0
  171. package/build/esm/components/LocationCard/LocationCardProps.d.ts +27 -0
  172. package/build/esm/components/LocationCard/index.d.ts +2 -0
  173. package/build/esm/components/MenuBanner/MenuBanner.d.ts +3 -0
  174. package/build/esm/components/MenuBanner/MenuBanner.js +34 -0
  175. package/build/esm/components/MenuBanner/MenuBanner.js.map +1 -0
  176. package/build/esm/components/MenuBanner/MenuBanner.styles.d.ts +2 -0
  177. package/build/esm/components/MenuBanner/MenuBanner.styles.js +49 -0
  178. package/build/esm/components/MenuBanner/MenuBanner.styles.js.map +1 -0
  179. package/build/esm/components/MenuBanner/MenuBannerIcons.d.ts +6 -0
  180. package/build/esm/components/MenuBanner/MenuBannerIcons.js +12 -0
  181. package/build/esm/components/MenuBanner/MenuBannerIcons.js.map +1 -0
  182. package/build/esm/components/MenuBanner/MenuBannerProps.d.ts +15 -0
  183. package/build/esm/components/MenuBanner/index.d.ts +2 -0
  184. package/build/esm/components/MenuDropdown/MenuDropdown.d.ts +3 -0
  185. package/build/esm/components/MenuDropdown/MenuDropdown.js +37 -0
  186. package/build/esm/components/MenuDropdown/MenuDropdown.js.map +1 -0
  187. package/build/esm/components/MenuDropdown/MenuDropdown.styles.d.ts +2 -0
  188. package/build/esm/components/MenuDropdown/MenuDropdown.styles.js +40 -0
  189. package/build/esm/components/MenuDropdown/MenuDropdown.styles.js.map +1 -0
  190. package/build/esm/components/MenuDropdown/MenuDropdownProps.d.ts +15 -0
  191. package/build/esm/components/MenuDropdown/index.d.ts +2 -0
  192. package/build/esm/components/MenuFilter/LeafIcon.d.ts +1 -0
  193. package/build/esm/components/MenuFilter/MenuFilter.d.ts +3 -0
  194. package/build/esm/components/MenuFilter/MenuFilter.js +47 -0
  195. package/build/esm/components/MenuFilter/MenuFilter.js.map +1 -0
  196. package/build/esm/components/MenuFilter/MenuFilter.styles.d.ts +1 -0
  197. package/build/esm/components/MenuFilter/MenuFilter.styles.js +11 -0
  198. package/build/esm/components/MenuFilter/MenuFilter.styles.js.map +1 -0
  199. package/build/esm/components/MenuFilter/MenuFilterProps.d.ts +23 -0
  200. package/build/esm/components/MenuFilter/index.d.ts +2 -0
  201. package/build/esm/components/MenuItem/MenuItem.d.ts +3 -0
  202. package/build/esm/components/MenuItem/MenuItem.js +40 -0
  203. package/build/esm/components/MenuItem/MenuItem.js.map +1 -0
  204. package/build/esm/components/MenuItem/MenuItem.styles.d.ts +1 -0
  205. package/build/esm/components/MenuItem/MenuItem.styles.js +67 -0
  206. package/build/esm/components/MenuItem/MenuItem.styles.js.map +1 -0
  207. package/build/esm/components/MenuItem/MenuItemImg.d.ts +3 -0
  208. package/build/esm/components/MenuItem/MenuItemImg.js +22 -0
  209. package/build/esm/components/MenuItem/MenuItemImg.js.map +1 -0
  210. package/build/esm/components/MenuItem/MenuItemInfo.d.ts +4 -0
  211. package/build/esm/components/MenuItem/MenuItemInfo.js +9 -0
  212. package/build/esm/components/MenuItem/MenuItemInfo.js.map +1 -0
  213. package/build/esm/components/MenuItem/MenuItemPrice.d.ts +3 -0
  214. package/build/esm/components/MenuItem/MenuItemPrice.js +28 -0
  215. package/build/esm/components/MenuItem/MenuItemPrice.js.map +1 -0
  216. package/build/esm/components/MenuItem/MenuItemProps.d.ts +41 -0
  217. package/build/esm/components/MenuItem/MenuItemReactions.d.ts +3 -0
  218. package/build/esm/components/MenuItem/MenuItemReactions.js +16 -0
  219. package/build/esm/components/MenuItem/MenuItemReactions.js.map +1 -0
  220. package/build/esm/components/MenuItem/MenuItemTags.d.ts +3 -0
  221. package/build/esm/components/MenuItem/MenuItemTags.js +11 -0
  222. package/build/esm/components/MenuItem/MenuItemTags.js.map +1 -0
  223. package/build/esm/components/MenuItem/index.d.ts +2 -0
  224. package/build/esm/components/MenuItemGroup/MenuItemGroup.d.ts +5 -0
  225. package/build/esm/components/MenuItemGroup/MenuItemGroup.js +15 -0
  226. package/build/esm/components/MenuItemGroup/MenuItemGroup.js.map +1 -0
  227. package/build/esm/components/MenuItemGroup/MenuItemGroupStyles.d.ts +1 -0
  228. package/build/esm/components/MenuItemGroup/MenuItemGroupStyles.js +21 -0
  229. package/build/esm/components/MenuItemGroup/MenuItemGroupStyles.js.map +1 -0
  230. package/build/esm/components/MenuItemGroup/index.d.ts +1 -0
  231. package/build/esm/components/MenuSection/MenuSection.d.ts +3 -0
  232. package/build/esm/components/MenuSection/MenuSection.js +18 -0
  233. package/build/esm/components/MenuSection/MenuSection.js.map +1 -0
  234. package/build/esm/components/MenuSection/MenuSectionProps.d.ts +9 -0
  235. package/build/esm/components/MenuSection/MenuSectionStyles.d.ts +1 -0
  236. package/build/esm/components/MenuSection/MenuSectionStyles.js +12 -0
  237. package/build/esm/components/MenuSection/MenuSectionStyles.js.map +1 -0
  238. package/build/esm/components/MenuSection/index.d.ts +2 -0
  239. package/build/esm/components/MenuSectionGroup/MenuSectionGroup.d.ts +5 -0
  240. package/build/esm/components/MenuSectionGroup/MenuSectionGroup.js +12 -0
  241. package/build/esm/components/MenuSectionGroup/MenuSectionGroup.js.map +1 -0
  242. package/build/esm/components/MenuSectionGroup/index.d.ts +1 -0
  243. package/build/esm/components/OrderingAppContext/OrderingAppContext.d.ts +18 -0
  244. package/build/esm/components/OrderingAppContext/OrderingAppContext.js +17 -0
  245. package/build/esm/components/OrderingAppContext/OrderingAppContext.js.map +1 -0
  246. package/build/esm/components/OrderingAppContext/index.d.ts +1 -0
  247. package/build/esm/components/PageSection/PageSection.d.ts +4 -0
  248. package/build/esm/components/PageSection/PageSection.js +7 -0
  249. package/build/esm/components/PageSection/PageSection.js.map +1 -0
  250. package/build/esm/components/PageSection/index.d.ts +1 -0
  251. package/build/esm/components/QuantityPicker/QuantityPicker.d.ts +3 -0
  252. package/build/esm/components/QuantityPicker/QuantityPicker.js +38 -0
  253. package/build/esm/components/QuantityPicker/QuantityPicker.js.map +1 -0
  254. package/build/esm/components/QuantityPicker/QuantityPicker.styles.d.ts +5 -0
  255. package/build/esm/components/QuantityPicker/QuantityPicker.styles.js +46 -0
  256. package/build/esm/components/QuantityPicker/QuantityPicker.styles.js.map +1 -0
  257. package/build/esm/components/QuantityPicker/QuantityPickerProps.d.ts +21 -0
  258. package/build/esm/components/QuantityPicker/index.d.ts +2 -0
  259. package/build/esm/components/Radio/Radio.d.ts +2 -0
  260. package/build/esm/components/Radio/Radio.js +16 -0
  261. package/build/esm/components/Radio/Radio.js.map +1 -0
  262. package/build/esm/components/Radio/index.d.ts +1 -0
  263. package/build/esm/components/ReactionCounter/ReactionCounter.d.ts +3 -0
  264. package/build/esm/components/ReactionCounter/ReactionCounter.js +12 -0
  265. package/build/esm/components/ReactionCounter/ReactionCounter.js.map +1 -0
  266. package/build/esm/components/ReactionCounter/ReactionCounterProps.d.ts +6 -0
  267. package/build/esm/components/ReactionCounter/index.d.ts +2 -0
  268. package/build/esm/components/ReactionCounterGroup/ReactionCounterGroup.d.ts +4 -0
  269. package/build/esm/components/ReactionCounterGroup/ReactionCounterGroup.js +10 -0
  270. package/build/esm/components/ReactionCounterGroup/ReactionCounterGroup.js.map +1 -0
  271. package/build/esm/components/ReactionCounterGroup/index.d.ts +1 -0
  272. package/build/esm/components/SelectableChip/SelectableChip.d.ts +3 -0
  273. package/build/esm/components/SelectableChip/SelectableChip.js +15 -0
  274. package/build/esm/components/SelectableChip/SelectableChip.js.map +1 -0
  275. package/build/esm/components/SelectableChip/SelectableChip.styles.d.ts +2 -0
  276. package/build/esm/components/SelectableChip/SelectableChip.styles.js +34 -0
  277. package/build/esm/components/SelectableChip/SelectableChip.styles.js.map +1 -0
  278. package/build/esm/components/SelectableChip/SelectableChipProps.d.ts +2 -0
  279. package/build/esm/components/SelectableChip/index.d.ts +2 -0
  280. package/build/esm/components/SelectableChipGroup/SelectableChipGroup.d.ts +3 -0
  281. package/build/esm/components/SelectableChipGroup/SelectableChipGroup.js +15 -0
  282. package/build/esm/components/SelectableChipGroup/SelectableChipGroup.js.map +1 -0
  283. package/build/esm/components/SelectableChipGroup/SelectableChipGroup.styles.d.ts +1 -0
  284. package/build/esm/components/SelectableChipGroup/SelectableChipGroup.styles.js +21 -0
  285. package/build/esm/components/SelectableChipGroup/SelectableChipGroup.styles.js.map +1 -0
  286. package/build/esm/components/SelectableChipGroup/SelectableChipGroupProps.d.ts +5 -0
  287. package/build/esm/components/SelectableChipGroup/index.d.ts +2 -0
  288. package/build/esm/components/SelectedMenuFiltersList/SelectedMenuFiltersList.d.ts +3 -0
  289. package/build/esm/components/SelectedMenuFiltersList/SelectedMenuFiltersList.js +33 -0
  290. package/build/esm/components/SelectedMenuFiltersList/SelectedMenuFiltersList.js.map +1 -0
  291. package/build/esm/components/SelectedMenuFiltersList/SelectedMenuFiltersListProps.d.ts +6 -0
  292. package/build/esm/components/SelectedMenuFiltersList/index.d.ts +2 -0
  293. package/build/esm/components/StatusTag/StatusTag.d.ts +10 -0
  294. package/build/esm/components/StatusTag/StatusTag.js +19 -0
  295. package/build/esm/components/StatusTag/StatusTag.js.map +1 -0
  296. package/build/esm/components/StatusTag/StatusTag.styles.d.ts +2 -0
  297. package/build/esm/components/StatusTag/StatusTag.styles.js +40 -0
  298. package/build/esm/components/StatusTag/StatusTag.styles.js.map +1 -0
  299. package/build/esm/components/StatusTag/StatusTagProps.d.ts +10 -0
  300. package/build/esm/components/StatusTag/index.d.ts +2 -0
  301. package/build/esm/components/Switch/Switch.d.ts +2 -0
  302. package/build/esm/components/Switch/Switch.js +24 -0
  303. package/build/esm/components/Switch/Switch.js.map +1 -0
  304. package/build/esm/components/Switch/index.d.ts +1 -0
  305. package/build/esm/components/index.d.ts +29 -0
  306. package/build/esm/index.d.ts +2 -0
  307. package/build/esm/index.js +31 -0
  308. package/build/esm/index.js.map +1 -0
  309. package/build/esm/node_modules/classnames/index.js +81 -0
  310. package/build/esm/node_modules/classnames/index.js.map +1 -0
  311. package/build/esm/theme/index.d.ts +1 -0
  312. package/build/esm/theme/overrides.d.ts +2 -0
  313. package/build/esm/theme/overrides.js +75 -0
  314. package/build/esm/theme/overrides.js.map +1 -0
  315. package/build/esm/theme/palette.d.ts +26 -0
  316. package/build/esm/theme/palette.js +29 -0
  317. package/build/esm/theme/palette.js.map +1 -0
  318. package/build/esm/theme/props.d.ts +2 -0
  319. package/build/esm/theme/props.js +11 -0
  320. package/build/esm/theme/props.js.map +1 -0
  321. package/build/esm/theme/theme.d.ts +2 -0
  322. package/build/esm/theme/theme.js +14 -0
  323. package/build/esm/theme/theme.js.map +1 -0
  324. package/build/esm/theme/typography.d.ts +2 -0
  325. package/build/esm/theme/typography.js +60 -0
  326. package/build/esm/theme/typography.js.map +1 -0
  327. package/package.json +8 -9
  328. package/build/components/Checkbox/Checkbox.d.ts +0 -2
  329. package/build/components/Radio/Radio.d.ts +0 -2
  330. package/build/components/Switch/Switch.d.ts +0 -2
  331. package/build/index.es.js +0 -2713
  332. package/build/index.es.js.map +0 -1
  333. package/build/index.js +0 -2788
  334. package/build/index.js.map +0 -1
  335. package/build/theme/overrides.d.ts +0 -2
  336. package/build/theme/props.d.ts +0 -2
  337. package/build/theme/typography.d.ts +0 -2
@@ -0,0 +1,1576 @@
1
+ 'use strict';
2
+
3
+ var core = require('@material-ui/core');
4
+ var tslib = require('tslib');
5
+ var React = require('react');
6
+ var webIcons = require('@popmenu/web-icons');
7
+ var commonUi = require('@popmenu/common-ui');
8
+ var lab = require('@material-ui/lab');
9
+
10
+ function _interopNamespaceDefault(e) {
11
+ var n = Object.create(null);
12
+ if (e) {
13
+ Object.keys(e).forEach(function (k) {
14
+ if (k !== 'default') {
15
+ var d = Object.getOwnPropertyDescriptor(e, k);
16
+ Object.defineProperty(n, k, d.get ? d : {
17
+ enumerable: true,
18
+ get: function () { return e[k]; }
19
+ });
20
+ }
21
+ });
22
+ }
23
+ n.default = e;
24
+ return Object.freeze(n);
25
+ }
26
+
27
+ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
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 = {};
32
+ switch (variation) {
33
+ case 'primary':
34
+ variationProps.variant = 'contained';
35
+ variationProps.color = 'primary';
36
+ break;
37
+ case 'secondary':
38
+ variationProps.variant = 'outlined';
39
+ variationProps.color = 'primary';
40
+ break;
41
+ }
42
+ return React.createElement(core.Button, tslib.__assign({}, variationProps, muiProps, { ref: ref }));
43
+ });
44
+ Button.displayName = 'Button';
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',
99
+ },
100
+ outOfStockTag: {
101
+ minWidth: '90px',
102
+ marginLeft: theme.spacing(1),
103
+ display: 'inline-block',
104
+ verticalAlign: 'bottom',
105
+ },
106
+ });
107
+ });
108
+
109
+ var useStyles$6 = core.makeStyles(function () { return ({
110
+ img: {
111
+ objectFit: 'cover',
112
+ width: '100%',
113
+ height: '100%',
114
+ },
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();
120
+ if (!src) {
121
+ return null;
122
+ }
123
+ 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
+ };
125
+
126
+ var MenuItemInfo = function (props) {
127
+ return (React.createElement(core.Box, { display: "flex", flexGrow: 1, flexDirection: "column", height: "100%" }, props.children));
128
+ };
129
+
130
+ var ReactionCounter = function (props) {
131
+ var count = props.count, icon = props.icon, label = props.label;
132
+ return (React.createElement(commonUi.Box, { display: "flex", alignItems: "center", gridGap: 6, color: "grey.900" },
133
+ React.createElement(commonUi.Icon, { icon: icon, size: "large", color: "inherit", "aria-label": label }),
134
+ React.createElement(commonUi.Typography, { variant: "body2", color: "grey.900" }, count)));
135
+ };
136
+
137
+ var ReactionCounterGroup = function (props) {
138
+ var children = props.children;
139
+ return (React.createElement(commonUi.Box, { display: "flex", gridGap: 16 }, children));
140
+ };
141
+
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;
146
+ 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" })));
149
+ };
150
+
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 ({
173
+ root: {
174
+ color: theme.palette.text.primary,
175
+ borderColor: theme.palette.text.primary,
176
+ border: '1.5px solid',
177
+ background: 'none',
178
+ height: '24px',
179
+ lineHeight: 1.5,
180
+ position: 'static',
181
+ width: '24px',
182
+ },
183
+ text: {
184
+ lineHeight: 1.5,
185
+ },
186
+ }); });
187
+
188
+ var ItemTag = React.forwardRef(function (props, ref) {
189
+ var alt = props.alt, children = props.children;
190
+ var classes = useItemTagStyles();
191
+ return (React.createElement(core.Avatar, { ref: ref, alt: alt, classes: { root: classes.root } },
192
+ React.createElement(commonUi.Typography, { variant: "caption", className: classes.text }, children)));
193
+ });
194
+ ItemTag.displayName = 'ItemTag';
195
+
196
+ var ItemTagGroup = function (props) {
197
+ var children = props.children;
198
+ return (React.createElement(core.Box, { display: "flex", gridGap: 6, ml: 1, flexWrap: "wrap" }, children));
199
+ };
200
+
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)); })));
204
+ };
205
+
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 (props) {
322
+ var variant = props.variant, label = props.label, _a = props.size, size = _a === void 0 ? 'md' : _a, _b = props.color, color = _b === void 0 ? 'default' : _b;
323
+ var classes = useStatusTagStyles(props);
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.defaultProps = {
328
+ color: 'default',
329
+ error: false,
330
+ };
331
+ StatusTag.displayName = 'StatusTag';
332
+
333
+ var MenuItem = React.forwardRef(function (props, ref) {
334
+ 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"]);
335
+ var classes = useMenuItemStyles(props);
336
+ var handleClick = function (event) {
337
+ onClick(id, event);
338
+ };
339
+ return (React.createElement(core.Card, tslib.__assign({ className: classNames(classes.card, className), ref: ref, elevation: 0, "data-component-type": "menu-item" }, restProps),
340
+ React.createElement(core.CardActionArea, { className: classes.cardActionArea, onClick: handleClick, disabled: loading, "aria-label": ariaLabel },
341
+ React.createElement(MenuItemInfo, null,
342
+ isFeatured && React.createElement(StatusTag, { color: "highlight", label: "Featured", variant: "filled", size: "sm" }),
343
+ React.createElement(core.Box, { display: "flex", gridGap: 8, alignItems: "center" },
344
+ React.createElement(core.Typography, { component: "h2", className: classes.cardTitle },
345
+ loading ? React.createElement(lab.Skeleton, null) : title,
346
+ isOutOfStock && (React.createElement("span", { className: classes.outOfStockTag },
347
+ React.createElement(StatusTag, { color: "warning", label: "Out of stock", variant: "outlined", size: "sm" }))))),
348
+ React.createElement(core.Typography, { className: classes.cardDescription, paragraph: true }, loading ? React.createElement(lab.Skeleton, null) : description),
349
+ loading ? (React.createElement(lab.Skeleton, null,
350
+ React.createElement(MenuItemReactions, { likeCount: likeCount, reviewCount: reviewCount }))) : (React.createElement(MenuItemReactions, { likeCount: likeCount, reviewCount: reviewCount })),
351
+ loading ? (React.createElement(lab.Skeleton, { style: { flexGrow: 1 }, width: 100, height: 48 })) : (React.createElement(core.Box, { display: "flex", justifyContent: "space-between", alignItems: "end", flexGrow: 1 },
352
+ React.createElement(MenuItemPrice, { price: price, available: available }),
353
+ React.createElement(MenuItemTags, { itemTags: itemTags })))),
354
+ loading ? React.createElement(lab.Skeleton, { height: 100, width: 100 }) : React.createElement(MenuItemImg, { image: image }))));
355
+ });
356
+ MenuItem.displayName = 'MenuItem';
357
+
358
+ var useDishCheckoutCardStyles = core.makeStyles(function (theme) { return ({
359
+ root: {
360
+ '&:first-of-type': {
361
+ paddingTop: 0,
362
+ },
363
+ '&:last-of-type': {
364
+ paddingBottom: 0,
365
+ borderBottom: 'none',
366
+ },
367
+ color: theme.palette.grey[900],
368
+ padding: theme.spacing(2, 0),
369
+ display: 'flex',
370
+ flexDirection: 'column',
371
+ width: '100%',
372
+ gridGap: theme.spacing(2),
373
+ borderBottom: function (_a) {
374
+ var borderBottom = _a.borderBottom;
375
+ return (borderBottom ? '1px solid #E0E0E0' : 'none');
376
+ },
377
+ },
378
+ deleteButton: {
379
+ color: theme.palette.info.main,
380
+ },
381
+ editButton: {
382
+ color: theme.palette.info.main,
383
+ },
384
+ img: {
385
+ objectFit: 'cover',
386
+ borderRadius: theme.spacing(1),
387
+ flexBasis: 'auto',
388
+ flexShrink: 0,
389
+ height: theme.spacing(7),
390
+ marginRight: theme.spacing(1),
391
+ overflow: 'hidden',
392
+ width: theme.spacing(7),
393
+ },
394
+ name: {
395
+ fontSize: 16,
396
+ fontWeight: 500,
397
+ lineHeight: '24px',
398
+ },
399
+ price: {
400
+ fontSize: '18px',
401
+ },
402
+ select: {
403
+ paddingLeft: 'unset',
404
+ borderRadius: '25px',
405
+ '& fieldset': {
406
+ borderColor: theme.palette.grey[700],
407
+ },
408
+ '&.Mui-focused .MuiOutlinedInput-notchedOutline': {
409
+ borderColor: theme.palette.grey[700],
410
+ borderWidth: '1px',
411
+ },
412
+ '& .MuiSelect-root': {
413
+ padding: theme.spacing(1, 1.5, 1, 4.5),
414
+ zIndex: 10,
415
+ textAlign: 'right',
416
+ },
417
+ '& .MuiInputAdornment-positionStart': {
418
+ position: 'absolute',
419
+ left: theme.spacing(1.5),
420
+ },
421
+ '& .MuiSelect-iconOutlined': {
422
+ display: 'none',
423
+ },
424
+ },
425
+ selectPaper: {
426
+ maxHeight: theme.spacing(37),
427
+ },
428
+ ul: {
429
+ margin: 0,
430
+ paddingLeft: theme.spacing(3),
431
+ },
432
+ warning: {
433
+ color: theme.palette.error.main,
434
+ display: 'flex',
435
+ gridGap: theme.spacing(0.825),
436
+ },
437
+ }); });
438
+
439
+ var OrderingAppContext = React.createContext(null);
440
+ var useOrderingAppContext = function () {
441
+ var context = React.useContext(OrderingAppContext);
442
+ if (!context) {
443
+ throw new Error('useOrderingAppContext has to be used within <OrderingAppContext.Provider>');
444
+ }
445
+ return context;
446
+ };
447
+ var OrderingAppContextProvider = function (props) {
448
+ var context = React.useState(props.defaultContext);
449
+ return React.createElement(OrderingAppContext.Provider, { value: context }, props.children);
450
+ };
451
+
452
+ var DishCheckoutCard = function (props) {
453
+ var _a;
454
+ 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;
455
+ var src = image.src;
456
+ var classes = useDishCheckoutCardStyles(props);
457
+ var appContext = useOrderingAppContext()[0];
458
+ var _c = React.useState(false), open = _c[0], setOpen = _c[1];
459
+ var formattedPrice = typeof price === 'number' ? "" + ((_a = appContext.currencySymbol) !== null && _a !== void 0 ? _a : '') + price.toFixed(2) : price;
460
+ var handleQuantityChange = function (event) {
461
+ return onQuantityChange(id, parseInt(event.target.value, 10));
462
+ };
463
+ var labelString = function (label) {
464
+ return label.replace(/[^a-zA-Z\s]/g, '').toLowerCase();
465
+ };
466
+ var formatModifiers = function (groups, nested) {
467
+ if (nested === void 0) { nested = false; }
468
+ return groups.map(function (group) {
469
+ // Get all selected modifiers for this group
470
+ var modifiers = group.selectedModifiers
471
+ .map(function (modifier) {
472
+ return modifier.quantity > 1 ? modifier.modifierName + " \u00D7 " + modifier.quantity : modifier.modifierName;
473
+ })
474
+ .join(', ');
475
+ // Render nested groups recursively
476
+ var nestedGroups = group.selectedModifiers.flatMap(function (modifier) {
477
+ var _a;
478
+ 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
479
+ ? formatModifiers(modifier.selectedModifierGroups, true)
480
+ : [];
481
+ });
482
+ // For top-level groups, we render without the list
483
+ if (!nested) {
484
+ return (React.createElement(commonUi.Typography, { key: group.id, variant: "body2" },
485
+ group.menuItemModifierGroupName,
486
+ ": ",
487
+ modifiers,
488
+ (nestedGroups === null || nestedGroups === void 0 ? void 0 : nestedGroups.length) > 0 && React.createElement("ul", { className: classes.ul }, nestedGroups)));
489
+ }
490
+ // For nested groups, we use list items
491
+ return (React.createElement("li", { key: group.id, className: classes.li },
492
+ React.createElement(commonUi.Typography, { variant: "body2" },
493
+ group.menuItemModifierGroupName,
494
+ ": ",
495
+ modifiers,
496
+ nestedGroups && nestedGroups.length > 0 && React.createElement("ul", { className: classes.ul }, nestedGroups))));
497
+ });
498
+ };
499
+ return (React.createElement(commonUi.Box, { className: classes.root },
500
+ React.createElement(commonUi.Box, { display: "flex", gridGap: 3 },
501
+ src && React.createElement("img", { src: src, alt: "", className: classes.img }),
502
+ React.createElement(commonUi.Box, { flexGrow: 1 },
503
+ React.createElement(commonUi.Typography, { variant: "h2", className: classes.name }, name),
504
+ modifierGroups && formatModifiers(modifierGroups),
505
+ specialInstructions && React.createElement(commonUi.Typography, { variant: "body2" },
506
+ "\"",
507
+ specialInstructions,
508
+ "\"")),
509
+ React.createElement(commonUi.Box, { display: "flex", gridGap: 1, height: "100%", alignItems: "center" },
510
+ React.createElement(Button, { "aria-label": messages.ariaEdit, disabled: disabled, className: classes.editButton, variant: "text", onClick: onEdit }, messages.edit),
511
+ React.createElement(commonUi.IconButton, { "aria-label": messages.ariaDelete, disabled: disabled, onClick: onDelete, classes: { root: classes.deleteButton } },
512
+ React.createElement(commonUi.Icon, { icon: webIcons.Trash, size: "large" })))),
513
+ React.createElement(commonUi.Box, { display: "flex", gridGap: 16, alignItems: "center" },
514
+ React.createElement(core.FormControl, { variant: "outlined", hiddenLabel: true },
515
+ 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" },
516
+ React.createElement(commonUi.Icon, { icon: open ? webIcons.ChevronUp : webIcons.ChevronDown, size: "large" })), inputProps: { shrink: false }, MenuProps: {
517
+ disablePortal: true,
518
+ anchorOrigin: {
519
+ vertical: 'bottom',
520
+ horizontal: 'left',
521
+ },
522
+ transformOrigin: {
523
+ vertical: 'top',
524
+ horizontal: 'left',
525
+ },
526
+ getContentAnchorEl: null,
527
+ classes: { paper: classes.selectPaper },
528
+ }, 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)); }))),
529
+ React.createElement(commonUi.Typography, { className: classes.price }, formattedPrice)),
530
+ warningMessage && (React.createElement(commonUi.Box, { className: classes.warning },
531
+ React.createElement(commonUi.Box, { paddingTop: 0.25 },
532
+ React.createElement(commonUi.Icon, { icon: webIcons.Warning, size: "medium" })),
533
+ React.createElement(commonUi.Typography, { variant: "body2" }, warningMessage)))));
534
+ };
535
+
536
+ var DishDetailsReview = React.forwardRef(function (props) {
537
+ var userName = props.userName, userAvatarUrl = props.userAvatarUrl, content = props.content, createdAgo = props.createdAgo, alt = props.alt;
538
+ return (React.createElement(commonUi.Box, { display: "flex" },
539
+ React.createElement(commonUi.Box, { mr: 1 },
540
+ React.createElement(commonUi.Avatar, { size: "small", src: userAvatarUrl, alt: alt })),
541
+ React.createElement(commonUi.Box, { width: "100%" },
542
+ React.createElement(commonUi.Box, { display: "flex", justifyContent: "space-between", mb: 1 },
543
+ React.createElement(commonUi.Typography, { variant: "body1", variantMapping: { body1: 'h3' }, color: "grey.600", style: { display: 'flex', alignItems: 'center' } }, userName),
544
+ React.createElement(commonUi.Typography, { color: "grey.600", variant: "subtitle1", style: { display: 'flex', alignItems: 'center' } }, createdAgo)),
545
+ React.createElement(commonUi.Typography, { color: "grey.900", weight: "regular" }, content))));
546
+ });
547
+ DishDetailsReview.displayName = 'DishDetailsReview';
548
+
549
+ var useDishModifierCardStyles = core.makeStyles(function (theme) { return ({
550
+ root: {
551
+ borderRadius: '8px',
552
+ border: '1px solid var(--surfaces-card-stroke, #E0E0E0)',
553
+ display: 'flex',
554
+ flexDirection: 'column',
555
+ padding: theme.spacing(2.5),
556
+ color: theme.palette.grey[900] + " !important",
557
+ },
558
+ error: {
559
+ color: theme.palette.error.main,
560
+ },
561
+ helperText: {
562
+ color: theme.palette.text.primary,
563
+ },
564
+ name: {
565
+ fontSize: theme.spacing(2.25),
566
+ marginBottom: theme.spacing(2),
567
+ },
568
+ }); });
569
+ var useRadioModifierFormStyles = core.makeStyles(function (theme) { return ({
570
+ label: {
571
+ alignItems: 'center',
572
+ display: 'flex',
573
+ justifyContent: 'space-between',
574
+ },
575
+ radio: {
576
+ fontSize: theme.spacing(2),
577
+ padding: 'unset',
578
+ marginRight: theme.spacing(-0.25),
579
+ '&.Mui-checked': {
580
+ color: theme.palette.info.main,
581
+ },
582
+ },
583
+ hideRadio: {
584
+ display: 'none',
585
+ },
586
+ root: {
587
+ justifyContent: 'space-between',
588
+ margin: 0,
589
+ width: 'fill-available',
590
+ '& > :last-child': {
591
+ flex: 1,
592
+ },
593
+ },
594
+ }); });
595
+ var useCheckboxModifierFormStyles = core.makeStyles(function (theme) { return ({
596
+ label: {
597
+ alignItems: 'center',
598
+ display: 'flex',
599
+ justifyContent: 'space-between',
600
+ },
601
+ checkbox: {
602
+ color: '#616161',
603
+ fontSize: theme.spacing(2),
604
+ marginRight: theme.spacing(-0.25),
605
+ padding: 'unset',
606
+ '&.Mui-checked': {
607
+ color: theme.palette.info.main,
608
+ },
609
+ },
610
+ hideCheckbox: {
611
+ display: 'none',
612
+ },
613
+ root: {
614
+ margin: 0,
615
+ width: 'fill-available',
616
+ '& > :last-child': {
617
+ flex: 1,
618
+ },
619
+ },
620
+ }); });
621
+ var useLabelStyles = core.makeStyles(function (theme) { return ({
622
+ label: {
623
+ margin: theme.spacing(0.5, 0),
624
+ },
625
+ disabled: {
626
+ color: theme.palette.grey[500],
627
+ },
628
+ price: {
629
+ color: theme.palette.grey[700],
630
+ },
631
+ }); });
632
+ var useOptionsStyles = core.makeStyles(function (theme) { return ({
633
+ options: {
634
+ color: theme.palette.info.main,
635
+ marginBottom: theme.spacing(1.5),
636
+ padding: 0,
637
+ },
638
+ }); });
639
+
640
+ var useQuantityPickerStyles = core.makeStyles(function (theme) { return ({
641
+ root: {
642
+ height: theme.spacing(7),
643
+ backgroundColor: 'none',
644
+ },
645
+ }); });
646
+ var useQuantityInputStyles = core.makeStyles(function (theme) { return ({
647
+ root: {
648
+ height: '100%',
649
+ width: 'min-content',
650
+ borderRadius: theme.spacing(12.5),
651
+ background: function (props) { return (props.variation === 'modifierCount' ? 'unset' : theme.palette.grey[100]); },
652
+ },
653
+ input: {
654
+ '&::-webkit-clear-button, &::-webkit-outer-spin-button, &::-webkit-inner-spin-button': {
655
+ display: 'none',
656
+ },
657
+ '-moz-appearance': 'textfield',
658
+ fontWeight: 600,
659
+ padding: 0,
660
+ textAlign: 'center',
661
+ zIndex: function (props) { return (props.value === 0 && props.variation === 'modifierCount' ? -1 : 1); },
662
+ backgroundColor: function (props) { return (props.variation === 'modifierCount' ? theme.palette.grey[100] : 'unset'); },
663
+ alignSelf: function (props) { return (props.variation === 'modifierCount' ? 'stretch' : 'unset'); },
664
+ height: function (props) { return (props.variation === 'modifierCount' ? 'auto' : 'unset'); },
665
+ minWidth: function (props) { return (props.variation === 'modifierCount' ? theme.spacing(5) : theme.spacing(2.75)); },
666
+ borderRadius: function (props) { return (props.variation === 'modifierCount' ? theme.spacing(1) : 'unset'); },
667
+ margin: function (props) { return (props.variation === 'modifierCount' ? theme.spacing(0.5, 0) : 0); },
668
+ },
669
+ }); });
670
+ var useStartAdornmentStyles = core.makeStyles(function (theme) { return ({
671
+ root: {
672
+ color: theme.palette.text.primary,
673
+ zIndex: function (props) { return (props.value === 0 && props.variation === 'modifierCount' ? -1 : 1); },
674
+ },
675
+ }); });
676
+ var useEndAdornmentStyles = core.makeStyles(function (theme) { return ({
677
+ root: {
678
+ color: theme.palette.text.primary,
679
+ },
680
+ }); });
681
+
682
+ var QuantityPicker = function (props) {
683
+ var value = props.value, onChange = props.onChange, disabled = props.disabled, disableIncrement = props.disableIncrement, preventManualChange = props.preventManualChange, variation = props.variation, name = props.name;
684
+ var fieldClasses = useQuantityPickerStyles();
685
+ var inputClasses = useQuantityInputStyles(props);
686
+ var startAdornmentClasses = useStartAdornmentStyles(props);
687
+ var endAdornmentClasses = useEndAdornmentStyles(props);
688
+ var onIncrement = function (event) {
689
+ onChange(event, { quantity: value + 1, reason: 'increment' });
690
+ };
691
+ var onDecrement = function (event) {
692
+ onChange(event, { quantity: value - 1, reason: 'decrement' });
693
+ };
694
+ var handleChange = function (event) {
695
+ if (preventManualChange) {
696
+ event.preventDefault();
697
+ }
698
+ if (!preventManualChange) {
699
+ onChange(event, { quantity: parseInt(event.target.value), reason: 'change' });
700
+ }
701
+ };
702
+ return (React.createElement(core.TextField, { classes: fieldClasses, type: "number", variant: variation === 'itemCount' ? 'filled' : 'standard', value: value, disabled: disabled, onChange: handleChange, InputProps: {
703
+ classes: inputClasses,
704
+ disableUnderline: true,
705
+ endAdornment: (React.createElement(commonUi.IconButton, { "aria-label": "increase quantity " + name, className: endAdornmentClasses.root, color: "default", onClick: onIncrement, disabled: disabled || disableIncrement },
706
+ React.createElement(commonUi.Icon, { icon: webIcons.PlusCircle }))),
707
+ startAdornment: (React.createElement(commonUi.IconButton, { "aria-label": "decrease quantity " + name, className: startAdornmentClasses.root, color: "default", onClick: onDecrement, disabled: disabled || value <= 0 },
708
+ React.createElement(commonUi.Icon, { icon: webIcons.MinusCircle }))),
709
+ } }));
710
+ };
711
+
712
+ var Label = function (props) {
713
+ var _a, _b, _c;
714
+ var name = props.name, price = props.price, _d = props.disabled, disabled = _d === void 0 ? false : _d;
715
+ var classes = useLabelStyles();
716
+ return (React.createElement(core.Box, { display: "flex", flexDirection: "column", className: classes.label },
717
+ React.createElement(core.Box, { display: "flex", alignItems: "center", gridGap: 8 },
718
+ React.createElement(core.Typography, { className: classNames((_a = {}, _a[classes.disabled] = disabled, _a)) }, name)),
719
+ price && (React.createElement(core.Typography, { className: classNames((_b = {}, _b[classes.price] = !disabled, _b), (_c = {}, _c[classes.disabled] = disabled, _c)) },
720
+ "+ ",
721
+ price))));
722
+ };
723
+ var Options = function (props) {
724
+ var handleOptionsClick = props.handleOptionsClick;
725
+ var classes = useOptionsStyles();
726
+ return (React.createElement(core.Box, null,
727
+ React.createElement(Button, { variation: "none", className: classes.options, onClick: handleOptionsClick },
728
+ React.createElement(core.Typography, { variant: "caption" }, "OPTIONS"),
729
+ React.createElement(commonUi.Icon, { icon: webIcons.ChevronRight }))));
730
+ };
731
+ var SingleSelectModifierControl = function (props) {
732
+ 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;
733
+ var radioClasses = useRadioModifierFormStyles();
734
+ var makeHandleChange = function (modifier) { return function (e) {
735
+ var isModifierInValue = Boolean(value.find(function (v) { return v.modifierId === modifier.id; }));
736
+ if (!isModifierInValue && modifier.hasModifiers) {
737
+ handleOptionsClick(modifier.id);
738
+ }
739
+ onChange({
740
+ isRadio: true,
741
+ modifierId: Number(e.target.value),
742
+ groupId: modifier.parentModifierGroupId,
743
+ parentModifierId: modifier.parentModifierGroupItemId,
744
+ price: modifier.price || 0,
745
+ quantity: 1,
746
+ });
747
+ }; };
748
+ return (React.createElement(core.FormControl, { fullWidth: true },
749
+ React.createElement(core.RadioGroup, { "aria-label": name }, modifiers.map(function (modifier) {
750
+ var _a;
751
+ var _b;
752
+ return (React.createElement(core.Box, { key: modifier.id },
753
+ 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 = {},
754
+ _a[radioClasses.hideRadio] = modifier.outOfStock,
755
+ _a[radioClasses.radio] = !modifier.outOfStock,
756
+ _a)), disabled: isOutOfStock || modifier.outOfStock, onChange: makeHandleChange(modifier), required: isRequired }), label: React.createElement(core.Box, { className: radioClasses.label },
757
+ React.createElement(Label, { name: modifier.name, price: aggregatePrice[modifier.id] || modifier.formattedPrice, disabled: isOutOfStock || modifier.outOfStock }),
758
+ modifier.outOfStock && (React.createElement(core.Box, { minWidth: "90px", marginLeft: 2 },
759
+ React.createElement(StatusTag, { color: "warning", label: "Out of stock", variant: "outlined", size: "md" })))), labelPlacement: "start" }),
760
+ modifier.hasModifiers && !modifier.outOfStock && (React.createElement(Options, { handleOptionsClick: function () { return handleOptionsClick(modifier.id); } }))));
761
+ }))));
762
+ };
763
+ var MultipleSelectControl = function (props) {
764
+ var modifiers = props.modifiers, value = props.value, isOutOfStock = props.isOutOfStock, onChange = props.onChange, disableNewSelections = props.disableNewSelections, handleOptionsClick = props.handleOptionsClick, aggregatePrice = props.aggregatePrice;
765
+ var classes = useCheckboxModifierFormStyles();
766
+ var makeHandleChange = function (modifier) { return function () {
767
+ var isModifierInValue = Boolean(value.find(function (v) { return v.modifierId === modifier.id; }));
768
+ if (!isModifierInValue && modifier.hasModifiers) {
769
+ handleOptionsClick(modifier.id);
770
+ }
771
+ onChange({
772
+ isRadio: false,
773
+ modifierId: modifier.id,
774
+ groupId: modifier.parentModifierGroupId,
775
+ parentModifierId: modifier.parentModifierGroupItemId,
776
+ price: modifier.price || 0,
777
+ quantity: isModifierInValue ? 0 : 1,
778
+ });
779
+ }; };
780
+ return (React.createElement(core.FormControl, { fullWidth: true },
781
+ React.createElement(core.FormGroup, null, modifiers.map(function (modifier) {
782
+ var _a, _b;
783
+ return (React.createElement(core.Box, { key: modifier.id },
784
+ 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 },
785
+ React.createElement(Label, { name: modifier.name, price: aggregatePrice[modifier.id] || modifier.formattedPrice, disabled: isOutOfStock || modifier.outOfStock }),
786
+ modifier.outOfStock && (React.createElement(core.Box, { minWidth: "90px", marginLeft: 2 },
787
+ React.createElement(StatusTag, { color: "warning", label: "Out of stock", variant: "outlined", size: "md" })))), labelPlacement: "start" }),
788
+ modifier.hasModifiers && !modifier.outOfStock && (React.createElement(Options, { handleOptionsClick: function () { return handleOptionsClick(modifier.id); } }))));
789
+ }))));
790
+ };
791
+ var MultipleQuantitySelectControl = function (props) {
792
+ var modifiers = props.modifiers, isOutOfStock = props.isOutOfStock, onChange = props.onChange, disableNewSelections = props.disableNewSelections, handleOptionsClick = props.handleOptionsClick, selectionQuantity = props.selectionQuantity;
793
+ var makeHandleChange = function (modifier) { return function (_e, customEvent) {
794
+ onChange({
795
+ isRadio: false,
796
+ modifierId: modifier.id,
797
+ groupId: modifier.parentModifierGroupId,
798
+ parentModifierId: modifier.parentModifierGroupItemId,
799
+ price: modifier.price || 0,
800
+ quantity: customEvent.quantity,
801
+ });
802
+ }; };
803
+ return (React.createElement(core.FormControl, { fullWidth: true },
804
+ 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" },
805
+ React.createElement(core.Box, { display: "flex", alignItems: "center", justifyContent: "space-between", width: "100%" },
806
+ React.createElement(Label, { name: modifier.name, price: modifier.formattedPrice, disabled: isOutOfStock || modifier.outOfStock }),
807
+ modifier.outOfStock && (React.createElement(core.Box, { minWidth: "90px", marginLeft: 2 },
808
+ React.createElement(StatusTag, { color: "warning", label: "Out of stock", variant: "outlined", size: "md" }))),
809
+ !modifier.outOfStock && (React.createElement(QuantityPicker, { variation: "modifierCount", value: modifier.quantity, disableIncrement: disableNewSelections, preventManualChange: true, onChange: makeHandleChange(modifier), disabled: isOutOfStock || modifier.outOfStock, name: modifier.name }))),
810
+ React.createElement(core.Box, { display: "flex", alignItems: "flex-start", gridGap: 4 },
811
+ modifier.hasModifiers && !modifier.outOfStock && (React.createElement(Options, { handleOptionsClick: function () { return handleOptionsClick(modifier.id); } })),
812
+ selectionQuantity[modifier.id] &&
813
+ selectionQuantity[modifier.id].requiredSelectionCount > 0 &&
814
+ selectionQuantity[modifier.id].requiredSelectionCount !==
815
+ selectionQuantity[modifier.id].currentSelectionCount && (React.createElement(core.Typography, { variant: "caption", color: "error" },
816
+ selectionQuantity[modifier.id].currentSelectionCount,
817
+ "/",
818
+ selectionQuantity[modifier.id].requiredSelectionCount,
819
+ " selected"))))); }))));
820
+ };
821
+ var ModifierControls = function (props) {
822
+ switch (props.type) {
823
+ case 'singleSelect':
824
+ return React.createElement(SingleSelectModifierControl, tslib.__assign({}, props));
825
+ case 'multipleSelect':
826
+ return React.createElement(MultipleSelectControl, tslib.__assign({}, props));
827
+ case 'multipleQuantitySelect':
828
+ return React.createElement(MultipleQuantitySelectControl, tslib.__assign({}, props));
829
+ default:
830
+ return null;
831
+ }
832
+ };
833
+
834
+ var getStatusTagProps = function (props) {
835
+ var messages = props.messages, error = props.error, isRequired = props.isRequired, isOutOfStock = props.isOutOfStock;
836
+ var optionalText = messages.optionalText, outOfStockText = messages.outOfStockText, requiredText = messages.requiredText;
837
+ var color = 'default';
838
+ switch (true) {
839
+ case error:
840
+ color = 'error';
841
+ break;
842
+ case isOutOfStock:
843
+ color = 'warning';
844
+ break;
845
+ }
846
+ var label = optionalText;
847
+ switch (true) {
848
+ case isOutOfStock:
849
+ label = outOfStockText;
850
+ break;
851
+ case isRequired:
852
+ label = requiredText;
853
+ break;
854
+ }
855
+ var variant = isRequired || isOutOfStock ? 'outlined' : 'filled';
856
+ return { color: color, label: label, variant: variant };
857
+ };
858
+ var DishModifierCard = function (props) {
859
+ var _a;
860
+ 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;
861
+ var classes = useDishModifierCardStyles();
862
+ return (React.createElement(commonUi.Box, { className: classes.root },
863
+ React.createElement(commonUi.Box, { display: "flex", justifyContent: "space-between", width: "100%", alignItems: "center", height: "fit-content", marginBottom: 2 },
864
+ React.createElement(StatusTag, tslib.__assign({}, getStatusTagProps(props))),
865
+ !isOutOfStock && (React.createElement(commonUi.Typography, { variant: "subtitle1", className: classNames((_a = {}, _a[classes.error] = error, _a[classes.helperText] = !error, _a)) }, messages.helperText))),
866
+ React.createElement(commonUi.Typography, { className: classes.name }, name),
867
+ React.createElement(commonUi.Box, null,
868
+ 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 }))));
869
+ };
870
+ DishModifierCard.displayName = 'DishModifierCard';
871
+
872
+ var useLocationCardStyles = core.makeStyles(function (theme) {
873
+ var _a = theme.palette, info = _a.info, grey = _a.grey, secondary = _a.secondary, background = _a.background, spacing = theme.spacing;
874
+ var selectedBackgroundColor = core.lighten(info.light, 0.9);
875
+ var backgroundColor = background.default;
876
+ return {
877
+ root: {
878
+ border: function (_a) {
879
+ var selected = _a.selected;
880
+ return selected ? "1px solid " + info.light : '1px solid var(--surfaces-card-stroke, #E0E0E0)';
881
+ },
882
+ display: 'flex',
883
+ borderRadius: '10px',
884
+ color: grey[900],
885
+ backgroundColor: function (_a) {
886
+ var selected = _a.selected, outOfRange = _a.outOfRange;
887
+ return selected ? selectedBackgroundColor : outOfRange ? grey[200] : backgroundColor;
888
+ },
889
+ },
890
+ actionAreaFocusHighlight: {
891
+ '&:disabled': {
892
+ backgroundColor: 'inherit',
893
+ },
894
+ },
895
+ availability: {
896
+ color: secondary.light,
897
+ display: 'grid',
898
+ gridGap: spacing(0.5),
899
+ gridTemplateColumns: 'auto 1fr',
900
+ },
901
+ availabilityMessage: {
902
+ gridColumn: '2 / 3',
903
+ },
904
+ checkIcon: {
905
+ color: info.main,
906
+ },
907
+ content: {
908
+ padding: spacing(3),
909
+ display: 'flex',
910
+ flexDirection: 'column',
911
+ gridGap: spacing(2),
912
+ },
913
+ distance: {
914
+ fontSize: '0.75rem',
915
+ fontWeight: 600,
916
+ },
917
+ locationInfo: {
918
+ display: 'flex',
919
+ flexDirection: 'column',
920
+ gridGap: spacing(0.75),
921
+ },
922
+ name: {
923
+ fontSize: '1.125rem',
924
+ fontWeight: 500,
925
+ },
926
+ greyText: {
927
+ color: grey[800],
928
+ },
929
+ };
930
+ });
931
+
932
+ var LocationCard = function (props) {
933
+ 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"]);
934
+ var classes = useLocationCardStyles(props);
935
+ var anyAvailability = generalAvailability || pickupAvailability || deliveryAvailability;
936
+ var handleClick = function () {
937
+ onClick(value);
938
+ };
939
+ return (React.createElement(core.Card, tslib.__assign({ className: classes.root }, muiProps),
940
+ React.createElement(core.CardActionArea, tslib.__assign({ onClick: handleClick, role: "radio", "aria-checked": selected, disabled: outOfRange || Boolean(anyAvailability), classes: { focusHighlight: classes.actionAreaFocusHighlight } }, CardActionAreaProps),
941
+ React.createElement(core.CardContent, { className: classes.content },
942
+ React.createElement(core.Box, { className: classes.locationInfo },
943
+ React.createElement(core.Box, { display: "flex", justifyContent: "space-between" },
944
+ React.createElement(core.Typography, { className: classes.name }, name),
945
+ selected && React.createElement(commonUi.Icon, { icon: webIcons.Check, size: "extra-large", className: classes.checkIcon })),
946
+ address && (React.createElement(core.Typography, { className: classes.greyText, variant: "body2" }, address)),
947
+ !outOfRange && React.createElement(core.Typography, { className: classes.distance }, distance)),
948
+ anyAvailability && (React.createElement(core.Box, { className: classes.availability },
949
+ React.createElement(commonUi.Icon, { icon: webIcons.Clock, size: "large" }),
950
+ generalAvailability && (React.createElement(core.Typography, { className: classes.availabilityMessage, variant: "body2" }, generalAvailability)),
951
+ pickupAvailability && (React.createElement(core.Typography, { className: classes.availabilityMessage, variant: "body2" }, pickupAvailability)),
952
+ deliveryAvailability && (React.createElement(core.Typography, { className: classes.availabilityMessage, variant: "body2" }, deliveryAvailability)))),
953
+ outOfRange && (React.createElement(core.Box, { display: "flex", gridGap: 8, alignItems: "center", color: "grey.800" },
954
+ React.createElement(commonUi.Icon, { icon: webIcons.Info, size: "large", color: "inherit" }),
955
+ React.createElement(core.Typography, { variant: "body2", className: classes.greyText }, outOfRangeMessage)))))));
956
+ };
957
+
958
+ var useMenuDropdownStyles = core.makeStyles(function (theme) {
959
+ var _a, _b;
960
+ return ({
961
+ formControl: (_a = {},
962
+ _a[theme.breakpoints.up('lg')] = {
963
+ alignSelf: 'start',
964
+ },
965
+ _a),
966
+ menuItem: {
967
+ alignItems: 'center',
968
+ display: 'flex',
969
+ gridGap: theme.spacing(1),
970
+ },
971
+ select: {
972
+ '& .MuiSelect-root': (_b = {
973
+ '&:focus': {
974
+ outline: '2px solid #0076CB',
975
+ borderRadius: 8,
976
+ },
977
+ color: '#212121',
978
+ padding: theme.spacing(1, 0.5, 1, 0.5),
979
+ zIndex: 10
980
+ },
981
+ _b[theme.breakpoints.down('md')] = {
982
+ width: 0,
983
+ minWidth: 0,
984
+ padding: 0,
985
+ },
986
+ _b),
987
+ },
988
+ unavailable: {
989
+ color: theme.palette.grey[700],
990
+ },
991
+ });
992
+ });
993
+
994
+ var MenuDropdown = function (props) {
995
+ var menuOptions = props.menuOptions, onSelect = props.onSelect, selectedOptionId = props.selectedOptionId;
996
+ var classes = useMenuDropdownStyles(props);
997
+ var _a = React.useState(false), open = _a[0], setOpen = _a[1];
998
+ var isMobile = core.useMediaQuery(function (_a) {
999
+ var breakpoints = _a.breakpoints;
1000
+ return breakpoints.down('md');
1001
+ });
1002
+ return (React.createElement(core.FormControl, { hiddenLabel: true, classes: { root: classes.formControl } },
1003
+ React.createElement("label", { id: "menu-dropdown-label", className: "sr-only" }, props.label),
1004
+ 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); } },
1005
+ 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); } },
1006
+ React.createElement(commonUi.Icon, { color: "#0076CB", icon: open ? webIcons.ChevronUp : webIcons.ChevronDown, size: "large" }))); }, MenuProps: {
1007
+ disablePortal: true,
1008
+ anchorOrigin: {
1009
+ vertical: 'bottom',
1010
+ horizontal: 'left',
1011
+ },
1012
+ transformOrigin: {
1013
+ vertical: 'top',
1014
+ horizontal: 'left',
1015
+ },
1016
+ getContentAnchorEl: null,
1017
+ }, 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 : '') },
1018
+ option.name,
1019
+ option.isUnavailable && React.createElement(commonUi.Icon, { icon: webIcons.Clock, size: "large" }))); }))));
1020
+ };
1021
+
1022
+ var _path;
1023
+
1024
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
1025
+
1026
+ function SvgLeafIcon(props) {
1027
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends({
1028
+ viewBox: "0 0 16 18",
1029
+ fill: "none",
1030
+ xmlns: "http://www.w3.org/2000/svg",
1031
+ width: true,
1032
+ height: true
1033
+ }, props), _path || (_path = /*#__PURE__*/React__namespace.createElement("path", {
1034
+ d: "M6.857 6.823c.065-.081-.18.115-.262.196A13.587 13.587 0 004.716 8.98c-.604.768-1.143 1.683-1.585 2.614-.44.931-.718 1.928-.898 2.86-.082.473-.13.914-.18 1.355-.016.36-.033.752-.033 1.079a.164.164 0 01-.163.163H.191c-.098 0-.164-.082-.164-.18.05-.424.147-.915.229-1.34.114-.473.245-.98.408-1.486.213-.621.474-1.258.768-1.863.033-.065.017-.13-.032-.18A5.05 5.05 0 01.109 7.477c.033-.163.082-.327.13-.49C1.4 2.804 5.632.207 9.913 1.137c2.254.475 4.1 1.863 5.244 3.677.164.261.31.523.441.8.147.294.278.605.393.932.048.13-.082.261-.213.196a4.846 4.846 0 00-.898-.31c-2.206-.49-4.412.93-4.886 3.169-.555 2.647-3.12 4.362-5.783 3.921-.13-.016-.213-.13-.213-.261-.016-.768.196-3.35 2.86-6.438z",
1035
+ fill: "#00663E"
1036
+ })));
1037
+ }
1038
+
1039
+ var useMenuFilterStyles = core.makeStyles(function (theme) { return ({
1040
+ triggerLabel: {
1041
+ color: theme.palette.info.main,
1042
+ whiteSpace: 'nowrap',
1043
+ },
1044
+ }); });
1045
+
1046
+ var MenuFilter = function (props) {
1047
+ 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;
1048
+ var triggerId = 'menu-filter-trigger';
1049
+ var popoverId = 'menu-filter-popover';
1050
+ var classes = useMenuFilterStyles();
1051
+ var _c = React.useState(null), anchorEl = _c[0], setAnchorEl = _c[1];
1052
+ var open = Boolean(anchorEl);
1053
+ var optionIds = options.map(function (opt) { return opt.id; });
1054
+ var valueIds = value.map(function (val) { return val.id; });
1055
+ var availableIds = optionIds.filter(function (optionId) { return !valueIds.includes(optionId); });
1056
+ var availableFilters = options.filter(function (opt) { return availableIds.includes(opt.id); });
1057
+ var allFiltersSelected = availableFilters.length === 0;
1058
+ var handleChange = function (value, event) {
1059
+ onChange(value, event);
1060
+ setAnchorEl(null);
1061
+ };
1062
+ var handleTriggerClick = function (event) {
1063
+ setAnchorEl(event.currentTarget);
1064
+ };
1065
+ var handleClose = function () {
1066
+ setAnchorEl(null);
1067
+ };
1068
+ var handleClear = function () {
1069
+ onClear();
1070
+ setAnchorEl(null);
1071
+ };
1072
+ if (allFiltersSelected) {
1073
+ return (React.createElement(core.Button, { size: "small", startIcon: React.createElement(commonUi.Icon, { icon: SvgLeafIcon }), classes: { label: classes.triggerLabel }, onClick: handleClear }, noOptionsLabel));
1074
+ }
1075
+ return (React.createElement(React.Fragment, null,
1076
+ 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),
1077
+ React.createElement(core.Menu, { id: popoverId, anchorEl: anchorEl, open: open, onClose: handleClose }, availableFilters.map(function (option, index) {
1078
+ return (React.createElement(core.MenuItem, { key: index, value: option.id, onClick: function (event) { return handleChange(option, event); } },
1079
+ React.createElement(ItemTag, { alt: option.abbr, color: option.color }, option.abbr),
1080
+ React.createElement(core.Box, { ml: 1 }, option.name)));
1081
+ }))));
1082
+ };
1083
+
1084
+ var useSelectableChipStyles = core.makeStyles(function (theme) { return ({
1085
+ root: {
1086
+ border: '2px solid',
1087
+ borderColor: theme.palette.grey[100],
1088
+ borderRadius: '50px',
1089
+ backgroundColor: theme.palette.grey[100],
1090
+ color: theme.palette.grey[900],
1091
+ padding: theme.spacing(1, 2),
1092
+ fontSize: '0.875rem',
1093
+ fontWeight: 400,
1094
+ minWidth: 'unset',
1095
+ minHeight: 'unset',
1096
+ opacity: 'unset',
1097
+ textTransform: 'none',
1098
+ textAlign: 'left',
1099
+ '&::-webkit-scrollbar': {
1100
+ display: 'none',
1101
+ },
1102
+ '&.Mui-selected': {
1103
+ backgroundColor: theme.palette.grey[100],
1104
+ borderColor: '#0A202F',
1105
+ color: theme.palette.grey[900],
1106
+ fontWeight: 400,
1107
+ '&:hover': {
1108
+ background: theme.palette.grey[100],
1109
+ },
1110
+ },
1111
+ },
1112
+ }); });
1113
+
1114
+ var SelectableChip = function (props) {
1115
+ var classes = useSelectableChipStyles(props);
1116
+ return (React.createElement(core.Tab, tslib.__assign({ "data-tab-for-section-id": props.value, classes: {
1117
+ root: classes.root,
1118
+ selected: classes.selected,
1119
+ } }, props)));
1120
+ };
1121
+
1122
+ var useSelectableChipGroupStyles = core.makeStyles(function (_a) {
1123
+ var _b;
1124
+ var breakpoints = _a.breakpoints, spacing = _a.spacing;
1125
+ return ({
1126
+ flexContainer: (_b = {},
1127
+ _b[breakpoints.down('md')] = {
1128
+ padding: spacing(0, 2),
1129
+ },
1130
+ _b[breakpoints.up('lg')] = {
1131
+ alignItems: 'flex-start',
1132
+ flexDirection: 'column',
1133
+ },
1134
+ _b.gridGap = spacing(1.5),
1135
+ _b),
1136
+ });
1137
+ });
1138
+
1139
+ var SelectableChipGroup = function (props) {
1140
+ var children = props.children, muiProps = tslib.__rest(props, ["children"]);
1141
+ var classes = useSelectableChipGroupStyles(props);
1142
+ return (React.createElement(core.Tabs, tslib.__assign({ TabIndicatorProps: {
1143
+ hidden: true,
1144
+ }, variant: "scrollable", scrollButtons: "off", classes: classes }, muiProps), children));
1145
+ };
1146
+
1147
+ var useStyles$4 = core.makeStyles(function (_a) {
1148
+ var spacing = _a.spacing;
1149
+ return ({
1150
+ root: {
1151
+ padding: spacing(0.5, 0),
1152
+ height: 'unset',
1153
+ borderRadius: 4,
1154
+ },
1155
+ label: {
1156
+ paddingLeft: 8,
1157
+ display: 'flex',
1158
+ gridGap: 8,
1159
+ alignItems: 'center',
1160
+ },
1161
+ });
1162
+ });
1163
+ var SelectedMenuFiltersList = function (props) {
1164
+ var filters = props.filters, onChipClick = props.onChipClick;
1165
+ var classes = useStyles$4();
1166
+ 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,
1167
+ React.createElement(ItemTag, { alt: filter.abbr, color: filter.color }, filter.abbr),
1168
+ React.createElement(core.Typography, { variant: "caption" }, filter.name),
1169
+ React.createElement(commonUi.Icon, { icon: webIcons.XCircle, size: "large" })) })); })));
1170
+ };
1171
+
1172
+ var MenuSectionGroup = React.forwardRef(function (props, ref) {
1173
+ var children = props.children, restProps = tslib.__rest(props, ["children"]);
1174
+ 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));
1175
+ });
1176
+ MenuSectionGroup.displayName = 'MenuSectionGroup';
1177
+
1178
+ var useStyles$3 = core.makeStyles(function () { return ({
1179
+ title: {
1180
+ fontWeight: 400,
1181
+ fontSize: 20,
1182
+ lineHeight: '30px',
1183
+ },
1184
+ }); });
1185
+
1186
+ var MenuSection = React.forwardRef(function (props, ref) {
1187
+ var name = props.name, children = props.children, loading = props.loading, restProps = tslib.__rest(props, ["name", "children", "loading"]);
1188
+ var classes = useStyles$3();
1189
+ return (React.createElement(core.Box, tslib.__assign({}, restProps, { ref: ref, component: 'section' }, { "data-component-type": "menu-section", style: { scrollMarginTop: '70px' } }),
1190
+ React.createElement(core.Box, { marginTop: 1, marginBottom: 4 },
1191
+ React.createElement(core.Typography, { component: "h1", className: classes.title }, loading ? React.createElement(lab.Skeleton, null) : name)),
1192
+ children));
1193
+ });
1194
+ MenuSection.displayName = 'MenuSection';
1195
+
1196
+ var useStyles$2 = core.makeStyles(function (_a) {
1197
+ var _b;
1198
+ var breakpoints = _a.breakpoints;
1199
+ return ({
1200
+ main: (_b = {},
1201
+ _b[breakpoints.down('md')] = {
1202
+ gridTemplateColumns: '1fr',
1203
+ },
1204
+ _b[breakpoints.up('lg')] = {
1205
+ gridTemplateColumns: 'repeat(2, minmax(280px, 1fr))',
1206
+ },
1207
+ _b.display = 'grid',
1208
+ _b.gridGap = 32,
1209
+ _b),
1210
+ });
1211
+ });
1212
+
1213
+ var MenuItemGroup = React.forwardRef(function (props, ref) {
1214
+ var classes = useStyles$2();
1215
+ props.children; var className = props.className, restProps = tslib.__rest(props, ["children", "className"]);
1216
+ return (React.createElement(core.Box, tslib.__assign({ className: classNames(classes.main, className) }, { ref: ref }, { "data-component-type": "menu-item-group" }, restProps), props.children));
1217
+ });
1218
+ MenuItemGroup.displayName = 'MenuItemGroup';
1219
+
1220
+ var PageSection = function (props) { return (React.createElement(core.Box, { p: 4, borderBottom: "1px solid #E0E0E0" }, props.children)); };
1221
+
1222
+ var useStyles$1 = core.makeStyles(function () { return ({
1223
+ closeButton: {
1224
+ padding: 0,
1225
+ },
1226
+ }); });
1227
+ var DialogTitle = function (props) {
1228
+ var Icon = props.Icon, title = props.title, titleId = props.titleId, onClose = props.onClose;
1229
+ var classes = useStyles$1();
1230
+ return (React.createElement(core.DialogTitle, null,
1231
+ React.createElement(core.Box, { display: "flex", alignItems: "center", gridGap: 16 },
1232
+ Icon && Icon,
1233
+ React.createElement(core.Typography, { variant: "h1", id: titleId }, title)),
1234
+ onClose && (React.createElement(core.IconButton, { color: "inherit", className: classes.closeButton, "aria-label": "Close dialog", onClick: onClose },
1235
+ React.createElement(webIcons.X, null)))));
1236
+ };
1237
+
1238
+ var DialogSection = function (props) {
1239
+ var edgeToEdge = props.edgeToEdge, borderBottom = props.borderBottom, children = props.children, restProps = tslib.__rest(props, ["edgeToEdge", "borderBottom", "children"]);
1240
+ 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));
1241
+ };
1242
+
1243
+ var Switch = core.withStyles(function (_a) {
1244
+ var palette = _a.palette;
1245
+ return ({
1246
+ checked: {
1247
+ '& $thumb': {
1248
+ backgroundColor: palette.success.main,
1249
+ },
1250
+ '&& + $track': {
1251
+ backgroundColor: palette.success.main,
1252
+ opacity: 0.5,
1253
+ },
1254
+ },
1255
+ switchBase: {
1256
+ color: palette.grey[300],
1257
+ },
1258
+ thumb: {},
1259
+ track: {},
1260
+ });
1261
+ })(core.Switch);
1262
+
1263
+ var Checkbox = core.withStyles(function (_a) {
1264
+ var palette = _a.palette;
1265
+ return ({
1266
+ checked: {},
1267
+ root: {
1268
+ '&$checked': {
1269
+ color: palette.info.main,
1270
+ },
1271
+ },
1272
+ });
1273
+ })(core.Checkbox);
1274
+
1275
+ var Radio = core.withStyles(function (_a) {
1276
+ var palette = _a.palette;
1277
+ return ({
1278
+ checked: {},
1279
+ root: {
1280
+ '&$checked': {
1281
+ color: palette.info.main,
1282
+ },
1283
+ },
1284
+ });
1285
+ })(core.Radio);
1286
+
1287
+ var useStyles = core.makeStyles(function (theme) { return ({
1288
+ root: {
1289
+ '& > div': {
1290
+ padding: 0,
1291
+ '&:last-child': {
1292
+ padding: 0,
1293
+ },
1294
+ },
1295
+ display: 'flex',
1296
+ flexDirection: 'column',
1297
+ alignItems: 'start',
1298
+ gridGap: theme.spacing(1),
1299
+ padding: theme.spacing(2),
1300
+ borderRadius: theme.spacing(2),
1301
+ },
1302
+ button: {
1303
+ color: theme.palette.info.main,
1304
+ },
1305
+ description: {
1306
+ color: theme.palette.grey[700],
1307
+ },
1308
+ header: {
1309
+ color: function (props) {
1310
+ return ({
1311
+ alert: theme.palette.error.main,
1312
+ info: theme.palette.info.main,
1313
+ offer: theme.palette.success.main,
1314
+ }[props.type]);
1315
+ },
1316
+ },
1317
+ headerTitle: {
1318
+ color: function (props) {
1319
+ return ({
1320
+ alert: theme.palette.error.main,
1321
+ info: theme.palette.info.main,
1322
+ offer: theme.palette.success.main,
1323
+ }[props.type]);
1324
+ },
1325
+ fontWeight: 600,
1326
+ },
1327
+ content: {
1328
+ marginLeft: theme.spacing(5),
1329
+ },
1330
+ }); });
1331
+
1332
+ var bannerIconStyles = { color: 'inherit', width: 24, height: 24 };
1333
+ var BannerTypeIcons = {
1334
+ alert: React.createElement(webIcons.Warning, { style: bannerIconStyles }),
1335
+ info: React.createElement(webIcons.Info, { style: bannerIconStyles }),
1336
+ offer: React.createElement(webIcons.DollarSign, { style: bannerIconStyles }),
1337
+ };
1338
+
1339
+ var MenuBanner = function (props) {
1340
+ var show = props.show;
1341
+ var classes = useStyles(props);
1342
+ if (!show)
1343
+ return null;
1344
+ return (React.createElement(core.Card, { classes: { root: classes.root }, variant: "outlined" },
1345
+ React.createElement(core.CardHeader, { avatar: BannerTypeIcons[props.type], title: props.title, titleTypographyProps: { variant: 'body1' }, classes: { root: classes.header, title: classes.headerTitle } }),
1346
+ React.createElement(MenuBannerDescription, tslib.__assign({}, props)),
1347
+ React.createElement(MenuBannerButton, tslib.__assign({}, props))));
1348
+ };
1349
+ function MenuBannerDescription(props) {
1350
+ var classes = useStyles(props);
1351
+ var description = props.description;
1352
+ if (!description)
1353
+ return null;
1354
+ return (React.createElement(core.CardContent, { classes: { root: classes.content } },
1355
+ React.createElement(core.Typography, { className: classes.description, variant: "body2" }, props.description)));
1356
+ }
1357
+ function MenuBannerButton(props) {
1358
+ var classes = useStyles(props);
1359
+ if (!props.buttonLabel)
1360
+ return null;
1361
+ return (React.createElement(core.CardContent, { classes: { root: classes.content } },
1362
+ React.createElement(core.Link, tslib.__assign({}, { component: 'button', variant: 'body2', className: classes.button }, props.ButtonProps), props.buttonLabel)));
1363
+ }
1364
+
1365
+ var palette = {
1366
+ primary: {
1367
+ main: '#0A202F',
1368
+ },
1369
+ info: {
1370
+ light: '#52B7FF',
1371
+ main: '#0076CB',
1372
+ dark: '#164B54',
1373
+ },
1374
+ success: {
1375
+ light: '#48D3AB',
1376
+ main: '#00B485',
1377
+ dark: '#00663E',
1378
+ contrastText: '#FFFFFF',
1379
+ },
1380
+ error: {
1381
+ light: '#DA777E',
1382
+ main: '#E52021',
1383
+ dark: '#A80005',
1384
+ },
1385
+ warning: {
1386
+ light: '#F0DFBA',
1387
+ main: '#F5C364',
1388
+ dark: '#E57E45',
1389
+ },
1390
+ };
1391
+
1392
+ var overrides = {
1393
+ MuiButton: {
1394
+ root: {
1395
+ borderRadius: 32,
1396
+ textTransform: 'none',
1397
+ padding: '18px 16px',
1398
+ },
1399
+ outlined: {},
1400
+ textPrimary: {
1401
+ color: '#0076CB',
1402
+ },
1403
+ },
1404
+ MuiDialogTitle: {
1405
+ root: {
1406
+ display: 'flex',
1407
+ alignItems: 'center',
1408
+ justifyContent: 'space-between',
1409
+ borderBottom: '1px solid #E0E0E0',
1410
+ },
1411
+ },
1412
+ MuiDialogContent: {
1413
+ root: {
1414
+ '&:first-child': {
1415
+ paddingTop: 0,
1416
+ },
1417
+ paddingTop: 0,
1418
+ paddingRight: 0,
1419
+ paddingLeft: 0,
1420
+ display: 'flex',
1421
+ flexDirection: 'column',
1422
+ },
1423
+ },
1424
+ MuiDialogActions: {
1425
+ root: {
1426
+ padding: 16,
1427
+ boxShadow: '-4px 0px 8px 0px #0000001A',
1428
+ },
1429
+ },
1430
+ MuiDialog: {
1431
+ paper: {
1432
+ minWidth: 500,
1433
+ },
1434
+ paperWidthMd: {
1435
+ minWidth: 640,
1436
+ },
1437
+ paperFullScreen: {
1438
+ minWidth: 'unset',
1439
+ },
1440
+ },
1441
+ MuiCssBaseline: {
1442
+ '@global': {
1443
+ '*:focus-visible, a:focus-visible': {
1444
+ '&': {
1445
+ outline: '2px solid #0076CB !important',
1446
+ outlineOffset: -4,
1447
+ borderRadius: 8,
1448
+ },
1449
+ },
1450
+ 'sr-only': {
1451
+ position: 'absolute',
1452
+ width: 1,
1453
+ height: 1,
1454
+ padding: 0,
1455
+ margin: -1,
1456
+ overflow: 'hidden',
1457
+ clip: 'rect(0, 0, 0, 0)',
1458
+ whiteSpace: 'nowrap',
1459
+ borderWidth: 0,
1460
+ },
1461
+ },
1462
+ },
1463
+ };
1464
+
1465
+ var props = {
1466
+ MuiButton: {
1467
+ disableElevation: true,
1468
+ },
1469
+ MuiDialogTitle: {
1470
+ disableTypography: true,
1471
+ },
1472
+ };
1473
+
1474
+ var fonts = ['"Poppins"', '"sans-serif"'];
1475
+ var typography = {
1476
+ htmlFontSize: 16,
1477
+ fontFamily: fonts.join(', '),
1478
+ h1: {
1479
+ fontWeight: 500,
1480
+ fontSize: '1.5rem',
1481
+ lineHeight: '100%',
1482
+ },
1483
+ h2: {
1484
+ fontWeight: 600,
1485
+ fontSize: '1.25rem',
1486
+ lineHeight: '100%',
1487
+ },
1488
+ h3: {
1489
+ fontWeight: 500,
1490
+ fontSize: '1.25rem',
1491
+ lineHeight: '1.875rem',
1492
+ },
1493
+ h4: {
1494
+ fontWeight: 500,
1495
+ fontSize: '1.25rem',
1496
+ lineHeight: '1.875rem',
1497
+ },
1498
+ h5: {
1499
+ fontWeight: 500,
1500
+ fontSize: '1.25rem',
1501
+ lineHeight: '1.875rem',
1502
+ },
1503
+ h6: {
1504
+ fontWeight: 500,
1505
+ fontSize: '1.25rem',
1506
+ lineHeight: '1.875rem',
1507
+ },
1508
+ body1: {
1509
+ fontWeight: 400,
1510
+ fontSize: '1rem',
1511
+ lineHeight: '1.5rem',
1512
+ },
1513
+ body2: {
1514
+ fontWeight: 400,
1515
+ fontSize: '0.875rem',
1516
+ lineHeight: '1.25rem',
1517
+ },
1518
+ subtitle1: {
1519
+ fontWeight: 400,
1520
+ fontSize: '0.75rem',
1521
+ lineHeight: '1.125rem',
1522
+ color: '#9E9E9E',
1523
+ },
1524
+ button: {
1525
+ fontWeight: 500,
1526
+ fontSize: '0.875rem',
1527
+ lineHeight: '1.25rem',
1528
+ textTransform: 'capitalize',
1529
+ },
1530
+ };
1531
+
1532
+ var orderingTheme = {
1533
+ typography: typography,
1534
+ palette: palette,
1535
+ overrides: overrides,
1536
+ props: props,
1537
+ };
1538
+
1539
+ exports.Button = Button;
1540
+ exports.Checkbox = Checkbox;
1541
+ exports.DialogSection = DialogSection;
1542
+ exports.DialogTitle = DialogTitle;
1543
+ exports.DishCheckoutCard = DishCheckoutCard;
1544
+ exports.DishDetailsReview = DishDetailsReview;
1545
+ exports.DishModifierCard = DishModifierCard;
1546
+ exports.ItemTag = ItemTag;
1547
+ exports.ItemTagGroup = ItemTagGroup;
1548
+ exports.LocationCard = LocationCard;
1549
+ exports.MenuBanner = MenuBanner;
1550
+ exports.MenuDropdown = MenuDropdown;
1551
+ exports.MenuFilter = MenuFilter;
1552
+ exports.MenuItem = MenuItem;
1553
+ exports.MenuItemGroup = MenuItemGroup;
1554
+ exports.MenuSection = MenuSection;
1555
+ exports.MenuSectionGroup = MenuSectionGroup;
1556
+ exports.OrderingAppContext = OrderingAppContext;
1557
+ exports.OrderingAppContextProvider = OrderingAppContextProvider;
1558
+ exports.PageSection = PageSection;
1559
+ exports.QuantityPicker = QuantityPicker;
1560
+ exports.Radio = Radio;
1561
+ exports.ReactionCounter = ReactionCounter;
1562
+ exports.ReactionCounterGroup = ReactionCounterGroup;
1563
+ exports.SelectableChip = SelectableChip;
1564
+ exports.SelectableChipGroup = SelectableChipGroup;
1565
+ exports.SelectedMenuFiltersList = SelectedMenuFiltersList;
1566
+ exports.StatusTag = StatusTag;
1567
+ exports.Switch = Switch;
1568
+ exports.orderingTheme = orderingTheme;
1569
+ exports.useOrderingAppContext = useOrderingAppContext;
1570
+ Object.keys(core).forEach(function (k) {
1571
+ if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
1572
+ enumerable: true,
1573
+ get: function () { return core[k]; }
1574
+ });
1575
+ });
1576
+ //# sourceMappingURL=index.js.map