{"_id":"@alteryx/mini-tate","_rev":"12-d3b35ea1a9dcd3ae6467b40c3b5ac203","name":"@alteryx/mini-tate","dist-tags":{"latest":"2.0.1"},"versions":{"1.0.0":{"name":"@alteryx/mini-tate","version":"1.0.0","author":{"name":"alter-noodle"},"license":"BSD-3-Clause","_id":"@alteryx/mini-tate@1.0.0","maintainers":[{"name":"alter-noodle","email":"natalie.lane@alteryx.com"},{"name":"cauld","email":"chadauld@gmail.com"},{"name":"tlinnen","email":"tristan.linnen@alteryx.com"},{"name":"noc-alteryx","email":"noc@alteryx.com"},{"name":"walker.smith","email":"wsmith@alteryx.com"},{"name":"alteryx_it","email":"it_support@alteryx.com"},{"name":"ggrosnick","email":"garyg+npmjs@grosnick.com"},{"name":"williammalone","email":"w@williammalone.com"},{"name":"ayx-sdk-ci","email":"cloudteam+npm-ayxsdk-ci@alteryx.com"},{"name":"bryrod","email":"brodr255@gmail.com"},{"name":"jpquinn","email":"jordan.quinn@alteryx.com"},{"name":"john.fisher","email":"john.fisher@alteryx.com"},{"name":"jeffscarborough","email":"Jeff.scarborough@alteryx.com"}],"dist":{"shasum":"0d0f0830da3c542390fb7d66789775003bf3928c","tarball":"https://registry.npmjs.org/@alteryx/mini-tate/-/mini-tate-1.0.0.tgz","fileCount":55,"integrity":"sha512-c2GJu2rvsMQjvqzhR9pPO3H+rRiomtEj6cCPd26fQUHI92deFoTgkQNmXIw9dMRFPJtya2fCK3b8qGb366G5Xw==","signatures":[{"sig":"MEUCIHlZrg5qV5QqRjckjZmkTLFd1/Q8gCIr/hZOHtzkwxmYAiEAnXmPj7fYhRA7X4DZjY8FAAVh6sH4DmCUqJZaGrt/ULw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":125985,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi2YZgACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqCZA/9EtLsNCYS1sduJTfAFJv67UF4l/Z+BZtSJYjL77NQKdugUys3\r\nx+MVrPVicEF9aYD4+CuqW3vb5jA/G970tqb/BqQM/bECZNmMWLWcTxVaSfUz\r\nhziBvsrmsL1qj75YKrKtz1Yyqo07aaOKiIy1vtNdDlu8Q/FZZx9fq/y8JSlh\r\nDuKr4hfqK8Gdxeo5fkNbwM0Um7lHLwZs3mun2/mX91dC7r+9obL3MDxuhuAW\r\nf9B23J9CEuuZ78uMfp2bmijBBOyoN3iRya1mF13B7kCzLPe6thDLhTpxq4EB\r\n+JMMA4eM3/QAkpoyEwWog1at8SEs9OMDStX20RDFPorHxJgHV9rsi7IcQaAP\r\nrNSOvKvvn2VaPzKUfWK9+eiUjYVM0w43aeXDCz+ArdDVYdw6jZyc7u3grT6d\r\n1gn9YVSr4mCH2qgFahe9JQ1qziE73Zs31c6Z8Aj3tZfoDBbHVakvWjOpT/6F\r\nLB+zjujO07Xf5UeKGZRYA2EC5edaeKKbEMkTMdH7UbTVt2QhZ948GgHG+EZ8\r\nP8eMGoVvOAyE1a5NanjRd28h6Bs3ZJE59UUf3lO3MwLNpPUGfNOQD3k3t/JG\r\nr+h4zjTp/nInPHL8/oc6wUF7fNVmcsLfNTfLTtdgQuE8pK13OcUfq9fjFESI\r\ngrN3zxJKXMze0vD08s+TNHX/iiIWWKobHpQ=\r\n=lpY8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","gitHead":"2048f4b12ac99b01990dc662e20945063d7e1505","scripts":{"lint":"eslint --ext ts,tsx src/*","test":"jest","build":"tsc && cp src/*/*.css dist/components"},"_npmUser":{"name":"alter-noodle","email":"natalie.lane@alteryx.com"},"_npmVersion":"8.11.0","description":"A small React library that provides annotation utilities for marking images.","directories":{},"sideEffects":["*.css"],"_nodeVersion":"18.3.0","dependencies":{"@alteryx/ui":"^1.4.5","react-redux":"^8.0.1","@alteryx/icons":"^1.2.1","@reduxjs/toolkit":"^1.8.1","@types/react-redux":"^7.1.24"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","react":"^16.13.1","eslint":"^8.11.0","ts-jest":"^26.5.6","jest-cli":"^26.6.3","prettier":"^2.5.1","react-dom":"^16.13.1","babel-jest":"^26.6.3","react-intl":"^5.8.1","typescript":"^4.6.2","@babel/preset-env":"^7.16.11","@babel/preset-react":"^7.16.7","@testing-library/react":"^12.1.3","@testing-library/jest-dom":"^5.16.2","@typescript-eslint/parser":"^5.15.0","@testing-library/user-event":"^13.5.0","@babel/plugin-transform-runtime":"^7.16.8","@typescript-eslint/eslint-plugin":"^5.15.0","@babel/plugin-syntax-dynamic-import":"^7.8.3"},"peerDependencies":{"react":"^16.13.1","react-dom":"^16.13.1"},"_npmOperationalInternal":{"tmp":"tmp/mini-tate_1.0.0_1658422879848_0.09975900337131605","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"@alteryx/mini-tate","version":"2.0.0","author":{"name":"alter-noodle"},"license":"BSD-3-Clause","_id":"@alteryx/mini-tate@2.0.0","maintainers":[{"name":"alter-noodle","email":"natalie.lane@alteryx.com"},{"name":"cauld","email":"chadauld@gmail.com"},{"name":"tlinnen","email":"tristan.linnen@alteryx.com"},{"name":"noc-alteryx","email":"noc@alteryx.com"},{"name":"walker.smith","email":"wsmith@alteryx.com"},{"name":"alteryx_it","email":"it_support@alteryx.com"},{"name":"ggrosnick","email":"garyg+npmjs@grosnick.com"},{"name":"williammalone","email":"w@williammalone.com"},{"name":"ayx-sdk-ci","email":"cloudteam+npm-ayxsdk-ci@alteryx.com"},{"name":"bryrod","email":"brodr255@gmail.com"},{"name":"jpquinn","email":"jordan.quinn@alteryx.com"},{"name":"john.fisher","email":"john.fisher@alteryx.com"},{"name":"jeffscarborough","email":"Jeff.scarborough@alteryx.com"}],"dist":{"shasum":"b28ac294edd1880a4bcb0e683f048bb139dc2173","tarball":"https://registry.npmjs.org/@alteryx/mini-tate/-/mini-tate-2.0.0.tgz","fileCount":58,"integrity":"sha512-sv0PMp2kSF6JcjgAl+YxTccA3kT1rAJRikt59OcF55DLZ85HdDLlDBN0dfdl1GRZDOEQEwlQcD1K+G+IbBlKsA==","signatures":[{"sig":"MEYCIQCuCTEGXxkeAJBPxuGHY8Ht8666rVDLv5nTHrBNSknAmwIhAKa1W+euak8znkFt6AjaelLdGQz8En0wUBHqrdXDCKqT","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":140913,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkB7DxACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqH1g/7Bp3cmO8FmD1XE8AgYzGDz1um575UnHREgNJbHae3mKODjF0v\r\nmSrNaxJEVvRPyAt1U324qlMs0bHls/rA5cI6PkOkJH2SG4HXzWjnGOlqfKDj\r\n9mFraeCCI0rhUm0WLKF7gtb0CG48r9NlwpJrDVeX+Dsqre0t5zjlesucqIUO\r\n+GBvAoy4W0prRwDxVIgq6TVzfPTHlPfgPQEZeS1hqdyyXc5ta28M+wAI2dlX\r\nE5d8smF8qKmojIiykMpJZs3aosJUAMIT6M2k+TjG5ewgIAR2+kahKMEWMbNW\r\n4ELosLhPdMRVYkBiV1b3cqdvgNkryr7SJjF2VjC8kRf/Z9HhQgKUsr4AdE4L\r\nTPoUob0kXPQetwK3JN3iTYxxUV5K1ayszVtVsAiXX5CfMoit6vvwFkzcSmGO\r\nQg2k4x6LxgdxyIHM1/+6bDyQOBM1aagBnnauQZ4uN4b3L8ZTxowkGsU+Zkb9\r\nxxFXiaQSGvjA7P0W1sqXhKl8iBK5+xkjzNFeKsGcTEiAXf7ISViRRqSqkm7n\r\npKDA2g3BK/FEHJ2DfqADYzVPtGjyOqL3MvJQ9WYUgDzOWCi+23s1fJi5jV9O\r\nfGlUZQzHTDJ1ZwRoeeDYi3zC+TQnUHtT8nKv4JUDFTAuwWnNcGq1i5ydzr9z\r\nQXsNT71f+7quoDnGCWjFBXJLfZazWJrC0SA=\r\n=PU2E\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","gitHead":"dde63bef7f7785ce4c662407d318b7feee1111ac","scripts":{"lint":"eslint --ext ts,tsx src/*","test":"jest --env=jsdom","build":"tsc && cp src/*/*.css dist/components"},"_npmUser":{"name":"alter-noodle","email":"natalie.lane@alteryx.com"},"_npmVersion":"9.5.0","description":"A small React library that provides annotation utilities for marking images.","directories":{},"sideEffects":["*.css"],"_nodeVersion":"18.14.2","dependencies":{"lodash":"^4.17.21","core-js":"^3.29.0","react-redux":"^8.0.1","@mui/material":"^5.11.11","@emotion/react":"^11.10.6","@emotion/styled":"^11.10.6","@reduxjs/toolkit":"^1.8.1","@types/react-redux":"^7.1.24","@mui/icons-material":"^5.11.11"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.4.3","react":"^18.2.0","eslint":"^8.11.0","ts-jest":"^29.0.5","jest-cli":"^29.4.3","prettier":"^2.5.1","react-dom":"^18.2.0","babel-jest":"^29.4.3","react-intl":"^6.2.10","typescript":"^4.6.2","@babel/preset-env":"^7.16.11","@babel/preset-react":"^7.16.7","@testing-library/react":"^14.0.0","jest-environment-jsdom":"^29.4.3","@testing-library/jest-dom":"^5.16.2","@typescript-eslint/parser":"^5.15.0","@testing-library/user-event":"^14.4.3","@babel/plugin-transform-runtime":"^7.16.8","@typescript-eslint/eslint-plugin":"^5.15.0","@babel/plugin-syntax-dynamic-import":"^7.8.3"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mini-tate_2.0.0_1678225648831_0.30475896850814355","host":"s3://npm-registry-packages"}},"2.0.1":{"name":"@alteryx/mini-tate","version":"2.0.1","author":{"name":"alter-noodle"},"license":"BSD-3-Clause","_id":"@alteryx/mini-tate@2.0.1","maintainers":[{"name":"alter-noodle","email":"natalie.lane@alteryx.com"},{"name":"cauld","email":"chadauld@gmail.com"},{"name":"tlinnen","email":"tristan.linnen@alteryx.com"},{"name":"noc-alteryx","email":"noc@alteryx.com"},{"name":"walker.smith","email":"wsmith@alteryx.com"},{"name":"alteryx_it","email":"it_support@alteryx.com"},{"name":"ggrosnick","email":"garyg+npmjs@grosnick.com"},{"name":"williammalone","email":"w@williammalone.com"},{"name":"ayx-sdk-ci","email":"cloudteam+npm-ayxsdk-ci@alteryx.com"},{"name":"bryrod","email":"brodr255@gmail.com"},{"name":"jpquinn","email":"jordan.quinn@alteryx.com"},{"name":"john.fisher","email":"john.fisher@alteryx.com"},{"name":"jeffscarborough","email":"Jeff.scarborough@alteryx.com"}],"dist":{"shasum":"b4f0b50e6db10286a6ad9d05d8f2d9ee53179087","tarball":"https://registry.npmjs.org/@alteryx/mini-tate/-/mini-tate-2.0.1.tgz","fileCount":58,"integrity":"sha512-+p4pzS+Bo16QPUAfpM2FbZTci3E4eBbBLcf+kRpHKwcWcGHMc+cH7WuHGnC9oypD2rnYuimBbSbHSJ0CSbbRFQ==","signatures":[{"sig":"MEUCIQCENm5EXdxyryy9JLXz6aYWcSrdY+u/v8n7PeImN2M1ggIgGm3oq/zyLIK7e0ZPGmZjpKYGWRzW4mYL1YtedZ0O984=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":140913,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkNAuLACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpiwA/8CIQu+TMfSw6SUmxKGOL61IcT3cvlgtaiM35KWARFYVPStdcD\r\nr1yfLDM3W6+PKAPwfuhkv67lDGppq/E3MRF/XG8HEBltMaZkxgODzkzBrlEt\r\nhWoc6WW5kHQOUsTybrYh4gdGBR0wnYnoCXUoSYOWzNES4X2w31O7hgrAmx5+\r\n+k1TgyXiRVV9yFpG2NrLv9Oy3ieT8No87/z5nlAqvh44b/YTFSurah9eEty5\r\nrjBoGCpvQ4MaVlaU22yAx90eoUszlMROUDt4sVUG3BH0bKifG64jhMt3AGm5\r\n72lKLBDCoRb1XH8rfhGFRM2rCvbM7nPfz7qeTuHgMFGet2V9ZNwGztwAMzA4\r\n7euEJW0EpMgJ80RIttT6B2OM2zQVXDVFczkMCDiSY6E42Wq0lZzCmUr36Ldd\r\nK2TOQEHUOG9e7VZ08PJkM+rIE0lBAOxZ+95YNoKC1BbF87WHfEe4XreDzPtX\r\nDa5ZV+TKtDlcvKla+NIaWt9f/YMRURo2BGnwYqtAik8JsBHNOAwAU2xOiHNy\r\nhBXHqfFgGT3uhi3e90qnZtzn/sQUdcWvisanMeIZfuUggT8Xlq/uuBZ7AI1S\r\nhPMD197d2MvZpCcVl2g/CG+XBI+mMlkcsZVY+owVNe7mc+X7qhDMZJcT9DCz\r\nuScgYbl3F/G/qt5d/+U3JEYvSbI4qi/GeG0=\r\n=z+Oj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","gitHead":"e2e44d3a33feb054f500c4bbea247653943ccd68","scripts":{"lint":"eslint --ext ts,tsx src/*","test":"jest --env=jsdom","build":"tsc && cp src/*/*.css dist/components"},"_npmUser":{"name":"alter-noodle","email":"natalie.lane@alteryx.com"},"_npmVersion":"9.5.0","description":"A small React library that provides annotation utilities for marking images.","directories":{},"sideEffects":["*.css"],"_nodeVersion":"18.14.2","dependencies":{"lodash":"^4.17.21","core-js":"^3.29.0","react-redux":"^8.0.1","@mui/material":"^5.11.11","@emotion/react":"^11.10.6","@emotion/styled":"^11.10.6","@reduxjs/toolkit":"^1.8.1","@types/react-redux":"^7.1.24","@mui/icons-material":"^5.11.11"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.4.3","react":"^18.2.0","eslint":"^8.11.0","ts-jest":"^29.0.5","jest-cli":"^29.4.3","prettier":"^2.5.1","react-dom":"^18.2.0","babel-jest":"^29.4.3","react-intl":"^6.2.10","typescript":"^4.6.2","@babel/preset-env":"^7.16.11","@babel/preset-react":"^7.16.7","@testing-library/react":"^14.0.0","jest-environment-jsdom":"^29.4.3","@testing-library/jest-dom":"^5.16.2","@typescript-eslint/parser":"^5.15.0","@testing-library/user-event":"^14.4.3","@babel/plugin-transform-runtime":"^7.16.8","@typescript-eslint/eslint-plugin":"^5.15.0","@babel/plugin-syntax-dynamic-import":"^7.8.3"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mini-tate_2.0.1_1681132427268_0.3874802484622064","host":"s3://npm-registry-packages"}}},"time":{"created":"2022-07-21T17:01:19.800Z","modified":"2026-07-31T17:53:23.405Z","1.0.0":"2022-07-21T17:01:20.026Z","2.0.0":"2023-03-07T21:47:29.072Z","2.0.1":"2023-04-10T13:13:47.485Z"},"author":{"name":"alter-noodle"},"license":"BSD-3-Clause","description":"A small React library that provides annotation utilities for marking images.","maintainers":[{"email":"daniel.berk@alteryx.com","name":"daniel.berk"}],"readme":"# mini-tate\n\nA small React library that provides annotation utilities for marking images.\n\n![](./assets/minitate_demo1.png)\n\n![](./assets/minitate_demo2.png)\n\n## What's new in 2.0?\n\n- Upgraded to `react` 18.\n- Switched to plain `material-ui` as the styling library.\n- If no annotation types are provided, this part of the annotation form is hidden.\n- Show annotation name on hover.\n- Use arrow keys to move annotations.\n- Delete key will delete an annotation that is in edit mode.\n- Auto-focus annotation name when creating a new annotation.\n- Optional `rainbowMode` will color-code the annotations by type (limited to 4 colors).\n\n## Features\n\n- Mousedown and drag to create a new annotation.\n- Form for inputting name and, optionally, type of annotation.\n- Edit annotations by clicking and dragging to move, pulling on the corners to resize, using the arrow keys to reposition, and editing the form to update the metadata.\n- Custom `onChange` callback can be supplied to have control over the annotations as they change.\n- Custom `onError` callback can be supplied to have control over errors as they occur.\n- Pass in custom CSS.\n- Pass in custom labels (supports localization).\n- Optional color-coded annotations based on annotation types.\n\n## Installation\n\n`npm i @alteryx/mini-tate`\n\n## Example Usage\n\n### Basic Usage\n\n```\nfunction App() {\n  const handleChange = newAnnos => {\n    console.log(newAnnos);\n  };\n\n  const onError = error => {\n    console.log(error);\n  };\n\n  return <ImageAnnotator imageSrc=\"./imgs/yourImageFileHere.jpeg\" onChange={handleChange} onError={onError} />;\n}\n```\n\n### More Complicated Usage\n\n```\nfunction App() {\n  const startingAnnos = [\n    {\n      name: 'header',\n      type: 'label',\n      x: 0.03,\n      y: 0.05,\n      w: 0.95,\n      h: 0.06\n    }\n  ];\n  const annotationTypes = ['comment', 'label', 'tag'];\n\n  const handleChange = newAnnos => {\n    console.log(newAnnos);\n  };\n\n  const onError = error => {\n    console.log(error);\n  };\n\n  return (\n    <ImageAnnotator\n      annos={startingAnnos}\n      annotationTypes={annotationTypes}\n      imageSrc=\"./imgs/yourImageFileHere.jpeg\"\n      onChange={handleChange}\n      onError={onError}\n      options={{\n        annoStyles: { borderColor: 'green' },\n        labels: { nameLabel: 'Name' }\n      }}\n      rainbowMode\n    />\n  );\n}\n```\n\n### Props\n\n- `imageSrc`: source of the image to be used as \"src\" in `img` element. Required.\n- `annos`: annotations to be rendered.\n- `onChange`: callback to be triggered whenever the annotations update.\n- `onError`: callback to be triggered whenever there is an error with the annotations.\n- `annotationTypes`: values to populate the \"annotation type\" input dropdown. Defaults to `[]` and dropdown will be hidden.\n- `options`: object to pass in custom styles or labels. More details below.\n- `rainbowMode`: optional boolean (defaults to false) that when set to true will color-code the annotations based on annotation type (limited to 4 colors). :rainbow:\n\n### Options\n\nThe options object provides three properties:\n\n- `annoStyles`: styles to apply to annotations.\n- `editStyles`: styles to apply to an annotation that is being edited.\n- `imgStyles`: styles to apply to the image being rendered.\n- `labels`: custom labels to support localization.\n  - `nameLabel`: default is \"Annotation Name\".\n  - `typeLabel`: default is \"Annotation Type\".\n  - `saveLabel`: default is \"Save\".\n  - `cancelLabel`: default is \"Cancel\".\n  - `deleteLabel`: default is \"Delete\".\n","readmeFilename":"README.md"}