@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.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
- declare function useServices(): _tanstack_react_query.UseQueryResult<ServicesResponse, Error>;
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
- declare function useTeam(): _tanstack_react_query.UseQueryResult<TeamResponse, Error>;
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 };