@vctrl/hooks 0.0.9-3 → 0.0.9

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.
Files changed (41) hide show
  1. package/.babelrc +12 -0
  2. package/.eslintrc.json +18 -0
  3. package/LICENSE +0 -0
  4. package/README.md +209 -0
  5. package/package.json +1 -1
  6. package/project.json +16 -0
  7. package/src/use-load-model/event-system.ts +29 -0
  8. package/src/use-load-model/file-type-hooks/use-load-binary.ts +74 -0
  9. package/src/use-load-model/file-type-hooks/use-load-gltf.ts +115 -0
  10. package/src/use-load-model/loaders/create-gltf-loader.ts +20 -0
  11. package/{use-load-model/loaders/create-usdz-loader.d.ts → src/use-load-model/loaders/create-usdz-loader.ts} +7 -1
  12. package/src/use-load-model/model-context.tsx +18 -0
  13. package/src/use-load-model/state.ts +33 -0
  14. package/src/use-load-model/types.ts +53 -0
  15. package/src/use-load-model/use-load-model.ts +111 -0
  16. package/src/use-load-model/utils/array-buffer-to-base64.ts +20 -0
  17. package/src/use-load-model/utils/read-directory.ts +31 -0
  18. package/tsconfig.json +21 -0
  19. package/tsconfig.lib.json +25 -0
  20. package/vite.config.ts +59 -0
  21. package/index.cjs.js +0 -1
  22. package/index.es.js +0 -8
  23. package/model-context-ClI5AGc8.js +0 -19136
  24. package/model-context-mPTTbSMx.cjs +0 -3849
  25. package/use-load-model/event-system.d.ts +0 -7
  26. package/use-load-model/file-type-hooks/use-load-binary.d.ts +0 -11
  27. package/use-load-model/file-type-hooks/use-load-gltf.d.ts +0 -5
  28. package/use-load-model/loaders/create-gltf-loader.d.ts +0 -3
  29. package/use-load-model/model-context.d.ts +0 -20
  30. package/use-load-model/state.d.ts +0 -11
  31. package/use-load-model/types.d.ts +0 -48
  32. package/use-load-model/use-load-model.d.ts +0 -11
  33. package/use-load-model/utils/array-buffer-to-base64.d.ts +0 -2
  34. package/use-load-model/utils/read-directory.d.ts +0 -8
  35. package/use-load-model.cjs.js +0 -1
  36. package/use-load-model.es.js +0 -8
  37. /package/{index.d.ts → src/index.ts} +0 -0
  38. /package/{use-load-model/file-type-hooks/index.d.ts → src/use-load-model/file-type-hooks/index.ts} +0 -0
  39. /package/{use-load-model/index.d.ts → src/use-load-model/index.ts} +0 -0
  40. /package/{use-load-model/loaders/index.d.ts → src/use-load-model/loaders/index.ts} +0 -0
  41. /package/{use-load-model/utils/index.d.ts → src/use-load-model/utils/index.ts} +0 -0
@@ -1,7 +0,0 @@
1
- import { EventData, EventHandler, EventTypes } from './types';
2
- declare const eventSystem: {
3
- emit<T extends EventTypes>(event: T, data: EventData[T]): void;
4
- on<T extends EventTypes>(event: T, handler: EventHandler<T>): void;
5
- off<T extends EventTypes>(event: T, handler: EventHandler<T>): void;
6
- };
7
- export default eventSystem;
@@ -1,11 +0,0 @@
1
- import { Action, ModelFileTypes } from '../types';
2
- /**
3
- * Hook to load binary files
4
- *
5
- * @param dispatch - The dispatch function from the useReducer hook
6
- * @returns An object containing the loadBinary function
7
- */
8
- declare function useLoadBinary(dispatch: React.Dispatch<Action>): {
9
- loadBinary: (file: File, fileType: ModelFileTypes, onProgress: () => void) => void;
10
- };
11
- export default useLoadBinary;
@@ -1,5 +0,0 @@
1
- import { Action } from '../types';
2
- declare function useLoadGltf(dispatch: React.Dispatch<Action>): {
3
- loadGltf: (gltfFile: File, otherFiles: File[], onProgress: (progress: number) => void) => void;
4
- };
5
- export default useLoadGltf;
@@ -1,3 +0,0 @@
1
- import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader';
2
- declare function createGltfLoader(): GLTFLoader;
3
- export default createGltfLoader;
@@ -1,20 +0,0 @@
1
- declare const ModelContext: import('react').Context<{
2
- on: <T extends import('./types').EventTypes>(event: T, handler: import('./types').EventHandler<T>) => void;
3
- off: <T extends import('./types').EventTypes>(event: T, handler: import('./types').EventHandler<T>) => void;
4
- handleFileUpload: (filesOrDirectories: import('./types').InputFileOrDirectory) => Promise<void>;
5
- file: import('./types').ModelFile | null;
6
- isFileLoading: boolean;
7
- progress: number;
8
- supportedFileTypes: import('./types').ModelFileTypes[];
9
- }>;
10
- declare const ModelProvider: ({ children }: React.PropsWithChildren) => import("react/jsx-runtime").JSX.Element;
11
- declare const useModelContext: () => {
12
- on: <T extends import('./types').EventTypes>(event: T, handler: import('./types').EventHandler<T>) => void;
13
- off: <T extends import('./types').EventTypes>(event: T, handler: import('./types').EventHandler<T>) => void;
14
- handleFileUpload: (filesOrDirectories: import('./types').InputFileOrDirectory) => Promise<void>;
15
- file: import('./types').ModelFile | null;
16
- isFileLoading: boolean;
17
- progress: number;
18
- supportedFileTypes: import('./types').ModelFileTypes[];
19
- };
20
- export { ModelContext, ModelProvider, useModelContext };
@@ -1,11 +0,0 @@
1
- import { Action, State } from './types';
2
- export declare const initialState: State;
3
- /**
4
- * Reducer function for the useReadModelFiles hook
5
- *
6
- * @param state - The current state of the reducer
7
- * @param action - The action to be performed
8
- * @returns The updated state
9
- */
10
- declare function reducer(state: State, action: Action): State;
11
- export default reducer;
@@ -1,48 +0,0 @@
1
- import { Object3D } from 'three';
2
- export declare enum ModelFileTypes {
3
- gltf = "gltf",
4
- glb = "glb",
5
- usdz = "usdz"
6
- }
7
- export type InputFileOrDirectory = (File | FileSystemDirectoryHandle)[];
8
- export interface ReducedGltf {
9
- images: {
10
- name: string;
11
- uri: string;
12
- }[];
13
- buffers: {
14
- bytelength: string;
15
- uri: string;
16
- }[];
17
- }
18
- export interface ModelFile {
19
- model: Object3D;
20
- type: ModelFileTypes;
21
- name: string;
22
- }
23
- export interface State {
24
- file: ModelFile | null;
25
- isFileLoading: boolean;
26
- progress: number;
27
- supportedFileTypes: ModelFileTypes[];
28
- }
29
- export type Action = {
30
- type: 'SET_FILE';
31
- payload: ModelFile;
32
- } | {
33
- type: 'SET_FILE_LOADING';
34
- payload: boolean;
35
- } | {
36
- type: 'SET_PROGRESS';
37
- payload: number;
38
- } | {
39
- type: 'RESET_STATE';
40
- };
41
- export type EventTypes = 'MULTIPLE_3D_MODELS' | 'UNSUPPORTED_FILE_TYPE' | 'UPLOAD_PROGRESS' | 'UPLOAD_COMPLETE';
42
- export type EventData = {
43
- MULTIPLE_3D_MODELS: File[];
44
- UNSUPPORTED_FILE_TYPE: File[];
45
- UPLOAD_PROGRESS: number;
46
- UPLOAD_COMPLETE: State['file'];
47
- };
48
- export type EventHandler<T extends EventTypes> = (data: EventData[T]) => void;
@@ -1,11 +0,0 @@
1
- import { ModelFileTypes, InputFileOrDirectory } from './types';
2
- declare function useLoadModel(): {
3
- on: <T extends import('./types').EventTypes>(event: T, handler: import('./types').EventHandler<T>) => void;
4
- off: <T extends import('./types').EventTypes>(event: T, handler: import('./types').EventHandler<T>) => void;
5
- handleFileUpload: (filesOrDirectories: InputFileOrDirectory) => Promise<void>;
6
- file: import('./types').ModelFile | null;
7
- isFileLoading: boolean;
8
- progress: number;
9
- supportedFileTypes: ModelFileTypes[];
10
- };
11
- export default useLoadModel;
@@ -1,2 +0,0 @@
1
- declare function arrayBufferToBase64(arrayBuffer: ArrayBuffer): Promise<unknown>;
2
- export default arrayBufferToBase64;
@@ -1,8 +0,0 @@
1
- /**
2
- * Recursively reads a directory
3
- *
4
- * @param directoryHandle - The directory handle to read
5
- * @returns - An array of file objects
6
- */
7
- declare function readDirectory(directoryHandle: FileSystemDirectoryHandle): Promise<File[]>;
8
- export default readDirectory;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./model-context-mPTTbSMx.cjs");exports.ModelContext=e.ModelContext;exports.ModelFileTypes=e.ModelFileTypes;exports.ModelProvider=e.ModelProvider;exports.useLoadModel=e.useLoadModel;exports.useModelContext=e.useModelContext;
@@ -1,8 +0,0 @@
1
- import { a as s, M as a, b as d, u as l, c as M } from "./model-context-ClI5AGc8.js";
2
- export {
3
- s as ModelContext,
4
- a as ModelFileTypes,
5
- d as ModelProvider,
6
- l as useLoadModel,
7
- M as useModelContext
8
- };
File without changes