@popmenu/ordering-ui 0.152.0 → 0.153.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/build/cjs/components/Button/Button.d.ts +1 -1
  2. package/build/cjs/components/DialogSection/DialogSection.d.ts +2 -2
  3. package/build/cjs/components/DialogTitle/DialogTitle.d.ts +2 -2
  4. package/build/cjs/components/DishCheckoutCard/DishCheckoutCard.d.ts +1 -2
  5. package/build/cjs/components/DishModifierCard/DishModifierCard.d.ts +1 -2
  6. package/build/cjs/components/DishModifierCard/ModifierControls.d.ts +1 -2
  7. package/build/cjs/components/DishModifierCard/ModifierForm.d.ts +2 -3
  8. package/build/cjs/components/ExpandableModifierGroup/ExpandableModifierGroup.d.ts +5 -0
  9. package/build/cjs/components/ExpandableModifierGroup/ExpandableModifierGroup.styles.d.ts +1 -0
  10. package/build/cjs/components/ExpandableModifierGroup/ExpandableModifierGroupProps.d.ts +11 -0
  11. package/build/cjs/components/ExpandableModifierGroup/index.d.ts +2 -0
  12. package/build/cjs/components/ItemTagGroup/ItemTagGroup.d.ts +2 -2
  13. package/build/cjs/components/LocationCard/LocationCard.d.ts +1 -2
  14. package/build/cjs/components/MenuBanner/MenuBanner.d.ts +1 -2
  15. package/build/cjs/components/MenuBanner/MenuBannerIcons.d.ts +3 -4
  16. package/build/cjs/components/MenuItemCard/MenuItemCardImg.d.ts +1 -2
  17. package/build/cjs/components/MenuItemCard/MenuItemCardInfo.d.ts +1 -1
  18. package/build/cjs/components/MenuItemCard/MenuItemCardPrice.d.ts +1 -2
  19. package/build/cjs/components/MenuItemCard/MenuItemCardReactions.d.ts +1 -2
  20. package/build/cjs/components/MenuItemCard/MenuItemCardTags.d.ts +1 -2
  21. package/build/cjs/components/MenuItemModifiersList/MenuItemModifiersList.d.ts +1 -2
  22. package/build/cjs/components/MenuItemModifiersList/ModifierGroup.d.ts +1 -2
  23. package/build/cjs/components/MenuTab/MenuTab.d.ts +1 -2
  24. package/build/cjs/components/MenuTabGroup/MenuTabGroup.d.ts +1 -2
  25. package/build/cjs/components/NestedModsV2DishModifierCard/DishModifierCard.styles.d.ts +5 -0
  26. package/build/cjs/components/NestedModsV2DishModifierCard/DishModifierCardProps.d.ts +79 -0
  27. package/build/cjs/components/NestedModsV2DishModifierCard/ModifierControls.d.ts +2 -0
  28. package/build/cjs/components/NestedModsV2DishModifierCard/NestedModsV2DishModifierCard.d.ts +5 -0
  29. package/build/cjs/components/NestedModsV2DishModifierCard/index.d.ts +2 -0
  30. package/build/cjs/components/OrderingAppContext/OrderingAppContext.d.ts +1 -1
  31. package/build/cjs/components/PageSection/PageSection.d.ts +1 -1
  32. package/build/cjs/components/ReactionCounter/ReactionCounter.d.ts +1 -2
  33. package/build/cjs/components/ReactionCounterGroup/ReactionCounterGroup.d.ts +2 -2
  34. package/build/cjs/components/SelectableChip/SelectableChip.d.ts +1 -2
  35. package/build/cjs/components/SelectableChipGroup/SelectableChipGroup.d.ts +1 -1
  36. package/build/cjs/components/SelectedMenuFiltersList/SelectedMenuFiltersList.d.ts +1 -2
  37. package/build/cjs/components/StatusTag/StatusTag.d.ts +1 -2
  38. package/build/cjs/components/index.d.ts +4 -0
  39. package/build/cjs/index.js +455 -28
  40. package/build/cjs/index.js.map +1 -1
  41. package/build/esm/components/Button/Button.d.ts +1 -1
  42. package/build/esm/components/DialogSection/DialogSection.d.ts +2 -2
  43. package/build/esm/components/DialogTitle/DialogTitle.d.ts +2 -2
  44. package/build/esm/components/DishCheckoutCard/DishCheckoutCard.d.ts +1 -2
  45. package/build/esm/components/DishModifierCard/DishModifierCard.d.ts +1 -2
  46. package/build/esm/components/DishModifierCard/ModifierControls.d.ts +1 -2
  47. package/build/esm/components/DishModifierCard/ModifierForm.d.ts +2 -3
  48. package/build/esm/components/ExpandableModifierGroup/ExpandableModifierGroup.d.ts +5 -0
  49. package/build/esm/components/ExpandableModifierGroup/ExpandableModifierGroup.js +23 -0
  50. package/build/esm/components/ExpandableModifierGroup/ExpandableModifierGroup.js.map +1 -0
  51. package/build/esm/components/ExpandableModifierGroup/ExpandableModifierGroup.styles.d.ts +1 -0
  52. package/build/esm/components/ExpandableModifierGroup/ExpandableModifierGroup.styles.js +57 -0
  53. package/build/esm/components/ExpandableModifierGroup/ExpandableModifierGroup.styles.js.map +1 -0
  54. package/build/esm/components/ExpandableModifierGroup/ExpandableModifierGroupProps.d.ts +11 -0
  55. package/build/esm/components/ExpandableModifierGroup/index.d.ts +2 -0
  56. package/build/esm/components/ItemTagGroup/ItemTagGroup.d.ts +2 -2
  57. package/build/esm/components/LocationCard/LocationCard.d.ts +1 -2
  58. package/build/esm/components/MenuBanner/MenuBanner.d.ts +1 -2
  59. package/build/esm/components/MenuBanner/MenuBannerIcons.d.ts +3 -4
  60. package/build/esm/components/MenuItemCard/MenuItemCardImg.d.ts +1 -2
  61. package/build/esm/components/MenuItemCard/MenuItemCardInfo.d.ts +1 -1
  62. package/build/esm/components/MenuItemCard/MenuItemCardPrice.d.ts +1 -2
  63. package/build/esm/components/MenuItemCard/MenuItemCardReactions.d.ts +1 -2
  64. package/build/esm/components/MenuItemCard/MenuItemCardTags.d.ts +1 -2
  65. package/build/esm/components/MenuItemModifiersList/MenuItemModifiersList.d.ts +1 -2
  66. package/build/esm/components/MenuItemModifiersList/ModifierGroup.d.ts +1 -2
  67. package/build/esm/components/MenuTab/MenuTab.d.ts +1 -2
  68. package/build/esm/components/MenuTabGroup/MenuTabGroup.d.ts +1 -2
  69. package/build/esm/components/NestedModsV2DishModifierCard/DishModifierCard.styles.d.ts +5 -0
  70. package/build/esm/components/NestedModsV2DishModifierCard/DishModifierCard.styles.js +165 -0
  71. package/build/esm/components/NestedModsV2DishModifierCard/DishModifierCard.styles.js.map +1 -0
  72. package/build/esm/components/NestedModsV2DishModifierCard/DishModifierCardProps.d.ts +79 -0
  73. package/build/esm/components/NestedModsV2DishModifierCard/ModifierControls.d.ts +2 -0
  74. package/build/esm/components/NestedModsV2DishModifierCard/ModifierControls.js +171 -0
  75. package/build/esm/components/NestedModsV2DishModifierCard/ModifierControls.js.map +1 -0
  76. package/build/esm/components/NestedModsV2DishModifierCard/NestedModsV2DishModifierCard.d.ts +5 -0
  77. package/build/esm/components/NestedModsV2DishModifierCard/NestedModsV2DishModifierCard.js +47 -0
  78. package/build/esm/components/NestedModsV2DishModifierCard/NestedModsV2DishModifierCard.js.map +1 -0
  79. package/build/esm/components/NestedModsV2DishModifierCard/index.d.ts +2 -0
  80. package/build/esm/components/OrderingAppContext/OrderingAppContext.d.ts +1 -1
  81. package/build/esm/components/PageSection/PageSection.d.ts +1 -1
  82. package/build/esm/components/ReactionCounter/ReactionCounter.d.ts +1 -2
  83. package/build/esm/components/ReactionCounterGroup/ReactionCounterGroup.d.ts +2 -2
  84. package/build/esm/components/SelectableChip/SelectableChip.d.ts +1 -2
  85. package/build/esm/components/SelectableChipGroup/SelectableChipGroup.d.ts +1 -1
  86. package/build/esm/components/SelectedMenuFiltersList/SelectedMenuFiltersList.d.ts +1 -2
  87. package/build/esm/components/StatusTag/StatusTag.d.ts +1 -2
  88. package/build/esm/components/index.d.ts +4 -0
  89. package/build/esm/index.js +2 -0
  90. package/build/esm/index.js.map +1 -1
  91. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModifierControls.js","sources":["../../../../src/components/NestedModsV2DishModifierCard/ModifierControls.tsx"],"sourcesContent":["import {\n Box,\n Checkbox,\n FormControl,\n FormControlLabel,\n FormGroup,\n Radio,\n RadioGroup,\n Typography,\n} from '@material-ui/core'\nimport { Icon } from '@popmenu/common-ui'\nimport { CheckCircle, ChevronRight } from '@popmenu/web-icons'\nimport classNames from 'classnames'\nimport React from 'react'\nimport { Button } from '../Button'\nimport type { QuantityChangeEvent } from '../QuantityPicker'\nimport { QuantityPicker } from '../QuantityPicker'\nimport { StatusTag } from '../StatusTag'\nimport {\n useCheckboxModifierFormStyles,\n useLabelStyles,\n useOptionsStyles,\n useRadioModifierFormStyles,\n} from './DishModifierCard.styles'\nimport { Modifier, ModifierOptionsControlProps } from './DishModifierCardProps'\n\nconst Label = (props: {\n name: string\n price: string\n disabled?: boolean\n hidePrice?: boolean\n isSelected?: boolean\n selectedSummary?: string\n enableSelectedModifierStyles?: boolean\n}) => {\n const {\n name,\n price,\n disabled = false,\n hidePrice = false,\n isSelected = false,\n selectedSummary,\n enableSelectedModifierStyles = false,\n } = props\n const classes = useLabelStyles()\n const numericPrice = price ? parseFloat(price.replace(/[^0-9.-]/g, '')) : NaN\n const shouldHidePrice = hidePrice || !price || numericPrice === 0 || isNaN(numericPrice)\n const showSelectedSummary = Boolean(enableSelectedModifierStyles && isSelected && selectedSummary)\n\n return (\n <Box\n display=\"flex\"\n flexDirection=\"column\"\n className={classNames({ [classes.label]: !showSelectedSummary, [classes.selectedLabel]: showSelectedSummary })}\n >\n <Box display=\"flex\" alignItems=\"center\" gridGap={8}>\n <Typography\n className={classNames({\n [classes.disabled]: disabled,\n })}\n >\n {name}\n </Typography>\n </Box>\n {!shouldHidePrice && (\n <Typography className={classNames({ [classes.price]: !disabled }, { [classes.disabled]: disabled })}>\n {`+ ${price}`}\n </Typography>\n )}\n {showSelectedSummary && <Typography className={classes.selectedSummary}>{selectedSummary}</Typography>}\n </Box>\n )\n}\n\nconst Options = (props: {\n handleOptionsClick: () => void\n actionLabel: 'OPTIONS' | 'UPDATE'\n hidden?: boolean\n inline?: boolean\n}) => {\n const { handleOptionsClick, actionLabel, hidden = false, inline = false } = props\n const classes = useOptionsStyles()\n const displayActionLabel = inline ? (actionLabel === 'UPDATE' ? 'Update' : 'Options') : actionLabel\n if (hidden) return null\n\n return (\n <Box>\n <Button\n variation=\"none\"\n className={classNames(classes.options, { [classes.inlineOptions]: inline })}\n onClick={handleOptionsClick}\n >\n <Typography variant=\"caption\">{displayActionLabel}</Typography>\n {!inline && <Icon icon={ChevronRight} />}\n </Button>\n </Box>\n )\n}\n\nconst getIsSelected = (modifierId: number, value: ModifierOptionsControlProps['value']) =>\n value.some((modifierValue) => modifierValue.modifierId === modifierId && modifierValue.quantity > 0)\n\nconst getActionLabel = (isSelected: boolean, props: ModifierOptionsControlProps) =>\n props.modifierControlsOptions?.showUpdateButton && isSelected ? 'UPDATE' : 'OPTIONS'\n\nconst shouldHideNestedOptionsButton = (isSelected: boolean, props: ModifierOptionsControlProps) =>\n Boolean(\n props.modifierControlsOptions?.hideNestedOptionsButton ||\n (props.modifierControlsOptions?.enableSelectedModifierStyles && !isSelected),\n )\n\nconst shouldShowInlineAction = (isSelected: boolean, props: ModifierOptionsControlProps) =>\n Boolean(\n isSelected &&\n props.modifierControlsOptions?.enableSelectedModifierStyles &&\n !props.modifierControlsOptions?.hideNestedOptionsButton,\n )\n\nconst getModifierActionState = (\n modifier: Modifier,\n isSelected: boolean,\n props: ModifierOptionsControlProps,\n): {\n isSelected: boolean\n shouldHideNestedOptions: boolean\n showInlineAction: boolean\n actionLabel: 'OPTIONS' | 'UPDATE'\n selectedSummary?: string\n} => ({\n isSelected,\n shouldHideNestedOptions: shouldHideNestedOptionsButton(isSelected, props),\n showInlineAction: shouldShowInlineAction(isSelected, props),\n actionLabel: getActionLabel(isSelected, props),\n selectedSummary: props.modifierControlsOptions?.selectedNestedSummaryByModifierId?.[modifier.id],\n})\n\nconst NestedModifierActions = (props: {\n modifier: Modifier\n handleOptionsClick: (id: number) => void\n state: ReturnType<typeof getModifierActionState>\n renderRegularButton?: boolean\n}) => {\n const { modifier, handleOptionsClick, state, renderRegularButton = true } = props\n const labelClasses = useLabelStyles()\n\n if (!modifier.hasModifiers || modifier.outOfStock) return null\n\n return (\n <>\n {state.showInlineAction && state.selectedSummary && (\n <Box className={labelClasses.selectedSummaryInlineRow}>\n <Box className={labelClasses.selectedSummaryPrimary}>\n <Icon icon={CheckCircle} size=\"medium\" className={labelClasses.selectedSummaryIcon} />\n <Typography variant=\"caption\" className={labelClasses.selectedSummaryPrimaryText}>\n {state.selectedSummary}\n </Typography>\n </Box>\n <Options\n handleOptionsClick={() => handleOptionsClick(modifier.id)}\n actionLabel={state.actionLabel}\n inline\n hidden={state.shouldHideNestedOptions}\n />\n </Box>\n )}\n {renderRegularButton && (\n <Options\n handleOptionsClick={() => handleOptionsClick(modifier.id)}\n actionLabel={state.actionLabel}\n hidden={state.shouldHideNestedOptions || (state.showInlineAction && Boolean(state.selectedSummary))}\n />\n )}\n </>\n )\n}\n\nconst SingleSelectModifierControl = (props: ModifierOptionsControlProps) => {\n const { modifiers, name, isOutOfStock, onChange, value, handleOptionsClick, aggregatePrice, isRequired } = props\n const radioClasses = useRadioModifierFormStyles()\n const makeHandleChange = (modifier: Modifier) => (e: React.ChangeEvent<HTMLInputElement>) => {\n const isModifierInValue = Boolean(value.find((v) => v.modifierId === modifier.id))\n if (!isModifierInValue && modifier.hasModifiers && !props.modifierControlsOptions?.hideNestedOptionsButton) {\n handleOptionsClick(modifier.id)\n }\n\n onChange({\n isRadio: true,\n modifierId: Number(e.target.value),\n groupId: modifier.parentModifierGroupId,\n parentModifierId: modifier.parentModifierGroupItemId,\n price: modifier.price || 0,\n quantity: 1,\n })\n }\n return (\n <FormControl fullWidth>\n <RadioGroup className={radioClasses.radioGroup} aria-label={name}>\n {modifiers.map((modifier) => {\n const modifierActionState = getModifierActionState(modifier, getIsSelected(modifier.id, value), props)\n return (\n <Box key={modifier.id}>\n <FormControlLabel\n key={modifier.id}\n value={modifier.id}\n className={radioClasses.root}\n control={\n <Radio\n checked={value[0]?.modifierId === modifier.id}\n className={classNames({\n [radioClasses.hideRadio]: modifier.outOfStock,\n [radioClasses.radio]: !modifier.outOfStock,\n })}\n disabled={isOutOfStock || modifier.outOfStock}\n onChange={makeHandleChange(modifier)}\n required={isRequired}\n />\n }\n label={\n <Box className={radioClasses.label}>\n <Label\n name={modifier.name}\n price={aggregatePrice[modifier.id] || modifier.formattedPrice}\n disabled={isOutOfStock || modifier.outOfStock}\n hidePrice={modifier.hidePrice}\n isSelected={modifierActionState.isSelected}\n enableSelectedModifierStyles={props.modifierControlsOptions?.enableSelectedModifierStyles}\n selectedSummary={\n modifierActionState.showInlineAction ? undefined : modifierActionState.selectedSummary\n }\n />\n {modifier.outOfStock && (\n <Box minWidth=\"90px\" marginLeft={2}>\n <StatusTag color=\"warning\" label=\"Out of stock\" variant=\"outlined\" size=\"md\" />\n </Box>\n )}\n </Box>\n }\n labelPlacement=\"start\"\n />\n <NestedModifierActions\n modifier={modifier}\n handleOptionsClick={handleOptionsClick}\n state={modifierActionState}\n />\n </Box>\n )\n })}\n </RadioGroup>\n </FormControl>\n )\n}\n\nconst MultipleSelectControl = (props: ModifierOptionsControlProps) => {\n const { modifiers, value, isOutOfStock, onChange, disableNewSelections, handleOptionsClick, aggregatePrice } = props\n const classes = useCheckboxModifierFormStyles()\n const makeHandleChange = (modifier: Modifier) => () => {\n const isModifierInValue = Boolean(value.find((v) => v.modifierId === modifier.id))\n if (!isModifierInValue && modifier.hasModifiers && !props.modifierControlsOptions?.hideNestedOptionsButton) {\n handleOptionsClick(modifier.id)\n }\n\n onChange({\n isRadio: false,\n modifierId: modifier.id,\n groupId: modifier.parentModifierGroupId,\n parentModifierId: modifier.parentModifierGroupItemId,\n price: modifier.price || 0,\n quantity: isModifierInValue ? 0 : 1,\n })\n }\n\n return (\n <FormControl fullWidth>\n <FormGroup className={classes.formGroup}>\n {modifiers.map((modifier) => {\n const modifierActionState = getModifierActionState(modifier, getIsSelected(modifier.id, value), props)\n return (\n <Box key={modifier.id}>\n <FormControlLabel\n key={modifier.id}\n value={modifier.id}\n className={classes.root}\n checked={value.some((v) => v.modifierId === modifier.id)}\n onChange={makeHandleChange(modifier)}\n control={\n <Checkbox\n className={classNames(\n { [classes.hideCheckbox]: modifier.outOfStock },\n { [classes.checkbox]: !modifier.outOfStock },\n )}\n disabled={isOutOfStock || modifier.outOfStock || (!modifier.quantity && disableNewSelections)}\n />\n }\n label={\n <Box className={classes.label}>\n <Label\n name={modifier.name}\n price={aggregatePrice[modifier.id] || modifier.formattedPrice}\n disabled={isOutOfStock || modifier.outOfStock}\n hidePrice={modifier.hidePrice}\n isSelected={modifierActionState.isSelected}\n enableSelectedModifierStyles={props.modifierControlsOptions?.enableSelectedModifierStyles}\n selectedSummary={\n modifierActionState.showInlineAction ? undefined : modifierActionState.selectedSummary\n }\n />\n {modifier.outOfStock && (\n <Box minWidth=\"90px\" marginLeft={2}>\n <StatusTag color=\"warning\" label=\"Out of stock\" variant=\"outlined\" size=\"md\" />\n </Box>\n )}\n </Box>\n }\n labelPlacement=\"start\"\n />\n <NestedModifierActions\n modifier={modifier}\n handleOptionsClick={handleOptionsClick}\n state={modifierActionState}\n />\n </Box>\n )\n })}\n </FormGroup>\n </FormControl>\n )\n}\nconst MultipleQuantitySelectControl = (props: ModifierOptionsControlProps) => {\n const {\n modifiers,\n isOutOfStock,\n onChange,\n disableNewSelections,\n handleOptionsClick,\n selectionQuantity,\n aggregatePrice,\n } = props\n const makeHandleChange = (modifier: Modifier) => (_e: unknown, customEvent: QuantityChangeEvent) => {\n onChange({\n isRadio: false,\n modifierId: modifier.id,\n groupId: modifier.parentModifierGroupId,\n parentModifierId: modifier.parentModifierGroupItemId,\n price: modifier.price || 0,\n quantity: customEvent.quantity,\n })\n }\n return (\n <FormControl fullWidth>\n <FormGroup>\n {modifiers.map((modifier) => {\n const modifierActionState = getModifierActionState(modifier, modifier.quantity > 0, props)\n return (\n <Box key={modifier.id} style={{ justifyContent: 'space-between', flexDirection: 'column' }} display=\"flex\">\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"space-between\" width=\"100%\">\n <Label\n name={modifier.name}\n price={aggregatePrice[modifier.id] || modifier.formattedPrice}\n disabled={isOutOfStock || modifier.outOfStock}\n hidePrice={modifier.hidePrice}\n isSelected={modifierActionState.isSelected}\n enableSelectedModifierStyles={props.modifierControlsOptions?.enableSelectedModifierStyles}\n selectedSummary={\n modifierActionState.showInlineAction ? undefined : modifierActionState.selectedSummary\n }\n />\n {modifier.outOfStock && (\n <Box minWidth=\"90px\" marginLeft={2}>\n <StatusTag color=\"warning\" label=\"Out of stock\" variant=\"outlined\" size=\"md\" />\n </Box>\n )}\n {!modifier.outOfStock && (\n <QuantityPicker\n incrementButtonTitle={`Add ${modifier.name}`}\n decrementButtonTitle={`Remove ${modifier.name}`}\n id={`${modifier.id}-quantity-picker`}\n variation=\"modifierCount\"\n value={modifier.quantity}\n disableIncrement={disableNewSelections}\n preventManualChange={true}\n onChange={makeHandleChange(modifier)}\n disabled={isOutOfStock || modifier.outOfStock}\n name={modifier.name}\n />\n )}\n </Box>\n <NestedModifierActions\n modifier={modifier}\n handleOptionsClick={handleOptionsClick}\n state={modifierActionState}\n renderRegularButton={false}\n />\n <Box display=\"flex\" alignItems=\"flex-start\" gridGap={4}>\n {modifier.hasModifiers && !modifier.outOfStock && (\n <Options\n handleOptionsClick={() => handleOptionsClick(modifier.id)}\n actionLabel={modifierActionState.actionLabel}\n hidden={\n modifierActionState.shouldHideNestedOptions ||\n (modifierActionState.showInlineAction && Boolean(modifierActionState.selectedSummary))\n }\n />\n )}\n {selectionQuantity[modifier.id] &&\n selectionQuantity[modifier.id].requiredSelectionCount > 0 &&\n selectionQuantity[modifier.id].requiredSelectionCount !==\n selectionQuantity[modifier.id].currentSelectionCount && (\n <Typography variant=\"caption\" color=\"error\">\n {selectionQuantity[modifier.id].currentSelectionCount}/\n {selectionQuantity[modifier.id].requiredSelectionCount} selected\n </Typography>\n )}\n </Box>\n </Box>\n )\n })}\n </FormGroup>\n </FormControl>\n )\n}\n\nexport const ModifierControls = (props: ModifierOptionsControlProps) => {\n switch (props.type) {\n case 'singleSelect':\n return <SingleSelectModifierControl {...props} />\n case 'multipleSelect':\n return <MultipleSelectControl {...props} />\n case 'multipleQuantitySelect':\n return <MultipleQuantitySelectControl {...props} />\n default:\n return null\n }\n}\n"],"names":["React"],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { NestedModsV2DishModifierCardProps } from './DishModifierCardProps';
2
+ export declare const NestedModsV2DishModifierCard: {
3
+ (props: NestedModsV2DishModifierCardProps): JSX.Element;
4
+ displayName: string;
5
+ };
@@ -0,0 +1,47 @@
1
+ import { Box, Typography } from '@popmenu/common-ui';
2
+ import React__default from 'react';
3
+ import classNames from 'classnames';
4
+ import { StatusTag } from '../StatusTag/StatusTag.js';
5
+ import { useDishModifierCardStyles } from './DishModifierCard.styles.js';
6
+ import { ModifierControls } from './ModifierControls.js';
7
+
8
+ const getStatusTagProps = (props) => {
9
+ const { messages, error, isRequired, isOutOfStock } = props;
10
+ const { optionalText, outOfStockText, requiredText } = messages;
11
+ let color = 'default';
12
+ switch (true) {
13
+ case error:
14
+ color = 'error';
15
+ break;
16
+ case isOutOfStock:
17
+ color = 'warning';
18
+ break;
19
+ }
20
+ let label = optionalText;
21
+ switch (true) {
22
+ case isOutOfStock:
23
+ label = outOfStockText;
24
+ break;
25
+ case isRequired:
26
+ label = requiredText;
27
+ break;
28
+ }
29
+ const variant = isRequired || isOutOfStock ? 'outlined' : 'filled';
30
+ return { color, label, variant };
31
+ };
32
+ const NestedModsV2DishModifierCard = (props) => {
33
+ const { aggregatePrice, name, disableNewSelections, modifiers, value, messages, onChange, type, error, isOutOfStock, isRequired, handleOptionsClick, selectionQuantity, modifierControlsOptions, disableCardStyle = false, hideName = false, } = props;
34
+ const classes = useDishModifierCardStyles();
35
+ return (React__default.createElement(Box, { className: classNames(classes.root, { [classes.card]: !disableCardStyle }) },
36
+ React__default.createElement(Box, { display: "flex", justifyContent: "space-between", width: "100%", alignItems: "center", height: "fit-content", marginBottom: 2 },
37
+ React__default.createElement(Box, { className: classNames({ [classes.optionalStatusTag]: !isRequired && !isOutOfStock }) },
38
+ React__default.createElement(StatusTag, { ...getStatusTagProps(props) })),
39
+ !isOutOfStock && (React__default.createElement(Typography, { variant: "subtitle1", className: classNames({ [classes.error]: error, [classes.helperText]: !error }) }, messages.helperText))),
40
+ !hideName && (React__default.createElement(Typography, { component: "h3", className: classes.name }, name)),
41
+ React__default.createElement(Box, null,
42
+ React__default.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, modifierControlsOptions: modifierControlsOptions }))));
43
+ };
44
+ NestedModsV2DishModifierCard.displayName = 'NestedModsV2DishModifierCard';
45
+
46
+ export { NestedModsV2DishModifierCard };
47
+ //# sourceMappingURL=NestedModsV2DishModifierCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NestedModsV2DishModifierCard.js","sources":["../../../../src/components/NestedModsV2DishModifierCard/NestedModsV2DishModifierCard.tsx"],"sourcesContent":["import { Box, Typography } from '@popmenu/common-ui'\nimport React from 'react'\n\nimport classNames from 'classnames'\nimport type { StatusTagProps } from '../StatusTag'\nimport { StatusTag } from '../StatusTag'\nimport { useDishModifierCardStyles } from './DishModifierCard.styles'\nimport { NestedModsV2DishModifierCardProps } from './DishModifierCardProps'\nimport { ModifierControls } from './ModifierControls'\n\nconst getStatusTagProps = (props: NestedModsV2DishModifierCardProps): StatusTagProps => {\n const { messages, error, isRequired, isOutOfStock } = props\n const { optionalText, outOfStockText, requiredText } = messages\n\n let color: StatusTagProps['color'] = 'default'\n switch (true) {\n case error:\n color = 'error'\n break\n case isOutOfStock:\n color = 'warning'\n break\n }\n\n let label: string = optionalText\n switch (true) {\n case isOutOfStock:\n label = outOfStockText\n break\n case isRequired:\n label = requiredText\n break\n }\n\n const variant = isRequired || isOutOfStock ? 'outlined' : 'filled'\n return { color, label, variant }\n}\n\nexport const NestedModsV2DishModifierCard = (props: NestedModsV2DishModifierCardProps) => {\n const {\n aggregatePrice,\n name,\n disableNewSelections,\n modifiers,\n value,\n messages,\n onChange,\n type,\n error,\n isOutOfStock,\n isRequired,\n handleOptionsClick,\n selectionQuantity,\n modifierControlsOptions,\n disableCardStyle = false,\n hideName = false,\n } = props\n const classes = useDishModifierCardStyles()\n\n return (\n <Box className={classNames(classes.root, { [classes.card]: !disableCardStyle })}>\n <Box\n display=\"flex\"\n justifyContent=\"space-between\"\n width=\"100%\"\n alignItems=\"center\"\n height=\"fit-content\"\n marginBottom={2}\n >\n <Box className={classNames({ [classes.optionalStatusTag]: !isRequired && !isOutOfStock })}>\n <StatusTag {...getStatusTagProps(props)} />\n </Box>\n {!isOutOfStock && (\n <Typography\n variant=\"subtitle1\"\n className={classNames({ [classes.error]: error, [classes.helperText]: !error })}\n >\n {messages.helperText}\n </Typography>\n )}\n </Box>\n {!hideName && (\n <Typography component=\"h3\" className={classes.name}>\n {name}\n </Typography>\n )}\n <Box>\n <ModifierControls\n name={name}\n value={value}\n modifiers={modifiers}\n isOutOfStock={isOutOfStock}\n isRequired={isRequired}\n onChange={onChange}\n disableNewSelections={disableNewSelections}\n type={type}\n messages={messages}\n handleOptionsClick={handleOptionsClick}\n aggregatePrice={aggregatePrice}\n selectionQuantity={selectionQuantity}\n modifierControlsOptions={modifierControlsOptions}\n />\n </Box>\n </Box>\n )\n}\n\nNestedModsV2DishModifierCard.displayName = 'NestedModsV2DishModifierCard'\n"],"names":["React"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { NestedModsV2DishModifierCard } from './NestedModsV2DishModifierCard';
2
+ export type { NestedModsV2DishModifierCardProps } from './DishModifierCardProps';
@@ -14,5 +14,5 @@ export declare const useOrderingAppContext: () => OrderingAppContextType;
14
14
  type OrderingAppContextProviderProps = PropsWithChildren<{
15
15
  defaultContext: OrderingAppContextValue;
16
16
  }>;
17
- export declare const OrderingAppContextProvider: (props: OrderingAppContextProviderProps) => React.JSX.Element;
17
+ export declare const OrderingAppContextProvider: (props: OrderingAppContextProviderProps) => JSX.Element;
18
18
  export {};
@@ -1,4 +1,4 @@
1
1
  import React from 'react';
2
2
  export declare const PageSection: (props: {
3
3
  children: React.ReactNode;
4
- }) => React.JSX.Element;
4
+ }) => JSX.Element;
@@ -1,3 +1,2 @@
1
- import React from 'react';
2
1
  import { ReactionCounterProps } from './ReactionCounterProps';
3
- export declare const ReactionCounter: (props: ReactionCounterProps) => React.JSX.Element;
2
+ export declare const ReactionCounter: (props: ReactionCounterProps) => JSX.Element;
@@ -1,4 +1,4 @@
1
- import React, { HTMLAttributes, PropsWithChildren } from 'react';
1
+ import { HTMLAttributes, PropsWithChildren } from 'react';
2
2
  type ReactionCounterGroupProps = PropsWithChildren<HTMLAttributes<HTMLElement>>;
3
- export declare const ReactionCounterGroup: (props: ReactionCounterGroupProps) => React.JSX.Element;
3
+ export declare const ReactionCounterGroup: (props: ReactionCounterGroupProps) => JSX.Element;
4
4
  export {};
@@ -1,3 +1,2 @@
1
- import React from 'react';
2
1
  import { SelectableChipProps } from './SelectableChipProps';
3
- export declare const SelectableChip: (props: SelectableChipProps) => React.JSX.Element;
2
+ export declare const SelectableChip: (props: SelectableChipProps) => JSX.Element;
@@ -2,5 +2,5 @@ import React from 'react';
2
2
  type SelectableChipGroupProps = {
3
3
  children: React.ReactNode;
4
4
  } & React.HTMLAttributes<HTMLElement>;
5
- export declare const SelectableChipGroup: (props: SelectableChipGroupProps) => React.JSX.Element;
5
+ export declare const SelectableChipGroup: (props: SelectableChipGroupProps) => JSX.Element;
6
6
  export {};
@@ -1,3 +1,2 @@
1
- import React from 'react';
2
1
  import { SelectedMenuFiltersListProps } from './SelectedMenuFiltersListProps';
3
- export declare const SelectedMenuFiltersList: (props: SelectedMenuFiltersListProps) => React.JSX.Element;
2
+ export declare const SelectedMenuFiltersList: (props: SelectedMenuFiltersListProps) => JSX.Element;
@@ -1,6 +1,5 @@
1
- import React from 'react';
2
1
  import { StatusTagProps } from './StatusTagProps';
3
2
  export declare const StatusTag: {
4
- ({ color, label, size, variant }: StatusTagProps): React.JSX.Element;
3
+ ({ color, label, size, variant }: StatusTagProps): JSX.Element;
5
4
  displayName: string;
6
5
  };
@@ -48,3 +48,7 @@ export { Checkbox } from './Checkbox';
48
48
  export { Radio } from './Radio';
49
49
  export { MenuBanner } from './MenuBanner';
50
50
  export type { MenuBannerProps } from './MenuBanner';
51
+ export { ExpandableModifierGroup } from './ExpandableModifierGroup';
52
+ export type { ExpandableModifierGroupProps } from './ExpandableModifierGroup';
53
+ export { NestedModsV2DishModifierCard } from './NestedModsV2DishModifierCard';
54
+ export type { NestedModsV2DishModifierCardProps } from './NestedModsV2DishModifierCard';
@@ -30,5 +30,7 @@ export { Switch } from './components/Switch/Switch.js';
30
30
  export { Checkbox } from './components/Checkbox/Checkbox.js';
31
31
  export { Radio } from './components/Radio/Radio.js';
32
32
  export { MenuBanner } from './components/MenuBanner/MenuBanner.js';
33
+ export { ExpandableModifierGroup } from './components/ExpandableModifierGroup/ExpandableModifierGroup.js';
34
+ export { NestedModsV2DishModifierCard } from './components/NestedModsV2DishModifierCard/NestedModsV2DishModifierCard.js';
33
35
  export { orderingTheme } from './theme/theme.js';
34
36
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@popmenu/ordering-ui",
3
- "version": "0.152.0",
3
+ "version": "0.153.0",
4
4
  "license": "MIT",
5
5
  "author": "Popmenu Design System Team",
6
6
  "description": "React components specifically for the popmenu Online Ordering web app.",
@@ -32,5 +32,5 @@
32
32
  "react": "18.x || 19.x"
33
33
  },
34
34
  "sideEffects": false,
35
- "gitHead": "befcac06eaf85377080f4455bc1e7fe253b9f453"
35
+ "gitHead": "0fdf023d7469982c4672a66b4af08befd1bb9dce"
36
36
  }