@forgebuild/hotal-ui 0.23.152 → 0.23.201
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 +179 -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 +5032 -4708
- package/dist/index.d.ts +40 -2
- 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 {
|
|
@@ -423,6 +436,7 @@ export interface SpaBookingWidgetStrings {
|
|
|
423
436
|
eveningLabel: string;
|
|
424
437
|
pickDayHint: string;
|
|
425
438
|
noSlotsForDay: string;
|
|
439
|
+
noChangeHint: string;
|
|
426
440
|
therapistFilterLabel: string;
|
|
427
441
|
anyTherapistLabel: string;
|
|
428
442
|
staffRowLabel: string;
|
|
@@ -445,6 +459,9 @@ export interface SpaBookingWidgetStrings {
|
|
|
445
459
|
notWiredError: string;
|
|
446
460
|
genericSubmitError: string;
|
|
447
461
|
successMessage: string;
|
|
462
|
+
memberRateLabel: string;
|
|
463
|
+
membersOnlyLabel: string;
|
|
464
|
+
membersOnlyHint: string;
|
|
448
465
|
}
|
|
449
466
|
|
|
450
467
|
export interface SpaBookingWidgetElement extends HTMLElement {
|
|
@@ -475,6 +492,13 @@ export interface SpaBookingWidgetElement extends HTMLElement {
|
|
|
475
492
|
* treatment's name matches this, once treatments have loaded. Re-fires on
|
|
476
493
|
* every change, even mid-flow on a different service or step. */
|
|
477
494
|
initialTreatmentTitle?: string;
|
|
495
|
+
/** The booking's *current* date (YYYY-MM-DD) and time (HH:MM), for
|
|
496
|
+
* skipDetailsStep/reschedule mode only -- disables the confirm button
|
|
497
|
+
* when the visitor lands back on the exact slot this booking already
|
|
498
|
+
* has, instead of letting them submit a no-op change. No effect
|
|
499
|
+
* without skipDetailsStep. */
|
|
500
|
+
initialDate?: string;
|
|
501
|
+
initialTime?: string;
|
|
478
502
|
/** Pre-fills the matching contact-details field once a (truthy) value is
|
|
479
503
|
* available, but only while that field is still empty -- never overwrites
|
|
480
504
|
* something the visitor already typed. Applied once per field, no re-fire
|
|
@@ -482,6 +506,12 @@ export interface SpaBookingWidgetElement extends HTMLElement {
|
|
|
482
506
|
initialName?: string;
|
|
483
507
|
initialEmail?: string;
|
|
484
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;
|
|
485
515
|
strings?: Partial<SpaBookingWidgetStrings>;
|
|
486
516
|
fetchTreatments?: () => Promise<SpaTreatment[]>;
|
|
487
517
|
/** Optional therapist list for the datetime step's "Therapist" filter.
|
|
@@ -1458,6 +1488,14 @@ export interface AiChatWidgetElement extends HTMLElement {
|
|
|
1458
1488
|
greeting?: string;
|
|
1459
1489
|
/** Shown in the error message so a visitor can call instead. Omit to leave it out. */
|
|
1460
1490
|
phone?: string;
|
|
1491
|
+
/** Sweeps a light band across the launcher on hover. Default false. */
|
|
1492
|
+
ctaShimmer?: boolean;
|
|
1493
|
+
/** 'icon' shows a speech bubble in a circle instead of the wording. */
|
|
1494
|
+
launcher?: 'label' | 'icon';
|
|
1495
|
+
/** Whether the panel is open. Set it to open the chat from your own CTA --
|
|
1496
|
+
* including a static launcher you render yourself, so this element can stay
|
|
1497
|
+
* unloaded until a visitor asks for it. Reflects their own open/close too. */
|
|
1498
|
+
open?: boolean;
|
|
1461
1499
|
}
|
|
1462
1500
|
|
|
1463
1501
|
/** 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.201",
|
|
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"
|