@shopgate/engage 7.32.0-beta.6 → 7.32.0-beta.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/account/components/Profile/ProfileAddressBook.d.ts.map +1 -1
- package/account/components/Profile/ProfileAddressBook.js +13 -22
- package/account/components/Profile/ProfileAddressCard.d.ts.map +1 -1
- package/account/components/Profile/ProfileAddressCard.js +9 -18
- package/account/components/Profile/ProfileForm.d.ts.map +1 -1
- package/account/components/Profile/ProfileForm.js +15 -42
- package/account/components/ProfileContact/ProfileContact.js +13 -21
- package/admin-preview/components/FrontendSettingsPreviewBridge/FrontendSettingsPreviewBridge.d.ts.map +1 -1
- package/admin-preview/components/FrontendSettingsPreviewBridge/FrontendSettingsPreviewBridge.js +40 -6
- package/admin-preview/components/FrontendSettingsPreviewBridge/types.d.ts +9 -2
- package/admin-preview/components/FrontendSettingsPreviewBridge/types.d.ts.map +1 -1
- package/admin-preview/initialization/_internal/initialFrontendSettings.d.ts +32 -0
- package/admin-preview/initialization/_internal/initialFrontendSettings.d.ts.map +1 -0
- package/admin-preview/initialization/_internal/initialFrontendSettings.js +43 -0
- package/admin-preview/initialization/awaitInitialFrontendSettings.d.ts +22 -0
- package/admin-preview/initialization/awaitInitialFrontendSettings.d.ts.map +1 -0
- package/admin-preview/initialization/awaitInitialFrontendSettings.js +84 -0
- package/back-in-stock/components/BackInStockButton/index.js +5 -5
- package/cart/components/CartItem/CartItemProductLayout.js +1 -0
- package/cart/components/CartItem/CartItemProductLayoutWideRemoveItem.js +7 -14
- package/cart/components/CartItems/CartItemCardReservationLabelChangeStore.js +6 -24
- package/cart/components/CartItems/CartItems.js +8 -10
- package/cart/components/CartItems/CartItemsSubstitution.js +3 -2
- package/cart/components/CartSummaryWide/CartSummaryWide.js +2 -2
- package/cart/components/CartSummaryWide/CartSummaryWideCheckoutButton.js +9 -23
- package/cart/components/PaymentBar/PaymentBarCheckoutButton.js +8 -30
- package/cart/components/PaymentBar/testUtils/mockFactories.js +4 -11
- package/category/components/CategoryImage/index.js +13 -2
- package/checkout/components/AddressBook/AddressList.js +14 -23
- package/checkout/components/Checkout/CheckoutActions.js +4 -3
- package/checkout/components/Checkout/CheckoutAddress.js +8 -0
- package/checkout/components/Checkout/CheckoutSection.js +6 -2
- package/checkout/components/CheckoutConfirmation/CheckoutConfirmation.js +6 -7
- package/checkout/components/ResponsiveBackButton/ResponsiveBackButton.js +7 -17
- package/components/Card/Card.d.ts +27 -0
- package/components/Card/Card.d.ts.map +1 -0
- package/components/Card/Card.js +57 -0
- package/components/Card/index.d.ts +4 -0
- package/components/Card/index.d.ts.map +1 -0
- package/components/Card/index.js +2 -0
- package/components/Card/spec.d.ts +2 -0
- package/components/Card/spec.d.ts.map +1 -0
- package/components/Card/spec.js +128 -0
- package/components/Card/useCardAppearance.d.ts +11 -0
- package/components/Card/useCardAppearance.d.ts.map +1 -0
- package/components/Card/useCardAppearance.js +22 -0
- package/components/ChipLayout/index.js +2 -4
- package/components/NavigationHandler/connector.js +1 -1
- package/components/NavigationHandler/spec.js +10 -1
- package/components/Paper/Paper.d.ts +48 -0
- package/components/Paper/Paper.d.ts.map +1 -0
- package/components/Paper/Paper.js +64 -0
- package/components/Paper/index.d.ts +3 -0
- package/components/Paper/index.d.ts.map +1 -0
- package/components/Paper/index.js +1 -0
- package/components/Paper/spec.d.ts +2 -0
- package/components/Paper/spec.d.ts.map +1 -0
- package/components/Paper/spec.js +131 -0
- package/components/RadioCard/RadioCard.d.ts.map +1 -1
- package/components/RadioCard/RadioCard.js +2 -1
- package/components/Tabs/components/Tab.d.ts.map +1 -1
- package/components/Tabs/components/Tab.js +14 -16
- package/components/Typography/Typography.d.ts +1 -1
- package/components/index.d.ts +4 -1
- package/components/index.d.ts.map +1 -1
- package/components/index.js +3 -2
- package/components/v2/Button/Button.d.ts +24 -13
- package/components/v2/Button/Button.d.ts.map +1 -1
- package/components/v2/Button/Button.js +89 -37
- package/components/v2/ButtonBase/ButtonBase.d.ts +50 -10
- package/components/v2/ButtonBase/ButtonBase.d.ts.map +1 -1
- package/components/v2/ButtonBase/ButtonBase.js +153 -16
- package/components/v2/ButtonBase/hooks.d.ts +0 -1
- package/components/v2/ButtonBase/hooks.d.ts.map +1 -1
- package/components/v2/ButtonBase/hooks.js +36 -12
- package/components/v2/ButtonGroup/ButtonGroup.d.ts +11 -5
- package/components/v2/ButtonGroup/ButtonGroup.d.ts.map +1 -1
- package/components/v2/ButtonGroup/ButtonGroup.js +30 -18
- package/components/v2/CircularProgress/CircularProgress.d.ts.map +1 -1
- package/components/v2/CircularProgress/CircularProgress.js +10 -5
- package/core/hooks/useNavigation.d.ts +10 -2
- package/core/hooks/useNavigation.d.ts.map +1 -1
- package/core/hooks/useNavigation.js +1 -2
- package/core/initialization/index.d.ts.map +1 -1
- package/core/initialization/index.js +24 -5
- package/core/router/conductor.d.ts +9 -0
- package/core/router/helpers.d.ts +28 -15
- package/core/router/helpers.d.ts.map +1 -1
- package/core/router/helpers.js +8 -8
- package/development/components/DevelopmentSettings/DevelopmentSettings.js +3 -3
- package/favorites/components/FavoriteButtonWide/FavoriteButtonWide.js +7 -17
- package/favorites/components/Item/Item.d.ts +1 -1
- package/favorites/components/List/List.d.ts.map +1 -1
- package/favorites/components/List/List.js +0 -1
- package/favorites/components/List/ListContent.js +4 -5
- package/favorites/components/Lists/Lists.js +4 -5
- package/filter/components/FilterPageContent/components/ApplyButton/index.js +8 -10
- package/filter/components/FilterPageContent/components/ResetButton/index.js +8 -6
- package/locations/components/ChangeLocationButton/ChangeLocationButton.js +10 -14
- package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotDialog.js +4 -8
- package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcher.js +1 -1
- package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcherBar.js +8 -13
- package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcherDefault.js +10 -10
- package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcherBar.js +8 -14
- package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcherDefault.js +9 -10
- package/locations/components/ReserveForm/ReserveForm.js +6 -7
- package/locations/components/StoreDetails/components/GetDirectionsButton.js +2 -4
- package/locations/components/StoreDetails/components/StoreDetails.js +5 -10
- package/locations/components/StoreDetails/components/StoresNearbyListItem.js +13 -21
- package/locations/components/StoreFinder/StoreFinderSelectLocationButton.js +5 -11
- package/locations/components/StoreFinder/StoreFinderStoreInfoButton.js +5 -11
- package/locations/components/StoreList/StoreSelectLocationButton.js +5 -11
- package/login/components/ForgotPassword/ForgotPassword.js +11 -23
- package/orders/components/OrderDetails/OrderDetailsAuthenticate.js +5 -7
- package/orders/components/OrderHistory/OrderHistoryList.d.ts.map +1 -1
- package/orders/components/OrderHistory/OrderHistoryList.js +8 -9
- package/orders/components/OrderHistory/OrderHistoryTable.d.ts.map +1 -1
- package/orders/components/OrderHistory/OrderHistoryTable.js +4 -0
- package/package.json +7 -7
- package/page/components/NotFound.d.ts.map +1 -1
- package/page/components/NotFound.js +7 -6
- package/page/components/ResponsiveWidgetImage/ResponsiveWidgetImage.d.ts +1 -1
- package/page/components/ResponsiveWidgetImage/ResponsiveWidgetImage.js +2 -2
- package/page/components/WidgetVideo/WidgetVideo.d.ts +1 -1
- package/page/components/WidgetVideo/WidgetVideo.d.ts.map +1 -1
- package/page/helpers/index.d.ts +5 -2
- package/page/helpers/index.d.ts.map +1 -1
- package/page/helpers/index.js +8 -5
- package/page/widgets/Button/Button.js +2 -3
- package/page/widgets/NestedCategoryFilter/NestedCategoryFilter.js +8 -8
- package/page/widgets/ProductList/ProductList.js +18 -14
- package/page/widgets/Video/hooks.d.ts +2 -2
- package/product/components/ProductCard/index.js +27 -14
- package/product/components/ProductGrid/components/Item/components/ItemDetails/index.js +6 -3
- package/product/components/ProductGrid/components/Item/components/ItemImage/index.js +1 -11
- package/product/components/ProductGrid/components/Item/components/ItemName/index.js +5 -1
- package/product/components/ProductGrid/components/Item/components/ItemName/spec.js +19 -1
- package/product/components/ProductGrid/components/Item/index.js +10 -1
- package/product/components/ProductImage/ProductImage.d.ts.map +1 -1
- package/product/components/ProductImage/ProductImage.js +7 -2
- package/product/components/ProductImage/ProductImagePlaceholder.js +3 -3
- package/product/components/ProductSlider/index.js +4 -2
- package/product/components/RelationsSlider/RelationsSliderContent.js +3 -2
- package/product/components/RelationsSlider/constants.d.ts +3 -0
- package/product/components/RelationsSlider/constants.d.ts.map +1 -0
- package/product/components/RelationsSlider/constants.js +2 -1
- package/product/components/RelationsSlider/hooks.d.ts +6 -0
- package/product/components/RelationsSlider/hooks.d.ts.map +1 -0
- package/product/components/RelationsSlider/hooks.js +34 -0
- package/product/components/UnitQuantityPicker/UnitQuantityPicker.d.ts.map +1 -1
- package/product/components/UnitQuantityPicker/UnitQuantityPicker.js +14 -33
- package/push-opt-in/components/PushOptInModal/index.js +4 -4
- package/registration/components/Registration/RegistrationFormActions.js +4 -4
- package/reviews/components/Reviews/components/AllReviewsLink/index.js +6 -6
- package/reviews/components/Reviews/components/Header/components/WriteReviewLink/index.js +4 -3
- package/reviews/components/Reviews/components/Header/components/WriteReviewLink/spec.js +28 -22
- package/reviews/components/Reviews/spec.js +5 -6
- package/settings/action-creators/appSettings.d.ts +3 -3
- package/settings/action-creators/appSettings.d.ts.map +1 -1
- package/settings/reducers/appSettings.d.ts.map +1 -1
- package/settings/reducers/appSettings.js +40 -18
- package/settings/reducers/index.d.ts +1 -1
- package/settings/selectors/appSettings.d.ts +48 -0
- package/settings/selectors/appSettings.d.ts.map +1 -1
- package/settings/selectors/appSettings.js +31 -1
- package/settings/types/appSettings.d.ts +69 -0
- package/settings/types/appSettings.d.ts.map +1 -1
- package/styles/helpers/index.d.ts +1 -0
- package/styles/helpers/index.js +1 -0
- package/styles/helpers/loadFontCss.d.ts +22 -0
- package/styles/helpers/loadFontCss.d.ts.map +1 -0
- package/styles/helpers/loadFontCss.js +138 -0
- package/styles/helpers/loadThemeCss.d.ts.map +1 -1
- package/styles/helpers/loadThemeCss.js +11 -0
- package/styles/index.d.ts +1 -1
- package/styles/index.d.ts.map +1 -1
- package/styles/theme/createTheme/createComponents.types.d.ts +75 -0
- package/styles/theme/createTheme/createComponents.types.d.ts.map +1 -1
- package/styles/theme/createTheme/createComponents.types.js +75 -0
- package/styles/theme/createTheme/createCssVarsForColorSchemeThemes.d.ts.map +1 -1
- package/styles/theme/createTheme/createCssVarsForColorSchemeThemes.js +5 -1
- package/styles/theme/createTheme/createPalette.types.d.ts +4 -0
- package/styles/theme/createTheme/createPalette.types.d.ts.map +1 -1
- package/styles/theme/createTheme/createPalette.types.js +5 -1
- package/styles/theme/createTheme/createShape.d.ts +3 -0
- package/styles/theme/createTheme/createShape.d.ts.map +1 -1
- package/styles/theme/createTheme/createThemeFromColorScheme.d.ts +3 -1
- package/styles/theme/createTheme/createThemeFromColorScheme.d.ts.map +1 -1
- package/styles/theme/createTheme/createThemeFromColorScheme.js +6 -3
- package/styles/theme/createTheme/createTypography.d.ts +2 -1
- package/styles/theme/createTheme/createTypography.js +58 -18
- package/styles/theme/createTheme/index.js +1 -1
- package/styles/theme/createTheme/shadows.d.ts +11 -1
- package/styles/theme/createTheme/shadows.d.ts.map +1 -1
- package/styles/theme/createTheme/shadows.js +41 -7
- package/styles/theme/createTheme/types.d.ts +5 -1
- package/styles/theme/createTheme/types.d.ts.map +1 -1
- package/styles/theme/index.d.ts +2 -0
- package/styles/theme/index.d.ts.map +1 -1
- package/tracking/components/CookieConsentModal/index.js +3 -4
- package/tracking/components/PrivacySettings/index.js +3 -3
- package/cart/components/PaymentBar/PaymentBarReserveButton.connector.js +0 -6
- package/cart/components/PaymentBar/PaymentBarReserveButton.js +0 -71
- package/locations/components/StoreFinder/StoreFinderGetDirectionsButton.connector.js +0 -16
- package/locations/components/StoreFinder/StoreFinderGetDirectionsButton.js +0 -52
|
@@ -1,45 +1,140 @@
|
|
|
1
1
|
import "core-js/modules/es.array.includes.js";
|
|
2
|
-
import
|
|
2
|
+
import "core-js/modules/es.string.replace.js";
|
|
3
|
+
import React, { forwardRef, useEffect } from 'react';
|
|
3
4
|
import { makeStyles } from '@shopgate/engage/styles';
|
|
4
5
|
import { useReduceMotion } from '@shopgate/engage/a11y/hooks';
|
|
6
|
+
// Imported from the defining modules instead of the `core` barrels on purpose: `core/hooks` imports
|
|
7
|
+
// from `engage/components`, so going through a barrel would create a circular import.
|
|
8
|
+
import { useNavigation } from '@shopgate/engage/core/hooks/useNavigation';
|
|
9
|
+
import { hasWebBridge } from '@shopgate/engage/core/helpers/bridge';
|
|
5
10
|
import Ripple from "./Ripple";
|
|
6
11
|
import { usePressRipple } from "./hooks";
|
|
7
12
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
13
|
const supportedButtonTypes = ['button', 'submit', 'reset'];
|
|
9
14
|
|
|
15
|
+
/**
|
|
16
|
+
* Props read off the resolved element rather than declared on `ButtonBaseOwnProps`. Typed loosely
|
|
17
|
+
* because the element type is generic - `React.ComponentPropsWithRef<C>` keeps consumers exact.
|
|
18
|
+
*/
|
|
19
|
+
|
|
10
20
|
/**
|
|
11
21
|
* The ButtonBase component serves as a foundational button element that can be extended with
|
|
12
22
|
* additional styles and functionality. It handles basic button behavior, including disabled
|
|
13
23
|
* state and type validation.
|
|
14
24
|
*/
|
|
15
|
-
|
|
25
|
+
function ButtonBase(props, ref) {
|
|
16
26
|
const {
|
|
27
|
+
component,
|
|
28
|
+
href,
|
|
29
|
+
linkOptions,
|
|
17
30
|
disabled = false,
|
|
18
31
|
disableRipple: disableRippleProp = false,
|
|
32
|
+
disableBaseClassName = false,
|
|
33
|
+
className,
|
|
34
|
+
classes: classesProp,
|
|
35
|
+
testId,
|
|
36
|
+
children,
|
|
37
|
+
...rest
|
|
38
|
+
} = props;
|
|
39
|
+
const {
|
|
19
40
|
type = 'button',
|
|
41
|
+
onClick,
|
|
42
|
+
onKeyDown,
|
|
20
43
|
onPointerDown,
|
|
21
44
|
onPointerUp,
|
|
22
45
|
onPointerLeave,
|
|
23
46
|
onPointerCancel,
|
|
24
|
-
className,
|
|
25
|
-
children,
|
|
26
47
|
...other
|
|
27
|
-
} =
|
|
48
|
+
} = rest;
|
|
28
49
|
const {
|
|
29
50
|
classes,
|
|
30
51
|
cx
|
|
31
52
|
} = useStyles(undefined, {
|
|
32
53
|
props: {
|
|
33
|
-
classes:
|
|
54
|
+
classes: classesProp
|
|
34
55
|
}
|
|
35
56
|
});
|
|
36
57
|
const {
|
|
37
58
|
ripples,
|
|
38
59
|
start,
|
|
39
|
-
end
|
|
60
|
+
end,
|
|
61
|
+
clearAll
|
|
40
62
|
} = usePressRipple();
|
|
41
63
|
const reduceMotion = useReduceMotion();
|
|
64
|
+
const {
|
|
65
|
+
push,
|
|
66
|
+
replace
|
|
67
|
+
} = useNavigation();
|
|
42
68
|
const disableRipple = disableRippleProp || reduceMotion;
|
|
69
|
+
|
|
70
|
+
// A button that disables itself on click gets `pointer-events: none`, which makes the browser
|
|
71
|
+
// drop the pointer capture. The pointer up then lands somewhere else and the ripple would never
|
|
72
|
+
// be told to finish, so it's cleared here instead.
|
|
73
|
+
useEffect(() => {
|
|
74
|
+
if (disabled) {
|
|
75
|
+
clearAll();
|
|
76
|
+
}
|
|
77
|
+
}, [disabled, clearAll]);
|
|
78
|
+
|
|
79
|
+
// A real anchor is only safe on web builds. Inside the app webview `preventDefault()` sometimes
|
|
80
|
+
// fails and the page navigates for real, so link buttons stay `<button>` there.
|
|
81
|
+
const Component = component || (href && hasWebBridge() ? 'a' : 'button');
|
|
82
|
+
const isButtonElement = Component === 'button';
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Hands the target over to the app router. Deferred like the `Link` component does, so the
|
|
86
|
+
* current event finishes dispatching before the route changes.
|
|
87
|
+
*/
|
|
88
|
+
const navigate = () => {
|
|
89
|
+
if (!href) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
const state = {
|
|
93
|
+
...linkOptions?.state,
|
|
94
|
+
...(linkOptions?.target ? {
|
|
95
|
+
target: linkOptions.target
|
|
96
|
+
} : {})
|
|
97
|
+
};
|
|
98
|
+
const params = {
|
|
99
|
+
pathname: href,
|
|
100
|
+
...(Object.keys(state).length ? {
|
|
101
|
+
state
|
|
102
|
+
} : {})
|
|
103
|
+
};
|
|
104
|
+
setTimeout(() => {
|
|
105
|
+
if (linkOptions?.replace) {
|
|
106
|
+
replace(params);
|
|
107
|
+
} else {
|
|
108
|
+
push(params);
|
|
109
|
+
}
|
|
110
|
+
}, 0);
|
|
111
|
+
};
|
|
112
|
+
const handleClick = event => {
|
|
113
|
+
if (disabled) {
|
|
114
|
+
event.preventDefault();
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
onClick?.(event);
|
|
118
|
+
if (!href || event.defaultPrevented) {
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
event.preventDefault();
|
|
122
|
+
navigate();
|
|
123
|
+
};
|
|
124
|
+
const handleKeyDown = event => {
|
|
125
|
+
onKeyDown?.(event);
|
|
126
|
+
if (isButtonElement || disabled || event.defaultPrevented) {
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
if (event.key !== 'Enter' && event.key !== ' ') {
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
// Only buttons activate on Enter and Space. Preventing the default also stops an anchor from
|
|
134
|
+
// firing its own click on Enter, so the element is activated exactly once.
|
|
135
|
+
event.preventDefault();
|
|
136
|
+
event.currentTarget.click();
|
|
137
|
+
};
|
|
43
138
|
const handlePointerDown = event => {
|
|
44
139
|
if (!disabled && !disableRipple) {
|
|
45
140
|
event.currentTarget.setPointerCapture?.(event.pointerId);
|
|
@@ -47,41 +142,75 @@ const ButtonBase = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
47
142
|
}
|
|
48
143
|
onPointerDown?.(event);
|
|
49
144
|
};
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* Gives up pointer capture that was taken on pointer down. While an element captures the pointer,
|
|
148
|
+
* hit testing is redirected to it, so it keeps matching `:hover` and never receives a leave event.
|
|
149
|
+
* @param event The pointer event.
|
|
150
|
+
*/
|
|
151
|
+
const releaseCapture = event => {
|
|
152
|
+
const target = event.currentTarget;
|
|
153
|
+
if (target.hasPointerCapture?.(event.pointerId)) {
|
|
154
|
+
target.releasePointerCapture(event.pointerId);
|
|
155
|
+
}
|
|
156
|
+
};
|
|
50
157
|
const handlePointerUp = event => {
|
|
158
|
+
releaseCapture(event);
|
|
51
159
|
if (!disableRipple) {
|
|
52
160
|
end(event.pointerId);
|
|
53
161
|
}
|
|
54
162
|
onPointerUp?.(event);
|
|
55
163
|
};
|
|
56
164
|
const handlePointerCancel = event => {
|
|
165
|
+
releaseCapture(event);
|
|
57
166
|
if (!disableRipple) {
|
|
58
167
|
end(event.pointerId);
|
|
59
168
|
}
|
|
60
169
|
onPointerCancel?.(event);
|
|
61
170
|
};
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* Fires whenever the capture taken on pointer down ends - including when the browser drops it
|
|
174
|
+
* because the element stopped being hit testable. Without this the ripple would stay behind.
|
|
175
|
+
* @param event The pointer event.
|
|
176
|
+
*/
|
|
177
|
+
const handleLostPointerCapture = event => {
|
|
178
|
+
if (!disableRipple) {
|
|
179
|
+
end(event.pointerId);
|
|
180
|
+
}
|
|
181
|
+
};
|
|
62
182
|
const handlePointerLeave = event => {
|
|
63
183
|
if (!disableRipple && event.buttons === 1) {
|
|
64
184
|
end(event.pointerId);
|
|
65
185
|
}
|
|
66
186
|
onPointerLeave?.(event);
|
|
67
187
|
};
|
|
68
|
-
return /*#__PURE__*/_jsxs(
|
|
188
|
+
return /*#__PURE__*/_jsxs(Component, {
|
|
69
189
|
ref: ref,
|
|
70
|
-
|
|
71
|
-
|
|
190
|
+
"data-test-id": testId,
|
|
191
|
+
className: cx(classes.root, !disableBaseClassName && 'engage__button-base', className),
|
|
192
|
+
onClick: handleClick,
|
|
193
|
+
onKeyDown: handleKeyDown,
|
|
72
194
|
onPointerDown: handlePointerDown,
|
|
73
195
|
onPointerUp: handlePointerUp,
|
|
74
196
|
onPointerCancel: handlePointerCancel,
|
|
75
|
-
onPointerLeave: handlePointerLeave
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
197
|
+
onPointerLeave: handlePointerLeave,
|
|
198
|
+
onLostPointerCapture: handleLostPointerCapture,
|
|
199
|
+
...(isButtonElement ? {
|
|
200
|
+
disabled,
|
|
201
|
+
type: supportedButtonTypes.includes(type) ? type : 'button'
|
|
202
|
+
} : {
|
|
203
|
+
'aria-disabled': disabled || undefined,
|
|
204
|
+
...(href ? {
|
|
205
|
+
href
|
|
206
|
+
} : {})
|
|
207
|
+
}),
|
|
79
208
|
...other,
|
|
80
209
|
children: [children, !disableRipple && /*#__PURE__*/_jsx(Ripple, {
|
|
81
210
|
ripples: ripples
|
|
82
211
|
})]
|
|
83
212
|
});
|
|
84
|
-
}
|
|
213
|
+
}
|
|
85
214
|
const useStyles = makeStyles({
|
|
86
215
|
name: 'ButtonBase'
|
|
87
216
|
})({
|
|
@@ -109,9 +238,17 @@ const useStyles = makeStyles({
|
|
|
109
238
|
borderStyle: 'none'
|
|
110
239
|
},
|
|
111
240
|
'&:disabled': {
|
|
241
|
+
cursor: 'not-allowed'
|
|
242
|
+
},
|
|
243
|
+
'&[aria-disabled="true"]': {
|
|
112
244
|
pointerEvents: 'none',
|
|
113
245
|
cursor: 'default'
|
|
114
246
|
}
|
|
115
247
|
}
|
|
116
248
|
});
|
|
117
|
-
|
|
249
|
+
const ButtonBaseWithRef = /*#__PURE__*/forwardRef(ButtonBase);
|
|
250
|
+
ButtonBaseWithRef.displayName = 'ButtonBase';
|
|
251
|
+
|
|
252
|
+
// `forwardRef` erases the generic, so the call signature is restored with a cast. Same approach as
|
|
253
|
+
// the Typography component.
|
|
254
|
+
export default ButtonBaseWithRef;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../../components/v2/ButtonBase/hooks.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../../components/v2/ButtonBase/hooks.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc;;mBAYM,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC;qBAqC7B,MAAM;;EA2C3C"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useCallback, useRef, useState } from 'react';
|
|
1
|
+
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
2
2
|
import { RIPPLE_MIN_VISIBLE_MS } from "./constants";
|
|
3
3
|
/**
|
|
4
4
|
* Manages the active ripple queue.
|
|
@@ -12,39 +12,63 @@ import { RIPPLE_MIN_VISIBLE_MS } from "./constants";
|
|
|
12
12
|
export function usePressRipple() {
|
|
13
13
|
const [ripples, setRipples] = useState([]);
|
|
14
14
|
const nextKey = useRef(0);
|
|
15
|
-
const
|
|
15
|
+
const startedAtByKey = useRef(new Map());
|
|
16
|
+
const activeKeyByPointer = useRef(new Map());
|
|
17
|
+
const pendingTimeouts = useRef(new Set());
|
|
18
|
+
useEffect(() => () => {
|
|
19
|
+
pendingTimeouts.current.forEach(timeoutId => window.clearTimeout(timeoutId));
|
|
20
|
+
pendingTimeouts.current.clear();
|
|
21
|
+
}, []);
|
|
16
22
|
const start = useCallback(event => {
|
|
17
23
|
const element = event.currentTarget;
|
|
18
24
|
const rect = element.getBoundingClientRect();
|
|
19
|
-
const
|
|
20
|
-
const
|
|
25
|
+
const hasPointerPosition = Number.isFinite(event.clientX) && Number.isFinite(event.clientY);
|
|
26
|
+
const rippleX = hasPointerPosition ? Math.round(event.clientX - rect.left) : Math.round(element.clientWidth / 2);
|
|
27
|
+
const rippleY = hasPointerPosition ? Math.round(event.clientY - rect.top) : Math.round(element.clientHeight / 2);
|
|
21
28
|
const sizeX = Math.max(element.clientWidth - rippleX, rippleX) * 2 + 2;
|
|
22
29
|
const sizeY = Math.max(element.clientHeight - rippleY, rippleY) * 2 + 2;
|
|
23
30
|
const rippleSize = Math.sqrt(sizeX ** 2 + sizeY ** 2);
|
|
24
|
-
startedAtByPointer.current.set(event.pointerId, performance.now());
|
|
25
31
|
nextKey.current += 1;
|
|
32
|
+
const key = nextKey.current;
|
|
33
|
+
startedAtByKey.current.set(key, performance.now());
|
|
34
|
+
|
|
35
|
+
// A mouse reuses one pointerId for every press, so the pointer only ever points at the newest
|
|
36
|
+
// one. Keying the rest by ripple instead means an earlier press can no longer end this one.
|
|
37
|
+
activeKeyByPointer.current.set(event.pointerId, key);
|
|
26
38
|
setRipples(prev => [].concat(prev, [{
|
|
27
|
-
key
|
|
28
|
-
pointerId: event.pointerId,
|
|
39
|
+
key,
|
|
29
40
|
x: rippleX,
|
|
30
41
|
y: rippleY,
|
|
31
42
|
size: rippleSize
|
|
32
43
|
}]));
|
|
33
44
|
}, []);
|
|
34
45
|
const end = useCallback(pointerId => {
|
|
35
|
-
const
|
|
46
|
+
const key = activeKeyByPointer.current.get(pointerId);
|
|
47
|
+
if (key == null) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Pointer up, cancel, leave and lost capture can all fire for a single press, and the press is
|
|
52
|
+
// over after whichever comes first.
|
|
53
|
+
activeKeyByPointer.current.delete(pointerId);
|
|
54
|
+
const startedAt = startedAtByKey.current.get(key);
|
|
36
55
|
if (startedAt == null) {
|
|
37
56
|
return;
|
|
38
57
|
}
|
|
39
58
|
const elapsed = performance.now() - startedAt;
|
|
40
59
|
const delay = Math.max(0, RIPPLE_MIN_VISIBLE_MS - elapsed);
|
|
41
|
-
window.setTimeout(() => {
|
|
42
|
-
|
|
43
|
-
|
|
60
|
+
const timeoutId = window.setTimeout(() => {
|
|
61
|
+
pendingTimeouts.current.delete(timeoutId);
|
|
62
|
+
setRipples(prev => prev.filter(ripple => ripple.key !== key));
|
|
63
|
+
startedAtByKey.current.delete(key);
|
|
44
64
|
}, delay);
|
|
65
|
+
pendingTimeouts.current.add(timeoutId);
|
|
45
66
|
}, []);
|
|
46
67
|
const clearAll = useCallback(() => {
|
|
47
|
-
|
|
68
|
+
pendingTimeouts.current.forEach(timeoutId => window.clearTimeout(timeoutId));
|
|
69
|
+
pendingTimeouts.current.clear();
|
|
70
|
+
startedAtByKey.current.clear();
|
|
71
|
+
activeKeyByPointer.current.clear();
|
|
48
72
|
setRipples([]);
|
|
49
73
|
}, []);
|
|
50
74
|
return {
|
|
@@ -8,7 +8,7 @@ declare const useStyles: (params: Omit<ButtonGroupOwnProps, "children">, muiStyl
|
|
|
8
8
|
props: Record<string, unknown>;
|
|
9
9
|
ownerState?: Record<string, unknown> | undefined;
|
|
10
10
|
} | undefined) => {
|
|
11
|
-
classes: Record<"root" | "disabled" | "
|
|
11
|
+
classes: Record<"root" | "disabled" | "enableElevation" | "fullWidth" | "vertical" | "grouped" | "groupedHorizontal" | "groupedVertical" | "groupedContained" | "groupedContainedHorizontal" | "groupedContainedVertical" | "groupedOutlined" | "groupedOutlinedHorizontal" | "groupedOutlinedVertical" | "groupedText" | "groupedTextHorizontal" | "groupedTextVertical", string>;
|
|
12
12
|
theme: import("@shopgate/engage/styles").Theme;
|
|
13
13
|
css: import("tss-react").Css;
|
|
14
14
|
cx: import("tss-react").Cx;
|
|
@@ -24,21 +24,27 @@ export interface ButtonGroupOwnProps {
|
|
|
24
24
|
* @default 'medium'
|
|
25
25
|
*/
|
|
26
26
|
size?: 'small' | 'medium' | 'large';
|
|
27
|
+
/**
|
|
28
|
+
* If true, the buttons use reduced padding.
|
|
29
|
+
* @default false
|
|
30
|
+
*/
|
|
31
|
+
dense?: boolean;
|
|
27
32
|
/**
|
|
28
33
|
* The orientation of the buttons in the group.
|
|
29
34
|
* @default 'horizontal'
|
|
30
35
|
*/
|
|
31
36
|
orientation?: 'horizontal' | 'vertical';
|
|
32
37
|
/**
|
|
33
|
-
* If true,
|
|
38
|
+
* If true, a drop shadow is added to the group. Button groups are flat by default.
|
|
34
39
|
* @default false
|
|
35
40
|
*/
|
|
36
|
-
|
|
41
|
+
enableElevation?: boolean;
|
|
37
42
|
/**
|
|
38
|
-
* The color of the component.
|
|
43
|
+
* The color of the component. Besides the palette colors, `cta` is supported. It resolves to the
|
|
44
|
+
* merchant configurable call to action color from `components.ctaButton`.
|
|
39
45
|
* @default 'inherit'
|
|
40
46
|
*/
|
|
41
|
-
color?: PaletteColorsWithMain | 'inherit';
|
|
47
|
+
color?: PaletteColorsWithMain | 'inherit' | 'cta';
|
|
42
48
|
/**
|
|
43
49
|
* If true, the buttons will take up the full width of their container.
|
|
44
50
|
* @default false
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ButtonGroup.d.ts","sourceRoot":"","sources":["../../../../components/v2/ButtonGroup/ButtonGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAG1C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAErE;;GAEG;AACH,QAAA,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"ButtonGroup.d.ts","sourceRoot":"","sources":["../../../../components/v2/ButtonGroup/ButtonGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAG1C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAErE;;GAEG;AACH,QAAA,MAAM,WAAW,mIAsEf,CAAC;AAEH,QAAA,MAAM,SAAS;;cAqCX,CAAJ;;;;;;CAiGE,CAAC;AAEH,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,OAAO,CAAC,EAAE,WAAW,GAAG,UAAU,GAAG,MAAM,CAAC;IAC5C;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACxC;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,KAAK,CAAC,EAAE,qBAAqB,GAAG,SAAS,GAAG,KAAK,CAAC;IAClD;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3D,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,GAAG,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAA;AAIzF,eAAe,WAAW,CAAC"}
|
|
@@ -9,13 +9,15 @@ const ButtonGroup = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
9
9
|
const {
|
|
10
10
|
variant = 'contained',
|
|
11
11
|
size = 'medium',
|
|
12
|
+
dense = false,
|
|
12
13
|
orientation = 'horizontal',
|
|
13
|
-
|
|
14
|
+
enableElevation = false,
|
|
14
15
|
fullWidth = false,
|
|
15
16
|
disableRipple = false,
|
|
16
17
|
disabled = false,
|
|
17
18
|
color = 'inherit',
|
|
18
19
|
className,
|
|
20
|
+
classes: classesProp,
|
|
19
21
|
children,
|
|
20
22
|
...other
|
|
21
23
|
} = props;
|
|
@@ -27,7 +29,7 @@ const ButtonGroup = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
27
29
|
variant
|
|
28
30
|
}, {
|
|
29
31
|
props: {
|
|
30
|
-
classes:
|
|
32
|
+
classes: classesProp
|
|
31
33
|
}
|
|
32
34
|
});
|
|
33
35
|
const buttonClassName = cx(classes.grouped, classes[`grouped${capitalize(orientation)}`], classes[`grouped${capitalize(variant)}`], classes[`grouped${capitalize(variant)}${capitalize(orientation)}`], {
|
|
@@ -36,11 +38,18 @@ const ButtonGroup = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
36
38
|
return /*#__PURE__*/_jsx("div", {
|
|
37
39
|
role: "group",
|
|
38
40
|
className: cx(classes.root, {
|
|
39
|
-
[classes.contained]: variant === 'contained',
|
|
40
41
|
[classes.vertical]: orientation === 'vertical',
|
|
41
42
|
[classes.fullWidth]: fullWidth,
|
|
42
|
-
[classes.
|
|
43
|
-
}, className),
|
|
43
|
+
[classes.enableElevation]: enableElevation && variant === 'contained'
|
|
44
|
+
}, 'engage__button-group', className),
|
|
45
|
+
"data-variant": variant,
|
|
46
|
+
"data-color": color,
|
|
47
|
+
"data-size": size,
|
|
48
|
+
"data-orientation": orientation,
|
|
49
|
+
"data-dense": dense || undefined,
|
|
50
|
+
"data-full-width": fullWidth || undefined,
|
|
51
|
+
"data-enable-elevation": enableElevation || undefined,
|
|
52
|
+
"data-disabled": disabled || undefined,
|
|
44
53
|
ref: ref,
|
|
45
54
|
...other,
|
|
46
55
|
children: React.Children.map(children, child => {
|
|
@@ -51,10 +60,11 @@ const ButtonGroup = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
51
60
|
className: cx(buttonClassName, child.props.className),
|
|
52
61
|
color: child.props.color || color,
|
|
53
62
|
disabled: child.props.disabled || disabled,
|
|
54
|
-
|
|
63
|
+
enableElevation: child.props.enableElevation || enableElevation,
|
|
55
64
|
disableRipple,
|
|
56
65
|
fullWidth,
|
|
57
66
|
size: child.props.size || size,
|
|
67
|
+
dense: child.props.dense || dense,
|
|
58
68
|
variant: child.props.variant || variant
|
|
59
69
|
});
|
|
60
70
|
})
|
|
@@ -68,7 +78,9 @@ const useStyles = makeStyles({
|
|
|
68
78
|
variant
|
|
69
79
|
} = props;
|
|
70
80
|
let cssColor = '';
|
|
71
|
-
if (color
|
|
81
|
+
if (color === 'cta') {
|
|
82
|
+
cssColor = theme.components.ctaButton.background;
|
|
83
|
+
} else if (color !== 'inherit') {
|
|
72
84
|
cssColor = color && theme.palette?.[color]?.main ? theme.palette[color].main : theme.palette.primary.main;
|
|
73
85
|
} else if (variant === 'contained') {
|
|
74
86
|
// eslint-disable-next-line prefer-destructuring
|
|
@@ -81,14 +93,11 @@ const useStyles = makeStyles({
|
|
|
81
93
|
'--button-group-color': `var(${theme.vars.components.button.color}, ${cssColor})`,
|
|
82
94
|
'--disabledColor': theme.palette.action.disabled,
|
|
83
95
|
display: 'inline-flex',
|
|
84
|
-
borderRadius:
|
|
85
|
-
},
|
|
86
|
-
contained: {
|
|
87
|
-
boxShadow: theme.shadows[2]
|
|
96
|
+
borderRadius: theme.components.button.borderRadius
|
|
88
97
|
},
|
|
89
98
|
disabled: {},
|
|
90
|
-
|
|
91
|
-
boxShadow:
|
|
99
|
+
enableElevation: {
|
|
100
|
+
boxShadow: theme.shadows[2]
|
|
92
101
|
},
|
|
93
102
|
fullWidth: {
|
|
94
103
|
width: '100%'
|
|
@@ -128,7 +137,7 @@ const useStyles = makeStyles({
|
|
|
128
137
|
borderRightWidth: 1,
|
|
129
138
|
borderRightStyle: 'solid',
|
|
130
139
|
borderRightColor: theme.darken('var(--button-group-color)'),
|
|
131
|
-
'&:disabled': {
|
|
140
|
+
'&:disabled, &[aria-disabled="true"]': {
|
|
132
141
|
borderRightColor: 'var(--disabledColor)'
|
|
133
142
|
}
|
|
134
143
|
}
|
|
@@ -138,7 +147,7 @@ const useStyles = makeStyles({
|
|
|
138
147
|
borderBottomWidth: 1,
|
|
139
148
|
borderBottomStyle: 'solid',
|
|
140
149
|
borderBottomColor: theme.darken('var(--button-group-color)'),
|
|
141
|
-
'&:disabled': {
|
|
150
|
+
'&:disabled, &[aria-disabled="true"]': {
|
|
142
151
|
borderBottomColor: 'var(--disabledColor)'
|
|
143
152
|
}
|
|
144
153
|
}
|
|
@@ -148,7 +157,7 @@ const useStyles = makeStyles({
|
|
|
148
157
|
'&:hover': {
|
|
149
158
|
borderColor: 'var(--button-group-color)'
|
|
150
159
|
},
|
|
151
|
-
'&:disabled': {
|
|
160
|
+
'&:disabled, &[aria-disabled="true"]': {
|
|
152
161
|
borderColor: 'var(--disabledColor) !important'
|
|
153
162
|
}
|
|
154
163
|
},
|
|
@@ -168,13 +177,15 @@ const useStyles = makeStyles({
|
|
|
168
177
|
borderBottomColor: 'transparent !important'
|
|
169
178
|
}
|
|
170
179
|
},
|
|
180
|
+
// Text buttons need no shared styles, but the key has to exist because the class is looked up
|
|
181
|
+
// dynamically as `grouped${capitalize(variant)}`.
|
|
171
182
|
groupedText: {},
|
|
172
183
|
groupedTextHorizontal: {
|
|
173
184
|
'&&:not(:last-of-type)': {
|
|
174
185
|
borderRightWidth: 1,
|
|
175
186
|
borderRightStyle: 'solid',
|
|
176
187
|
borderRightColor: `${theme.lighten('var(--button-group-color)', 0.5)}`,
|
|
177
|
-
'&:disabled': {
|
|
188
|
+
'&:disabled, &[aria-disabled="true"]': {
|
|
178
189
|
borderRightColor: 'var(--disabledColor)'
|
|
179
190
|
}
|
|
180
191
|
}
|
|
@@ -184,7 +195,7 @@ const useStyles = makeStyles({
|
|
|
184
195
|
borderBottomWidth: 1,
|
|
185
196
|
borderBottomStyle: 'solid',
|
|
186
197
|
borderBottomColor: `${theme.lighten('var(--button-group-color)', 0.5)}`,
|
|
187
|
-
'&:disabled': {
|
|
198
|
+
'&:disabled, &[aria-disabled="true"]': {
|
|
188
199
|
borderBottomColor: 'var(--disabledColor)'
|
|
189
200
|
}
|
|
190
201
|
}
|
|
@@ -192,4 +203,5 @@ const useStyles = makeStyles({
|
|
|
192
203
|
/* eslint-enable tss-unused-classes/unused-classes */
|
|
193
204
|
};
|
|
194
205
|
});
|
|
206
|
+
ButtonGroup.displayName = 'ButtonGroup';
|
|
195
207
|
export default ButtonGroup;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CircularProgress.d.ts","sourceRoot":"","sources":["../../../../components/v2/CircularProgress/CircularProgress.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAE1C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAIrE;;;GAGG;AACH,QAAA,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"CircularProgress.d.ts","sourceRoot":"","sources":["../../../../components/v2/CircularProgress/CircularProgress.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAE1C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAIrE;;;GAGG;AACH,QAAA,MAAM,gBAAgB,8FAiEpB,CAAC;AA0BH,QAAA,MAAM,SAAS;;cAuBN,CAAC;;;;;;CAoBR,CAAC;AAEH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,KAAK,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAC;IAC1C;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,OAAO,CAAC,EAAE,eAAe,GAAG,aAAa,CAAC;IAC1C;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;CAC5D;AAID,eAAe,gBAAgB,CAAC"}
|
|
@@ -17,6 +17,7 @@ const CircularProgress = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
17
17
|
thickness = 3.6,
|
|
18
18
|
style,
|
|
19
19
|
className,
|
|
20
|
+
classes: classesProp,
|
|
20
21
|
...other
|
|
21
22
|
} = props;
|
|
22
23
|
const {
|
|
@@ -26,7 +27,7 @@ const CircularProgress = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
26
27
|
color
|
|
27
28
|
}, {
|
|
28
29
|
props: {
|
|
29
|
-
classes:
|
|
30
|
+
classes: classesProp
|
|
30
31
|
}
|
|
31
32
|
});
|
|
32
33
|
const circleStyle = {};
|
|
@@ -40,10 +41,10 @@ const CircularProgress = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
40
41
|
rootStyle.transform = 'rotate(-90deg)';
|
|
41
42
|
}
|
|
42
43
|
return /*#__PURE__*/_jsx("div", {
|
|
43
|
-
className: cx(classes.root,
|
|
44
|
+
className: cx(classes.root, {
|
|
44
45
|
[classes.indeterminate]: variant === 'indeterminate',
|
|
45
46
|
[classes.determinate]: variant === 'determinate'
|
|
46
|
-
}),
|
|
47
|
+
}, 'engage__circular-progress', className),
|
|
47
48
|
style: {
|
|
48
49
|
width: size,
|
|
49
50
|
height: size,
|
|
@@ -52,6 +53,9 @@ const CircularProgress = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
52
53
|
},
|
|
53
54
|
ref: ref,
|
|
54
55
|
role: "progressbar",
|
|
56
|
+
"data-variant": variant,
|
|
57
|
+
"data-color": color,
|
|
58
|
+
"data-disable-shrink": disableShrink || undefined,
|
|
55
59
|
...rootProps,
|
|
56
60
|
...other,
|
|
57
61
|
children: /*#__PURE__*/_jsx("svg", {
|
|
@@ -108,8 +112,8 @@ const useStyles = makeStyles({
|
|
|
108
112
|
return {
|
|
109
113
|
root: {
|
|
110
114
|
display: 'inline-block',
|
|
111
|
-
'--
|
|
112
|
-
color: 'var(--
|
|
115
|
+
'--circular-progress-color': cssColor,
|
|
116
|
+
color: 'var(--circular-progress-color)'
|
|
113
117
|
},
|
|
114
118
|
svg: {
|
|
115
119
|
display: 'block'
|
|
@@ -136,4 +140,5 @@ const useStyles = makeStyles({
|
|
|
136
140
|
}
|
|
137
141
|
};
|
|
138
142
|
});
|
|
143
|
+
CircularProgress.displayName = 'CircularProgress';
|
|
139
144
|
export default CircularProgress;
|
|
@@ -1,6 +1,14 @@
|
|
|
1
|
+
import { push, pop, replace, reset, update } from '../router/helpers';
|
|
2
|
+
export interface Navigation {
|
|
3
|
+
push: typeof push;
|
|
4
|
+
pop: typeof pop;
|
|
5
|
+
replace: typeof replace;
|
|
6
|
+
reset: typeof reset;
|
|
7
|
+
update: typeof update;
|
|
8
|
+
}
|
|
1
9
|
/**
|
|
2
10
|
* Provides functions for navigation.
|
|
3
|
-
* @returns
|
|
11
|
+
* @returns The navigation functions.
|
|
4
12
|
*/
|
|
5
|
-
export function useNavigation():
|
|
13
|
+
export declare function useNavigation(): Navigation;
|
|
6
14
|
//# sourceMappingURL=useNavigation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNavigation.d.ts","sourceRoot":"","sources":["../../../core/hooks/useNavigation.
|
|
1
|
+
{"version":3,"file":"useNavigation.d.ts","sourceRoot":"","sources":["../../../core/hooks/useNavigation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAClC,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,IAAI,CAAC;IAClB,GAAG,EAAE,OAAO,GAAG,CAAC;IAChB,OAAO,EAAE,OAAO,OAAO,CAAC;IACxB,KAAK,EAAE,OAAO,KAAK,CAAC;IACpB,MAAM,EAAE,OAAO,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,UAAU,CAQ1C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../core/initialization/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,IAAI,UAAU,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../core/initialization/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,IAAI,UAAU,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAqB5D,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,YAAY,CAAC,EAAE;YACb,YAAY,EAAE,OAAO,CAAC;YACtB,KAAK,EAAE,OAAO,CAAC;SAChB,CAAC;KACH;CACF;AAED;;;;;;;;GAQG;AACH,KAAK,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,UAAU,CAAC,GAAG;IAClE,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC;CACxC,CAAC;AAMF;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,GACrB,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,UAAU,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,EAC9C,aAAa,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC;;EA4ElD,CAAC"}
|