frontpage-host 0.3.23 → 0.3.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/AGENTS.md +2 -0
  2. package/BOOKING.md +18 -0
  3. package/package.json +2 -2
package/AGENTS.md CHANGED
@@ -320,6 +320,8 @@ remain errors; they do not become original-file fallback successes.
320
320
 
321
321
  ## Native Booking
322
322
 
323
+ Appointment types support `startIntervalMinutes:null` (match current appointment length) or 5/10/15/20/30/45/60 through the existing JSON type save. Read BOOKING.md for clock alignment and current-rule rescheduling. Use exact returned availability; do not invent starts.
324
+
323
325
  Read [BOOKING.md](./BOOKING.md) before using `frontpage modules booking`. Use native settings, types/forms, members/spaces, availability, reservations and recurring blocks. Do not send new bookings through the old generic module collector. Every write requires a stable request key; updates require the current revision. Consent and private calendar-link entry stay with the human in Workspace → Connections. Ordinary owned connection management and self-hours share the workspace actions; setup requests appear in the editor status bar and overview.
324
326
 
325
327
  ## Page screenshots
package/BOOKING.md CHANGED
@@ -58,6 +58,12 @@ Google and Outlook import busy periods and can receive Frontpage-owned confirmed
58
58
 
59
59
  Website authors use the platform Booking runtime and `data-fp-booking` containers. The agent controls surrounding HTML and CSS; the service controls forms, availability, validation, email verification and reservation state. Read the Booking module docs and use their exact starter markup. The old `data-fp-form="booking"` collector is retired and rejects submissions. Its old confirmation links cannot confirm appointments or send invites. Historical requests remain in the Forms inbox and `frontpage inbox leads --site SITE`; this cleanup does not convert them into native reservations. Customers review the booking, verify their email and submit; verification creates no inventory hold. A customer management link opens a dedicated page. Viewing a link never accepts, declines or cancels a booking.
60
60
 
61
+ Booking presentation uses Store's soft `fp-defaults` layer. Ordinary site CSS and component/utility layers override its appearance. Match the site's tokens, forms and typography. For runtime-generated nodes, use an authored root class with Astro `<style is:global>` or `:global(...)`; generated controls do not inherit the page's scope attribute. Type, time, member, space and choice menus use the shared custom listbox. Do not show their hidden backing selects or build a second selection system. Labels, selected time ranges and time-zone help render separately.
62
+
63
+ Style `.fp-booking-field`, `.fp-booking-label`, `.fp-booking-control-slot`, `.fp-booking-control`, `.fp-booking-help`, `.fp-booking-error`, `.fp-booking-address`, `.fp-booking-field--checkbox` and `.fp-booking-week`. Dropdown parts use `.fp-booking-select`, `-field`, `-trigger`, `-value`, `-caret`, `-menu`, `-list`, `-option`, `.is-active` and `.is-selected`. Optional tokens include `--fp-booking-control-bg/--fp-booking-control-fg`, `--fp-booking-selected-bg/--fp-booking-selected-fg`, `--fp-booking-border`, `--fp-booking-radius`, `--fp-booking-focus` and `--fp-booking-control-height`. All visual defaults remain overridable; hidden/disabled states remain behavior.
64
+
65
+ An optional `<template data-fp-booking-field-template>` inside the root, outside filled containers, changes field wrapper markup. Its single outer element must contain a `<label data-fp-booking-label>` and `[data-fp-booking-control-slot]`. Optional `[data-fp-booking-label-text]`, `[data-fp-booking-help]` and `[data-fp-booking-error]` preserve authored label content and help/error placement. The runtime fills text, controls, accessible IDs and validation. Preserve those bindings. Inspect every question type, menus, focus/selected/disabled states, loading, empty, errors, review, verification and success on desktop/mobile and with two forms on a page. Build success alone does not verify appearance.
66
+
61
67
  Private external event details are available only to the connecting human in the workspace Calendar. CLI/agent calendar output remains busy times only; there is no CLI command for private event content.
62
68
 
63
69
  ## Shared setup and connection operations
@@ -77,3 +83,15 @@ Only consent/private-link entry uses the secure human handoff. Never pass OAuth
77
83
  Only the booking type chooses instant confirmation or manual acceptance of customer requests; connecting a calendar never changes that choice. Successful imports revalidate every 15 minutes even when the source advertises a longer cache lifetime. Connection summaries include safe `health` with `status`, `label`, `message` and `usable`. Fresh last-good busy times still apply during refresh or a temporary failure; missing, revoked, disconnected, stale (30 minutes) or uncovered imports keep dependent availability unavailable. Retries keep existing backoff and Retry-After. Imported event titles and private feed URLs never appear in these summaries.
78
84
 
79
85
  Repeated Connect for your existing Google/Microsoft account returns its current calendar choices without replacing its grant or selections. Use Reconnect on the existing account to renew permissions.
86
+
87
+ ## Appointment start times
88
+
89
+ Set `startIntervalMinutes` in the existing `types save --file type.json` value. Use `null` for Automatic, which follows the current `durationMinutes`, or `5`, `10`, `15`, `20`, `30`, `45`, `60` for a fixed interval. Omit the field when updating to keep the saved choice; new types default to Automatic.
90
+
91
+ For a 60-minute appointment that can start on the hour or half hour, keep `durationMinutes:60` and set `startIntervalMinutes:30`. To return to hourly Automatic, send `startIntervalMinutes:null`. Send the complete booking-type value with the current revision and a stable request key:
92
+
93
+ ```bash
94
+ frontpage modules booking types save --id TYPE_ID --revision REVISION --file type.json --request-key UNIQUE_KEY --site SITE --json
95
+ ```
96
+
97
+ Starts align to midnight in the business time zone. Thirty-minute intervals offer :00/:30, even if working hours begin at 9:10. Buffers and calendar conflicts remove starts without moving the grid. New bookings and rescheduling follow the type's current interval; there is no historical 15-minute fallback. Stays keep their existing arrival/departure rules. Read `availability` and use an exact returned slot; direct off-grid requests fail with `slot_unavailable`. The website's design remains fully controlled by its author.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "frontpage-host",
3
- "version": "0.3.23",
4
- "description": "Frontpage CLI \u2014 manage your site from the terminal",
3
+ "version": "0.3.25",
4
+ "description": "Frontpage CLI — manage your site from the terminal",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "frontpage": "dist/bin.js"