@idkwebsites/components 0.1.7 → 0.1.8
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/index.cjs +792 -206
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +78 -8
- package/dist/index.d.ts +78 -8
- package/dist/index.js +780 -194
- package/dist/index.js.map +1 -1
- package/dist/styles.css +275 -0
- package/dist/styles.css.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -51,6 +51,7 @@ interface StaffMember {
|
|
|
51
51
|
email: string;
|
|
52
52
|
aliasEmail?: string;
|
|
53
53
|
phone?: string;
|
|
54
|
+
bio?: string;
|
|
54
55
|
role?: 'owner' | 'manager' | 'staff';
|
|
55
56
|
timeZone?: string;
|
|
56
57
|
isActive?: boolean;
|
|
@@ -61,6 +62,7 @@ interface Service {
|
|
|
61
62
|
id: string;
|
|
62
63
|
name: string;
|
|
63
64
|
description?: string;
|
|
65
|
+
image?: MediaRef | null;
|
|
64
66
|
duration: number;
|
|
65
67
|
price?: number;
|
|
66
68
|
category?: string;
|
|
@@ -147,13 +149,38 @@ interface ServicesResponse {
|
|
|
147
149
|
services: Service[];
|
|
148
150
|
total: number;
|
|
149
151
|
}
|
|
150
|
-
|
|
152
|
+
interface ServicesQueryParams {
|
|
153
|
+
category?: string | string[];
|
|
154
|
+
staffId?: string;
|
|
155
|
+
isActive?: boolean;
|
|
156
|
+
minPrice?: number;
|
|
157
|
+
maxPrice?: number;
|
|
158
|
+
search?: string;
|
|
159
|
+
ids?: string[];
|
|
160
|
+
limit?: number;
|
|
161
|
+
sort?: 'name' | 'price' | 'duration' | 'sortOrder';
|
|
162
|
+
order?: 'asc' | 'desc';
|
|
163
|
+
enabled?: boolean;
|
|
164
|
+
}
|
|
165
|
+
declare function useServices(params?: ServicesQueryParams): _tanstack_react_query.UseQueryResult<ServicesResponse, Error>;
|
|
151
166
|
|
|
152
167
|
interface TeamResponse {
|
|
153
168
|
team: StaffMember[];
|
|
154
169
|
total: number;
|
|
155
170
|
}
|
|
156
|
-
|
|
171
|
+
interface TeamQueryParams {
|
|
172
|
+
role?: string | string[];
|
|
173
|
+
isActive?: boolean;
|
|
174
|
+
acceptsNewBookings?: boolean;
|
|
175
|
+
search?: string;
|
|
176
|
+
ids?: string[];
|
|
177
|
+
serviceId?: string;
|
|
178
|
+
limit?: number;
|
|
179
|
+
sort?: 'name' | 'role' | 'createdAt';
|
|
180
|
+
order?: 'asc' | 'desc';
|
|
181
|
+
enabled?: boolean;
|
|
182
|
+
}
|
|
183
|
+
declare function useTeam(params?: TeamQueryParams): _tanstack_react_query.UseQueryResult<TeamResponse, Error>;
|
|
157
184
|
|
|
158
185
|
interface AvailabilityParams {
|
|
159
186
|
serviceId: string;
|
|
@@ -180,34 +207,54 @@ interface ServicesListProps {
|
|
|
180
207
|
className?: string;
|
|
181
208
|
showDescription?: boolean;
|
|
182
209
|
showPrice?: boolean;
|
|
210
|
+
showImage?: boolean;
|
|
211
|
+
query?: ServicesQueryParams;
|
|
212
|
+
filter?: (service: Service) => boolean;
|
|
213
|
+
sort?: (a: Service, b: Service) => number;
|
|
214
|
+
limit?: number;
|
|
215
|
+
emptyMessage?: string;
|
|
216
|
+
loadingMessage?: string;
|
|
183
217
|
onSelect?: (service: Service) => void;
|
|
184
218
|
}
|
|
185
|
-
declare function ServicesList({ layout, columns, className, showDescription, showPrice, onSelect, }: ServicesListProps): react_jsx_runtime.JSX.Element;
|
|
219
|
+
declare function ServicesList({ layout, columns, className, showDescription, showPrice, showImage, query, filter, sort, limit, emptyMessage, loadingMessage, onSelect, }: ServicesListProps): react_jsx_runtime.JSX.Element;
|
|
186
220
|
|
|
187
221
|
interface ServiceCardProps {
|
|
188
222
|
service: Service;
|
|
189
223
|
className?: string;
|
|
190
224
|
showDescription?: boolean;
|
|
191
225
|
showPrice?: boolean;
|
|
226
|
+
showImage?: boolean;
|
|
192
227
|
onSelect?: (service: Service) => void;
|
|
193
228
|
}
|
|
194
|
-
declare function ServiceCard({ service, className, showDescription, showPrice, onSelect, }: ServiceCardProps): react_jsx_runtime.JSX.Element;
|
|
229
|
+
declare function ServiceCard({ service, className, showDescription, showPrice, showImage, onSelect, }: ServiceCardProps): react_jsx_runtime.JSX.Element;
|
|
195
230
|
|
|
196
231
|
interface TeamGridProps {
|
|
197
232
|
columns?: number;
|
|
198
233
|
className?: string;
|
|
199
234
|
showRole?: boolean;
|
|
200
235
|
showEmail?: boolean;
|
|
236
|
+
showBio?: boolean;
|
|
237
|
+
layout?: "card" | "profile";
|
|
238
|
+
imagePosition?: "left" | "right";
|
|
239
|
+
query?: TeamQueryParams;
|
|
240
|
+
filter?: (member: StaffMember) => boolean;
|
|
241
|
+
sort?: (a: StaffMember, b: StaffMember) => number;
|
|
242
|
+
limit?: number;
|
|
243
|
+
emptyMessage?: string;
|
|
244
|
+
loadingMessage?: string;
|
|
201
245
|
}
|
|
202
|
-
declare function TeamGrid({ columns, className, showRole, showEmail, }: TeamGridProps): react_jsx_runtime.JSX.Element;
|
|
246
|
+
declare function TeamGrid({ columns, className, showRole, showEmail, showBio, layout, imagePosition, query, filter, sort, limit, emptyMessage, loadingMessage, }: TeamGridProps): react_jsx_runtime.JSX.Element;
|
|
203
247
|
|
|
204
248
|
interface TeamMemberProps {
|
|
205
249
|
member: StaffMember;
|
|
206
250
|
className?: string;
|
|
207
251
|
showRole?: boolean;
|
|
208
252
|
showEmail?: boolean;
|
|
253
|
+
showBio?: boolean;
|
|
254
|
+
layout?: "card" | "profile";
|
|
255
|
+
imagePosition?: "left" | "right";
|
|
209
256
|
}
|
|
210
|
-
declare function TeamMember({ member, className, showRole, showEmail, }: TeamMemberProps): react_jsx_runtime.JSX.Element;
|
|
257
|
+
declare function TeamMember({ member, className, showRole, showEmail, showBio, layout, imagePosition, }: TeamMemberProps): react_jsx_runtime.JSX.Element;
|
|
211
258
|
|
|
212
259
|
type ContactField = 'name' | 'email' | 'phone' | 'subject' | 'message';
|
|
213
260
|
interface ContactFormProps {
|
|
@@ -224,8 +271,31 @@ interface BookingWidgetProps {
|
|
|
224
271
|
className?: string;
|
|
225
272
|
showStaffSelection?: boolean;
|
|
226
273
|
onSuccess?: (booking: unknown) => void;
|
|
274
|
+
services?: Service[];
|
|
275
|
+
servicesQuery?: ServicesQueryParams;
|
|
276
|
+
teamQuery?: TeamQueryParams;
|
|
277
|
+
serviceFilter?: (service: Service) => boolean;
|
|
278
|
+
teamFilter?: (member: StaffMember) => boolean;
|
|
279
|
+
title?: string;
|
|
280
|
+
subtitle?: string;
|
|
281
|
+
autoAdvanceOnSelect?: boolean;
|
|
282
|
+
scrollToStep?: boolean;
|
|
283
|
+
scrollOffset?: number;
|
|
284
|
+
enableServiceSearch?: boolean;
|
|
285
|
+
serviceSearchPlaceholder?: string;
|
|
286
|
+
enableCategoryFilter?: boolean;
|
|
287
|
+
categoryLabel?: string;
|
|
288
|
+
serviceListMaxHeight?: number | string;
|
|
289
|
+
serviceLayout?: "list" | "grid";
|
|
290
|
+
serviceColumns?: number;
|
|
291
|
+
servicePageSize?: number;
|
|
292
|
+
showServicePagination?: boolean;
|
|
293
|
+
staffLayout?: "list" | "grid";
|
|
294
|
+
staffColumns?: number;
|
|
295
|
+
showAnyStaffOption?: boolean;
|
|
296
|
+
timeLayout?: "stack" | "split";
|
|
227
297
|
}
|
|
228
|
-
declare function BookingWidget({ className, showStaffSelection, onSuccess, }: BookingWidgetProps): react_jsx_runtime.JSX.Element;
|
|
298
|
+
declare function BookingWidget({ className, showStaffSelection, onSuccess, services, servicesQuery, teamQuery, serviceFilter, teamFilter, title, subtitle, autoAdvanceOnSelect, scrollToStep, scrollOffset, enableServiceSearch, serviceSearchPlaceholder, enableCategoryFilter, categoryLabel, serviceListMaxHeight, serviceLayout, serviceColumns, servicePageSize, showServicePagination, staffLayout, staffColumns, showAnyStaffOption, timeLayout, }: BookingWidgetProps): react_jsx_runtime.JSX.Element;
|
|
229
299
|
|
|
230
300
|
interface AvailabilityPickerProps {
|
|
231
301
|
serviceId: string;
|
|
@@ -273,4 +343,4 @@ interface TimePickerProps {
|
|
|
273
343
|
}
|
|
274
344
|
declare function TimePicker({ slots, selectedTime, onSelect, className, }: TimePickerProps): react_jsx_runtime.JSX.Element;
|
|
275
345
|
|
|
276
|
-
export { AvailabilityPicker, type AvailabilityResult, type BookingCancelInput, type BookingCreateInput, type BookingLookup, BookingWidget, ContactForm, type ContactSubmissionInput, DatePicker, PlatformProvider, type Service, ServiceCard, ServicePicker, ServicesList, type StaffMember, StaffPicker, TeamGrid, TeamMember, type TenantInfo, TimePicker, useAvailability, useBookingLookup, useCancelBooking, useCreateBooking, useServices, useTeam, useTenant };
|
|
346
|
+
export { AvailabilityPicker, type AvailabilityResult, type BookingCancelInput, type BookingCreateInput, type BookingLookup, BookingWidget, ContactForm, type ContactSubmissionInput, DatePicker, PlatformProvider, type Service, ServiceCard, ServicePicker, ServicesList, type ServicesQueryParams, type StaffMember, StaffPicker, TeamGrid, TeamMember, type TeamQueryParams, type TenantInfo, TimePicker, useAvailability, useBookingLookup, useCancelBooking, useCreateBooking, useServices, useTeam, useTenant };
|