@a-type/ui 6.1.32 → 6.1.34
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/imageUploader/ImageUploader.d.ts +10 -1
- package/dist/components/imageUploader/ImageUploader.js +48 -4
- package/dist/components/imageUploader/ImageUploader.js.map +1 -1
- package/dist/components/imageUploader/ImageUploader.module.css +34 -0
- package/dist/components/imageUploader/ImageUploader.stories.d.ts +6 -0
- package/dist/components/imageUploader/ImageUploader.stories.js +16 -0
- package/dist/components/imageUploader/ImageUploader.stories.js.map +1 -1
- package/dist/components/viewport/Viewport.stories.d.ts +4 -0
- package/dist/components/viewport/Viewport.stories.js +5 -1
- package/dist/components/viewport/Viewport.stories.js.map +1 -1
- package/dist/components/viewport/ViewportContent.d.ts +2 -2
- package/dist/components/viewport/ViewportContent.js +29 -35
- package/dist/components/viewport/ViewportContent.js.map +1 -1
- package/dist/components/viewport/ViewportContent.module.css +29 -0
- package/dist/components/viewport/ViewportState.js +0 -1
- package/dist/components/viewport/ViewportState.js.map +1 -1
- package/dist/components/viewport/ViewportZoomControls.js +2 -1
- package/dist/components/viewport/ViewportZoomControls.js.map +1 -1
- package/package.json +1 -2
- package/src/components/imageUploader/ImageUploader.module.css +34 -0
- package/src/components/imageUploader/ImageUploader.stories.tsx +41 -0
- package/src/components/imageUploader/ImageUploader.tsx +118 -1
- package/src/components/viewport/Viewport.stories.tsx +10 -1
- package/src/components/viewport/ViewportContent.module.css +29 -0
- package/src/components/viewport/ViewportContent.tsx +36 -44
- package/src/components/viewport/ViewportState.ts +0 -1
- package/src/components/viewport/ViewportZoomControls.tsx +28 -4
|
@@ -3,6 +3,8 @@ import { ButtonProps } from '../button/index.js';
|
|
|
3
3
|
export interface ImageUploaderProps {
|
|
4
4
|
value: string | null;
|
|
5
5
|
onChange: (value: File | null) => void;
|
|
6
|
+
altText?: string;
|
|
7
|
+
onAltText?: (value: string) => void;
|
|
6
8
|
className?: string;
|
|
7
9
|
style?: CSSProperties;
|
|
8
10
|
maxDimension?: number;
|
|
@@ -13,7 +15,7 @@ export interface ImageUploaderProps {
|
|
|
13
15
|
* on the image to select a new one, or dragging a new image onto the
|
|
14
16
|
* component to replace the existing one.
|
|
15
17
|
*/
|
|
16
|
-
export declare function ImageUploaderRoot({ value, onChange: handleChange, maxDimension, children, className, ...rest }: ImageUploaderProps): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
export declare function ImageUploaderRoot({ value, onChange: handleChange, altText, onAltText, maxDimension, children, className, ...rest }: ImageUploaderProps): import("react/jsx-runtime").JSX.Element;
|
|
17
19
|
declare function ImageUploaderPrebuilt({ crossOrigin, ...props }: Omit<ImageUploaderProps, 'children'> & {
|
|
18
20
|
facingMode?: 'user' | 'environment';
|
|
19
21
|
crossOrigin?: ImgHTMLAttributes<HTMLImageElement>['crossOrigin'];
|
|
@@ -21,6 +23,12 @@ declare function ImageUploaderPrebuilt({ crossOrigin, ...props }: Omit<ImageUplo
|
|
|
21
23
|
export declare function ImageUploaderFileButton({ children, ...props }: ButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
22
24
|
export declare function ImageUploaderRemoveButton({ className, ...rest }: ButtonProps): import("react/jsx-runtime").JSX.Element | null;
|
|
23
25
|
export declare function ImageUploaderDisplay({ className, ...rest }: ImgHTMLAttributes<HTMLImageElement>): import("react/jsx-runtime").JSX.Element | null;
|
|
26
|
+
export interface ImageUploaderAltTextProps {
|
|
27
|
+
className?: string;
|
|
28
|
+
altText?: string;
|
|
29
|
+
onAltText?: (value: string) => void;
|
|
30
|
+
}
|
|
31
|
+
export declare function ImageUploaderAltText({ className, altText, onAltText, }: ImageUploaderAltTextProps): import("react/jsx-runtime").JSX.Element | null;
|
|
24
32
|
export declare function ImageUploaderEmptyControls({ children, className, }: {
|
|
25
33
|
children: ReactNode;
|
|
26
34
|
className?: string;
|
|
@@ -30,6 +38,7 @@ export declare const ImageUploader: typeof ImageUploaderPrebuilt & {
|
|
|
30
38
|
FileButton: typeof ImageUploaderFileButton;
|
|
31
39
|
RemoveButton: typeof ImageUploaderRemoveButton;
|
|
32
40
|
Display: typeof ImageUploaderDisplay;
|
|
41
|
+
AltText: typeof ImageUploaderAltText;
|
|
33
42
|
EmptyControls: typeof ImageUploaderEmptyControls;
|
|
34
43
|
};
|
|
35
44
|
export {};
|
|
@@ -11,10 +11,13 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
11
11
|
};
|
|
12
12
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
13
13
|
import classNames, { clsx } from 'clsx';
|
|
14
|
-
import { createContext, useCallback, useContext, useEffect, useId, useState, } from 'react';
|
|
14
|
+
import { createContext, useCallback, useContext, useEffect, useId, useRef, useState, } from 'react';
|
|
15
15
|
import { Button } from '../button/index.js';
|
|
16
16
|
import { CameraDeviceSelector, CameraFullscreenButton, CameraRoot, CameraShutterButton, } from '../camera/index.js';
|
|
17
|
+
import { Dialog } from '../dialog/index.js';
|
|
18
|
+
import { Field } from '../forms/index.js';
|
|
17
19
|
import { Icon } from '../icon/index.js';
|
|
20
|
+
import { TextArea } from '../textArea/index.js';
|
|
18
21
|
import cls from './ImageUploader.module.css';
|
|
19
22
|
/**
|
|
20
23
|
* Renders an image if one is already set, and allows either clicking
|
|
@@ -22,7 +25,7 @@ import cls from './ImageUploader.module.css';
|
|
|
22
25
|
* component to replace the existing one.
|
|
23
26
|
*/
|
|
24
27
|
export function ImageUploaderRoot(_a) {
|
|
25
|
-
var { value, onChange: handleChange, maxDimension, children, className } = _a, rest = __rest(_a, ["value", "onChange", "maxDimension", "children", "className"]);
|
|
28
|
+
var { value, onChange: handleChange, altText, onAltText, maxDimension, children, className } = _a, rest = __rest(_a, ["value", "onChange", "altText", "onAltText", "maxDimension", "children", "className"]);
|
|
26
29
|
const inputId = useId();
|
|
27
30
|
const [dragging, setDragging] = useState(false);
|
|
28
31
|
const [draggingOver, setDraggingOver] = useState(false);
|
|
@@ -93,7 +96,15 @@ export function ImageUploaderRoot(_a) {
|
|
|
93
96
|
const onFileClick = useCallback((e) => {
|
|
94
97
|
e.stopPropagation();
|
|
95
98
|
}, []);
|
|
96
|
-
return (_jsx(ImageUploaderContext.Provider, { value: {
|
|
99
|
+
return (_jsx(ImageUploaderContext.Provider, { value: {
|
|
100
|
+
inputId,
|
|
101
|
+
dragging,
|
|
102
|
+
draggingOver,
|
|
103
|
+
value,
|
|
104
|
+
onChange,
|
|
105
|
+
altText,
|
|
106
|
+
onAltText,
|
|
107
|
+
}, children: _jsxs("div", Object.assign({ className: classNames('@mode-neutral', cls.root, className), onDragEnter: onDragEnter, onDragLeave: onDragLeave, onDragOver: onDragOver, onDrop: onDrop, onDragStart: onDragStart, onDragEnd: onDragEnd }, rest, { children: [_jsx("input", { type: "file", accept: "image/*", onChange: onFileChange, onClick: onFileClick, className: cls.input, id: inputId }), children] })) }));
|
|
97
108
|
}
|
|
98
109
|
const ImageUploaderContext = createContext(null);
|
|
99
110
|
function useUploaderContext() {
|
|
@@ -107,7 +118,7 @@ function ImageUploaderPrebuilt(_a) {
|
|
|
107
118
|
var { crossOrigin = 'anonymous' } = _a, props = __rest(_a, ["crossOrigin"]);
|
|
108
119
|
const [cameraOpen, setCameraOpen] = useState(false);
|
|
109
120
|
const openCamera = () => setCameraOpen(true);
|
|
110
|
-
return (_jsxs(ImageUploaderRoot, Object.assign({}, props, { children: [_jsx(ImageUploaderDisplay, { crossOrigin: crossOrigin }), _jsxs(ImageUploaderEmptyControls, { children: [_jsx(ImageUploaderFileButton, {}), _jsxs(Button, { emphasis: "ghost", size: "small", onClick: openCamera, children: [_jsx(Icon, { name: "camera" }), _jsx("span", { children: "Camera" })] })] }), !props.value && cameraOpen && (_jsxs(CameraRoot, { className: cls.cameraRoot, format: "image/png", onCapture: (file) => {
|
|
121
|
+
return (_jsxs(ImageUploaderRoot, Object.assign({}, props, { children: [_jsx(ImageUploaderDisplay, { crossOrigin: crossOrigin }), (props.altText !== undefined || props.onAltText) && (_jsx(ImageUploaderAltText, {})), _jsxs(ImageUploaderEmptyControls, { children: [_jsx(ImageUploaderFileButton, {}), _jsxs(Button, { emphasis: "ghost", size: "small", onClick: openCamera, children: [_jsx(Icon, { name: "camera" }), _jsx("span", { children: "Camera" })] })] }), !props.value && cameraOpen && (_jsxs(CameraRoot, { className: cls.cameraRoot, format: "image/png", onCapture: (file) => {
|
|
111
122
|
props.onChange(file);
|
|
112
123
|
setCameraOpen(false);
|
|
113
124
|
}, facingMode: props.facingMode, children: [_jsx(CameraShutterButton, {}), _jsx(CameraDeviceSelector, {}), _jsx(CameraFullscreenButton, {}), _jsx(Button, { onClick: () => setCameraOpen(false), emphasis: "ghost", size: "small", className: cls.cameraCancelButton, children: "Cancel" })] })), _jsx(ImageUploaderRemoveButton, {})] })));
|
|
@@ -149,6 +160,38 @@ export function ImageUploaderDisplay(_a) {
|
|
|
149
160
|
const { value } = useUploaderContext();
|
|
150
161
|
return value ? (_jsx("img", Object.assign({ src: value, className: clsx(cls.imagePreview, className) }, rest))) : null;
|
|
151
162
|
}
|
|
163
|
+
export function ImageUploaderAltText({ className, altText, onAltText, }) {
|
|
164
|
+
const { value, altText: contextAltText, onAltText: contextOnAltText, } = useUploaderContext();
|
|
165
|
+
const finalAltText = altText !== null && altText !== void 0 ? altText : contextAltText;
|
|
166
|
+
const finalOnAltText = onAltText !== null && onAltText !== void 0 ? onAltText : contextOnAltText;
|
|
167
|
+
const enabled = finalAltText !== undefined || !!finalOnAltText;
|
|
168
|
+
const [open, setOpen] = useState(false);
|
|
169
|
+
const [innerAltText, setInnerAltText] = useState('');
|
|
170
|
+
const skipCloseResetRef = useRef(false);
|
|
171
|
+
const readOnly = !finalOnAltText;
|
|
172
|
+
const altTextFieldId = useId();
|
|
173
|
+
useEffect(() => {
|
|
174
|
+
if (open)
|
|
175
|
+
return;
|
|
176
|
+
setInnerAltText(finalAltText !== null && finalAltText !== void 0 ? finalAltText : '');
|
|
177
|
+
}, [finalAltText, open]);
|
|
178
|
+
if (!enabled || !value)
|
|
179
|
+
return null;
|
|
180
|
+
return (_jsxs(Dialog, { open: open, onOpenChange: (isOpen) => {
|
|
181
|
+
setOpen(isOpen);
|
|
182
|
+
if (!isOpen) {
|
|
183
|
+
if (skipCloseResetRef.current) {
|
|
184
|
+
skipCloseResetRef.current = false;
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
setInnerAltText(finalAltText !== null && finalAltText !== void 0 ? finalAltText : '');
|
|
188
|
+
}
|
|
189
|
+
}, disableSheet: true, children: [_jsx(Dialog.Trigger, { className: clsx(cls.altTextButton, className), render: _jsx(Button, { emphasis: "light", size: "small" }), "aria-label": readOnly ? 'View alt text' : 'Edit alt text', children: "ALT" }), _jsxs(Dialog.Content, { className: cls.altTextDialog, innerClassName: cls.altTextDialogInner, children: [_jsx(Dialog.Title, { children: "Alt text" }), _jsx("img", { src: value, alt: "", className: cls.altTextDialogImage }), _jsxs(Field, { stretch: true, id: altTextFieldId, className: cls.altTextField, children: [_jsx(Field.Label, { children: "Alt text" }), _jsx(Field.Control, { render: _jsx(TextArea, { autoSize: false, rows: 4, value: innerAltText, readOnly: readOnly, onValueChange: readOnly ? undefined : setInnerAltText, className: cls.altTextInput }) })] }), finalOnAltText && (_jsxs(Dialog.Actions, { children: [_jsx(Dialog.Close, { children: "Cancel" }), _jsx(Button, { emphasis: "primary", onClick: () => {
|
|
190
|
+
skipCloseResetRef.current = true;
|
|
191
|
+
finalOnAltText(innerAltText);
|
|
192
|
+
setOpen(false);
|
|
193
|
+
}, children: "Save" })] }))] })] }));
|
|
194
|
+
}
|
|
152
195
|
export function ImageUploaderEmptyControls({ children, className, }) {
|
|
153
196
|
const { value, draggingOver } = useUploaderContext();
|
|
154
197
|
if (value)
|
|
@@ -160,6 +203,7 @@ export const ImageUploader = Object.assign(ImageUploaderPrebuilt, {
|
|
|
160
203
|
FileButton: ImageUploaderFileButton,
|
|
161
204
|
RemoveButton: ImageUploaderRemoveButton,
|
|
162
205
|
Display: ImageUploaderDisplay,
|
|
206
|
+
AltText: ImageUploaderAltText,
|
|
163
207
|
EmptyControls: ImageUploaderEmptyControls,
|
|
164
208
|
});
|
|
165
209
|
//# sourceMappingURL=ImageUploader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImageUploader.js","sourceRoot":"","sources":["../../../src/components/imageUploader/ImageUploader.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EACN,aAAa,EAIb,WAAW,EACX,UAAU,EACV,SAAS,EACT,KAAK,EACL,QAAQ,GACR,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,MAAM,EAAe,MAAM,oBAAoB,CAAC;AACzD,OAAO,EACN,oBAAoB,EACpB,sBAAsB,EACtB,UAAU,EACV,mBAAmB,GACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,GAAG,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"ImageUploader.js","sourceRoot":"","sources":["../../../src/components/imageUploader/ImageUploader.tsx"],"names":[],"mappings":"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"}
|
|
@@ -40,6 +40,40 @@
|
|
|
40
40
|
border: none;
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
+
.altTextButton {
|
|
44
|
+
position: absolute;
|
|
45
|
+
right: var(--m-sp-sm);
|
|
46
|
+
bottom: var(--m-sp-sm);
|
|
47
|
+
z-index: 10;
|
|
48
|
+
font-weight: var(--m-fw-bold);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.altTextDialog {
|
|
52
|
+
max-width: min(560px, 90vw);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.altTextDialogInner {
|
|
56
|
+
display: flex;
|
|
57
|
+
flex-direction: column;
|
|
58
|
+
gap: var(--m-sp-md);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.altTextField {
|
|
62
|
+
width: 100%;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.altTextInput {
|
|
66
|
+
width: 100%;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.altTextDialogImage {
|
|
70
|
+
width: 100%;
|
|
71
|
+
max-height: 280px;
|
|
72
|
+
object-fit: contain;
|
|
73
|
+
border-radius: var(--m-rd-md);
|
|
74
|
+
@apply --mx-bg(var(--m-surface-ambient-bg));
|
|
75
|
+
}
|
|
76
|
+
|
|
43
77
|
.imagePreview {
|
|
44
78
|
width: 100%;
|
|
45
79
|
height: 100%;
|
|
@@ -10,12 +10,16 @@ declare const meta: {
|
|
|
10
10
|
FileButton: typeof import("./ImageUploader.js").ImageUploaderFileButton;
|
|
11
11
|
RemoveButton: typeof import("./ImageUploader.js").ImageUploaderRemoveButton;
|
|
12
12
|
Display: typeof import("./ImageUploader.js").ImageUploaderDisplay;
|
|
13
|
+
AltText: typeof import("./ImageUploader.js").ImageUploaderAltText;
|
|
13
14
|
EmptyControls: typeof import("./ImageUploader.js").ImageUploaderEmptyControls;
|
|
14
15
|
};
|
|
15
16
|
argTypes: {
|
|
16
17
|
onChange: {
|
|
17
18
|
action: string;
|
|
18
19
|
};
|
|
20
|
+
onAltText: {
|
|
21
|
+
action: string;
|
|
22
|
+
};
|
|
19
23
|
maxDimension: {
|
|
20
24
|
control: {
|
|
21
25
|
type: "number";
|
|
@@ -37,3 +41,5 @@ declare const meta: {
|
|
|
37
41
|
export default meta;
|
|
38
42
|
type Story = StoryObj<typeof ImageUploader>;
|
|
39
43
|
export declare const Default: Story;
|
|
44
|
+
export declare const WithAltText: Story;
|
|
45
|
+
export declare const ReadOnlyAltText: Story;
|
|
@@ -6,6 +6,7 @@ const meta = {
|
|
|
6
6
|
component: ImageUploader,
|
|
7
7
|
argTypes: {
|
|
8
8
|
onChange: { action: 'change' },
|
|
9
|
+
onAltText: { action: 'alt text' },
|
|
9
10
|
maxDimension: { control: { type: 'number' } },
|
|
10
11
|
},
|
|
11
12
|
parameters: {
|
|
@@ -19,8 +20,23 @@ export default meta;
|
|
|
19
20
|
export const Default = {
|
|
20
21
|
render: () => _jsx(ImageUploaderDemo, {}),
|
|
21
22
|
};
|
|
23
|
+
export const WithAltText = {
|
|
24
|
+
render: () => _jsx(ImageUploaderAltTextDemo, {}),
|
|
25
|
+
};
|
|
26
|
+
export const ReadOnlyAltText = {
|
|
27
|
+
render: () => _jsx(ImageUploaderReadOnlyAltTextDemo, {}),
|
|
28
|
+
};
|
|
22
29
|
function ImageUploaderDemo() {
|
|
23
30
|
const [value, setValue] = useState(null);
|
|
24
31
|
return (_jsx(ImageUploader, { onChange: (file) => file ? setValue(URL.createObjectURL(file)) : setValue(null), value: value, style: { width: 256, height: 256 } }));
|
|
25
32
|
}
|
|
33
|
+
function ImageUploaderAltTextDemo() {
|
|
34
|
+
const [value, setValue] = useState(null);
|
|
35
|
+
const [altText, setAltText] = useState('A scenic mountain landscape');
|
|
36
|
+
return (_jsx(ImageUploader, { onChange: (file) => file ? setValue(URL.createObjectURL(file)) : setValue(null), onAltText: setAltText, altText: altText, value: value, style: { width: 256, height: 256 } }));
|
|
37
|
+
}
|
|
38
|
+
function ImageUploaderReadOnlyAltTextDemo() {
|
|
39
|
+
const [value, setValue] = useState(null);
|
|
40
|
+
return (_jsx(ImageUploader, { onChange: (file) => file ? setValue(URL.createObjectURL(file)) : setValue(null), altText: "Read-only alt text", value: value, style: { width: 256, height: 256 } }));
|
|
41
|
+
}
|
|
26
42
|
//# sourceMappingURL=ImageUploader.stories.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImageUploader.stories.js","sourceRoot":"","sources":["../../../src/components/imageUploader/ImageUploader.stories.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,IAAI,GAAG;IACZ,KAAK,EAAE,0BAA0B;IACjC,SAAS,EAAE,aAAa;IACxB,QAAQ,EAAE;QACT,QAAQ,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;QAC9B,YAAY,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;KAC7C;IACD,UAAU,EAAE;QACX,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC5B;IACD,IAAI,EAAE;QACL,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;KAClC;CACoC,CAAC;AAEvC,eAAe,IAAI,CAAC;AAIpB,MAAM,CAAC,MAAM,OAAO,GAAU;IAC7B,MAAM,EAAE,GAAG,EAAE,CAAC,KAAC,iBAAiB,KAAG;CACnC,CAAC;AAEF,SAAS,iBAAiB;IACzB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAExD,OAAO,CACN,KAAC,aAAa,IACb,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAClB,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAE5D,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GACjC,CACF,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"ImageUploader.stories.js","sourceRoot":"","sources":["../../../src/components/imageUploader/ImageUploader.stories.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,IAAI,GAAG;IACZ,KAAK,EAAE,0BAA0B;IACjC,SAAS,EAAE,aAAa;IACxB,QAAQ,EAAE;QACT,QAAQ,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;QAC9B,SAAS,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE;QACjC,YAAY,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;KAC7C;IACD,UAAU,EAAE;QACX,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC5B;IACD,IAAI,EAAE;QACL,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;KAClC;CACoC,CAAC;AAEvC,eAAe,IAAI,CAAC;AAIpB,MAAM,CAAC,MAAM,OAAO,GAAU;IAC7B,MAAM,EAAE,GAAG,EAAE,CAAC,KAAC,iBAAiB,KAAG;CACnC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAU;IACjC,MAAM,EAAE,GAAG,EAAE,CAAC,KAAC,wBAAwB,KAAG;CAC1C,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAU;IACrC,MAAM,EAAE,GAAG,EAAE,CAAC,KAAC,gCAAgC,KAAG;CAClD,CAAC;AAEF,SAAS,iBAAiB;IACzB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAExD,OAAO,CACN,KAAC,aAAa,IACb,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAClB,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAE5D,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GACjC,CACF,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB;IAChC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACxD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,6BAA6B,CAAC,CAAC;IAEtE,OAAO,CACN,KAAC,aAAa,IACb,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAClB,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAE5D,SAAS,EAAE,UAAU,EACrB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GACjC,CACF,CAAC;AACH,CAAC;AAED,SAAS,gCAAgC;IACxC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAExD,OAAO,CACN,KAAC,aAAa,IACb,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAClB,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAE5D,OAAO,EAAC,oBAAoB,EAC5B,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GACjC,CACF,CAAC;AACH,CAAC"}
|
|
@@ -9,11 +9,15 @@ const meta = {
|
|
|
9
9
|
parameters: {
|
|
10
10
|
controls: { expanded: true },
|
|
11
11
|
},
|
|
12
|
+
args: {
|
|
13
|
+
onCenterChange: undefined,
|
|
14
|
+
onZoomChange: undefined,
|
|
15
|
+
},
|
|
12
16
|
};
|
|
13
17
|
export default meta;
|
|
14
18
|
const CenterButton = () => {
|
|
15
19
|
const viewport = useViewport();
|
|
16
|
-
return (_jsx(Button, { emphasis: "ghost", size: "small", onClick: () => viewport.recenter(), children: _jsx(Icon, { name: "locate" }) }));
|
|
20
|
+
return (_jsx(Button, { emphasis: "ghost", size: "small", onClick: () => viewport.recenter(), "aria-label": "Center", children: _jsx(Icon, { name: "locate" }) }));
|
|
17
21
|
};
|
|
18
22
|
export const Default = {
|
|
19
23
|
render(args) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Viewport.stories.js","sourceRoot":"","sources":["../../../src/components/viewport/Viewport.stories.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,MAAM,IAAI,GAAG;IACZ,KAAK,EAAE,qBAAqB;IAC5B,SAAS,EAAE,QAAQ;IACnB,UAAU,EAAE;QACX,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC5B;CAC+B,CAAC;AAElC,eAAe,IAAI,CAAC;AAIpB,MAAM,YAAY,GAAG,GAAG,EAAE;IACzB,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAE/B,OAAO,CACN,KAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"Viewport.stories.js","sourceRoot":"","sources":["../../../src/components/viewport/Viewport.stories.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,MAAM,IAAI,GAAG;IACZ,KAAK,EAAE,qBAAqB;IAC5B,SAAS,EAAE,QAAQ;IACnB,UAAU,EAAE;QACX,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC5B;IACD,IAAI,EAAE;QACL,cAAc,EAAE,SAAS;QACzB,YAAY,EAAE,SAAS;KACvB;CAC+B,CAAC;AAElC,eAAe,IAAI,CAAC;AAIpB,MAAM,YAAY,GAAG,GAAG,EAAE;IACzB,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAE/B,OAAO,CACN,KAAC,MAAM,IACN,QAAQ,EAAC,OAAO,EAChB,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,gBACvB,QAAQ,YAEnB,KAAC,IAAI,IAAC,IAAI,EAAC,QAAQ,GAAG,GACd,CACT,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAU;IAC7B,MAAM,CAAC,IAAI;QACV,OAAO,CACN,MAAC,QAAQ,kBACR,KAAK,EAAE;gBACN,MAAM,EAAE,GAAG;gBACX,KAAK,EAAE,MAAM;aACb,IACG,IAAI,eAER,cAAK,GAAG,EAAC,mDAAmD,GAAG,EAC/D,KAAC,QAAQ,CAAC,OAAO,cAChB,KAAC,QAAQ,CAAC,YAAY,KAAG,GACP,EACnB,KAAC,QAAQ,CAAC,OAAO,IAAC,QAAQ,EAAC,cAAc,YACxC,KAAC,YAAY,KAAG,GACE,KACT,CACX,CAAC;IACH,CAAC;CACD,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAU;IACnC,MAAM,CAAC,IAAI;QACV,OAAO,CACN,MAAC,QAAQ,kBACR,KAAK,EAAE;gBACN,MAAM,EAAE,GAAG;gBACX,KAAK,EAAE,MAAM;aACb,EACD,WAAW,EAAE,GAAG,EAChB,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,EAAE,IACP,IAAI,eAER,cACC,GAAG,EAAC,mDAAmD,EACvD,KAAK,EAAE,EAAE,GACR,EACF,KAAC,QAAQ,CAAC,OAAO,cAChB,KAAC,QAAQ,CAAC,YAAY,KAAG,GACP,EACnB,KAAC,QAAQ,CAAC,OAAO,IAAC,QAAQ,EAAC,cAAc,YACxC,KAAC,YAAY,KAAG,GACE,KACT,CACX,CAAC;IACH,CAAC;CACD,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ComponentProps } from 'react';
|
|
2
2
|
import { ViewportState } from './ViewportState.js';
|
|
3
|
-
export interface ViewportContentProps extends Omit<
|
|
3
|
+
export interface ViewportContentProps extends Omit<ComponentProps<'div'>, 'viewport'> {
|
|
4
4
|
viewport: ViewportState;
|
|
5
5
|
}
|
|
6
6
|
export declare function ViewportContent({ viewport, children, className, ...rest }: ViewportContentProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -12,53 +12,47 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
12
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
13
|
import { preventDefault } from '@a-type/utils';
|
|
14
14
|
import clsx from 'clsx';
|
|
15
|
-
import {
|
|
16
|
-
import { useEffect, useRef } from 'react';
|
|
15
|
+
import { useCallback, useEffect, useRef } from 'react';
|
|
17
16
|
import useMergedRef from '../../hooks/useMergedRef.js';
|
|
18
17
|
import cls from './ViewportContent.module.css';
|
|
19
|
-
const PAN_SPRING_CONFIG = {
|
|
20
|
-
mass: 0.2,
|
|
21
|
-
bounce: 0.05,
|
|
22
|
-
};
|
|
23
|
-
const ZOOM_SPRING_CONFIG = {
|
|
24
|
-
mass: 0.5,
|
|
25
|
-
bounce: 0.1,
|
|
26
|
-
};
|
|
27
18
|
export function ViewportContent(_a) {
|
|
28
19
|
var { viewport, children, className } = _a, rest = __rest(_a, ["viewport", "children", "className"]);
|
|
29
20
|
const internalRef = useRef(null);
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
21
|
+
const setPosition = useCallback(({ x, y, zoom }, immediate) => {
|
|
22
|
+
const current = internalRef.current;
|
|
23
|
+
if (current) {
|
|
24
|
+
if (immediate) {
|
|
25
|
+
current.style.setProperty('transition', 'none');
|
|
26
|
+
requestAnimationFrame(() => {
|
|
27
|
+
current.style.removeProperty('transition');
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
current.style.removeProperty('transition');
|
|
32
|
+
}
|
|
33
|
+
if (x !== undefined) {
|
|
34
|
+
current.style.setProperty('--center-x', `${-x}px`);
|
|
35
|
+
}
|
|
36
|
+
if (y !== undefined) {
|
|
37
|
+
current.style.setProperty('--center-y', `${-y}px`);
|
|
38
|
+
}
|
|
39
|
+
if (zoom !== undefined) {
|
|
40
|
+
current.style.setProperty('--zoom', `${zoom}`);
|
|
41
|
+
}
|
|
37
42
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
}), [viewport, centerX, centerY]);
|
|
43
|
+
}, []);
|
|
44
|
+
useEffect(() => viewport.subscribe('centerChanged', (center, origin) => {
|
|
45
|
+
setPosition({ x: center.x, y: center.y }, origin === 'direct');
|
|
46
|
+
}), [viewport]);
|
|
43
47
|
useEffect(() => viewport.subscribe('zoomChanged', (zoomValue, origin) => {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
zoom.set(zoomValue);
|
|
49
|
-
}
|
|
50
|
-
if (internalRef.current) {
|
|
51
|
-
// disabled: this is causing recalculate style :(
|
|
52
|
-
//internalRef.current.style.setProperty('--zoom', zoomValue.toString());
|
|
53
|
-
}
|
|
54
|
-
}), [viewport, zoom, internalRef]);
|
|
48
|
+
setPosition({ zoom: zoomValue }, origin === 'direct');
|
|
49
|
+
}), [viewport, internalRef]);
|
|
55
50
|
useEffect(() => viewport.subscribe('zoomSettled', (zoom) => {
|
|
56
51
|
if (internalRef.current) {
|
|
57
52
|
internalRef.current.style.setProperty('--zoom-settled', zoom.toString());
|
|
58
53
|
}
|
|
59
54
|
}), [viewport, internalRef]);
|
|
60
55
|
const finalRef = useMergedRef(viewport.bindContent, internalRef);
|
|
61
|
-
|
|
62
|
-
return (_jsx(motion.div, Object.assign({}, rest, { className: clsx(cls.root, className), ref: finalRef, style: { transform }, onDragStartCapture: preventDefault, onDrag: preventDefault, onDragEnd: preventDefault, children: children })));
|
|
56
|
+
return (_jsx("div", Object.assign({}, rest, { className: clsx(cls.root, className), ref: finalRef, onDragStartCapture: preventDefault, onDrag: preventDefault, onDragEnd: preventDefault, children: children })));
|
|
63
57
|
}
|
|
64
58
|
//# sourceMappingURL=ViewportContent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewportContent.js","sourceRoot":"","sources":["../../../src/components/viewport/ViewportContent.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,
|
|
1
|
+
{"version":3,"file":"ViewportContent.js","sourceRoot":"","sources":["../../../src/components/viewport/ViewportContent.tsx"],"names":[],"mappings":"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"}
|
|
@@ -5,5 +5,34 @@
|
|
|
5
5
|
user-select: none;
|
|
6
6
|
overflow: visible;
|
|
7
7
|
overscroll-behavior: none;
|
|
8
|
+
transition: transform var(--m-dur-long) var(--m-ease-out-loose);
|
|
9
|
+
will-change: transform;
|
|
10
|
+
|
|
11
|
+
--zoom: 1;
|
|
12
|
+
--center-x: 0px;
|
|
13
|
+
--center-y: 0px;
|
|
14
|
+
transform: translate3d(
|
|
15
|
+
calc(var(--root-width, 0px) / 2),
|
|
16
|
+
calc(var(--root-height, 0px) / 2),
|
|
17
|
+
0
|
|
18
|
+
)
|
|
19
|
+
translate3d(-50%, -50%, 0) scale(var(--zoom))
|
|
20
|
+
translate3d(var(--center-x), var(--center-y), 0);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@property --zoom {
|
|
24
|
+
syntax: '<number>';
|
|
25
|
+
initial-value: 1;
|
|
26
|
+
inherits: false;
|
|
27
|
+
}
|
|
28
|
+
@property --center-x {
|
|
29
|
+
syntax: '<length>';
|
|
30
|
+
initial-value: 0px;
|
|
31
|
+
inherits: false;
|
|
32
|
+
}
|
|
33
|
+
@property --center-y {
|
|
34
|
+
syntax: '<length>';
|
|
35
|
+
initial-value: 0px;
|
|
36
|
+
inherits: false;
|
|
8
37
|
}
|
|
9
38
|
}
|
|
@@ -324,7 +324,6 @@ export class ViewportState extends EventSubscriber {
|
|
|
324
324
|
}
|
|
325
325
|
};
|
|
326
326
|
this.setPan = (worldPosition, details) => {
|
|
327
|
-
console.log('Setting pan to:', worldPosition);
|
|
328
327
|
// worldPosition.x += this.contentOffset.x;
|
|
329
328
|
// worldPosition.y += this.contentOffset.y;
|
|
330
329
|
this.rawPan(worldPosition, details);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewportState.js","sourceRoot":"","sources":["../../../src/components/viewport/ViewportState.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ViewportState.js","sourceRoot":"","sources":["../../../src/components/viewport/ViewportState.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
10
10
|
return t;
|
|
11
11
|
};
|
|
12
12
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
+
import { stopPropagation } from '@a-type/utils';
|
|
13
14
|
import clsx from 'clsx';
|
|
14
15
|
import { Box } from '../box/Box.js';
|
|
15
16
|
import { Button } from '../button/Button.js';
|
|
@@ -31,6 +32,6 @@ export function ViewportZoomControls(_a) {
|
|
|
31
32
|
const reset = () => {
|
|
32
33
|
viewport.fitEverythingOnScreen({ origin: 'control' });
|
|
33
34
|
};
|
|
34
|
-
return (_jsxs(Box, Object.assign({ gap: true, col: true, className: clsx(className) }, props, { children: [fit && (_jsx(Button, { emphasis: "ghost", size: "small", onClick: reset, children: _jsx(Icon, { name: "maximize" }) })), zoomIn && (_jsx(Button, { emphasis: "ghost", size: "small", onClick: doZoomIn, children: _jsx(Icon, { name: "zoomIn" }) })), zoomOut && (_jsx(Button, { emphasis: "ghost", size: "small", onClick: doZoomOut, children: _jsx(Icon, { name: "zoomOut" }) }))] })));
|
|
35
|
+
return (_jsxs(Box, Object.assign({ gap: true, col: true, className: clsx(className), onPointerDown: stopPropagation, onPointerMove: stopPropagation, onPointerUp: stopPropagation }, props, { children: [fit && (_jsx(Button, { emphasis: "ghost", size: "small", onClick: reset, "aria-label": "Fit to screen", children: _jsx(Icon, { name: "maximize" }) })), zoomIn && (_jsx(Button, { emphasis: "ghost", size: "small", onClick: doZoomIn, "aria-label": "Zoom in", children: _jsx(Icon, { name: "zoomIn" }) })), zoomOut && (_jsx(Button, { emphasis: "ghost", size: "small", onClick: doZoomOut, "aria-label": "Zoom out", children: _jsx(Icon, { name: "zoomOut" }) }))] })));
|
|
35
36
|
}
|
|
36
37
|
//# sourceMappingURL=ViewportZoomControls.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewportZoomControls.js","sourceRoot":"","sources":["../../../src/components/viewport/ViewportZoomControls.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,GAAG,EAAY,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,MAAM,UAAU,oBAAoB,CAAC,EAUpC;QAVoC,EACpC,SAAS,EACT,MAAM,GAAG,IAAI,EACb,OAAO,GAAG,IAAI,EACd,GAAG,GAAG,IAAI,OAMV,EALG,KAAK,cAL4B,yCAMpC,CADQ;IAMR,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,QAAQ,GAAG,GAAG,EAAE;QACrB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE;YAChC,MAAM,EAAE,SAAS;SACjB,CAAC,CAAC;IACJ,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,GAAG,EAAE;QACtB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE;YAChC,MAAM,EAAE,SAAS;SACjB,CAAC,CAAC;IACJ,CAAC,CAAC;IACF,MAAM,KAAK,GAAG,GAAG,EAAE;QAClB,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC;IACF,OAAO,CACN,MAAC,GAAG,
|
|
1
|
+
{"version":3,"file":"ViewportZoomControls.js","sourceRoot":"","sources":["../../../src/components/viewport/ViewportZoomControls.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,GAAG,EAAY,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,MAAM,UAAU,oBAAoB,CAAC,EAUpC;QAVoC,EACpC,SAAS,EACT,MAAM,GAAG,IAAI,EACb,OAAO,GAAG,IAAI,EACd,GAAG,GAAG,IAAI,OAMV,EALG,KAAK,cAL4B,yCAMpC,CADQ;IAMR,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,QAAQ,GAAG,GAAG,EAAE;QACrB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE;YAChC,MAAM,EAAE,SAAS;SACjB,CAAC,CAAC;IACJ,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,GAAG,EAAE;QACtB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE;YAChC,MAAM,EAAE,SAAS;SACjB,CAAC,CAAC;IACJ,CAAC,CAAC;IACF,MAAM,KAAK,GAAG,GAAG,EAAE;QAClB,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC;IACF,OAAO,CACN,MAAC,GAAG,kBACH,GAAG,QACH,GAAG,QACH,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EAC1B,aAAa,EAAE,eAAe,EAC9B,aAAa,EAAE,eAAe,EAC9B,WAAW,EAAE,eAAe,IACxB,KAAK,eAER,GAAG,IAAI,CACP,KAAC,MAAM,IACN,QAAQ,EAAC,OAAO,EAChB,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,KAAK,gBACH,eAAe,YAE1B,KAAC,IAAI,IAAC,IAAI,EAAC,UAAU,GAAG,GAChB,CACT,EACA,MAAM,IAAI,CACV,KAAC,MAAM,IACN,QAAQ,EAAC,OAAO,EAChB,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,QAAQ,gBACN,SAAS,YAEpB,KAAC,IAAI,IAAC,IAAI,EAAC,QAAQ,GAAG,GACd,CACT,EACA,OAAO,IAAI,CACX,KAAC,MAAM,IACN,QAAQ,EAAC,OAAO,EAChB,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,SAAS,gBACP,UAAU,YAErB,KAAC,IAAI,IAAC,IAAI,EAAC,SAAS,GAAG,GACf,CACT,KACI,CACN,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@a-type/ui",
|
|
3
|
-
"version": "6.1.
|
|
3
|
+
"version": "6.1.34",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"repository": {
|
|
6
6
|
"url": "https://github.com/a-type/ui"
|
|
@@ -50,7 +50,6 @@
|
|
|
50
50
|
"date-fns": "^4.1.0",
|
|
51
51
|
"formik": "^2.4.6",
|
|
52
52
|
"frimousse": "^0.2.0",
|
|
53
|
-
"motion": "^12.23.6",
|
|
54
53
|
"pluralize": "^8.0.0",
|
|
55
54
|
"valtio": "^2.1.4"
|
|
56
55
|
},
|
|
@@ -40,6 +40,40 @@
|
|
|
40
40
|
border: none;
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
+
.altTextButton {
|
|
44
|
+
position: absolute;
|
|
45
|
+
right: var(--m-sp-sm);
|
|
46
|
+
bottom: var(--m-sp-sm);
|
|
47
|
+
z-index: 10;
|
|
48
|
+
font-weight: var(--m-fw-bold);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.altTextDialog {
|
|
52
|
+
max-width: min(560px, 90vw);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.altTextDialogInner {
|
|
56
|
+
display: flex;
|
|
57
|
+
flex-direction: column;
|
|
58
|
+
gap: var(--m-sp-md);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.altTextField {
|
|
62
|
+
width: 100%;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.altTextInput {
|
|
66
|
+
width: 100%;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.altTextDialogImage {
|
|
70
|
+
width: 100%;
|
|
71
|
+
max-height: 280px;
|
|
72
|
+
object-fit: contain;
|
|
73
|
+
border-radius: var(--m-rd-md);
|
|
74
|
+
@apply --mx-bg(var(--m-surface-ambient-bg));
|
|
75
|
+
}
|
|
76
|
+
|
|
43
77
|
.imagePreview {
|
|
44
78
|
width: 100%;
|
|
45
79
|
height: 100%;
|
|
@@ -7,6 +7,7 @@ const meta = {
|
|
|
7
7
|
component: ImageUploader,
|
|
8
8
|
argTypes: {
|
|
9
9
|
onChange: { action: 'change' },
|
|
10
|
+
onAltText: { action: 'alt text' },
|
|
10
11
|
maxDimension: { control: { type: 'number' } },
|
|
11
12
|
},
|
|
12
13
|
parameters: {
|
|
@@ -25,6 +26,14 @@ export const Default: Story = {
|
|
|
25
26
|
render: () => <ImageUploaderDemo />,
|
|
26
27
|
};
|
|
27
28
|
|
|
29
|
+
export const WithAltText: Story = {
|
|
30
|
+
render: () => <ImageUploaderAltTextDemo />,
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
export const ReadOnlyAltText: Story = {
|
|
34
|
+
render: () => <ImageUploaderReadOnlyAltTextDemo />,
|
|
35
|
+
};
|
|
36
|
+
|
|
28
37
|
function ImageUploaderDemo() {
|
|
29
38
|
const [value, setValue] = useState<string | null>(null);
|
|
30
39
|
|
|
@@ -38,3 +47,35 @@ function ImageUploaderDemo() {
|
|
|
38
47
|
/>
|
|
39
48
|
);
|
|
40
49
|
}
|
|
50
|
+
|
|
51
|
+
function ImageUploaderAltTextDemo() {
|
|
52
|
+
const [value, setValue] = useState<string | null>(null);
|
|
53
|
+
const [altText, setAltText] = useState('A scenic mountain landscape');
|
|
54
|
+
|
|
55
|
+
return (
|
|
56
|
+
<ImageUploader
|
|
57
|
+
onChange={(file) =>
|
|
58
|
+
file ? setValue(URL.createObjectURL(file)) : setValue(null)
|
|
59
|
+
}
|
|
60
|
+
onAltText={setAltText}
|
|
61
|
+
altText={altText}
|
|
62
|
+
value={value}
|
|
63
|
+
style={{ width: 256, height: 256 }}
|
|
64
|
+
/>
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
function ImageUploaderReadOnlyAltTextDemo() {
|
|
69
|
+
const [value, setValue] = useState<string | null>(null);
|
|
70
|
+
|
|
71
|
+
return (
|
|
72
|
+
<ImageUploader
|
|
73
|
+
onChange={(file) =>
|
|
74
|
+
file ? setValue(URL.createObjectURL(file)) : setValue(null)
|
|
75
|
+
}
|
|
76
|
+
altText="Read-only alt text"
|
|
77
|
+
value={value}
|
|
78
|
+
style={{ width: 256, height: 256 }}
|
|
79
|
+
/>
|
|
80
|
+
);
|
|
81
|
+
}
|
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
useContext,
|
|
9
9
|
useEffect,
|
|
10
10
|
useId,
|
|
11
|
+
useRef,
|
|
11
12
|
useState,
|
|
12
13
|
} from 'react';
|
|
13
14
|
import { Button, ButtonProps } from '../button/index.js';
|
|
@@ -17,12 +18,17 @@ import {
|
|
|
17
18
|
CameraRoot,
|
|
18
19
|
CameraShutterButton,
|
|
19
20
|
} from '../camera/index.js';
|
|
21
|
+
import { Dialog } from '../dialog/index.js';
|
|
22
|
+
import { Field } from '../forms/index.js';
|
|
20
23
|
import { Icon } from '../icon/index.js';
|
|
24
|
+
import { TextArea } from '../textArea/index.js';
|
|
21
25
|
import cls from './ImageUploader.module.css';
|
|
22
26
|
|
|
23
27
|
export interface ImageUploaderProps {
|
|
24
28
|
value: string | null;
|
|
25
29
|
onChange: (value: File | null) => void;
|
|
30
|
+
altText?: string;
|
|
31
|
+
onAltText?: (value: string) => void;
|
|
26
32
|
className?: string;
|
|
27
33
|
style?: CSSProperties;
|
|
28
34
|
maxDimension?: number;
|
|
@@ -37,6 +43,8 @@ export interface ImageUploaderProps {
|
|
|
37
43
|
export function ImageUploaderRoot({
|
|
38
44
|
value,
|
|
39
45
|
onChange: handleChange,
|
|
46
|
+
altText,
|
|
47
|
+
onAltText,
|
|
40
48
|
maxDimension,
|
|
41
49
|
children,
|
|
42
50
|
className,
|
|
@@ -134,7 +142,15 @@ export function ImageUploaderRoot({
|
|
|
134
142
|
|
|
135
143
|
return (
|
|
136
144
|
<ImageUploaderContext.Provider
|
|
137
|
-
value={{
|
|
145
|
+
value={{
|
|
146
|
+
inputId,
|
|
147
|
+
dragging,
|
|
148
|
+
draggingOver,
|
|
149
|
+
value,
|
|
150
|
+
onChange,
|
|
151
|
+
altText,
|
|
152
|
+
onAltText,
|
|
153
|
+
}}
|
|
138
154
|
>
|
|
139
155
|
<div
|
|
140
156
|
className={classNames('@mode-neutral', cls.root, className)}
|
|
@@ -166,6 +182,8 @@ const ImageUploaderContext = createContext<{
|
|
|
166
182
|
draggingOver: boolean;
|
|
167
183
|
value: string | null;
|
|
168
184
|
onChange: (file: File | null) => void;
|
|
185
|
+
altText?: string;
|
|
186
|
+
onAltText?: (value: string) => void;
|
|
169
187
|
} | null>(null);
|
|
170
188
|
function useUploaderContext() {
|
|
171
189
|
const context = useContext(ImageUploaderContext);
|
|
@@ -188,6 +206,9 @@ function ImageUploaderPrebuilt({
|
|
|
188
206
|
return (
|
|
189
207
|
<ImageUploaderRoot {...props}>
|
|
190
208
|
<ImageUploaderDisplay crossOrigin={crossOrigin} />
|
|
209
|
+
{(props.altText !== undefined || props.onAltText) && (
|
|
210
|
+
<ImageUploaderAltText />
|
|
211
|
+
)}
|
|
191
212
|
|
|
192
213
|
<ImageUploaderEmptyControls>
|
|
193
214
|
<ImageUploaderFileButton />
|
|
@@ -291,6 +312,101 @@ export function ImageUploaderDisplay({
|
|
|
291
312
|
) : null;
|
|
292
313
|
}
|
|
293
314
|
|
|
315
|
+
export interface ImageUploaderAltTextProps {
|
|
316
|
+
className?: string;
|
|
317
|
+
altText?: string;
|
|
318
|
+
onAltText?: (value: string) => void;
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
export function ImageUploaderAltText({
|
|
322
|
+
className,
|
|
323
|
+
altText,
|
|
324
|
+
onAltText,
|
|
325
|
+
}: ImageUploaderAltTextProps) {
|
|
326
|
+
const {
|
|
327
|
+
value,
|
|
328
|
+
altText: contextAltText,
|
|
329
|
+
onAltText: contextOnAltText,
|
|
330
|
+
} = useUploaderContext();
|
|
331
|
+
const finalAltText = altText ?? contextAltText;
|
|
332
|
+
const finalOnAltText = onAltText ?? contextOnAltText;
|
|
333
|
+
const enabled = finalAltText !== undefined || !!finalOnAltText;
|
|
334
|
+
const [open, setOpen] = useState(false);
|
|
335
|
+
const [innerAltText, setInnerAltText] = useState('');
|
|
336
|
+
const skipCloseResetRef = useRef(false);
|
|
337
|
+
const readOnly = !finalOnAltText;
|
|
338
|
+
const altTextFieldId = useId();
|
|
339
|
+
|
|
340
|
+
useEffect(() => {
|
|
341
|
+
if (open) return;
|
|
342
|
+
setInnerAltText(finalAltText ?? '');
|
|
343
|
+
}, [finalAltText, open]);
|
|
344
|
+
|
|
345
|
+
if (!enabled || !value) return null;
|
|
346
|
+
|
|
347
|
+
return (
|
|
348
|
+
<Dialog
|
|
349
|
+
open={open}
|
|
350
|
+
onOpenChange={(isOpen) => {
|
|
351
|
+
setOpen(isOpen);
|
|
352
|
+
if (!isOpen) {
|
|
353
|
+
if (skipCloseResetRef.current) {
|
|
354
|
+
skipCloseResetRef.current = false;
|
|
355
|
+
return;
|
|
356
|
+
}
|
|
357
|
+
setInnerAltText(finalAltText ?? '');
|
|
358
|
+
}
|
|
359
|
+
}}
|
|
360
|
+
disableSheet
|
|
361
|
+
>
|
|
362
|
+
<Dialog.Trigger
|
|
363
|
+
className={clsx(cls.altTextButton, className)}
|
|
364
|
+
render={<Button emphasis="light" size="small" />}
|
|
365
|
+
aria-label={readOnly ? 'View alt text' : 'Edit alt text'}
|
|
366
|
+
>
|
|
367
|
+
ALT
|
|
368
|
+
</Dialog.Trigger>
|
|
369
|
+
<Dialog.Content
|
|
370
|
+
className={cls.altTextDialog}
|
|
371
|
+
innerClassName={cls.altTextDialogInner}
|
|
372
|
+
>
|
|
373
|
+
<Dialog.Title>Alt text</Dialog.Title>
|
|
374
|
+
<img src={value} alt="" className={cls.altTextDialogImage} />
|
|
375
|
+
<Field stretch id={altTextFieldId} className={cls.altTextField}>
|
|
376
|
+
<Field.Label>Alt text</Field.Label>
|
|
377
|
+
<Field.Control
|
|
378
|
+
render={
|
|
379
|
+
<TextArea
|
|
380
|
+
autoSize={false}
|
|
381
|
+
rows={4}
|
|
382
|
+
value={innerAltText}
|
|
383
|
+
readOnly={readOnly}
|
|
384
|
+
onValueChange={readOnly ? undefined : setInnerAltText}
|
|
385
|
+
className={cls.altTextInput}
|
|
386
|
+
/>
|
|
387
|
+
}
|
|
388
|
+
/>
|
|
389
|
+
</Field>
|
|
390
|
+
{finalOnAltText && (
|
|
391
|
+
<Dialog.Actions>
|
|
392
|
+
<Dialog.Close>Cancel</Dialog.Close>
|
|
393
|
+
<Button
|
|
394
|
+
emphasis="primary"
|
|
395
|
+
onClick={() => {
|
|
396
|
+
skipCloseResetRef.current = true;
|
|
397
|
+
finalOnAltText(innerAltText);
|
|
398
|
+
setOpen(false);
|
|
399
|
+
}}
|
|
400
|
+
>
|
|
401
|
+
Save
|
|
402
|
+
</Button>
|
|
403
|
+
</Dialog.Actions>
|
|
404
|
+
)}
|
|
405
|
+
</Dialog.Content>
|
|
406
|
+
</Dialog>
|
|
407
|
+
);
|
|
408
|
+
}
|
|
409
|
+
|
|
294
410
|
export function ImageUploaderEmptyControls({
|
|
295
411
|
children,
|
|
296
412
|
className,
|
|
@@ -317,5 +433,6 @@ export const ImageUploader = Object.assign(ImageUploaderPrebuilt, {
|
|
|
317
433
|
FileButton: ImageUploaderFileButton,
|
|
318
434
|
RemoveButton: ImageUploaderRemoveButton,
|
|
319
435
|
Display: ImageUploaderDisplay,
|
|
436
|
+
AltText: ImageUploaderAltText,
|
|
320
437
|
EmptyControls: ImageUploaderEmptyControls,
|
|
321
438
|
});
|
|
@@ -10,6 +10,10 @@ const meta = {
|
|
|
10
10
|
parameters: {
|
|
11
11
|
controls: { expanded: true },
|
|
12
12
|
},
|
|
13
|
+
args: {
|
|
14
|
+
onCenterChange: undefined,
|
|
15
|
+
onZoomChange: undefined,
|
|
16
|
+
},
|
|
13
17
|
} satisfies Meta<typeof Viewport>;
|
|
14
18
|
|
|
15
19
|
export default meta;
|
|
@@ -20,7 +24,12 @@ const CenterButton = () => {
|
|
|
20
24
|
const viewport = useViewport();
|
|
21
25
|
|
|
22
26
|
return (
|
|
23
|
-
<Button
|
|
27
|
+
<Button
|
|
28
|
+
emphasis="ghost"
|
|
29
|
+
size="small"
|
|
30
|
+
onClick={() => viewport.recenter()}
|
|
31
|
+
aria-label="Center"
|
|
32
|
+
>
|
|
24
33
|
<Icon name="locate" />
|
|
25
34
|
</Button>
|
|
26
35
|
);
|
|
@@ -5,4 +5,33 @@
|
|
|
5
5
|
user-select: none;
|
|
6
6
|
overflow: visible;
|
|
7
7
|
overscroll-behavior: none;
|
|
8
|
+
transition: transform var(--m-dur-long) var(--m-ease-out-loose);
|
|
9
|
+
will-change: transform;
|
|
10
|
+
|
|
11
|
+
--zoom: 1;
|
|
12
|
+
--center-x: 0px;
|
|
13
|
+
--center-y: 0px;
|
|
14
|
+
transform: translate3d(
|
|
15
|
+
calc(var(--root-width, 0px) / 2),
|
|
16
|
+
calc(var(--root-height, 0px) / 2),
|
|
17
|
+
0
|
|
18
|
+
)
|
|
19
|
+
translate3d(-50%, -50%, 0) scale(var(--zoom))
|
|
20
|
+
translate3d(var(--center-x), var(--center-y), 0);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@property --zoom {
|
|
24
|
+
syntax: '<number>';
|
|
25
|
+
initial-value: 1;
|
|
26
|
+
inherits: false;
|
|
27
|
+
}
|
|
28
|
+
@property --center-x {
|
|
29
|
+
syntax: '<length>';
|
|
30
|
+
initial-value: 0px;
|
|
31
|
+
inherits: false;
|
|
32
|
+
}
|
|
33
|
+
@property --center-y {
|
|
34
|
+
syntax: '<length>';
|
|
35
|
+
initial-value: 0px;
|
|
36
|
+
inherits: false;
|
|
8
37
|
}
|
|
@@ -1,31 +1,15 @@
|
|
|
1
1
|
import { preventDefault } from '@a-type/utils';
|
|
2
2
|
import clsx from 'clsx';
|
|
3
|
-
import {
|
|
4
|
-
HTMLMotionProps,
|
|
5
|
-
motion,
|
|
6
|
-
SpringOptions,
|
|
7
|
-
useMotionTemplate,
|
|
8
|
-
useSpring,
|
|
9
|
-
} from 'motion/react';
|
|
10
|
-
import { useEffect, useRef } from 'react';
|
|
3
|
+
import { ComponentProps, useCallback, useEffect, useRef } from 'react';
|
|
11
4
|
import useMergedRef from '../../hooks/useMergedRef.js';
|
|
12
5
|
import cls from './ViewportContent.module.css';
|
|
13
6
|
import { ViewportState } from './ViewportState.js';
|
|
14
7
|
|
|
15
8
|
export interface ViewportContentProps
|
|
16
|
-
extends Omit<
|
|
9
|
+
extends Omit<ComponentProps<'div'>, 'viewport'> {
|
|
17
10
|
viewport: ViewportState;
|
|
18
11
|
}
|
|
19
12
|
|
|
20
|
-
const PAN_SPRING_CONFIG: SpringOptions = {
|
|
21
|
-
mass: 0.2,
|
|
22
|
-
bounce: 0.05,
|
|
23
|
-
};
|
|
24
|
-
const ZOOM_SPRING_CONFIG: SpringOptions = {
|
|
25
|
-
mass: 0.5,
|
|
26
|
-
bounce: 0.1,
|
|
27
|
-
};
|
|
28
|
-
|
|
29
13
|
export function ViewportContent({
|
|
30
14
|
viewport,
|
|
31
15
|
children,
|
|
@@ -34,37 +18,48 @@ export function ViewportContent({
|
|
|
34
18
|
}: ViewportContentProps) {
|
|
35
19
|
const internalRef = useRef<HTMLDivElement>(null);
|
|
36
20
|
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
|
|
21
|
+
const setPosition = useCallback(
|
|
22
|
+
(
|
|
23
|
+
{ x, y, zoom }: { x?: number; y?: number; zoom?: number },
|
|
24
|
+
immediate: boolean,
|
|
25
|
+
) => {
|
|
26
|
+
const current = internalRef.current;
|
|
27
|
+
if (current) {
|
|
28
|
+
if (immediate) {
|
|
29
|
+
current.style.setProperty('transition', 'none');
|
|
30
|
+
requestAnimationFrame(() => {
|
|
31
|
+
current.style.removeProperty('transition');
|
|
32
|
+
});
|
|
33
|
+
} else {
|
|
34
|
+
current.style.removeProperty('transition');
|
|
35
|
+
}
|
|
36
|
+
if (x !== undefined) {
|
|
37
|
+
current.style.setProperty('--center-x', `${-x}px`);
|
|
38
|
+
}
|
|
39
|
+
if (y !== undefined) {
|
|
40
|
+
current.style.setProperty('--center-y', `${-y}px`);
|
|
41
|
+
}
|
|
42
|
+
if (zoom !== undefined) {
|
|
43
|
+
current.style.setProperty('--zoom', `${zoom}`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
[],
|
|
48
|
+
);
|
|
40
49
|
|
|
41
50
|
useEffect(
|
|
42
51
|
() =>
|
|
43
52
|
viewport.subscribe('centerChanged', (center, origin) => {
|
|
44
|
-
|
|
45
|
-
centerX.jump(-center.x);
|
|
46
|
-
centerY.jump(-center.y);
|
|
47
|
-
} else {
|
|
48
|
-
centerX.set(-center.x);
|
|
49
|
-
centerY.set(-center.y);
|
|
50
|
-
}
|
|
53
|
+
setPosition({ x: center.x, y: center.y }, origin === 'direct');
|
|
51
54
|
}),
|
|
52
|
-
[viewport
|
|
55
|
+
[viewport],
|
|
53
56
|
);
|
|
54
57
|
useEffect(
|
|
55
58
|
() =>
|
|
56
59
|
viewport.subscribe('zoomChanged', (zoomValue, origin) => {
|
|
57
|
-
|
|
58
|
-
zoom.jump(zoomValue);
|
|
59
|
-
} else {
|
|
60
|
-
zoom.set(zoomValue);
|
|
61
|
-
}
|
|
62
|
-
if (internalRef.current) {
|
|
63
|
-
// disabled: this is causing recalculate style :(
|
|
64
|
-
//internalRef.current.style.setProperty('--zoom', zoomValue.toString());
|
|
65
|
-
}
|
|
60
|
+
setPosition({ zoom: zoomValue }, origin === 'direct');
|
|
66
61
|
}),
|
|
67
|
-
[viewport,
|
|
62
|
+
[viewport, internalRef],
|
|
68
63
|
);
|
|
69
64
|
|
|
70
65
|
useEffect(
|
|
@@ -85,19 +80,16 @@ export function ViewportContent({
|
|
|
85
80
|
internalRef,
|
|
86
81
|
);
|
|
87
82
|
|
|
88
|
-
const transform = useMotionTemplate`translate3d(calc(var(--root-width,0)/2), calc(var(--root-height,0)/2), 0) translate3d(-50%, -50%, 0) scale(${zoom}) translate3d(${centerX}px, ${centerY}px, 0)`;
|
|
89
|
-
|
|
90
83
|
return (
|
|
91
|
-
<
|
|
84
|
+
<div
|
|
92
85
|
{...rest}
|
|
93
86
|
className={clsx(cls.root, className)}
|
|
94
87
|
ref={finalRef}
|
|
95
|
-
style={{ transform }}
|
|
96
88
|
onDragStartCapture={preventDefault}
|
|
97
89
|
onDrag={preventDefault}
|
|
98
90
|
onDragEnd={preventDefault}
|
|
99
91
|
>
|
|
100
92
|
{children}
|
|
101
|
-
</
|
|
93
|
+
</div>
|
|
102
94
|
);
|
|
103
95
|
}
|
|
@@ -601,7 +601,6 @@ export class ViewportState extends EventSubscriber<ViewportEvents> {
|
|
|
601
601
|
gestureComplete?: boolean;
|
|
602
602
|
},
|
|
603
603
|
) => {
|
|
604
|
-
console.log('Setting pan to:', worldPosition);
|
|
605
604
|
// worldPosition.x += this.contentOffset.x;
|
|
606
605
|
// worldPosition.y += this.contentOffset.y;
|
|
607
606
|
this.rawPan(worldPosition, details);
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { stopPropagation } from '@a-type/utils';
|
|
1
2
|
import clsx from 'clsx';
|
|
2
3
|
import { Box, BoxProps } from '../box/Box.js';
|
|
3
4
|
import { Button } from '../button/Button.js';
|
|
@@ -30,19 +31,42 @@ export function ViewportZoomControls({
|
|
|
30
31
|
viewport.fitEverythingOnScreen({ origin: 'control' });
|
|
31
32
|
};
|
|
32
33
|
return (
|
|
33
|
-
<Box
|
|
34
|
+
<Box
|
|
35
|
+
gap
|
|
36
|
+
col
|
|
37
|
+
className={clsx(className)}
|
|
38
|
+
onPointerDown={stopPropagation}
|
|
39
|
+
onPointerMove={stopPropagation}
|
|
40
|
+
onPointerUp={stopPropagation}
|
|
41
|
+
{...props}
|
|
42
|
+
>
|
|
34
43
|
{fit && (
|
|
35
|
-
<Button
|
|
44
|
+
<Button
|
|
45
|
+
emphasis="ghost"
|
|
46
|
+
size="small"
|
|
47
|
+
onClick={reset}
|
|
48
|
+
aria-label="Fit to screen"
|
|
49
|
+
>
|
|
36
50
|
<Icon name="maximize" />
|
|
37
51
|
</Button>
|
|
38
52
|
)}
|
|
39
53
|
{zoomIn && (
|
|
40
|
-
<Button
|
|
54
|
+
<Button
|
|
55
|
+
emphasis="ghost"
|
|
56
|
+
size="small"
|
|
57
|
+
onClick={doZoomIn}
|
|
58
|
+
aria-label="Zoom in"
|
|
59
|
+
>
|
|
41
60
|
<Icon name="zoomIn" />
|
|
42
61
|
</Button>
|
|
43
62
|
)}
|
|
44
63
|
{zoomOut && (
|
|
45
|
-
<Button
|
|
64
|
+
<Button
|
|
65
|
+
emphasis="ghost"
|
|
66
|
+
size="small"
|
|
67
|
+
onClick={doZoomOut}
|
|
68
|
+
aria-label="Zoom out"
|
|
69
|
+
>
|
|
46
70
|
<Icon name="zoomOut" />
|
|
47
71
|
</Button>
|
|
48
72
|
)}
|