@forgebuild/hotal-ui 0.23.156 → 0.23.202
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.
- package/dist/components/ai-chat-widget.js +75 -0
- package/dist/components/availability-calendar.js +7 -0
- package/dist/components/booking-card.js +30 -0
- package/dist/components/booking-checkout.js +40 -0
- package/dist/components/booking-confirmed.js +1 -0
- package/dist/components/booking-flow.js +26 -0
- package/dist/components/booking-progress-bar.js +1 -0
- package/dist/components/booking-summary.js +14 -0
- package/dist/components/chunks/ably-5cVT4knS.js +9 -0
- package/dist/components/chunks/calendar-B8eNjUm2.js +1 -0
- package/dist/components/chunks/client-BDk8LqGN.js +3 -0
- package/dist/components/chunks/floating-ui.dom-DY3dGoEq.js +1 -0
- package/dist/components/chunks/gsap-DWxn8li7.js +1 -0
- package/dist/components/chunks/lib-Bd4dedte.js +1 -0
- package/dist/components/chunks/min-DdO-yBwh.js +17 -0
- package/dist/components/chunks/preload-helper-Czpn1I53.js +1 -0
- package/dist/components/chunks/rolldown-runtime-CbXtAM7H.js +1 -0
- package/dist/components/confirmation-card.js +3 -0
- package/dist/components/dining-teaser.js +19 -0
- package/dist/components/event-contact-form.js +33 -0
- package/dist/components/event-inquiries-feed.js +29 -0
- package/dist/components/extras-catalogue.js +25 -0
- package/dist/components/floor-plan-hero.js +2 -0
- package/dist/components/google-reviews.js +31 -0
- package/dist/components/instagram-feed.js +16 -0
- package/dist/components/island-map.js +1 -0
- package/dist/components/live-dining-orders-feed.js +37 -0
- package/dist/components/live-golf-bookings-feed.js +18 -0
- package/dist/components/live-reservations-feed.js +18 -0
- package/dist/components/live-room-bookings-feed.js +18 -0
- package/dist/components/live-shop-orders-feed.js +37 -0
- package/dist/components/live-spa-bookings-feed.js +55 -0
- package/dist/components/menu-section.js +90 -0
- package/dist/components/proshop-catalogue.js +20 -0
- package/dist/components/reservation-bar.js +5 -0
- package/dist/components/reservation-cancel.js +4 -0
- package/dist/components/restaurant-order-form.js +9 -0
- package/dist/components/room-grid.js +26 -0
- package/dist/components/searchable-select.js +20 -0
- package/dist/components/service-booking-bar.js +14 -0
- package/dist/components/spa-booking-widget.js +198 -0
- package/dist/components/stay-search.js +31 -0
- package/dist/components/tripadvisor-reviews.js +38 -0
- package/dist/components/venue-carousel.js +18 -0
- package/dist/hotal-ui.js +5004 -4714
- package/dist/index.d.ts +35 -3
- package/package.json +6 -2
package/dist/index.d.ts
CHANGED
|
@@ -193,7 +193,15 @@ export interface EventInquiry {
|
|
|
193
193
|
email: string;
|
|
194
194
|
phone?: string | null;
|
|
195
195
|
restaurant_id?: string | null;
|
|
196
|
-
|
|
196
|
+
/** Null on enquiries that aren't about a specific date -- the feed drops
|
|
197
|
+
* the date row rather than printing one. */
|
|
198
|
+
event_date?: string | null;
|
|
199
|
+
/** When the guest last wrote -- null until they reply to the opening
|
|
200
|
+
* message. The card's "Received" prefers this over created_at. */
|
|
201
|
+
last_inbound_at?: string | null;
|
|
202
|
+
/** Set when an AI-drafted reply is waiting for approval -- the card shows
|
|
203
|
+
* an "AI draft" badge, and reads as waiting rather than answered. */
|
|
204
|
+
pending_ai_draft_id?: string | null;
|
|
197
205
|
guests?: number | null;
|
|
198
206
|
event_type?: string | null;
|
|
199
207
|
format?: string | null;
|
|
@@ -384,7 +392,12 @@ export interface SpaTreatment {
|
|
|
384
392
|
id: string;
|
|
385
393
|
name: string;
|
|
386
394
|
durationMins: number;
|
|
387
|
-
|
|
395
|
+
/** null = only bookable at the regulars' rate (memberPrice). */
|
|
396
|
+
price: number | null;
|
|
397
|
+
/** The regulars' rate, charged on dates the widget's memberUntil covers. */
|
|
398
|
+
memberPrice?: number | null;
|
|
399
|
+
/** The regulars' booking length, when it differs from durationMins. */
|
|
400
|
+
memberDurationMins?: number | null;
|
|
388
401
|
}
|
|
389
402
|
|
|
390
403
|
export interface SpaTherapist {
|
|
@@ -446,6 +459,9 @@ export interface SpaBookingWidgetStrings {
|
|
|
446
459
|
notWiredError: string;
|
|
447
460
|
genericSubmitError: string;
|
|
448
461
|
successMessage: string;
|
|
462
|
+
memberRateLabel: string;
|
|
463
|
+
membersOnlyLabel: string;
|
|
464
|
+
membersOnlyHint: string;
|
|
449
465
|
}
|
|
450
466
|
|
|
451
467
|
export interface SpaBookingWidgetElement extends HTMLElement {
|
|
@@ -490,6 +506,12 @@ export interface SpaBookingWidgetElement extends HTMLElement {
|
|
|
490
506
|
initialName?: string;
|
|
491
507
|
initialEmail?: string;
|
|
492
508
|
initialPhone?: string;
|
|
509
|
+
/** Last appointment date (YYYY-MM-DD) the visitor gets the regulars' rate
|
|
510
|
+
* (memberPrice) for, set by a host that has identified the visitor.
|
|
511
|
+
* Unset = not a regular: regulars-only treatments are disabled. Display
|
|
512
|
+
* only -- the backend decides the price charged. Changing it refetches
|
|
513
|
+
* the open month. */
|
|
514
|
+
memberUntil?: string;
|
|
493
515
|
strings?: Partial<SpaBookingWidgetStrings>;
|
|
494
516
|
fetchTreatments?: () => Promise<SpaTreatment[]>;
|
|
495
517
|
/** Optional therapist list for the datetime step's "Therapist" filter.
|
|
@@ -665,7 +687,6 @@ export interface LiveSpaBooking {
|
|
|
665
687
|
duration_minutes: number;
|
|
666
688
|
price?: string | number | null;
|
|
667
689
|
status: string;
|
|
668
|
-
payment_status?: string | null;
|
|
669
690
|
created_at: string;
|
|
670
691
|
}
|
|
671
692
|
|
|
@@ -706,6 +727,9 @@ export interface LiveSpaBookingsFeedElement extends HTMLElement {
|
|
|
706
727
|
* payload is SpaBookingPayload plus appointmentId, which this
|
|
707
728
|
* component injects itself (the booking being edited's id). */
|
|
708
729
|
submitBooking?: (payload: SpaBookingPayload & { appointmentId: string }) => Promise<SpaBookingResult>;
|
|
730
|
+
/** Handed to the sheet's <spa-booking-widget> as its `strings`, e.g.
|
|
731
|
+
* { therapistFilterLabel: 'Expert', anyTherapistLabel: 'Any expert' }. */
|
|
732
|
+
widgetStrings?: Partial<SpaBookingWidgetStrings>;
|
|
709
733
|
}
|
|
710
734
|
|
|
711
735
|
export interface GolfShopItem {
|
|
@@ -1467,6 +1491,14 @@ export interface AiChatWidgetElement extends HTMLElement {
|
|
|
1467
1491
|
greeting?: string;
|
|
1468
1492
|
/** Shown in the error message so a visitor can call instead. Omit to leave it out. */
|
|
1469
1493
|
phone?: string;
|
|
1494
|
+
/** Sweeps a light band across the launcher on hover. Default false. */
|
|
1495
|
+
ctaShimmer?: boolean;
|
|
1496
|
+
/** 'icon' shows a speech bubble in a circle instead of the wording. */
|
|
1497
|
+
launcher?: 'label' | 'icon';
|
|
1498
|
+
/** Whether the panel is open. Set it to open the chat from your own CTA --
|
|
1499
|
+
* including a static launcher you render yourself, so this element can stay
|
|
1500
|
+
* unloaded until a visitor asks for it. Reflects their own open/close too. */
|
|
1501
|
+
open?: boolean;
|
|
1470
1502
|
}
|
|
1471
1503
|
|
|
1472
1504
|
/** One purchasable combination within a variant group -- a real, distinct
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forgebuild/hotal-ui",
|
|
3
|
-
"version": "0.23.
|
|
3
|
+
"version": "0.23.202",
|
|
4
4
|
"description": "Reusable Svelte UI components for booking and reservation experiences.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -14,6 +14,10 @@
|
|
|
14
14
|
".": {
|
|
15
15
|
"types": "./dist/index.d.ts",
|
|
16
16
|
"import": "./dist/hotal-ui.js"
|
|
17
|
+
},
|
|
18
|
+
"./*": {
|
|
19
|
+
"types": "./dist/index.d.ts",
|
|
20
|
+
"import": "./dist/components/*.js"
|
|
17
21
|
}
|
|
18
22
|
},
|
|
19
23
|
"publishConfig": {
|
|
@@ -40,7 +44,7 @@
|
|
|
40
44
|
},
|
|
41
45
|
"scripts": {
|
|
42
46
|
"dev": "vite",
|
|
43
|
-
"build": "vite build && node scripts/copy-types.mjs",
|
|
47
|
+
"build": "vite build && vite build --config vite.components.config.ts && node scripts/copy-types.mjs",
|
|
44
48
|
"prepublishOnly": "npm run build",
|
|
45
49
|
"preview": "vite preview",
|
|
46
50
|
"check": "svelte-check --tsconfig ./tsconfig.app.json && tsc -p tsconfig.node.json"
|