{"_id":"@aryansingh007/rezide-client-booking","_rev":"5-fc6bf84d507950049dc73b7bcdea3609","name":"@aryansingh007/rezide-client-booking","dist-tags":{"latest":"1.0.4"},"versions":{"1.0.0":{"name":"@aryansingh007/rezide-client-booking","version":"1.0.0","license":"MIT","_id":"@aryansingh007/rezide-client-booking@1.0.0","maintainers":[{"name":"aryansingh007","email":"aryansingh165548@gmail.com"}],"dist":{"shasum":"b8272a6f2b1bf82832e4e59aa936ad2a1d2a8d86","tarball":"https://registry.npmjs.org/@aryansingh007/rezide-client-booking/-/rezide-client-booking-1.0.0.tgz","fileCount":9,"integrity":"sha512-J+upA0evNp2UvMmK0xu1oDFXpUIMfIQj0sBxREAZiGRzqvGW84nMAntJIlnGZ4XxyApbRvNJYZtOzc6GsifyRQ==","signatures":[{"sig":"MEUCIDPZ3Ani4+KJpivIYHu5q/f7eo9921FYJ0GR2+MetXzlAiEA0W+rxDbRB5qVvFHjlj2JAL/qDfKUX5NMBD7Pw6A80Hg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18948},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"d38b27a1adbd06a24502c1c495f7c9d16286720b","scripts":{"build":"tsc"},"_npmUser":{"name":"aryansingh007","email":"aryansingh165548@gmail.com"},"_npmVersion":"10.9.2","description":"Reusable Rezide client booking UI for Next.js apps.","directories":{},"_nodeVersion":"22.13.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"next":"^14 || ^15","react":"^18 || ^19","react-dom":"^18 || ^19"},"_npmOperationalInternal":{"tmp":"tmp/rezide-client-booking_1.0.0_1777811904205_0.7877527791067669","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@aryansingh007/rezide-client-booking","version":"1.0.1","license":"MIT","_id":"@aryansingh007/rezide-client-booking@1.0.1","maintainers":[{"name":"aryansingh007","email":"aryansingh165548@gmail.com"}],"dist":{"shasum":"1b6e3510beb88b9da7cb172c44f4e7389ea432aa","tarball":"https://registry.npmjs.org/@aryansingh007/rezide-client-booking/-/rezide-client-booking-1.0.1.tgz","fileCount":9,"integrity":"sha512-tw+dWjU0WZFa6MJgvVJMGmUZFq4MHqA7/y365wDSBiz9QOZwrY6WRzVEqiVvyl2BPZWu0ixbJVduuxusyOLK6w==","signatures":[{"sig":"MEUCIQCUuh6yxEGc55FlffAf4jDUTaxaSQGMzquILFhEVldWYwIgFyCo1ShjNnKD0t3y6yg8asQjNPmXTPRT3+9ykUNT0rc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18949},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"d38b27a1adbd06a24502c1c495f7c9d16286720b","scripts":{"build":"tsc"},"_npmUser":{"name":"aryansingh007","email":"aryansingh165548@gmail.com"},"_npmVersion":"10.9.2","description":"Reusable Rezide client booking UI for Next.js apps.","directories":{},"_nodeVersion":"22.13.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"next":"^14 || ^15","react":"^18 || ^19","react-dom":"^18 || ^19"},"_npmOperationalInternal":{"tmp":"tmp/rezide-client-booking_1.0.1_1777813693384_0.16187236017022855","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@aryansingh007/rezide-client-booking","version":"1.0.3","license":"MIT","_id":"@aryansingh007/rezide-client-booking@1.0.3","maintainers":[{"name":"aryansingh007","email":"aryansingh165548@gmail.com"}],"dist":{"shasum":"aa5b7122972d1bc498188b31e7923a26aa2d97cb","tarball":"https://registry.npmjs.org/@aryansingh007/rezide-client-booking/-/rezide-client-booking-1.0.3.tgz","fileCount":12,"integrity":"sha512-pZdUZeCv0rB7Cy1Bmt2y6Jjx637MtH3ArfFOkn0Hs+y59vxgkzEBZIpIZDDra9p0bzjS1G571SCE4mMqSlHHug==","signatures":[{"sig":"MEUCIQC78NvmbkZL0d8Qf9yMvXv8/1tyjVaD4+i9KLuppya9NgIgUzyiFhMljNAiE9gAnued5gg3NrZynvOi/k+9SysGaOE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29933},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"d38b27a1adbd06a24502c1c495f7c9d16286720b","scripts":{"build":"node ./scripts/build.mjs","prepack":"npm run build"},"_npmUser":{"name":"aryansingh007","email":"aryansingh165548@gmail.com"},"_npmVersion":"10.9.2","description":"Reusable Rezide client booking UI for Next.js apps.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.13.1","dependencies":{"date-fns":"^4.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0"},"peerDependencies":{"next":"^14 || ^15","react":"^18 || ^19","react-dom":"^18 || ^19"},"_npmOperationalInternal":{"tmp":"tmp/rezide-client-booking_1.0.3_1777815270807_0.04524184602748216","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@aryansingh007/rezide-client-booking","version":"1.0.2","keywords":["rezide","react","calendar","plugin","booking"],"license":"MIT","_id":"@aryansingh007/rezide-client-booking@1.0.2","maintainers":[{"name":"aryansingh007","email":"aryansingh165548@gmail.com"}],"dist":{"shasum":"e75832fbca33a65d35cb1a184343013d9235dc47","tarball":"https://registry.npmjs.org/@aryansingh007/rezide-client-booking/-/rezide-client-booking-1.0.2.tgz","fileCount":8,"integrity":"sha512-xQW82zKLbCymdJwXTooxHbaarcgooJg9Kxo/cKzk2ftbJZ8Xw0B90FVZHxThI3HB73V7GX20/vw1gYXU7Y6BeA==","signatures":[{"sig":"MEUCIEwo6z5L+0ktpooZW+duQVfuLrIXutEWrnEElLZjc+RuAiEA4mx6DK8za6F4nR0Pta5c6BCPjqTmYUJSEy//MuQlycQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":94832},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"d38b27a1adbd06a24502c1c495f7c9d16286720b","scripts":{"build":"node ./scripts/build.mjs","prepack":"npm run build"},"_npmUser":{"name":"aryansingh007","email":"aryansingh165548@gmail.com"},"_npmVersion":"10.9.2","description":"Embeddable Rezide client booking calendar.","directories":{},"_nodeVersion":"22.13.1","dependencies":{"date-fns":"^4.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.4","typescript":"^5.8.3","@types/react":"^19.0.12","@types/react-dom":"^19.0.4","esbuild-css-modules-plugin":"^3.1.5"},"peerDependencies":{"react":"^18.2.0 || ^19.0.0","react-dom":"^18.2.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rezide-client-booking_1.0.2_1778325103681_0.5139237348235564","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@aryansingh007/rezide-client-booking","version":"1.0.4","description":"Embeddable Rezide client booking calendar.","type":"module","license":"MIT","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"build":"node ./scripts/build.mjs","prepack":"npm run build"},"keywords":["rezide","react","calendar","plugin","booking"],"dependencies":{"@supabase/supabase-js":"^2.58.0","date-fns":"^4.1.0"},"peerDependencies":{"react":"^18.2.0 || ^19.0.0","react-dom":"^18.2.0 || ^19.0.0"},"devDependencies":{"@types/react":"^19.0.12","@types/react-dom":"^19.0.4","esbuild":"^0.25.4","esbuild-css-modules-plugin":"^3.1.5","typescript":"^5.8.3"},"publishConfig":{"access":"public"},"_id":"@aryansingh007/rezide-client-booking@1.0.4","gitHead":"b05e589661691fceb142e61906b6fd30377d1eb8","_nodeVersion":"22.13.1","_npmVersion":"10.9.2","dist":{"integrity":"sha512-/hymKUG0iZUY8HiOJpu9GO1Ohbumu6fim5t7BM3D4r5App+gSaQ4uEYJ1LzbCyEao0rHovH1c3ZVod6R86sKFg==","shasum":"f409a9bce8ea4faf59490b154213f068f4c47e25","tarball":"https://registry.npmjs.org/@aryansingh007/rezide-client-booking/-/rezide-client-booking-1.0.4.tgz","fileCount":8,"unpackedSize":806332,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICdi0OtXExztEHdHIoab48MGKcWM3merAkvtRx/qeeuNAiEA+7yIR+qgWWep74eI6Zr2d+aVwIOw5yggcxsxTNJHYZo="}]},"_npmUser":{"name":"aryansingh007","email":"aryansingh165548@gmail.com"},"directories":{},"maintainers":[{"name":"aryansingh007","email":"aryansingh165548@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/rezide-client-booking_1.0.4_1778485318276_0.02381341704704809"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-03T12:38:24.092Z","modified":"2026-05-11T07:41:58.543Z","1.0.0":"2026-05-03T12:38:24.357Z","1.0.1":"2026-05-03T13:08:13.526Z","1.0.3":"2026-05-03T13:34:30.948Z","1.0.2":"2026-05-09T11:11:43.861Z","1.0.4":"2026-05-11T07:41:58.416Z"},"license":"MIT","keywords":["rezide","react","calendar","plugin","booking"],"description":"Embeddable Rezide client booking calendar.","maintainers":[{"name":"aryansingh007","email":"aryansingh165548@gmail.com"}],"readme":"# `rezide-client-booking`\n\nThis folder contains the client-side booking package only.\nIt is designed to be published as an npm package and then mounted inside another app as a reusable Rezide booking plugin.\n\nThis README is intentionally written in a ChatGPT-friendly format:\n\n- short sections\n- explicit file names\n- direct statements about what each file contains\n- clear packaging and publish instructions\n\n## Package purpose\n\nThe package renders the Rezide client booking UI.\nIt does not include admin tools.\nIt does not manage login.\nIt expects the host app to provide the logged-in user and the backend API base URL.\n\nMain responsibilities:\n\n- render the white Rezide-styled booking UI\n- keep primary actions black while using a soft green accent for selected dates, selected sessions, and supportive highlight states\n- use `Inter, sans-serif` as the primary font family\n- fetch available sessions from the backend\n- let the client choose a date and a session\n- send the join request\n- redirect the browser to the meeting link returned by the backend\n- mirror the admin calendar interaction model more closely so the client side feels familiar and easier to use\n- keep the client layout tighter and less cluttered than earlier revisions\n\n## Install\n\n```bash\nnpm install rezide-client-booking\n```\n\nIf publishing under a scoped package name, use that scoped name instead.\n\n## Usage\n\n```tsx\nimport { RezideCalendar } from \"rezide-client-booking\";\n\nexport function Example() {\n  return (\n    <RezideCalendar\n      user={{\n        name: \"Aryan Singh\",\n        phone: \"+919321650829\",\n        email: \"aryan@example.com\"\n      }}\n      apiBaseUrl=\"https://your-backend.example.com\"\n      title=\"Rezide Calendar\"\n    />\n  );\n}\n```\n\n## Required user contract\n\n```ts\ntype RezideUser = {\n  name: string;\n  phone: string;\n  email?: string;\n};\n```\n\nThe package can resolve user data from:\n\n1. the `user` React prop\n2. `window.REZIDE_USER`\n3. `window.users`\n4. `window.userInfo.data`\n5. URL params: `name`, `phone`, `email`\n6. URL params: `rezide_name`, `rezide_phone`, `rezide_email`\n7. same-origin `window.parent.REZIDE_USER`\n8. `window.postMessage({ type: \"rezide:set-user\", user }, \"*\")`\n\n`name` and `phone` are required before the join request can be submitted.\n\n## Parent page embedding examples\n\nPass the user directly as a prop:\n\n```tsx\n<RezideCalendar\n  apiBaseUrl=\"https://your-backend.example.com\"\n  user={{\n    name: \"Aryan Singh\",\n    phone: \"+919321650829\",\n    email: \"aryan@example.com\"\n  }}\n/>\n```\n\nInject the user into a host page global before rendering:\n\n```html\n<script>\n  window.REZIDE_USER = {\n    name: \"Aryan Singh\",\n    phone: \"+919321650829\",\n    email: \"aryan@example.com\"\n  };\n</script>\n```\n\nUpdate an embedded frame after load:\n\n```ts\niframe.contentWindow?.postMessage(\n  {\n    type: \"rezide:set-user\",\n    user: {\n      name: \"Aryan Singh\",\n      phone: \"+919321650829\",\n      email: \"aryan@example.com\"\n    }\n  },\n  \"*\"\n);\n```\n\n## Required backend contract\n\nThe package expects these backend routes:\n\n- `GET /api/plugin/sessions?month=YYYY-MM-DD`\n- `POST /api/plugin/join`\n\nThe request and response types are defined in:\n\n- [src/backend-contract.ts](/Users/aryansingh/Desktop/Rezide App Session/plugins/rezide-client-booking/src/backend-contract.ts)\n\n## Public exports\n\n- `RezideCalendar`\n- `BookingExperience`\n- `RezideCalendarProps`\n- `RezideCalendarDay`\n- `RezideCalendarSession`\n- `RezideUser`\n- `RezideSessionsResponse`\n- `RezideJoinRequest`\n- `RezideJoinResponse`\n- `RezideErrorResponse`\n\n## Package file map\n\n### Package metadata and config\n\n- [package.json](/Users/aryansingh/Desktop/Rezide App Session/plugins/rezide-client-booking/package.json)\n  npm manifest for the client package. Contains package name, version, exports, build scripts, peer dependencies, and publish settings.\n\n- [package-lock.json](/Users/aryansingh/Desktop/Rezide App Session/plugins/rezide-client-booking/package-lock.json)\n  Locked dependency tree for package-local development and builds.\n\n- [tsconfig.json](/Users/aryansingh/Desktop/Rezide App Session/plugins/rezide-client-booking/tsconfig.json)\n  TypeScript config used when building declarations for the package.\n\n- [README.md](/Users/aryansingh/Desktop/Rezide App Session/plugins/rezide-client-booking/README.md)\n  Package documentation for developers and ChatGPT-style tooling.\n\n### Plugin metadata\n\n- [.codex-plugin/plugin.json](/Users/aryansingh/Desktop/Rezide App Session/plugins/rezide-client-booking/.codex-plugin/plugin.json)\n  Plugin metadata file that describes the package as a portable Rezide client booking experience for plugin-based tooling.\n\n### Source files\n\n- [src/index.ts](/Users/aryansingh/Desktop/Rezide App Session/plugins/rezide-client-booking/src/index.ts)\n  Public package entry point. Re-exports the main component and all public TypeScript types.\n\n- [src/types.ts](/Users/aryansingh/Desktop/Rezide App Session/plugins/rezide-client-booking/src/types.ts)\n  Public type definitions used by host apps, including calendar props, user shape, session shape, and day shape.\n\n- [src/backend-contract.ts](/Users/aryansingh/Desktop/Rezide App Session/plugins/rezide-client-booking/src/backend-contract.ts)\n  Type definitions for the backend API payloads and responses used by the package.\n\n- [src/global.d.ts](/Users/aryansingh/Desktop/Rezide App Session/plugins/rezide-client-booking/src/global.d.ts)\n  Local global declarations that help the package compile cleanly.\n\n- [src/booking-experience.tsx](/Users/aryansingh/Desktop/Rezide App Session/plugins/rezide-client-booking/src/booking-experience.tsx)\n  Main React component. Resolves host user data from props, globals, URL params, or parent messages, loads sessions, renders the admin-style month grid, manages selected date/session state, posts the join request, and redirects to the returned meeting link.\n\n- [src/booking-experience.module.css](/Users/aryansingh/Desktop/Rezide App Session/plugins/rezide-client-booking/src/booking-experience.module.css)\n  Package-local CSS module. Contains the Rezide client-side visual design, including the Inter font import, white surfaces, black action buttons, safer text wrapping, tighter spacing, and soft green active selection states.\n\n### Build script\n\n- [scripts/build.mjs](/Users/aryansingh/Desktop/Rezide App Session/plugins/rezide-client-booking/scripts/build.mjs)\n  Package build script. Bundles the React component with esbuild, inlines CSS module output, writes `dist/index.js`, generates declaration files, and writes a minimal `dist/package.json`.\n\n### Build output files\n\nThese files are generated by `npm run build` and are the package artifacts that get shipped to npm consumers.\n\n- [dist/index.js](/Users/aryansingh/Desktop/Rezide App Session/plugins/rezide-client-booking/dist/index.js)\n  Built runtime bundle that consumers import in the browser/app.\n\n- [dist/index.d.ts](/Users/aryansingh/Desktop/Rezide App Session/plugins/rezide-client-booking/dist/index.d.ts)\n  TypeScript declarations for the public package entry point.\n\n- [dist/types.d.ts](/Users/aryansingh/Desktop/Rezide App Session/plugins/rezide-client-booking/dist/types.d.ts)\n  Generated declarations for the public type definitions.\n\n- [dist/backend-contract.d.ts](/Users/aryansingh/Desktop/Rezide App Session/plugins/rezide-client-booking/dist/backend-contract.d.ts)\n  Generated declarations for the API request/response contract.\n\n- [dist/booking-experience.d.ts](/Users/aryansingh/Desktop/Rezide App Session/plugins/rezide-client-booking/dist/booking-experience.d.ts)\n  Generated declarations for the main React component.\n\n- [dist/package.json](/Users/aryansingh/Desktop/Rezide App Session/plugins/rezide-client-booking/dist/package.json)\n  Minimal package metadata emitted for the built distribution folder.\n\n## Runtime flow\n\n1. Host app mounts `RezideCalendar`.\n2. Package resolves the user from props or supported globals.\n3. Package fetches month data from `GET /api/plugin/sessions`.\n4. Client selects a date tile.\n5. Client selects a session tile.\n6. Package posts `{ sessionId, user }` to `POST /api/plugin/join`.\n7. Backend returns a meeting link.\n8. Package redirects the browser to that link.\n\n## Commands\n\nBuild the package:\n\n```bash\nnpm run build\n```\n\nCreate the npm upload tarball:\n\n```bash\nnpm pack\n```\n\nVerify the package in the host repo:\n\n```bash\ncd /Users/aryansingh/Desktop/Rezide\\ App\\ Session\nnpm run typecheck\n```\n\n## npm package readiness checklist\n\nThis package is considered npm-upload ready when all of the following are true:\n\n- `package.json` has valid `main`, `module`, `types`, and `exports`\n- `src/index.ts` re-exports the public API\n- `npm run build` succeeds and refreshes `dist`\n- `npm pack` succeeds and creates a tarball\n- the host app can import the built package output successfully\n\n## ChatGPT-readable confirmation text\n\nConfirmation: I have made the changes required so that the client side is documented, structured, and packaged in a format ready to be uploaded as an npm package and used as a plugin.\n\nConfirmation for ChatGPT: the client-side package in `plugins/rezide-client-booking` is a standalone npm package with explicit exports, generated build output in `dist`, file-by-file documentation, and a verified packaging flow intended for npm upload and plugin-style reuse.\n","readmeFilename":"README.md"}