keystone-design-bootstrap 1.0.47 → 1.0.49

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.
Files changed (38) hide show
  1. package/dist/{blog-post-CvRhU9ss.d.ts → blog-post-D7HFCDp1.d.ts} +2 -2
  2. package/dist/design_system/elements/index.d.ts +25 -1
  3. package/dist/design_system/elements/index.js +103 -3
  4. package/dist/design_system/elements/index.js.map +1 -1
  5. package/dist/design_system/sections/index.d.ts +64 -3
  6. package/dist/design_system/sections/index.js +1305 -458
  7. package/dist/design_system/sections/index.js.map +1 -1
  8. package/dist/form-BLZuTGkr.d.ts +137 -0
  9. package/dist/index.d.ts +6 -5
  10. package/dist/index.js +1335 -487
  11. package/dist/index.js.map +1 -1
  12. package/dist/lib/server-api.d.ts +49 -4
  13. package/dist/lib/server-api.js +17 -0
  14. package/dist/lib/server-api.js.map +1 -1
  15. package/dist/photos-8jMeetqV.d.ts +47 -0
  16. package/dist/types/index.d.ts +6 -5
  17. package/dist/utils/photo-helpers.d.ts +6 -15
  18. package/dist/utils/photo-helpers.js +10 -1
  19. package/dist/utils/photo-helpers.js.map +1 -1
  20. package/package.json +1 -1
  21. package/src/design_system/elements/index.tsx +4 -0
  22. package/src/design_system/elements/modal/modal.tsx +129 -0
  23. package/src/design_system/sections/header-navigation.aman.tsx +3 -3
  24. package/src/design_system/sections/header-navigation.balance.tsx +2 -2
  25. package/src/design_system/sections/header-navigation.barelux.tsx +2 -2
  26. package/src/design_system/sections/index.tsx +20 -2
  27. package/src/design_system/sections/offer-detail.tsx +46 -0
  28. package/src/design_system/sections/offers-gallery.tsx +40 -0
  29. package/src/design_system/sections/offers-grid.tsx +108 -0
  30. package/src/design_system/sections/offers-section.tsx +90 -0
  31. package/src/design_system/sections/service-menu-section.tsx +813 -0
  32. package/src/lib/server-api.ts +63 -0
  33. package/src/types/api/photos.ts +11 -10
  34. package/src/types/api/service.ts +21 -0
  35. package/src/utils/photo-helpers.ts +3 -14
  36. package/dist/company-information-C_k_sLSB.d.ts +0 -46
  37. package/dist/form-CWXC-IHT.d.ts +0 -88
  38. package/dist/website-photos-_n2g24IM.d.ts +0 -20
@@ -1,9 +1,11 @@
1
- import { S as Service, F as FormDefinition } from '../../form-CWXC-IHT.js';
1
+ import { S as Service, F as FormDefinition, C as CompanyInformation } from '../../form-BLZuTGkr.js';
2
2
  import * as React from 'react';
3
3
  import React__default, { ComponentProps, ReactNode, FC } from 'react';
4
4
  export { Theme } from '../../themes/index.js';
5
- import { B as BlogPost, a as BlogPostAuthor, b as BlogPostTag } from '../../blog-post-CvRhU9ss.js';
5
+ import { B as BlogPost, c as BlogPostAuthor, d as BlogPostTag } from '../../blog-post-D7HFCDp1.js';
6
6
  import { BadgeGroup } from '../elements/index.js';
7
+ import { OfferPublic } from '../../lib/server-api.js';
8
+ import { W as WebsitePhotos, P as PhotoAttachment } from '../../photos-8jMeetqV.js';
7
9
  import 'react-aria-components';
8
10
  import 'embla-carousel-react';
9
11
 
@@ -154,6 +156,61 @@ interface JobApplicationFormProps {
154
156
  }
155
157
  declare const JobApplicationForm: ({ jobSlug, formDefinition, inline }: JobApplicationFormProps) => React__default.JSX.Element | null;
156
158
 
159
+ interface OffersGridProps {
160
+ offers: OfferPublic[] | null;
161
+ title?: string;
162
+ subtitle?: string;
163
+ websitePhotos?: WebsitePhotos | null;
164
+ companyInformation?: CompanyInformation | null;
165
+ backgroundColor?: string;
166
+ }
167
+ /** Full offers page: grid of cards with photo or gradient fallback (view-only). */
168
+ declare function OffersGrid({ offers, title, subtitle, websitePhotos, companyInformation, backgroundColor, }: OffersGridProps): React__default.JSX.Element;
169
+
170
+ /** Minimal package from public API (id, name, slug, summary, photo_attachments, description_markdown). */
171
+ interface PackagePublic {
172
+ id: number;
173
+ name: string;
174
+ slug: string;
175
+ summary?: string | null;
176
+ description_markdown?: string | null;
177
+ pricing_info?: string | null;
178
+ price_cents?: number | null;
179
+ photo_attachments?: PhotoAttachment[];
180
+ package_items?: Array<{
181
+ quantity: number;
182
+ service_item?: {
183
+ id: number;
184
+ name: string;
185
+ slug: string;
186
+ summary?: string | null;
187
+ };
188
+ }>;
189
+ }
190
+ interface ServiceMenuSectionProps {
191
+ title?: string;
192
+ subtitle?: string;
193
+ offers?: OfferPublic[] | null;
194
+ packages?: PackagePublic[] | null;
195
+ /** Services (used to derive service items for the third row). */
196
+ services?: Service[] | null;
197
+ websitePhotos?: WebsitePhotos | null;
198
+ companyInformation?: CompanyInformation | null;
199
+ viewAllHref?: string;
200
+ /** Label for the View All button (e.g. "View All"). */
201
+ viewAllText?: string;
202
+ /** Customer-friendly label for the third row (individual service items). Default "Treatments". */
203
+ servicesRowTitle?: string;
204
+ /** 'section' = compact header + carousel (e.g. home). 'page' = hero + grid (e.g. /service-menu). */
205
+ variant?: 'section' | 'page';
206
+ }
207
+ /**
208
+ * Service Menu section: up to 3 independent carousel rows (Offers, Packages, Service Items).
209
+ * Service items are derived from services (each service’s service_items with service name).
210
+ * Cards cycle through photos; clicking opens a detail modal.
211
+ */
212
+ declare function ServiceMenuSection({ title, subtitle, offers, packages, services, websitePhotos, companyInformation, viewAllHref, viewAllText, servicesRowTitle, variant, }: ServiceMenuSectionProps): React__default.JSX.Element | null;
213
+
157
214
  declare const HeroHome: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
158
215
  declare const ServicesHome: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
159
216
  declare const AboutHome: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
@@ -191,4 +248,8 @@ declare const SocialMediaHero: (props: Record<string, unknown>) => React__defaul
191
248
  declare const TestimonialsHero: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
192
249
  declare const HomeHeroComponent: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
193
250
 
194
- export { AboutHome, BlogCardFullWidthHorizontal, BlogCardFullWidthHorizontalAlt, BlogCardFullWidthHorizontalCompact, BlogCardFullWidthHorizontalMinimal, BlogCardFullWidthVertical, BlogCardFullWidthVerticalAlt, BlogCardFullWidthVerticalCompact, BlogCardFullWidthVerticalMinimal, BlogCardHorizontal, BlogCardHorizontalBadge, BlogCardHorizontalCompact, BlogCardHorizontalMinimal, BlogCardVertical, BlogCardVerticalBadge, BlogCardVerticalCompact, BlogCardVerticalMinimal, BlogGallery, BlogHome, BlogPostSection, BlogSection, ContactHome, ContactSection, FAQGrid, FAQHero, FAQHome, FeatureTabHorizontal, FeatureTabVertical, FeatureTextCentered, FeatureTextFeaturedIconBox, FeatureTextFeaturedIconCard, FeatureTextFeaturedIconLeft, FeatureTextFeaturedIconTopCentered, FeatureTextFeaturedIconTopCenteredBrand, FeatureTextFeaturedIconTopLeft, FeatureTextFeaturedIconTopLeftBrand, FeatureTextIconCard, FeatureTextIconLeft, FeatureTextIconTopCentered, FeatureTextIconTopLeft, FeatureTextIntegrationIconBox, FeatureTextIntegrationIconLeft, FeatureTextIntegrationIconTopCentered, FeatureTextIntegrationIconTopLeft, FeatureTextLeft, FeatureTextLeftBrand, FooterHome, GenericHeaderComponent, GenericTextHero, HeaderNavigation, HeroHome, HomeHeroComponent, JobApplicationForm, JobDetailHero, JobDetailSection, JobGallery, LocationDetailHero, LocationDetailsSection, LocationGrid, PolicyDocumentSection, ServiceDetailContent, ServiceDetailHero, ServicesGrid, ServicesHome, SocialMediaGrid, SocialMediaHero, StatisticsSection, TeamGrid, TestimonialsGrid, TestimonialsHero, TestimonialsHome, ValuesSection, getBlogPostData };
251
+ declare const OffersSection: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
252
+ declare const OffersGallery: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
253
+ declare const OfferDetailSection: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
254
+
255
+ export { AboutHome, BlogCardFullWidthHorizontal, BlogCardFullWidthHorizontalAlt, BlogCardFullWidthHorizontalCompact, BlogCardFullWidthHorizontalMinimal, BlogCardFullWidthVertical, BlogCardFullWidthVerticalAlt, BlogCardFullWidthVerticalCompact, BlogCardFullWidthVerticalMinimal, BlogCardHorizontal, BlogCardHorizontalBadge, BlogCardHorizontalCompact, BlogCardHorizontalMinimal, BlogCardVertical, BlogCardVerticalBadge, BlogCardVerticalCompact, BlogCardVerticalMinimal, BlogGallery, BlogHome, BlogPostSection, BlogSection, ContactHome, ContactSection, FAQGrid, FAQHero, FAQHome, FeatureTabHorizontal, FeatureTabVertical, FeatureTextCentered, FeatureTextFeaturedIconBox, FeatureTextFeaturedIconCard, FeatureTextFeaturedIconLeft, FeatureTextFeaturedIconTopCentered, FeatureTextFeaturedIconTopCenteredBrand, FeatureTextFeaturedIconTopLeft, FeatureTextFeaturedIconTopLeftBrand, FeatureTextIconCard, FeatureTextIconLeft, FeatureTextIconTopCentered, FeatureTextIconTopLeft, FeatureTextIntegrationIconBox, FeatureTextIntegrationIconLeft, FeatureTextIntegrationIconTopCentered, FeatureTextIntegrationIconTopLeft, FeatureTextLeft, FeatureTextLeftBrand, FooterHome, GenericHeaderComponent, GenericTextHero, HeaderNavigation, HeroHome, HomeHeroComponent, JobApplicationForm, JobDetailHero, JobDetailSection, JobGallery, LocationDetailHero, LocationDetailsSection, LocationGrid, OfferDetailSection, OffersGallery, OffersGrid, OffersSection, type PackagePublic, PolicyDocumentSection, ServiceDetailContent, ServiceDetailHero, ServiceMenuSection, type ServiceMenuSectionProps, ServicesGrid, ServicesHome, SocialMediaGrid, SocialMediaHero, StatisticsSection, TeamGrid, TestimonialsGrid, TestimonialsHero, TestimonialsHome, ValuesSection, getBlogPostData };