{"_id":"@4mritgiri/npdatetime","_rev":"5-854d80223c7b4460245e4adc0011fff3","name":"@4mritgiri/npdatetime","dist-tags":{"latest":"0.2.4"},"versions":{"0.2.0":{"name":"@4mritgiri/npdatetime","version":"0.2.0","_id":"@4mritgiri/npdatetime@0.2.0","maintainers":[{"name":"4mritgiri","email":"amritgiri.dev@gmail.com"}],"dist":{"shasum":"30a340f8e10e4724cda8eba6d6cd6e56dcf27564","tarball":"https://registry.npmjs.org/@4mritgiri/npdatetime/-/npdatetime-0.2.0.tgz","fileCount":5,"integrity":"sha512-crMsLYIqNOTAnCYN3iqF0gF9sr6ysmG7B/bke0yto4ioosOZu29Vm9vD7KLpZPo27eGjupj8bShaSzQSC2F5Pg==","signatures":[{"sig":"MEQCIHbKlaF0JTDVrWcXowwu3btEKjXzKwdgojKdYtgNLZ2uAiAWiVpLqxK404cuXMY8OD6sHQXUIKM/ZRAw/vxx28RL+g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":155487},"main":"npdatetime.js","type":"module","types":"npdatetime.d.ts","gitHead":"848a2c9efdc6ad67e294fa0108d5d11cedc8d5b3","_npmUser":{"name":"4mritgiri","email":"amritgiri.dev@gmail.com"},"_npmVersion":"10.8.2","description":"A modern, production-ready date picker for Nepali (Bikram Sambat) and Gregorian calendars. Beautiful, accessible, and easy to use.","directories":{},"sideEffects":["./snippets/*"],"_nodeVersion":"20.20.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/npdatetime_0.2.0_1770394353119_0.815430775865883","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@4mritgiri/npdatetime","version":"0.2.1","keywords":["nepali","date-picker","calendar","miti","bikram-sambat","bs","ad"],"author":{"name":"Amrit Giri"},"license":"MIT","_id":"@4mritgiri/npdatetime@0.2.1","maintainers":[{"name":"4mritgiri","email":"amritgiri.dev@gmail.com"}],"homepage":"https://github.com/4mritGiri/npdatetime","bugs":{"url":"https://github.com/4mritGiri/npdatetime/issues"},"dist":{"shasum":"c77e17ff7ec0ff68c60fd6582302ce3c5962d3d4","tarball":"https://registry.npmjs.org/@4mritgiri/npdatetime/-/npdatetime-0.2.1.tgz","fileCount":4,"integrity":"sha512-MCxgGF9boVTdAIjifKQyZA8PG+ZfHIOUXk97AzmGQxYqEMVFQqfJQAsMUxj/yWL06xyJ6/258v/5vC1rv+v+xg==","signatures":[{"sig":"MEYCIQDakAXWGGIjgLMYK8iOHu8P8dJgW/HTgZp/8KsGRCdriAIhANdNwOF5gKpgEPZERytPU7igai1AoFMHiVesqVWMdaPX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69508},"main":"date_picker.js","type":"module","gitHead":"2bc3477e9dd1d3d8ee32ca9442289e87368b5f24","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"wasm-pack build --target web --out-name npdatetime --out-dir pkg --scope 4mritgiri ../../","prepublishOnly":"npm run build"},"_npmUser":{"name":"4mritgiri","email":"amritgiri.dev@gmail.com"},"repository":{"url":"git+https://github.com/4mritGiri/npdatetime.git","type":"git"},"_npmVersion":"10.8.2","description":"Modern, production-ready Nepali Date Picker (Bikram Sambat) and Gregorian calendar library.","directories":{},"_nodeVersion":"20.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/npdatetime_0.2.1_1770443981826_0.3043252158039298","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@4mritgiri/npdatetime","version":"0.2.2","keywords":["nepali","date-picker","calendar","miti","bikram-sambat","bs","ad"],"author":{"name":"Amrit Giri"},"license":"MIT","_id":"@4mritgiri/npdatetime@0.2.2","maintainers":[{"name":"4mritgiri","email":"amritgiri.dev@gmail.com"}],"homepage":"https://github.com/4mritGiri/npdatetime","bugs":{"url":"https://github.com/4mritGiri/npdatetime/issues"},"dist":{"shasum":"cc27d0e801bfbfd79ddcc4367b29144f8775c0e6","tarball":"https://registry.npmjs.org/@4mritgiri/npdatetime/-/npdatetime-0.2.2.tgz","fileCount":4,"integrity":"sha512-29jO+IpRmZ0gdrCeUkUf/cP+bpcJ+HMejeOfTEwpa037nW4L9kNJcDVcs56eBy+xXuH6fKGvFVikiGHZqVjUog==","signatures":[{"sig":"MEUCIGDobYiroVmBQR4MHktvhfNLeqaQAQtxHAHikOSoWE+jAiEA6zdop6AA4sA37aE7NXEAdDD8LheyPMw/d7h1AFXZacs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70144},"main":"picker.js","type":"module","gitHead":"2cc9702fba0db8f5adcbe5e2e3fa04e92912237e","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"wasm-pack build --target web --out-name npdatetime --out-dir pkg --scope 4mritgiri ../../","prepublishOnly":"npm run build"},"_npmUser":{"name":"4mritgiri","email":"amritgiri.dev@gmail.com"},"repository":{"url":"git+https://github.com/4mritGiri/npdatetime.git","type":"git"},"_npmVersion":"10.8.2","description":"Modern, production-ready Nepali Date Picker (Bikram Sambat) and Gregorian calendar library.","directories":{},"_nodeVersion":"20.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/npdatetime_0.2.2_1770805583028_0.5691035187913565","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@4mritgiri/npdatetime","version":"0.2.3","keywords":["nepali","date-picker","calendar","miti","bikram-sambat","bs","ad"],"author":{"name":"Amrit Giri"},"license":"MIT","_id":"@4mritgiri/npdatetime@0.2.3","maintainers":[{"name":"4mritgiri","email":"amritgiri.dev@gmail.com"}],"homepage":"https://github.com/4mritGiri/npdatetime","bugs":{"url":"https://github.com/4mritGiri/npdatetime/issues"},"dist":{"shasum":"29d7fe25c4af7531f86eef32ce12d75392a87bf1","tarball":"https://registry.npmjs.org/@4mritgiri/npdatetime/-/npdatetime-0.2.3.tgz","fileCount":4,"integrity":"sha512-fMRPGBGPhbnq9+p43CDv4kF7n8YuG4ZkPSBo7iHpfsFUS6Os8BMuDtHGho/UgRsdjxytME83DFb44IPLLu8WYQ==","signatures":[{"sig":"MEUCIQDMrjYcP7rMlJqGwBGqw12knhkraVbrVfTwpK6TQ8vMNwIgUu5NnNpLLZMQCsxOlLPgiq+PLrWl4bmnCiHGu2Fy26k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70149},"main":"picker.js","type":"module","gitHead":"e9e646a93f7aa3941ba24f3a4ece97058c19a834","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"wasm-pack build --target web --out-name npdatetime_wasm --out-dir pkg --scope 4mritgiri ../../","prepublishOnly":"npm run build"},"_npmUser":{"name":"4mritgiri","email":"amritgiri.dev@gmail.com"},"repository":{"url":"git+https://github.com/4mritGiri/npdatetime.git","type":"git"},"_npmVersion":"10.8.2","description":"Modern, production-ready Nepali Date Picker (Bikram Sambat) and Gregorian calendar library.","directories":{},"_nodeVersion":"20.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/npdatetime_0.2.3_1770807735034_0.9027388707882864","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@4mritgiri/npdatetime","version":"0.2.4","description":"Modern, production-ready Nepali Date Picker (Bikram Sambat) and Gregorian calendar library.","type":"module","publishConfig":{"access":"public"},"main":"picker.js","scripts":{"build":"wasm-pack build --target web --out-name npdatetime_wasm --out-dir pkg --scope 4mritgiri ../../ && rm pkg/.gitignore","prepublishOnly":"npm run build","test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/4mritGiri/npdatetime.git"},"keywords":["nepali","date-picker","calendar","miti","bikram-sambat","bs","ad"],"author":{"name":"Amrit Giri"},"license":"MIT","bugs":{"url":"https://github.com/4mritGiri/npdatetime/issues"},"homepage":"https://github.com/4mritGiri/npdatetime","_id":"@4mritgiri/npdatetime@0.2.4","gitHead":"02121fa78c1cfd4882025a63ca51514269aff53f","_nodeVersion":"20.20.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-NeMqVwBhbYbUe/6c3KrQeMV7i7hnKb10i6AoBXPOKZ8eYMLoA8jEM8eso4z4rwcWVOXzZv3mnXCOPnVDpAww0Q==","shasum":"c00efc1dca8e3b2f732f064bf5ee5a0a16e9107f","tarball":"https://registry.npmjs.org/@4mritgiri/npdatetime/-/npdatetime-0.2.4.tgz","fileCount":10,"unpackedSize":241448,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD+40oR8Nw+fBSrg138wdxhfxoUBTS1+mwDHNHcCqdtHgIhALdCdJHqV1jmQccX980LlaGgR/ZVZmM+vLrWEIjnQ2Oc"}]},"_npmUser":{"name":"4mritgiri","email":"amritgiri.dev@gmail.com"},"directories":{},"maintainers":[{"name":"4mritgiri","email":"amritgiri.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/npdatetime_0.2.4_1770874402136_0.5515073313076722"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-06T16:12:33.063Z","modified":"2026-02-12T05:33:22.408Z","0.2.0":"2026-02-06T16:12:33.281Z","0.2.1":"2026-02-07T05:59:41.972Z","0.2.2":"2026-02-11T10:26:23.151Z","0.2.3":"2026-02-11T11:02:15.174Z","0.2.4":"2026-02-12T05:33:22.276Z"},"bugs":{"url":"https://github.com/4mritGiri/npdatetime/issues"},"author":{"name":"Amrit Giri"},"license":"MIT","homepage":"https://github.com/4mritGiri/npdatetime","keywords":["nepali","date-picker","calendar","miti","bikram-sambat","bs","ad"],"repository":{"type":"git","url":"git+https://github.com/4mritGiri/npdatetime.git"},"description":"Modern, production-ready Nepali Date Picker (Bikram Sambat) and Gregorian calendar library.","maintainers":[{"name":"4mritgiri","email":"amritgiri.dev@gmail.com"}],"readme":"# 🗓️ Nepali Date Picker\n\nA modern, production-ready date picker for Nepali (Bikram Sambat) and Gregorian calendars. Beautiful, accessible, and easy to use.\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n[![Version](https://img.shields.io/badge/version-0.2.0-green.svg)]()\n[![](https://data.jsdelivr.com/v1/package/npm/@4mritgiri/npdatetime/badge)](https://www.jsdelivr.com/package/npm/@4mritgiri/npdatetime)\n\n## ✨ Features\n\n- 🎨 **Modern Design** - Beautiful glassmorphism UI with smooth animations\n- 🕒 **Integrated Time Picker** - Select hours and minutes alongside dates\n- ⚡ **Quick Actions** - \"Today\", \"Yesterday\", and \"Tomorrow\" shortcuts\n- 📅 **Dual Calendar** - Seamlessly switch between Bikram Sambat (BS) and Gregorian (AD)\n- 🌐 **Multi-language** - Full English & Nepali (Devanagari) support\n- ♿ **Accessible** - Full keyboard navigation & ARIA support\n- 📱 **Responsive** - Modal \"bottom sheet\" layout for mobile devices\n- 📍 **Smart Positioning** - Follows input on scroll and window resize\n- 📍 **Smart Input** - Auto-formatting `YYYY-MM-DD` masking and validation\n- 🔢 **Keyboard Navigation** - Increment/decrement date segments with Arrow keys\n- 🔒 **Strict Validation** - Prevents invalid characters and format errors\n- 🟥 **Holiday Highlighting** - Saturdays (BS) and Sundays (AD) in red\n- 🌙 **Dark Mode** - Automatic system theme integration\n- 🚀 **Zero Dependencies** - Pure JavaScript and high-performance WASM\n- ⚡ **Auto-Init** - Initialize via `type=\"npdate\"` or `data-npdate`\n\n## 🚀 Quick Start\n\n### Installation\n \n#### Via NPM (Recommended)\n \n```bash\nnpm install @4mritgiri/npdatetime\n```\n\n#### Via CDN\n\nYou can use the library directly via CDN without installing:\n\n```html\n<!-- CSS -->\n<link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/npm/@4mritgiri/npdatetime@0.2.0/picker.css\">\n\n<!-- JS Module -->\n<script type=\"module\">\n  import NepaliDatePicker from 'https://cdn.jsdelivr.net/npm/@4mritgiri/npdatetime@0.2.0/picker.js';\n  \n  // Auto-initialize inputs\n  NepaliDatePicker.init();\n</script>\n```\n \n#### Manual Installation\n \n1. Copy the following files to your project:\n   - `picker.js`\n   - `picker.css`\n   - `pkg/` directory (WASM files)\n\n2. Include in your HTML:\n\n```html\n<link rel=\"stylesheet\" href=\"picker.css\">\n<script type=\"module\">\n  import NepaliDatePicker from './picker.js';\n</script>\n```\n\n### Basic Usage\n\n#### Automatic Initialization\n\nSimply add `type=\"npdate\"` or `data-npdate` to your inputs:\n\n```html\n<!-- Nepali Date (BS) -->\n<input type=\"npdate\" data-mode=\"BS\" data-language=\"en\">\n\n<!-- With Nepali numerals -->\n<input type=\"npdate\" data-mode=\"BS\" data-language=\"np\">\n\n<!-- Gregorian Date (AD) -->\n<input type=\"npdate\" data-mode=\"AD\">\n```\n\nThe library will automatically initialize all inputs on page load!\n\n#### Manual Initialization\n\n```javascript\nimport NepaliDatePicker from './picker.js';\n\n// Create instance\nconst picker = new NepaliDatePicker('#my-input', {\n  mode: 'BS',\n  language: 'en',\n  onChange: (date, picker) => {\n    console.log('Selected:', date.format('%Y-%m-%d'));\n  }\n});\n\n// Or initialize all npdate inputs manually\nNepaliDatePicker.init();\n```\n\n## 📖 API Reference\n\n### Constructor\n\n```javascript\nnew NepaliDatePicker(element, options)\n```\n\n**Parameters:**\n- `element` (string | HTMLElement) - CSS selector or DOM element\n- `options` (object) - Configuration options\n\n### Options\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `mode` | string | `'BS'` | Calendar mode: `'BS'` or `'AD'` |\n| `language` | string | `'en'` | Display language: `'en'` or `'np'` |\n| `format` | string | `'%Y-%m-%d'` | Date format string |\n| `minDate` | NepaliDate | `null` | Minimum selectable date |\n| `maxDate` | NepaliDate | `null` | Maximum selectable date |\n| `disabledDates` | array | `[]` | Array of disabled dates |\n| `theme` | string | `'auto'` | Theme: `'auto'`, `'light'`, `'dark'` |\n| `position` | string | `'auto'` | Picker position: `'auto'`, `'top'`, `'bottom'` |\n| `closeOnSelect` | boolean | `true` | Close picker after selection |\n| `showTodayButton` | boolean | `true` | Show \"Today\" button |\n| `showClearButton` | boolean | `true` | Show \"Clear\" button |\n| `onChange` | function | `null` | Callback when date changes |\n| `onOpen` | function | `null` | Callback when picker opens |\n| `onClose` | function | `null` | Callback when picker closes |\n\n### Methods\n\n```javascript\n// Open the picker\npicker.open();\n\n// Close the picker\npicker.close();\n\n// Select today's date\npicker.selectToday();\n\n// Clear the selection\npicker.clear();\n\n// Switch calendar mode\npicker.switchMode('BS' | 'AD');\n\n// Destroy the picker\npicker.destroy();\n\n// Get selected date\nconst date = picker.selectedDate; // Returns NepaliDate instance\n```\n\n### Static Methods\n\n```javascript\n// Initialize all npdate inputs\nNepaliDatePicker.init(selector?, options?);\n\n// Get instance from element\nconst picker = NepaliDatePicker.instances.get(element);\n```\n\n## 🎨 Customization\n\n### Themes\n\nThe date picker comes with multiple color themes:\n\n```html\n<input type=\"npdate\" data-theme=\"purple\">\n<input type=\"npdate\" data-theme=\"green\">\n<input type=\"npdate\" data-theme=\"orange\">\n<input type=\"npdate\" data-theme=\"red\">\n```\n\n### Custom Styling\n\nYou can easily override CSS variables:\n\n```css\n:root {\n  --npd-primary: #your-color;\n  --npd-primary-hover: #your-hover-color;\n  --npd-radius: 1rem;\n}\n```\n\n### Dark Mode\n\nDark mode is automatically supported via `prefers-color-scheme` or you can force it:\n\n```html\n<html data-theme=\"dark\">\n```\n\n## 📋 Examples\n\n### With Validation\n\n```javascript\nconst picker = new NepaliDatePicker('#date-input', {\n  mode: 'BS',\n  minDate: new NepaliDate(2080, 1, 1),\n  maxDate: new NepaliDate(2081, 12, 30),\n  onChange: (date) => {\n    if (date) {\n      console.log('Valid date selected:', date.format('%d %B %Y'));\n    }\n  }\n});\n```\n\n### With Custom Format\n\n```javascript\nconst picker = new NepaliDatePicker('#date-input', {\n  mode: 'BS',\n  format: '%d/%m/%Y', // DD/MM/YYYY format\n  onChange: (date) => {\n    console.log('Formatted:', date.format('%d %B %Y'));\n  }\n});\n```\n\n### Nepali Language\n\n```javascript\nconst picker = new NepaliDatePicker('#date-input', {\n  mode: 'BS',\n  language: 'np', // Devanagari numerals\n  onChange: (date) => {\n    console.log('नेपाली मिति:', date.formatUnicode());\n  }\n});\n```\n\n### React Integration\n\n**Note:** The picker automatically handles input masking and validation. Use the `onChange` callback to get the selected `NepaliDate` object.\n\n```jsx\nimport { useEffect, useRef } from 'react';\nimport NepaliDatePicker from '@4mritgiri/npdatetime'; // or './picker.js'\nimport '@4mritgiri/npdatetime/picker.css'; // or './picker.css'\n\nfunction DateInput() {\n  const inputRef = useRef(null);\n  const pickerRef = useRef(null);\n\n  useEffect(() => {\n    if (inputRef.current) {\n      pickerRef.current = new NepaliDatePicker(inputRef.current, {\n        mode: 'BS',\n        onChange: (date) => {\n          console.log('Selected:', date);\n        }\n      });\n    }\n\n    return () => {\n      pickerRef.current?.destroy();\n    };\n  }, []);\n\n  return <input ref={inputRef} type=\"text\" placeholder=\"YYYY-MM-DD\" />;\n}\n```\n\n### Vanilla JS (No Build Tools)\n\nIf you are not using a bundler (like Webpack or Vite), you can use valid ES Modules directly in the browser:\n\n```html\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <link rel=\"stylesheet\" href=\"./picker.css\">\n</head>\n<body>\n    <input type=\"text\" id=\"my-date\">\n\n    <script type=\"module\">\n        import NepaliDatePicker from './picker.js';\n\n        const picker = new NepaliDatePicker('#my-date');\n    </script>\n</body>\n</html>\n```\n*Ensure `picker.js`, `picker.css`, and the `pkg/` folder are in the same directory.*\n\n## ⌨️ Keyboard Navigation\n\n- **Enter/Space** - Open picker\n- **Escape** - Close picker\n- **Arrow Left** - Previous month\n- **Arrow Right** - Next month\n- **Tab** - Navigate through buttons\n\n## 🌐 Browser Support\n\n- Chrome/Edge (latest)\n- Firefox (latest)\n- Safari (latest)\n- Opera (latest)\n\n**Note:** WebAssembly support required\n\n## 📦 File Structure\n\n```\n@4mritgiri/npdatetime/\n├── picker.js        # Main library\n├── picker.css       # Styles\n├── pkg/                  # WASM bindings\n│   ├── npdatetime.js\n│   ├── npdatetime_bg.wasm\n│   └── ...\n├── demo/\n│   └── demo.html        # Demo page\n└── README.md\n```\n\n## 🔧 Development\n\n### Building from Source\n\n```bash\n# Install Rust and wasm-pack\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\ncargo install wasm-pack\n\n# Build WASM\ncd bindings/javascript\nwasm-pack build --target web\n\n# Test\npython -m http.server 8000\n# Open http://localhost:8000/demo/\n```\n\n## 📝 Format Strings\n\nThe date picker supports the following format strings:\n\n| Code | Description | Example |\n|------|-------------|---------|\n| `%Y` | 4-digit year | 2081 |\n| `%m` | 2-digit month | 05 |\n| `%d` | 2-digit day | 19 |\n| `%B` | Full month name | Bhadra |\n| `%b` | Short month name | Bha |\n\n## 🤝 Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 🙏 Acknowledgments\n\n- Built with [npdatetime](https://github.com/4mritGiri/npdatetime)\n- Inspired by modern date picker libraries\n\n## 📞 Support\n\n- 🐛 [Report Bug](https://github.com/4mritGiri/npdatetime/issues)\n- 💡 [Request Feature](https://github.com/4mritGiri/npdatetime/issues)\n- 📧 Email: amritgiri.dev@gmail.com\n\n## 🗺️ Roadmap\n\n- [ ] Time picker support\n- [ ] Date range selection\n- [ ] More themes\n- [ ] Mobile-optimized touch interactions\n- [x] NPM package\n- [x] CDN hosting\n\n---\n\nMade with ❤️ for Nepal\n","readmeFilename":"README.md"}