diff --git a/.changeset/fuzzy-waves-talk.md b/.changeset/fuzzy-waves-talk.md new file mode 100644 index 0000000..30533f5 --- /dev/null +++ b/.changeset/fuzzy-waves-talk.md @@ -0,0 +1,5 @@ +--- +'@warkypublic/oranguru': patch +--- + +Fixed types diff --git a/global.d.ts b/global.d.ts new file mode 100644 index 0000000..6ba7f59 --- /dev/null +++ b/global.d.ts @@ -0,0 +1,47 @@ +declare module "*.module.css" +declare module '*.png' { + const value: string + export default value +} +declare module '*.jpg' { + const value: string + export default value +} +declare module '*.jpeg' { + const value: string + export default value +} +declare module '*.gif' { + const value: string + export default value +} +declare module '*.svg' { + const value: string + export default value +} +declare module '*.ico' { + const value: string + export default value +} +declare module '*.webp' { + const value: string + export default value +} +declare module '*.bmp' { + const value: string + export default value +} +declare module '*.tiff' { + const value: string + export default value +} +declare module '*.cur' { + const value: string + export default value +} + +// Add URL query suffix declarations +declare module '*?url' { +const value: string +export default value +} diff --git a/package.json b/package.json index f6c7849..6200bbe 100644 --- a/package.json +++ b/package.json @@ -37,14 +37,16 @@ "types": "./dist/lib.d.ts", "default": "./dist/lib.cjs.js" }, - "./package.json": "./package.json" + "./package.json": "./package.json", + "./oranguru.css": "./oranguru.css" } }, "exports": { ".": { "types": "./src/lib.ts", "default": "./src/lib.ts" - } + }, + "./oranguru.css": "./oranguru.css" }, "dependencies": { "@glideapps/glide-data-grid": "^6.0.3", diff --git a/src/MantineBetterMenu/MantineBetterMenu.d.ts b/src/MantineBetterMenu/MantineBetterMenu.d.ts deleted file mode 100644 index 32a9ffa..0000000 --- a/src/MantineBetterMenu/MantineBetterMenu.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { type MenuStoreProps } from './Store'; -export declare function MantineBetterMenusProvider(props: React.PropsWithChildren): import("react/jsx-runtime").JSX.Element; diff --git a/src/MantineBetterMenu/MenuRenderer.d.ts b/src/MantineBetterMenu/MenuRenderer.d.ts deleted file mode 100644 index 7a409db..0000000 --- a/src/MantineBetterMenu/MenuRenderer.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare function MenuRenderer(): import("react/jsx-runtime").JSX.Element; diff --git a/src/MantineBetterMenu/Store.d.ts b/src/MantineBetterMenu/Store.d.ts deleted file mode 100644 index 4e9d3d4..0000000 --- a/src/MantineBetterMenu/Store.d.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { type MenuItemProps, type MenuProps } from '@mantine/core'; -import { type ReactNode } from 'react'; -export interface MantineBetterMenuInstance { - id: string; - items?: Array; - menuProps?: MenuProps; - renderer?: ReactNode; - visible: boolean; - x: number; - y: number; -} -export interface MantineBetterMenuInstanceItem extends Partial { - isDivider?: boolean; - label?: string; - onClick?: (e?: React.MouseEvent) => void; - onClickAsync?: () => Promise; - renderer?: ((props: MantineBetterMenuInstanceItem & Record) => ReactNode) | ReactNode; -} -export interface MenuStoreProps { - providerID?: string; -} -export type MenuStoreState = MenuStoreProps & MenuStoreStateOnly; -export interface MenuStoreStateOnly { - hide: (id: string) => void; - menus: Array; - setInstanceState: (instanceID: string, key: K, value: MantineBetterMenuInstance[K]) => void; - setState: (key: K, value: Partial) => void; - show: (id: string, options?: Partial) => void; -} -declare const MantineBetterMenusStoreProvider: (props: { - children: ReactNode; -} & { - firstSyncProps?: string[]; - persist?: import("zustand/middleware").PersistOptions, Partial, unknown> | undefined; -} & MenuStoreProps) => React.ReactNode, useMantineBetterMenus: { - (): { - $sync?: ((props: MenuStoreProps) => void) | undefined; - } & MenuStoreProps & MenuStoreStateOnly; - (selector: (state: { - $sync?: ((props: MenuStoreProps) => void) | undefined; - } & MenuStoreProps & MenuStoreStateOnly) => U, equalityFn?: ((a: U, b: U) => boolean) | undefined): U; -}; -export { MantineBetterMenusStoreProvider, useMantineBetterMenus }; diff --git a/src/MantineBetterMenu/index.d.ts b/src/MantineBetterMenu/index.d.ts deleted file mode 100644 index 79b61c9..0000000 --- a/src/MantineBetterMenu/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export { MantineBetterMenusProvider } from './MantineBetterMenu'; -export { useMantineBetterMenus } from './Store'; -export type { MantineBetterMenuInstance, MantineBetterMenuInstanceItem, MenuStoreState } from './Store'; diff --git a/src/lib.d.ts b/src/lib.d.ts deleted file mode 100644 index fce9cc8..0000000 --- a/src/lib.d.ts +++ /dev/null @@ -1 +0,0 @@ -export { type MantineBetterMenuInstance, type MantineBetterMenuInstanceItem, MantineBetterMenusProvider, type MenuStoreState, useMantineBetterMenus, } from "./MantineBetterMenu"; diff --git a/tsconfig.app.json b/tsconfig.app.json index aa4ae9e..e82940f 100644 --- a/tsconfig.app.json +++ b/tsconfig.app.json @@ -1,18 +1,23 @@ { "compilerOptions": { "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", - "target": "ES2022", + "target": "es6", "useDefineForClassFields": true, + "types": [ + "./global.d.ts" + ], "lib": [ - "ES2022", + "ES2016", + "ESNext", "DOM", "DOM.Iterable" ], "module": "ESNext", "skipLibCheck": true, /* Bundler mode */ - "moduleResolution": "bundler", + "moduleResolution": "Node", "allowImportingTsExtensions": true, + "resolveJsonModule": true, "verbatimModuleSyntax": true, "moduleDetection": "force", "noEmit": true, @@ -22,12 +27,15 @@ /* Linting */ "strict": true, "noUnusedLocals": true, + "allowSyntheticDefaultImports": true, "noUnusedParameters": true, "erasableSyntaxOnly": true, "noFallthroughCasesInSwitch": true, "noUncheckedSideEffectImports": true }, "include": [ - "src" + "src", + "lib.ts", + "*.d.ts", ] } \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index 65f670c..3996992 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,5 +1,14 @@ { "files": [], + "exclude": [ + "public", + "dist", + "./dist", + "*.config.ts", + "node_modules", + "./.storybook", + "vite.config.ts" + ], "references": [ { "path": "./tsconfig.app.json" diff --git a/tsconfig.node.json b/tsconfig.node.json index f85a399..8819349 100644 --- a/tsconfig.node.json +++ b/tsconfig.node.json @@ -2,17 +2,17 @@ "compilerOptions": { "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", "target": "ES2023", - "lib": ["ES2023"], + "lib": [ + "ES2023" + ], "module": "ESNext", "skipLibCheck": true, - /* Bundler mode */ "moduleResolution": "bundler", "allowImportingTsExtensions": true, "verbatimModuleSyntax": true, "moduleDetection": "force", "noEmit": true, - /* Linting */ "strict": true, "noUnusedLocals": true, @@ -21,5 +21,7 @@ "noFallthroughCasesInSwitch": true, "noUncheckedSideEffectImports": true }, - "include": ["vite.config.ts"] -} + "include": [ + "vite.config.ts" + ] +} \ No newline at end of file diff --git a/vite.config.ts b/vite.config.ts index 497abc7..a354046 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,36 +1,45 @@ -import { defineConfig } from "vite"; -import { dirname } from "node:path"; -import * as path from "path"; -import { fileURLToPath } from "node:url"; -import react from "@vitejs/plugin-react-swc"; -import { peerDependencies } from "./package.json"; -import dts from "vite-plugin-dts"; +import { defineConfig } from 'vite'; +import { dirname } from 'node:path'; +import * as path from 'path'; +import { fileURLToPath } from 'node:url'; +import react from '@vitejs/plugin-react-swc'; +import { peerDependencies } from './package.json'; +import dts from 'vite-plugin-dts'; const __dirname = dirname(fileURLToPath(import.meta.url)); // https://vite.dev/config/ export default defineConfig({ plugins: [ - + react(), dts({ - outDir: "dist", - entryRoot: "src", + outDir: 'dist', + entryRoot: 'src', staticImport: true, + copyDtsFiles: true, + rollupTypes: true, + tsconfigPath: './tsconfig.app.json', + compilerOptions: { + noEmit: false, + emitDeclarationOnly: true, + }, }), - react(), + ], - + publicDir: 'public', build: { + minify: true, sourcemap: true, + assetsDir: 'assets', lib: { - entry: path.resolve(__dirname, "src/lib.ts"), - name: "lib", - formats: ["es", "cjs"], + entry: path.resolve(__dirname, 'src/lib.ts'), + name: 'lib', + formats: ['es', 'cjs'], fileName: (format) => `lib.${format}.js`, }, emptyOutDir: true, - outDir: "dist", - + outDir: 'dist', + rollupOptions: { external: Object.keys(peerDependencies), },