@autoguru/overdrive 4.0.2 → 4.1.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 (30) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/components/AutoSuggest/AutoSuggest.d.ts +1 -0
  3. package/dist/components/AutoSuggest/AutoSuggest.d.ts.map +1 -1
  4. package/dist/components/AutoSuggest/AutoSuggest.js +6 -1
  5. package/dist/components/AutoSuggest/stories.js +1 -0
  6. package/dist/components/Image/Image.d.ts +8 -0
  7. package/dist/components/Image/Image.d.ts.map +1 -0
  8. package/dist/components/Image/Image.js +5 -0
  9. package/dist/components/Image/ImageServerProvider.d.ts +18 -0
  10. package/dist/components/Image/ImageServerProvider.d.ts.map +1 -0
  11. package/dist/components/Image/ImageServerProvider.js +45 -0
  12. package/dist/components/Image/ResponsiveImage.d.ts +11 -0
  13. package/dist/components/Image/ResponsiveImage.d.ts.map +1 -0
  14. package/dist/components/Image/ResponsiveImage.js +22 -0
  15. package/dist/components/Image/SimpleImage.d.ts +12 -0
  16. package/dist/components/Image/SimpleImage.d.ts.map +1 -0
  17. package/dist/components/Image/SimpleImage.js +2 -0
  18. package/dist/components/Image/index.d.ts +2 -0
  19. package/dist/components/Image/index.d.ts.map +1 -0
  20. package/dist/components/Image/index.js +1 -0
  21. package/dist/components/Image/stories.js +194 -0
  22. package/dist/components/Image/types.d.ts +2 -0
  23. package/dist/components/Image/types.d.ts.map +1 -0
  24. package/dist/components/Image/types.js +1 -0
  25. package/dist/components/private/InputBase/withEnhancedInput.css.d.ts +1 -8
  26. package/dist/components/private/InputBase/withEnhancedInput.css.d.ts.map +1 -1
  27. package/dist/components/private/InputBase/withEnhancedInput.css.js +5 -6
  28. package/dist/hooks/useResponsiveValue/useResponsiveValue.d.ts.map +1 -1
  29. package/dist/hooks/useResponsiveValue/useResponsiveValue.js +2 -1
  30. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,29 @@
1
1
  # @autoguru/overdrive
2
2
 
3
+ ## 4.1.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 4bae7d0: AutoSuggest accepts an 'onEnter' event callback
8
+
9
+ ## 4.1.0
10
+
11
+ ### Minor Changes
12
+
13
+ - af65bd3: New responsive Image component
14
+
15
+ ## 4.0.4
16
+
17
+ ### Patch Changes
18
+
19
+ - 1ac5083: Adds babel preset env
20
+
21
+ ## 4.0.3
22
+
23
+ ### Patch Changes
24
+
25
+ - 7f65be1: TextArea: Fixed min height
26
+
3
27
  ## 4.0.2
4
28
 
5
29
  ### Patch Changes
@@ -21,6 +21,7 @@ export interface Props<PayloadType> extends Omit<ComponentPropsWithoutRef<typeof
21
21
  suggestions: Suggestions<PayloadType>;
22
22
  itemRenderer?: AutoSuggestItemRenderer<PayloadType>;
23
23
  onChange?(value: AutoSuggestValue<PayloadType>): void;
24
+ onEnter?(value: AutoSuggestValue<PayloadType>): void;
24
25
  }
25
26
  export declare const AutoSuggest: <PayloadType extends unknown>(p: Props<PayloadType> & {
26
27
  ref?: Ref<HTMLInputElement>;
@@ -1 +1 @@
1
- {"version":3,"file":"AutoSuggest.d.ts","sourceRoot":"","sources":["../../../lib/components/AutoSuggest/AutoSuggest.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA8B,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAIvE,OAAO,EACN,wBAAwB,EAIxB,YAAY,EAEZ,GAAG,EAOH,MAAM,OAAO,CAAC;AAWf,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAMzC,MAAM,WAAW,gBAAgB,CAAC,WAAW;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC;IACxC,IAAI,CAAC,EAAE,OAAO,CAAC;CACf;AAED,oBAAY,uBAAuB,CAAC,WAAW,IAAI,CAAC,KAAK,EAAE;IAC1D,KAAK,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACrC,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,KAAK,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC;CAClD,KAAK,YAAY,CAAC;AAiCnB,aAAK,WAAW,CAAC,WAAW,IAAI,KAAK,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC;AAErE,MAAM,WAAW,KAAK,CAAC,WAAW,CACjC,SAAQ,IAAI,CACX,wBAAwB,CAAC,OAAO,SAAS,CAAC,EAC1C,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,YAAY,CAC5C;IACD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,KAAK,EAAE,gBAAgB,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;IAC5C,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IAEtC,YAAY,CAAC,EAAE,uBAAuB,CAAC,WAAW,CAAC,CAAC;IAEpD,QAAQ,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;CACtD;AAwGD,eAAO,MAAM,WAAW;UAyES,IAAI,gBAAgB,CAAC;MACjD,YAAY,CAAC"}
1
+ {"version":3,"file":"AutoSuggest.d.ts","sourceRoot":"","sources":["../../../lib/components/AutoSuggest/AutoSuggest.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA8B,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAIvE,OAAO,EACN,wBAAwB,EAIxB,YAAY,EAEZ,GAAG,EAOH,MAAM,OAAO,CAAC;AAWf,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAMzC,MAAM,WAAW,gBAAgB,CAAC,WAAW;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC;IACxC,IAAI,CAAC,EAAE,OAAO,CAAC;CACf;AAED,oBAAY,uBAAuB,CAAC,WAAW,IAAI,CAAC,KAAK,EAAE;IAC1D,KAAK,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACrC,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,KAAK,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC;CAClD,KAAK,YAAY,CAAC;AAiCnB,aAAK,WAAW,CAAC,WAAW,IAAI,KAAK,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC;AAErE,MAAM,WAAW,KAAK,CAAC,WAAW,CACjC,SAAQ,IAAI,CACX,wBAAwB,CAAC,OAAO,SAAS,CAAC,EAC1C,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,YAAY,CAC5C;IACD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,KAAK,EAAE,gBAAgB,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;IAC5C,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IAEtC,YAAY,CAAC,EAAE,uBAAuB,CAAC,WAAW,CAAC,CAAC;IAEpD,QAAQ,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;IACtD,OAAO,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;CACrD;AAwGD,eAAO,MAAM,WAAW;UA+ES,IAAI,gBAAgB,CAAC;MACjD,YAAY,CAAC"}
@@ -96,7 +96,7 @@ const inputReducerFactory = (suggestions) => (prevState, action) => {
96
96
  }
97
97
  }
98
98
  };
99
- export const AutoSuggest = forwardRef(function AutoSuggest({ autoFocus = false, autoWidth = false, inlineOptions = false, fieldIcon, suggestions, value, onChange: incomingOnChange, itemRenderer = defaultItemRenderer, onBlur: incomingOnBlur, onFocus: incomingOnFocus, onKeyDown, onClick, ...textInputProps }, ref) {
99
+ export const AutoSuggest = forwardRef(function AutoSuggest({ autoFocus = false, autoWidth = false, inlineOptions = false, fieldIcon, suggestions, value, onChange: incomingOnChange, onEnter, itemRenderer = defaultItemRenderer, onBlur: incomingOnBlur, onFocus: incomingOnFocus, onKeyDown, onClick, ...textInputProps }, ref) {
100
100
  const [isDesktop] = useMedia(['desktop'], false);
101
101
  const [isFocused, setIsFocused] = useState(false);
102
102
  const [showModal, setShowModal] = useState(false);
@@ -113,6 +113,11 @@ export const AutoSuggest = forwardRef(function AutoSuggest({ autoFocus = false,
113
113
  if (typeof incomingOnChange === 'function')
114
114
  incomingOnChange(value);
115
115
  },
116
+ onKeyUp: (event) => {
117
+ if (event.key === 'Enter' && typeof onEnter === 'function') {
118
+ onEnter(value);
119
+ }
120
+ },
116
121
  itemRenderer,
117
122
  onKeyDown,
118
123
  onClick,
@@ -96,6 +96,7 @@ const standardProps = {
96
96
  prefixIcon: void 0,
97
97
  onReset: () => action('onReset')(),
98
98
  onChange: thing => action('onChange')(thing),
99
+ onEnter: thing => action('onEnter')(thing),
99
100
  onFocus: thing => action('onFocus')(thing),
100
101
  onBlur: thing => action('onBlur')(thing)
101
102
  };
@@ -0,0 +1,8 @@
1
+ import type { ComponentProps, FunctionComponent } from 'react';
2
+ import { ResponsiveImage } from './ResponsiveImage';
3
+ interface Props extends ComponentProps<typeof ResponsiveImage> {
4
+ unoptimised?: boolean;
5
+ }
6
+ export declare const Image: FunctionComponent<Props>;
7
+ export {};
8
+ //# sourceMappingURL=Image.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Image.d.ts","sourceRoot":"","sources":["../../../lib/components/Image/Image.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAI/D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,UAAU,KAAM,SAAQ,cAAc,CAAC,OAAO,eAAe,CAAC;IAI7D,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAQ1C,CAAC"}
@@ -0,0 +1,5 @@
1
+ import * as React from 'react';
2
+ import { useImageServer } from './ImageServerProvider';
3
+ import { ResponsiveImage } from './ResponsiveImage';
4
+ import { SimpleImage } from './SimpleImage';
5
+ export const Image = ({ unoptimised = false, ...props }) => ((useImageServer() && !unoptimised) ? (React.createElement(ResponsiveImage, { ...props })) : (React.createElement(SimpleImage, { ...props })));
@@ -0,0 +1,18 @@
1
+ import { FunctionComponent } from 'react';
2
+ import { WidthScale } from './types';
3
+ interface UrlParams {
4
+ src: string;
5
+ width: number;
6
+ quality: number;
7
+ }
8
+ interface ImageServerContext {
9
+ widthMap?: Record<WidthScale, number>;
10
+ getWidthValue?(width: WidthScale): number;
11
+ srcUrlMapper(params: UrlParams): string;
12
+ generateSrcSet(params: Omit<UrlParams, 'width'>): string;
13
+ }
14
+ export declare const widthMap: ImageServerContext['widthMap'];
15
+ export declare const useImageServer: () => ImageServerContext;
16
+ export declare const ImageServerProvider: FunctionComponent<Omit<ImageServerContext, 'generateSrcSet'>>;
17
+ export {};
18
+ //# sourceMappingURL=ImageServerProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageServerProvider.d.ts","sourceRoot":"","sources":["../../../lib/components/Image/ImageServerProvider.tsx"],"names":[],"mappings":"AACA,OAAO,EAA0B,iBAAiB,EAAoC,MAAM,OAAO,CAAC;AAEpG,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,UAAU,SAAS;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,kBAAkB;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACtC,aAAa,CAAC,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAAC;IAE1C,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC;IACxC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC;CACzD;AAED,eAAO,MAAM,QAAQ,EAAC,kBAAkB,CAAC,UAAU,CAiBjD,CAAC;AAWH,eAAO,MAAM,cAAc,0BAAmC,CAAC;AAE/D,eAAO,MAAM,mBAAmB,EAAE,iBAAiB,CAAC,IAAI,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAgC7F,CAAC"}
@@ -0,0 +1,45 @@
1
+ import * as React from 'react';
2
+ import { createContext, useCallback, useContext, useMemo } from 'react';
3
+ export const widthMap = {
4
+ '1': 16,
5
+ '2': 32,
6
+ '3': 48,
7
+ '4': 64,
8
+ '5': 96,
9
+ '6': 128,
10
+ '7': 256,
11
+ '8': 384,
12
+ '9': 640,
13
+ '10': 750,
14
+ '11': 828,
15
+ '12': 1080,
16
+ '13': 1200,
17
+ '14': 1920,
18
+ '15': 2048,
19
+ '16': 3840,
20
+ };
21
+ const defaultValue = {
22
+ widthMap,
23
+ getWidthValue: (width) => widthMap[width],
24
+ srcUrlMapper: null,
25
+ generateSrcSet: null,
26
+ };
27
+ const imageServerCtx = createContext(null);
28
+ export const useImageServer = () => useContext(imageServerCtx);
29
+ export const ImageServerProvider = ({ children, srcUrlMapper = defaultValue.srcUrlMapper, getWidthValue = defaultValue.getWidthValue, widthMap = defaultValue.widthMap, }) => {
30
+ const generateSrcSet = useCallback(({ quality, src }) => (Object.keys(widthMap).map((key) => {
31
+ const width = getWidthValue(key);
32
+ return `${srcUrlMapper({ quality, src, width })} ${width}w`;
33
+ }).join(', ')), [widthMap, srcUrlMapper, getWidthValue]);
34
+ return (React.createElement(imageServerCtx.Provider, { value: useMemo(() => ({
35
+ widthMap,
36
+ srcUrlMapper,
37
+ getWidthValue,
38
+ generateSrcSet,
39
+ }), [
40
+ srcUrlMapper,
41
+ widthMap,
42
+ getWidthValue,
43
+ generateSrcSet,
44
+ ]) }, children));
45
+ };
@@ -0,0 +1,11 @@
1
+ import type { ComponentProps, FunctionComponent } from 'react';
2
+ import { ResponsiveProp } from '../../utils/responsiveProps.css';
3
+ import { widthMap } from './ImageServerProvider';
4
+ import { SimpleImage } from './SimpleImage';
5
+ export interface Props extends Omit<ComponentProps<typeof SimpleImage>, 'sizes'> {
6
+ imageWidth?: ResponsiveProp<keyof typeof widthMap>;
7
+ sizes?: ResponsiveProp<string>;
8
+ quality?: number;
9
+ }
10
+ export declare const ResponsiveImage: FunctionComponent<Props>;
11
+ //# sourceMappingURL=ResponsiveImage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResponsiveImage.d.ts","sourceRoot":"","sources":["../../../lib/components/Image/ResponsiveImage.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAK/D,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,EAAkB,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,WAAW,KAAM,SAAQ,IAAI,CAAC,cAAc,CAAC,OAAO,WAAW,CAAC,EAAE,OAAO,CAAC;IAQ/E,UAAU,CAAC,EAAE,cAAc,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC;IAanD,KAAK,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAM/B,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,eAAe,EAAE,iBAAiB,CAAC,KAAK,CAgCpD,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { invariant } from '@autoguru/utilities';
2
+ import * as React from 'react';
3
+ import { useMemo } from 'react';
4
+ import { useResponsiveValue } from '../../hooks/useResponsiveValue';
5
+ import { useImageServer } from './ImageServerProvider';
6
+ import { SimpleImage } from './SimpleImage';
7
+ export const ResponsiveImage = ({ imageWidth: imageWidthList, sizes: sizesList = '100vw', quality = 70, src: incomingSrc, ...imgProps }) => {
8
+ invariant(quality > 0 && quality <= 100, 'Image must be a number between 1 and 100.');
9
+ const imageWidth = useResponsiveValue(imageWidthList);
10
+ const sizes = useResponsiveValue(sizesList);
11
+ const { srcUrlMapper, getWidthValue, generateSrcSet } = useImageServer();
12
+ const src = useMemo(() => srcUrlMapper({
13
+ src: incomingSrc,
14
+ width: getWidthValue(imageWidth),
15
+ quality,
16
+ }), [incomingSrc, imageWidth, quality, srcUrlMapper, getWidthValue]);
17
+ const srcset = useMemo(() => imageWidth ? void 0 : generateSrcSet({
18
+ src: incomingSrc,
19
+ quality,
20
+ }), [incomingSrc, quality]);
21
+ return (React.createElement(SimpleImage, { sizes: sizes, srcSet: srcset, src: src, ...imgProps }));
22
+ };
@@ -0,0 +1,12 @@
1
+ import { FunctionComponent } from 'react';
2
+ export interface Props extends Omit<HTMLImageElement, 'loading' | 'className' | 'width' | 'height'> {
3
+ src: string;
4
+ eager?: boolean;
5
+ srcSet: string;
6
+ syncDecoding?: boolean;
7
+ width?: string;
8
+ height?: string;
9
+ className?: string;
10
+ }
11
+ export declare const SimpleImage: FunctionComponent<Props>;
12
+ //# sourceMappingURL=SimpleImage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimpleImage.d.ts","sourceRoot":"","sources":["../../../lib/components/Image/SimpleImage.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE1C,MAAM,WAAW,KAAM,SAAQ,IAAI,CAAC,gBAAgB,EAAE,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,QAAQ,CAAC;IAClG,GAAG,EAAE,MAAM,CAAC;IAKZ,KAAK,CAAC,EAAE,OAAO,CAAC;IAMhB,MAAM,EAAE,MAAM,CAAC;IAMf,YAAY,CAAC,EAAE,OAAO,CAAC;IAMvB,KAAK,CAAC,EAAE,MAAM,CAAC;IAKf,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,SAAS,CAAC,EAAE,MAAM,CAAC;CAEnB;AAED,eAAO,MAAM,WAAW,EAAE,iBAAiB,CAAC,KAAK,CAiBhD,CAAC"}
@@ -0,0 +1,2 @@
1
+ import * as React from 'react';
2
+ export const SimpleImage = ({ eager = 'false', syncDecoding = 'false', className = '', src, srcSet, ...imgProps }) => (React.createElement("img", { loading: eager ? 'eager' : 'lazy', decoding: syncDecoding ? 'sync' : 'async', className: className, srcSet: srcSet, src: src, ...imgProps }));
@@ -0,0 +1,2 @@
1
+ export { Image } from './Image';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/components/Image/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1 @@
1
+ export { Image } from './Image';
@@ -0,0 +1,194 @@
1
+ "use strict";
2
+
3
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
+
5
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
6
+
7
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
8
+
9
+ import * as React from 'react';
10
+ import { Stack } from "../Stack/index.js";
11
+ import { Text } from "../Text/index.js";
12
+ import { ImageServerProvider, widthMap } from "./ImageServerProvider.js";
13
+ import { Image } from "./index.js";
14
+ import { jsx as _jsx } from "react/jsx-runtime";
15
+ import { jsxs as _jsxs } from "react/jsx-runtime";
16
+ const sizeOptions = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16'];
17
+ export default {
18
+ title: 'Foundation/Image/Image',
19
+ component: Image,
20
+ argTypes: {
21
+ imageWidth: {
22
+ options: [].concat(sizeOptions, ['full']),
23
+ defaultValue: 8,
24
+ control: {
25
+ type: 'select'
26
+ }
27
+ },
28
+ width: {
29
+ options: [].concat(sizeOptions, ['full']),
30
+ defaultValue: 8,
31
+ control: {
32
+ type: 'select'
33
+ }
34
+ },
35
+ quality: {
36
+ defaultValue: void 0,
37
+ control: {
38
+ type: 'number',
39
+ min: 1,
40
+ max: 100
41
+ }
42
+ },
43
+ eager: {
44
+ defaultValue: false,
45
+ control: {
46
+ type: 'boolean'
47
+ }
48
+ },
49
+ unoptimised: {
50
+ defaultValue: false,
51
+ control: {
52
+ type: 'boolean'
53
+ }
54
+ }
55
+ }
56
+ };
57
+
58
+ const calcWidth = width => width === 'full' ? '100%' : widthMap[width];
59
+
60
+ const SimpleTemplate = args => _jsx("div", {
61
+ style: {
62
+ width: '100%',
63
+ overflow: 'auto'
64
+ },
65
+ children: _jsx(Image, _objectSpread(_objectSpread({}, args), {}, {
66
+ width: calcWidth(args.width)
67
+ }))
68
+ });
69
+
70
+ const standardProps = {
71
+ src: 'https://cdn.autoguru.com.au/images/autoguru-og.jpg'
72
+ };
73
+ export const standard = SimpleTemplate.bind(standardProps);
74
+ standard.args = standardProps;
75
+
76
+ const srcUrlMapper = _ref => {
77
+ let {
78
+ src,
79
+ width,
80
+ quality
81
+ } = _ref;
82
+ return "https://images.autoguru.com.au/?url=".concat(src, "&w=").concat(width, "&q=").concat(quality);
83
+ };
84
+
85
+ const WidthProviderTemplate = args => _jsx(ImageServerProvider, {
86
+ srcUrlMapper: srcUrlMapper,
87
+ children: _jsx("div", {
88
+ style: {
89
+ width: '100%',
90
+ overflow: 'auto'
91
+ },
92
+ children: _jsx(Image, _objectSpread(_objectSpread({}, args), {}, {
93
+ width: calcWidth(args.width)
94
+ }))
95
+ })
96
+ });
97
+
98
+ const withImageServerUnoptimisedProps = {
99
+ src: 'https://cdn.autoguru.com.au/images/autoguru-test-highres-image.jpg',
100
+ unoptimised: true
101
+ };
102
+ export const withImageServerUnoptimised = WidthProviderTemplate.bind(withImageServerUnoptimisedProps);
103
+ withImageServerUnoptimised.args = withImageServerUnoptimisedProps;
104
+ const withImageServerProps = {
105
+ src: 'https://cdn.autoguru.com.au/images/autoguru-test-highres-image.jpg',
106
+ quality: 60,
107
+ imageWidth: 8,
108
+ sizes: ['100vh',, '60vh', '40vh']
109
+ };
110
+ export const withImageServer = WidthProviderTemplate.bind(withImageServerProps);
111
+ withImageServer.args = withImageServerProps;
112
+ const withResponsiveImageWidthProps = {
113
+ src: 'https://cdn.autoguru.com.au/images/autoguru-test-highres-image.jpg',
114
+ width: 'full',
115
+ sizes: ['100vw', '70vw', '50vw', '40vw'],
116
+ imageWidth: [5, 8,, 12]
117
+ };
118
+ export const withResponsiveImageWidth = WidthProviderTemplate.bind(withResponsiveImageWidthProps);
119
+ withResponsiveImageWidth.args = withResponsiveImageWidthProps;
120
+ const withResponsiveSizesProps = {
121
+ src: 'https://cdn.autoguru.com.au/images/autoguru-test-highres-image.jpg',
122
+ width: 'full',
123
+ sizes: ['100vw', '70vw', '50vw', '40vw']
124
+ };
125
+ export const withResponsiveSizes = WidthProviderTemplate.bind(withResponsiveSizesProps);
126
+ withResponsiveSizes.args = withResponsiveSizesProps;
127
+
128
+ const AllQualityTemplate = args => _jsx(ImageServerProvider, {
129
+ srcUrlMapper: srcUrlMapper,
130
+ children: _jsx("div", {
131
+ style: {
132
+ width: '100%',
133
+ overflow: 'auto'
134
+ },
135
+ children: _jsx(Stack, {
136
+ space: "5",
137
+ children: [1, 20, 40, 60, 80, 100].map(quality => _jsxs(Stack, {
138
+ space: "1",
139
+ children: [_jsxs(Text, {
140
+ children: ["Quality: ", _jsx(Text, {
141
+ strong: true,
142
+ children: quality
143
+ })]
144
+ }), _jsx(Image, _objectSpread(_objectSpread({}, args), {}, {
145
+ width: calcWidth(args.width),
146
+ imageWidth: args.width,
147
+ quality: quality
148
+ }), quality)]
149
+ }, quality))
150
+ })
151
+ })
152
+ });
153
+
154
+ export const withImageServerQualities = AllQualityTemplate.bind(withImageServerProps);
155
+ withImageServerQualities.args = withImageServerProps;
156
+
157
+ const AllSizeTemplate = args => _jsx(ImageServerProvider, {
158
+ srcUrlMapper: srcUrlMapper,
159
+ children: _jsx("div", {
160
+ style: {
161
+ width: '100%',
162
+ overflow: 'auto'
163
+ },
164
+ children: _jsx(Stack, {
165
+ width: "full",
166
+ space: "5",
167
+ children: sizeOptions.map(width => _jsxs(Stack, {
168
+ space: "1",
169
+ children: [_jsxs(Text, {
170
+ children: ["Quality: ", _jsx(Text, {
171
+ strong: true,
172
+ children: args.quality
173
+ })]
174
+ }), _jsxs(Text, {
175
+ children: ["Width: ", _jsxs(Text, {
176
+ strong: true,
177
+ children: [width, ": ", calcWidth(width), "px"]
178
+ })]
179
+ }), _jsx(Image, _objectSpread(_objectSpread({}, args), {}, {
180
+ width: calcWidth(width),
181
+ imageWidth: width
182
+ }))]
183
+ }, width))
184
+ })
185
+ })
186
+ });
187
+
188
+ const withImageServerResizingProps = {
189
+ src: 'https://cdn.autoguru.com.au/images/autoguru-test-highres-image.jpg',
190
+ quality: 20,
191
+ sizes: ['100vh',, '60vh', '40vh']
192
+ };
193
+ export const withImageServerResizing = AllSizeTemplate.bind(withImageServerResizingProps);
194
+ withImageServerResizing.args = withImageServerResizingProps;
@@ -0,0 +1,2 @@
1
+ export declare type WidthScale = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12' | '13' | '14' | '15' | '16';
2
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../lib/components/Image/types.ts"],"names":[],"mappings":"AAAA,oBAAY,UAAU,GACnB,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -5,12 +5,5 @@ export declare const icon: {
5
5
  export declare const input: {
6
6
  itself: Record<"prefixed" | "root" | "suffixed", string>;
7
7
  };
8
- export declare const types: {
9
- textarea: {
10
- height: string;
11
- minHeight: string;
12
- lineHeight: number;
13
- resize: string;
14
- };
15
- };
8
+ export declare const types: Record<"textarea", string>;
16
9
  //# sourceMappingURL=withEnhancedInput.css.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"withEnhancedInput.css.d.ts","sourceRoot":"","sources":["../../../../lib/components/private/InputBase/withEnhancedInput.css.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,IAAI;;;CAGhB,CAAC;AAEF,eAAO,MAAM,KAAK;;CA+BjB,CAAC;AAIF,eAAO,MAAM,KAAK;;;;;;;CAOjB,CAAC"}
1
+ {"version":3,"file":"withEnhancedInput.css.d.ts","sourceRoot":"","sources":["../../../../lib/components/private/InputBase/withEnhancedInput.css.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,IAAI;;;CAGhB,CAAC;AAEF,eAAO,MAAM,KAAK;;CA+BjB,CAAC;AAIF,eAAO,MAAM,KAAK,4BAOhB,CAAC"}
@@ -42,13 +42,12 @@ export const input = {
42
42
  },
43
43
  }),
44
44
  };
45
- const textAreaHeight = `calc((${vars.space['8']} * 2.5))`;
46
- const topSpacing = `calc(((${vars.space['8']} - ${vars.typography.size['4'].fontSize}) / 2) - 3px)`;
47
- export const types = {
45
+ const textAreaHeight = '107px';
46
+ export const types = styleVariants({
48
47
  textarea: {
49
- height: `calc(${textAreaHeight} - ${topSpacing})`,
50
- minHeight: `calc(${textAreaHeight} - ${topSpacing})`,
48
+ height: textAreaHeight,
49
+ minHeight: textAreaHeight,
51
50
  lineHeight: 1.2,
52
51
  resize: 'vertical',
53
52
  },
54
- };
53
+ });
@@ -1 +1 @@
1
- {"version":3,"file":"useResponsiveValue.d.ts","sourceRoot":"","sources":["../../../lib/hooks/useResponsiveValue/useResponsiveValue.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,OAAO,EACrE,eAAe,EAAE,cAAc,CAAC,CAAC,CAAC,EAClC,YAAY,UAAQ,GAClB,CAAC,CAYH"}
1
+ {"version":3,"file":"useResponsiveValue.d.ts","sourceRoot":"","sources":["../../../lib/hooks/useResponsiveValue/useResponsiveValue.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,OAAO,EACrE,eAAe,EAAE,cAAc,CAAC,CAAC,CAAC,EAClC,YAAY,UAAQ,GAClB,CAAC,CAYH"}
@@ -1,3 +1,4 @@
1
+ import { useMemo } from 'react';
1
2
  import { useMedia } from '../..';
2
3
  import { getEarliestKnownToken } from '../../utils/resolveResponsiveProps';
3
4
  export function useResponsiveValue(responsiveValue, fallbackCase = false) {
@@ -10,5 +11,5 @@ export function useResponsiveValue(responsiveValue, fallbackCase = false) {
10
11
  activeBreakPoint = index + 1;
11
12
  return activeBreakPoint;
12
13
  }, 1);
13
- return getEarliestKnownToken(responsiveValue, activeBP);
14
+ return useMemo(() => getEarliestKnownToken(responsiveValue, activeBP), [responsiveValue, activeBP]);
14
15
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@autoguru/overdrive",
3
- "version": "4.0.2",
3
+ "version": "4.1.1",
4
4
  "description": "Overdrive is a product component library, and design system for AutoGuru.",
5
5
  "types": "dist/index.d.ts",
6
6
  "main": "dist/index.js",