@shopgate/pwa-ui-shared 7.30.3 → 7.31.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (326) hide show
  1. package/ActionButton/index.js +66 -67
  2. package/AddToCartButton/index.js +217 -185
  3. package/Availability/index.js +24 -6
  4. package/Button/index.js +105 -82
  5. package/Button/spec.js +3 -4
  6. package/Card/index.js +26 -7
  7. package/CardList/components/Item/index.js +15 -3
  8. package/CartTotalLine/components/Amount/index.js +13 -4
  9. package/CartTotalLine/components/Hint/index.js +13 -4
  10. package/CartTotalLine/components/Label/index.js +23 -10
  11. package/CartTotalLine/index.js +41 -7
  12. package/Checkbox/index.js +41 -17
  13. package/Chip/index.js +82 -7
  14. package/ContextMenu/components/Item/index.js +38 -20
  15. package/ContextMenu/components/Position/index.js +38 -56
  16. package/ContextMenu/index.js +64 -28
  17. package/Dialog/components/BasicDialog/index.js +1 -0
  18. package/Dialog/components/HtmlContentDialog/spec.js +39 -0
  19. package/Dialog/components/PipelineErrorDialog/index.js +108 -157
  20. package/Dialog/components/PipelineErrorDialog/spec.js +12 -18
  21. package/Dialog/components/TextMessageDialog/index.js +1 -1
  22. package/Dialog/components/VariantSelectModal/index.js +1 -1
  23. package/Dialog/index.js +1 -1
  24. package/DiscountBadge/index.js +48 -15
  25. package/FavoritesButton/index.js +95 -100
  26. package/FavoritesButton/spec.js +5 -2
  27. package/Form/Builder/classes/ActionListener/index.js +1 -0
  28. package/Form/Checkbox/index.js +64 -56
  29. package/Form/InfoField/index.js +18 -6
  30. package/Form/Password/index.js +39 -52
  31. package/Form/RadioGroup/components/Item/index.js +72 -56
  32. package/Form/RadioGroup/index.js +79 -90
  33. package/Form/Select/index.js +108 -130
  34. package/Form/SelectContextChoices/index.js +30 -8
  35. package/Form/TextField/index.js +106 -82
  36. package/Form/TextField/spec.js +4 -3
  37. package/FormElement/components/ErrorText/index.js +32 -14
  38. package/FormElement/components/Label/index.js +56 -6
  39. package/FormElement/components/Placeholder/index.js +44 -11
  40. package/FormElement/components/Underline/index.js +63 -12
  41. package/FormElement/index.js +62 -85
  42. package/Glow/index.js +73 -83
  43. package/IndicatorCircle/index.js +73 -17
  44. package/IndicatorCircle/spec.js +2 -5
  45. package/LoadingIndicator/index.js +34 -12
  46. package/Manufacturer/index.js +21 -10
  47. package/MessageBar/index.js +12 -38
  48. package/NoResults/components/Icon/index.js +30 -14
  49. package/NoResults/index.js +35 -7
  50. package/Placeholder/index.js +34 -23
  51. package/PlaceholderLabel/index.js +17 -3
  52. package/Price/index.js +34 -21
  53. package/PriceInfo/index.js +23 -9
  54. package/PriceStriked/index.js +67 -77
  55. package/ProgressBar/index.js +112 -77
  56. package/RadioButton/index.js +29 -11
  57. package/RatingStars/index.js +122 -137
  58. package/Ripple/components/RippleAnimation/index.js +13 -3
  59. package/Ripple/index.js +158 -212
  60. package/RippleButton/index.js +63 -60
  61. package/RippleButton/spec.js +15 -9
  62. package/ScannerOverlay/components/CameraOverlay/index.js +54 -10
  63. package/ScannerOverlay/components/ScannerBar/components/FlashlightButton/index.js +53 -27
  64. package/ScannerOverlay/components/ScannerBar/index.js +50 -26
  65. package/Sheet/components/Header/components/SearchBar/index.js +54 -10
  66. package/Sheet/components/Header/index.js +96 -76
  67. package/Sheet/index.js +295 -157
  68. package/Sheet/spec.js +8 -6
  69. package/TaxDisclaimer/index.js +17 -4
  70. package/TaxDisclaimer/spec.js +16 -5
  71. package/TextField/components/ErrorText/index.js +35 -14
  72. package/TextField/components/FormElement/index.js +29 -4
  73. package/TextField/components/Hint/index.js +39 -10
  74. package/TextField/components/Label/index.js +43 -6
  75. package/TextField/components/Underline/index.js +64 -13
  76. package/TextField/index.js +157 -171
  77. package/TextField/spec.js +5 -3
  78. package/icons/AccountBoxIcon.d.ts +7 -0
  79. package/icons/AccountBoxIcon.d.ts.map +1 -0
  80. package/icons/AccountBoxIcon.js +1 -4
  81. package/icons/AddMoreIcon.d.ts +7 -0
  82. package/icons/AddMoreIcon.d.ts.map +1 -0
  83. package/icons/AddMoreIcon.js +0 -3
  84. package/icons/ArrowDropIcon.d.ts +7 -0
  85. package/icons/ArrowDropIcon.d.ts.map +1 -0
  86. package/icons/ArrowDropIcon.js +0 -3
  87. package/icons/ArrowIcon.d.ts +10 -0
  88. package/icons/ArrowIcon.d.ts.map +1 -0
  89. package/icons/ArrowIcon.js +2 -11
  90. package/icons/BarcodeScannerIcon.d.ts +7 -0
  91. package/icons/BarcodeScannerIcon.d.ts.map +1 -0
  92. package/icons/BarcodeScannerIcon.js +0 -3
  93. package/icons/BoxIcon.d.ts +7 -0
  94. package/icons/BoxIcon.d.ts.map +1 -0
  95. package/icons/BoxIcon.js +0 -3
  96. package/icons/BrowseIcon.d.ts +7 -0
  97. package/icons/BrowseIcon.d.ts.map +1 -0
  98. package/icons/BrowseIcon.js +1 -3
  99. package/icons/BurgerIcon.d.ts +7 -0
  100. package/icons/BurgerIcon.d.ts.map +1 -0
  101. package/icons/BurgerIcon.js +0 -3
  102. package/icons/CalendarIcon.d.ts +7 -0
  103. package/icons/CalendarIcon.d.ts.map +1 -0
  104. package/icons/CalendarIcon.js +0 -2
  105. package/icons/CartCouponIcon.d.ts +7 -0
  106. package/icons/CartCouponIcon.d.ts.map +1 -0
  107. package/icons/CartCouponIcon.js +0 -2
  108. package/icons/CartIcon.d.ts +7 -0
  109. package/icons/CartIcon.d.ts.map +1 -0
  110. package/icons/CartIcon.js +0 -2
  111. package/icons/CartPlusIcon.d.ts +7 -0
  112. package/icons/CartPlusIcon.d.ts.map +1 -0
  113. package/icons/CartPlusIcon.js +0 -2
  114. package/icons/CheckIcon.d.ts +7 -0
  115. package/icons/CheckIcon.d.ts.map +1 -0
  116. package/icons/CheckIcon.js +0 -2
  117. package/icons/CheckedIcon.d.ts +7 -0
  118. package/icons/CheckedIcon.d.ts.map +1 -0
  119. package/icons/CheckedIcon.js +0 -3
  120. package/icons/ChevronIcon.d.ts +7 -0
  121. package/icons/ChevronIcon.d.ts.map +1 -0
  122. package/icons/ChevronIcon.js +0 -2
  123. package/icons/CreditCardIcon.d.ts +7 -0
  124. package/icons/CreditCardIcon.d.ts.map +1 -0
  125. package/icons/CreditCardIcon.js +0 -2
  126. package/icons/CrossIcon.d.ts +7 -0
  127. package/icons/CrossIcon.d.ts.map +1 -0
  128. package/icons/CrossIcon.js +0 -2
  129. package/icons/DescriptionIcon.d.ts +7 -0
  130. package/icons/DescriptionIcon.d.ts.map +1 -0
  131. package/icons/DescriptionIcon.js +0 -2
  132. package/icons/FilterIcon.d.ts +7 -0
  133. package/icons/FilterIcon.d.ts.map +1 -0
  134. package/icons/FilterIcon.js +0 -2
  135. package/icons/FlashDisabledIcon.d.ts +7 -0
  136. package/icons/FlashDisabledIcon.d.ts.map +1 -0
  137. package/icons/FlashDisabledIcon.js +0 -2
  138. package/icons/FlashEnabledIcon.d.ts +7 -0
  139. package/icons/FlashEnabledIcon.d.ts.map +1 -0
  140. package/icons/FlashEnabledIcon.js +0 -2
  141. package/icons/GridIcon.d.ts +7 -0
  142. package/icons/GridIcon.d.ts.map +1 -0
  143. package/icons/GridIcon.js +1 -3
  144. package/icons/HeartIcon.d.ts +7 -0
  145. package/icons/HeartIcon.d.ts.map +1 -0
  146. package/icons/HeartIcon.js +0 -2
  147. package/icons/HeartOutlineIcon.d.ts +7 -0
  148. package/icons/HeartOutlineIcon.d.ts.map +1 -0
  149. package/icons/HeartOutlineIcon.js +1 -3
  150. package/icons/HeartPlusIcon.d.ts +7 -0
  151. package/icons/HeartPlusIcon.d.ts.map +1 -0
  152. package/icons/HeartPlusIcon.js +1 -3
  153. package/icons/HeartPlusOutlineIcon.d.ts +7 -0
  154. package/icons/HeartPlusOutlineIcon.d.ts.map +1 -0
  155. package/icons/HeartPlusOutlineIcon.js +1 -3
  156. package/icons/HomeIcon.d.ts +7 -0
  157. package/icons/HomeIcon.d.ts.map +1 -0
  158. package/icons/HomeIcon.js +0 -2
  159. package/icons/InfoIcon.d.ts +7 -0
  160. package/icons/InfoIcon.d.ts.map +1 -0
  161. package/icons/InfoIcon.js +0 -2
  162. package/icons/InfoOutlineIcon.d.ts +7 -0
  163. package/icons/InfoOutlineIcon.d.ts.map +1 -0
  164. package/icons/InfoOutlineIcon.js +0 -2
  165. package/icons/ListIcon.d.ts +7 -0
  166. package/icons/ListIcon.d.ts.map +1 -0
  167. package/icons/ListIcon.js +0 -2
  168. package/icons/LocalShippingIcon.d.ts +7 -0
  169. package/icons/LocalShippingIcon.d.ts.map +1 -0
  170. package/icons/LocalShippingIcon.js +0 -2
  171. package/icons/LocationIcon.d.ts +7 -0
  172. package/icons/LocationIcon.d.ts.map +1 -0
  173. package/icons/LocationIcon.js +1 -4
  174. package/icons/LocatorIcon.d.ts +7 -0
  175. package/icons/LocatorIcon.d.ts.map +1 -0
  176. package/icons/LocatorIcon.js +1 -3
  177. package/icons/LockIcon.d.ts +9 -0
  178. package/icons/LockIcon.d.ts.map +1 -0
  179. package/icons/LockIcon.js +1 -2
  180. package/icons/LogoutIcon.d.ts +7 -0
  181. package/icons/LogoutIcon.d.ts.map +1 -0
  182. package/icons/LogoutIcon.js +0 -2
  183. package/icons/MagnifierIcon.d.ts +7 -0
  184. package/icons/MagnifierIcon.d.ts.map +1 -0
  185. package/icons/MagnifierIcon.js +0 -2
  186. package/icons/MapMarkerIcon.d.ts +7 -0
  187. package/icons/MapMarkerIcon.d.ts.map +1 -0
  188. package/icons/MapMarkerIcon.js +1 -3
  189. package/icons/MoreIcon.d.ts +7 -0
  190. package/icons/MoreIcon.d.ts.map +1 -0
  191. package/icons/MoreIcon.js +1 -3
  192. package/icons/MoreVertIcon.d.ts +7 -0
  193. package/icons/MoreVertIcon.d.ts.map +1 -0
  194. package/icons/MoreVertIcon.js +1 -3
  195. package/icons/NotificationIcon.d.ts +7 -0
  196. package/icons/NotificationIcon.d.ts.map +1 -0
  197. package/icons/NotificationIcon.js +1 -3
  198. package/icons/PersonIcon.d.ts +9 -0
  199. package/icons/PersonIcon.d.ts.map +1 -0
  200. package/icons/PersonIcon.js +0 -3
  201. package/icons/PhoneIcon.d.ts +7 -0
  202. package/icons/PhoneIcon.d.ts.map +1 -0
  203. package/icons/PhoneIcon.js +1 -4
  204. package/icons/PlaceholderIcon.d.ts +7 -0
  205. package/icons/PlaceholderIcon.d.ts.map +1 -0
  206. package/icons/PlaceholderIcon.js +0 -2
  207. package/icons/RadioCheckedIcon.d.ts +10 -0
  208. package/icons/RadioCheckedIcon.d.ts.map +1 -0
  209. package/icons/RadioCheckedIcon.js +0 -2
  210. package/icons/RadioUncheckedIcon.d.ts +10 -0
  211. package/icons/RadioUncheckedIcon.d.ts.map +1 -0
  212. package/icons/RadioUncheckedIcon.js +0 -2
  213. package/icons/SecurityIcon.d.ts +7 -0
  214. package/icons/SecurityIcon.d.ts.map +1 -0
  215. package/icons/SecurityIcon.js +0 -2
  216. package/icons/ShippingMethodIcon.d.ts +7 -0
  217. package/icons/ShippingMethodIcon.d.ts.map +1 -0
  218. package/icons/ShippingMethodIcon.js +0 -2
  219. package/icons/ShoppingCartIcon.d.ts +7 -0
  220. package/icons/ShoppingCartIcon.d.ts.map +1 -0
  221. package/icons/ShoppingCartIcon.js +0 -2
  222. package/icons/SortIcon.d.ts +7 -0
  223. package/icons/SortIcon.d.ts.map +1 -0
  224. package/icons/SortIcon.js +0 -2
  225. package/icons/StarHalfIcon.d.ts +7 -0
  226. package/icons/StarHalfIcon.d.ts.map +1 -0
  227. package/icons/StarHalfIcon.js +0 -9
  228. package/icons/StarIcon.d.ts +7 -0
  229. package/icons/StarIcon.d.ts.map +1 -0
  230. package/icons/StarIcon.js +0 -9
  231. package/icons/StarOutlineIcon.d.ts +7 -0
  232. package/icons/StarOutlineIcon.d.ts.map +1 -0
  233. package/icons/StarOutlineIcon.js +0 -2
  234. package/icons/StopIcon.d.ts +7 -0
  235. package/icons/StopIcon.d.ts.map +1 -0
  236. package/icons/StopIcon.js +0 -2
  237. package/icons/TickIcon.d.ts +7 -0
  238. package/icons/TickIcon.d.ts.map +1 -0
  239. package/icons/TickIcon.js +0 -2
  240. package/icons/TimeIcon.d.ts +7 -0
  241. package/icons/TimeIcon.d.ts.map +1 -0
  242. package/icons/TimeIcon.js +0 -2
  243. package/icons/TrashIcon.d.ts +7 -0
  244. package/icons/TrashIcon.d.ts.map +1 -0
  245. package/icons/TrashIcon.js +0 -3
  246. package/icons/TrashOutlineIcon.d.ts +8 -0
  247. package/icons/TrashOutlineIcon.d.ts.map +1 -0
  248. package/icons/TrashOutlineIcon.js +0 -2
  249. package/icons/UncheckedIcon.d.ts +7 -0
  250. package/icons/UncheckedIcon.d.ts.map +1 -0
  251. package/icons/UncheckedIcon.js +0 -2
  252. package/icons/ViewListIcon.d.ts +7 -0
  253. package/icons/ViewListIcon.d.ts.map +1 -0
  254. package/icons/ViewListIcon.js +0 -2
  255. package/icons/VisibilityIcon.d.ts +8 -0
  256. package/icons/VisibilityIcon.d.ts.map +1 -0
  257. package/icons/VisibilityIcon.js +2 -4
  258. package/icons/VisibilityOffIcon.d.ts +8 -0
  259. package/icons/VisibilityOffIcon.d.ts.map +1 -0
  260. package/icons/VisibilityOffIcon.js +2 -4
  261. package/icons/WarningIcon.d.ts +7 -0
  262. package/icons/WarningIcon.d.ts.map +1 -0
  263. package/icons/WarningIcon.js +1 -3
  264. package/package.json +5 -5
  265. package/tsconfig.build.json +16 -0
  266. package/tsconfig.json +3 -0
  267. package/ActionButton/style.js +0 -22
  268. package/AddToCartButton/style.js +0 -148
  269. package/Availability/style.js +0 -19
  270. package/Button/style.js +0 -155
  271. package/Card/style.js +0 -11
  272. package/CardList/components/Item/style.js +0 -7
  273. package/CartTotalLine/components/Amount/style.js +0 -8
  274. package/CartTotalLine/components/Hint/style.js +0 -12
  275. package/CartTotalLine/components/Label/style.js +0 -17
  276. package/CartTotalLine/style.js +0 -31
  277. package/Checkbox/style.js +0 -18
  278. package/Chip/style.js +0 -78
  279. package/ContextMenu/components/Item/style.js +0 -34
  280. package/ContextMenu/components/Position/style.js +0 -11
  281. package/ContextMenu/style.js +0 -45
  282. package/DiscountBadge/style.js +0 -36
  283. package/FavoritesButton/style.js +0 -26
  284. package/Form/Checkbox/style.js +0 -25
  285. package/Form/InfoField/style.js +0 -11
  286. package/Form/Password/style.js +0 -11
  287. package/Form/RadioGroup/components/Item/style.js +0 -32
  288. package/Form/RadioGroup/style.js +0 -20
  289. package/Form/Select/style.js +0 -27
  290. package/Form/SelectContextChoices/style.js +0 -23
  291. package/Form/TextField/style.js +0 -70
  292. package/FormElement/components/ErrorText/style.js +0 -13
  293. package/FormElement/components/Label/style.js +0 -89
  294. package/FormElement/components/Placeholder/style.js +0 -56
  295. package/FormElement/components/Underline/style.js +0 -60
  296. package/FormElement/style.js +0 -14
  297. package/Glow/style.js +0 -18
  298. package/IndicatorCircle/style.js +0 -65
  299. package/LoadingIndicator/style.js +0 -20
  300. package/Manufacturer/style.js +0 -5
  301. package/MessageBar/spec.js +0 -80
  302. package/MessageBar/style.js +0 -38
  303. package/NoResults/components/Icon/style.js +0 -17
  304. package/NoResults/style.js +0 -31
  305. package/Placeholder/style.js +0 -11
  306. package/PlaceholderLabel/style.js +0 -12
  307. package/Price/style.js +0 -22
  308. package/PriceInfo/style.js +0 -5
  309. package/PriceStriked/style.js +0 -36
  310. package/ProgressBar/style.js +0 -85
  311. package/RadioButton/style.js +0 -21
  312. package/RatingStars/style.js +0 -53
  313. package/Ripple/style.js +0 -18
  314. package/ScannerOverlay/components/CameraOverlay/style.js +0 -40
  315. package/ScannerOverlay/components/ScannerBar/components/FlashlightButton/style.js +0 -28
  316. package/ScannerOverlay/components/ScannerBar/style.js +0 -20
  317. package/Sheet/components/Header/components/SearchBar/style.js +0 -47
  318. package/Sheet/components/Header/style.js +0 -50
  319. package/Sheet/style.js +0 -143
  320. package/TaxDisclaimer/style.js +0 -9
  321. package/TextField/components/ErrorText/style.js +0 -27
  322. package/TextField/components/FormElement/style.js +0 -34
  323. package/TextField/components/Hint/style.js +0 -46
  324. package/TextField/components/Label/style.js +0 -80
  325. package/TextField/components/Underline/style.js +0 -60
  326. package/TextField/style.js +0 -35
@@ -2,39 +2,65 @@ import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import { SurroundPortals, ToggleIcon, FlashEnabledIcon, FlashDisabledIcon } from '@shopgate/engage/components';
4
4
  import { SCANNER_FLASH } from '@shopgate/engage/scanner/constants';
5
- import { i18n } from '@shopgate/engage/core';
6
- import styles from "./style";
5
+ import { i18n } from '@shopgate/engage/core/helpers';
6
+ import { makeStyles } from '@shopgate/engage/styles';
7
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
+ const useStyles = makeStyles()({
9
+ button: {
10
+ alignItems: 'center',
11
+ color: 'inherit',
12
+ display: 'flex',
13
+ flexShrink: 0,
14
+ fontSize: 24,
15
+ height: 44,
16
+ justifyContent: 'center',
17
+ outline: 0,
18
+ padding: 0,
19
+ position: 'relative',
20
+ width: 44,
21
+ zIndex: 1
22
+ },
23
+ icon: {
24
+ boxSizing: 'content-box',
25
+ color: 'var(--color-secondary)'
26
+ }
27
+ });
7
28
 
8
29
  /**
9
- * The FlashlightButton component.
30
+ * Renders the flashlight button for the scanner bar.
31
+ * @param {Object} props Props.
10
32
  * @returns {JSX.Element}
11
33
  */
12
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
34
  const FlashlightButton = ({
14
35
  flashlightState,
15
36
  onToggle
16
- }) => /*#__PURE__*/_jsxs(SurroundPortals, {
17
- portalName: SCANNER_FLASH,
18
- children: [/*#__PURE__*/_jsx("button", {
19
- className: styles.button,
20
- onClick: onToggle,
21
- role: "link",
22
- type: "button",
23
- "aria-label": i18n.text(flashlightState ? 'scanner.flashlight.switchOff' : 'scanner.flashlight.switchOn'),
24
- children: /*#__PURE__*/_jsx(ToggleIcon, {
25
- on: flashlightState,
26
- onIcon: /*#__PURE__*/_jsx(FlashEnabledIcon, {
27
- className: styles.icon
28
- }),
29
- offIcon: /*#__PURE__*/_jsx(FlashDisabledIcon, {
30
- className: styles.icon
37
+ }) => {
38
+ const {
39
+ classes
40
+ } = useStyles();
41
+ return /*#__PURE__*/_jsxs(SurroundPortals, {
42
+ portalName: SCANNER_FLASH,
43
+ children: [/*#__PURE__*/_jsx("button", {
44
+ className: classes.button,
45
+ onClick: onToggle,
46
+ role: "link",
47
+ type: "button",
48
+ "aria-label": i18n.text(flashlightState ? 'scanner.flashlight.switchOff' : 'scanner.flashlight.switchOn'),
49
+ children: /*#__PURE__*/_jsx(ToggleIcon, {
50
+ on: flashlightState,
51
+ onIcon: /*#__PURE__*/_jsx(FlashEnabledIcon, {
52
+ className: classes.icon
53
+ }),
54
+ offIcon: /*#__PURE__*/_jsx(FlashDisabledIcon, {
55
+ className: classes.icon
56
+ })
31
57
  })
32
- })
33
- }), /*#__PURE__*/_jsx("div", {
34
- className: "sr-only",
35
- role: "status",
36
- "aria-live": "polite",
37
- children: i18n.text(flashlightState ? 'scanner.flashlight.on' : 'scanner.flashlight.off')
38
- })]
39
- });
58
+ }), /*#__PURE__*/_jsx("div", {
59
+ className: "sr-only",
60
+ role: "status",
61
+ "aria-live": "polite",
62
+ children: i18n.text(flashlightState ? 'scanner.flashlight.on' : 'scanner.flashlight.off')
63
+ })]
64
+ });
65
+ };
40
66
  export default FlashlightButton;
@@ -3,38 +3,62 @@ import { createPortal } from 'react-dom';
3
3
  import PropTypes from 'prop-types';
4
4
  import { Grid, SurroundPortals } from '@shopgate/engage/components';
5
5
  import { SCANNER_BAR } from '@shopgate/engage/scanner/constants';
6
+ import { themeShadows, themeColors } from '@shopgate/pwa-common/helpers/config';
7
+ import { makeStyles } from '@shopgate/engage/styles';
6
8
  import FlashlightButton from "./components/FlashlightButton";
7
9
  import ScannerInstructions from "./components/ScannerInstructions";
8
- import styles from "./style";
10
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
+ const useStyles = makeStyles()(theme => ({
12
+ container: {
13
+ bottom: 0,
14
+ backgroundColor: themeColors.overlay,
15
+ boxShadow: themeShadows.scannerBar,
16
+ fontSize: 14,
17
+ alignItems: 'center',
18
+ paddingBottom: 'var(--safe-area-inset-bottom)'
19
+ },
20
+ column: {
21
+ margin: theme.spacing(2),
22
+ ':not(:first-of-type)': {
23
+ marginLeft: 0
24
+ }
25
+ }
26
+ }));
9
27
 
10
28
  /**
11
- * @param {Object} props The component props.
12
- * @param {boolean} props.flashlightState The on/off state of the flashlight.
13
- * @param {Function} props.onToggleFlashlight The toggle event triggered by the user.
14
- * @returns {React.ReactPortal} A React portal that renders the scanner bar in the AppFooter.
29
+ * Renders the scanner bar into `#AppFooter` via a portal.
30
+ * @param {Object} props Props.
31
+ * @param {boolean} props.flashlightState Flashlight on/off.
32
+ * @param {Function} props.onToggleFlashlight Toggle handler.
33
+ * @returns {React.ReactPortal}
15
34
  */
16
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
17
35
  const ScannerBar = ({
18
36
  flashlightState,
19
37
  onToggleFlashlight
20
- }) => /*#__PURE__*/createPortal(/*#__PURE__*/_jsx(SurroundPortals, {
21
- portalName: SCANNER_BAR,
22
- portalProps: {
23
- flashlightState,
24
- onToggleFlashlight
25
- },
26
- children: /*#__PURE__*/_jsxs(Grid, {
27
- className: `${styles.container} ui-shared__scanner-bar`,
28
- children: [/*#__PURE__*/_jsx(Grid.Item, {
29
- className: styles.column,
30
- children: /*#__PURE__*/_jsx(FlashlightButton, {
31
- onToggle: onToggleFlashlight,
32
- flashlightState: flashlightState
33
- })
34
- }), /*#__PURE__*/_jsx(Grid.Item, {
35
- className: styles.column,
36
- children: /*#__PURE__*/_jsx(ScannerInstructions, {})
37
- })]
38
- })
39
- }), document.getElementById('AppFooter'));
38
+ }) => {
39
+ const {
40
+ classes,
41
+ cx
42
+ } = useStyles();
43
+ return /*#__PURE__*/createPortal(/*#__PURE__*/_jsx(SurroundPortals, {
44
+ portalName: SCANNER_BAR,
45
+ portalProps: {
46
+ flashlightState,
47
+ onToggleFlashlight
48
+ },
49
+ children: /*#__PURE__*/_jsxs(Grid, {
50
+ className: cx(classes.container, 'ui-shared__scanner-bar'),
51
+ children: [/*#__PURE__*/_jsx(Grid.Item, {
52
+ className: classes.column,
53
+ children: /*#__PURE__*/_jsx(FlashlightButton, {
54
+ onToggle: onToggleFlashlight,
55
+ flashlightState: flashlightState
56
+ })
57
+ }), /*#__PURE__*/_jsx(Grid.Item, {
58
+ className: classes.column,
59
+ children: /*#__PURE__*/_jsx(ScannerInstructions, {})
60
+ })]
61
+ })
62
+ }), document.getElementById('AppFooter'));
63
+ };
40
64
  export default ScannerBar;
@@ -1,36 +1,80 @@
1
1
  import React, { useState } from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import classNames from 'classnames';
4
- import I18n from '@shopgate/pwa-common/components/I18n';
3
+ import { I18n } from '@shopgate/engage/components';
5
4
  import Input from '@shopgate/pwa-common/components/Input';
5
+ import { themeColors } from '@shopgate/pwa-common/helpers/config';
6
+ import { makeStyles } from '@shopgate/engage/styles';
6
7
  import MagnifierIcon from "../../../../../icons/MagnifierIcon";
7
- import styles from "./style";
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ const useStyles = makeStyles()({
10
+ container: {
11
+ display: 'flex',
12
+ flexDirection: 'row',
13
+ flexWrap: 'nowrap',
14
+ marginBottom: 4,
15
+ paddingLeft: 16,
16
+ paddingRight: 16,
17
+ paddingTop: 5,
18
+ paddingBottom: 10
19
+ },
20
+ inputWrapper: {
21
+ position: 'relative',
22
+ flexGrow: 1
23
+ },
24
+ input: {
25
+ borderRadius: 10,
26
+ width: '100%',
27
+ padding: '4px 10px 4px 30px',
28
+ lineHeight: '28px',
29
+ outline: 'none',
30
+ background: themeColors.shade7,
31
+ verticalAlign: 'middle',
32
+ WebkitAppearance: 'none'
33
+ },
34
+ label: {
35
+ alignItems: 'center',
36
+ color: themeColors.shade3,
37
+ display: 'flex',
38
+ height: '36px',
39
+ position: 'absolute',
40
+ pointerEvents: 'none',
41
+ width: '100%'
42
+ },
43
+ icon: {
44
+ padding: '0 6px',
45
+ color: themeColors.shade3,
46
+ fontSize: '1.235rem'
47
+ }
48
+ });
8
49
 
9
50
  /**
10
- * @return {JSX}
51
+ * @param {Object} props Props.
52
+ * @returns {JSX.Element}
11
53
  */
12
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
54
  const SearchBar = ({
14
55
  handleChange
15
56
  }) => {
57
+ const {
58
+ classes
59
+ } = useStyles();
16
60
  const [query, setQuery] = useState('');
17
61
  const name = 'search';
18
62
  return /*#__PURE__*/_jsx("div", {
19
63
  className: "ui-shared__sheet__search-field",
20
64
  "data-test-id": "SearchField",
21
65
  children: /*#__PURE__*/_jsx("div", {
22
- className: styles.container,
66
+ className: classes.container,
23
67
  children: /*#__PURE__*/_jsx("div", {
24
- className: styles.inputWrapper,
68
+ className: classes.inputWrapper,
25
69
  children: /*#__PURE__*/_jsxs("form", {
26
70
  onSubmit: e => {
27
71
  e.preventDefault();
28
72
  },
29
73
  children: [/*#__PURE__*/_jsxs("label", {
30
74
  htmlFor: name,
31
- className: styles.label,
75
+ className: classes.label,
32
76
  children: [/*#__PURE__*/_jsx("div", {
33
- className: styles.icon,
77
+ className: classes.icon,
34
78
  children: /*#__PURE__*/_jsx(MagnifierIcon, {})
35
79
  }), !query.length && /*#__PURE__*/_jsx(I18n.Text, {
36
80
  string: "search.placeholder"
@@ -38,7 +82,7 @@ const SearchBar = ({
38
82
  }), /*#__PURE__*/_jsx(Input, {
39
83
  name: name,
40
84
  autoComplete: false,
41
- className: classNames(styles.input),
85
+ className: classes.input,
42
86
  onChange: value => {
43
87
  handleChange(value);
44
88
  setQuery(value);
@@ -1,85 +1,108 @@
1
- import _inheritsLoose from "@babel/runtime/helpers/inheritsLoose";
2
- import React, { Component } from 'react';
1
+ import React, { memo } from 'react';
3
2
  import PropTypes from 'prop-types';
4
- import classNames from 'classnames';
5
3
  import Grid from '@shopgate/pwa-common/components/Grid';
4
+ import { i18n } from '@shopgate/engage/core/helpers';
5
+ import { themeConfig } from '@shopgate/pwa-common/helpers/config';
6
+ import { makeStyles } from '@shopgate/engage/styles';
6
7
  import Ripple from "../../../Ripple";
7
8
  import CrossIcon from "../../../icons/CrossIcon";
8
- import styles from "./style";
9
9
  import SearchBar from "./components/SearchBar";
10
-
11
- /**
12
- * Header component.
13
- */
14
10
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
15
- let Header = /*#__PURE__*/function (_Component) {
16
- function Header() {
17
- return _Component.apply(this, arguments) || this;
18
- }
19
- _inheritsLoose(Header, _Component);
20
- var _proto = Header.prototype;
21
- /**
22
- * @param {Object} nextProps Next Props
23
- * @returns {boolean}
24
- */
25
- _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {
26
- return this.props.shadow !== nextProps.shadow || this.props.title !== nextProps.title;
11
+ const useStyles = makeStyles()(theme => ({
12
+ wrapper: {
13
+ position: 'relative',
14
+ zIndex: 2
15
+ },
16
+ closePlaceholder: {
17
+ height: themeConfig.variables.navigator.height,
18
+ padding: 0,
19
+ lineHeight: 1
20
+ },
21
+ closeButton: {
22
+ lineHeight: 1,
23
+ outline: 0,
24
+ padding: 0,
25
+ minWidth: themeConfig.variables.navigator.height,
26
+ height: themeConfig.variables.navigator.height,
27
+ position: 'relative',
28
+ zIndex: 2,
29
+ color: theme.palette.text.primary
30
+ },
31
+ closeIcon: {
32
+ display: 'flex',
33
+ height: '100%',
34
+ width: '100%',
35
+ justifyContent: 'center',
36
+ alignItems: 'center'
37
+ },
38
+ title: {
39
+ fontSize: '1.25rem',
40
+ fontWeight: 500,
41
+ position: 'relative',
42
+ alignItems: 'center',
43
+ padding: theme.spacing(0, 2),
44
+ overflow: 'hidden',
45
+ textOverflow: 'ellipsis',
46
+ whiteSpace: 'nowrap',
47
+ alignSelf: 'center'
48
+ },
49
+ headerShadow: {
50
+ boxShadow: themeConfig.shadows.material
27
51
  }
52
+ }));
28
53
 
29
- /**
30
- * Renders the component.
31
- * @returns {JSX}
32
- */;
33
- _proto.render = function render() {
34
- const {
35
- allowClose
36
- } = this.props;
37
- const classes = classNames(styles.wrapper);
38
- const {
39
- __
40
- } = this.context.i18n();
41
- return /*#__PURE__*/_jsxs("div", {
42
- className: classNames({
43
- [styles.shadow]: this.props.shadow
44
- }),
45
- children: [/*#__PURE__*/_jsxs(Grid, {
46
- className: classes,
47
- component: "div",
48
- wrap: false,
49
- children: [allowClose ? /*#__PURE__*/_jsx("button", {
50
- className: styles.closeButton,
51
- onClick: this.props.onToggleClose,
52
- "aria-label": __('common.close'),
53
- type: "button",
54
- children: /*#__PURE__*/_jsx(Ripple, {
55
- className: styles.closeIcon,
56
- children: /*#__PURE__*/_jsx(CrossIcon, {
57
- size: 24
58
- })
59
- })
60
- }) : /*#__PURE__*/_jsx("div", {
61
- className: styles.closePlaceholder
62
- }), /*#__PURE__*/_jsx(Grid.Item, {
63
- className: styles.title,
64
- component: "div",
65
- grow: 1,
66
- role: "heading",
67
- ...(allowClose ? {
68
- tabIndex: 0
69
- } : null),
70
- children: this.props.title
71
- })]
72
- }), this.props.showSearch && /*#__PURE__*/_jsx(SearchBar, {
73
- handleChange: this.props.handleChange
74
- })]
75
- });
76
- };
77
- return Header;
78
- }(Component);
79
54
  /**
80
- * The component's default props.
81
- * @type {Object}
55
+ * @param {Object} props Props.
56
+ * @returns {JSX.Element}
82
57
  */
58
+ const Header = ({
59
+ title,
60
+ allowClose,
61
+ handleChange,
62
+ onToggleClose,
63
+ shadow,
64
+ showSearch
65
+ }) => {
66
+ const {
67
+ classes,
68
+ cx
69
+ } = useStyles();
70
+ return /*#__PURE__*/_jsxs("div", {
71
+ className: cx({
72
+ [classes.headerShadow]: shadow
73
+ }),
74
+ children: [/*#__PURE__*/_jsxs(Grid, {
75
+ className: classes.wrapper,
76
+ component: "div",
77
+ wrap: false,
78
+ children: [allowClose ? /*#__PURE__*/_jsx("button", {
79
+ className: classes.closeButton,
80
+ onClick: onToggleClose,
81
+ "aria-label": i18n.text('common.close'),
82
+ type: "button",
83
+ children: /*#__PURE__*/_jsx(Ripple, {
84
+ className: classes.closeIcon,
85
+ children: /*#__PURE__*/_jsx(CrossIcon, {
86
+ size: 24
87
+ })
88
+ })
89
+ }) : /*#__PURE__*/_jsx("div", {
90
+ className: classes.closePlaceholder
91
+ }), /*#__PURE__*/_jsx(Grid.Item, {
92
+ className: classes.title,
93
+ component: "div",
94
+ grow: 1,
95
+ role: "heading",
96
+ ...(allowClose ? {
97
+ tabIndex: 0
98
+ } : null),
99
+ children: title
100
+ })]
101
+ }), showSearch && /*#__PURE__*/_jsx(SearchBar, {
102
+ handleChange: handleChange
103
+ })]
104
+ });
105
+ };
83
106
  Header.defaultProps = {
84
107
  onToggleClose: () => {},
85
108
  shadow: false,
@@ -87,7 +110,4 @@ Header.defaultProps = {
87
110
  handleChange: () => {},
88
111
  showSearch: false
89
112
  };
90
- Header.contextTypes = {
91
- i18n: PropTypes.func
92
- };
93
- export default Header;
113
+ export default /*#__PURE__*/memo(Header);