Side by side at phone width the DatePicker's long-form date truncates
to "September 20t…"; one column below the sm breakpoint keeps the
full date readable.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Replace the two native <input type="date"> fields on the room detail
page with the base DatePicker (Popover + shadcn Calendar), the same
component the events editor uses. Check-in is floored at today and
check-out at the morning after check-in; moving check-in past the
current check-out clears it, and any change resets the last quote.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Slice-1 part B of the chatelet guest booking UI (aiolabs/webapp #141).
- ChateletApiService: plain HTTP wrapper (events TicketApiService pattern) →
chatelet's public guest endpoints (/public/rooms, /availability). Unauth by
default; swaps HTTP→kind-21000 RPC once aiolabs/lnbits#64 lands, no view change.
- useChatelet composable + pinia store (DI via tryInjectService, never direct import).
- Views: ChateletPage (room grid) + ChateletDetailPage (details + date-range
availability check with sats/fiat quote; Book button stubbed for slice 2).
- SERVICE_TOKENS.CHATELET_API.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019VUQCfdqiLSsFS2jcGnaFD