{"_id":"@axelixlabs/react-timepicker","name":"@axelixlabs/react-timepicker","dist-tags":{"latest":"3.0.0"},"versions":{"3.0.0":{"name":"@axelixlabs/react-timepicker","version":"3.0.0","description":"API-compatible fork of react-timekeeper for newer React versions","main":"./lib/index.js","types":"./lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/axelixlabs/react-timepicker.git"},"homepage":"https://axelixlabs.github.io/react-timepicker/","keywords":["react","time","time picker","picker","hour","24 hour","minute","react spring"],"contributors":[{"name":"Catalin Covic","email":"catalin.covic@gmail.com","url":"https://github.com/catc"},{"name":"Axelix Labs","url":"https://github.com/axelixlabs"}],"license":"MIT","scripts":{"install-all":"npm install","docs:dev":"node ./bin/dev.js","docs:build":"node ./bin/build.js","_clean":"rimraf lib && mkdir lib","_build":"NODE_ENV=production babel src --extensions '.tsx' --extensions '.ts' -d lib --ignore '**/__tests__/'","_types":"NODE_ENV=production tsc --emitDeclarationOnly -d --outDir lib --esModuleInterop --jsx react-jsx --skipLibCheck src/index.ts","lib":" npm run _clean && npm run _build & npm run _types","eslint":"eslint src/ docs/","ts:compile":"tsc --noEmit -p tsconfig.json","tests:watch":"NODE_ENV=test jest --watch","tests":"NODE_ENV=test jest"},"devDependencies":{"@babel/cli":"^7.26.0","@babel/core":"^7.26.0","@babel/plugin-transform-runtime":"^7.26.0","@babel/preset-env":"^7.26.0","@babel/preset-react":"^7.26.0","@babel/preset-typescript":"^7.26.0","@emotion/babel-plugin":"^11.13.0","@emotion/babel-preset-css-prop":"^11.12.0","@emotion/eslint-plugin":"^11.12.0","@testing-library/react":"^16.3.0","@types/jest":"^29.5.14","@types/lodash.debounce":"^4.0.9","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","@typescript-eslint/eslint-plugin":"5.8.0","@typescript-eslint/parser":"5.8.0","autoprefixer":"^10.4.20","babel-jest":"^29.7.0","babel-loader":"^9.2.1","css-loader":"^7.1.2","cssnano":"^7.0.6","eslint":"^8.5.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","eslint-plugin-react":"^7.14.2","eslint-plugin-react-hooks":"^4.3.0","highlight.js":"^9.15.10","jest":"^29.7.0","jest-environment-jsdom":"^29.7.0","jest-watch-typeahead":"^2.2.2","mini-css-extract-plugin":"^2.9.2","postcss-loader":"^8.1.1","prettier":"^2.5.1","react":"^19.0.0","react-dom":"^19.0.0","rimraf":"^2.6.3","sass":"^1.83.0","sass-loader":"^16.0.4","style-loader":"^4.0.0","typescript":"^5.7.0","webpack":"^5.97.1","webpack-dev-server":"^5.2.0"},"engines":{"node":">=18"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"dependencies":{"@emotion/react":"^11.14.0","@react-spring/web":"^10.0.4","lodash.debounce":"^4.0.8"},"eslintIgnore":["lib/","docs/build/","node_modules/"],"jest":{"rootDir":"src","testRegex":".*\\.test\\.tsx?$","testEnvironment":"jsdom","transform":{"^.+\\.(js|jsx|ts|tsx)$":"babel-jest"},"watchPlugins":["jest-watch-typeahead/filename","jest-watch-typeahead/testname"]},"gitHead":"25ac058f2d84571e3475290672f933c5b28e1be2","_id":"@axelixlabs/react-timepicker@3.0.0","bugs":{"url":"https://github.com/axelixlabs/react-timepicker/issues"},"_nodeVersion":"24.17.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-R1G2tR8ZCQ4nHA51Z6hq0ws/ucogMKgSOSm6sMLUneDFBLidJ+4Et5DpeME3ekoI3DEvRXHAQJc2S3oZGuJFYA==","shasum":"ddf8e9b6d913f68781ff79c5ac71a1e514a7e900","tarball":"https://registry.npmjs.org/@axelixlabs/react-timepicker/-/react-timepicker-3.0.0.tgz","fileCount":74,"unpackedSize":204705,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICW9PzvnzoMhHuCw/1gV7Hx/iSXruSBLPG9Vx0VFkUj+AiEA5DoASbwpe54IZwKpS7qn4yQg0/N7WTK/5j+ceQCatzM="}]},"_npmUser":{"name":"mipo256","email":"mikhailpolivakha@gmail.com"},"directories":{},"maintainers":[{"name":"mipo256","email":"mikhailpolivakha@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/react-timepicker_3.0.0_1782415527840_0.5566471506802155"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-25T19:25:27.735Z","3.0.0":"2026-06-25T19:25:28.070Z","modified":"2026-06-25T19:25:28.252Z"},"maintainers":[{"name":"mipo256","email":"mikhailpolivakha@gmail.com"}],"description":"API-compatible fork of react-timekeeper for newer React versions","homepage":"https://axelixlabs.github.io/react-timepicker/","keywords":["react","time","time picker","picker","hour","24 hour","minute","react spring"],"repository":{"type":"git","url":"git+https://github.com/axelixlabs/react-timepicker.git"},"contributors":[{"name":"Catalin Covic","email":"catalin.covic@gmail.com","url":"https://github.com/catc"},{"name":"Axelix Labs","url":"https://github.com/axelixlabs"}],"bugs":{"url":"https://github.com/axelixlabs/react-timepicker/issues"},"license":"MIT","readme":"> **Fork notice:** This is a fork of the original [react-timekeeper](https://github.com/catc/react-timekeeper) project. The goal of this fork is to provide an API-compatible drop-in for newer versions of React.\n\n<h1 align=\"center\">\n\t<img height=\"350\" src=\"./screenshots/example.png\" />\n\t<br/>\n\tReact Timekeeper\n</h1>\n\n<p align=\"center\">\n  <a href=\"https://github.com/axelixlabs/react-timepicker/actions/workflows/ci.yml?query=branch%3Amaster\">\n    <img src=\"https://github.com/axelixlabs/react-timepicker/actions/workflows/ci.yml/badge.svg?branch=master\" alt=\"build\" />\n  </a>\n  <a href=\"https://github.com/axelixlabs/react-timepicker/blob/master/LICENSE\">\n    <img src=\"https://img.shields.io/badge/License-MIT-yellow.svg\" alt=\"license\"/>\n  </a>\n</p>\n\n<p align=\"center\">\n\t<b>\n\t\tTime picker based on the style of the\n\t\t<a href=\"https://play.google.com/store/apps/details?id=com.google.android.keep\" target=\"_blank\">\n\t\tAndroid Google Keep\n\t\t</a>\n\t\tapp.\n\t</b>\n</p>\n\n------------\n\n**Features**\n- API-compatible with the original [react-timekeeper](https://github.com/catc/react-timekeeper)\n- supports React 19+\n- supports Node.js 18+ (developed and tested on Node.js 24)\n- supports both 12 hour and 24 hour mode, and flexible time formats\n- simple to use with many customizable options\n- smooth, beautiful animations with [react spring](https://www.react-spring.io)\n- typescript support\n- css variable support for custom styles\n\n## Installation\n\nRequires React 19+ and Node.js 18+.\n\n```shell\n$ yarn add @axelixlabs/react-timepicker\n\n# or via npm\n$ npm install --save @axelixlabs/react-timepicker\n```\n\nIf you need the original package for older React versions, use [catc/react-timekeeper](https://github.com/catc/react-timekeeper) instead.\n\n## Usage\n\n```javascript\nimport React, {useState} from 'react';\nimport TimeKeeper from '@axelixlabs/react-timepicker';\n\nfunction YourComponent(){\n  const [time, setTime] = useState('12:34pm')\n\n  return (\n    <div>\n      <TimeKeeper\n        time={time}\n        onChange={(data) => setTime(data.formatted12)}\n      />\n      <span>Time is {time}</span>\n    </div>\n  )\n}\n```\n\nAll styles are inlined via [emotion](https://github.com/emotion-js/emotion) so no css imports are required.\n\n## API\nFor full api and examples, see [API docs](https://axelixlabs.github.io/react-timepicker/#api) and [examples](https://axelixlabs.github.io/react-timepicker/#examples)\n\n\n\n## Development\n\nRequires Node.js 18 or newer. This project is developed and tested on Node.js 24.\n\n1. Clone the repo\n2. `npm install`\n3. `npm run docs:dev`\n4. Navigate to `localhost:3002`\n\n### Contributing\nBefore submitting a PR, ensure that:\n1. you follow all eslint rules (should be automatic)\n1. all tests pass via `npm run tests`\n1. everything builds\n    - docs - `npm run docs:build`\n    - lib - `npm run lib`\n1. provide detailed info on what bug you're fixing or feature you're adding - if possible include a screenshot/gif\n\n------------\n\nOther useful commands:\n- new npm releases:\n  - bump version: `npm version NEW_VERSION`, commit and push - CI should publish to npm automatically\n- new github releases\n  - manual (TODO - add github action)\n","readmeFilename":"README.md","_rev":"1-71a7bfd298b61e3586c98d555609c55e"}