{"_id":"@dorana/calendar","_rev":"6-d65002521a5b8967ce014aaed86318a4","name":"@dorana/calendar","dist-tags":{"latest":"0.0.6"},"versions":{"0.0.1":{"name":"@dorana/calendar","version":"0.0.1","_id":"@dorana/calendar@0.0.1","maintainers":[{"name":"alzower","email":"glenn.guillard.pros@gmail.com"}],"dist":{"shasum":"9cda0e8202a0dff1c589d320abb321624cdd6685","tarball":"https://registry.npmjs.org/@dorana/calendar/-/calendar-0.0.1.tgz","fileCount":5,"integrity":"sha512-O9dBWjTbusBLprYAuANAGtk7pg2M92qwDOnDSONX4IoC6/RJ9wGVrioucESjrEfLP6jU3bO3gjn/7AwyMCikkg==","signatures":[{"sig":"MEQCID1E1bh8i/tFVp/I8XNZ+EQgKHhn04yDEcm/rXt7OZVbAiBRvoK5fC5u+JbXM2yWg6enduQFW+vaMwwz/2PfKmHEZA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32233},"module":"fesm2022/dorana-calendar.mjs","exports":{".":{"types":"./types/dorana-calendar.d.ts","default":"./fesm2022/dorana-calendar.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"8fe2f80644cd9c40b9a089c5085eea212a681c0a","typings":"types/dorana-calendar.d.ts","_npmUser":{"name":"alzower","email":"glenn.guillard.pros@gmail.com"},"_npmVersion":"10.9.2","description":"This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 21.0.0.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"tslib":"^2.3.0"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":"^21.0.0","@angular/common":"^21.0.0"},"_npmOperationalInternal":{"tmp":"tmp/calendar_0.0.1_1764877501301_0.20252965318195382","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@dorana/calendar","version":"0.0.2","_id":"@dorana/calendar@0.0.2","maintainers":[{"name":"alzower","email":"glenn.guillard.pros@gmail.com"}],"dist":{"shasum":"85bda56e1b91c6685b7b0c763c763501f8c2aef0","tarball":"https://registry.npmjs.org/@dorana/calendar/-/calendar-0.0.2.tgz","fileCount":5,"integrity":"sha512-kL5dRfHcjZmIuNbG3nsi2NCcgvHgkhqCapGUmHjqqIGCgBJqct8OINeLA3R6LflQ2IrsrniwdcSvtWupimwVCg==","signatures":[{"sig":"MEYCIQCZhXwpaE10rRdCWftQZhGZhOgAQGvPQHM/xMr7RIK+0AIhAKJvsSJicp2K+rYWUNqAXhLs2wjLfHXe81KUBa5Mj4l9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32368},"main":"fesm2022/dorana-calendar.mjs","types":"types/dorana-calendar.d.ts","module":"fesm2022/dorana-calendar.mjs","exports":{".":{"types":"./types/dorana-calendar.d.ts","default":"./fesm2022/dorana-calendar.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"0085b88590842533ed6785c5d67c327db2dd2573","typings":"types/dorana-calendar.d.ts","_npmUser":{"name":"alzower","email":"glenn.guillard.pros@gmail.com"},"_npmVersion":"10.8.2","description":"Ma lib calendar pour dorana-web","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","dependencies":{"tslib":"^2.3.0"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":"^21.0.0","@angular/common":"^21.0.0"},"_npmOperationalInternal":{"tmp":"tmp/calendar_0.0.2_1764882761281_0.3468123285089191","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@dorana/calendar","version":"0.0.3","_id":"@dorana/calendar@0.0.3","maintainers":[{"name":"alzower","email":"glenn.guillard.pros@gmail.com"}],"dist":{"shasum":"44eb54e57ac5afe0832041bd9f275a2e55cbd305","tarball":"https://registry.npmjs.org/@dorana/calendar/-/calendar-0.0.3.tgz","fileCount":5,"integrity":"sha512-n/91AFfB5ByeBLG1BjKcOknXuLE/iKlYgEaRh5pXTEJkU3qDpWgyUDwvHMlkRstzQZu4qk9Lk3DZ2yfvQb4JEA==","signatures":[{"sig":"MEUCIQCJUAd+WLtGcZV2MU903B6Dzgr1a3mDgL8O3CxliRTxBAIgbeVp9bo7wXQNXgVI15+34c6Hqa4CUb3o9HfcLLBM2wU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32368},"main":"fesm2022/dorana-calendar.mjs","types":"types/dorana-calendar.d.ts","module":"fesm2022/dorana-calendar.mjs","exports":{".":{"types":"./types/dorana-calendar.d.ts","default":"./fesm2022/dorana-calendar.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"124fb96c5c1c8c2df007d87284ceb421e884e7b2","typings":"types/dorana-calendar.d.ts","_npmUser":{"name":"alzower","email":"glenn.guillard.pros@gmail.com"},"_npmVersion":"10.8.2","description":"Ma lib calendar pour dorana-web","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","dependencies":{"tslib":"^2.3.0"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":"^21.0.0","@angular/common":"^21.0.0"},"_npmOperationalInternal":{"tmp":"tmp/calendar_0.0.3_1764883391350_0.5745012871137156","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@dorana/calendar","version":"0.0.4","_id":"@dorana/calendar@0.0.4","maintainers":[{"name":"alzower","email":"glenn.guillard.pros@gmail.com"}],"dist":{"shasum":"6d99652dd75d197ed5cb3baddf3f498d34c67680","tarball":"https://registry.npmjs.org/@dorana/calendar/-/calendar-0.0.4.tgz","fileCount":5,"integrity":"sha512-QvVDED8ILXSfipGcBtsolS4bptQMIlMuKdCL3gBqVqeGZga/+hueNd/b3/m+gAH9RTb6NFTJYoySs2aU7wYSdA==","signatures":[{"sig":"MEUCIQCAd+iwORcNGBeGCR6tufHYe3LH3KORKsfLKtCoH6LT0gIgVCMDmtUZpe4vSQ3YWckj4RR3d+xdrbEewyb4HLdQGQA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32368},"main":"fesm2022/dorana-calendar.mjs","types":"types/dorana-calendar.d.ts","module":"fesm2022/dorana-calendar.mjs","exports":{".":{"types":"./types/dorana-calendar.d.ts","default":"./fesm2022/dorana-calendar.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"50cb73bdfb176285daf0bf6ef6bcd4d548740b9b","typings":"types/dorana-calendar.d.ts","_npmUser":{"name":"alzower","email":"glenn.guillard.pros@gmail.com"},"_npmVersion":"10.8.2","description":"Ma lib calendar pour dorana-web","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","dependencies":{"tslib":"^2.3.0"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":"^21.0.0","@angular/common":"^21.0.0"},"_npmOperationalInternal":{"tmp":"tmp/calendar_0.0.4_1764885753028_0.18821501270807262","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@dorana/calendar","version":"0.0.5","license":"MIT","_id":"@dorana/calendar@0.0.5","maintainers":[{"name":"alzower","email":"glenn.guillard.pros@gmail.com"}],"dist":{"shasum":"433411250a1884f3f489205f93377fe7444b7881","tarball":"https://registry.npmjs.org/@dorana/calendar/-/calendar-0.0.5.tgz","fileCount":5,"integrity":"sha512-MS9yJWV05JoWINkDlfErmh2pNA93FLIYpOvJRrCfw+5QR48Afn5MxV0SnCfL4hibXx4r30tYbrwok9rrY9AZ7Q==","signatures":[{"sig":"MEYCIQDxr9EJ91eJHodZjVOy911UVB3k4nUM9yPn5yvr9mA/hQIhAMBHIHOb7d5DzjXP07lj7a79Me/+3xieM4yv+4hhcSdW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34244},"main":"fesm2022/dorana-calendar.mjs","types":"types/dorana-calendar.d.ts","module":"fesm2022/dorana-calendar.mjs","exports":{".":{"types":"./types/dorana-calendar.d.ts","default":"./fesm2022/dorana-calendar.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"b26061f2df5c3c93c228fdd82db7c89f1308094f","typings":"types/dorana-calendar.d.ts","_npmUser":{"name":"alzower","email":"glenn.guillard.pros@gmail.com"},"_npmVersion":"10.8.2","description":"Ma lib calendar pour dorana-web","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","dependencies":{"tslib":"^2.3.0"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":"^21.0.0","@angular/common":"^21.0.0"},"_npmOperationalInternal":{"tmp":"tmp/calendar_0.0.5_1764891337329_0.2818602066524183","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@dorana/calendar","version":"0.0.6","description":"Ma lib calendar pour dorana-web","main":"fesm2022/dorana-calendar.mjs","types":"types/dorana-calendar.d.ts","peerDependencies":{"@angular/common":"^21.0.0","@angular/core":"^21.0.0"},"dependencies":{"tslib":"^2.3.0"},"license":"MIT","sideEffects":false,"module":"fesm2022/dorana-calendar.mjs","typings":"types/dorana-calendar.d.ts","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./types/dorana-calendar.d.ts","default":"./fesm2022/dorana-calendar.mjs"}},"_id":"@dorana/calendar@0.0.6","gitHead":"8ae23b9e06c3f38277c33a1c165fe05192cd6392","_nodeVersion":"20.19.6","_npmVersion":"10.8.2","dist":{"integrity":"sha512-Up0GfmScaohD9XkcdFjKGKZtPppcKIERBwr6bwluWcxAK5w5Bl3v6rKVR2ZMnxX51KYt6Yjp95dV0LvJIwvbbQ==","shasum":"b50fa11dc939bb53e2ad39930149365eb37222cb","tarball":"https://registry.npmjs.org/@dorana/calendar/-/calendar-0.0.6.tgz","fileCount":5,"unpackedSize":37876,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBfgDNwRMfLGunRLEt2o9xqj7zitQAS6r0zxbVwM8s+mAiBjDmWji4qtDTArRz30OfBjJ+hJHL07iZMQg5nslLnnsQ=="}]},"_npmUser":{"name":"alzower","email":"glenn.guillard.pros@gmail.com"},"directories":{},"maintainers":[{"name":"alzower","email":"glenn.guillard.pros@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/calendar_0.0.6_1764971211813_0.06394863816324081"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-04T19:45:01.196Z","modified":"2025-12-05T21:46:52.211Z","0.0.1":"2025-12-04T19:45:01.463Z","0.0.2":"2025-12-04T21:12:41.434Z","0.0.3":"2025-12-04T21:23:11.482Z","0.0.4":"2025-12-04T22:02:33.181Z","0.0.5":"2025-12-04T23:35:37.464Z","0.0.6":"2025-12-05T21:46:51.960Z"},"license":"MIT","description":"Ma lib calendar pour dorana-web","maintainers":[{"name":"alzower","email":"glenn.guillard.pros@gmail.com"}],"readme":"# @dorana/calendar\n\nA modern, customizable Angular calendar component with event support, localization, and flexible styling options.\n\n## Features\n\n✨ **Modern Angular Signals API** - Built with Angular 21+ using the latest signals and computed properties  \n🌍 **Internationalization** - Automatic locale detection with support for any language  \n🎨 **Customizable Styling** - CSS variables and input properties for colors and themes  \n📅 **Event Support** - Display event indicators on specific dates  \n⚡ **Lightweight** - Minimal dependencies, optimized bundle size  \n♿ **Accessible** - ARIA labels and keyboard navigation support  \n🔄 **Flexible Week Start** - Choose between Sunday or Monday as the first day of the week\n\n## Installation\n\n```bash\nnpm install @dorana/calendar\n```\n\n## Peer Dependencies\n\nThis library requires:\n\n- `@angular/common`: ^21.0.0\n- `@angular/core`: ^21.0.0\n\n## Usage\n\n### Basic Example\n\nImport the component in your Angular component or module:\n\n```typescript\nimport { Component } from '@angular/core';\nimport { doranaCalendar } from '@dorana/calendar';\n\n@Component({\n  selector: 'app-root',\n  imports: [doranaCalendar],\n  template: ` <dorana-calendar (dateSelected)=\"onDateSelected($event)\"> </dorana-calendar> `,\n})\nexport class AppComponent {\n  onDateSelected(date: Date) {\n    console.log('Selected date:', date);\n  }\n}\n```\n\n### With Custom Color\n\nCustomize the calendar's primary color to match your brand:\n\n```typescript\n@Component({\n  selector: 'app-root',\n  imports: [doranaCalendar],\n  template: `\n    <dorana-calendar [color]=\"'#10b981'\" (dateSelected)=\"onDateSelected($event)\"> </dorana-calendar>\n  `,\n})\nexport class AppComponent {\n  onDateSelected(date: Date) {\n    console.log('Selected date:', date);\n  }\n}\n```\n\nThe component automatically calculates the appropriate text color (black or white) based on the background color's luminance for optimal readability.\n\n### With Localization\n\nThe calendar automatically detects the user's browser locale, but you can override it:\n\n```typescript\n@Component({\n  selector: 'app-root',\n  imports: [doranaCalendar],\n  template: `\n    <dorana-calendar [locale]=\"'fr-FR'\" (dateSelected)=\"onDateSelected($event)\"> </dorana-calendar>\n  `,\n})\nexport class AppComponent {\n  onDateSelected(date: Date) {\n    console.log('Selected date:', date);\n  }\n}\n```\n\n**Supported locales:** Any valid BCP 47 language tag (e.g., `en-US`, `fr-FR`, `de-DE`, `es-ES`, `ja-JP`, etc.)\n\n### With Events\n\nDisplay event indicators on specific dates:\n\n```typescript\nimport { Component } from '@angular/core';\nimport { doranaCalendar } from '@dorana/calendar';\n\n@Component({\n  selector: 'app-root',\n  imports: [doranaCalendar],\n  template: `\n    <dorana-calendar\n      [events]=\"calendarEvents\"\n      [color]=\"'#3b82f6'\"\n      (dateSelected)=\"onDateSelected($event)\"\n    >\n    </dorana-calendar>\n  `,\n})\nexport class AppComponent {\n  calendarEvents = [\n    { date: new Date(2025, 11, 10), title: 'Team Meeting' },\n    { date: new Date(2025, 11, 15), title: 'Project Deadline' },\n    { date: new Date(2025, 11, 25), title: 'Christmas' },\n  ];\n\n  onDateSelected(date: Date) {\n    const event = this.calendarEvents.find((e) => e.date.toDateString() === date.toDateString());\n\n    if (event) {\n      console.log('Event on this date:', event.title);\n    }\n  }\n}\n```\n\nEvent indicators appear as small dots at the bottom of date cells.\n\n### Week Starting on Sunday\n\nBy default, the calendar week starts on Monday. To start on Sunday:\n\n```typescript\n@Component({\n  selector: 'app-root',\n  imports: [doranaCalendar],\n  template: `\n    <dorana-calendar [weekStartsOnSunday]=\"true\" (dateSelected)=\"onDateSelected($event)\">\n    </dorana-calendar>\n  `,\n})\nexport class AppComponent {\n  onDateSelected(date: Date) {\n    console.log('Selected date:', date);\n  }\n}\n```\n\n## API Reference\n\n### Inputs\n\n| Input                | Type                                 | Default        | Description                                               |\n| -------------------- | ------------------------------------ | -------------- | --------------------------------------------------------- |\n| `color`              | `string`                             | `#007bff`      | Primary color for the calendar (hex, rgb, or named color) |\n| `locale`             | `string`                             | Browser locale | BCP 47 language tag for internationalization              |\n| `weekStartsOnSunday` | `boolean`                            | `false`        | Whether the week should start on Sunday instead of Monday |\n| `events`             | `Array<{date: Date, title: string}>` | `[]`           | Array of events to display as indicators                  |\n\n### Outputs\n\n| Output         | Type   | Description                                                                                  |\n| -------------- | ------ | -------------------------------------------------------------------------------------------- |\n| `dateSelected` | `Date` | Emitted when a user selects a date. Also emits on component initialization with today's date |\n","readmeFilename":"README.md"}