@a-type/ui 1.1.4 → 1.1.5
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/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/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/uno.preset.ts +5 -5
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { MouseEvent, ReactNode } from 'react';
|
|
2
|
+
import { ButtonProps } from '../button.js';
|
|
2
3
|
export interface CameraRootProps {
|
|
3
4
|
className?: string;
|
|
4
5
|
onCapture?: (data: File) => void;
|
|
@@ -16,3 +17,10 @@ export declare const CameraShutterButton: import("react").ForwardRefExoticCompon
|
|
|
16
17
|
export interface CameraDeviceSelectorProps {
|
|
17
18
|
}
|
|
18
19
|
export declare const CameraDeviceSelector: (props: CameraDeviceSelectorProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
20
|
+
export declare const CameraFullscreenButton: (props: ButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
export declare const Camera: ((props: CameraRootProps) => import("react/jsx-runtime").JSX.Element) & {
|
|
22
|
+
Root: import("react").ForwardRefExoticComponent<CameraRootProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
23
|
+
ShutterButton: import("react").ForwardRefExoticComponent<CameraShutterButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
24
|
+
DeviceSelector: (props: CameraDeviceSelectorProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
25
|
+
FullscreenButton: (props: ButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
};
|
|
@@ -15,7 +15,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
15
15
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
16
16
|
};
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.CameraDeviceSelector = exports.CameraShutterButton = exports.CameraRoot = void 0;
|
|
18
|
+
exports.Camera = exports.CameraFullscreenButton = exports.CameraDeviceSelector = exports.CameraShutterButton = exports.CameraRoot = void 0;
|
|
19
19
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
20
20
|
const clsx_1 = __importDefault(require("clsx"));
|
|
21
21
|
const react_1 = require("react");
|
|
@@ -29,6 +29,8 @@ const CameraContext = (0, react_1.createContext)({
|
|
|
29
29
|
selectedDeviceId: 'default',
|
|
30
30
|
selectDeviceId: () => { },
|
|
31
31
|
devices: [],
|
|
32
|
+
fullscreen: false,
|
|
33
|
+
setFullscreen: () => { },
|
|
32
34
|
});
|
|
33
35
|
exports.CameraRoot = (0, react_1.forwardRef)(function Camera(_a, ref) {
|
|
34
36
|
var { className, onCapture, children, facingMode, format = 'image/png' } = _a, rest = __rest(_a, ["className", "onCapture", "children", "facingMode", "format"]);
|
|
@@ -42,16 +44,19 @@ exports.CameraRoot = (0, react_1.forwardRef)(function Camera(_a, ref) {
|
|
|
42
44
|
});
|
|
43
45
|
}, [!!stream]);
|
|
44
46
|
const [selectedDeviceId, setSelectedDeviceId] = (0, react_1.useState)();
|
|
47
|
+
const cleanupRef = (0, react_1.useRef)();
|
|
45
48
|
(0, react_1.useEffect)(() => {
|
|
46
49
|
const init = () => {
|
|
47
|
-
var _a;
|
|
48
|
-
(_a =
|
|
50
|
+
var _a, _b;
|
|
51
|
+
(_a = cleanupRef.current) === null || _a === void 0 ? void 0 : _a.call(cleanupRef);
|
|
52
|
+
(_b = navigator.mediaDevices) === null || _b === void 0 ? void 0 : _b.getUserMedia({
|
|
49
53
|
video: {
|
|
50
54
|
deviceId: selectedDeviceId,
|
|
51
55
|
facingMode,
|
|
52
56
|
},
|
|
53
57
|
}).then((s) => {
|
|
54
58
|
setStream(s);
|
|
59
|
+
cleanupRef.current = () => s.getTracks().forEach((track) => track.stop());
|
|
55
60
|
});
|
|
56
61
|
};
|
|
57
62
|
init();
|
|
@@ -63,12 +68,12 @@ exports.CameraRoot = (0, react_1.forwardRef)(function Camera(_a, ref) {
|
|
|
63
68
|
init();
|
|
64
69
|
};
|
|
65
70
|
document.addEventListener('visibilitychange', reconnect);
|
|
66
|
-
}, [selectedDeviceId, facingMode]);
|
|
67
|
-
(0, react_1.useEffect)(() => {
|
|
68
71
|
return () => {
|
|
69
|
-
|
|
72
|
+
var _a;
|
|
73
|
+
document.removeEventListener('visibilitychange', reconnect);
|
|
74
|
+
(_a = cleanupRef.current) === null || _a === void 0 ? void 0 : _a.call(cleanupRef);
|
|
70
75
|
};
|
|
71
|
-
}, [
|
|
76
|
+
}, [selectedDeviceId, facingMode]);
|
|
72
77
|
(0, react_1.useEffect)(() => {
|
|
73
78
|
const video = videoRef.current;
|
|
74
79
|
if (video && stream) {
|
|
@@ -116,12 +121,15 @@ exports.CameraRoot = (0, react_1.forwardRef)(function Camera(_a, ref) {
|
|
|
116
121
|
}
|
|
117
122
|
}
|
|
118
123
|
};
|
|
124
|
+
const [fullscreen, setFullscreen] = (0, react_1.useState)(false);
|
|
119
125
|
return ((0, jsx_runtime_1.jsx)(CameraContext.Provider, Object.assign({ value: {
|
|
120
126
|
devices,
|
|
121
127
|
triggerCapture,
|
|
122
128
|
selectedDeviceId,
|
|
123
129
|
selectDeviceId: setSelectedDeviceId,
|
|
124
|
-
|
|
130
|
+
setFullscreen,
|
|
131
|
+
fullscreen,
|
|
132
|
+
} }, { children: (0, jsx_runtime_1.jsxs)("div", Object.assign({ ref: ref, className: (0, clsx_1.default)('layer-components:[font-family:inherit] layer-components:text-white layer-components:bg-black layer-components:rounded-lg layer-components:overflow-hidden layer-components:min-w-4 layer-components:min-h-4 layer-components:relative', fullscreen && 'fixed inset-0 w-full h-full z-1000 rounded-none', className) }, rest, { children: [(0, jsx_runtime_1.jsx)("video", { ref: videoRef, className: "w-full h-full object-cover", autoPlay: true, muted: true, playsInline: true }), children] })) })));
|
|
125
133
|
});
|
|
126
134
|
exports.CameraShutterButton = (0, react_1.forwardRef)(function CameraShutterButton(_a, ref) {
|
|
127
135
|
var { asChild, onClick } = _a, rest = __rest(_a, ["asChild", "onClick"]);
|
|
@@ -155,6 +163,20 @@ const CameraDeviceSelector = (props) => {
|
|
|
155
163
|
return ((0, jsx_runtime_1.jsxs)(select_js_1.Select, Object.assign({ value: selectedDeviceId || 'default', onValueChange: selectDeviceId }, { children: [(0, jsx_runtime_1.jsx)(select_js_1.SelectTrigger, Object.assign({ asChild: true }, { children: (0, jsx_runtime_1.jsx)(button_js_1.Button, Object.assign({ size: "icon", color: "ghost", className: "absolute bottom-2 left-2 text-white" }, { children: (0, jsx_runtime_1.jsx)(icon_js_1.Icon, { name: "refresh" }) })) })), (0, jsx_runtime_1.jsx)(select_js_1.SelectContent, { children: devices.map((device) => ((0, jsx_runtime_1.jsx)(select_js_1.SelectItem, Object.assign({ value: device.deviceId }, { children: device.label }), device.deviceId))) })] })));
|
|
156
164
|
};
|
|
157
165
|
exports.CameraDeviceSelector = CameraDeviceSelector;
|
|
166
|
+
const CameraFullscreenButton = (props) => {
|
|
167
|
+
const { setFullscreen, fullscreen } = (0, react_1.useContext)(CameraContext);
|
|
168
|
+
return ((0, jsx_runtime_1.jsx)(button_js_1.Button, Object.assign({}, props, { size: "icon", color: "ghost", className: "absolute top-2 right-2 text-white", onClick: () => setFullscreen(!fullscreen) }, { children: (0, jsx_runtime_1.jsx)(icon_js_1.Icon, { name: fullscreen ? 'x' : 'maximize' }) })));
|
|
169
|
+
};
|
|
170
|
+
exports.CameraFullscreenButton = CameraFullscreenButton;
|
|
171
|
+
const CameraBase = (props) => {
|
|
172
|
+
return ((0, jsx_runtime_1.jsxs)(exports.CameraRoot, Object.assign({}, props, { children: [(0, jsx_runtime_1.jsx)(exports.CameraShutterButton, {}), (0, jsx_runtime_1.jsx)(exports.CameraDeviceSelector, {}), (0, jsx_runtime_1.jsx)(exports.CameraFullscreenButton, {})] })));
|
|
173
|
+
};
|
|
174
|
+
exports.Camera = Object.assign(CameraBase, {
|
|
175
|
+
Root: exports.CameraRoot,
|
|
176
|
+
ShutterButton: exports.CameraShutterButton,
|
|
177
|
+
DeviceSelector: exports.CameraDeviceSelector,
|
|
178
|
+
FullscreenButton: exports.CameraFullscreenButton,
|
|
179
|
+
});
|
|
158
180
|
function dataURItoFile(dataURI) {
|
|
159
181
|
// convert base64/URLEncoded data component to raw binary data held in a string
|
|
160
182
|
var byteString;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Camera.js","sourceRoot":"","sources":["../../../../src/components/camera/Camera.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,iCASe;AACf,
|
|
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;
|
|
@@ -7,6 +7,7 @@ const Camera_js_1 = require("./Camera.js");
|
|
|
7
7
|
const react_1 = require("react");
|
|
8
8
|
const meta = {
|
|
9
9
|
title: 'Camera',
|
|
10
|
+
component: Camera_js_1.Camera,
|
|
10
11
|
argTypes: {},
|
|
11
12
|
parameters: {
|
|
12
13
|
controls: { expanded: true },
|
|
@@ -27,6 +28,6 @@ exports.BackCamera = {
|
|
|
27
28
|
function CameraDemo({ facingMode }) {
|
|
28
29
|
const [latest, setLatest] = (0, react_1.useState)();
|
|
29
30
|
const dataUri = (0, react_1.useMemo)(() => (latest ? URL.createObjectURL(latest) : undefined), [latest]);
|
|
30
|
-
return ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.
|
|
31
|
+
return ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(Camera_js_1.Camera, { facingMode: facingMode, onCapture: setLatest, className: "w-64 h-64" }), latest && (0, jsx_runtime_1.jsx)("img", { src: dataUri, className: "w-full" })] }));
|
|
31
32
|
}
|
|
32
33
|
//# 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,
|
|
1
|
+
{"version":3,"file":"Camera.stories.js","sourceRoot":"","sources":["../../../../src/components/camera/Camera.stories.tsx"],"names":[],"mappings":";;;;AACA,2CAAqC;AACrC,iCAA0C;AAE1C,MAAM,IAAI,GAAG;IACZ,KAAK,EAAE,QAAQ;IACf,SAAS,EAAE,kBAAM;IACjB,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE;QACX,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC5B;IACD,IAAI,EAAE,EAAE;CACsB,CAAC;AAEhC,kBAAe,IAAI,CAAC;AAIP,QAAA,OAAO,GAAU;IAC7B,MAAM;QACL,OAAO,uBAAC,UAAU,KAAG,CAAC;IACvB,CAAC;CACD,CAAC;AAEW,QAAA,UAAU,GAAU;IAChC,MAAM;QACL,OAAO,uBAAC,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,IAAA,gBAAQ,GAAoB,CAAC;IACzD,MAAM,OAAO,GAAG,IAAA,eAAO,EACtB,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,4CACC,uBAAC,kBAAM,IACN,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAC,WAAW,GACpB,EACD,MAAM,IAAI,gCAAK,GAAG,EAAE,OAAO,EAAE,SAAS,EAAC,QAAQ,GAAG,IAC9C,CACN,CAAC;AACH,CAAC"}
|
|
@@ -93,12 +93,12 @@ function ImageUploader(_a) {
|
|
|
93
93
|
}, []);
|
|
94
94
|
const [cameraOpen, setCameraOpen] = (0, react_1.useState)(false);
|
|
95
95
|
const openCamera = () => setCameraOpen(true);
|
|
96
|
-
return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ className: (0, clsx_1.default)('relative overflow-hidden', rest.className), onDragEnter: onDragEnter, onDragLeave: onDragLeave, onDragOver: onDragOver, onDrop: onDrop, onDragStart: onDragStart, onDragEnd: onDragEnd }, { children: [value ? ((0, jsx_runtime_1.jsx)("img", { src: value, className: "w-full h-full object-cover object-center" })) : null, !value && ((0, jsx_runtime_1.jsxs)("div", Object.assign({ className: (0, clsx_1.default)('absolute inset-0 flex flex-col items-center justify-center gap-3 bg-[rgba(0,0,0,0.05)]', {
|
|
96
|
+
return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ className: (0, clsx_1.default)('relative overflow-hidden rounded-lg', rest.className), onDragEnter: onDragEnter, onDragLeave: onDragLeave, onDragOver: onDragOver, onDrop: onDrop, onDragStart: onDragStart, onDragEnd: onDragEnd }, { children: [value ? ((0, jsx_runtime_1.jsx)("img", { src: value, className: "w-full h-full object-cover object-center" })) : null, !value && ((0, jsx_runtime_1.jsxs)("div", Object.assign({ className: (0, clsx_1.default)('absolute inset-0 flex flex-col items-center justify-center gap-3 bg-[rgba(0,0,0,0.05)]', {
|
|
97
97
|
'!bg-[rgba(0,0,0,0.1)]': draggingOver,
|
|
98
98
|
}) }, { children: [(0, jsx_runtime_1.jsx)("input", { type: "file", accept: "image/*", onChange: onFileChange, onClick: onFileClick, className: "absolute inset--99999 op-0", id: inputId }), (0, jsx_runtime_1.jsx)(button_js_1.Button, Object.assign({ color: "ghost", asChild: true }, { children: (0, jsx_runtime_1.jsxs)("label", Object.assign({ htmlFor: inputId }, { children: [(0, jsx_runtime_1.jsx)(icon_js_1.Icon, { name: "upload" }), (0, jsx_runtime_1.jsx)("span", { children: dragging ? 'Drop' : 'Upload' })] })) })), (0, jsx_runtime_1.jsxs)(button_js_1.Button, Object.assign({ color: "ghost", onClick: openCamera }, { children: [(0, jsx_runtime_1.jsx)(icon_js_1.Icon, { name: "camera" }), (0, jsx_runtime_1.jsx)("span", { children: "Camera" })] }))] }))), !value && cameraOpen && ((0, jsx_runtime_1.jsxs)(camera_js_1.CameraRoot, Object.assign({ className: "absolute w-full h-full z-1", format: "image/png", onCapture: (file) => {
|
|
99
99
|
onChange(file);
|
|
100
100
|
setCameraOpen(false);
|
|
101
|
-
}, facingMode: facingMode }, { children: [(0, jsx_runtime_1.jsx)(camera_js_1.CameraShutterButton, {}), (0, jsx_runtime_1.jsx)(camera_js_1.CameraDeviceSelector, {}), (0, jsx_runtime_1.jsx)(button_js_1.Button, Object.assign({ onClick: () => setCameraOpen(false), color: "ghost", size: "
|
|
101
|
+
}, facingMode: facingMode }, { children: [(0, jsx_runtime_1.jsx)(camera_js_1.CameraShutterButton, {}), (0, jsx_runtime_1.jsx)(camera_js_1.CameraDeviceSelector, {}), (0, jsx_runtime_1.jsx)(camera_js_1.CameraFullscreenButton, {}), (0, jsx_runtime_1.jsx)(button_js_1.Button, Object.assign({ onClick: () => setCameraOpen(false), color: "ghost", size: "small", className: "text-white absolute top-2 left-2" }, { children: "Cancel" }))] }))), value && ((0, jsx_runtime_1.jsx)(button_js_1.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: (0, jsx_runtime_1.jsx)(icon_js_1.Icon, { name: "x" }) })))] })));
|
|
102
102
|
}
|
|
103
103
|
exports.ImageUploader = ImageUploader;
|
|
104
104
|
//# sourceMappingURL=ImageUploader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImageUploader.js","sourceRoot":"","sources":["../../../../src/components/imageUploader/ImageUploader.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;AAEb,gDAA8B;AAC9B,iCAAqD;AACrD,wCAAkC;AAClC,4CAAsC;AACtC,
|
|
1
|
+
{"version":3,"file":"ImageUploader.js","sourceRoot":"","sources":["../../../../src/components/imageUploader/ImageUploader.tsx"],"names":[],"mappings":"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"}
|
package/dist/cjs/uno.preset.js
CHANGED
|
@@ -423,17 +423,17 @@ function presetAglio({ spacingIncrement = 0.25, interFontLocation = 'https://res
|
|
|
423
423
|
--palette-blue-90: #e3f3ff;
|
|
424
424
|
--palette-blue-80: #c4e7ff;
|
|
425
425
|
--palette-blue-70: #7bd0ff;
|
|
426
|
-
--palette-blue-60: #
|
|
427
|
-
--palette-blue-50: #
|
|
428
|
-
--palette-blue-40: #
|
|
429
|
-
--palette-blue-30: #
|
|
426
|
+
--palette-blue-60: #4cc5f9;
|
|
427
|
+
--palette-blue-50: #18b5ed;
|
|
428
|
+
--palette-blue-40: #0a9acf;
|
|
429
|
+
--palette-blue-30: #077da7;
|
|
430
430
|
--palette-blue-20: #005979;
|
|
431
431
|
--palette-blue-10: #004c69;
|
|
432
432
|
--palette-blue-00: #00354a;
|
|
433
433
|
--palette-purple-90: #f1efff;
|
|
434
434
|
--palette-purple-80: #e0e0ff;
|
|
435
435
|
--palette-purple-70: #bdc2ff;
|
|
436
|
-
--palette-purple-60: #
|
|
436
|
+
--palette-purple-60: #a0a8ff;
|
|
437
437
|
--palette-purple-50: #7c87f3;
|
|
438
438
|
--palette-purple-40: #6d78d7;
|
|
439
439
|
--palette-purple-30: #6068c0;
|
package/dist/css/main.css
CHANGED
|
@@ -35,17 +35,17 @@
|
|
|
35
35
|
--palette-blue-90: #e3f3ff;
|
|
36
36
|
--palette-blue-80: #c4e7ff;
|
|
37
37
|
--palette-blue-70: #7bd0ff;
|
|
38
|
-
--palette-blue-60: #
|
|
39
|
-
--palette-blue-50: #
|
|
40
|
-
--palette-blue-40: #
|
|
41
|
-
--palette-blue-30: #
|
|
38
|
+
--palette-blue-60: #4cc5f9;
|
|
39
|
+
--palette-blue-50: #18b5ed;
|
|
40
|
+
--palette-blue-40: #0a9acf;
|
|
41
|
+
--palette-blue-30: #077da7;
|
|
42
42
|
--palette-blue-20: #005979;
|
|
43
43
|
--palette-blue-10: #004c69;
|
|
44
44
|
--palette-blue-00: #00354a;
|
|
45
45
|
--palette-purple-90: #f1efff;
|
|
46
46
|
--palette-purple-80: #e0e0ff;
|
|
47
47
|
--palette-purple-70: #bdc2ff;
|
|
48
|
-
--palette-purple-60: #
|
|
48
|
+
--palette-purple-60: #a0a8ff;
|
|
49
49
|
--palette-purple-50: #7c87f3;
|
|
50
50
|
--palette-purple-40: #6d78d7;
|
|
51
51
|
--palette-purple-30: #6068c0;
|
|
@@ -434,7 +434,7 @@
|
|
|
434
434
|
overscroll-behavior: none;
|
|
435
435
|
}
|
|
436
436
|
}
|
|
437
|
-
.outline-off{outline:none;}.unset{all:unset;}.focus-visible\:outline-off:focus-visible{outline:none;}.container{width:100%;}.hidden-input{pointer-events:none;position:absolute;z-index:-1;opacity:0;}.center{left:50%;top:50%;}.z-dialog{z-index:var(--z-dialog);}.z-dialog-backdrop{z-index:var(--z-dialogBackdrop);}.z-menu{z-index:var(--z-menu);}.z-nav{z-index:var(--z-nav);}.z-now-playing{z-index:var(--z-nowPlaying);}.z-overdraw{z-index:var(--z-overdraw);}.z-tooltip{z-index:var(--z-tooltip);}.hidden-input::webkit-file-upload-button{display:none;}.flex-0-0-auto{flex-shrink:0;flex-grow:0;flex-basis:auto;}.flex-1-0-0{flex-shrink:0;flex-grow:1;flex-basis:0.00rem;}.border-default{border-width:1px;border-color:var(--color-black);border-style:solid;}.border-light{border-width:1px;border-color:var(--color-gray-5);border-style:solid;}.bg-wash{background-color:var(--color-wash);}@layer components{.layer-components\:focus\:outline-off:focus{outline:none;}.layer-components\:focus-visible\:outline-off:focus-visible{outline:none;}.layer-components\:z-dialog{z-index:var(--z-dialog);}.layer-components\:z-dialog-backdrop{z-index:var(--z-dialogBackdrop);}.layer-components\:z-menu{z-index:var(--z-menu);}.layer-components\:z-nav{z-index:var(--z-nav);}.layer-components\:z-now-playing{z-index:var(--z-nowPlaying);}.layer-components\:z-tooltip{z-index:var(--z-tooltip);}.col{display:flex;flex-direction:column;align-items:center;gap:0.50rem;}.row{display:flex;flex-direction:row;align-items:center;gap:0.50rem;}.layer-components\:border-default{border-width:1px;border-color:var(--color-black);border-style:solid;}.layer-components\:border-light{border-width:1px;border-color:var(--color-gray-5);border-style:solid;}.layer-components\:bg-wash{background-color:var(--color-wash);}}@layer responsive{@media (min-width: 640px){.sm\:layer-responsive\:bg-wash{background-color:var(--color-wash);}}}@media (min-width: 640px){.container{max-width:640px;}}@media (min-width: 768px){.container{max-width:768px;}}@media (min-width: 1024px){.container{max-width:1024px;}}@media (min-width: 1280px){.container{max-width:1280px;}}@media (min-width: 1536px){.container{max-width:1536px;}}.\!\[background-attachment\:local\,local\,scroll\,scroll\]{background-attachment:local,local,scroll,scroll !important;}.\!\[background-repeat\:no-repeat\]{background-repeat:no-repeat !important;}.\!\[background-size\:100\%_40px\,100\%_40px\,100\%_14px\,100\%_14px\]{background-size:100% 40px,100% 40px,100% 14px,100% 14px !important;}.\[\&\[data-different-month\]\]\:\[visibility\:hidden\][data-different-month]{visibility:hidden;}.\[all\:unset\]{all:unset;}.\[background-size\:400\%_400\%\]{background-size:400% 400%;}.\[background\:linear-gradient\(var\(--scroll-bg\)_30\%\,rgba\(255\,255\,255\,0\)\)_center_top\,linear-gradient\(rgba\(255\,255\,255\,0\)\,var\(--scroll-bg\)_70\%\)_center_bottom\,radial-gradient\(farthest-side_at_50\%_0\,var\(--scroll-shadow\)\,rgba\(0\,0\,0\,0\)\)_center_top\,radial-gradient\(farthest-side_at_50\%_100\%\,var\(--scroll-shadow\)\,rgba\(0\,0\,0\,0\)\)_center_bottom\]{background:linear-gradient(var(--scroll-bg) 30%,rgba(255,255,255,0)) center top,linear-gradient(rgba(255,255,255,0),var(--scroll-bg) 70%) center bottom,radial-gradient(farthest-side at 50% 0,var(--scroll-shadow),rgba(0,0,0,0)) center top,radial-gradient(farthest-side at 50% 100%,var(--scroll-shadow),rgba(0,0,0,0)) center bottom;}.\[grid-area\:leftGrid\]{grid-area:leftGrid;}.\[grid-area\:leftMonth\]{grid-area:leftMonth;}.\[grid-area\:nextMonth\]{grid-area:nextMonth;}.\[grid-area\:prevMonth\]{grid-area:prevMonth;}.\[grid-area\:rightGrid\]{grid-area:rightGrid;}.\[grid-area\:rightMonth\]{grid-area:rightMonth;}.\[grid-auto-rows\:var\(--day-size\,32px\)\]{grid-auto-rows:var(--day-size,32px);}.\[grid-template-areas\:\"prevMonth_leftMonth_nextMonth\"\"leftGrid_leftGrid_leftGrid\"\]{grid-template-areas:"prevMonth leftMonth nextMonth""leftGrid leftGrid leftGrid";}.\[grid-template-columns\:auto_1fr_auto\]{grid-template-columns:auto 1fr auto;}.\[grid-template-rows\:auto_1fr\]{grid-template-rows:auto 1fr;}.\[outline\:none\]{outline:none;}.\[stroke-dasharray\:80_200\]{stroke-dasharray:80 200;}.\[stroke-dashoffset\:0\]{stroke-dashoffset:0;}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0;}.\[\&\[data-disabled\]\]\:pointer-events-none[data-disabled],.pointer-events-none{pointer-events:none;}.after\:pointer-events-none::after{pointer-events:none;}.\!visible{visibility:visible !important;}.visible{visibility:visible;}.\[\&\[data-state\=active\]\]\:relative[data-state=active],.relative{position:relative;}.absolute{position:absolute;}.fixed{position:fixed;}.sticky{position:sticky;}.\[\&\[data-today\]\]\:before\:absolute[data-today]::before{position:absolute;}.before\:absolute::before{position:absolute;}.after\:absolute::after{position:absolute;}.static{position:static;}.inset--99999{inset:-24999.75rem;}.inset-0{inset:0.00rem;}.after\:inset-0::after{inset:0.00rem;}.bottom--0\.5px{bottom:-0.5px;}.bottom--6{bottom:-1.5rem;}.bottom-0{bottom:0.00rem;}.bottom-0px{bottom:0;}.bottom-2{bottom:0.50rem;}.bottom-3{bottom:0.75rem;}.left-0{left:0.00rem;}.left-1\/2,.left-50\%{left:50%;}.left-2{left:0.50rem;}.right--20px{right:-20px;}.right-1{right:0.25rem;}.right-2{right:0.50rem;}.top--20px{top:-20px;}.top-0{top:0.00rem;}.top-1px{top:1px;}.top-2{top:0.50rem;}.top-50\%{top:50%;}.top-auto{top:auto;}.\[\&\[data-today\]\]\:before\:left-\[2px\][data-today]::before{left:2px;}.\[\&\[data-today\]\]\:before\:top-\[2px\][data-today]::before{top:2px;}.before\:left-1\/2::before{left:50%;}.before\:top-1\/2::before{top:50%;}.after\:bottom-0::after{bottom:0.00rem;}.after\:left--9px::after{left:-9px;}.after\:right-0::after{right:0.00rem;}.after\:top--7px::after{top:-7px;}.after\:top-0::after{top:0.00rem;}.after\:top-auto::after{top:auto;}.\[\&\[data-highlighted\]\]\:z-1[data-highlighted],.\[\&\[data-in-range\]\]\:z-1[data-in-range],.\[\&\[data-range-end\]\]\:z-1[data-range-end],.\[\&\[data-range-start\]\]\:z-1[data-range-start],.\[\&\[data-state\=active\]\]\:z-1[data-state=active],.z-1{z-index:1;}.\[\&\[data-selected\]\]\:z-2[data-selected]{z-index:2;}.z--1{z-index:-1;}.z-\[calc\(var\(--z-dialog\)\+1\)\]{z-index:calc(var(--z-dialog) + 1);}.z-\[var\(--z-dialog\)\]{z-index:var(--z-dialog);}.z-\[var\(--z-dialogBackdrop\)\]{z-index:var(--z-dialogBackdrop);}.z-\[var\(--z-menu\)\]{z-index:var(--z-menu);}.z-\[var\(--z-nav\)\]{z-index:var(--z-nav);}.z-\[var\(--z-nowPlaying\)\]{z-index:var(--z-nowPlaying);}.z-\[var\(--z-overdraw\)\]{z-index:var(--z-overdraw);}.z-\[var\(--z-tooltip\)\]{z-index:var(--z-tooltip);}.hover\:z-1:hover{z-index:1;}.after\:z-1::after{z-index:1;}.grid{display:grid;}.grid-cols-\[repeat\(7\,var\(--day-size\,32px\)\)\]{grid-template-columns:repeat(7,var(--day-size,32px));}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr));}.important\:m-2{margin:0.50rem !important;}.m-1{margin:0.25rem;}.m-2{margin:0.50rem;}.m-5px{margin:5px;}.m\[k\]{margin:k;}.important\:mx-1{margin-left:0.25rem !important;margin-right:0.25rem !important;}.my-0{margin-top:0.00rem;margin-bottom:0.00rem;}.my-4{margin-top:1.00rem;margin-bottom:1.00rem;}.\[\&_\.ProseMirror_h1\,h2\,h3\,p\]\:mt-0 .ProseMirror h1,h2,h3,p,.mt-0{margin-top:0.00rem;}.\[\&_\.ProseMirror_h2\]\:mb-2 .ProseMirror h2{margin-bottom:0.50rem;}.\[\&_\.ProseMirror_h2\]\:mt-4 .ProseMirror h2{margin-top:1.00rem;}.mb--1px{margin-bottom:-1px;}.mb-1{margin-bottom:0.25rem;}.mb-4{margin-bottom:1.00rem;}.mb-6{margin-bottom:1.50rem;}.me{margin-inline-end:1rem;}.ml--1{margin-left:-0.25rem;}.ml-auto{margin-left:auto;}.mr--1px{margin-right:-1px;}.mr-1{margin-right:0.25rem;}.mt-3{margin-top:0.75rem;}.mt-auto{margin-top:auto;}.block{display:block;}.inline-block{display:inline-block;}.\!hidden{display:none !important;}.\[\&\:\:webkit-file-upload-button\]\:hidden::webkit-file-upload-button,.hidden{display:none;}.\[\&\[data-state\=delayed-open\]\]\:display-initial[data-state=delayed-open],.\[\&\[data-state\=instant-open\]\]\:display-initial[data-state=instant-open]{display:initial;}.\[\&\[data-state\=closed\]\]\:max-h-\[var\(--peek-height\,120px\)\][data-state=closed]{max-height:var(--peek-height,120px);}.h-\[100vh\]{height:100vh;}.h-\[12px\]{height:12px;}.h-\[4px\]{height:4px;}.h-\[calc\(100\%-18px\)\]{height:calc(100% - 18px);}.h-16{height:4rem;}.h-16px{height:16px;}.h-1em{height:1em;}.h-1px{height:1px;}.h-21px{height:21px;}.h-25px{height:25px;}.h-32px{height:32px;}.h-36px{height:36px;}.h-4,.h4{height:1rem;}.h-64{height:16rem;}.h-80px{height:80px;}.h-full{height:100%;}.h1{height:0.25rem;}.h2{height:0.5rem;}.h3{height:0.75rem;}.h5{height:1.25rem;}.important\:h-30px{height:30px !important;}.max-h-200px{max-height:200px;}.max-w-300px{max-width:300px;}.max-w-600px{max-width:600px;}.max-w-full{max-width:100%;}.min-h-20vh{min-height:20vh;}.min-w-0{min-width:0;}.min-w-220px{min-width:220px;}.w-\[12px\]{width:12px;}.w-\[calc\(var\(--day-size\,32px\)\*7\)\]{width:calc(var(--day-size,32px) * 7);}.w-0{width:0;}.w-16{width:4rem;}.w-16px{width:16px;}.w-1em{width:1em;}.w-20\%{width:20%;}.w-20px{width:20px;}.w-21px{width:21px;}.w-25px{width:25px;}.w-32px{width:32px;}.w-4{width:1rem;}.w-400px{width:400px;}.w-42px{width:42px;}.w-64{width:16rem;}.w-80px{width:80px;}.w-full{width:100%;}.w-max-content{width:max-content;}.\[\&\[data-today\]\]\:before\:h-\[6px\][data-today]::before{height:6px;}.\[\&\[data-today\]\]\:before\:w-\[6px\][data-today]::before{width:6px;}.before\:min-h-44px::before{min-height:44px;}.before\:min-w-44px::before{min-width:44px;}.before\:w-full::before{width:100%;}.after\:h-80px::after{height:80px;}.after\:w-50px::after{width:50px;}.flex{display:flex;}.important\:flex{display:flex !important;}.after\:flex::after{display:flex;}.inline-flex{display:inline-flex;}.flex-1{flex:1 1 0%;}.flex-shrink-0{flex-shrink:0;}.flex-grow-0{flex-grow:0;}.flex-grow-1{flex-grow:1;}.flex-basis-0{flex-basis:0.00rem;}.flex-basis-auto{flex-basis:auto;}.flex-row{flex-direction:row;}.important\:flex-row{flex-direction:row !important;}.flex-col{flex-direction:column;}.after\:flex-col::after{flex-direction:column;}.flex-wrap{flex-wrap:wrap;}.transform-origin-\[50\%_50\%\]{transform-origin:50% 50%;}.translate-\[-50\%\]{--un-translate-x:-50%;--un-translate-y:-50%;transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z));}.-translate-x-1\/2{--un-translate-x:-50%;transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z));}.\[\&\[data-state\=checked\]\]\:translate-x-19px[data-state=checked]{--un-translate-x:19px;transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z));}.translate-y-\[-50\%\]{--un-translate-y:-50%;transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z));}.translate-y-6{--un-translate-y:1.50rem;transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z));}.before\:-translate-x-1\/2::before{--un-translate-x:-50%;transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z));}.before\:-translate-y-1\/2::before{--un-translate-y:-50%;transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z));}.rotate-180{--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-rotate:180deg;transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z));}.transform{transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z));}.transform-gpu{transform:translate3d(var(--un-translate-x), var(--un-translate-y), var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z));}@keyframes peek-close{
|
|
437
|
+
.outline-off{outline:none;}.unset{all:unset;}.focus-visible\:outline-off:focus-visible{outline:none;}.container{width:100%;}.hidden-input{pointer-events:none;position:absolute;z-index:-1;opacity:0;}.center{left:50%;top:50%;}.z-dialog{z-index:var(--z-dialog);}.z-dialog-backdrop{z-index:var(--z-dialogBackdrop);}.z-menu{z-index:var(--z-menu);}.z-nav{z-index:var(--z-nav);}.z-now-playing{z-index:var(--z-nowPlaying);}.z-overdraw{z-index:var(--z-overdraw);}.z-tooltip{z-index:var(--z-tooltip);}.hidden-input::webkit-file-upload-button{display:none;}.flex-0-0-auto{flex-shrink:0;flex-grow:0;flex-basis:auto;}.flex-1-0-0{flex-shrink:0;flex-grow:1;flex-basis:0.00rem;}.border-default{border-width:1px;border-color:var(--color-black);border-style:solid;}.border-light{border-width:1px;border-color:var(--color-gray-5);border-style:solid;}.bg-wash{background-color:var(--color-wash);}@layer components{.layer-components\:focus\:outline-off:focus{outline:none;}.layer-components\:focus-visible\:outline-off:focus-visible{outline:none;}.layer-components\:z-dialog{z-index:var(--z-dialog);}.layer-components\:z-dialog-backdrop{z-index:var(--z-dialogBackdrop);}.layer-components\:z-menu{z-index:var(--z-menu);}.layer-components\:z-nav{z-index:var(--z-nav);}.layer-components\:z-now-playing{z-index:var(--z-nowPlaying);}.layer-components\:z-tooltip{z-index:var(--z-tooltip);}.col{display:flex;flex-direction:column;align-items:center;gap:0.50rem;}.row{display:flex;flex-direction:row;align-items:center;gap:0.50rem;}.layer-components\:border-default{border-width:1px;border-color:var(--color-black);border-style:solid;}.layer-components\:border-light{border-width:1px;border-color:var(--color-gray-5);border-style:solid;}.layer-components\:bg-wash{background-color:var(--color-wash);}}@layer responsive{@media (min-width: 640px){.sm\:layer-responsive\:bg-wash{background-color:var(--color-wash);}}}@media (min-width: 640px){.container{max-width:640px;}}@media (min-width: 768px){.container{max-width:768px;}}@media (min-width: 1024px){.container{max-width:1024px;}}@media (min-width: 1280px){.container{max-width:1280px;}}@media (min-width: 1536px){.container{max-width:1536px;}}.\!\[background-attachment\:local\,local\,scroll\,scroll\]{background-attachment:local,local,scroll,scroll !important;}.\!\[background-repeat\:no-repeat\]{background-repeat:no-repeat !important;}.\!\[background-size\:100\%_40px\,100\%_40px\,100\%_14px\,100\%_14px\]{background-size:100% 40px,100% 40px,100% 14px,100% 14px !important;}.\[\&\[data-different-month\]\]\:\[visibility\:hidden\][data-different-month]{visibility:hidden;}.\[all\:unset\]{all:unset;}.\[background-size\:400\%_400\%\]{background-size:400% 400%;}.\[background\:linear-gradient\(var\(--scroll-bg\)_30\%\,rgba\(255\,255\,255\,0\)\)_center_top\,linear-gradient\(rgba\(255\,255\,255\,0\)\,var\(--scroll-bg\)_70\%\)_center_bottom\,radial-gradient\(farthest-side_at_50\%_0\,var\(--scroll-shadow\)\,rgba\(0\,0\,0\,0\)\)_center_top\,radial-gradient\(farthest-side_at_50\%_100\%\,var\(--scroll-shadow\)\,rgba\(0\,0\,0\,0\)\)_center_bottom\]{background:linear-gradient(var(--scroll-bg) 30%,rgba(255,255,255,0)) center top,linear-gradient(rgba(255,255,255,0),var(--scroll-bg) 70%) center bottom,radial-gradient(farthest-side at 50% 0,var(--scroll-shadow),rgba(0,0,0,0)) center top,radial-gradient(farthest-side at 50% 100%,var(--scroll-shadow),rgba(0,0,0,0)) center bottom;}.\[grid-area\:leftGrid\]{grid-area:leftGrid;}.\[grid-area\:leftMonth\]{grid-area:leftMonth;}.\[grid-area\:nextMonth\]{grid-area:nextMonth;}.\[grid-area\:prevMonth\]{grid-area:prevMonth;}.\[grid-area\:rightGrid\]{grid-area:rightGrid;}.\[grid-area\:rightMonth\]{grid-area:rightMonth;}.\[grid-auto-rows\:var\(--day-size\,32px\)\]{grid-auto-rows:var(--day-size,32px);}.\[grid-template-areas\:\"prevMonth_leftMonth_nextMonth\"\"leftGrid_leftGrid_leftGrid\"\]{grid-template-areas:"prevMonth leftMonth nextMonth""leftGrid leftGrid leftGrid";}.\[grid-template-columns\:auto_1fr_auto\]{grid-template-columns:auto 1fr auto;}.\[grid-template-rows\:auto_1fr\]{grid-template-rows:auto 1fr;}.\[outline\:none\]{outline:none;}.\[stroke-dasharray\:80_200\]{stroke-dasharray:80 200;}.\[stroke-dashoffset\:0\]{stroke-dashoffset:0;}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0;}.\[\&\[data-disabled\]\]\:pointer-events-none[data-disabled],.pointer-events-none{pointer-events:none;}.after\:pointer-events-none::after{pointer-events:none;}.\!visible{visibility:visible !important;}.visible{visibility:visible;}.\[\&\[data-state\=active\]\]\:relative[data-state=active],.relative{position:relative;}.absolute{position:absolute;}.fixed{position:fixed;}.sticky{position:sticky;}.\[\&\[data-today\]\]\:before\:absolute[data-today]::before{position:absolute;}.before\:absolute::before{position:absolute;}.after\:absolute::after{position:absolute;}.static{position:static;}.inset--99999{inset:-24999.75rem;}.inset-0{inset:0.00rem;}.after\:inset-0::after{inset:0.00rem;}.bottom--0\.5px{bottom:-0.5px;}.bottom--6{bottom:-1.5rem;}.bottom-0{bottom:0.00rem;}.bottom-0px{bottom:0;}.bottom-2{bottom:0.50rem;}.bottom-3{bottom:0.75rem;}.left-0{left:0.00rem;}.left-1\/2,.left-50\%{left:50%;}.left-2{left:0.50rem;}.right--20px{right:-20px;}.right-1{right:0.25rem;}.right-2{right:0.50rem;}.top--20px{top:-20px;}.top-0{top:0.00rem;}.top-1px{top:1px;}.top-2{top:0.50rem;}.top-50\%{top:50%;}.top-auto{top:auto;}.\[\&\[data-today\]\]\:before\:left-\[2px\][data-today]::before{left:2px;}.\[\&\[data-today\]\]\:before\:top-\[2px\][data-today]::before{top:2px;}.before\:left-1\/2::before{left:50%;}.before\:top-1\/2::before{top:50%;}.after\:bottom-0::after{bottom:0.00rem;}.after\:left--9px::after{left:-9px;}.after\:right-0::after{right:0.00rem;}.after\:top--7px::after{top:-7px;}.after\:top-0::after{top:0.00rem;}.after\:top-auto::after{top:auto;}.\[\&\[data-highlighted\]\]\:z-1[data-highlighted],.\[\&\[data-in-range\]\]\:z-1[data-in-range],.\[\&\[data-range-end\]\]\:z-1[data-range-end],.\[\&\[data-range-start\]\]\:z-1[data-range-start],.\[\&\[data-state\=active\]\]\:z-1[data-state=active],.z-1{z-index:1;}.\[\&\[data-selected\]\]\:z-2[data-selected]{z-index:2;}.z--1{z-index:-1;}.z-\[calc\(var\(--z-dialog\)\+1\)\]{z-index:calc(var(--z-dialog) + 1);}.z-\[var\(--z-dialog\)\]{z-index:var(--z-dialog);}.z-\[var\(--z-dialogBackdrop\)\]{z-index:var(--z-dialogBackdrop);}.z-\[var\(--z-menu\)\]{z-index:var(--z-menu);}.z-\[var\(--z-nav\)\]{z-index:var(--z-nav);}.z-\[var\(--z-nowPlaying\)\]{z-index:var(--z-nowPlaying);}.z-\[var\(--z-overdraw\)\]{z-index:var(--z-overdraw);}.z-\[var\(--z-tooltip\)\]{z-index:var(--z-tooltip);}.z-1000{z-index:1000;}.hover\:z-1:hover{z-index:1;}.after\:z-1::after{z-index:1;}.grid{display:grid;}.grid-cols-\[repeat\(7\,var\(--day-size\,32px\)\)\]{grid-template-columns:repeat(7,var(--day-size,32px));}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr));}.important\:m-2{margin:0.50rem !important;}.m-1{margin:0.25rem;}.m-2{margin:0.50rem;}.m-5px{margin:5px;}.m\[k\]{margin:k;}.important\:mx-1{margin-left:0.25rem !important;margin-right:0.25rem !important;}.my-0{margin-top:0.00rem;margin-bottom:0.00rem;}.my-4{margin-top:1.00rem;margin-bottom:1.00rem;}.\[\&_\.ProseMirror_h1\,h2\,h3\,p\]\:mt-0 .ProseMirror h1,h2,h3,p,.mt-0{margin-top:0.00rem;}.\[\&_\.ProseMirror_h2\]\:mb-2 .ProseMirror h2{margin-bottom:0.50rem;}.\[\&_\.ProseMirror_h2\]\:mt-4 .ProseMirror h2{margin-top:1.00rem;}.mb--1px{margin-bottom:-1px;}.mb-1{margin-bottom:0.25rem;}.mb-4{margin-bottom:1.00rem;}.mb-6{margin-bottom:1.50rem;}.me{margin-inline-end:1rem;}.ml--1{margin-left:-0.25rem;}.ml-auto{margin-left:auto;}.mr--1px{margin-right:-1px;}.mr-1{margin-right:0.25rem;}.mt-3{margin-top:0.75rem;}.mt-auto{margin-top:auto;}.block{display:block;}.inline-block{display:inline-block;}.\!hidden{display:none !important;}.\[\&\:\:webkit-file-upload-button\]\:hidden::webkit-file-upload-button,.hidden{display:none;}.\[\&\[data-state\=delayed-open\]\]\:display-initial[data-state=delayed-open],.\[\&\[data-state\=instant-open\]\]\:display-initial[data-state=instant-open]{display:initial;}.\[\&\[data-state\=closed\]\]\:max-h-\[var\(--peek-height\,120px\)\][data-state=closed]{max-height:var(--peek-height,120px);}.h-\[100vh\]{height:100vh;}.h-\[12px\]{height:12px;}.h-\[4px\]{height:4px;}.h-\[calc\(100\%-18px\)\]{height:calc(100% - 18px);}.h-16{height:4rem;}.h-16px{height:16px;}.h-1em{height:1em;}.h-1px{height:1px;}.h-21px{height:21px;}.h-25px{height:25px;}.h-32px{height:32px;}.h-36px{height:36px;}.h-4,.h4{height:1rem;}.h-64{height:16rem;}.h-80px{height:80px;}.h-full{height:100%;}.h1{height:0.25rem;}.h2{height:0.5rem;}.h3{height:0.75rem;}.h5{height:1.25rem;}.important\:h-30px{height:30px !important;}.max-h-200px{max-height:200px;}.max-w-300px{max-width:300px;}.max-w-600px{max-width:600px;}.max-w-full{max-width:100%;}.min-h-20vh{min-height:20vh;}.min-w-0{min-width:0;}.min-w-220px{min-width:220px;}.w-\[12px\]{width:12px;}.w-\[calc\(var\(--day-size\,32px\)\*7\)\]{width:calc(var(--day-size,32px) * 7);}.w-0{width:0;}.w-16{width:4rem;}.w-16px{width:16px;}.w-1em{width:1em;}.w-20\%{width:20%;}.w-20px{width:20px;}.w-21px{width:21px;}.w-25px{width:25px;}.w-32px{width:32px;}.w-4{width:1rem;}.w-400px{width:400px;}.w-42px{width:42px;}.w-64{width:16rem;}.w-80px{width:80px;}.w-full{width:100%;}.w-max-content{width:max-content;}.\[\&\[data-today\]\]\:before\:h-\[6px\][data-today]::before{height:6px;}.\[\&\[data-today\]\]\:before\:w-\[6px\][data-today]::before{width:6px;}.before\:min-h-44px::before{min-height:44px;}.before\:min-w-44px::before{min-width:44px;}.before\:w-full::before{width:100%;}.after\:h-80px::after{height:80px;}.after\:w-50px::after{width:50px;}.flex{display:flex;}.important\:flex{display:flex !important;}.after\:flex::after{display:flex;}.inline-flex{display:inline-flex;}.flex-1{flex:1 1 0%;}.flex-shrink-0{flex-shrink:0;}.flex-grow-0{flex-grow:0;}.flex-grow-1{flex-grow:1;}.flex-basis-0{flex-basis:0.00rem;}.flex-basis-auto{flex-basis:auto;}.flex-row{flex-direction:row;}.important\:flex-row{flex-direction:row !important;}.flex-col{flex-direction:column;}.after\:flex-col::after{flex-direction:column;}.flex-wrap{flex-wrap:wrap;}.transform-origin-\[50\%_50\%\]{transform-origin:50% 50%;}.translate-\[-50\%\]{--un-translate-x:-50%;--un-translate-y:-50%;transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z));}.-translate-x-1\/2{--un-translate-x:-50%;transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z));}.\[\&\[data-state\=checked\]\]\:translate-x-19px[data-state=checked]{--un-translate-x:19px;transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z));}.translate-y-\[-50\%\]{--un-translate-y:-50%;transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z));}.translate-y-6{--un-translate-y:1.50rem;transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z));}.before\:-translate-x-1\/2::before{--un-translate-x:-50%;transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z));}.before\:-translate-y-1\/2::before{--un-translate-y:-50%;transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z));}.rotate-180{--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-rotate:180deg;transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z));}.transform{transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z));}.transform-gpu{transform:translate3d(var(--un-translate-x), var(--un-translate-y), var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z));}@keyframes peek-close{
|
|
438
438
|
from { height: calc(var(--collapsible-height) + 80px); max-height: none; }
|
|
439
439
|
to { height: min(var(--peek-height, 120px), var(--collapsible-height)); max-height: var(--peek-height, 120px); }
|
|
440
440
|
}@keyframes peek-open{
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { MouseEvent, ReactNode } from 'react';
|
|
2
|
+
import { ButtonProps } from '../button.js';
|
|
2
3
|
export interface CameraRootProps {
|
|
3
4
|
className?: string;
|
|
4
5
|
onCapture?: (data: File) => void;
|
|
@@ -16,3 +17,10 @@ export declare const CameraShutterButton: import("react").ForwardRefExoticCompon
|
|
|
16
17
|
export interface CameraDeviceSelectorProps {
|
|
17
18
|
}
|
|
18
19
|
export declare const CameraDeviceSelector: (props: CameraDeviceSelectorProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
20
|
+
export declare const CameraFullscreenButton: (props: ButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
export declare const Camera: ((props: CameraRootProps) => import("react/jsx-runtime").JSX.Element) & {
|
|
22
|
+
Root: import("react").ForwardRefExoticComponent<CameraRootProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
23
|
+
ShutterButton: import("react").ForwardRefExoticComponent<CameraShutterButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
24
|
+
DeviceSelector: (props: CameraDeviceSelectorProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
25
|
+
FullscreenButton: (props: ButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
};
|
|
@@ -23,6 +23,8 @@ const CameraContext = createContext({
|
|
|
23
23
|
selectedDeviceId: 'default',
|
|
24
24
|
selectDeviceId: () => { },
|
|
25
25
|
devices: [],
|
|
26
|
+
fullscreen: false,
|
|
27
|
+
setFullscreen: () => { },
|
|
26
28
|
});
|
|
27
29
|
export const CameraRoot = forwardRef(function Camera(_a, ref) {
|
|
28
30
|
var { className, onCapture, children, facingMode, format = 'image/png' } = _a, rest = __rest(_a, ["className", "onCapture", "children", "facingMode", "format"]);
|
|
@@ -36,16 +38,19 @@ export const CameraRoot = forwardRef(function Camera(_a, ref) {
|
|
|
36
38
|
});
|
|
37
39
|
}, [!!stream]);
|
|
38
40
|
const [selectedDeviceId, setSelectedDeviceId] = useState();
|
|
41
|
+
const cleanupRef = useRef();
|
|
39
42
|
useEffect(() => {
|
|
40
43
|
const init = () => {
|
|
41
|
-
var _a;
|
|
42
|
-
(_a =
|
|
44
|
+
var _a, _b;
|
|
45
|
+
(_a = cleanupRef.current) === null || _a === void 0 ? void 0 : _a.call(cleanupRef);
|
|
46
|
+
(_b = navigator.mediaDevices) === null || _b === void 0 ? void 0 : _b.getUserMedia({
|
|
43
47
|
video: {
|
|
44
48
|
deviceId: selectedDeviceId,
|
|
45
49
|
facingMode,
|
|
46
50
|
},
|
|
47
51
|
}).then((s) => {
|
|
48
52
|
setStream(s);
|
|
53
|
+
cleanupRef.current = () => s.getTracks().forEach((track) => track.stop());
|
|
49
54
|
});
|
|
50
55
|
};
|
|
51
56
|
init();
|
|
@@ -57,12 +62,12 @@ export const CameraRoot = forwardRef(function Camera(_a, ref) {
|
|
|
57
62
|
init();
|
|
58
63
|
};
|
|
59
64
|
document.addEventListener('visibilitychange', reconnect);
|
|
60
|
-
}, [selectedDeviceId, facingMode]);
|
|
61
|
-
useEffect(() => {
|
|
62
65
|
return () => {
|
|
63
|
-
|
|
66
|
+
var _a;
|
|
67
|
+
document.removeEventListener('visibilitychange', reconnect);
|
|
68
|
+
(_a = cleanupRef.current) === null || _a === void 0 ? void 0 : _a.call(cleanupRef);
|
|
64
69
|
};
|
|
65
|
-
}, [
|
|
70
|
+
}, [selectedDeviceId, facingMode]);
|
|
66
71
|
useEffect(() => {
|
|
67
72
|
const video = videoRef.current;
|
|
68
73
|
if (video && stream) {
|
|
@@ -110,12 +115,15 @@ export const CameraRoot = forwardRef(function Camera(_a, ref) {
|
|
|
110
115
|
}
|
|
111
116
|
}
|
|
112
117
|
};
|
|
118
|
+
const [fullscreen, setFullscreen] = useState(false);
|
|
113
119
|
return (_jsx(CameraContext.Provider, Object.assign({ value: {
|
|
114
120
|
devices,
|
|
115
121
|
triggerCapture,
|
|
116
122
|
selectedDeviceId,
|
|
117
123
|
selectDeviceId: setSelectedDeviceId,
|
|
118
|
-
|
|
124
|
+
setFullscreen,
|
|
125
|
+
fullscreen,
|
|
126
|
+
} }, { children: _jsxs("div", Object.assign({ ref: ref, className: classNames('layer-components:[font-family:inherit] layer-components:text-white layer-components:bg-black layer-components:rounded-lg layer-components:overflow-hidden layer-components:min-w-4 layer-components:min-h-4 layer-components:relative', fullscreen && 'fixed inset-0 w-full h-full z-1000 rounded-none', className) }, rest, { children: [_jsx("video", { ref: videoRef, className: "w-full h-full object-cover", autoPlay: true, muted: true, playsInline: true }), children] })) })));
|
|
119
127
|
});
|
|
120
128
|
export const CameraShutterButton = forwardRef(function CameraShutterButton(_a, ref) {
|
|
121
129
|
var { asChild, onClick } = _a, rest = __rest(_a, ["asChild", "onClick"]);
|
|
@@ -148,6 +156,19 @@ export const CameraDeviceSelector = (props) => {
|
|
|
148
156
|
}
|
|
149
157
|
return (_jsxs(Select, Object.assign({ value: selectedDeviceId || 'default', onValueChange: selectDeviceId }, { children: [_jsx(SelectTrigger, Object.assign({ asChild: true }, { children: _jsx(Button, Object.assign({ size: "icon", color: "ghost", className: "absolute bottom-2 left-2 text-white" }, { children: _jsx(Icon, { name: "refresh" }) })) })), _jsx(SelectContent, { children: devices.map((device) => (_jsx(SelectItem, Object.assign({ value: device.deviceId }, { children: device.label }), device.deviceId))) })] })));
|
|
150
158
|
};
|
|
159
|
+
export const CameraFullscreenButton = (props) => {
|
|
160
|
+
const { setFullscreen, fullscreen } = useContext(CameraContext);
|
|
161
|
+
return (_jsx(Button, Object.assign({}, props, { size: "icon", color: "ghost", className: "absolute top-2 right-2 text-white", onClick: () => setFullscreen(!fullscreen) }, { children: _jsx(Icon, { name: fullscreen ? 'x' : 'maximize' }) })));
|
|
162
|
+
};
|
|
163
|
+
const CameraBase = (props) => {
|
|
164
|
+
return (_jsxs(CameraRoot, Object.assign({}, props, { children: [_jsx(CameraShutterButton, {}), _jsx(CameraDeviceSelector, {}), _jsx(CameraFullscreenButton, {})] })));
|
|
165
|
+
};
|
|
166
|
+
export const Camera = Object.assign(CameraBase, {
|
|
167
|
+
Root: CameraRoot,
|
|
168
|
+
ShutterButton: CameraShutterButton,
|
|
169
|
+
DeviceSelector: CameraDeviceSelector,
|
|
170
|
+
FullscreenButton: CameraFullscreenButton,
|
|
171
|
+
});
|
|
151
172
|
function dataURItoFile(dataURI) {
|
|
152
173
|
// convert base64/URLEncoded data component to raw binary data held in a string
|
|
153
174
|
var byteString;
|
|
@@ -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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"}
|
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
|
)}
|
package/src/uno.preset.ts
CHANGED
|
@@ -454,17 +454,17 @@ export default function presetAglio({
|
|
|
454
454
|
--palette-blue-90: #e3f3ff;
|
|
455
455
|
--palette-blue-80: #c4e7ff;
|
|
456
456
|
--palette-blue-70: #7bd0ff;
|
|
457
|
-
--palette-blue-60: #
|
|
458
|
-
--palette-blue-50: #
|
|
459
|
-
--palette-blue-40: #
|
|
460
|
-
--palette-blue-30: #
|
|
457
|
+
--palette-blue-60: #4cc5f9;
|
|
458
|
+
--palette-blue-50: #18b5ed;
|
|
459
|
+
--palette-blue-40: #0a9acf;
|
|
460
|
+
--palette-blue-30: #077da7;
|
|
461
461
|
--palette-blue-20: #005979;
|
|
462
462
|
--palette-blue-10: #004c69;
|
|
463
463
|
--palette-blue-00: #00354a;
|
|
464
464
|
--palette-purple-90: #f1efff;
|
|
465
465
|
--palette-purple-80: #e0e0ff;
|
|
466
466
|
--palette-purple-70: #bdc2ff;
|
|
467
|
-
--palette-purple-60: #
|
|
467
|
+
--palette-purple-60: #a0a8ff;
|
|
468
468
|
--palette-purple-50: #7c87f3;
|
|
469
469
|
--palette-purple-40: #6d78d7;
|
|
470
470
|
--palette-purple-30: #6068c0;
|