diff --git a/README.md b/README.md index f3b1222..25d7dae 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,6 @@ Marketplace plugins for Reforma. Each plugin is a folder with `.reforma-plugin/p | web-design-guidelines | [Web Design Guidelines](marketplace/playbooks/web-design-guidelines) | Vercel | Playbooks | Catch accessibility, form, and focus issues before they ship | | react-best-practices | [React Best Practices](marketplace/playbooks/react-best-practices) | Vercel | Playbooks | Keep the app fast — React and Next.js performance patterns | | i18n | [i18n](marketplace/playbooks/i18n) | Reforma | Playbooks | Multiple languages — translated copy and a language switcher for the app | -| booking | [Booking](marketplace/playbooks/booking) | Reforma | Playbooks | Book a call, pick a slot, or show an event calendar — no third-party account | | coss | [coss](marketplace/ui/coss) | coss | UI | Extra components and particle effects beyond the default shadcn set | | flexnative | [Flexnative](marketplace/ui/flexnative) | Flexnative | UI | Ready-made page blocks and patterns — drop in a section instead of assembling it | | magic-ui | [Magic UI](marketplace/ui/magic-ui) | Magic UI | UI | Animated marketing pieces — shine, marquee, shimmer, and that kind of polish | diff --git a/marketplace.json b/marketplace.json index af82a45..e79b2f8 100644 --- a/marketplace.json +++ b/marketplace.json @@ -50,10 +50,6 @@ "name": "i18n", "source": "./marketplace/playbooks/i18n" }, - { - "name": "booking", - "source": "./marketplace/playbooks/booking" - }, { "name": "games", "source": "./marketplace/playbooks/games" diff --git a/marketplace/playbooks/booking/.reforma-plugin/plugin.json b/marketplace/playbooks/booking/.reforma-plugin/plugin.json deleted file mode 100644 index b9cc1b5..0000000 --- a/marketplace/playbooks/booking/.reforma-plugin/plugin.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "booking", - "description": "Book a call, pick a slot, or show an event calendar — no third-party account", - "logo": "assets/logo.svg", - "author": { - "name": "Reforma" - }, - "interface": { - "displayName": "Booking", - "brandColor": "#0F766E" - } -} diff --git a/marketplace/playbooks/booking/assets/logo.svg b/marketplace/playbooks/booking/assets/logo.svg deleted file mode 100644 index c27a45a..0000000 --- a/marketplace/playbooks/booking/assets/logo.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/marketplace/playbooks/booking/skills/add-booking/SKILL.md b/marketplace/playbooks/booking/skills/add-booking/SKILL.md deleted file mode 100644 index 8c1a259..0000000 --- a/marketplace/playbooks/booking/skills/add-booking/SKILL.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -name: add-booking -description: >- - Chooses embed vs event calendar vs owned slots, then wires it on the Next.js - App Router starter. Use when adding booking, scheduling, office hours, a - book-a-call page, or a month calendar of events. Also when the user runs - /add-booking. ---- - -# Booking - -Starter is `app/` (no `src/`), bun. Pick **one** path. Done when that path's criterion holds. - -## Pick - -| They asked | Path | -| ---------- | ---- | -| Book a call, consultation, office hours, "pick a slot" | **Embed** | -| Month/week of *their* events (classes, launches, agenda) | **Calendar** | -| Inventory they own (tables, rooms) and they refused Cal.com/Calendly | **Slots** | - -Unspecified "add booking" → **Embed**, Cal.com. They already named Calendly → Calendly. - -## Embed - -Done when a public route shows the vendor booker and a slot is selectable. - -If the **cal-com** or **calendly** plugin is on, follow that skill. Otherwise Cal.com default: - -1. `bun add @calcom/embed-react`. Lockfile changed → **InstallDependencies**. -2. Client `Cal` from `@calcom/embed-react`, `calLink` = `username/event-slug` they own. Keys off the client. - -Calendly named: `bun add react-calendly`, `InlineWidget` `url` = their `https://calendly.com/…` link. - -## Calendar - -Done when a month (or week) shows events from project data, timezone is named, an empty day lists nothing. - -1. `bunx shadcn add calendar`. If lockfile changed → **InstallDependencies**. -2. Persist `start` / `end` as ISO UTC. Render with `Intl.DateTimeFormat` in one IANA zone (`Europe/Lisbon`, not the browser's leftover offset). -3. `Calendar` from `@/components/ui/calendar`. Modifiers mark days that have events. Selected day → a list beside the grid. -4. Week grid with drag-resize only if they asked for a scheduler UI — then one library (`@schedule-x/react`). Default is the shadcn month + list. - -## Slots - -Done when two overlapping bookings on the same resource cannot both confirm, rows store UTC, the booker shows times in one IANA zone. - -1. Table: `resource_id`, `start_at` timestamptz, `end_at` timestamptz. Unique `(resource_id, start_at)`. -2. List open slots in the guest timezone; write UTC. -3. Confirm = insert then email (Resend skill if that plugin is on). Unique violation → slot taken, pick another.