@a-type/ui 1.1.4 → 1.1.6
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/cjs/components/camera/Camera.d.ts +8 -0
- package/dist/cjs/components/camera/Camera.js +30 -8
- package/dist/cjs/components/camera/Camera.js.map +1 -1
- package/dist/cjs/components/camera/Camera.stories.d.ts +9 -1
- package/dist/cjs/components/camera/Camera.stories.js +2 -1
- package/dist/cjs/components/camera/Camera.stories.js.map +1 -1
- package/dist/cjs/components/imageUploader/ImageUploader.js +2 -2
- package/dist/cjs/components/imageUploader/ImageUploader.js.map +1 -1
- package/dist/cjs/components/masonry/masonry.js +13 -11
- package/dist/cjs/components/masonry/masonry.js.map +1 -1
- package/dist/cjs/components/masonry/masonry.stories.js +13 -10
- package/dist/cjs/components/masonry/masonry.stories.js.map +1 -1
- package/dist/cjs/uno.preset.js +5 -5
- package/dist/css/main.css +6 -6
- package/dist/esm/components/camera/Camera.d.ts +8 -0
- package/dist/esm/components/camera/Camera.js +28 -7
- package/dist/esm/components/camera/Camera.js.map +1 -1
- package/dist/esm/components/camera/Camera.stories.d.ts +9 -1
- package/dist/esm/components/camera/Camera.stories.js +3 -2
- package/dist/esm/components/camera/Camera.stories.js.map +1 -1
- package/dist/esm/components/imageUploader/ImageUploader.js +3 -3
- package/dist/esm/components/imageUploader/ImageUploader.js.map +1 -1
- package/dist/esm/components/masonry/masonry.js +13 -11
- package/dist/esm/components/masonry/masonry.js.map +1 -1
- package/dist/esm/components/masonry/masonry.stories.js +13 -10
- package/dist/esm/components/masonry/masonry.stories.js.map +1 -1
- package/dist/esm/uno.preset.js +5 -5
- package/package.json +1 -1
- package/src/components/camera/Camera.stories.tsx +6 -12
- package/src/components/camera/Camera.tsx +49 -5
- package/src/components/imageUploader/ImageUploader.tsx +9 -4
- package/src/components/masonry/masonry.stories.tsx +14 -9
- package/src/components/masonry/masonry.tsx +15 -11
- package/src/uno.preset.ts +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Camera.js","sourceRoot":"","sources":["../../../../src/components/camera/Camera.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,UAAU,MAAM,MAAM,CAAC;AAC9B,OAAO,EAGN,aAAa,EACb,UAAU,EACV,UAAU,EACV,SAAS,EACT,MAAM,EACN,QAAQ,GACR,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"Camera.js","sourceRoot":"","sources":["../../../../src/components/camera/Camera.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,14 @@
|
|
|
1
|
+
/// <reference types="react" resolution-mode="require"/>
|
|
1
2
|
import type { StoryObj } from '@storybook/react';
|
|
3
|
+
import { Camera } from './Camera.js';
|
|
2
4
|
declare const meta: {
|
|
3
5
|
title: string;
|
|
6
|
+
component: ((props: import("./Camera.js").CameraRootProps) => import("react/jsx-runtime").JSX.Element) & {
|
|
7
|
+
Root: import("react").ForwardRefExoticComponent<import("./Camera.js").CameraRootProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
8
|
+
ShutterButton: import("react").ForwardRefExoticComponent<import("./Camera.js").CameraShutterButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
9
|
+
DeviceSelector: (props: import("./Camera.js").CameraDeviceSelectorProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
10
|
+
FullscreenButton: (props: import("../button.js").ButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
};
|
|
4
12
|
argTypes: {};
|
|
5
13
|
parameters: {
|
|
6
14
|
controls: {
|
|
@@ -10,6 +18,6 @@ declare const meta: {
|
|
|
10
18
|
args: {};
|
|
11
19
|
};
|
|
12
20
|
export default meta;
|
|
13
|
-
type Story = StoryObj
|
|
21
|
+
type Story = StoryObj<typeof Camera>;
|
|
14
22
|
export declare const Default: Story;
|
|
15
23
|
export declare const BackCamera: Story;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
// @unocss-include
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import {
|
|
3
|
+
import { Camera } from './Camera.js';
|
|
4
4
|
import { useMemo, useState } from 'react';
|
|
5
5
|
const meta = {
|
|
6
6
|
title: 'Camera',
|
|
7
|
+
component: Camera,
|
|
7
8
|
argTypes: {},
|
|
8
9
|
parameters: {
|
|
9
10
|
controls: { expanded: true },
|
|
@@ -24,6 +25,6 @@ export const BackCamera = {
|
|
|
24
25
|
function CameraDemo({ facingMode }) {
|
|
25
26
|
const [latest, setLatest] = useState();
|
|
26
27
|
const dataUri = useMemo(() => (latest ? URL.createObjectURL(latest) : undefined), [latest]);
|
|
27
|
-
return (_jsxs("div", { children: [
|
|
28
|
+
return (_jsxs("div", { children: [_jsx(Camera, { facingMode: facingMode, onCapture: setLatest, className: "w-64 h-64" }), latest && _jsx("img", { src: dataUri, className: "w-full" })] }));
|
|
28
29
|
}
|
|
29
30
|
//# sourceMappingURL=Camera.stories.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Camera.stories.js","sourceRoot":"","sources":["../../../../src/components/camera/Camera.stories.tsx"],"names":[],"mappings":";AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"Camera.stories.js","sourceRoot":"","sources":["../../../../src/components/camera/Camera.stories.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE1C,MAAM,IAAI,GAAG;IACZ,KAAK,EAAE,QAAQ;IACf,SAAS,EAAE,MAAM;IACjB,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE;QACX,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC5B;IACD,IAAI,EAAE,EAAE;CACsB,CAAC;AAEhC,eAAe,IAAI,CAAC;AAIpB,MAAM,CAAC,MAAM,OAAO,GAAU;IAC7B,MAAM;QACL,OAAO,KAAC,UAAU,KAAG,CAAC;IACvB,CAAC;CACD,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAU;IAChC,MAAM;QACL,OAAO,KAAC,UAAU,IAAC,UAAU,EAAC,aAAa,GAAG,CAAC;IAChD,CAAC;CACD,CAAC;AAEF,SAAS,UAAU,CAAC,EAAE,UAAU,EAA2C;IAC1E,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,EAAoB,CAAC;IACzD,MAAM,OAAO,GAAG,OAAO,CACtB,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EACxD,CAAC,MAAM,CAAC,CACR,CAAC;IAEF,OAAO,CACN,0BACC,KAAC,MAAM,IACN,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAC,WAAW,GACpB,EACD,MAAM,IAAI,cAAK,GAAG,EAAE,OAAO,EAAE,SAAS,EAAC,QAAQ,GAAG,IAC9C,CACN,CAAC;AACH,CAAC"}
|
|
@@ -16,7 +16,7 @@ import classNames from 'clsx';
|
|
|
16
16
|
import { useCallback, useId, useState } from 'react';
|
|
17
17
|
import { Icon } from '../icon.js';
|
|
18
18
|
import { Button } from '../button.js';
|
|
19
|
-
import { CameraDeviceSelector, CameraRoot, CameraShutterButton, } from '../camera.js';
|
|
19
|
+
import { CameraDeviceSelector, CameraFullscreenButton, CameraRoot, CameraShutterButton, } from '../camera.js';
|
|
20
20
|
import { default as resizer } from 'browser-image-resizer';
|
|
21
21
|
/**
|
|
22
22
|
* Renders an image if one is already set, and allows either clicking
|
|
@@ -87,11 +87,11 @@ export function ImageUploader(_a) {
|
|
|
87
87
|
}, []);
|
|
88
88
|
const [cameraOpen, setCameraOpen] = useState(false);
|
|
89
89
|
const openCamera = () => setCameraOpen(true);
|
|
90
|
-
return (_jsxs("div", Object.assign({ className: classNames('relative overflow-hidden', rest.className), onDragEnter: onDragEnter, onDragLeave: onDragLeave, onDragOver: onDragOver, onDrop: onDrop, onDragStart: onDragStart, onDragEnd: onDragEnd }, { children: [value ? (_jsx("img", { src: value, className: "w-full h-full object-cover object-center" })) : null, !value && (_jsxs("div", Object.assign({ className: classNames('absolute inset-0 flex flex-col items-center justify-center gap-3 bg-[rgba(0,0,0,0.05)]', {
|
|
90
|
+
return (_jsxs("div", Object.assign({ className: classNames('relative overflow-hidden rounded-lg', rest.className), onDragEnter: onDragEnter, onDragLeave: onDragLeave, onDragOver: onDragOver, onDrop: onDrop, onDragStart: onDragStart, onDragEnd: onDragEnd }, { children: [value ? (_jsx("img", { src: value, className: "w-full h-full object-cover object-center" })) : null, !value && (_jsxs("div", Object.assign({ className: classNames('absolute inset-0 flex flex-col items-center justify-center gap-3 bg-[rgba(0,0,0,0.05)]', {
|
|
91
91
|
'!bg-[rgba(0,0,0,0.1)]': draggingOver,
|
|
92
92
|
}) }, { children: [_jsx("input", { type: "file", accept: "image/*", onChange: onFileChange, onClick: onFileClick, className: "absolute inset--99999 op-0", id: inputId }), _jsx(Button, Object.assign({ color: "ghost", asChild: true }, { children: _jsxs("label", Object.assign({ htmlFor: inputId }, { children: [_jsx(Icon, { name: "upload" }), _jsx("span", { children: dragging ? 'Drop' : 'Upload' })] })) })), _jsxs(Button, Object.assign({ color: "ghost", onClick: openCamera }, { children: [_jsx(Icon, { name: "camera" }), _jsx("span", { children: "Camera" })] }))] }))), !value && cameraOpen && (_jsxs(CameraRoot, Object.assign({ className: "absolute w-full h-full z-1", format: "image/png", onCapture: (file) => {
|
|
93
93
|
onChange(file);
|
|
94
94
|
setCameraOpen(false);
|
|
95
|
-
}, facingMode: facingMode }, { children: [_jsx(CameraShutterButton, {}), _jsx(CameraDeviceSelector, {}), _jsx(Button, Object.assign({ onClick: () => setCameraOpen(false), color: "ghost", size: "
|
|
95
|
+
}, facingMode: facingMode }, { children: [_jsx(CameraShutterButton, {}), _jsx(CameraDeviceSelector, {}), _jsx(CameraFullscreenButton, {}), _jsx(Button, Object.assign({ onClick: () => setCameraOpen(false), color: "ghost", size: "small", className: "text-white absolute top-2 left-2" }, { children: "Cancel" }))] }))), value && (_jsx(Button, Object.assign({ color: "ghost", size: "icon", className: "absolute top-2 right-2 w-32px h-32px border-none p-2 cursor-pointer bg-white color-black rounded-full transition-colors shadow-sm", onClick: () => onChange(null) }, { children: _jsx(Icon, { name: "x" }) })))] })));
|
|
96
96
|
}
|
|
97
97
|
//# sourceMappingURL=ImageUploader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImageUploader.js","sourceRoot":"","sources":["../../../../src/components/imageUploader/ImageUploader.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ImageUploader.js","sourceRoot":"","sources":["../../../../src/components/imageUploader/ImageUploader.tsx"],"names":[],"mappings":"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"}
|
|
@@ -23,10 +23,7 @@ class MasonryLayout {
|
|
|
23
23
|
container.style.setProperty('visibility', 'visible');
|
|
24
24
|
container.childNodes.forEach((node) => {
|
|
25
25
|
if (node instanceof HTMLElement) {
|
|
26
|
-
|
|
27
|
-
// hide until laid out
|
|
28
|
-
node.style.setProperty('visibility', 'hidden');
|
|
29
|
-
this.childSizeObserver.observe(node);
|
|
26
|
+
this.setupChild(node);
|
|
30
27
|
}
|
|
31
28
|
});
|
|
32
29
|
this.updateFromContainerSize(container.offsetWidth);
|
|
@@ -40,6 +37,15 @@ class MasonryLayout {
|
|
|
40
37
|
this.container = null;
|
|
41
38
|
};
|
|
42
39
|
};
|
|
40
|
+
this.setupChild = (child) => {
|
|
41
|
+
child.style.setProperty('position', 'absolute');
|
|
42
|
+
// hide until laid out
|
|
43
|
+
child.style.setProperty('visibility', 'hidden');
|
|
44
|
+
this.childSizeObserver.observe(child);
|
|
45
|
+
this.childMutationObserver.observe(child, {
|
|
46
|
+
attributeFilter: ['data-span'],
|
|
47
|
+
});
|
|
48
|
+
};
|
|
43
49
|
this.updateConfig = (config) => {
|
|
44
50
|
var _a, _b;
|
|
45
51
|
const gapChanged = config.gap !== this.config.gap;
|
|
@@ -68,12 +74,8 @@ class MasonryLayout {
|
|
|
68
74
|
this.handleContainerMutation = (entries) => {
|
|
69
75
|
for (const entry of entries) {
|
|
70
76
|
entry.addedNodes.forEach((node) => {
|
|
71
|
-
var _a;
|
|
72
77
|
if (node instanceof HTMLElement) {
|
|
73
|
-
|
|
74
|
-
// hide until laid out
|
|
75
|
-
node.style.setProperty('visibility', 'hidden');
|
|
76
|
-
(_a = this.childSizeObserver) === null || _a === void 0 ? void 0 : _a.observe(node);
|
|
78
|
+
this.setupChild(node);
|
|
77
79
|
}
|
|
78
80
|
});
|
|
79
81
|
entry.removedNodes.forEach((node) => {
|
|
@@ -83,8 +85,7 @@ class MasonryLayout {
|
|
|
83
85
|
}
|
|
84
86
|
});
|
|
85
87
|
}
|
|
86
|
-
|
|
87
|
-
setTimeout(this.relayout, 100);
|
|
88
|
+
this.relayout();
|
|
88
89
|
};
|
|
89
90
|
this.handleChildResize = (entries) => {
|
|
90
91
|
// only worry about height changes
|
|
@@ -142,6 +143,7 @@ class MasonryLayout {
|
|
|
142
143
|
this.columns =
|
|
143
144
|
typeof config.columns === 'function' ? config.columns(0) : config.columns;
|
|
144
145
|
this.childSizeObserver = new ResizeObserver(this.handleChildResize);
|
|
146
|
+
this.childMutationObserver = new MutationObserver(this.relayout);
|
|
145
147
|
}
|
|
146
148
|
}
|
|
147
149
|
function pickTrack(tracks, trackSpan) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"masonry.js","sourceRoot":"","sources":["../../../../src/components/masonry/masonry.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAA4B,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAO9E,MAAM,aAAa;
|
|
1
|
+
{"version":3,"file":"masonry.js","sourceRoot":"","sources":["../../../../src/components/masonry/masonry.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAA4B,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAO9E,MAAM,aAAa;IAUlB,YAAoB,MAA2B;QAA3B,WAAM,GAAN,MAAM,CAAqB;QATvC,4BAAuB,GAA0B,IAAI,CAAC;QACtD,8BAAyB,GAA4B,IAAI,CAAC;QAI1D,cAAS,GAAuB,IAAI,CAAC;QAErC,YAAO,GAAW,CAAC,CAAC;QAS5B,WAAM,GAAG,CAAC,SAAsB,EAAE,EAAE;;YACnC,MAAA,IAAI,CAAC,uBAAuB,0CAAE,UAAU,EAAE,CAAC;YAC3C,MAAA,IAAI,CAAC,yBAAyB,0CAAE,UAAU,EAAE,CAAC;YAE7C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAE3B,IAAI,CAAC,uBAAuB,GAAG,IAAI,cAAc,CAChD,IAAI,CAAC,qBAAqB,CAC1B,CAAC;YACF,IAAI,CAAC,yBAAyB,GAAG,IAAI,gBAAgB,CACpD,IAAI,CAAC,uBAAuB,CAC5B,CAAC;YACF,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAChD,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAEvE,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YACpD,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAClD,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;YACrD,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACrC,IAAI,IAAI,YAAY,WAAW,EAAE;oBAChC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;iBACtB;YACF,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAEpD,IAAI,CAAC,QAAQ,EAAE,CAAC;YAEhB,OAAO,GAAG,EAAE;;gBACX,MAAA,IAAI,CAAC,uBAAuB,0CAAE,UAAU,EAAE,CAAC;gBAC3C,MAAA,IAAI,CAAC,yBAAyB,0CAAE,UAAU,EAAE,CAAC;gBAC7C,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;gBAC3C,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;gBAC3C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACvB,CAAC,CAAC;QACH,CAAC,CAAC;QAEM,eAAU,GAAG,CAAC,KAAkB,EAAE,EAAE;YAC3C,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YAChD,sBAAsB;YACtB,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;YAChD,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,KAAK,EAAE;gBACzC,eAAe,EAAE,CAAC,WAAW,CAAC;aAC9B,CAAC,CAAC;QACJ,CAAC,CAAC;QAEF,iBAAY,GAAG,CAAC,MAA2B,EAAE,EAAE;;YAC9C,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;YAClD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,uCAAuC;YACvC,IACC,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,WAAW,mCAAI,CAAC,CAAC;gBAC/D,UAAU,EACT;gBACD,IAAI,CAAC,QAAQ,EAAE,CAAC;aAChB;QACF,CAAC,CAAC;QAEM,0BAAqB,GAAG,CAAC,OAA8B,EAAE,EAAE;YAClE,MAAM,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC;YACpD,IAAI,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC;QAC9C,CAAC,CAAC;QAEM,4BAAuB,GAAG,CAAC,cAAsB,EAAE,EAAE;YAC5D,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,UAAU,EAAE;gBAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;gBACrD,IAAI,QAAQ,KAAK,IAAI,CAAC,OAAO,EAAE;oBAC9B,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;oBACxB,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAChB,OAAO,IAAI,CAAC;iBACZ;aACD;YACD,OAAO,KAAK,CAAC;QACd,CAAC,CAAC;QAEM,4BAAuB,GAAG,CAAC,OAAyB,EAAE,EAAE;YAC/D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;gBAC5B,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBACjC,IAAI,IAAI,YAAY,WAAW,EAAE;wBAChC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;qBACtB;gBACF,CAAC,CAAC,CAAC;gBACH,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;;oBACnC,IAAI,IAAI,YAAY,WAAW,EAAE;wBAChC,MAAA,IAAI,CAAC,iBAAiB,0CAAE,SAAS,CAAC,IAAI,CAAC,CAAC;qBACxC;gBACF,CAAC,CAAC,CAAC;aACH;YACD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACjB,CAAC,CAAC;QAEM,sBAAiB,GAAG,CAAC,OAA8B,EAAE,EAAE;YAC9D,kCAAkC;YAClC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;gBAC5B,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;gBACrE,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC;gBAC/C,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,kBAAkB,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACxE,IAAI,cAAc,IAAI,cAAc,KAAK,aAAa,CAAC,QAAQ,EAAE,EAAE;oBAClE,IAAI,CAAC,QAAQ,EAAE,CAAC;iBAChB;aACD;QACF,CAAC,CAAC;QAEM,aAAQ,GAAG,QAAQ,CAAC,GAAG,EAAE;YAChC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBACpB,OAAO;aACP;YAED,MAAM,MAAM,GAAa,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACzD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;YAC5B,oEAAoE;YACpE,qEAAqE;YACrE,gBAAgB;YAChB,MAAM,wBAAwB,GAC7B,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;YACxE,MAAM,qBAAqB,GAC1B,CAAC,wBAAwB,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC;YAC/D,MAAM,kBAAkB,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC;YAEpE,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAkB,CAAC;YACtE,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBACjC,IAAI,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC;gBACrE,IAAI,KAAK,CAAC,aAAa,CAAC,IAAI,aAAa,GAAG,CAAC,EAAE;oBAC9C,aAAa,GAAG,CAAC,CAAC;iBAClB;gBACD,IAAI,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE;oBACjC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC;iBAC7B;gBAED,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;gBACpD,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAClC,UAAU,EACV,UAAU,GAAG,aAAa,CAC1B,CAAC;gBACF,MAAM,CAAC,GAAG,CAAC,qBAAqB,GAAG,kBAAkB,CAAC,GAAG,UAAU,CAAC;gBACpE,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC;gBACtC,MAAM,KAAK,GACV,qBAAqB,GAAG,aAAa;oBACrC,kBAAkB,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;gBAC1C,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;gBAChD,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;gBACjD,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC;gBAC9C,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;gBACzC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;gBACzC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACrD,qBAAqB,CAAC,GAAG,EAAE;oBAC1B,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;gBACvC,CAAC,CAAC,CAAC;gBACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE;oBACvC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC;iBACtD;YACF,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QACxE,CAAC,EAAE,GAAG,CAAC,CAAC;QAhKP,IAAI,CAAC,OAAO;YACX,OAAO,MAAM,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QAC3E,IAAI,CAAC,iBAAiB,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACpE,IAAI,CAAC,qBAAqB,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClE,CAAC;CA6JD;AAED,SAAS,SAAS,CAAC,MAAgB,EAAE,SAAiB;IACrD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC;IACjE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;QACjB,OAAO,CAAC,CAAC;KACT;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AASD,MAAM,YAAY,GAAkB;IACnC,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,QAAQ;IAClB,UAAU,EAAE,QAAQ;CACpB,CAAC;AAEF,MAAM,UAAU,OAAO,CAAC,EACvB,SAAS,EACT,QAAQ,EACR,OAAO,GAAG,CAAC,EACX,GAAG,GAAG,EAAE,GACM;IACd,MAAM,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IACrE,SAAS,CAAC,GAAG,EAAE;QACd,MAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;IACvC,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IAC3B,MAAM,GAAG,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IACzC,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,GAAG,CAAC,OAAO,EAAE;YAChB,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SAClC;IACF,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IAElB,OAAO,CACN,4BAAK,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,gBACtD,QAAQ,IACJ,CACN,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY;IACvC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AAC9B,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// @unocss-include
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
3
|
import { Masonry } from './masonry.js';
|
|
4
|
+
import { useState } from 'react';
|
|
4
5
|
const meta = {
|
|
5
6
|
title: 'Masonry',
|
|
6
7
|
component: Masonry,
|
|
@@ -10,18 +11,20 @@ const meta = {
|
|
|
10
11
|
},
|
|
11
12
|
};
|
|
12
13
|
export default meta;
|
|
14
|
+
const randomSpan = () => {
|
|
15
|
+
let span = 1;
|
|
16
|
+
if (Math.random() < 0.1) {
|
|
17
|
+
span = 2;
|
|
18
|
+
}
|
|
19
|
+
else if (Math.random() < 0.03) {
|
|
20
|
+
span = 3;
|
|
21
|
+
}
|
|
22
|
+
return span;
|
|
23
|
+
};
|
|
13
24
|
const content = (spans) => Array.from({ length: 100 }, (_, i) => {
|
|
14
25
|
const size = 100 + Math.floor(Math.random() * 100);
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
if (Math.random() < 0.1) {
|
|
18
|
-
span = 2;
|
|
19
|
-
}
|
|
20
|
-
else if (Math.random() < 0.03) {
|
|
21
|
-
span = 3;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
return (_jsx("div", Object.assign({ className: "bg-gray-5 rounded-lg", style: { height: size }, "data-span": span }, { children: size }), i));
|
|
26
|
+
const [span, setSpan] = useState(randomSpan);
|
|
27
|
+
return (_jsx("div", Object.assign({ className: "bg-gray-5 rounded-lg", style: { height: size }, "data-span": spans ? span : undefined, onClick: () => setSpan((v) => (v === 1 ? 2 : 1)) }, { children: size }), i));
|
|
25
28
|
});
|
|
26
29
|
export const Default = {
|
|
27
30
|
render(props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"masonry.stories.js","sourceRoot":"","sources":["../../../../src/components/masonry/masonry.stories.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"masonry.stories.js","sourceRoot":"","sources":["../../../../src/components/masonry/masonry.stories.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,MAAM,IAAI,GAAG;IACZ,KAAK,EAAE,SAAS;IAChB,SAAS,EAAE,OAAO;IAClB,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE;QACX,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC5B;CAC8B,CAAC;AAEjC,eAAe,IAAI,CAAC;AAIpB,MAAM,UAAU,GAAG,GAAG,EAAE;IACvB,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,EAAE;QACxB,IAAI,GAAG,CAAC,CAAC;KACT;SAAM,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,EAAE;QAChC,IAAI,GAAG,CAAC,CAAC;KACT;IACD,OAAO,IAAI,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,CAAC,KAAe,EAAE,EAAE,CACnC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;IACpC,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;IACnD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IAE7C,OAAO,CACN,4BAEC,SAAS,EAAC,sBAAsB,EAChC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,eACZ,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EACnC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAE/C,IAAI,KANA,CAAC,CAOD,CACN,CAAC;AACH,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,OAAO,GAAU;IAC7B,MAAM,CAAC,KAAK;QACX,OAAO,KAAC,OAAO,oBAAK,KAAK,cAAG,OAAO,EAAE,IAAW,CAAC;IAClD,CAAC;CACD,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAU;IAC9B,MAAM,CAAC,KAAK;QACX,OAAO,KAAC,OAAO,oBAAK,KAAK,cAAG,OAAO,CAAC,IAAI,CAAC,IAAW,CAAC;IACtD,CAAC;CACD,CAAC"}
|
package/dist/esm/uno.preset.js
CHANGED
|
@@ -421,17 +421,17 @@ export default function presetAglio({ spacingIncrement = 0.25, interFontLocation
|
|
|
421
421
|
--palette-blue-90: #e3f3ff;
|
|
422
422
|
--palette-blue-80: #c4e7ff;
|
|
423
423
|
--palette-blue-70: #7bd0ff;
|
|
424
|
-
--palette-blue-60: #
|
|
425
|
-
--palette-blue-50: #
|
|
426
|
-
--palette-blue-40: #
|
|
427
|
-
--palette-blue-30: #
|
|
424
|
+
--palette-blue-60: #4cc5f9;
|
|
425
|
+
--palette-blue-50: #18b5ed;
|
|
426
|
+
--palette-blue-40: #0a9acf;
|
|
427
|
+
--palette-blue-30: #077da7;
|
|
428
428
|
--palette-blue-20: #005979;
|
|
429
429
|
--palette-blue-10: #004c69;
|
|
430
430
|
--palette-blue-00: #00354a;
|
|
431
431
|
--palette-purple-90: #f1efff;
|
|
432
432
|
--palette-purple-80: #e0e0ff;
|
|
433
433
|
--palette-purple-70: #bdc2ff;
|
|
434
|
-
--palette-purple-60: #
|
|
434
|
+
--palette-purple-60: #a0a8ff;
|
|
435
435
|
--palette-purple-50: #7c87f3;
|
|
436
436
|
--palette-purple-40: #6d78d7;
|
|
437
437
|
--palette-purple-30: #6068c0;
|
package/package.json
CHANGED
|
@@ -1,23 +1,20 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
-
import {
|
|
3
|
-
CameraDeviceSelector,
|
|
4
|
-
CameraRoot,
|
|
5
|
-
CameraShutterButton,
|
|
6
|
-
} from './Camera.js';
|
|
2
|
+
import { Camera } from './Camera.js';
|
|
7
3
|
import { useMemo, useState } from 'react';
|
|
8
4
|
|
|
9
5
|
const meta = {
|
|
10
6
|
title: 'Camera',
|
|
7
|
+
component: Camera,
|
|
11
8
|
argTypes: {},
|
|
12
9
|
parameters: {
|
|
13
10
|
controls: { expanded: true },
|
|
14
11
|
},
|
|
15
12
|
args: {},
|
|
16
|
-
} satisfies Meta
|
|
13
|
+
} satisfies Meta<typeof Camera>;
|
|
17
14
|
|
|
18
15
|
export default meta;
|
|
19
16
|
|
|
20
|
-
type Story = StoryObj
|
|
17
|
+
type Story = StoryObj<typeof Camera>;
|
|
21
18
|
|
|
22
19
|
export const Default: Story = {
|
|
23
20
|
render() {
|
|
@@ -40,14 +37,11 @@ function CameraDemo({ facingMode }: { facingMode?: 'user' | 'environment' }) {
|
|
|
40
37
|
|
|
41
38
|
return (
|
|
42
39
|
<div>
|
|
43
|
-
<
|
|
40
|
+
<Camera
|
|
44
41
|
facingMode={facingMode}
|
|
45
42
|
onCapture={setLatest}
|
|
46
43
|
className="w-64 h-64"
|
|
47
|
-
|
|
48
|
-
<CameraShutterButton />
|
|
49
|
-
<CameraDeviceSelector />
|
|
50
|
-
</CameraRoot>
|
|
44
|
+
/>
|
|
51
45
|
{latest && <img src={dataUri} className="w-full" />}
|
|
52
46
|
</div>
|
|
53
47
|
);
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
useRef,
|
|
10
10
|
useState,
|
|
11
11
|
} from 'react';
|
|
12
|
-
import { Button } from '../button.js';
|
|
12
|
+
import { Button, ButtonProps } from '../button.js';
|
|
13
13
|
import { Icon } from '../icon.js';
|
|
14
14
|
import { Select, SelectContent, SelectItem, SelectTrigger } from '../select.js';
|
|
15
15
|
import { Slot } from '@radix-ui/react-slot';
|
|
@@ -20,11 +20,15 @@ const CameraContext = createContext<{
|
|
|
20
20
|
selectedDeviceId: string | undefined;
|
|
21
21
|
selectDeviceId: (id: string) => void;
|
|
22
22
|
devices: MediaDeviceInfo[];
|
|
23
|
+
fullscreen: boolean;
|
|
24
|
+
setFullscreen: (fullscreen: boolean) => void;
|
|
23
25
|
}>({
|
|
24
26
|
triggerCapture: () => {},
|
|
25
27
|
selectedDeviceId: 'default',
|
|
26
28
|
selectDeviceId: () => {},
|
|
27
29
|
devices: [],
|
|
30
|
+
fullscreen: false,
|
|
31
|
+
setFullscreen: () => {},
|
|
28
32
|
});
|
|
29
33
|
|
|
30
34
|
export interface CameraRootProps {
|
|
@@ -62,8 +66,10 @@ export const CameraRoot = forwardRef<HTMLDivElement, CameraRootProps>(
|
|
|
62
66
|
string | undefined
|
|
63
67
|
>();
|
|
64
68
|
|
|
69
|
+
const cleanupRef = useRef<() => void>();
|
|
65
70
|
useEffect(() => {
|
|
66
71
|
const init = () => {
|
|
72
|
+
cleanupRef.current?.();
|
|
67
73
|
navigator.mediaDevices
|
|
68
74
|
?.getUserMedia({
|
|
69
75
|
video: {
|
|
@@ -73,6 +79,8 @@ export const CameraRoot = forwardRef<HTMLDivElement, CameraRootProps>(
|
|
|
73
79
|
})
|
|
74
80
|
.then((s) => {
|
|
75
81
|
setStream(s);
|
|
82
|
+
cleanupRef.current = () =>
|
|
83
|
+
s.getTracks().forEach((track) => track.stop());
|
|
76
84
|
});
|
|
77
85
|
};
|
|
78
86
|
init();
|
|
@@ -85,13 +93,12 @@ export const CameraRoot = forwardRef<HTMLDivElement, CameraRootProps>(
|
|
|
85
93
|
init();
|
|
86
94
|
};
|
|
87
95
|
document.addEventListener('visibilitychange', reconnect);
|
|
88
|
-
}, [selectedDeviceId, facingMode]);
|
|
89
96
|
|
|
90
|
-
useEffect(() => {
|
|
91
97
|
return () => {
|
|
92
|
-
|
|
98
|
+
document.removeEventListener('visibilitychange', reconnect);
|
|
99
|
+
cleanupRef.current?.();
|
|
93
100
|
};
|
|
94
|
-
}, [
|
|
101
|
+
}, [selectedDeviceId, facingMode]);
|
|
95
102
|
|
|
96
103
|
useEffect(() => {
|
|
97
104
|
const video = videoRef.current;
|
|
@@ -142,6 +149,8 @@ export const CameraRoot = forwardRef<HTMLDivElement, CameraRootProps>(
|
|
|
142
149
|
}
|
|
143
150
|
};
|
|
144
151
|
|
|
152
|
+
const [fullscreen, setFullscreen] = useState(false);
|
|
153
|
+
|
|
145
154
|
return (
|
|
146
155
|
<CameraContext.Provider
|
|
147
156
|
value={{
|
|
@@ -149,12 +158,15 @@ export const CameraRoot = forwardRef<HTMLDivElement, CameraRootProps>(
|
|
|
149
158
|
triggerCapture,
|
|
150
159
|
selectedDeviceId,
|
|
151
160
|
selectDeviceId: setSelectedDeviceId,
|
|
161
|
+
setFullscreen,
|
|
162
|
+
fullscreen,
|
|
152
163
|
}}
|
|
153
164
|
>
|
|
154
165
|
<div
|
|
155
166
|
ref={ref}
|
|
156
167
|
className={classNames(
|
|
157
168
|
'layer-components:([font-family:inherit] text-white bg-black rounded-lg overflow-hidden min-w-4 min-h-4 relative)',
|
|
169
|
+
fullscreen && 'fixed inset-0 w-full h-full z-1000 rounded-none',
|
|
158
170
|
className,
|
|
159
171
|
)}
|
|
160
172
|
{...rest}
|
|
@@ -266,6 +278,38 @@ export const CameraDeviceSelector = (props: CameraDeviceSelectorProps) => {
|
|
|
266
278
|
);
|
|
267
279
|
};
|
|
268
280
|
|
|
281
|
+
export const CameraFullscreenButton = (props: ButtonProps) => {
|
|
282
|
+
const { setFullscreen, fullscreen } = useContext(CameraContext);
|
|
283
|
+
return (
|
|
284
|
+
<Button
|
|
285
|
+
{...props}
|
|
286
|
+
size="icon"
|
|
287
|
+
color="ghost"
|
|
288
|
+
className="absolute top-2 right-2 text-white"
|
|
289
|
+
onClick={() => setFullscreen(!fullscreen)}
|
|
290
|
+
>
|
|
291
|
+
<Icon name={fullscreen ? 'x' : 'maximize'} />
|
|
292
|
+
</Button>
|
|
293
|
+
);
|
|
294
|
+
};
|
|
295
|
+
|
|
296
|
+
const CameraBase = (props: CameraRootProps) => {
|
|
297
|
+
return (
|
|
298
|
+
<CameraRoot {...props}>
|
|
299
|
+
<CameraShutterButton />
|
|
300
|
+
<CameraDeviceSelector />
|
|
301
|
+
<CameraFullscreenButton />
|
|
302
|
+
</CameraRoot>
|
|
303
|
+
);
|
|
304
|
+
};
|
|
305
|
+
|
|
306
|
+
export const Camera = Object.assign(CameraBase, {
|
|
307
|
+
Root: CameraRoot,
|
|
308
|
+
ShutterButton: CameraShutterButton,
|
|
309
|
+
DeviceSelector: CameraDeviceSelector,
|
|
310
|
+
FullscreenButton: CameraFullscreenButton,
|
|
311
|
+
});
|
|
312
|
+
|
|
269
313
|
function dataURItoFile(dataURI: string) {
|
|
270
314
|
// convert base64/URLEncoded data component to raw binary data held in a string
|
|
271
315
|
var byteString;
|
|
@@ -6,6 +6,7 @@ import { Icon } from '../icon.js';
|
|
|
6
6
|
import { Button } from '../button.js';
|
|
7
7
|
import {
|
|
8
8
|
CameraDeviceSelector,
|
|
9
|
+
CameraFullscreenButton,
|
|
9
10
|
CameraRoot,
|
|
10
11
|
CameraShutterButton,
|
|
11
12
|
} from '../camera.js';
|
|
@@ -113,7 +114,10 @@ export function ImageUploader({
|
|
|
113
114
|
|
|
114
115
|
return (
|
|
115
116
|
<div
|
|
116
|
-
className={classNames(
|
|
117
|
+
className={classNames(
|
|
118
|
+
'relative overflow-hidden rounded-lg',
|
|
119
|
+
rest.className,
|
|
120
|
+
)}
|
|
117
121
|
onDragEnter={onDragEnter}
|
|
118
122
|
onDragLeave={onDragLeave}
|
|
119
123
|
onDragOver={onDragOver}
|
|
@@ -165,13 +169,14 @@ export function ImageUploader({
|
|
|
165
169
|
>
|
|
166
170
|
<CameraShutterButton />
|
|
167
171
|
<CameraDeviceSelector />
|
|
172
|
+
<CameraFullscreenButton />
|
|
168
173
|
<Button
|
|
169
174
|
onClick={() => setCameraOpen(false)}
|
|
170
175
|
color="ghost"
|
|
171
|
-
size="
|
|
172
|
-
className="text-white absolute top-2
|
|
176
|
+
size="small"
|
|
177
|
+
className="text-white absolute top-2 left-2"
|
|
173
178
|
>
|
|
174
|
-
|
|
179
|
+
Cancel
|
|
175
180
|
</Button>
|
|
176
181
|
</CameraRoot>
|
|
177
182
|
)}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
2
|
import { Masonry } from './masonry.js';
|
|
3
|
+
import { useState } from 'react';
|
|
3
4
|
|
|
4
5
|
const meta = {
|
|
5
6
|
title: 'Masonry',
|
|
@@ -14,24 +15,28 @@ export default meta;
|
|
|
14
15
|
|
|
15
16
|
type Story = StoryObj<typeof Masonry>;
|
|
16
17
|
|
|
18
|
+
const randomSpan = () => {
|
|
19
|
+
let span = 1;
|
|
20
|
+
if (Math.random() < 0.1) {
|
|
21
|
+
span = 2;
|
|
22
|
+
} else if (Math.random() < 0.03) {
|
|
23
|
+
span = 3;
|
|
24
|
+
}
|
|
25
|
+
return span;
|
|
26
|
+
};
|
|
27
|
+
|
|
17
28
|
const content = (spans?: boolean) =>
|
|
18
29
|
Array.from({ length: 100 }, (_, i) => {
|
|
19
30
|
const size = 100 + Math.floor(Math.random() * 100);
|
|
20
|
-
|
|
21
|
-
if (spans) {
|
|
22
|
-
if (Math.random() < 0.1) {
|
|
23
|
-
span = 2;
|
|
24
|
-
} else if (Math.random() < 0.03) {
|
|
25
|
-
span = 3;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
31
|
+
const [span, setSpan] = useState(randomSpan);
|
|
28
32
|
|
|
29
33
|
return (
|
|
30
34
|
<div
|
|
31
35
|
key={i}
|
|
32
36
|
className="bg-gray-5 rounded-lg"
|
|
33
37
|
style={{ height: size }}
|
|
34
|
-
data-span={span}
|
|
38
|
+
data-span={spans ? span : undefined}
|
|
39
|
+
onClick={() => setSpan((v) => (v === 1 ? 2 : 1))}
|
|
35
40
|
>
|
|
36
41
|
{size}
|
|
37
42
|
</div>
|
|
@@ -10,6 +10,7 @@ class MasonryLayout {
|
|
|
10
10
|
private containerResizeObserver: ResizeObserver | null = null;
|
|
11
11
|
private containerMutationObserver: MutationObserver | null = null;
|
|
12
12
|
private childSizeObserver: ResizeObserver;
|
|
13
|
+
private childMutationObserver: MutationObserver;
|
|
13
14
|
|
|
14
15
|
private container: HTMLElement | null = null;
|
|
15
16
|
|
|
@@ -19,6 +20,7 @@ class MasonryLayout {
|
|
|
19
20
|
this.columns =
|
|
20
21
|
typeof config.columns === 'function' ? config.columns(0) : config.columns;
|
|
21
22
|
this.childSizeObserver = new ResizeObserver(this.handleChildResize);
|
|
23
|
+
this.childMutationObserver = new MutationObserver(this.relayout);
|
|
22
24
|
}
|
|
23
25
|
|
|
24
26
|
attach = (container: HTMLElement) => {
|
|
@@ -41,10 +43,7 @@ class MasonryLayout {
|
|
|
41
43
|
container.style.setProperty('visibility', 'visible');
|
|
42
44
|
container.childNodes.forEach((node) => {
|
|
43
45
|
if (node instanceof HTMLElement) {
|
|
44
|
-
|
|
45
|
-
// hide until laid out
|
|
46
|
-
node.style.setProperty('visibility', 'hidden');
|
|
47
|
-
this.childSizeObserver.observe(node);
|
|
46
|
+
this.setupChild(node);
|
|
48
47
|
}
|
|
49
48
|
});
|
|
50
49
|
|
|
@@ -61,6 +60,16 @@ class MasonryLayout {
|
|
|
61
60
|
};
|
|
62
61
|
};
|
|
63
62
|
|
|
63
|
+
private setupChild = (child: HTMLElement) => {
|
|
64
|
+
child.style.setProperty('position', 'absolute');
|
|
65
|
+
// hide until laid out
|
|
66
|
+
child.style.setProperty('visibility', 'hidden');
|
|
67
|
+
this.childSizeObserver.observe(child);
|
|
68
|
+
this.childMutationObserver.observe(child, {
|
|
69
|
+
attributeFilter: ['data-span'],
|
|
70
|
+
});
|
|
71
|
+
};
|
|
72
|
+
|
|
64
73
|
updateConfig = (config: MasonryLayoutConfig) => {
|
|
65
74
|
const gapChanged = config.gap !== this.config.gap;
|
|
66
75
|
this.config = config;
|
|
@@ -94,11 +103,7 @@ class MasonryLayout {
|
|
|
94
103
|
for (const entry of entries) {
|
|
95
104
|
entry.addedNodes.forEach((node) => {
|
|
96
105
|
if (node instanceof HTMLElement) {
|
|
97
|
-
|
|
98
|
-
// hide until laid out
|
|
99
|
-
node.style.setProperty('visibility', 'hidden');
|
|
100
|
-
|
|
101
|
-
this.childSizeObserver?.observe(node);
|
|
106
|
+
this.setupChild(node);
|
|
102
107
|
}
|
|
103
108
|
});
|
|
104
109
|
entry.removedNodes.forEach((node) => {
|
|
@@ -107,8 +112,7 @@ class MasonryLayout {
|
|
|
107
112
|
}
|
|
108
113
|
});
|
|
109
114
|
}
|
|
110
|
-
|
|
111
|
-
setTimeout(this.relayout, 100);
|
|
115
|
+
this.relayout();
|
|
112
116
|
};
|
|
113
117
|
|
|
114
118
|
private handleChildResize = (entries: ResizeObserverEntry[]) => {
|