{"_id":"@braudypedrosa/bp-calendar","_rev":"6-9fceee58f7a2425124fe750347d166a5","name":"@braudypedrosa/bp-calendar","dist-tags":{"latest":"1.0.5"},"versions":{"1.0.0":{"name":"@braudypedrosa/bp-calendar","version":"1.0.0","keywords":["calendar","datepicker","booking","vacation-rental","javascript"],"license":"MIT","_id":"@braudypedrosa/bp-calendar@1.0.0","maintainers":[{"name":"braudypedrosa","email":"braudypedrosa@gmail.com"}],"homepage":"https://github.com/braudypedrosa/bp-calendar#readme","bugs":{"url":"https://github.com/braudypedrosa/bp-calendar/issues"},"dist":{"shasum":"f18212b93026986d0fa7f68a0da3f897bb002acf","tarball":"https://registry.npmjs.org/@braudypedrosa/bp-calendar/-/bp-calendar-1.0.0.tgz","fileCount":5,"integrity":"sha512-H+mjSXaU4UtekI1Wof1J1ZGb3KUiQ6Sqc/r4Vi6XY33gexImnkRz/hxkhEBpy948nXXmJuXuXE2cp5SE2qgyjg==","signatures":[{"sig":"MEYCIQD3A0UJ5z3qLknDBYEhZrM8ICfOaU35jeyNwrHO4pZj1gIhALkTFvG9Kw7E4cZJUyWgtdEUZZ8vK6wAJzYi5lbGt+9E","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":96765},"main":"./bp-calendar.js","type":"module","module":"./bp-calendar.js","exports":{".":"./bp-calendar.js","./styles":"./bp-calendar.scss"},"gitHead":"404de07a4d0f5f0c6545e8d49f87a50a761c0b0f","scripts":{"release:npm":"npm publish"},"_npmUser":{"name":"braudypedrosa","email":"braudypedrosa@gmail.com"},"repository":{"url":"git+https://github.com/braudypedrosa/bp-calendar.git","type":"git"},"_npmVersion":"11.8.0","description":"Lightweight booking calendar component with single, range, and datepicker modes","directories":{},"_nodeVersion":"25.5.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bp-calendar_1.0.0_1772213992383_0.09606263235038681","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@braudypedrosa/bp-calendar","version":"1.0.1","keywords":["calendar","datepicker","booking","vacation-rental","javascript"],"license":"MIT","_id":"@braudypedrosa/bp-calendar@1.0.1","maintainers":[{"name":"braudypedrosa","email":"braudypedrosa@gmail.com"}],"homepage":"https://github.com/braudypedrosa/bp-calendar#readme","bugs":{"url":"https://github.com/braudypedrosa/bp-calendar/issues"},"dist":{"shasum":"3d45704e3f1d329701e0f286c3a61e6e38a842f5","tarball":"https://registry.npmjs.org/@braudypedrosa/bp-calendar/-/bp-calendar-1.0.1.tgz","fileCount":5,"integrity":"sha512-h15cwKPbHoFpKvHn/qArsCKenlw1yyly2OTim7BOsaigztipdqHiarDOK1ZEu8nK6Ha/obIp4kD7Ui3hopon0g==","signatures":[{"sig":"MEYCIQCvczk10yYR2zC11uM6jKWrq4yOOaJWX+gFjVVdTdlbtwIhAPu7tTPbl3d585mYjUeCJOrqzD+uCcnqPgExAYYgH2G3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":97287},"main":"./bp-calendar.js","type":"module","module":"./bp-calendar.js","exports":{".":"./bp-calendar.js","./styles":"./bp-calendar.scss"},"gitHead":"7357b798f7831628b600881aee2e71297d1edf50","scripts":{"release":"bash ./scripts/release.sh","release:npm":"npm publish","release:major":"bash ./scripts/release.sh major","release:minor":"bash ./scripts/release.sh minor","release:patch":"bash ./scripts/release.sh patch"},"_npmUser":{"name":"braudypedrosa","email":"braudypedrosa@gmail.com"},"repository":{"url":"git+https://github.com/braudypedrosa/bp-calendar.git","type":"git"},"_npmVersion":"11.8.0","description":"Lightweight booking calendar component with single, range, and datepicker modes","directories":{},"_nodeVersion":"25.5.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bp-calendar_1.0.1_1772220166169_0.20639796569019575","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@braudypedrosa/bp-calendar","version":"1.0.2","keywords":["calendar","datepicker","booking","vacation-rental","javascript"],"license":"MIT","_id":"@braudypedrosa/bp-calendar@1.0.2","maintainers":[{"name":"braudypedrosa","email":"braudypedrosa@gmail.com"}],"homepage":"https://github.com/braudypedrosa/bp-calendar#readme","bugs":{"url":"https://github.com/braudypedrosa/bp-calendar/issues"},"dist":{"shasum":"faaf10d7915b90cf0c2a2749311231368f26415d","tarball":"https://registry.npmjs.org/@braudypedrosa/bp-calendar/-/bp-calendar-1.0.2.tgz","fileCount":5,"integrity":"sha512-Qpt7PSsC0gEKU5+wE3M7+iRvFlec7EiCO82M8VWuR3TO3jEj8qZNK2/Fj9YfVBbluDfbJL7Vids1DJYh/QxlNQ==","signatures":[{"sig":"MEUCIDr/mtKThtg4IjLSqXDPXubkimUynQFX0E6RxKJUTMWMAiEA7c12MoevweAMEpKf9h9tl4Wso62aHxharVgk04rZuBI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":103960},"main":"./bp-calendar.js","type":"module","module":"./bp-calendar.js","exports":{".":"./bp-calendar.js","./styles":"./bp-calendar.scss"},"gitHead":"87ede11fa224a79eeea3dec1fcb1399f14dfded0","scripts":{"test":"vitest run","release":"bash ./scripts/release.sh","test:watch":"vitest","release:npm":"npm publish","release:major":"bash ./scripts/release.sh major","release:minor":"bash ./scripts/release.sh minor","release:patch":"bash ./scripts/release.sh patch"},"_npmUser":{"name":"braudypedrosa","email":"braudypedrosa@gmail.com"},"repository":{"url":"git+https://github.com/braudypedrosa/bp-calendar.git","type":"git"},"_npmVersion":"11.8.0","description":"Lightweight booking calendar component with single, range, and datepicker modes","directories":{},"_nodeVersion":"25.5.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^26.1.0","vitest":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/bp-calendar_1.0.2_1772237903731_0.6689799090629858","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@braudypedrosa/bp-calendar","version":"1.0.3","keywords":["calendar","datepicker","booking","vacation-rental","javascript"],"license":"MIT","_id":"@braudypedrosa/bp-calendar@1.0.3","maintainers":[{"name":"braudypedrosa","email":"braudypedrosa@gmail.com"}],"homepage":"https://github.com/braudypedrosa/bp-calendar#readme","bugs":{"url":"https://github.com/braudypedrosa/bp-calendar/issues"},"dist":{"shasum":"1e62e1b8147dea46fbb9a62a2df228a2502e5113","tarball":"https://registry.npmjs.org/@braudypedrosa/bp-calendar/-/bp-calendar-1.0.3.tgz","fileCount":5,"integrity":"sha512-g9zAAJMXC2H7l+h2Cc3g6BqaCChdiiBy3phkd37Wq2shX+8cJFBtfvhek+Musm8A3IwzuKFwPVv/1U6LZ59Irg==","signatures":[{"sig":"MEUCIQDZcDK890EYqHTwvtiuSanSdTqYLHz4MbGdGplJk4fwrQIgBmoqUPDHLLxNYbQRd05Ltqwy2u5+sOpZKU1Ef/lGziQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":103602},"main":"./bp-calendar.js","type":"module","module":"./bp-calendar.js","exports":{".":"./bp-calendar.js","./styles":"./bp-calendar.scss"},"gitHead":"a3ea35b249463127afb2b3d815b0d6c1ab4011d3","scripts":{"test":"vitest run","release":"bash ./scripts/release.sh","test:watch":"vitest","release:npm":"npm publish","release:major":"bash ./scripts/release.sh major","release:minor":"bash ./scripts/release.sh minor","release:patch":"bash ./scripts/release.sh patch"},"_npmUser":{"name":"braudypedrosa","email":"braudypedrosa@gmail.com"},"repository":{"url":"git+https://github.com/braudypedrosa/bp-calendar.git","type":"git"},"_npmVersion":"11.8.0","description":"Lightweight booking calendar component with single, range, and datepicker modes","directories":{},"_nodeVersion":"25.5.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^26.1.0","vitest":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/bp-calendar_1.0.3_1772378698740_0.16663833322099353","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@braudypedrosa/bp-calendar","version":"1.0.4","keywords":["calendar","datepicker","booking","vacation-rental","javascript"],"license":"MIT","_id":"@braudypedrosa/bp-calendar@1.0.4","maintainers":[{"name":"braudypedrosa","email":"braudypedrosa@gmail.com"}],"homepage":"https://github.com/braudypedrosa/bp-calendar#readme","bugs":{"url":"https://github.com/braudypedrosa/bp-calendar/issues"},"dist":{"shasum":"f872e9ec6a9389de57220925c4d06d06e044bd4e","tarball":"https://registry.npmjs.org/@braudypedrosa/bp-calendar/-/bp-calendar-1.0.4.tgz","fileCount":5,"integrity":"sha512-7sSTmoFeqASGyaMXhvRJA5sZyTGcosqgTx3NL0MX5GenIdRd5BHBboertNKH32j+ciG45a6LX3dfWFXUEg6xxQ==","signatures":[{"sig":"MEQCIH2MWJHRMnCKP/BwLLFMX3pTSloBgTqRwwmFkbRWGDApAiAZv/LRmb1U2x6SgoBkQNsZWsq6Jzck1J80p57Ivyvy3Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":104246},"main":"./bp-calendar.js","type":"module","module":"./bp-calendar.js","exports":{".":"./bp-calendar.js","./styles":"./bp-calendar.scss"},"gitHead":"3cf301599a042336026e2cfb13383ef5ffba86a9","scripts":{"test":"vitest run","release":"bash ./scripts/release.sh","test:watch":"vitest","release:npm":"npm publish","release:major":"bash ./scripts/release.sh major","release:minor":"bash ./scripts/release.sh minor","release:patch":"bash ./scripts/release.sh patch"},"_npmUser":{"name":"braudypedrosa","email":"braudypedrosa@gmail.com"},"repository":{"url":"git+https://github.com/braudypedrosa/bp-calendar.git","type":"git"},"_npmVersion":"11.10.1","description":"Lightweight booking calendar component with single, range, and datepicker modes","directories":{},"_nodeVersion":"25.7.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^26.1.0","vitest":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/bp-calendar_1.0.4_1772552160258_0.45179551987291355","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@braudypedrosa/bp-calendar","version":"1.0.5","description":"Lightweight booking calendar component with single, range, and datepicker modes","type":"module","main":"./bp-calendar.js","module":"./bp-calendar.js","exports":{".":"./bp-calendar.js","./styles":"./dist/bp-calendar.css"},"keywords":["calendar","datepicker","booking","vacation-rental","javascript"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/braudypedrosa/bp-calendar.git"},"bugs":{"url":"https://github.com/braudypedrosa/bp-calendar/issues"},"homepage":"https://github.com/braudypedrosa/bp-calendar#readme","publishConfig":{"access":"public"},"scripts":{"build:css":"node ./scripts/build-css.mjs","test":"vitest run","test:watch":"vitest","release":"npm run build:css && bash ./scripts/release.sh","release:patch":"npm run build:css && bash ./scripts/release.sh patch","release:minor":"npm run build:css && bash ./scripts/release.sh minor","release:major":"npm run build:css && bash ./scripts/release.sh major","release:npm":"npm publish"},"devDependencies":{"@braudypedrosa/bp-ui-components":"^0.3.0","jsdom":"^28.1.0","sass-embedded":"^1.97.3","vite":"^7.3.1","vitest":"^4.0.18"},"gitHead":"15e7cab310f664affd940e1bb182a7f513bc987a","_id":"@braudypedrosa/bp-calendar@1.0.5","_nodeVersion":"25.7.0","_npmVersion":"11.10.1","dist":{"integrity":"sha512-buEHH9KPc7srJVAnuouiWa+UxliVHei+hVmM5/rkdStlERpgkefOk3F1uuG3YjsqwGKlq/aqtVf9DIZsMjT3aw==","shasum":"2aa206a2433daa8c13f5921dd9b60d724945c527","tarball":"https://registry.npmjs.org/@braudypedrosa/bp-calendar/-/bp-calendar-1.0.5.tgz","fileCount":6,"unpackedSize":117138,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDhzS+eDp6EIGTMT0arwYzFXRnbXQuxaooiDKd+fmmHUgIhAIr9jWQZSkbNo25j+FZMlXDAhxjrzbpU7ZlqLo7/UnPC"}]},"_npmUser":{"name":"braudypedrosa","email":"braudypedrosa@gmail.com"},"directories":{},"maintainers":[{"name":"braudypedrosa","email":"braudypedrosa@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/bp-calendar_1.0.5_1772564364549_0.7317764149235417"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-27T17:39:52.301Z","modified":"2026-03-03T18:59:24.803Z","1.0.0":"2026-02-27T17:39:52.526Z","1.0.1":"2026-02-27T19:22:46.319Z","1.0.2":"2026-02-28T00:18:23.914Z","1.0.3":"2026-03-01T15:24:58.877Z","1.0.4":"2026-03-03T15:36:00.401Z","1.0.5":"2026-03-03T18:59:24.680Z"},"bugs":{"url":"https://github.com/braudypedrosa/bp-calendar/issues"},"license":"MIT","homepage":"https://github.com/braudypedrosa/bp-calendar#readme","keywords":["calendar","datepicker","booking","vacation-rental","javascript"],"repository":{"type":"git","url":"git+https://github.com/braudypedrosa/bp-calendar.git"},"description":"Lightweight booking calendar component with single, range, and datepicker modes","maintainers":[{"name":"braudypedrosa","email":"braudypedrosa@gmail.com"}],"readme":"# bp-calendar\n\nA lightweight, framework-agnostic calendar component for booking-style date selection.\n\nCurrent version: **1.0.2**\n\n## Overview\n\n`bp-calendar` renders a customizable calendar UI with support for:\n- single-date selection\n- date-range selection\n- datepicker mode with popup behavior\n\nIt ships as plain JavaScript + SCSS and works in browser globals and ESM build pipelines.\n\n## Features\n\n- Single, Range, and Datepicker modes (`single`, `range`, `datepicker`)\n- Multi-month rendering (`1` to `4` months)\n- Responsive month count via breakpoint config\n- Per-date configuration (`isDisabled`, `price`, `minDays`, `maxDays`)\n- Range hover preview and duration tooltip\n- Constraint tooltip for min/max stay rules\n- Built-in clear button support (optional)\n- Datepicker popup alignment strategies (`default`, `auto`)\n- Public instance methods for updates, navigation, selection reads, and teardown\n\n## Installation\n\n### npm\n\n```bash\nnpm install @braudypedrosa/bp-calendar\n```\n\n```js\nimport { BPCalendar } from '@braudypedrosa/bp-calendar';\nimport '@braudypedrosa/bp-calendar/styles';\n```\n\n### Browser\n\nInclude your styles and script in the page:\n\n```html\n<link rel=\"stylesheet\" href=\"./bp-calendar.scss\" />\n<script type=\"module\" src=\"./bp-calendar.js\"></script>\n```\n\nOr bundle with your build tooling and import as ESM/CommonJS.\n\n## Quick Start\n\n```html\n<div id=\"calendar\"></div>\n<script type=\"module\">\n  import { BPCalendar } from './bp-calendar.js';\n\n  const calendar = new BPCalendar('#calendar', {\n    mode: 'range',\n    monthsToShow: 2,\n    onRangeSelect: (range) => {\n      console.log('Selected range:', range);\n    },\n  });\n</script>\n```\n\n## API\n\n### Constructor\n\n```js\nnew BPCalendar(container, options)\n```\n\n- `container`: `HTMLElement | string`\n- `options`: object\n\n### Options\n\n- `startDate: Date` default `new Date()`\n- `monthsToShow: number` (`1..4`) default `2`\n- `mode: 'single' | 'range' | 'datepicker'` default `'single'`\n- `onDateSelect: (date: Date) => void`\n- `onRangeSelect: ({start: Date|null, end: Date|null}) => void`\n- `dateConfig: Record<string, DateConfig>` keyed by `YYYY-MM-DD`\n- `defaultMinDays: number` default `1`\n- `selectedDate: Date | null`\n- `selectedRange: {start: Date, end: Date} | null`\n- `tooltipLabel: string` default `'Nights'`\n- `showTooltip: boolean` default `true`\n- `showClearButton: boolean` default `true`\n- `datepickerPlacement: 'default' | 'auto'` default `'default'`\n  - `'auto'` first tries the normal responsive month count, centers the popup when it fits, otherwise aligns it to the relevant input edge, temporarily retries with one month when needed, and only then uses the compact clamped fallback\n- `datepickerAnchorElement: HTMLElement | null`\n  - optional advanced anchor element for popup alignment in datepicker mode; defaults to the input itself\n- `breakpoints: Record<number, number | {monthsToShow: number}>`\n\n### `DateConfig` shape\n\n```js\n{\n  date: '2026-03-01',\n  isDisabled: false,\n  price: 250,\n  minDays: 2,\n  maxDays: 14,\n}\n```\n\n## Public Methods\n\n- `updateOptions(newOptions)`\n- `clearSelection()`\n- `navigatePrevious()`\n- `navigateNext()`\n- `getSelectedDate(): Date | null`\n- `getSelectedRange(): {start: Date, end: Date} | null`\n- `destroy()`\n\n## Exports\n\n- Browser global: `window.BPCalendar`, `window.BP_Calendar`\n- ESM: `export { BPCalendar, BP_Calendar }`\n\n## Styling\n\nThe provided stylesheet defines calendar structure and interaction classes under the `.bp-calendar-*` namespace.\n\nKey groups:\n- layout wrappers (`.bp-calendar-wrapper`, `.bp-calendar-months`)\n- day states (`.bp-calendar-day-selected`, `.bp-calendar-day-in-range`, `.bp-calendar-day-disabled`)\n- datepicker UI (`.bp-calendar-datepicker-*`)\n\n## License\n\nMIT\n\n## Maintainer Workflow\n\nFor the reusable release workflow, versioning rules, and verification steps, see [RELEASING.md](./RELEASING.md).\n","readmeFilename":"README.md"}