@hunterchen/canvas 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/canvas/canvas.d.ts +29 -0
- package/dist/components/canvas/canvas.d.ts.map +1 -0
- package/dist/components/canvas/canvas.js +419 -0
- package/dist/components/canvas/canvas.js.map +1 -0
- package/dist/components/canvas/component.d.ts +47 -0
- package/dist/components/canvas/component.d.ts.map +1 -0
- package/dist/components/canvas/component.js +177 -0
- package/dist/components/canvas/component.js.map +1 -0
- package/dist/components/canvas/cursor.d.ts +8 -0
- package/dist/components/canvas/cursor.d.ts.map +1 -0
- package/dist/components/canvas/cursor.js +32 -0
- package/dist/components/canvas/cursor.js.map +1 -0
- package/dist/components/canvas/draggable.d.ts +21 -0
- package/dist/components/canvas/draggable.d.ts.map +1 -0
- package/dist/components/canvas/draggable.js +163 -0
- package/dist/components/canvas/draggable.js.map +1 -0
- package/dist/components/canvas/navbar/index.d.ts +19 -0
- package/dist/components/canvas/navbar/index.d.ts.map +1 -0
- package/dist/components/canvas/navbar/index.js +106 -0
- package/dist/components/canvas/navbar/index.js.map +1 -0
- package/dist/components/canvas/navbar/single-button.d.ts +17 -0
- package/dist/components/canvas/navbar/single-button.d.ts.map +1 -0
- package/dist/components/canvas/navbar/single-button.js +97 -0
- package/dist/components/canvas/navbar/single-button.js.map +1 -0
- package/dist/components/canvas/offest.d.ts +6 -0
- package/dist/components/canvas/offest.d.ts.map +1 -0
- package/dist/components/canvas/offest.js +12 -0
- package/dist/components/canvas/offest.js.map +1 -0
- package/dist/components/canvas/reset.d.ts +5 -0
- package/dist/components/canvas/reset.d.ts.map +1 -0
- package/dist/components/canvas/reset.js +7 -0
- package/dist/components/canvas/reset.js.map +1 -0
- package/dist/components/canvas/toolbar.d.ts +7 -0
- package/dist/components/canvas/toolbar.d.ts.map +1 -0
- package/dist/components/canvas/toolbar.js +28 -0
- package/dist/components/canvas/toolbar.js.map +1 -0
- package/dist/components/canvas/wrapper.d.ts +26 -0
- package/dist/components/canvas/wrapper.d.ts.map +1 -0
- package/dist/components/canvas/wrapper.js +107 -0
- package/dist/components/canvas/wrapper.js.map +1 -0
- package/dist/components/ui/FolderIcon.d.ts +9 -0
- package/dist/components/ui/FolderIcon.d.ts.map +1 -0
- package/dist/components/ui/FolderIcon.js +25 -0
- package/dist/components/ui/FolderIcon.js.map +1 -0
- package/dist/components/ui/button.d.ts +14 -0
- package/dist/components/ui/button.d.ts.map +1 -0
- package/dist/components/ui/button.js +54 -0
- package/dist/components/ui/button.js.map +1 -0
- package/dist/components/ui/label.d.ts +6 -0
- package/dist/components/ui/label.d.ts.map +1 -0
- package/dist/components/ui/label.js +10 -0
- package/dist/components/ui/label.js.map +1 -0
- package/dist/components/ui/toast.d.ts +16 -0
- package/dist/components/ui/toast.d.ts.map +1 -0
- package/dist/components/ui/toast.js +41 -0
- package/dist/components/ui/toast.js.map +1 -0
- package/dist/components/ui/toaster.d.ts +2 -0
- package/dist/components/ui/toaster.d.ts.map +1 -0
- package/dist/components/ui/toaster.js +10 -0
- package/dist/components/ui/toaster.js.map +1 -0
- package/dist/contexts/CanvasContext.d.ts +26 -0
- package/dist/contexts/CanvasContext.d.ts.map +1 -0
- package/dist/contexts/CanvasContext.js +22 -0
- package/dist/contexts/CanvasContext.js.map +1 -0
- package/dist/contexts/PerformanceContext.d.ts +31 -0
- package/dist/contexts/PerformanceContext.d.ts.map +1 -0
- package/dist/contexts/PerformanceContext.js +56 -0
- package/dist/contexts/PerformanceContext.js.map +1 -0
- package/dist/hooks/use-mobile.d.ts +2 -0
- package/dist/hooks/use-mobile.d.ts.map +1 -0
- package/dist/hooks/use-mobile.js +16 -0
- package/dist/hooks/use-mobile.js.map +1 -0
- package/dist/hooks/use-toast.d.ts +45 -0
- package/dist/hooks/use-toast.d.ts.map +1 -0
- package/dist/hooks/use-toast.js +126 -0
- package/dist/hooks/use-toast.js.map +1 -0
- package/dist/hooks/usePerformanceMode.d.ts +6 -0
- package/dist/hooks/usePerformanceMode.d.ts.map +1 -0
- package/dist/hooks/usePerformanceMode.js +6 -0
- package/dist/hooks/usePerformanceMode.js.map +1 -0
- package/dist/hooks/useWindowDimensions.d.ts +7 -0
- package/dist/hooks/useWindowDimensions.d.ts.map +1 -0
- package/dist/hooks/useWindowDimensions.js +22 -0
- package/dist/hooks/useWindowDimensions.js.map +1 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +28 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/canvas.d.ts +35 -0
- package/dist/lib/canvas.d.ts.map +1 -0
- package/dist/lib/canvas.js +82 -0
- package/dist/lib/canvas.js.map +1 -0
- package/dist/lib/constants.d.ts +78 -0
- package/dist/lib/constants.d.ts.map +1 -0
- package/dist/lib/constants.js +122 -0
- package/dist/lib/constants.js.map +1 -0
- package/dist/lib/copy.d.ts +2 -0
- package/dist/lib/copy.d.ts.map +1 -0
- package/dist/lib/copy.js +20 -0
- package/dist/lib/copy.js.map +1 -0
- package/dist/lib/utils.d.ts +4 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +14 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/types/index.d.ts +19 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +14 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/performance.d.ts +9 -0
- package/dist/utils/performance.d.ts.map +1 -0
- package/dist/utils/performance.js +29 -0
- package/dist/utils/performance.js.map +1 -0
- package/package.json +55 -0
- package/src/components/canvas/canvas.tsx +728 -0
- package/src/components/canvas/component.tsx +230 -0
- package/src/components/canvas/cursor.tsx +161 -0
- package/src/components/canvas/draggable.tsx +298 -0
- package/src/components/canvas/navbar/index.tsx +213 -0
- package/src/components/canvas/navbar/single-button.tsx +199 -0
- package/src/components/canvas/offest.tsx +23 -0
- package/src/components/canvas/reset.tsx +21 -0
- package/src/components/canvas/toolbar.tsx +67 -0
- package/src/components/canvas/wrapper.tsx +219 -0
- package/src/components/ui/FolderIcon.tsx +116 -0
- package/src/components/ui/button.tsx +162 -0
- package/src/components/ui/label.tsx +24 -0
- package/src/components/ui/toast.tsx +136 -0
- package/src/components/ui/toaster.tsx +33 -0
- package/src/contexts/CanvasContext.tsx +54 -0
- package/src/contexts/PerformanceContext.tsx +81 -0
- package/src/hooks/use-mobile.ts +21 -0
- package/src/hooks/use-toast.ts +186 -0
- package/src/hooks/usePerformanceMode.ts +5 -0
- package/src/hooks/useWindowDimensions.ts +32 -0
- package/src/index.ts +36 -0
- package/src/lib/canvas.ts +132 -0
- package/src/lib/constants.ts +153 -0
- package/src/lib/copy.ts +18 -0
- package/src/lib/utils.ts +18 -0
- package/src/types/index.ts +20 -0
- package/src/utils/performance.ts +37 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toast.js","sourceRoot":"","sources":["../../../src/components/ui/toast.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toaster.d.ts","sourceRoot":"","sources":["../../../src/components/ui/toaster.tsx"],"names":[],"mappings":"AAUA,wBAAgB,OAAO,4CAsBtB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useToast } from "../../hooks/use-toast";
|
|
3
|
+
import { Toast, ToastClose, ToastDescription, ToastProvider, ToastTitle, ToastViewport, } from "./toast";
|
|
4
|
+
export function Toaster() {
|
|
5
|
+
const { toasts } = useToast();
|
|
6
|
+
return (_jsxs(ToastProvider, { children: [toasts.map(function ({ id, title, description, action, ...props }) {
|
|
7
|
+
return (_jsxs(Toast, { ...props, children: [_jsxs("div", { className: "grid gap-1", children: [title && _jsx(ToastTitle, { children: title }), description && (_jsx(ToastDescription, { children: description }))] }), action, _jsx(ToastClose, {})] }, id));
|
|
8
|
+
}), _jsx(ToastViewport, {})] }));
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=toaster.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toaster.js","sourceRoot":"","sources":["../../../src/components/ui/toaster.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EACL,KAAK,EACL,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,aAAa,GACd,MAAM,SAAS,CAAC;AAEjB,MAAM,UAAU,OAAO;IACrB,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC;IAE9B,OAAO,CACL,MAAC,aAAa,eACX,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE;gBAChE,OAAO,CACL,MAAC,KAAK,OAAc,KAAK,aACvB,eAAK,SAAS,EAAC,YAAY,aACxB,KAAK,IAAI,KAAC,UAAU,cAAE,KAAK,GAAc,EACzC,WAAW,IAAI,CACd,KAAC,gBAAgB,cAAE,WAAW,GAAoB,CACnD,IACG,EACL,MAAM,EACP,KAAC,UAAU,KAAG,KARJ,EAAE,CASN,CACT,CAAC;YACJ,CAAC,CAAC,EACF,KAAC,aAAa,KAAG,IACH,CACjB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import React, { type ReactNode } from "react";
|
|
2
|
+
import { type MotionValue } from "framer-motion";
|
|
3
|
+
import { CanvasSection } from "../types";
|
|
4
|
+
export interface Point {
|
|
5
|
+
x: number;
|
|
6
|
+
y: number;
|
|
7
|
+
}
|
|
8
|
+
export interface CanvasContextState {
|
|
9
|
+
x: MotionValue<number>;
|
|
10
|
+
y: MotionValue<number>;
|
|
11
|
+
scale: MotionValue<number>;
|
|
12
|
+
isResetting: boolean;
|
|
13
|
+
maxZIndex: number;
|
|
14
|
+
setMaxZIndex: (zIndex: number) => void;
|
|
15
|
+
animationStage: number;
|
|
16
|
+
nextTargetSection: CanvasSection | null;
|
|
17
|
+
setNextTargetSection: (section: CanvasSection | null) => void;
|
|
18
|
+
}
|
|
19
|
+
export declare const CanvasContext: React.Context<CanvasContextState>;
|
|
20
|
+
export declare const useCanvasContext: () => CanvasContextState;
|
|
21
|
+
interface CanvasProviderProps extends CanvasContextState {
|
|
22
|
+
children: ReactNode;
|
|
23
|
+
}
|
|
24
|
+
export declare const CanvasProvider: React.FC<CanvasProviderProps>;
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=CanvasContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CanvasContext.d.ts","sourceRoot":"","sources":["../../src/contexts/CanvasContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACzE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,WAAW,KAAK;IACpB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,kBAAkB;IACjC,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACvB,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,aAAa,GAAG,IAAI,CAAC;IACxC,oBAAoB,EAAE,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,KAAK,IAAI,CAAC;CAC/D;AAkBD,eAAO,MAAM,aAAa,mCAAkD,CAAC;AAE7E,eAAO,MAAM,gBAAgB,0BAAkC,CAAC;AAEhE,UAAU,mBAAoB,SAAQ,kBAAkB;IACtD,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAMxD,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import React, { createContext, useContext } from "react";
|
|
3
|
+
const defaultState = {
|
|
4
|
+
x: undefined,
|
|
5
|
+
y: undefined,
|
|
6
|
+
scale: 1,
|
|
7
|
+
isResetting: false,
|
|
8
|
+
maxZIndex: 1,
|
|
9
|
+
setMaxZIndex: () => {
|
|
10
|
+
console.log("setMaxZIndex not set");
|
|
11
|
+
},
|
|
12
|
+
animationStage: 0,
|
|
13
|
+
nextTargetSection: null,
|
|
14
|
+
setNextTargetSection: () => {
|
|
15
|
+
console.log("setNextTargetSection not set");
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
export const CanvasContext = createContext(defaultState);
|
|
19
|
+
export const useCanvasContext = () => useContext(CanvasContext);
|
|
20
|
+
export const CanvasProvider = React.memo(({ children, ...value }) => (_jsx(CanvasContext.Provider, { value: value, children: children })));
|
|
21
|
+
CanvasProvider.displayName = "CanvasProvider";
|
|
22
|
+
//# sourceMappingURL=CanvasContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CanvasContext.js","sourceRoot":"","sources":["../../src/contexts/CanvasContext.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,EAAkB,MAAM,OAAO,CAAC;AAqBzE,MAAM,YAAY,GAAG;IACnB,CAAC,EAAE,SAA2C;IAC9C,CAAC,EAAE,SAA2C;IAC9C,KAAK,EAAE,CAAmC;IAC1C,WAAW,EAAE,KAAK;IAClB,SAAS,EAAE,CAAC;IACZ,YAAY,EAAE,GAAG,EAAE;QACjB,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IACtC,CAAC;IACD,cAAc,EAAE,CAAC;IACjB,iBAAiB,EAAE,IAAI;IACvB,oBAAoB,EAAE,GAAG,EAAE;QACzB,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAC9C,CAAC;CACO,CAAC;AAEX,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAqB,YAAY,CAAC,CAAC;AAE7E,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAMhE,MAAM,CAAC,MAAM,cAAc,GAAkC,KAAK,CAAC,IAAI,CACrE,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,CAC1B,KAAC,aAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,KAA2B,YACvD,QAAQ,GACc,CAC1B,CACF,CAAC;AAEF,cAAc,CAAC,WAAW,GAAG,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import React, { type ReactNode } from "react";
|
|
2
|
+
export type PerformanceMode = "high" | "medium" | "low";
|
|
3
|
+
export interface PerformanceConfig {
|
|
4
|
+
mode: PerformanceMode;
|
|
5
|
+
isIOS: boolean;
|
|
6
|
+
isMobile: boolean;
|
|
7
|
+
prefersReducedMotion: boolean;
|
|
8
|
+
enableComplexShadows: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare const usePerformance: () => PerformanceConfig;
|
|
11
|
+
export declare const usePerformanceMode: () => PerformanceConfig;
|
|
12
|
+
interface PerformanceProviderProps {
|
|
13
|
+
children: ReactNode;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Performance Provider - Centralized performance mode detection
|
|
17
|
+
*
|
|
18
|
+
* Detects device capabilities and user preferences once at the top level,
|
|
19
|
+
* avoiding redundant device detection across multiple components.
|
|
20
|
+
*
|
|
21
|
+
* Usage:
|
|
22
|
+
* <PerformanceProvider>
|
|
23
|
+
* <App />
|
|
24
|
+
* </PerformanceProvider>
|
|
25
|
+
*
|
|
26
|
+
* Then in components:
|
|
27
|
+
* const { mode, isIOS, enableComplexShadows } = usePerformance();
|
|
28
|
+
*/
|
|
29
|
+
export declare const PerformanceProvider: React.FC<PerformanceProviderProps>;
|
|
30
|
+
export {};
|
|
31
|
+
//# sourceMappingURL=PerformanceContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PerformanceContext.d.ts","sourceRoot":"","sources":["../../src/contexts/PerformanceContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAkD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAI9F,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AAExD,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,oBAAoB,EAAE,OAAO,CAAC;CACjC;AAYD,eAAO,MAAM,cAAc,yBAAuC,CAAC;AAGnE,eAAO,MAAM,kBAAkB,yBAAiB,CAAC;AAEjD,UAAU,wBAAwB;IAC9B,QAAQ,EAAE,SAAS,CAAC;CACvB;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAiClE,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { createContext, useContext, useEffect, useState } from "react";
|
|
3
|
+
import useWindowDimensions from "../hooks/useWindowDimensions";
|
|
4
|
+
import { isIOS, isMobile, prefersReducedMotion } from "../utils/performance";
|
|
5
|
+
const defaultConfig = {
|
|
6
|
+
mode: "high",
|
|
7
|
+
isIOS: false,
|
|
8
|
+
isMobile: false,
|
|
9
|
+
prefersReducedMotion: false,
|
|
10
|
+
enableComplexShadows: true,
|
|
11
|
+
};
|
|
12
|
+
const PerformanceContext = createContext(defaultConfig);
|
|
13
|
+
export const usePerformance = () => useContext(PerformanceContext);
|
|
14
|
+
// Backward compatibility alias
|
|
15
|
+
export const usePerformanceMode = usePerformance;
|
|
16
|
+
/**
|
|
17
|
+
* Performance Provider - Centralized performance mode detection
|
|
18
|
+
*
|
|
19
|
+
* Detects device capabilities and user preferences once at the top level,
|
|
20
|
+
* avoiding redundant device detection across multiple components.
|
|
21
|
+
*
|
|
22
|
+
* Usage:
|
|
23
|
+
* <PerformanceProvider>
|
|
24
|
+
* <App />
|
|
25
|
+
* </PerformanceProvider>
|
|
26
|
+
*
|
|
27
|
+
* Then in components:
|
|
28
|
+
* const { mode, isIOS, enableComplexShadows } = usePerformance();
|
|
29
|
+
*/
|
|
30
|
+
export const PerformanceProvider = ({ children }) => {
|
|
31
|
+
const [config, setConfig] = useState(defaultConfig);
|
|
32
|
+
const { width } = useWindowDimensions();
|
|
33
|
+
useEffect(() => {
|
|
34
|
+
const isIOSDevice = isIOS();
|
|
35
|
+
const isMobileDevice = isMobile();
|
|
36
|
+
const reducedMotion = prefersReducedMotion();
|
|
37
|
+
let mode = "high";
|
|
38
|
+
// Determine performance mode based on device and screen size
|
|
39
|
+
if (isIOSDevice || reducedMotion || width < 768) {
|
|
40
|
+
mode = "low";
|
|
41
|
+
}
|
|
42
|
+
else if (isMobileDevice || width < 1024) {
|
|
43
|
+
mode = "medium";
|
|
44
|
+
}
|
|
45
|
+
setConfig({
|
|
46
|
+
mode,
|
|
47
|
+
isIOS: isIOSDevice,
|
|
48
|
+
isMobile: isMobileDevice,
|
|
49
|
+
prefersReducedMotion: reducedMotion,
|
|
50
|
+
// Use simpler shadows on iOS and low-end devices for better performance
|
|
51
|
+
enableComplexShadows: mode !== "low",
|
|
52
|
+
});
|
|
53
|
+
}, [width]);
|
|
54
|
+
return (_jsx(PerformanceContext.Provider, { value: config, children: children }));
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=PerformanceContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PerformanceContext.js","sourceRoot":"","sources":["../../src/contexts/PerformanceContext.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AAC9F,OAAO,mBAAmB,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAY7E,MAAM,aAAa,GAAsB;IACrC,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,KAAK;IACZ,QAAQ,EAAE,KAAK;IACf,oBAAoB,EAAE,KAAK;IAC3B,oBAAoB,EAAE,IAAI;CAC7B,CAAC;AAEF,MAAM,kBAAkB,GAAG,aAAa,CAAoB,aAAa,CAAC,CAAC;AAE3E,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;AAEnE,+BAA+B;AAC/B,MAAM,CAAC,MAAM,kBAAkB,GAAG,cAAc,CAAC;AAMjD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAuC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;IACpF,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAoB,aAAa,CAAC,CAAC;IACvE,MAAM,EAAE,KAAK,EAAE,GAAG,mBAAmB,EAAE,CAAC;IAExC,SAAS,CAAC,GAAG,EAAE;QACX,MAAM,WAAW,GAAG,KAAK,EAAE,CAAC;QAC5B,MAAM,cAAc,GAAG,QAAQ,EAAE,CAAC;QAClC,MAAM,aAAa,GAAG,oBAAoB,EAAE,CAAC;QAE7C,IAAI,IAAI,GAAoB,MAAM,CAAC;QAEnC,6DAA6D;QAC7D,IAAI,WAAW,IAAI,aAAa,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;YAC9C,IAAI,GAAG,KAAK,CAAC;QACjB,CAAC;aAAM,IAAI,cAAc,IAAI,KAAK,GAAG,IAAI,EAAE,CAAC;YACxC,IAAI,GAAG,QAAQ,CAAC;QACpB,CAAC;QAED,SAAS,CAAC;YACN,IAAI;YACJ,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE,cAAc;YACxB,oBAAoB,EAAE,aAAa;YACnC,wEAAwE;YACxE,oBAAoB,EAAE,IAAI,KAAK,KAAK;SACvC,CAAC,CAAC;IACP,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,CACH,KAAC,kBAAkB,CAAC,QAAQ,IAAC,KAAK,EAAE,MAAM,YACrC,QAAQ,GACiB,CACjC,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-mobile.d.ts","sourceRoot":"","sources":["../../src/hooks/use-mobile.ts"],"names":[],"mappings":"AAIA,wBAAgB,WAAW,YAgB1B"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
const MOBILE_BREAKPOINT = 768;
|
|
3
|
+
export function useIsMobile() {
|
|
4
|
+
const [isMobile, setIsMobile] = React.useState(undefined);
|
|
5
|
+
React.useEffect(() => {
|
|
6
|
+
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
|
|
7
|
+
const onChange = () => {
|
|
8
|
+
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
9
|
+
};
|
|
10
|
+
mql.addEventListener("change", onChange);
|
|
11
|
+
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
12
|
+
return () => mql.removeEventListener("change", onChange);
|
|
13
|
+
}, []);
|
|
14
|
+
return !!isMobile;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=use-mobile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-mobile.js","sourceRoot":"","sources":["../../src/hooks/use-mobile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAE9B,MAAM,UAAU,WAAW;IACzB,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC,QAAQ,CAC5C,SAAS,CACV,CAAC;IAEF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,eAAe,iBAAiB,GAAG,CAAC,KAAK,CAAC,CAAC;QACzE,MAAM,QAAQ,GAAG,GAAG,EAAE;YACpB,WAAW,CAAC,MAAM,CAAC,UAAU,GAAG,iBAAiB,CAAC,CAAC;QACrD,CAAC,CAAC;QACF,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACzC,WAAW,CAAC,MAAM,CAAC,UAAU,GAAG,iBAAiB,CAAC,CAAC;QACnD,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC3D,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CAAC,CAAC,QAAQ,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import type { ToastActionElement, ToastProps } from "../components/ui/toast";
|
|
3
|
+
type ToasterToast = ToastProps & {
|
|
4
|
+
id: string;
|
|
5
|
+
title?: React.ReactNode;
|
|
6
|
+
description?: React.ReactNode;
|
|
7
|
+
action?: ToastActionElement;
|
|
8
|
+
};
|
|
9
|
+
declare const actionTypes: {
|
|
10
|
+
readonly ADD_TOAST: "ADD_TOAST";
|
|
11
|
+
readonly UPDATE_TOAST: "UPDATE_TOAST";
|
|
12
|
+
readonly DISMISS_TOAST: "DISMISS_TOAST";
|
|
13
|
+
readonly REMOVE_TOAST: "REMOVE_TOAST";
|
|
14
|
+
};
|
|
15
|
+
type ActionType = typeof actionTypes;
|
|
16
|
+
type Action = {
|
|
17
|
+
type: ActionType["ADD_TOAST"];
|
|
18
|
+
toast: ToasterToast;
|
|
19
|
+
} | {
|
|
20
|
+
type: ActionType["UPDATE_TOAST"];
|
|
21
|
+
toast: Partial<ToasterToast>;
|
|
22
|
+
} | {
|
|
23
|
+
type: ActionType["DISMISS_TOAST"];
|
|
24
|
+
toastId?: ToasterToast["id"];
|
|
25
|
+
} | {
|
|
26
|
+
type: ActionType["REMOVE_TOAST"];
|
|
27
|
+
toastId?: ToasterToast["id"];
|
|
28
|
+
};
|
|
29
|
+
interface State {
|
|
30
|
+
toasts: ToasterToast[];
|
|
31
|
+
}
|
|
32
|
+
export declare const reducer: (state: State, action: Action) => State;
|
|
33
|
+
type Toast = Omit<ToasterToast, "id">;
|
|
34
|
+
export declare function toast({ ...props }: Toast): {
|
|
35
|
+
id: string;
|
|
36
|
+
dismiss: () => void;
|
|
37
|
+
update: (props: ToasterToast) => void;
|
|
38
|
+
};
|
|
39
|
+
export declare function useToast(): {
|
|
40
|
+
toast: typeof toast;
|
|
41
|
+
dismiss: (toastId?: string) => void;
|
|
42
|
+
toasts: ToasterToast[];
|
|
43
|
+
};
|
|
44
|
+
export {};
|
|
45
|
+
//# sourceMappingURL=use-toast.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-toast.d.ts","sourceRoot":"","sources":["../../src/hooks/use-toast.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAK7E,KAAK,YAAY,GAAG,UAAU,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC7B,CAAC;AAEF,QAAA,MAAM,WAAW;;;;;CAKP,CAAC;AASX,KAAK,UAAU,GAAG,OAAO,WAAW,CAAC;AAErC,KAAK,MAAM,GACP;IACE,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;IAC9B,KAAK,EAAE,YAAY,CAAC;CACrB,GACD;IACE,IAAI,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC;IACjC,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CAC9B,GACD;IACE,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;CAC9B,GACD;IACE,IAAI,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;CAC9B,CAAC;AAEN,UAAU,KAAK;IACb,MAAM,EAAE,YAAY,EAAE,CAAC;CACxB;AAoBD,eAAO,MAAM,OAAO,GAAI,OAAO,KAAK,EAAE,QAAQ,MAAM,KAAG,KAqDtD,CAAC;AAaF,KAAK,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AAEtC,wBAAgB,KAAK,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK;;;oBAGhB,YAAY;EAwBpC;AAED,wBAAgB,QAAQ;;wBAgBA,MAAM;YAtIpB,YAAY,EAAE;EAwIvB"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
const TOAST_LIMIT = 1;
|
|
3
|
+
const TOAST_REMOVE_DELAY = 5000;
|
|
4
|
+
const actionTypes = {
|
|
5
|
+
ADD_TOAST: "ADD_TOAST",
|
|
6
|
+
UPDATE_TOAST: "UPDATE_TOAST",
|
|
7
|
+
DISMISS_TOAST: "DISMISS_TOAST",
|
|
8
|
+
REMOVE_TOAST: "REMOVE_TOAST",
|
|
9
|
+
};
|
|
10
|
+
let count = 0;
|
|
11
|
+
function genId() {
|
|
12
|
+
count = (count + 1) % Number.MAX_SAFE_INTEGER;
|
|
13
|
+
return count.toString();
|
|
14
|
+
}
|
|
15
|
+
const toastTimeouts = new Map();
|
|
16
|
+
const addToRemoveQueue = (toastId) => {
|
|
17
|
+
if (toastTimeouts.has(toastId)) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const timeout = setTimeout(() => {
|
|
21
|
+
toastTimeouts.delete(toastId);
|
|
22
|
+
dispatch({
|
|
23
|
+
type: "REMOVE_TOAST",
|
|
24
|
+
toastId: toastId,
|
|
25
|
+
});
|
|
26
|
+
}, TOAST_REMOVE_DELAY);
|
|
27
|
+
toastTimeouts.set(toastId, timeout);
|
|
28
|
+
};
|
|
29
|
+
export const reducer = (state, action) => {
|
|
30
|
+
switch (action.type) {
|
|
31
|
+
case "ADD_TOAST":
|
|
32
|
+
return {
|
|
33
|
+
...state,
|
|
34
|
+
toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),
|
|
35
|
+
};
|
|
36
|
+
case "UPDATE_TOAST":
|
|
37
|
+
return {
|
|
38
|
+
...state,
|
|
39
|
+
toasts: state.toasts.map((t) => t.id === action.toast.id ? { ...t, ...action.toast } : t),
|
|
40
|
+
};
|
|
41
|
+
case "DISMISS_TOAST": {
|
|
42
|
+
const { toastId } = action;
|
|
43
|
+
// ! Side effects ! - This could be extracted into a dismissToast() action,
|
|
44
|
+
// but I'll keep it here for simplicity
|
|
45
|
+
if (toastId) {
|
|
46
|
+
addToRemoveQueue(toastId);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
state.toasts.forEach((toast) => {
|
|
50
|
+
addToRemoveQueue(toast.id);
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
return {
|
|
54
|
+
...state,
|
|
55
|
+
toasts: state.toasts.map((t) => t.id === toastId || toastId === undefined
|
|
56
|
+
? {
|
|
57
|
+
...t,
|
|
58
|
+
open: false,
|
|
59
|
+
}
|
|
60
|
+
: t),
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
case "REMOVE_TOAST":
|
|
64
|
+
if (action.toastId === undefined) {
|
|
65
|
+
return {
|
|
66
|
+
...state,
|
|
67
|
+
toasts: [],
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
return {
|
|
71
|
+
...state,
|
|
72
|
+
toasts: state.toasts.filter((t) => t.id !== action.toastId),
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
const listeners = [];
|
|
77
|
+
let memoryState = { toasts: [] };
|
|
78
|
+
function dispatch(action) {
|
|
79
|
+
memoryState = reducer(memoryState, action);
|
|
80
|
+
listeners.forEach((listener) => {
|
|
81
|
+
listener(memoryState);
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
export function toast({ ...props }) {
|
|
85
|
+
const id = genId();
|
|
86
|
+
const update = (props) => dispatch({
|
|
87
|
+
type: "UPDATE_TOAST",
|
|
88
|
+
toast: { ...props, id },
|
|
89
|
+
});
|
|
90
|
+
const dismiss = () => dispatch({ type: "DISMISS_TOAST", toastId: id });
|
|
91
|
+
dispatch({
|
|
92
|
+
type: "ADD_TOAST",
|
|
93
|
+
toast: {
|
|
94
|
+
...props,
|
|
95
|
+
id,
|
|
96
|
+
open: true,
|
|
97
|
+
onOpenChange: (open) => {
|
|
98
|
+
if (!open)
|
|
99
|
+
dismiss();
|
|
100
|
+
},
|
|
101
|
+
},
|
|
102
|
+
});
|
|
103
|
+
return {
|
|
104
|
+
id: id,
|
|
105
|
+
dismiss,
|
|
106
|
+
update,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
export function useToast() {
|
|
110
|
+
const [state, setState] = React.useState(memoryState);
|
|
111
|
+
React.useEffect(() => {
|
|
112
|
+
listeners.push(setState);
|
|
113
|
+
return () => {
|
|
114
|
+
const index = listeners.indexOf(setState);
|
|
115
|
+
if (index > -1) {
|
|
116
|
+
listeners.splice(index, 1);
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
}, [state]);
|
|
120
|
+
return {
|
|
121
|
+
...state,
|
|
122
|
+
toast,
|
|
123
|
+
dismiss: (toastId) => dispatch({ type: "DISMISS_TOAST", toastId }),
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=use-toast.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-toast.js","sourceRoot":"","sources":["../../src/hooks/use-toast.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @deprecated Import from ~/contexts/PerformanceContext instead
|
|
3
|
+
* This file is kept for backward compatibility
|
|
4
|
+
*/
|
|
5
|
+
export { usePerformance, usePerformanceMode, type PerformanceMode, type PerformanceConfig } from "../contexts/PerformanceContext";
|
|
6
|
+
//# sourceMappingURL=usePerformanceMode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePerformanceMode.d.ts","sourceRoot":"","sources":["../../src/hooks/usePerformanceMode.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,KAAK,eAAe,EAAE,KAAK,iBAAiB,EAAE,MAAM,gCAAgC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePerformanceMode.js","sourceRoot":"","sources":["../../src/hooks/usePerformanceMode.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAgD,MAAM,gCAAgC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWindowDimensions.d.ts","sourceRoot":"","sources":["../../src/hooks/useWindowDimensions.ts"],"names":[],"mappings":"AAEA,KAAK,gBAAgB,GAAG;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,QAAA,MAAM,mBAAmB,QAAO,gBAsB/B,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { useEffect, useState } from "react";
|
|
2
|
+
const useWindowDimensions = () => {
|
|
3
|
+
const [windowDimensions, setWindowDimensions] = useState({
|
|
4
|
+
width: typeof window !== "undefined" ? window.innerWidth : 1200,
|
|
5
|
+
height: typeof window !== "undefined" ? window.innerHeight : 800,
|
|
6
|
+
});
|
|
7
|
+
useEffect(() => {
|
|
8
|
+
function handleResize() {
|
|
9
|
+
setWindowDimensions({
|
|
10
|
+
width: window.innerWidth,
|
|
11
|
+
height: window.innerHeight,
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
// Set initial dimensions on mount
|
|
15
|
+
handleResize();
|
|
16
|
+
window.addEventListener("resize", handleResize);
|
|
17
|
+
return () => window.removeEventListener("resize", handleResize);
|
|
18
|
+
}, []); // Empty array ensures that effect is only run on mount
|
|
19
|
+
return windowDimensions;
|
|
20
|
+
};
|
|
21
|
+
export default useWindowDimensions;
|
|
22
|
+
//# sourceMappingURL=useWindowDimensions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWindowDimensions.js","sourceRoot":"","sources":["../../src/hooks/useWindowDimensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAO5C,MAAM,mBAAmB,GAAG,GAAqB,EAAE;IACjD,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAmB;QACzE,KAAK,EAAE,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI;QAC/D,MAAM,EAAE,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG;KACjE,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,SAAS,YAAY;YACnB,mBAAmB,CAAC;gBAClB,KAAK,EAAE,MAAM,CAAC,UAAU;gBACxB,MAAM,EAAE,MAAM,CAAC,WAAW;aAC3B,CAAC,CAAC;QACL,CAAC;QAED,kCAAkC;QAClC,YAAY,EAAE,CAAC;QAEf,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAChD,OAAO,GAAS,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACxE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,uDAAuD;IAE/D,OAAO,gBAAgB,CAAC;AAC1B,CAAC,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export { default as Canvas, gradientBgImage } from './components/canvas/canvas';
|
|
2
|
+
export { CanvasComponent } from './components/canvas/component';
|
|
3
|
+
export { Draggable, DraggableImage } from './components/canvas/draggable';
|
|
4
|
+
export { CanvasWrapper, growTransition } from './components/canvas/wrapper';
|
|
5
|
+
export { default as CanvasCursor } from './components/canvas/cursor';
|
|
6
|
+
export { default as CanvasToolbar } from './components/canvas/toolbar';
|
|
7
|
+
export { default as CanvasNavbar } from './components/canvas/navbar';
|
|
8
|
+
export { Button } from './components/ui/button';
|
|
9
|
+
export { Label } from './components/ui/label';
|
|
10
|
+
export { default as FolderIcon } from './components/ui/FolderIcon';
|
|
11
|
+
export { Toaster } from './components/ui/toaster';
|
|
12
|
+
export { Toast, ToastAction, ToastClose, ToastTitle, ToastDescription, ToastViewport } from './components/ui/toast';
|
|
13
|
+
export { CanvasContext, CanvasProvider, useCanvasContext } from './contexts/CanvasContext';
|
|
14
|
+
export type { CanvasContextState } from './contexts/CanvasContext';
|
|
15
|
+
export { PerformanceProvider, usePerformanceMode, usePerformance } from './contexts/PerformanceContext';
|
|
16
|
+
export type { PerformanceMode, PerformanceConfig } from './contexts/PerformanceContext';
|
|
17
|
+
export { default as useWindowDimensions } from './hooks/useWindowDimensions';
|
|
18
|
+
export { usePerformanceMode as usePerformanceModeLegacy } from './hooks/usePerformanceMode';
|
|
19
|
+
export { useToast, toast } from './hooks/use-toast';
|
|
20
|
+
export * from './lib/canvas';
|
|
21
|
+
export * from './lib/constants';
|
|
22
|
+
export * from './utils/performance';
|
|
23
|
+
export { copyText } from './lib/copy';
|
|
24
|
+
export type { SectionCoordinates } from './types';
|
|
25
|
+
export { CanvasSection } from './types';
|
|
26
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAGrE,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGpH,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC3F,YAAY,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACxG,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAGxF,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAE,kBAAkB,IAAI,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAC5F,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAGpD,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,YAAY,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// Components
|
|
2
|
+
export { default as Canvas, gradientBgImage } from './components/canvas/canvas';
|
|
3
|
+
export { CanvasComponent } from './components/canvas/component';
|
|
4
|
+
export { Draggable, DraggableImage } from './components/canvas/draggable';
|
|
5
|
+
export { CanvasWrapper, growTransition } from './components/canvas/wrapper';
|
|
6
|
+
export { default as CanvasCursor } from './components/canvas/cursor';
|
|
7
|
+
export { default as CanvasToolbar } from './components/canvas/toolbar';
|
|
8
|
+
export { default as CanvasNavbar } from './components/canvas/navbar';
|
|
9
|
+
// UI Components
|
|
10
|
+
export { Button } from './components/ui/button';
|
|
11
|
+
export { Label } from './components/ui/label';
|
|
12
|
+
export { default as FolderIcon } from './components/ui/FolderIcon';
|
|
13
|
+
export { Toaster } from './components/ui/toaster';
|
|
14
|
+
export { Toast, ToastAction, ToastClose, ToastTitle, ToastDescription, ToastViewport } from './components/ui/toast';
|
|
15
|
+
// Contexts
|
|
16
|
+
export { CanvasContext, CanvasProvider, useCanvasContext } from './contexts/CanvasContext';
|
|
17
|
+
export { PerformanceProvider, usePerformanceMode, usePerformance } from './contexts/PerformanceContext';
|
|
18
|
+
// Hooks
|
|
19
|
+
export { default as useWindowDimensions } from './hooks/useWindowDimensions';
|
|
20
|
+
export { usePerformanceMode as usePerformanceModeLegacy } from './hooks/usePerformanceMode';
|
|
21
|
+
export { useToast, toast } from './hooks/use-toast';
|
|
22
|
+
// Utilities
|
|
23
|
+
export * from './lib/canvas';
|
|
24
|
+
export * from './lib/constants';
|
|
25
|
+
export * from './utils/performance';
|
|
26
|
+
export { copyText } from './lib/copy';
|
|
27
|
+
export { CanvasSection } from './types';
|
|
28
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAErE,gBAAgB;AAChB,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEpH,WAAW;AACX,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE3F,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAGxG,QAAQ;AACR,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAE,kBAAkB,IAAI,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAC5F,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAEpD,YAAY;AACZ,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { type MotionValue, type Point } from "framer-motion";
|
|
2
|
+
import { ScreenSizeEnum } from "./constants";
|
|
3
|
+
export declare const canvasWidth = 6000;
|
|
4
|
+
export declare const canvasHeight = 4000;
|
|
5
|
+
export { ScreenSizeEnum } from "./constants";
|
|
6
|
+
export declare const useMemoPoint: (x: number, y: number) => Point;
|
|
7
|
+
export interface MinimalPointerInput {
|
|
8
|
+
clientX: number;
|
|
9
|
+
clientY: number;
|
|
10
|
+
}
|
|
11
|
+
export declare const getDistance: (p1: MinimalPointerInput, p2: MinimalPointerInput) => number;
|
|
12
|
+
export declare const getMidpoint: (p1: MinimalPointerInput, p2: MinimalPointerInput) => Point;
|
|
13
|
+
export declare const getScreenSizeEnum: (width: number) => ScreenSizeEnum;
|
|
14
|
+
export declare function getSectionPanCoordinates({ windowDimensions, coords, targetZoom, negative, }: {
|
|
15
|
+
windowDimensions: {
|
|
16
|
+
width: number;
|
|
17
|
+
height: number;
|
|
18
|
+
};
|
|
19
|
+
coords: {
|
|
20
|
+
x: number;
|
|
21
|
+
y: number;
|
|
22
|
+
width: number;
|
|
23
|
+
height: number;
|
|
24
|
+
};
|
|
25
|
+
targetZoom: number;
|
|
26
|
+
negative?: boolean;
|
|
27
|
+
}): {
|
|
28
|
+
x: number;
|
|
29
|
+
y: number;
|
|
30
|
+
};
|
|
31
|
+
export declare function panToOffsetScene(offset: Point, x: MotionValue<number>, y: MotionValue<number>, scale: MotionValue<number>, newZoom?: number): Promise<void>;
|
|
32
|
+
export declare const calcInitialBoxWidth: (windowWidth: number, windowHeight: number) => number;
|
|
33
|
+
export { MAX_DIM_RATIO } from "./constants";
|
|
34
|
+
export { INTERACTIVE_SELECTOR, ZOOM_BOUND, MAX_ZOOM, MIN_ZOOMS, } from "./constants";
|
|
35
|
+
//# sourceMappingURL=canvas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canvas.d.ts","sourceRoot":"","sources":["../../src/lib/canvas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,WAAW,EAAE,KAAK,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtE,OAAO,EAML,cAAc,EACf,MAAM,aAAa,CAAC;AAErB,eAAO,MAAM,WAAW,OAAe,CAAC;AACxC,eAAO,MAAM,YAAY,OAAgB,CAAC;AAG1C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,eAAO,MAAM,YAAY,GAAI,GAAG,MAAM,EAAE,GAAG,MAAM,KAAG,KAEnD,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,WAAW,GACtB,IAAI,mBAAmB,EACvB,IAAI,mBAAmB,WAKxB,CAAC;AAEF,eAAO,MAAM,WAAW,GACtB,IAAI,mBAAmB,EACvB,IAAI,mBAAmB,KACtB,KAKF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,OAAO,MAAM,KAAG,cASjD,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,EACvC,gBAAgB,EAChB,MAAM,EACN,UAAU,EACV,QAAQ,GACT,EAAE;IACD,gBAAgB,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;;;EAqBA;AAED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,KAAK,EACb,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,EACtB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,EACtB,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,EAC1B,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAKf;AAED,eAAO,MAAM,mBAAmB,GAC9B,aAAa,MAAM,EACnB,cAAc,MAAM,WAkBrB,CAAC;AAGF,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EACL,oBAAoB,EACpB,UAAU,EACV,QAAQ,EACR,SAAS,GACV,MAAM,aAAa,CAAC"}
|