keystone-design-bootstrap 1.0.48 → 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 (35) 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/index.tsx +20 -2
  24. package/src/design_system/sections/offer-detail.tsx +46 -0
  25. package/src/design_system/sections/offers-gallery.tsx +40 -0
  26. package/src/design_system/sections/offers-grid.tsx +108 -0
  27. package/src/design_system/sections/offers-section.tsx +90 -0
  28. package/src/design_system/sections/service-menu-section.tsx +813 -0
  29. package/src/lib/server-api.ts +63 -0
  30. package/src/types/api/photos.ts +11 -10
  31. package/src/types/api/service.ts +21 -0
  32. package/src/utils/photo-helpers.ts +3 -14
  33. package/dist/company-information-C_k_sLSB.d.ts +0 -46
  34. package/dist/form-CWXC-IHT.d.ts +0 -88
  35. package/dist/website-photos-_n2g24IM.d.ts +0 -20
@@ -0,0 +1,137 @@
1
+ import { a as Photo, P as PhotoAttachment } from './photos-8jMeetqV.js';
2
+
3
+ interface Service {
4
+ id: number;
5
+ name: string;
6
+ slug: string;
7
+ description_markdown: string;
8
+ summary?: string;
9
+ pricing_info?: string;
10
+ features_markdown?: string;
11
+ featured: boolean;
12
+ sort_order: number;
13
+ photo_attachments?: Array<{
14
+ id: number;
15
+ featured: boolean;
16
+ attachable_id?: number;
17
+ attachable_type?: string;
18
+ photo?: {
19
+ id: number;
20
+ title: string;
21
+ thumbnail_url?: string;
22
+ medium_url?: string;
23
+ large_url?: string;
24
+ original_url?: string;
25
+ };
26
+ }>;
27
+ /** Menu items under this service category (when loaded with associations). */
28
+ service_items?: ServiceItem[];
29
+ created_at: string;
30
+ updated_at: string;
31
+ }
32
+ /** Single menu item under a service category. */
33
+ interface ServiceItem {
34
+ id: number;
35
+ name: string;
36
+ slug: string;
37
+ summary?: string | null;
38
+ description_markdown?: string | null;
39
+ pricing_info?: string | null;
40
+ price_cents?: number | null;
41
+ duration_minutes?: number | null;
42
+ sort_order: number;
43
+ service_id?: number;
44
+ /** Present when loaded for public/menu (from related service’s photos). */
45
+ photo_attachments?: Array<{
46
+ id: number;
47
+ photo?: {
48
+ thumbnail_url?: string;
49
+ medium_url?: string;
50
+ large_url?: string;
51
+ original_url?: string;
52
+ title?: string;
53
+ alt_text?: string;
54
+ };
55
+ }>;
56
+ }
57
+ interface ServiceParams {
58
+ featured?: boolean;
59
+ q?: string;
60
+ page?: number;
61
+ per_page?: number;
62
+ }
63
+ type ServiceResponse = Service[];
64
+
65
+ interface CompanyInformation {
66
+ id: number;
67
+ company_name: string;
68
+ tagline: string;
69
+ mission_statement_markdown?: string;
70
+ about_text_markdown?: string;
71
+ description_markdown?: string;
72
+ values_markdown?: string;
73
+ stats_markdown?: string;
74
+ founded_year?: number;
75
+ logo_photo?: Photo;
76
+ favicon_url?: string;
77
+ facebook_url?: string;
78
+ instagram_url?: string;
79
+ tiktok_url?: string;
80
+ linkedin_url?: string;
81
+ twitter_url?: string;
82
+ youtube_url?: string;
83
+ pinterest_url?: string;
84
+ google_my_business_url?: string;
85
+ yelp_url?: string;
86
+ tripadvisor_url?: string;
87
+ google_reviews_url?: string;
88
+ primary_phone?: string;
89
+ primary_email?: string;
90
+ primary_address_line_1?: string;
91
+ primary_address_line_2?: string;
92
+ primary_city?: string;
93
+ primary_state?: string;
94
+ primary_zip_code?: string;
95
+ primary_country?: string;
96
+ support_email?: string;
97
+ sales_email?: string;
98
+ business_hours?: string;
99
+ external_management_url?: string;
100
+ created_at: string;
101
+ updated_at: string;
102
+ photo_attachments?: PhotoAttachment[];
103
+ account_status?: string;
104
+ chat_enabled?: boolean;
105
+ }
106
+ type CompanyInformationResponse = CompanyInformation | null;
107
+
108
+ /**
109
+ * Form definition from API (GET /public/forms/:form_type).
110
+ * fields is an ordered array; each item is a single field or an array of fields (inline row). Max depth 2.
111
+ */
112
+ interface FormFieldDefinition {
113
+ name: string;
114
+ type: string;
115
+ label: string;
116
+ required?: boolean;
117
+ placeholder?: string;
118
+ /** For hidden fields, optional value to submit. */
119
+ value?: string;
120
+ }
121
+ /** One item in the fields array: either a single field or a row of fields (inline). */
122
+ type FormFieldItem = FormFieldDefinition | FormFieldDefinition[];
123
+ interface FormDefinition {
124
+ id: number;
125
+ name: string;
126
+ form_type: string;
127
+ /** Ordered array; each element is a field or an array of fields (inline row). */
128
+ fields: FormFieldItem[];
129
+ settings?: Record<string, unknown>;
130
+ /** Business name for consent copy (e.g. "{{company_name}}" in checkbox labels). */
131
+ company_name?: string;
132
+ created_at?: string;
133
+ updated_at?: string;
134
+ }
135
+ type FormType = 'lead' | 'job_application';
136
+
137
+ export type { CompanyInformation as C, FormDefinition as F, Service as S, CompanyInformationResponse as a, FormFieldDefinition as b, FormFieldItem as c, FormType as d, ServiceItem as e, ServiceParams as f, ServiceResponse as g };
package/dist/index.d.ts CHANGED
@@ -1,11 +1,12 @@
1
- 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 } from './design_system/sections/index.js';
2
- export { Avatar, AvatarLabelGroup, Badge, BadgeGroup, BadgeWithDot, Breadcrumb, Button, ButtonGroup, Carousel, CarouselContext, CarouselSectionWrapper, ComboBox, FeaturedIcon, Form, FormContainer, GoogleMap, HintText, Input, InputBase, InputGroup, Label, MarkdownRenderer, NativeSelect, Pagination, PaginationPageDefault, PaginationPageMinimalCenter, PhotoWithFallback, PrivacyCheckbox, RatingBadge, RatingStars, RoundButton, Select, SelectItem, SocialIcon, StarIcon, Textarea, Tooltip, VerifiedTick, VideoModal, VideoPlayButton, Wreath, getSocialIcon, getStarProgress, useCarousel } from './design_system/elements/index.js';
3
- import { C as CompanyInformation } from './company-information-C_k_sLSB.js';
1
+ 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, PackagePublic, PolicyDocumentSection, ServiceDetailContent, ServiceDetailHero, ServiceMenuSection, ServiceMenuSectionProps, ServicesGrid, ServicesHome, SocialMediaGrid, SocialMediaHero, StatisticsSection, TeamGrid, TestimonialsGrid, TestimonialsHero, TestimonialsHome, ValuesSection, getBlogPostData } from './design_system/sections/index.js';
2
+ export { Avatar, AvatarLabelGroup, Badge, BadgeGroup, BadgeWithDot, Breadcrumb, Button, ButtonGroup, Carousel, CarouselContext, CarouselSectionWrapper, ComboBox, FeaturedIcon, Form, FormContainer, GoogleMap, HintText, Input, InputBase, InputGroup, Label, MarkdownRenderer, Modal, ModalProps, NativeSelect, Pagination, PaginationPageDefault, PaginationPageMinimalCenter, PhotoWithFallback, PrivacyCheckbox, RatingBadge, RatingStars, RoundButton, Select, SelectItem, SocialIcon, StarIcon, Textarea, Tooltip, VerifiedTick, VideoModal, VideoPlayButton, Wreath, getSocialIcon, getStarProgress, useCarousel } from './design_system/elements/index.js';
3
+ import { C as CompanyInformation } from './form-BLZuTGkr.js';
4
4
  export { ThemeProvider, useTheme } from './contexts/index.js';
5
5
  import React__default from 'react';
6
6
  export { Theme } from './themes/index.js';
7
- import './form-CWXC-IHT.js';
8
- import './blog-post-CvRhU9ss.js';
7
+ import './blog-post-D7HFCDp1.js';
8
+ import './photos-8jMeetqV.js';
9
+ import './lib/server-api.js';
9
10
  import 'react-aria-components';
10
11
  import 'embla-carousel-react';
11
12