{"_id":"vue2-booking-calendar","_rev":"27-341a0cc1bbf9d923ca935a200f6e71c8","name":"vue2-booking-calendar","dist-tags":{"latest":"2.8.0"},"versions":{"1.0.0":{"name":"vue2-booking-calendar","version":"1.0.0","keywords":["vue2","booking","calendar","scheduler","appointment","salon","spa","booking-system","vue-component"],"author":"","license":"MIT","_id":"vue2-booking-calendar@1.0.0","maintainers":[{"name":"meemawsh","email":"dotimasmay@gmail.com"}],"dist":{"shasum":"38b1804fa3abb5274c2288cc4582d3ae73cb3cba","tarball":"https://registry.npmjs.org/vue2-booking-calendar/-/vue2-booking-calendar-1.0.0.tgz","fileCount":19,"integrity":"sha512-rTrbHCF8JKzxP8qSHN5b+wS0QyfDzo4PxY0zTzQoNovf0G5HDaRnfAPJPrpkTTI81OYUnXzXs1DvWrTUEkD7Jg==","signatures":[{"sig":"MEQCIHwHJbsZHERY3epPOTGGvL9XiQ+JTWhawdbhi4vZCvQGAiBgLI1PMkXWkW71KO/kVI2ZMD1uF1quhC1aqH8y3wHsAA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":360276},"main":"./dist/vue2-booking-calendar.umd.js","type":"module","module":"./dist/vue2-booking-calendar.es.js","exports":{".":{"import":"./dist/vue2-booking-calendar.es.js","require":"./dist/vue2-booking-calendar.umd.js"},"./dist/style.css":"./dist/style.css"},"scripts":{"dev":"vite","build":"vite build","preview":"vite preview","build:lib":"vite build --config vite.config.lib.js","prepublishOnly":"npm run build:lib"},"_npmUser":{"name":"meemawsh","email":"dotimasmay@gmail.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.12.1","description":"A customizable booking calendar component for Vue 2 with service, specialist, and customer management","directories":{},"_nodeVersion":"25.9.0","dependencies":{"date-fns":"^2.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^2.7.16","vite":"^5.4.0","vuex":"^3.6.2","@vitejs/plugin-vue2":"^2.3.1"},"peerDependencies":{"vue":"^2.7.0","vuex":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue2-booking-calendar_1.0.0_1777221659804_0.13468711918172516","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"vue2-booking-calendar","version":"1.1.0","keywords":["vue2","booking","calendar","scheduler","appointment","salon","spa","booking-system","vue-component"],"author":"","license":"MIT","_id":"vue2-booking-calendar@1.1.0","maintainers":[{"name":"meemawsh","email":"dotimasmay@gmail.com"}],"dist":{"shasum":"9ee53af2ff415b82c2dbc8558abcb93a57a6d446","tarball":"https://registry.npmjs.org/vue2-booking-calendar/-/vue2-booking-calendar-1.1.0.tgz","fileCount":19,"integrity":"sha512-l8By7E/H8IU+ztOiwt7lE6Jtg/CwkarwsfKUnpsFVH+9wtF7FPNdsHk37KA4TvZRTrvzqUSXp4+JN+2FHgdzEg==","signatures":[{"sig":"MEUCIQDBH79GSuuAhXLr8+puFT7FYxpMj1nUnMGfbHTw+RZaygIgR4Uxv0ygJ7AwFADp7uAoYjPfBe8EEyZ6tnjJVhZyKG4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":406897},"main":"./dist/vue2-booking-calendar.umd.js","type":"module","module":"./dist/vue2-booking-calendar.es.js","exports":{".":{"import":"./dist/vue2-booking-calendar.es.js","require":"./dist/vue2-booking-calendar.umd.js"},"./dist/style.css":"./dist/style.css"},"scripts":{"dev":"vite","build":"vite build","preview":"vite preview","build:lib":"vite build --config vite.config.lib.js","prepublishOnly":"npm run build:lib"},"_npmUser":{"name":"meemawsh","email":"dotimasmay@gmail.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.12.1","description":"A customizable booking calendar component for Vue 2 with service, specialist, and customer management","directories":{},"_nodeVersion":"25.9.0","dependencies":{"date-fns":"^2.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^2.7.16","vite":"^5.4.0","vuex":"^3.6.2","@vitejs/plugin-vue2":"^2.3.1"},"peerDependencies":{"vue":"^2.7.0","vuex":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue2-booking-calendar_1.1.0_1777281785105_0.5020942934687997","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"vue2-booking-calendar","version":"1.2.0","keywords":["vue2","booking","calendar","scheduler","appointment","salon","spa","booking-system","vue-component"],"author":"","license":"MIT","_id":"vue2-booking-calendar@1.2.0","maintainers":[{"name":"meemawsh","email":"dotimasmay@gmail.com"}],"dist":{"shasum":"b2f0a165625df4b65eeb9809656f85f346cfff23","tarball":"https://registry.npmjs.org/vue2-booking-calendar/-/vue2-booking-calendar-1.2.0.tgz","fileCount":19,"integrity":"sha512-MckBjyd10bwlxLM8DSBOvc7OGnfoGTA5p6XvKj1dewSIUO6uGECPAcelfd5lXpu4UfifBGIvD+2d5HtiftC4JQ==","signatures":[{"sig":"MEYCIQCjvyk4oLUPGzJVbXZQJgJ26MGuVkFlvwI9KqJUAXq06wIhAO1Pn6lqPoCngayrz0x5E8sY2p1DL3weBekZfrlcikbl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":407245},"main":"./dist/vue2-booking-calendar.umd.js","type":"module","module":"./dist/vue2-booking-calendar.es.js","exports":{".":{"import":"./dist/vue2-booking-calendar.es.js","require":"./dist/vue2-booking-calendar.umd.js"},"./dist/style.css":"./dist/style.css"},"scripts":{"dev":"vite","build":"vite build","preview":"vite preview","build:lib":"vite build --config vite.config.lib.js","prepublishOnly":"npm run build:lib"},"_npmUser":{"name":"meemawsh","email":"dotimasmay@gmail.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.12.1","description":"A customizable booking calendar component for Vue 2 with service, specialist, and customer management","directories":{},"_nodeVersion":"25.9.0","dependencies":{"date-fns":"^2.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^2.7.16","vite":"^5.4.0","vuex":"^3.6.2","@vitejs/plugin-vue2":"^2.3.1"},"peerDependencies":{"vue":"^2.7.0","vuex":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue2-booking-calendar_1.2.0_1777434847105_0.6141565785749423","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"vue2-booking-calendar","version":"1.3.0","keywords":["vue2","booking","calendar","scheduler","appointment","salon","spa","booking-system","vue-component"],"author":"","license":"MIT","_id":"vue2-booking-calendar@1.3.0","maintainers":[{"name":"meemawsh","email":"dotimasmay@gmail.com"}],"dist":{"shasum":"3b0c19f019285fe01d713c66b5f7fe620ba3b83d","tarball":"https://registry.npmjs.org/vue2-booking-calendar/-/vue2-booking-calendar-1.3.0.tgz","fileCount":19,"integrity":"sha512-QYflo1X/FxjG08ebSh89lcl3kI8LSolnkgu/uBbWMxzss6XjGF421Y7O9beAxH73f+9d6RwvAHKUS4OERJ82OQ==","signatures":[{"sig":"MEUCIQDiDTVCkPM2MCfwENKjCD9i5P/IBI0ZC0hHOHkMjnEncwIgcPP5AE7q7yT4xHTrK3Br1pwz0Zp+vuVwlOVqE39icSw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":435418},"main":"./dist/vue2-booking-calendar.umd.js","type":"module","module":"./dist/vue2-booking-calendar.es.js","exports":{".":{"import":"./dist/vue2-booking-calendar.es.js","require":"./dist/vue2-booking-calendar.umd.js"},"./dist/style.css":"./dist/style.css"},"scripts":{"dev":"vite","build":"vite build","preview":"vite preview","build:lib":"vite build --config vite.config.lib.js","prepublishOnly":"npm run build:lib"},"_npmUser":{"name":"meemawsh","email":"dotimasmay@gmail.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.12.1","description":"A customizable booking calendar component for Vue 2 with service, specialist, and customer management","directories":{},"_nodeVersion":"25.9.0","dependencies":{"date-fns":"^2.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^2.7.16","vite":"^5.4.0","vuex":"^3.6.2","@vitejs/plugin-vue2":"^2.3.1"},"peerDependencies":{"vue":"^2.7.0","vuex":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue2-booking-calendar_1.3.0_1777963384962_0.9247336532137385","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"vue2-booking-calendar","version":"1.4.0","keywords":["vue2","booking","calendar","scheduler","appointment","salon","spa","booking-system","vue-component"],"author":"","license":"MIT","_id":"vue2-booking-calendar@1.4.0","maintainers":[{"name":"meemawsh","email":"dotimasmay@gmail.com"}],"dist":{"shasum":"0beba43bf295dc9cdcdcf08bb81d566362daf3bb","tarball":"https://registry.npmjs.org/vue2-booking-calendar/-/vue2-booking-calendar-1.4.0.tgz","fileCount":19,"integrity":"sha512-jfdsWIibMxKrRSMI+YY0/Qx3PAlhBjks67eeWpKmSmhiR4crMYqe39VuNeTJVI8he+WW0Q9pD29/wHUXAV97fQ==","signatures":[{"sig":"MEQCIESnRhmIk2bCjQ2vC78IqaUD2EnyW3PRGPRTtAM84cF7AiBgtwoSY8SSlc1kXNZjVo24hUhkdQ/2y89bTwHs9mByIQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":440006},"main":"./dist/vue2-booking-calendar.umd.js","type":"module","module":"./dist/vue2-booking-calendar.es.js","exports":{".":{"import":"./dist/vue2-booking-calendar.es.js","require":"./dist/vue2-booking-calendar.umd.js"},"./dist/style.css":"./dist/style.css"},"scripts":{"dev":"vite","build":"vite build","preview":"vite preview","build:lib":"vite build --config vite.config.lib.js","prepublishOnly":"npm run build:lib"},"_npmUser":{"name":"meemawsh","email":"dotimasmay@gmail.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.12.1","description":"A customizable booking calendar component for Vue 2 with service, specialist, and customer management","directories":{},"_nodeVersion":"25.9.0","dependencies":{"date-fns":"^2.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^2.7.16","vite":"^5.4.0","vuex":"^3.6.2","@vitejs/plugin-vue2":"^2.3.1"},"peerDependencies":{"vue":"^2.7.0","vuex":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue2-booking-calendar_1.4.0_1778051965408_0.3613520330380673","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"vue2-booking-calendar","version":"1.5.0","keywords":["vue2","booking","calendar","scheduler","appointment","salon","spa","booking-system","vue-component"],"author":"","license":"MIT","_id":"vue2-booking-calendar@1.5.0","maintainers":[{"name":"meemawsh","email":"dotimasmay@gmail.com"}],"dist":{"shasum":"e44ac3597e9d51b937720f783e0b597253b713c9","tarball":"https://registry.npmjs.org/vue2-booking-calendar/-/vue2-booking-calendar-1.5.0.tgz","fileCount":19,"integrity":"sha512-8rZ1FDrobX5sxn6Xnk5QaO57pSk1luBl28DBey9Cjc+dbeRNP6goWkCJguz9lqkNSRB+/edfVwET2niMGSJ9Vg==","signatures":[{"sig":"MEQCIDPaJJOcXaR20qihPOzfGSYLgPY5qplidWJrwQ7oblHkAiBbE80HEC8My/H8NMRUkwxxWS+Yvne5erFisI66TCueMA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":442896},"main":"./dist/vue2-booking-calendar.umd.js","type":"module","module":"./dist/vue2-booking-calendar.es.js","exports":{".":{"import":"./dist/vue2-booking-calendar.es.js","require":"./dist/vue2-booking-calendar.umd.js"},"./dist/style.css":"./dist/style.css"},"scripts":{"dev":"vite","build":"vite build","preview":"vite preview","build:lib":"vite build --config vite.config.lib.js","prepublishOnly":"npm run build:lib"},"_npmUser":{"name":"meemawsh","email":"dotimasmay@gmail.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.12.1","description":"A customizable booking calendar component for Vue 2 with service, specialist, and customer management","directories":{},"_nodeVersion":"25.9.0","dependencies":{"date-fns":"^2.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^2.7.16","vite":"^5.4.0","vuex":"^3.6.2","@vitejs/plugin-vue2":"^2.3.1"},"peerDependencies":{"vue":"^2.7.0","vuex":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue2-booking-calendar_1.5.0_1778123581190_0.8668739198070576","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"vue2-booking-calendar","version":"1.8.0","keywords":["vue2","booking","calendar","scheduler","appointment","salon","spa","booking-system","vue-component"],"author":"","license":"MIT","_id":"vue2-booking-calendar@1.8.0","maintainers":[{"name":"meemawsh","email":"dotimasmay@gmail.com"}],"dist":{"shasum":"0e230fbfcae31ebb4d3604381603a3fa331d6bee","tarball":"https://registry.npmjs.org/vue2-booking-calendar/-/vue2-booking-calendar-1.8.0.tgz","fileCount":19,"integrity":"sha512-zTQhwPpxC3PKJB6BGXZQPh9F07Rklk5y6EznewGi3C9krJ2HxnjFkmuJIaAWrFfHzJHEbbCAKCn1bOhDgct5yw==","signatures":[{"sig":"MEQCIHT8loYAJzYRm9n2VH7C1jnVI9fvff54cp6TLFxsRCwCAiByQ8rlwOa+na+BfRzDjpbNcgRCl4jujY8lzPxicCiUig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":451496},"main":"./dist/vue2-booking-calendar.umd.js","type":"module","module":"./dist/vue2-booking-calendar.es.js","exports":{".":{"import":"./dist/vue2-booking-calendar.es.js","require":"./dist/vue2-booking-calendar.umd.js"},"./dist/style.css":"./dist/style.css"},"scripts":{"dev":"vite","build":"vite build","preview":"vite preview","build:lib":"vite build --config vite.config.lib.js","prepublishOnly":"npm run build:lib"},"_npmUser":{"name":"meemawsh","email":"dotimasmay@gmail.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.12.1","description":"A customizable booking calendar component for Vue 2 with service, specialist, and customer management","directories":{},"_nodeVersion":"25.9.0","dependencies":{"date-fns":"^2.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^2.7.16","vite":"^5.4.0","vuex":"^3.6.2","@vitejs/plugin-vue2":"^2.3.1"},"peerDependencies":{"vue":"^2.7.0","vuex":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue2-booking-calendar_1.8.0_1778228302674_0.006021587074067414","host":"s3://npm-registry-packages-npm-production"}},"1.8.1":{"name":"vue2-booking-calendar","version":"1.8.1","keywords":["vue2","booking","calendar","scheduler","appointment","salon","spa","booking-system","vue-component"],"author":"","license":"MIT","_id":"vue2-booking-calendar@1.8.1","maintainers":[{"name":"meemawsh","email":"dotimasmay@gmail.com"}],"dist":{"shasum":"8253fb2072a7af1db1df9333171fd22eec90fe0d","tarball":"https://registry.npmjs.org/vue2-booking-calendar/-/vue2-booking-calendar-1.8.1.tgz","fileCount":19,"integrity":"sha512-WRaF9bSaHWdKX8bk7xjhxlWZel2pzhpSYwFl3D+PCaUk+xeTa31QUjRQTa4BdjFogPqDJDvW1vlzFPk/p3aOmQ==","signatures":[{"sig":"MEQCIHdb+KrlQnUX99QuvlEK/35klLKRViGSiSKdd+K5LnT/AiB+Q1PvdVQu+4b37ptlK2NLVdbYcW6JfDkYi97Es00jrA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":452195},"main":"./dist/vue2-booking-calendar.umd.js","type":"module","module":"./dist/vue2-booking-calendar.es.js","exports":{".":{"import":"./dist/vue2-booking-calendar.es.js","require":"./dist/vue2-booking-calendar.umd.js"},"./dist/style.css":"./dist/style.css"},"scripts":{"dev":"vite","build":"vite build","preview":"vite preview","build:lib":"vite build --config vite.config.lib.js","prepublishOnly":"npm run build:lib"},"_npmUser":{"name":"meemawsh","email":"dotimasmay@gmail.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.12.1","description":"A customizable booking calendar component for Vue 2 with service, specialist, and customer management","directories":{},"_nodeVersion":"25.9.0","dependencies":{"date-fns":"^2.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^2.7.16","vite":"^5.4.0","vuex":"^3.6.2","@vitejs/plugin-vue2":"^2.3.1"},"peerDependencies":{"vue":"^2.7.0","vuex":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue2-booking-calendar_1.8.1_1778229174380_0.26350750564062153","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"vue2-booking-calendar","version":"1.9.0","keywords":["vue2","booking","calendar","scheduler","appointment","salon","spa","booking-system","vue-component"],"author":"","license":"MIT","_id":"vue2-booking-calendar@1.9.0","maintainers":[{"name":"meemawsh","email":"dotimasmay@gmail.com"}],"dist":{"shasum":"f4842d8335b38bed95e1b800cd2f66ae2083463f","tarball":"https://registry.npmjs.org/vue2-booking-calendar/-/vue2-booking-calendar-1.9.0.tgz","fileCount":19,"integrity":"sha512-qjWNs9KSsoe1am6/aaBohiVd/Y+YVNVPCWSCZ+Pu7MGjEpzBi96eJOe6ycFo/u16EEkKVHP/XNlMRDaMmX/sAw==","signatures":[{"sig":"MEUCIQDJ3TzRY+N4uaqYdy5Y14ypJpG9cDvncKwFksLGYPHIPAIgL20YwJtigreoks3hqaIhZlfwE4SLfQ2CPWjzvac/rKs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":484464},"main":"./dist/vue2-booking-calendar.umd.js","type":"module","module":"./dist/vue2-booking-calendar.es.js","exports":{".":{"import":"./dist/vue2-booking-calendar.es.js","require":"./dist/vue2-booking-calendar.umd.js"},"./dist/style.css":"./dist/style.css"},"scripts":{"dev":"vite","build":"vite build","preview":"vite preview","build:lib":"vite build --config vite.config.lib.js","prepublishOnly":"npm run build:lib"},"_npmUser":{"name":"meemawsh","email":"dotimasmay@gmail.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.12.1","description":"A customizable booking calendar component for Vue 2 with service, specialist, and customer management","directories":{},"_nodeVersion":"25.9.0","dependencies":{"date-fns":"^2.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^2.7.16","vite":"^5.4.0","vuex":"^3.6.2","@vitejs/plugin-vue2":"^2.3.1"},"peerDependencies":{"vue":"^2.7.0","vuex":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue2-booking-calendar_1.9.0_1778568797427_0.19605180348319395","host":"s3://npm-registry-packages-npm-production"}},"1.9.1":{"name":"vue2-booking-calendar","version":"1.9.1","keywords":["vue2","booking","calendar","scheduler","appointment","salon","spa","booking-system","vue-component"],"author":"","license":"MIT","_id":"vue2-booking-calendar@1.9.1","maintainers":[{"name":"meemawsh","email":"dotimasmay@gmail.com"}],"dist":{"shasum":"6b5025c666607d907a7dc6c215e47c53d19ced06","tarball":"https://registry.npmjs.org/vue2-booking-calendar/-/vue2-booking-calendar-1.9.1.tgz","fileCount":19,"integrity":"sha512-Jxj/RFLDCU+7w7V5zHDUkZa9ldQS/3qPNprW6HFqBaSjf/vGkoAnSJ6MqN4O017RRdkO9LZcsktAdPttybW2pw==","signatures":[{"sig":"MEUCIQCCRo+Ch2bxt2Qjc0K396b73a85XHIx3hzfRZZ3bPibNQIgd6CJSYRDqlAUN0ksyTlrFpfgeo0HIpc79cPvI3wwZc4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":487829},"main":"./dist/vue2-booking-calendar.umd.js","type":"module","module":"./dist/vue2-booking-calendar.es.js","exports":{".":{"import":"./dist/vue2-booking-calendar.es.js","require":"./dist/vue2-booking-calendar.umd.js"},"./dist/style.css":"./dist/style.css"},"scripts":{"dev":"vite","build":"vite build","preview":"vite preview","build:lib":"vite build --config vite.config.lib.js","prepublishOnly":"npm run build:lib"},"_npmUser":{"name":"meemawsh","email":"dotimasmay@gmail.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.12.1","description":"A customizable booking calendar component for Vue 2 with service, specialist, and customer management","directories":{},"_nodeVersion":"25.9.0","dependencies":{"date-fns":"^2.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^2.7.16","vite":"^5.4.0","vuex":"^3.6.2","@vitejs/plugin-vue2":"^2.3.1"},"peerDependencies":{"vue":"^2.7.0","vuex":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue2-booking-calendar_1.9.1_1778570021881_0.11417041724305999","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"vue2-booking-calendar","version":"2.0.0","keywords":["vue2","booking","calendar","scheduler","appointment","salon","spa","booking-system","vue-component"],"author":"","license":"MIT","_id":"vue2-booking-calendar@2.0.0","maintainers":[{"name":"meemawsh","email":"dotimasmay@gmail.com"}],"dist":{"shasum":"84077e54cd7844f2cc19535af769072080a6fe15","tarball":"https://registry.npmjs.org/vue2-booking-calendar/-/vue2-booking-calendar-2.0.0.tgz","fileCount":19,"integrity":"sha512-Oe9W+dSNulzX2QfK6g9yKYScFpn/5C+d1BfRBS+X2o5xa05z/3WpQzQkJK5qoO0Tb9Oe573lWnSlu6fSDtGNyw==","signatures":[{"sig":"MEUCIQDThWiqdkHOIlrSrc9Hh5mgaN57o9lxZXM7+1VBB+hYHAIgJs3SmRzSO/OQ3KdRmw8rVsswsUHd0hLJ0ZqT7gSNPbg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":487909},"main":"./dist/vue2-booking-calendar.umd.js","type":"module","module":"./dist/vue2-booking-calendar.es.js","exports":{".":{"import":"./dist/vue2-booking-calendar.es.js","require":"./dist/vue2-booking-calendar.umd.js"},"./dist/style.css":"./dist/style.css"},"scripts":{"dev":"vite","build":"vite build","preview":"vite preview","build:lib":"vite build --config vite.config.lib.js","prepublishOnly":"npm run build:lib"},"_npmUser":{"name":"meemawsh","email":"dotimasmay@gmail.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.12.1","description":"A customizable booking calendar component for Vue 2 with service, specialist, and customer management","directories":{},"_nodeVersion":"25.9.0","dependencies":{"date-fns":"^2.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^2.7.16","vite":"^5.4.0","vuex":"^3.6.2","@vitejs/plugin-vue2":"^2.3.1"},"peerDependencies":{"vue":"^2.7.0","vuex":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue2-booking-calendar_2.0.0_1778830207708_0.3752445942765863","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"vue2-booking-calendar","version":"2.0.1","keywords":["vue2","booking","calendar","scheduler","appointment","salon","spa","booking-system","vue-component"],"author":"","license":"MIT","_id":"vue2-booking-calendar@2.0.1","maintainers":[{"name":"meemawsh","email":"dotimasmay@gmail.com"}],"dist":{"shasum":"ad9cd928e996cdfe4af73da4626bcb621a446912","tarball":"https://registry.npmjs.org/vue2-booking-calendar/-/vue2-booking-calendar-2.0.1.tgz","fileCount":19,"integrity":"sha512-kth8sat5UhZHVCobsVlDz6p/5ilnw3O6M1Ma+VODFaBDunRMX5va6L+XO5fzjPo5QmptHjjJzQVe1cgx5AYe4A==","signatures":[{"sig":"MEUCIQDyMqCv9OBc57t6HTMhvItRfJZ3wmuemW9jGAa3IgePCQIgFi1+bko8wwlAhPo3OAxr4RSWL6ZmkK+AvFDuvwwvZrQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":488145},"main":"./dist/vue2-booking-calendar.umd.js","type":"module","module":"./dist/vue2-booking-calendar.es.js","exports":{".":{"import":"./dist/vue2-booking-calendar.es.js","require":"./dist/vue2-booking-calendar.umd.js"},"./dist/style.css":"./dist/style.css"},"scripts":{"dev":"vite","build":"vite build","preview":"vite preview","build:lib":"vite build --config vite.config.lib.js","prepublishOnly":"npm run build:lib"},"_npmUser":{"name":"meemawsh","email":"dotimasmay@gmail.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.12.1","description":"A customizable booking calendar component for Vue 2 with service, specialist, and customer management","directories":{},"_nodeVersion":"25.9.0","dependencies":{"date-fns":"^2.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^2.7.16","vite":"^5.4.0","vuex":"^3.6.2","@vitejs/plugin-vue2":"^2.3.1"},"peerDependencies":{"vue":"^2.7.0","vuex":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue2-booking-calendar_2.0.1_1779067711202_0.9412404907966629","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"vue2-booking-calendar","version":"2.1.0","keywords":["vue2","booking","calendar","scheduler","appointment","salon","spa","booking-system","vue-component"],"author":"","license":"MIT","_id":"vue2-booking-calendar@2.1.0","maintainers":[{"name":"meemawsh","email":"dotimasmay@gmail.com"}],"dist":{"shasum":"eaa2db8aa479f8c24f93d578a22dd03d35e1fb80","tarball":"https://registry.npmjs.org/vue2-booking-calendar/-/vue2-booking-calendar-2.1.0.tgz","fileCount":19,"integrity":"sha512-83cnaLCYCHx3dxq4N3z5ySde6HAZ16aKXO5Txx5mXHtmmb8UTvj22AmmUzWCQ+LnhK/jmsgDldiJQz3g+rLcmg==","signatures":[{"sig":"MEUCIHe4wCuqaRerVsI3lL/rPpKNFLamqSlEZivYmPNXLBDcAiEAyLMSRKodpGP+Bm3VG+7GuF1qRrVucZIahvhp0QpuZv4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":491499},"main":"./dist/vue2-booking-calendar.umd.js","type":"module","module":"./dist/vue2-booking-calendar.es.js","exports":{".":{"import":"./dist/vue2-booking-calendar.es.js","require":"./dist/vue2-booking-calendar.umd.js"},"./dist/style.css":"./dist/style.css"},"scripts":{"dev":"vite","build":"vite build","preview":"vite preview","build:lib":"vite build --config vite.config.lib.js","prepublishOnly":"npm run build:lib"},"_npmUser":{"name":"meemawsh","email":"dotimasmay@gmail.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.12.1","description":"A customizable booking calendar component for Vue 2 with service, specialist, and customer management","directories":{},"_nodeVersion":"25.9.0","dependencies":{"date-fns":"^2.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^2.7.16","vite":"^5.4.0","vuex":"^3.6.2","@vitejs/plugin-vue2":"^2.3.1"},"peerDependencies":{"vue":"^2.7.0","vuex":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue2-booking-calendar_2.1.0_1779071544075_0.7917539089135535","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"vue2-booking-calendar","version":"2.1.1","keywords":["vue2","booking","calendar","scheduler","appointment","salon","spa","booking-system","vue-component"],"author":"","license":"MIT","_id":"vue2-booking-calendar@2.1.1","maintainers":[{"name":"meemawsh","email":"dotimasmay@gmail.com"}],"dist":{"shasum":"d6f26fa5958ad3f3b222bcf8e47ec8dade95ac5f","tarball":"https://registry.npmjs.org/vue2-booking-calendar/-/vue2-booking-calendar-2.1.1.tgz","fileCount":19,"integrity":"sha512-AX396tTlHU1SE9fYa2NbahIHAPi0MVTfahoUQhvCbOYt5so+enVCQnMYh4ZIxaQ0IzzqGN+iWT+LoNXliqogNg==","signatures":[{"sig":"MEYCIQC42PlZsKTbA70dXezrNQ5kp4tmZVxCdj2ojifLH7fbfAIhAPtPvdeAHlAbs1FrmEk+BIa3dYL96y9ZIRe9lknPRlJO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":491932},"main":"./dist/vue2-booking-calendar.umd.js","type":"module","module":"./dist/vue2-booking-calendar.es.js","exports":{".":{"import":"./dist/vue2-booking-calendar.es.js","require":"./dist/vue2-booking-calendar.umd.js"},"./dist/style.css":"./dist/style.css"},"scripts":{"dev":"vite","build":"vite build","preview":"vite preview","build:lib":"vite build --config vite.config.lib.js","prepublishOnly":"npm run build:lib"},"_npmUser":{"name":"meemawsh","email":"dotimasmay@gmail.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.12.1","description":"A customizable booking calendar component for Vue 2 with service, specialist, and customer management","directories":{},"_nodeVersion":"25.9.0","dependencies":{"date-fns":"^2.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^2.7.16","vite":"^5.4.0","vuex":"^3.6.2","@vitejs/plugin-vue2":"^2.3.1"},"peerDependencies":{"vue":"^2.7.0","vuex":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue2-booking-calendar_2.1.1_1779244690772_0.048207974662141106","host":"s3://npm-registry-packages-npm-production"}},"2.1.2":{"name":"vue2-booking-calendar","version":"2.1.2","keywords":["vue2","booking","calendar","scheduler","appointment","salon","spa","booking-system","vue-component"],"author":"","license":"MIT","_id":"vue2-booking-calendar@2.1.2","maintainers":[{"name":"meemawsh","email":"dotimasmay@gmail.com"}],"dist":{"shasum":"3d5e5760eb3a5973d4b2745de3a272bfdae08817","tarball":"https://registry.npmjs.org/vue2-booking-calendar/-/vue2-booking-calendar-2.1.2.tgz","fileCount":19,"integrity":"sha512-Nnp3l/mBuHHLFVxuZ3OhUXRdTTLHqS4fI3Oj7t0XmQwSXLsmiOp1HjL2EiKaMkYXvoHYoP7Dd30mA8eXKzmbZA==","signatures":[{"sig":"MEQCIB+lq6iEUdl2ZQsBlSc94hm2RO3WlzjmtCVZrS4WkPpbAiAMGuCPInhsbm2FrMSi/9qPS3cARxTS2zGMrj3g97JRiA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":496083},"main":"./dist/vue2-booking-calendar.umd.js","type":"module","module":"./dist/vue2-booking-calendar.es.js","exports":{".":{"import":"./dist/vue2-booking-calendar.es.js","require":"./dist/vue2-booking-calendar.umd.js"},"./dist/style.css":"./dist/style.css"},"scripts":{"dev":"vite","build":"vite build","preview":"vite preview","build:lib":"vite build --config vite.config.lib.js","prepublishOnly":"npm run build:lib"},"_npmUser":{"name":"meemawsh","email":"dotimasmay@gmail.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.12.1","description":"A customizable booking calendar component for Vue 2 with service, specialist, and customer management","directories":{},"_nodeVersion":"25.9.0","dependencies":{"date-fns":"^2.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^2.7.16","vite":"^5.4.0","vuex":"^3.6.2","@vitejs/plugin-vue2":"^2.3.1"},"peerDependencies":{"vue":"^2.7.0","vuex":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue2-booking-calendar_2.1.2_1779348070549_0.020099939951690793","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"vue2-booking-calendar","version":"2.2.0","keywords":["vue2","booking","calendar","scheduler","appointment","salon","spa","booking-system","vue-component"],"author":"","license":"MIT","_id":"vue2-booking-calendar@2.2.0","maintainers":[{"name":"meemawsh","email":"dotimasmay@gmail.com"}],"dist":{"shasum":"6a64303913df8e0461fc61a462c878dce605e12a","tarball":"https://registry.npmjs.org/vue2-booking-calendar/-/vue2-booking-calendar-2.2.0.tgz","fileCount":19,"integrity":"sha512-i5xNAhb4ax0QE45HUpAxclt0114gOheneTyOfD5dCvZHRSnNDmlHt1xzx89Hlzb2czxenj82GT7NytCE5AUlMQ==","signatures":[{"sig":"MEYCIQCekkP/EaKbg/PX3MZCYEZvtpqh09aFqptLrdU/FFUQMgIhANdX6EaQzZaUOQ6yIRU1QhLTReptL9AO9OXm+Zj6GxjT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":516691},"main":"./dist/vue2-booking-calendar.umd.js","type":"module","module":"./dist/vue2-booking-calendar.es.js","exports":{".":{"import":"./dist/vue2-booking-calendar.es.js","require":"./dist/vue2-booking-calendar.umd.js"},"./dist/style.css":"./dist/style.css"},"scripts":{"dev":"vite","build":"vite build","preview":"vite preview","build:lib":"vite build --config vite.config.lib.js","prepublishOnly":"npm run build:lib"},"_npmUser":{"name":"meemawsh","email":"dotimasmay@gmail.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.12.1","description":"A customizable booking calendar component for Vue 2 with service, specialist, and customer management","directories":{},"_nodeVersion":"25.9.0","dependencies":{"date-fns":"^2.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^2.7.16","vite":"^5.4.0","vuex":"^3.6.2","@vitejs/plugin-vue2":"^2.3.1"},"peerDependencies":{"vue":"^2.7.0","vuex":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue2-booking-calendar_2.2.0_1779426414251_0.42791621547923997","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"vue2-booking-calendar","version":"2.4.0","keywords":["vue2","booking","calendar","scheduler","appointment","salon","spa","booking-system","vue-component"],"author":"","license":"MIT","_id":"vue2-booking-calendar@2.4.0","maintainers":[{"name":"meemawsh","email":"dotimasmay@gmail.com"}],"dist":{"shasum":"5ca363e0f979de856ba156d0ec1e512175442825","tarball":"https://registry.npmjs.org/vue2-booking-calendar/-/vue2-booking-calendar-2.4.0.tgz","fileCount":19,"integrity":"sha512-8CKzpJa2GbbIxn5G33eXmFq7zyDYq2GJ11qSvQ0LZS7RbP55/iccsfJtTk01sjfgZvJp+Si7cPMQ6fTVC0v2Lg==","signatures":[{"sig":"MEUCIHvZPwJVs7wCW6469gxVyFMSXX9iOeUhWM1ZgkofirrGAiEA7L49CjTp1M8j4qE5jrmEiGm2f1pjjuf9J2bJjc9VBaw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":510955},"main":"./dist/vue2-booking-calendar.umd.js","type":"module","module":"./dist/vue2-booking-calendar.es.js","exports":{".":{"import":"./dist/vue2-booking-calendar.es.js","require":"./dist/vue2-booking-calendar.umd.js"},"./dist/style.css":"./dist/style.css"},"scripts":{"dev":"vite","build":"vite build","preview":"vite preview","build:lib":"vite build --config vite.config.lib.js","prepublishOnly":"npm run build:lib"},"_npmUser":{"name":"meemawsh","email":"dotimasmay@gmail.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.12.1","description":"A customizable booking calendar component for Vue 2 with service, specialist, and customer management","directories":{},"_nodeVersion":"25.9.0","dependencies":{"date-fns":"^2.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^2.7.16","vite":"^5.4.0","vuex":"^3.6.2","@vitejs/plugin-vue2":"^2.3.1"},"peerDependencies":{"vue":"^2.7.0","vuex":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue2-booking-calendar_2.4.0_1779434155585_0.5194647748568029","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"vue2-booking-calendar","version":"2.5.0","keywords":["vue2","booking","calendar","scheduler","appointment","salon","spa","booking-system","vue-component"],"author":"","license":"MIT","_id":"vue2-booking-calendar@2.5.0","maintainers":[{"name":"meemawsh","email":"dotimasmay@gmail.com"}],"dist":{"shasum":"32eb19e7e7326e7ee3e4ff46a775ce51e5fafbcb","tarball":"https://registry.npmjs.org/vue2-booking-calendar/-/vue2-booking-calendar-2.5.0.tgz","fileCount":19,"integrity":"sha512-b9xszxpnbyH5bGe79eX8lX09KpD+8i2A7uDYYQ+LZmyU3uuHgt6YOMhNrZRpA4ONo1OPhF4y4J/f7hpDiEZfLg==","signatures":[{"sig":"MEQCICFFKrhfbodnmjIposhVFReOyp36sIKzT+nF3YOtQropAiAkzxy4UpDz98sBv7muMyWa1WTlhnzxG4rxwDskYIcAqA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":510955},"main":"./dist/vue2-booking-calendar.umd.js","type":"module","module":"./dist/vue2-booking-calendar.es.js","exports":{".":{"import":"./dist/vue2-booking-calendar.es.js","require":"./dist/vue2-booking-calendar.umd.js"},"./dist/style.css":"./dist/style.css"},"scripts":{"dev":"vite","build":"vite build","preview":"vite preview","build:lib":"vite build --config vite.config.lib.js","prepublishOnly":"npm run build:lib"},"_npmUser":{"name":"meemawsh","email":"dotimasmay@gmail.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.12.1","description":"A customizable booking calendar component for Vue 2 with service, specialist, and customer management","directories":{},"_nodeVersion":"25.9.0","dependencies":{"date-fns":"^2.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^2.7.16","vite":"^5.4.0","vuex":"^3.6.2","@vitejs/plugin-vue2":"^2.3.1"},"peerDependencies":{"vue":"^2.7.0","vuex":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue2-booking-calendar_2.5.0_1779434535790_0.8006746471502737","host":"s3://npm-registry-packages-npm-production"}},"2.5.1":{"name":"vue2-booking-calendar","version":"2.5.1","keywords":["vue2","booking","calendar","scheduler","appointment","salon","spa","booking-system","vue-component"],"author":"","license":"MIT","_id":"vue2-booking-calendar@2.5.1","maintainers":[{"name":"meemawsh","email":"dotimasmay@gmail.com"}],"dist":{"shasum":"697a0e0d80f7a07c26771ddae444c1ec90fda66e","tarball":"https://registry.npmjs.org/vue2-booking-calendar/-/vue2-booking-calendar-2.5.1.tgz","fileCount":19,"integrity":"sha512-aCQU3b8aZblsitxkbY4NS+wRL/KQvmeTvb1ziq2mXvQ0Cc2SXh8xP8DjmbMmha6mCVRl03zInFRa1VyY93+gtg==","signatures":[{"sig":"MEUCIQDGr+nDLrQ7gZwsks31d5AWOJPaAN7qBAvjlUUfM0l/mAIgBG/V39S/KH1vnM/mbF5nKmBvZEge0nyFqMTB33OjddE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":531821},"main":"./dist/vue2-booking-calendar.umd.js","type":"module","module":"./dist/vue2-booking-calendar.es.js","exports":{".":{"import":"./dist/vue2-booking-calendar.es.js","require":"./dist/vue2-booking-calendar.umd.js"},"./dist/style.css":"./dist/style.css"},"scripts":{"dev":"vite","build":"vite build","preview":"vite preview","build:lib":"vite build --config vite.config.lib.js","prepublishOnly":"npm run build:lib"},"_npmUser":{"name":"meemawsh","email":"dotimasmay@gmail.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.12.1","description":"A customizable booking calendar component for Vue 2 with service, specialist, and customer management","directories":{},"_nodeVersion":"25.9.0","dependencies":{"date-fns":"^2.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^2.7.16","vite":"^5.4.0","vuex":"^3.6.2","@vitejs/plugin-vue2":"^2.3.1"},"peerDependencies":{"vue":"^2.7.0","vuex":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue2-booking-calendar_2.5.1_1779458757404_0.6897090299646211","host":"s3://npm-registry-packages-npm-production"}},"2.6.0":{"name":"vue2-booking-calendar","version":"2.6.0","keywords":["vue2","booking","calendar","scheduler","appointment","salon","spa","booking-system","vue-component"],"author":"","license":"MIT","_id":"vue2-booking-calendar@2.6.0","maintainers":[{"name":"meemawsh","email":"dotimasmay@gmail.com"}],"dist":{"shasum":"13492a543e2436f7700191651eb871215efe36b6","tarball":"https://registry.npmjs.org/vue2-booking-calendar/-/vue2-booking-calendar-2.6.0.tgz","fileCount":19,"integrity":"sha512-Nc0THeOihElQyu8qL13nOYvM85ORzuepebE0QOKNiE9hp6D9ozkM7mo3nN3FUqmONka1ZzmNuK15AcMmeb3Vfw==","signatures":[{"sig":"MEUCID/6xYrfPBTviNWy3QjOm7dop2VlJGEgTbY2JMPx9NK4AiEAnFhpqYouM2qabE3eoOKoNl3jKWJg7vJxr3tlxz1RS7A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":549199},"main":"./dist/vue2-booking-calendar.umd.js","type":"module","module":"./dist/vue2-booking-calendar.es.js","exports":{".":{"import":"./dist/vue2-booking-calendar.es.js","require":"./dist/vue2-booking-calendar.umd.js"},"./dist/style.css":"./dist/style.css"},"scripts":{"dev":"vite","build":"vite build","preview":"vite preview","build:lib":"vite build --config vite.config.lib.js","prepublishOnly":"npm run build:lib"},"_npmUser":{"name":"meemawsh","email":"dotimasmay@gmail.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.12.1","description":"A customizable booking calendar component for Vue 2 with service, specialist, and customer management","directories":{},"_nodeVersion":"25.9.0","dependencies":{"date-fns":"^2.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^2.7.16","vite":"^5.4.0","vuex":"^3.6.2","@vitejs/plugin-vue2":"^2.3.1"},"peerDependencies":{"vue":"^2.7.0","vuex":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue2-booking-calendar_2.6.0_1779687421536_0.30420813707487926","host":"s3://npm-registry-packages-npm-production"}},"2.6.1":{"name":"vue2-booking-calendar","version":"2.6.1","keywords":["vue2","booking","calendar","scheduler","appointment","salon","spa","booking-system","vue-component"],"author":"","license":"MIT","_id":"vue2-booking-calendar@2.6.1","maintainers":[{"name":"meemawsh","email":"dotimasmay@gmail.com"}],"dist":{"shasum":"be45b49ad8f54ab5a316ac584a30f7066919908c","tarball":"https://registry.npmjs.org/vue2-booking-calendar/-/vue2-booking-calendar-2.6.1.tgz","fileCount":19,"integrity":"sha512-WiPTp6s0A4WO9way3D2+LBo/PBKrbKZJi56LDCIb/QRmnIUpT3i4LIlkC/qd1aw5AfoBbKV1PuIkztMNoPW+mA==","signatures":[{"sig":"MEUCIAcjkSHyH/5F2wqUvg3ENtF40V5Q7HRlXr6iVh8zaC1dAiEAx6hk1XfCbOe9Y2wc3elvhS+p/E4t3nc+g0oJxEstE68=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":549199},"main":"./dist/vue2-booking-calendar.umd.js","type":"module","module":"./dist/vue2-booking-calendar.es.js","exports":{".":{"import":"./dist/vue2-booking-calendar.es.js","require":"./dist/vue2-booking-calendar.umd.js"},"./dist/style.css":"./dist/style.css"},"scripts":{"dev":"vite","build":"vite build","preview":"vite preview","build:lib":"vite build --config vite.config.lib.js","prepublishOnly":"npm run build:lib"},"_npmUser":{"name":"meemawsh","email":"dotimasmay@gmail.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.12.1","description":"A customizable booking calendar component for Vue 2 with service, specialist, and customer management","directories":{},"_nodeVersion":"25.9.0","dependencies":{"date-fns":"^2.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^2.7.16","vite":"^5.4.0","vuex":"^3.6.2","@vitejs/plugin-vue2":"^2.3.1"},"peerDependencies":{"vue":"^2.7.0","vuex":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue2-booking-calendar_2.6.1_1779688085935_0.5017284174860195","host":"s3://npm-registry-packages-npm-production"}},"2.6.2":{"name":"vue2-booking-calendar","version":"2.6.2","keywords":["vue2","booking","calendar","scheduler","appointment","salon","spa","booking-system","vue-component"],"author":"","license":"MIT","_id":"vue2-booking-calendar@2.6.2","maintainers":[{"name":"meemawsh","email":"dotimasmay@gmail.com"}],"dist":{"shasum":"dfab8fa108a782fc81d88f602737553e3eba35f2","tarball":"https://registry.npmjs.org/vue2-booking-calendar/-/vue2-booking-calendar-2.6.2.tgz","fileCount":19,"integrity":"sha512-/vjnZN+Is8V/2rzxTynrdKD3xo85F3SvgHCuhMQHdjHH8RdfoB3gPu/hA0qYl/Y1WiBkHolQZWVBXuFM3y616A==","signatures":[{"sig":"MEUCICRKaZcr0RY0iE8771R5YtzTwiyzxpszfRLpKWLt/S8RAiEA1mTWsybbEMypOWu/g20An7zQE1GqIMYcNx3a6o26TlI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":549202},"main":"./dist/vue2-booking-calendar.umd.js","type":"module","module":"./dist/vue2-booking-calendar.es.js","exports":{".":{"import":"./dist/vue2-booking-calendar.es.js","require":"./dist/vue2-booking-calendar.umd.js"},"./dist/style.css":"./dist/style.css"},"scripts":{"dev":"vite","build":"vite build","preview":"vite preview","build:lib":"vite build --config vite.config.lib.js","prepublishOnly":"npm run build:lib"},"_npmUser":{"name":"meemawsh","email":"dotimasmay@gmail.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.12.1","description":"A customizable booking calendar component for Vue 2 with service, specialist, and customer management","directories":{},"_nodeVersion":"25.9.0","dependencies":{"date-fns":"^2.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^2.7.16","vite":"^5.4.0","vuex":"^3.6.2","@vitejs/plugin-vue2":"^2.3.1"},"peerDependencies":{"vue":"^2.7.0","vuex":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue2-booking-calendar_2.6.2_1780360037074_0.7762214533862122","host":"s3://npm-registry-packages-npm-production"}},"2.6.3":{"name":"vue2-booking-calendar","version":"2.6.3","keywords":["vue2","booking","calendar","scheduler","appointment","salon","spa","booking-system","vue-component"],"author":"","license":"MIT","_id":"vue2-booking-calendar@2.6.3","maintainers":[{"name":"meemawsh","email":"dotimasmay@gmail.com"}],"dist":{"shasum":"b10407094009813dedf813439711b921020fc07c","tarball":"https://registry.npmjs.org/vue2-booking-calendar/-/vue2-booking-calendar-2.6.3.tgz","fileCount":19,"integrity":"sha512-bP5YzFUkJLyHhZFQRzRekRInRAEm6zAawQ5PArp8V2J1fxnWPbtpeb/9sc7MeIcTh0m4IqMAijJygUbsZhg/CQ==","signatures":[{"sig":"MEUCIQDKMEJxrZvpp1hK176A+Dj30NbQvw2/ybzE73pw5QgS+gIgI1tMSvwZRET4bTOpWj/GjQnk9BN+db2YZcG+SsycI/w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":552997},"main":"./dist/vue2-booking-calendar.umd.js","type":"module","module":"./dist/vue2-booking-calendar.es.js","exports":{".":{"import":"./dist/vue2-booking-calendar.es.js","require":"./dist/vue2-booking-calendar.umd.js"},"./dist/style.css":"./dist/style.css"},"scripts":{"dev":"vite","build":"vite build","preview":"vite preview","build:lib":"vite build --config vite.config.lib.js","prepublishOnly":"npm run build:lib"},"_npmUser":{"name":"meemawsh","email":"dotimasmay@gmail.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.12.1","description":"A customizable booking calendar component for Vue 2 with service, specialist, and customer management","directories":{},"_nodeVersion":"25.9.0","dependencies":{"date-fns":"^2.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^2.7.16","vite":"^5.4.0","vuex":"^3.6.2","@vitejs/plugin-vue2":"^2.3.1"},"peerDependencies":{"vue":"^2.7.0","vuex":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue2-booking-calendar_2.6.3_1780361761836_0.6156180513990068","host":"s3://npm-registry-packages-npm-production"}},"2.7.0":{"name":"vue2-booking-calendar","version":"2.7.0","keywords":["vue2","booking","calendar","scheduler","appointment","salon","spa","booking-system","vue-component"],"author":"","license":"MIT","_id":"vue2-booking-calendar@2.7.0","maintainers":[{"name":"meemawsh","email":"dotimasmay@gmail.com"}],"dist":{"shasum":"0135e2ed671532546e1c89b904264da9768eb2d6","tarball":"https://registry.npmjs.org/vue2-booking-calendar/-/vue2-booking-calendar-2.7.0.tgz","fileCount":19,"integrity":"sha512-YMTFkitioKuVciKAQNu4la0FDZb9ST/HWUvBOmj6QVDRkuRn7UX+fp/CK5GayP7+QyMXaVj1G353HnoISCYBSQ==","signatures":[{"sig":"MEYCIQDDzOeCgt1qh4051RbmSZzGMBsFxHfRRcEMfdu7yhNd+gIhALM2QoXnY1yduLOBDIIj3sFm4LxhAM2T/XapKHZ+PoeJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":565594},"main":"./dist/vue2-booking-calendar.umd.js","type":"module","module":"./dist/vue2-booking-calendar.es.js","exports":{".":{"import":"./dist/vue2-booking-calendar.es.js","require":"./dist/vue2-booking-calendar.umd.js"},"./dist/style.css":"./dist/style.css"},"gitHead":"98d9b2d66e9d8142e67c036691349f9acf46912e","scripts":{"dev":"vite","build":"vite build","preview":"vite preview","build:lib":"vite build --config vite.config.lib.js","prepublishOnly":"npm run build:lib"},"_npmUser":{"name":"meemawsh","email":"dotimasmay@gmail.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.12.1","description":"A customizable booking calendar component for Vue 2 with service, specialist, and customer management","directories":{},"_nodeVersion":"25.9.0","dependencies":{"date-fns":"^2.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^2.7.16","vite":"^5.4.0","vuex":"^3.6.2","@vitejs/plugin-vue2":"^2.3.1"},"peerDependencies":{"vue":"^2.7.0","vuex":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue2-booking-calendar_2.7.0_1782111825244_0.06582267739960068","host":"s3://npm-registry-packages-npm-production"}},"2.7.1":{"name":"vue2-booking-calendar","version":"2.7.1","keywords":["vue2","booking","calendar","scheduler","appointment","salon","spa","booking-system","vue-component"],"author":"","license":"MIT","_id":"vue2-booking-calendar@2.7.1","maintainers":[{"name":"meemawsh","email":"dotimasmay@gmail.com"}],"dist":{"shasum":"2456d74c9ff7e58ff6993cc627d06fa02b491de2","tarball":"https://registry.npmjs.org/vue2-booking-calendar/-/vue2-booking-calendar-2.7.1.tgz","fileCount":19,"integrity":"sha512-sS4KGTUlUEnXExDnA4XQlb/ZmTphARid6KQ8hD9d/TrHclnqLA4DoWaFbabIgzFmz/InG8eh6bB3GTYtut3IxQ==","signatures":[{"sig":"MEUCIEm08tvZvGo3gram+RrJFo2uyHROwNBLxvsTXomLaNO1AiEA5OocjxMRj7mI0OlEWuD1VpNIKq+Nv2TFm8ZwpgFz0Dk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":565554},"main":"./dist/vue2-booking-calendar.umd.js","type":"module","module":"./dist/vue2-booking-calendar.es.js","exports":{".":{"import":"./dist/vue2-booking-calendar.es.js","require":"./dist/vue2-booking-calendar.umd.js"},"./dist/style.css":"./dist/style.css"},"gitHead":"98d9b2d66e9d8142e67c036691349f9acf46912e","scripts":{"dev":"vite","build":"vite build","preview":"vite preview","build:lib":"vite build --config vite.config.lib.js","prepublishOnly":"npm run build:lib"},"_npmUser":{"name":"meemawsh","email":"dotimasmay@gmail.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.12.1","description":"A customizable booking calendar component for Vue 2 with service, specialist, and customer management","directories":{},"_nodeVersion":"25.9.0","dependencies":{"date-fns":"^2.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^2.7.16","vite":"^5.4.0","vuex":"^3.6.2","@vitejs/plugin-vue2":"^2.3.1"},"peerDependencies":{"vue":"^2.7.0","vuex":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue2-booking-calendar_2.7.1_1782364058491_0.6394526502120534","host":"s3://npm-registry-packages-npm-production"}},"2.7.2":{"name":"vue2-booking-calendar","version":"2.7.2","keywords":["vue2","booking","calendar","scheduler","appointment","salon","spa","booking-system","vue-component"],"author":"","license":"MIT","_id":"vue2-booking-calendar@2.7.2","maintainers":[{"name":"meemawsh","email":"dotimasmay@gmail.com"}],"dist":{"shasum":"4fe208b729a66edfcfe9da8b1e41b3ef3945ffec","tarball":"https://registry.npmjs.org/vue2-booking-calendar/-/vue2-booking-calendar-2.7.2.tgz","fileCount":19,"integrity":"sha512-Jow8f3LjnXDyKw1Yra19pK2he2qaNI8i2Xx9kvAdd4gFgbmmoEZoL/BKSc159qA4hbSR7PD+rjXzPN6ml5GfTQ==","signatures":[{"sig":"MEQCICeH6S0OZ4gnwZuNuaP4t+amIkgDe3GM/7KKuFXBQcCKAiAGPoZShGzdYy3GV+2JOycnDDbeom4x05yl/NA5VGAjRw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":565554},"main":"./dist/vue2-booking-calendar.umd.js","type":"module","module":"./dist/vue2-booking-calendar.es.js","exports":{".":{"import":"./dist/vue2-booking-calendar.es.js","require":"./dist/vue2-booking-calendar.umd.js"},"./dist/style.css":"./dist/style.css"},"gitHead":"98d9b2d66e9d8142e67c036691349f9acf46912e","scripts":{"dev":"vite","build":"vite build","preview":"vite preview","build:lib":"vite build --config vite.config.lib.js","prepublishOnly":"npm run build:lib"},"_npmUser":{"name":"meemawsh","email":"dotimasmay@gmail.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.12.1","description":"A customizable booking calendar component for Vue 2 with service, specialist, and customer management","directories":{},"_nodeVersion":"25.9.0","dependencies":{"date-fns":"^2.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^2.7.16","vite":"^5.4.0","vuex":"^3.6.2","@vitejs/plugin-vue2":"^2.3.1"},"peerDependencies":{"vue":"^2.7.0","vuex":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue2-booking-calendar_2.7.2_1784192418935_0.6629227359167431","host":"s3://npm-registry-packages-npm-production"}},"2.8.0":{"name":"vue2-booking-calendar","version":"2.8.0","description":"A customizable booking calendar component for Vue 2 with service, specialist, and customer management","author":"","license":"MIT","type":"module","main":"./dist/vue2-booking-calendar.umd.js","module":"./dist/vue2-booking-calendar.es.js","exports":{".":{"import":"./dist/vue2-booking-calendar.es.js","require":"./dist/vue2-booking-calendar.umd.js"},"./dist/style.css":"./dist/style.css"},"scripts":{"dev":"vite","build":"vite build","build:lib":"vite build --config vite.config.lib.js","preview":"vite preview","prepublishOnly":"npm run build:lib"},"keywords":["vue2","booking","calendar","scheduler","appointment","salon","spa","booking-system","vue-component"],"repository":{"type":"git","url":""},"peerDependencies":{"vue":"^2.7.0","vuex":"^3.0.0"},"dependencies":{"date-fns":"^2.30.0"},"devDependencies":{"@vitejs/plugin-vue2":"^2.3.1","vite":"^5.4.0","vue":"^2.7.16","vuex":"^3.6.2"},"gitHead":"98d9b2d66e9d8142e67c036691349f9acf46912e","_id":"vue2-booking-calendar@2.8.0","_nodeVersion":"25.9.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-oA582Nc+jnPwX+dGGAR9/BeIQeBmlw3kvz2AL+0t7c4O3EiMD8G5p8+WmdEr0thCk79cyc+3t8cYViZEDRW5xg==","shasum":"54b85989701ec0c72a69a8749047ca4d307aea2f","tarball":"https://registry.npmjs.org/vue2-booking-calendar/-/vue2-booking-calendar-2.8.0.tgz","fileCount":19,"unpackedSize":571982,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHkDsGfMmhWKYf3CorD6QquzvTgFncXHkLFxfQyOq+89AiAyz6/ZIThR+fVOB8+lemh0qsvSOVqoQXejTsLlMuxhqA=="}]},"_npmUser":{"name":"meemawsh","email":"dotimasmay@gmail.com"},"directories":{},"maintainers":[{"name":"meemawsh","email":"dotimasmay@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/vue2-booking-calendar_2.8.0_1784268226401_0.33236952956802646"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-26T16:40:59.803Z","modified":"2026-07-17T06:03:47.711Z","1.0.0":"2026-04-26T16:40:59.950Z","1.1.0":"2026-04-27T09:23:05.279Z","1.2.0":"2026-04-29T03:54:07.319Z","1.3.0":"2026-05-05T06:43:05.167Z","1.4.0":"2026-05-06T07:19:25.545Z","1.5.0":"2026-05-07T03:13:01.342Z","1.8.0":"2026-05-08T08:18:22.829Z","1.8.1":"2026-05-08T08:32:54.542Z","1.9.0":"2026-05-12T06:53:17.591Z","1.9.1":"2026-05-12T07:13:42.034Z","2.0.0":"2026-05-15T07:30:07.874Z","2.0.1":"2026-05-18T01:28:31.358Z","2.1.0":"2026-05-18T02:32:24.236Z","2.1.1":"2026-05-20T02:38:10.918Z","2.1.2":"2026-05-21T07:21:10.692Z","2.2.0":"2026-05-22T05:06:54.480Z","2.4.0":"2026-05-22T07:15:55.792Z","2.5.0":"2026-05-22T07:22:15.961Z","2.5.1":"2026-05-22T14:05:57.571Z","2.6.0":"2026-05-25T05:37:01.723Z","2.6.1":"2026-05-25T05:48:06.112Z","2.6.2":"2026-06-02T00:27:17.297Z","2.6.3":"2026-06-02T00:56:02.078Z","2.7.0":"2026-06-22T07:03:45.400Z","2.7.1":"2026-06-25T05:07:38.716Z","2.7.2":"2026-07-16T09:00:19.073Z","2.8.0":"2026-07-17T06:03:46.544Z"},"license":"MIT","keywords":["vue2","booking","calendar","scheduler","appointment","salon","spa","booking-system","vue-component"],"repository":{"type":"git","url":""},"description":"A customizable booking calendar component for Vue 2 with service, specialist, and customer management","maintainers":[{"name":"meemawsh","email":"dotimasmay@gmail.com"}],"readme":"# vue2-booking-calendar\n\nA customizable booking calendar component for Vue 2 with service, specialist, and customer management.\n\n## Features\n\n- Month, week, and day views\n- Booking creation with bidirectional cascading dropdowns (brand ↔ branch ↔ service ↔ specialist ↔ customer)\n- Select any field first — all other dropdowns filter automatically\n- View booking details with full customer info (name, email, phone, address, notes)\n- No-show and cancel booking with confirmation dialogs\n- Specialist availability side panel with booked slot detection\n- New customer inline creation from booking form\n- Per-service duration with auto-computed end times\n- Customizable business hours (standard, 24h, and overnight schedules)\n- Event callbacks with custom function editors and live log\n- Full JSON configuration for dropdown options and sample events\n- Drag and drop events with 15-minute snap granularity\n- SVG icons throughout\n- Fully customizable via slots\n\n## Installation\n\n```bash\nnpm install vue2-booking-calendar\n```\n\n## Quick Start\n\n```js\nimport Vue from 'vue'\nimport Vuex from 'vuex'\nimport BookingCalendar, { storeConfig } from 'vue2-booking-calendar'\nimport 'vue2-booking-calendar/dist/style.css'\n\nVue.use(Vuex)\nVue.use(BookingCalendar)\n\nconst store = new Vuex.Store(storeConfig)\n\nnew Vue({\n  store,\n  template: '<BookingCalendar />'\n}).$mount('#app')\n```\n\n### Initializing with Custom Data\n\nPass your own brands, branches, services, specialists, and customers at setup:\n\n```js\nconst store = new Vuex.Store({\n  ...storeConfig,\n  state() {\n    const state = storeConfig.state()\n\n    // Set your dropdown data\n    state.config.dropdownOptions.brand = [\n      { uuid: 'b1', name: 'My Salon' },\n      { uuid: 'b2', name: 'My Spa' }\n    ]\n\n    state.config.dropdownOptions.branch = [\n      { uuid: 'br1', brand_uuid: 'b1', name: 'Main Street' },\n      { uuid: 'br2', brand_uuid: 'b1', name: 'Mall Location' },\n      { uuid: 'br3', brand_uuid: 'b2', name: 'Downtown' }\n    ]\n\n    state.config.dropdownOptions.service = [\n      { uuid: 'sv1', name: 'Haircut', duration: 60, brands: ['b1'], branches: ['br1', 'br2'], specialists: ['sp1', 'sp2'] },\n      { uuid: 'sv2', name: 'Massage', duration: 90, brands: ['b2'], branches: ['br3'], specialists: ['sp3'] }\n    ]\n\n    state.config.dropdownOptions.specialist = [\n      { uuid: 'sp1', name: 'Jane Smith', services: ['sv1'], brand_uuid: 'b1', branch_uuid: 'br1', availability: { monday: ['09:00','09:30','10:00'], tuesday: ['09:00','09:30'], wednesday: [], thursday: [], friday: [], saturday: [], sunday: [] } },\n      { uuid: 'sp2', name: 'Bob Jones', services: ['sv1'], brand_uuid: 'b1', branch_uuid: 'br2', availability: { monday: ['10:00','10:30','11:00'], tuesday: [], wednesday: ['09:00','09:30'], thursday: [], friday: [], saturday: [], sunday: [] } },\n      { uuid: 'sp3', name: 'Dr. Lee', services: ['sv2'], brand_uuid: 'b2', branch_uuid: 'br3', availability: { monday: ['14:00','14:30','15:00'], tuesday: ['14:00','14:30'], wednesday: [], thursday: [], friday: [], saturday: [], sunday: [] } }\n    ]\n\n    state.config.dropdownOptions.customer = [\n      { uuid: 'c1', name: 'Alice Brown', email: 'alice@example.com', phone: '+1 555-0101', gender: 'Female', address: '123 Oak St', notes: '' },\n      { uuid: 'c2', name: 'Charlie Davis', email: 'charlie@example.com', phone: '+1 555-0102', gender: 'Male', address: '', notes: 'VIP' }\n    ]\n\n    state.config.dropdownOptions.time = [\n      '09:00', '09:30', '10:00', '10:30', '11:00', '11:30',\n      '12:00', '12:30', '13:00', '13:30', '14:00', '14:30',\n      '15:00', '15:30', '16:00', '16:30', '17:00'\n    ]\n\n    // Clear sample events (start empty)\n    state.events = []\n\n    return state\n  }\n})\n```\n\n### Loading Data from API\n\n```js\n// After store is created, fetch and set data dynamically\nasync function loadCalendarData() {\n  const [brands, branches, services, specialists, customers] = await Promise.all([\n    fetch('/api/brands').then(r => r.json()),\n    fetch('/api/branches').then(r => r.json()),\n    fetch('/api/services').then(r => r.json()),\n    fetch('/api/specialists').then(r => r.json()),\n    fetch('/api/customers').then(r => r.json())\n  ])\n\n  store.commit('SET_CONFIG', { key: 'dropdownOptions.brand', value: brands })\n  store.commit('SET_CONFIG', { key: 'dropdownOptions.branch', value: branches })\n  store.commit('SET_CONFIG', { key: 'dropdownOptions.service', value: services })\n  store.commit('SET_CONFIG', { key: 'dropdownOptions.specialist', value: specialists })\n  store.commit('SET_CONFIG', { key: 'dropdownOptions.customer', value: customers })\n\n  // Load existing bookings\n  const events = await fetch('/api/bookings').then(r => r.json())\n  store.commit('SET_EVENTS', events)\n}\n\nloadCalendarData()\n```\n\n## Configuration\n\nAll configuration is managed through the Vuex store `config` object. You can override defaults before creating the store:\n\n```js\nconst store = new Vuex.Store({\n  ...storeConfig,\n  state() {\n    const state = storeConfig.state()\n    // Override config\n    state.config.businessHoursStart = 9\n    state.config.businessHoursEnd = 17\n    state.config.timeFormat = '24h'\n    state.config.showLogo = false\n    return state\n  }\n})\n```\n\n### Config Options\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `slotDuration` | `number` | `60` | Time slot duration in minutes (15, 30, 60) |\n| `businessHoursStart` | `number` | `8` | Business hours start (0-23) |\n| `businessHoursEnd` | `number` | `18` | Business hours end (0-23) |\n| `is24HourOperation` | `boolean` | `false` | Enable 24-hour operation (disables business hours filtering) |\n| `timeFormat` | `string` | `'12h'` | Time display format (`'12h'` or `'24h'`) |\n| `firstDayOfWeek` | `number` | `0` | First day of week (0 = Sunday, 1 = Monday) |\n| `showWeekends` | `boolean` | `true` | Show weekend columns |\n| `maxVisibleEvents` | `number` | `3` | Max events visible per day in month view |\n| `defaultEventDuration` | `number` | `60` | Fallback duration when service has no duration |\n| `sidebarPosition` | `string` | `'left'` | Mini calendar sidebar position (`'left'`, `'right'`, `'none'`) |\n| `showHeader` | `boolean` | `true` | Show calendar navigation header |\n| `showLogo` | `boolean` | `true` | Show the logo header bar |\n| `showCustomizationPanel` | `boolean` | `true` | Show the customization settings panel |\n| `showManageButton` | `boolean` | `true` | Show the Manage button in the view booking footer |\n| `showCompleteButton` | `boolean` | `true` | Show the Complete action in the Actions dropdown |\n| `showCancelButton` | `boolean` | `true` | Show the Cancel Booking action in the Actions dropdown |\n| `showViewEventModal` | `boolean` | `true` | Show the view booking dialog when clicking an event (callback still fires when disabled) |\n| `maxVisibleEvents` | `number` | `3` | Max events visible per hour slot in week/day views (overflow shows \"+N more\" badge) |\n| `allowPastDateBooking` | `boolean` | `false` | Allow creating bookings on past dates |\n| `actionsPosition` | `string` | `'left'` | Actions dropdown position in footer (`'left'`, `'center'`, `'right'`) |\n| `buttonRadius` | `string` | `'rounded'` | Button border-radius style (`'square'`, `'rounded'`, `'pill'`) |\n| `showSelectCustomer` | `boolean` | `true` | Show existing customer dropdown in booking form |\n| `showNewCustomer` | `boolean` | `true` | Show new customer inline form in booking form |\n| `showCurrentTime` | `boolean` | `true` | Show current time indicator line |\n| `highlightToday` | `boolean` | `true` | Highlight today's column |\n| `eventBorderRadius` | `string` | `'rounded'` | Event card style (`'rounded'` or `'square'`) |\n| `dayStartHour` | `number` | `0` | Hour to start the day view from |\n### Booking Field Visibility\n\nControl which fields appear in the booking form and view modal:\n\n```js\nbookingFields: {\n  brand: true,       // Show in create/edit form\n  branch: true,\n  service: true,\n  date: true,\n  time: true,\n  specialist: true,\n  customer: true,\n  color: true\n}\n\nviewFields: {\n  brand: true,       // Show in view booking modal\n  branch: true,\n  service: true,\n  date: true,\n  time: true,\n  specialist: true,\n  customer: true\n}\n```\n\n### Business Hours\n\n**Standard schedule** (e.g. 8 AM – 6 PM):\n```js\nbusinessHoursStart: 8,\nbusinessHoursEnd: 18,\nis24HourOperation: false\n```\n\n**Overnight schedule** (e.g. 8 PM – 5 AM):\n```js\nbusinessHoursStart: 20,\nbusinessHoursEnd: 5,\nis24HourOperation: false\n```\n\n**24-hour operation**:\n```js\nis24HourOperation: true\n```\n\n## Dropdown Data Formats\n\n### Brand\n\n```json\n{ \"uuid\": \"b1a2c3d4-...\", \"name\": \"RUSH Salon\" }\n```\n\n### Branch\n\n```json\n{\n  \"uuid\": \"br1-0001-...\",\n  \"brand_uuid\": \"b1a2c3d4-...\",\n  \"name\": \"Downtown\"\n}\n```\n\n### Service\n\n```json\n{\n  \"uuid\": \"sv-0001\",\n  \"name\": \"Haircut\",\n  \"duration\": 60,\n  \"brands\": [\"b1a2c3d4-...\"],\n  \"branches\": [\"br1-0001-...\", \"br1-0002-...\"],\n  \"specialists\": [\"sp-0001\", \"sp-0002\"]\n}\n```\n\n- `duration` — service duration in minutes, used to auto-compute booking end time\n- `brands` — list of brand UUIDs that offer this service\n- `branches` — list of branch UUIDs where this service is available\n- `specialists` — list of specialist UUIDs who can perform this service\n\n### Specialist\n\n```json\n{\n  \"uuid\": \"sp-0001\",\n  \"name\": \"Maria Santos\",\n  \"services\": [\"sv-0001\", \"sv-0002\"],\n  \"brand_uuid\": \"b1a2c3d4-...\",\n  \"branch_uuid\": \"br1-0001-...\",\n  \"availability\": {\n    \"monday\": [\"09:00\", \"09:30\", \"10:00\", \"10:30\", \"11:00\"],\n    \"tuesday\": [\"09:00\", \"09:30\", \"10:00\"],\n    \"wednesday\": [],\n    \"thursday\": [\"14:00\", \"14:30\", \"15:00\"],\n    \"friday\": [\"09:00\", \"09:30\", \"10:00\", \"10:30\"],\n    \"saturday\": [],\n    \"sunday\": []\n  }\n}\n```\n\n- `brand_uuid` — single brand the specialist belongs to\n- `branch_uuid` — single branch the specialist is assigned to\n- `availability` — time slots per day of week (used by the availability side panel)\n- When a specialist + date are selected, the availability panel shows available/booked slots\n\n### Customer\n\n```json\n{\n  \"uuid\": \"cu-0001\",\n  \"name\": \"John Doe\",\n  \"email\": \"john.doe@email.com\",\n  \"phone\": \"+1 (555) 100-2001\",\n  \"gender\": \"Male\",\n  \"address\": \"123 Main St, New York, NY 10001\",\n  \"notes\": \"Prefers short fade on sides\"\n}\n```\n\nAll customer details are displayed in the view booking modal. New customers can be created inline from the booking form.\n\n### Customer Search & Selection\n\nThe booking form provides a searchable customer field:\n\n- **Search by name or mobile** — type in the search box to filter customers in real-time\n- **Phone search** — strips non-numeric characters for flexible matching (e.g. \"555\" matches \"+1 (555) 100-2001\")\n- **Customer details** — when a customer is selected, their full details (name, phone, email, address, notes) are displayed in a read-only form below\n- **New customer creation** — toggle to inline form with first name, last name, mobile, email\n- **Duplicate check** — \"Check Record\" button searches existing customers by phone/email/name before creating a new one. If matches found, user can select an existing customer instead\n\n### Time Slots\n\n```json\n[\"09:00\", \"09:30\", \"10:00\", \"10:30\", \"11:00\", \"11:30\", \"12:00\", ...]\n```\n\nTime slots outside business hours are automatically disabled in the booking form.\n\n## Drag & Drop\n\nEvents can be dragged and dropped between time slots in week and day views:\n\n- **15-minute snapping** — drop position within the hour cell determines the minute offset (top quarter = `:00`, second = `:15`, third = `:30`, bottom = `:45`)\n- **Auto-collapse** — clicking any event or empty cell automatically collapses all expanded \"+N more\" sections\n- **Duration preserved** — the event's original duration is maintained after moving\n\n## Event Data Format\n\n```json\n{\n  \"id\": \"s1\",\n  \"title\": \"Haircut\",\n  \"brand\": \"b1a2c3d4-...\",\n  \"branch\": \"br1-0001-...\",\n  \"service\": \"sv-0001\",\n  \"specialist\": \"sp-0001\",\n  \"customer\": \"cu-0001\",\n  \"start\": \"2025-01-10T09:00:00.000Z\",\n  \"end\": \"2025-01-10T10:00:00.000Z\",\n  \"color\": \"#FF6B00\"\n}\n```\n\n## Callbacks\n\nAll callbacks can be toggled on/off and have customizable function bodies:\n\n| Callback | Fires When | Payload |\n|----------|-----------|---------|\n| `onEventCreate` | New booking saved | `{ id, title, start, end }` |\n| `onEventUpdate` | Booking edited | `{ id, title, start, end }` |\n| `onEventDelete` | Booking deleted | `{ id }` |\n| `onEventClick` | Booking clicked/viewed | `{ id, title }` |\n| `onDateChange` | Calendar navigated | `{ date, direction }` |\n| `onViewChange` | View switched | `{ view }` |\n| `onSlotClick` | Empty slot clicked | `{ date, hour }` |\n| `onEventDrop` | Event drag & dropped | `{ id, from, to }` |\n| `onSpecialistScheduleCheck` | Availability panel loads | `{ specialist_uuid, specialist_name, date, day, available_slots, booked_slots, total_available, total_booked }` |\n| `onBookingCancel` | Cancel booking confirmed | `{ id, title, customer, specialist }` |\n| `onBookingNoShow` | No-show confirmed | `{ id, title, customer, specialist }` |\n| `onBookingComplete` | Booking marked as complete | `{ id, title, customer, specialist }` |\n\n### Custom Callback Functions\n\nEach callback has an editable function body that receives a `payload` argument:\n\n```js\ncallbackFns: {\n  onEventCreate: 'console.log(\"Event created:\", payload)',\n  onSpecialistScheduleCheck: `\n    // Fetch real availability from API\n    fetch('/api/availability?specialist=' + payload.specialist_uuid + '&date=' + payload.date)\n      .then(r => r.json())\n      .then(data => console.log(data))\n  `\n}\n```\n\n### Callback Examples\n\n#### onEventCreate — Send new booking to API\n\n```js\ncallbackFns: {\n  onEventCreate: `\n    fetch('/api/bookings', {\n      method: 'POST',\n      headers: { 'Content-Type': 'application/json' },\n      body: JSON.stringify(payload)\n    })\n    .then(r => r.json())\n    .then(data => console.log('Booking saved:', data.id))\n    .catch(err => console.error('Failed to save:', err))\n  `\n}\n```\n\n#### onEventUpdate — Sync changes to backend\n\n```js\ncallbackFns: {\n  onEventUpdate: `\n    fetch('/api/bookings/' + payload.id, {\n      method: 'PUT',\n      headers: { 'Content-Type': 'application/json' },\n      body: JSON.stringify(payload)\n    })\n    .then(() => console.log('Booking updated:', payload.id))\n  `\n}\n```\n\n#### onEventDelete — Delete from backend with confirmation log\n\n```js\ncallbackFns: {\n  onEventDelete: `\n    fetch('/api/bookings/' + payload.id, { method: 'DELETE' })\n      .then(() => console.log('Booking deleted:', payload.id))\n  `\n}\n```\n\n#### onEventClick — Track booking views in analytics\n\n```js\ncallbackFns: {\n  onEventClick: `\n    if (window.gtag) {\n      gtag('event', 'view_booking', {\n        booking_id: payload.id,\n        booking_title: payload.title\n      })\n    }\n    console.log('Viewed booking:', payload.title)\n  `\n}\n```\n\n#### onDateChange — Load events for the new date range\n\n```js\ncallbackFns: {\n  onDateChange: `\n    console.log('Calendar navigated:', payload.direction, 'to', payload.date)\n    // Fetch events for the new visible range\n    // fetch('/api/bookings?date=' + payload.date)\n    //   .then(r => r.json())\n    //   .then(events => store.commit('SET_EVENTS', events))\n  `\n}\n```\n\n#### onViewChange — Persist user's preferred view\n\n```js\ncallbackFns: {\n  onViewChange: `\n    localStorage.setItem('calendarView', payload.view)\n    console.log('View changed to:', payload.view)\n  `\n}\n```\n\n#### onSlotClick — Pre-fill booking from clicked slot\n\n```js\ncallbackFns: {\n  onSlotClick: `\n    console.log('Slot clicked:', payload.date, 'at', payload.hour + ':00')\n  `\n}\n```\n\n#### onEventDrop — Update booking after drag & drop\n\n```js\ncallbackFns: {\n  onEventDrop: `\n    fetch('/api/bookings/' + payload.id + '/reschedule', {\n      method: 'PATCH',\n      headers: { 'Content-Type': 'application/json' },\n      body: JSON.stringify({ from: payload.from, to: payload.to })\n    })\n    .then(() => console.log('Booking rescheduled:', payload.id))\n  `\n}\n```\n\n#### onSpecialistScheduleCheck — Fetch real-time availability from API\n\n```js\ncallbackFns: {\n  onSpecialistScheduleCheck: `\n    console.log('Checking schedule for', payload.specialist_name, 'on', payload.date)\n    console.log('Day:', payload.day)\n    console.log('Available slots:', payload.total_available)\n    console.log('Booked slots:', payload.total_booked)\n    console.log('Available times:', payload.available_slots.join(', '))\n    console.log('Booked times:', payload.booked_slots.join(', '))\n\n    // Example: Fetch real availability from your API\n    // fetch('/api/specialists/' + payload.specialist_uuid + '/availability?date=' + payload.date)\n    //   .then(r => r.json())\n    //   .then(data => {\n    //     // Update specialist availability dynamically\n    //     console.log('Real availability:', data)\n    //   })\n  `\n}\n```\n\n#### onBookingCancel — Handle booking cancellation\n\n```js\ncallbackFns: {\n  onBookingCancel: `\n    fetch('/api/bookings/' + payload.id + '/cancel', {\n      method: 'POST',\n      headers: { 'Content-Type': 'application/json' },\n      body: JSON.stringify({ reason: 'customer_request' })\n    })\n    .then(() => showSuccess('Booking cancelled successfully'))\n    .catch(err => showError('Failed to cancel: ' + err.message))\n  `\n}\n```\n\n#### onBookingNoShow — Record no-show and notify\n\n```js\ncallbackFns: {\n  onBookingNoShow: `\n    fetch('/api/bookings/' + payload.id + '/no-show', { method: 'POST' })\n      .then(() => showSuccess('No-show recorded for ' + payload.title))\n      .catch(err => showError('Failed to record no-show: ' + err.message))\n  `\n}\n```\n\n#### onBookingComplete — Mark service as delivered\n\n```js\ncallbackFns: {\n  onBookingComplete: `\n    fetch('/api/bookings/' + payload.id + '/complete', { method: 'POST' })\n      .then(() => showSuccess('Service completed: ' + payload.title))\n      .catch(err => showError('Failed to complete: ' + err.message))\n  `\n}\n```\n\n> **Note:** All callback functions receive `showSuccess(message)` and `showError(message)` as arguments. Call these to display success (green) or error (red) toast notifications in the booking dialog. Toasts auto-dismiss after 4 seconds or can be clicked to dismiss.\n\n### Disabling Specific Callbacks\n\nToggle individual callbacks on/off:\n\n```js\n// Via config\ncallbacks: {\n  onEventCreate: true,     // enabled\n  onEventUpdate: true,     // enabled\n  onEventDelete: false,    // disabled\n  onEventClick: false,     // disabled\n  onDateChange: true,      // enabled\n  onViewChange: false,     // disabled\n  onSlotClick: false,      // disabled\n  onEventDrop: true,       // enabled\n  onSpecialistScheduleCheck: true,  // enabled\n  onBookingCancel: true,   // enabled\n  onBookingNoShow: true,   // enabled\n  onBookingComplete: true  // enabled\n}\n\n// Or at runtime\nstore.commit('SET_CONFIG', { key: 'callbacks.onEventDelete', value: false })\nstore.commit('SET_CONFIG', { key: 'callbacks.onEventDrop', value: true })\nstore.commit('SET_CONFIG', { key: 'callbacks.onBookingCancel', value: false })\nstore.commit('SET_CONFIG', { key: 'callbacks.onBookingComplete', value: true })\n```\n\n### Updating Callback Functions at Runtime\n\n```js\n// Update a callback function body\nstore.commit('SET_CONFIG', {\n  key: 'callbackFns.onEventCreate',\n  value: 'fetch(\"/api/bookings\", { method: \"POST\", body: JSON.stringify(payload) })'\n})\n\n// Reset to default\nstore.commit('SET_CONFIG', {\n  key: 'callbackFns.onEventCreate',\n  value: 'console.log(\"Event created:\", payload)'\n})\n```\n\n## Vuex Store API\n\n### Mutations\n\n| Mutation | Payload | Description |\n|----------|---------|-------------|\n| `SET_DATE` | `Date` | Set current calendar date |\n| `SET_VIEW` | `string` | Set view (`'month'`, `'week'`, `'day'`) |\n| `SET_EVENTS` | `array` | Replace all events |\n| `ADD_EVENT` | `object` | Add a single event |\n| `UPDATE_EVENT` | `object` | Update event by id |\n| `DELETE_EVENT` | `string` | Delete event by id |\n| `SET_CONFIG` | `{ key, value }` | Update config (supports dot notation: `'bookingFields.brand'`) |\n| `SHOW_EVENT_MODAL` | `boolean` | Show/hide create/edit modal |\n| `SHOW_VIEW_MODAL` | `boolean` | Show/hide view modal |\n\n### Actions\n\n| Action | Payload | Description |\n|--------|---------|-------------|\n| `next` | — | Navigate to next period |\n| `prev` | — | Navigate to previous period |\n| `today` | — | Navigate to today |\n| `changeView` | `string` | Switch view with callback |\n| `addEvent` | `object` | Add event with callback |\n| `updateEvent` | `object` | Update event with callback |\n| `deleteEvent` | `string` | Delete event with callback |\n| `openCreateModal` | `slot?` | Open create booking modal |\n| `openEditModal` | `event` | Open edit booking modal |\n| `openViewModal` | `event` | Open view booking modal |\n| `moveEvent` | `{ id, newDate, newHour, newMinute }` | Move event (drag & drop, snaps to 15-min intervals) |\n| `clearAllEvents` | — | Remove all events |\n| `resetEvents` | — | Reset to sample data |\n\n## Programmatic Config Updates\n\nUpdate any config at runtime:\n\n```js\n// Simple value\nstore.commit('SET_CONFIG', { key: 'timeFormat', value: '24h' })\n\n// Nested value\nstore.commit('SET_CONFIG', { key: 'bookingFields.color', value: false })\n\n// Replace dropdown options\nstore.commit('SET_CONFIG', {\n  key: 'dropdownOptions.brand',\n  value: [\n    { uuid: 'b1', name: 'My Brand' },\n    { uuid: 'b2', name: 'Other Brand' }\n  ]\n})\n\n// Replace all events\nstore.commit('SET_EVENTS', myEventsArray)\n```\n\n## Custom Create/Edit Modal (Slots)\n\nReplace the built-in booking modal with your own component using the `create-modal` slot:\n\n```html\n<BookingCalendar>\n  <template #create-modal=\"{ form, event, close, isEdit }\">\n    <MyCustomBookingDialog\n      v-if=\"$store.state.showEventModal\"\n      :slot-data=\"form\"\n      :event=\"event\"\n      :is-edit=\"isEdit\"\n      @close=\"close\"\n      @save=\"handleSave\"\n    />\n  </template>\n</BookingCalendar>\n```\n\n### Slot Props\n\n| Prop | Type | Description |\n|------|------|-------------|\n| `form` | `object\\|null` | The selected slot data (`{ date, hour }`) when creating |\n| `event` | `object\\|null` | The selected event object when editing |\n| `close` | `function` | Call to close the modal |\n| `isEdit` | `boolean` | `true` if editing, `false` if creating |\n\n### Available Internal Slots\n\nThe built-in EventModal also exposes these slots for partial customization:\n\n| Slot | Props | Description |\n|------|-------|-------------|\n| `header` | `{ form, isEdit, close }` | Replace the hero header |\n| `content` | `{ form, isEdit }` | Replace the entire form body (all cards) |\n| `before-fields` | `{ form, isEdit }` | Insert content before the form fields |\n| `after-fields` | `{ form, isEdit }` | Insert content after the form fields |\n| `footer` | `{ form, isEdit, save, close, deleteEvent }` | Replace the footer buttons |\n\n```html\n<!-- Example: Add a note above the form -->\n<BookingCalendar>\n  <template #create-modal=\"{ form, event, close, isEdit }\">\n    <EventModal v-if=\"$store.state.showEventModal\">\n      <template #before-fields>\n        <div class=\"my-note\">Please fill all required fields</div>\n      </template>\n      <template #footer=\"{ save, close }\">\n        <button @click=\"close\">Cancel</button>\n        <button @click=\"save\">Book Now</button>\n      </template>\n    </EventModal>\n  </template>\n</BookingCalendar>\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}