@flipdish/ui-library 0.35.0 → 0.35.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/organisms/ImagePicker/hooks/useLoadedImage.cjs +30 -0
- package/dist/components/organisms/ImagePicker/hooks/useLoadedImage.cjs.map +1 -0
- package/dist/components/organisms/ImagePicker/hooks/useLoadedImage.d.ts +10 -0
- package/dist/components/organisms/ImagePicker/hooks/useLoadedImage.d.ts.map +1 -0
- package/dist/components/organisms/ImagePicker/hooks/useLoadedImage.js +28 -0
- package/dist/components/organisms/ImagePicker/hooks/useLoadedImage.js.map +1 -0
- package/dist/components/organisms/ImagePicker/imagePicker.utils.cjs +29 -0
- package/dist/components/organisms/ImagePicker/imagePicker.utils.cjs.map +1 -1
- package/dist/components/organisms/ImagePicker/imagePicker.utils.d.ts +25 -0
- package/dist/components/organisms/ImagePicker/imagePicker.utils.d.ts.map +1 -1
- package/dist/components/organisms/ImagePicker/imagePicker.utils.js +28 -1
- package/dist/components/organisms/ImagePicker/imagePicker.utils.js.map +1 -1
- package/dist/components/organisms/ImagePicker/index.cjs +12 -27
- package/dist/components/organisms/ImagePicker/index.cjs.map +1 -1
- package/dist/components/organisms/ImagePicker/index.d.ts.map +1 -1
- package/dist/components/organisms/ImagePicker/index.js +14 -29
- package/dist/components/organisms/ImagePicker/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var React = require('react');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Decodes `file` into an `HTMLImageElement` for the preview canvas. Returns null while
|
|
7
|
+
* there is no file or the image has not finished loading. The object URL is revoked when
|
|
8
|
+
* the file changes or the preview unmounts.
|
|
9
|
+
*
|
|
10
|
+
* @param file The image file selected or dropped onto the picker, or null when none is set.
|
|
11
|
+
* @returns The decoded image, or null before it loads and after the file is cleared.
|
|
12
|
+
*/
|
|
13
|
+
const useLoadedImage = (file) => {
|
|
14
|
+
const [image, setImage] = React.useState(null);
|
|
15
|
+
React.useEffect(() => {
|
|
16
|
+
if (!file) {
|
|
17
|
+
setImage(null);
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const url = URL.createObjectURL(file);
|
|
21
|
+
const img = new Image();
|
|
22
|
+
img.onload = () => setImage(img);
|
|
23
|
+
img.src = url;
|
|
24
|
+
return () => URL.revokeObjectURL(url);
|
|
25
|
+
}, [file]);
|
|
26
|
+
return image;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
exports.useLoadedImage = useLoadedImage;
|
|
30
|
+
//# sourceMappingURL=useLoadedImage.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useLoadedImage.cjs","sources":["../../../../../src/components/organisms/ImagePicker/hooks/useLoadedImage.ts"],"sourcesContent":[null],"names":["useState","useEffect"],"mappings":";;;;AAIA;;;;;;;AAOG;AACI,MAAM,cAAc,GAAG,CAAC,IAAiB,KAA6B;IAC3E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAGA,cAAQ,CAA0B,IAAI,CAAC;IAEjEC,eAAS,CAAC,MAAK;QACb,IAAI,CAAC,IAAI,EAAE;YACT,QAAQ,CAAC,IAAI,CAAC;YACd;QACF;QACA,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC;AACrC,QAAA,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE;QACvB,GAAG,CAAC,MAAM,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC;AAChC,QAAA,GAAG,CAAC,GAAG,GAAG,GAAG;QACb,OAAO,MAAM,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC;AACvC,IAAA,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AAEV,IAAA,OAAO,KAAK;AACd;;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Decodes `file` into an `HTMLImageElement` for the preview canvas. Returns null while
|
|
3
|
+
* there is no file or the image has not finished loading. The object URL is revoked when
|
|
4
|
+
* the file changes or the preview unmounts.
|
|
5
|
+
*
|
|
6
|
+
* @param file The image file selected or dropped onto the picker, or null when none is set.
|
|
7
|
+
* @returns The decoded image, or null before it loads and after the file is cleared.
|
|
8
|
+
*/
|
|
9
|
+
export declare const useLoadedImage: (file: File | null) => HTMLImageElement | null;
|
|
10
|
+
//# sourceMappingURL=useLoadedImage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useLoadedImage.d.ts","sourceRoot":"","sources":["../../../../../src/components/organisms/ImagePicker/hooks/useLoadedImage.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,GAAI,MAAM,IAAI,GAAG,IAAI,KAAG,gBAAgB,GAAG,IAgBrE,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { useState, useEffect } from 'react';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Decodes `file` into an `HTMLImageElement` for the preview canvas. Returns null while
|
|
5
|
+
* there is no file or the image has not finished loading. The object URL is revoked when
|
|
6
|
+
* the file changes or the preview unmounts.
|
|
7
|
+
*
|
|
8
|
+
* @param file The image file selected or dropped onto the picker, or null when none is set.
|
|
9
|
+
* @returns The decoded image, or null before it loads and after the file is cleared.
|
|
10
|
+
*/
|
|
11
|
+
const useLoadedImage = (file) => {
|
|
12
|
+
const [image, setImage] = useState(null);
|
|
13
|
+
useEffect(() => {
|
|
14
|
+
if (!file) {
|
|
15
|
+
setImage(null);
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
const url = URL.createObjectURL(file);
|
|
19
|
+
const img = new Image();
|
|
20
|
+
img.onload = () => setImage(img);
|
|
21
|
+
img.src = url;
|
|
22
|
+
return () => URL.revokeObjectURL(url);
|
|
23
|
+
}, [file]);
|
|
24
|
+
return image;
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export { useLoadedImage };
|
|
28
|
+
//# sourceMappingURL=useLoadedImage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useLoadedImage.js","sources":["../../../../../src/components/organisms/ImagePicker/hooks/useLoadedImage.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAIA;;;;;;;AAOG;AACI,MAAM,cAAc,GAAG,CAAC,IAAiB,KAA6B;IAC3E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAA0B,IAAI,CAAC;IAEjE,SAAS,CAAC,MAAK;QACb,IAAI,CAAC,IAAI,EAAE;YACT,QAAQ,CAAC,IAAI,CAAC;YACd;QACF;QACA,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC;AACrC,QAAA,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE;QACvB,GAAG,CAAC,MAAM,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC;AAChC,QAAA,GAAG,CAAC,GAAG,GAAG,GAAG;QACb,OAAO,MAAM,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC;AACvC,IAAA,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AAEV,IAAA,OAAO,KAAK;AACd;;"}
|
|
@@ -9,6 +9,33 @@ const DEFAULT_ADJUSTMENTS = {
|
|
|
9
9
|
highlights: 0,
|
|
10
10
|
shadows: 0,
|
|
11
11
|
};
|
|
12
|
+
/**
|
|
13
|
+
* Backing-store pixel size of the preview canvas, substituting 280 logical pixels for a 0 layout edge and 1 for a missing device pixel ratio.
|
|
14
|
+
*
|
|
15
|
+
* @param layout The canvas element's CSS layout size. A 0 edge is the hidden empty-state canvas, which has no box yet.
|
|
16
|
+
* @param devicePixelRatio The screen's device pixel ratio. `0` and any other falsy value count as 1.
|
|
17
|
+
* @returns Width and height in device pixels.
|
|
18
|
+
*/
|
|
19
|
+
const canvasPixelSize = (layout, devicePixelRatio) => {
|
|
20
|
+
const dpr = devicePixelRatio || 1;
|
|
21
|
+
return {
|
|
22
|
+
width: (layout.width || 280) * dpr,
|
|
23
|
+
height: (layout.height || 280) * dpr,
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* The first dropped file whose MIME type is an image, ignoring every later item once a file item is found.
|
|
28
|
+
*
|
|
29
|
+
* @param items Drop items in the order the drop event reported them.
|
|
30
|
+
* @returns That image file, or null when there is no file item or it is not an image.
|
|
31
|
+
*/
|
|
32
|
+
const firstDroppedImage = async (items) => {
|
|
33
|
+
const fileItem = items.find((item) => item.kind === 'file');
|
|
34
|
+
if (!fileItem?.getFile)
|
|
35
|
+
return null;
|
|
36
|
+
const file = await fileItem.getFile();
|
|
37
|
+
return file.type.startsWith('image/') ? file : null;
|
|
38
|
+
};
|
|
12
39
|
/** Apply image adjustments (exposure, contrast, saturation, etc.) and rotation to a canvas. */
|
|
13
40
|
const applyImageFilters = (canvas, img, adj, fillMode, rotation = 0) => {
|
|
14
41
|
const ctx = canvas.getContext('2d');
|
|
@@ -90,4 +117,6 @@ const applyImageFilters = (canvas, img, adj, fillMode, rotation = 0) => {
|
|
|
90
117
|
|
|
91
118
|
exports.DEFAULT_ADJUSTMENTS = DEFAULT_ADJUSTMENTS;
|
|
92
119
|
exports.applyImageFilters = applyImageFilters;
|
|
120
|
+
exports.canvasPixelSize = canvasPixelSize;
|
|
121
|
+
exports.firstDroppedImage = firstDroppedImage;
|
|
93
122
|
//# sourceMappingURL=imagePicker.utils.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imagePicker.utils.cjs","sources":["../../../../src/components/organisms/ImagePicker/imagePicker.utils.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAaO,MAAM,mBAAmB,GAAqB;AACnD,IAAA,QAAQ,EAAE,CAAC;AACX,IAAA,QAAQ,EAAE,CAAC;AACX,IAAA,UAAU,EAAE,CAAC;AACb,IAAA,WAAW,EAAE,CAAC;AACd,IAAA,IAAI,EAAE,CAAC;AACP,IAAA,UAAU,EAAE,CAAC;AACb,IAAA,OAAO,EAAE,CAAC;;
|
|
1
|
+
{"version":3,"file":"imagePicker.utils.cjs","sources":["../../../../src/components/organisms/ImagePicker/imagePicker.utils.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,31 @@ export interface ImageAdjustments {
|
|
|
10
10
|
shadows: number;
|
|
11
11
|
}
|
|
12
12
|
export declare const DEFAULT_ADJUSTMENTS: ImageAdjustments;
|
|
13
|
+
/** CSS layout size of the preview canvas, in logical pixels. */
|
|
14
|
+
export interface CanvasLayoutSize {
|
|
15
|
+
width: number;
|
|
16
|
+
height: number;
|
|
17
|
+
}
|
|
18
|
+
/** A dropped item that may yield a file. Text items have no `getFile`. */
|
|
19
|
+
export interface DroppedItem {
|
|
20
|
+
kind: string;
|
|
21
|
+
getFile?: () => Promise<File>;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Backing-store pixel size of the preview canvas, substituting 280 logical pixels for a 0 layout edge and 1 for a missing device pixel ratio.
|
|
25
|
+
*
|
|
26
|
+
* @param layout The canvas element's CSS layout size. A 0 edge is the hidden empty-state canvas, which has no box yet.
|
|
27
|
+
* @param devicePixelRatio The screen's device pixel ratio. `0` and any other falsy value count as 1.
|
|
28
|
+
* @returns Width and height in device pixels.
|
|
29
|
+
*/
|
|
30
|
+
export declare const canvasPixelSize: (layout: CanvasLayoutSize, devicePixelRatio: number) => CanvasLayoutSize;
|
|
31
|
+
/**
|
|
32
|
+
* The first dropped file whose MIME type is an image, ignoring every later item once a file item is found.
|
|
33
|
+
*
|
|
34
|
+
* @param items Drop items in the order the drop event reported them.
|
|
35
|
+
* @returns That image file, or null when there is no file item or it is not an image.
|
|
36
|
+
*/
|
|
37
|
+
export declare const firstDroppedImage: (items: readonly DroppedItem[]) => Promise<File | null>;
|
|
13
38
|
/** Apply image adjustments (exposure, contrast, saturation, etc.) and rotation to a canvas. */
|
|
14
39
|
export declare const applyImageFilters: (canvas: HTMLCanvasElement, img: HTMLImageElement, adj: ImageAdjustments, fillMode: ImageFillMode, rotation?: number) => void;
|
|
15
40
|
//# sourceMappingURL=imagePicker.utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imagePicker.utils.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/ImagePicker/imagePicker.utils.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAE7D,8DAA8D;AAC9D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,mBAAmB,EAAE,gBAQjC,CAAC;AAEF,+FAA+F;AAC/F,eAAO,MAAM,iBAAiB,GAAI,QAAQ,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,UAAU,aAAa,EAAE,iBAAY,SA6E/I,CAAC"}
|
|
1
|
+
{"version":3,"file":"imagePicker.utils.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/ImagePicker/imagePicker.utils.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAE7D,8DAA8D;AAC9D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,mBAAmB,EAAE,gBAQjC,CAAC;AAEF,gEAAgE;AAChE,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,0EAA0E;AAC1E,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B;AAED;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAAI,QAAQ,gBAAgB,EAAE,kBAAkB,MAAM,KAAG,gBAMpF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAU,OAAO,SAAS,WAAW,EAAE,KAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAK1F,CAAC;AAEF,+FAA+F;AAC/F,eAAO,MAAM,iBAAiB,GAAI,QAAQ,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,UAAU,aAAa,EAAE,iBAAY,SA6E/I,CAAC"}
|
|
@@ -7,6 +7,33 @@ const DEFAULT_ADJUSTMENTS = {
|
|
|
7
7
|
highlights: 0,
|
|
8
8
|
shadows: 0,
|
|
9
9
|
};
|
|
10
|
+
/**
|
|
11
|
+
* Backing-store pixel size of the preview canvas, substituting 280 logical pixels for a 0 layout edge and 1 for a missing device pixel ratio.
|
|
12
|
+
*
|
|
13
|
+
* @param layout The canvas element's CSS layout size. A 0 edge is the hidden empty-state canvas, which has no box yet.
|
|
14
|
+
* @param devicePixelRatio The screen's device pixel ratio. `0` and any other falsy value count as 1.
|
|
15
|
+
* @returns Width and height in device pixels.
|
|
16
|
+
*/
|
|
17
|
+
const canvasPixelSize = (layout, devicePixelRatio) => {
|
|
18
|
+
const dpr = devicePixelRatio || 1;
|
|
19
|
+
return {
|
|
20
|
+
width: (layout.width || 280) * dpr,
|
|
21
|
+
height: (layout.height || 280) * dpr,
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* The first dropped file whose MIME type is an image, ignoring every later item once a file item is found.
|
|
26
|
+
*
|
|
27
|
+
* @param items Drop items in the order the drop event reported them.
|
|
28
|
+
* @returns That image file, or null when there is no file item or it is not an image.
|
|
29
|
+
*/
|
|
30
|
+
const firstDroppedImage = async (items) => {
|
|
31
|
+
const fileItem = items.find((item) => item.kind === 'file');
|
|
32
|
+
if (!fileItem?.getFile)
|
|
33
|
+
return null;
|
|
34
|
+
const file = await fileItem.getFile();
|
|
35
|
+
return file.type.startsWith('image/') ? file : null;
|
|
36
|
+
};
|
|
10
37
|
/** Apply image adjustments (exposure, contrast, saturation, etc.) and rotation to a canvas. */
|
|
11
38
|
const applyImageFilters = (canvas, img, adj, fillMode, rotation = 0) => {
|
|
12
39
|
const ctx = canvas.getContext('2d');
|
|
@@ -86,5 +113,5 @@ const applyImageFilters = (canvas, img, adj, fillMode, rotation = 0) => {
|
|
|
86
113
|
ctx.putImageData(imageData, 0, 0);
|
|
87
114
|
};
|
|
88
115
|
|
|
89
|
-
export { DEFAULT_ADJUSTMENTS, applyImageFilters };
|
|
116
|
+
export { DEFAULT_ADJUSTMENTS, applyImageFilters, canvasPixelSize, firstDroppedImage };
|
|
90
117
|
//# sourceMappingURL=imagePicker.utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imagePicker.utils.js","sources":["../../../../src/components/organisms/ImagePicker/imagePicker.utils.ts"],"sourcesContent":[null],"names":[],"mappings":"AAaO,MAAM,mBAAmB,GAAqB;AACnD,IAAA,QAAQ,EAAE,CAAC;AACX,IAAA,QAAQ,EAAE,CAAC;AACX,IAAA,UAAU,EAAE,CAAC;AACb,IAAA,WAAW,EAAE,CAAC;AACd,IAAA,IAAI,EAAE,CAAC;AACP,IAAA,UAAU,EAAE,CAAC;AACb,IAAA,OAAO,EAAE,CAAC;;
|
|
1
|
+
{"version":3,"file":"imagePicker.utils.js","sources":["../../../../src/components/organisms/ImagePicker/imagePicker.utils.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ var cx = require('@flipdish/ui-library/utilities/cx');
|
|
|
10
10
|
var testIdUtils = require('@flipdish/ui-library/utilities/testIdUtils');
|
|
11
11
|
var React = require('react');
|
|
12
12
|
var reactAriaComponents = require('react-aria-components');
|
|
13
|
+
var useLoadedImage = require('./hooks/useLoadedImage.cjs');
|
|
13
14
|
var imagePicker_utils = require('./imagePicker.utils.cjs');
|
|
14
15
|
var ImagePicker_provider = require('./providers/ImagePicker.provider.cjs');
|
|
15
16
|
|
|
@@ -32,40 +33,24 @@ const AdjustmentSlider = ({ label, minValue = -100, maxValue = 100, ...props })
|
|
|
32
33
|
const ImageCanvas = () => {
|
|
33
34
|
const { state, actions } = ImagePicker_provider.useImageColorPicker();
|
|
34
35
|
const canvasRef = React.useRef(null);
|
|
35
|
-
const
|
|
36
|
+
const image = useLoadedImage.useLoadedImage(state.imageFile);
|
|
36
37
|
const prefix = testIdUtils.useTestIdPrefix();
|
|
37
38
|
const canvasTestId = prefix ? testIdUtils.joinTestId(prefix, 'canvas') : undefined;
|
|
38
39
|
React.useEffect(() => {
|
|
39
|
-
|
|
40
|
-
|
|
40
|
+
const canvas = canvasRef.current;
|
|
41
|
+
if (!image || !canvas)
|
|
41
42
|
return;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
img.src = url;
|
|
47
|
-
return () => URL.revokeObjectURL(url);
|
|
48
|
-
}, [state.imageFile]);
|
|
49
|
-
React.useEffect(() => {
|
|
50
|
-
if (image && canvasRef.current) {
|
|
51
|
-
const dpr = window.devicePixelRatio || 1;
|
|
52
|
-
const rect = canvasRef.current.getBoundingClientRect();
|
|
53
|
-
const logicalW = rect.width || 280;
|
|
54
|
-
const logicalH = rect.height || 280;
|
|
55
|
-
canvasRef.current.width = logicalW * dpr;
|
|
56
|
-
canvasRef.current.height = logicalH * dpr;
|
|
57
|
-
imagePicker_utils.applyImageFilters(canvasRef.current, image, state.imageAdjustments, state.imageFillMode, state.imageRotation);
|
|
58
|
-
}
|
|
43
|
+
const { width, height } = imagePicker_utils.canvasPixelSize(canvas.getBoundingClientRect(), window.devicePixelRatio);
|
|
44
|
+
canvas.width = width;
|
|
45
|
+
canvas.height = height;
|
|
46
|
+
imagePicker_utils.applyImageFilters(canvas, image, state.imageAdjustments, state.imageFillMode, state.imageRotation);
|
|
59
47
|
}, [image, state.imageAdjustments, state.imageFillMode, state.imageRotation]);
|
|
60
48
|
const handleFile = React.useCallback((file) => actions.setImageFile(file), [actions]);
|
|
61
49
|
return (jsxRuntime.jsx(reactAriaComponents.DropZone, { "aria-label": "Drop image to upload", "data-testid": prefix ? testIdUtils.joinTestId(prefix, 'dropzone') : undefined, className: ({ isDropTarget }) => cx.cx('relative flex aspect-square w-full cursor-pointer flex-col items-center justify-center overflow-hidden rounded-lg border-[0.5px] border-black/10 outline-hidden', isDropTarget && 'ring-2 ring-brand'), onDrop: (e) => {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
handleFile(f);
|
|
67
|
-
});
|
|
68
|
-
}
|
|
50
|
+
imagePicker_utils.firstDroppedImage(e.items).then((file) => {
|
|
51
|
+
if (file)
|
|
52
|
+
handleFile(file);
|
|
53
|
+
});
|
|
69
54
|
}, children: image ? (jsxRuntime.jsx("canvas", { ref: canvasRef, "data-testid": canvasTestId, className: "absolute inset-0 size-full" })) : (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("div", { "aria-hidden": true, className: "absolute inset-0 rounded-lg", style: { backgroundImage: 'repeating-conic-gradient(#ccc 0% 25%, white 0% 50%)', backgroundSize: '32px 32px', opacity: 0.15 } }), jsxRuntime.jsx("div", { "aria-hidden": true, className: "absolute inset-0 rounded-lg bg-black/40" }), jsxRuntime.jsx("canvas", { ref: canvasRef, className: "hidden" }), jsxRuntime.jsxs("div", { className: "relative flex flex-col items-center gap-2", children: [jsxRuntime.jsx(FileTrigger.FileTrigger, { acceptedFileTypes: ['image/*'], onSelect: (files) => {
|
|
70
55
|
const f = files?.[0];
|
|
71
56
|
if (f)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../../../src/components/organisms/ImagePicker/index.tsx"],"sourcesContent":[null],"names":["_jsxs","AriaSlider","cx","_jsx","AriaSliderTrack","AriaSliderThumb","useImageColorPicker","useRef","
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../../src/components/organisms/ImagePicker/index.tsx"],"sourcesContent":[null],"names":["_jsxs","AriaSlider","cx","_jsx","AriaSliderTrack","AriaSliderThumb","useImageColorPicker","useRef","useLoadedImage","useTestIdPrefix","joinTestId","useEffect","canvasPixelSize","applyImageFilters","useCallback","AriaDropZone","firstDroppedImage","_Fragment","FileTrigger","Button","UploadCloud02","Dropdown","ChevronDown","ButtonUtility","RefreshCw01","ImageProvider"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/ImagePicker/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/ImagePicker/index.tsx"],"names":[],"mappings":"AA2LA;;;;;;GAMG;AACH,QAAA,MAAM,WAAW;;;;;CAuBhB,CAAC;AAMF,OAAO,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -6,9 +6,10 @@ import { ButtonUtility } from '@flipdish/ui-library/components/atoms/UtilityButt
|
|
|
6
6
|
import { Dropdown } from '@flipdish/ui-library/components/molecules/Dropdown';
|
|
7
7
|
import { cx } from '@flipdish/ui-library/utilities/cx';
|
|
8
8
|
import { useTestIdPrefix, joinTestId } from '@flipdish/ui-library/utilities/testIdUtils';
|
|
9
|
-
import { useRef,
|
|
9
|
+
import { useRef, useEffect, useCallback } from 'react';
|
|
10
10
|
import { DropZone, Slider, SliderTrack, SliderThumb } from 'react-aria-components';
|
|
11
|
-
import {
|
|
11
|
+
import { useLoadedImage } from './hooks/useLoadedImage.js';
|
|
12
|
+
import { canvasPixelSize, applyImageFilters, firstDroppedImage } from './imagePicker.utils.js';
|
|
12
13
|
import { useImageColorPicker, ImageProvider } from './providers/ImagePicker.provider.js';
|
|
13
14
|
|
|
14
15
|
const FILL_MODES = [
|
|
@@ -30,40 +31,24 @@ const AdjustmentSlider = ({ label, minValue = -100, maxValue = 100, ...props })
|
|
|
30
31
|
const ImageCanvas = () => {
|
|
31
32
|
const { state, actions } = useImageColorPicker();
|
|
32
33
|
const canvasRef = useRef(null);
|
|
33
|
-
const
|
|
34
|
+
const image = useLoadedImage(state.imageFile);
|
|
34
35
|
const prefix = useTestIdPrefix();
|
|
35
36
|
const canvasTestId = prefix ? joinTestId(prefix, 'canvas') : undefined;
|
|
36
37
|
useEffect(() => {
|
|
37
|
-
|
|
38
|
-
|
|
38
|
+
const canvas = canvasRef.current;
|
|
39
|
+
if (!image || !canvas)
|
|
39
40
|
return;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
img.src = url;
|
|
45
|
-
return () => URL.revokeObjectURL(url);
|
|
46
|
-
}, [state.imageFile]);
|
|
47
|
-
useEffect(() => {
|
|
48
|
-
if (image && canvasRef.current) {
|
|
49
|
-
const dpr = window.devicePixelRatio || 1;
|
|
50
|
-
const rect = canvasRef.current.getBoundingClientRect();
|
|
51
|
-
const logicalW = rect.width || 280;
|
|
52
|
-
const logicalH = rect.height || 280;
|
|
53
|
-
canvasRef.current.width = logicalW * dpr;
|
|
54
|
-
canvasRef.current.height = logicalH * dpr;
|
|
55
|
-
applyImageFilters(canvasRef.current, image, state.imageAdjustments, state.imageFillMode, state.imageRotation);
|
|
56
|
-
}
|
|
41
|
+
const { width, height } = canvasPixelSize(canvas.getBoundingClientRect(), window.devicePixelRatio);
|
|
42
|
+
canvas.width = width;
|
|
43
|
+
canvas.height = height;
|
|
44
|
+
applyImageFilters(canvas, image, state.imageAdjustments, state.imageFillMode, state.imageRotation);
|
|
57
45
|
}, [image, state.imageAdjustments, state.imageFillMode, state.imageRotation]);
|
|
58
46
|
const handleFile = useCallback((file) => actions.setImageFile(file), [actions]);
|
|
59
47
|
return (jsx(DropZone, { "aria-label": "Drop image to upload", "data-testid": prefix ? joinTestId(prefix, 'dropzone') : undefined, className: ({ isDropTarget }) => cx('relative flex aspect-square w-full cursor-pointer flex-col items-center justify-center overflow-hidden rounded-lg border-[0.5px] border-black/10 outline-hidden', isDropTarget && 'ring-2 ring-brand'), onDrop: (e) => {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
handleFile(f);
|
|
65
|
-
});
|
|
66
|
-
}
|
|
48
|
+
firstDroppedImage(e.items).then((file) => {
|
|
49
|
+
if (file)
|
|
50
|
+
handleFile(file);
|
|
51
|
+
});
|
|
67
52
|
}, children: image ? (jsx("canvas", { ref: canvasRef, "data-testid": canvasTestId, className: "absolute inset-0 size-full" })) : (jsxs(Fragment, { children: [jsx("div", { "aria-hidden": true, className: "absolute inset-0 rounded-lg", style: { backgroundImage: 'repeating-conic-gradient(#ccc 0% 25%, white 0% 50%)', backgroundSize: '32px 32px', opacity: 0.15 } }), jsx("div", { "aria-hidden": true, className: "absolute inset-0 rounded-lg bg-black/40" }), jsx("canvas", { ref: canvasRef, className: "hidden" }), jsxs("div", { className: "relative flex flex-col items-center gap-2", children: [jsx(FileTrigger, { acceptedFileTypes: ['image/*'], onSelect: (files) => {
|
|
68
53
|
const f = files?.[0];
|
|
69
54
|
if (f)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/organisms/ImagePicker/index.tsx"],"sourcesContent":[null],"names":["_jsxs","AriaSlider","_jsx","AriaSliderTrack","AriaSliderThumb","AriaDropZone","_Fragment"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/organisms/ImagePicker/index.tsx"],"sourcesContent":[null],"names":["_jsxs","AriaSlider","_jsx","AriaSliderTrack","AriaSliderThumb","AriaDropZone","_Fragment"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flipdish/ui-library",
|
|
3
|
-
"version": "0.35.
|
|
3
|
+
"version": "0.35.2",
|
|
4
4
|
"description": "Flipdish Design System — atomic-design component library (Tailwind v4 + UntitledUI + React Aria).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"imports": {
|
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
}
|
|
91
91
|
},
|
|
92
92
|
"dependencies": {
|
|
93
|
-
"@flipdish/ui-icons": "^0.
|
|
93
|
+
"@flipdish/ui-icons": "^0.6.0",
|
|
94
94
|
"@floating-ui/dom": "^1.7.6",
|
|
95
95
|
"@internationalized/date": "^3.12.2",
|
|
96
96
|
"@react-aria/focus": "^3.22.1",
|