diff --git a/index.d.ts b/index.d.ts new file mode 100644 index 0000000..6959425 --- /dev/null +++ b/index.d.ts @@ -0,0 +1,43 @@ +/// + +declare module 'react-input-trigger' { + interface Trigger { + keyCode?: number | null; + shiftKey?: boolean; + ctrlKey?: boolean; + metaKey?: boolean; + } + + type hookType = 'start' | 'cancel' | 'typing'; + + export interface Result { + hookType: hookType; + cursor: { + selectionStart: number; + selectionEnd: number; + top: number; + left: number; + height: number; + }; + text?: string; + } + + declare class InputTrigger extends React.Component {} + + declare namespace InputTrigger { + function handleTrigger( + event: React.KeyboardEvent + ): null; + + interface Props { + trigger?: Trigger; + onStart?(obj: Result): void; + onCancel?(obj: Result): void; + onType?(obj: Result): void; + endTrigger?(resetState: () => void): void; + elementRef?: HTMLTextAreaElement | HTMLInputElement | null; + } + } + + export default InputTrigger; +} diff --git a/package-lock.json b/package-lock.json index 2417518..d0a19c3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,6 +4,22 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@types/prop-types": { + "version": "15.5.8", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.5.8.tgz", + "integrity": "sha512-3AQoUxQcQtLHsK25wtTWIoIpgYjH3vSDroZOUr7PpCHw/jLY1RB9z9E8dBT/OSmwStVgkRNvdh+ZHNiomRieaw==", + "dev": true + }, + "@types/react": { + "version": "16.7.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.7.18.tgz", + "integrity": "sha512-Tx4uu3ppK53/iHk6VpamMP3f3ahfDLEVt3ZQc8TFm30a1H3v9lMsCntBREswZIW/SKrvJjkb3Hq8UwO6GREBng==", + "dev": true, + "requires": { + "@types/prop-types": "15.5.8", + "csstype": "2.6.0" + } + }, "accepts": { "version": "1.3.5", "resolved": "http://repo.internal.cleartax.co:4873/accepts/-/accepts-1.3.5.tgz", @@ -1999,6 +2015,12 @@ "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=", "dev": true }, + "csstype": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.0.tgz", + "integrity": "sha512-by8hi8BlLbowQq0qtkx54d9aN73R9oUW20HISpka5kmgsR9F7nnxgfsemuR2sdCKZh+CDNf5egW9UZMm4mgJRg==", + "dev": true + }, "currently-unhandled": { "version": "0.4.1", "resolved": "http://repo.internal.cleartax.co:4873/currently-unhandled/-/currently-unhandled-0.4.1.tgz", diff --git a/package.json b/package.json index 2f16f90..9353a24 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,7 @@ "version": "1.1.2", "main": "build/lib/react-input-trigger.js", "module": "build/es/react-input-trigger.js", + "types": "index.d.ts", "repository": "git@github.com:abinavseelan/react-input-trigger.git", "author": "Abinav Seelan ", "license": "MIT", @@ -29,6 +30,7 @@ "success" ], "devDependencies": { + "@types/react": "^16.7.18", "babel-cli": "^6.26.0", "babel-core": "^6.26.0", "babel-loader": "^7.1.3",