@ticketboothapp/booking 0.1.18 → 0.1.20

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 (152) hide show
  1. package/package.json +1 -1
  2. package/src/components/BookingWidget.tsx +282 -26
  3. package/src/components/ManageBookingView.tsx +75 -23
  4. package/src/components/booking/BookingProductGrid.tsx +1 -1
  5. package/src/components/booking/Calendar.module.css +3 -3
  6. package/src/components/booking/CheckoutForm.tsx +1 -1
  7. package/src/components/booking/PickupLocationSelector.tsx +1 -1
  8. package/src/index.ts +3 -1
  9. package/src/app/photo-sessions/photo-packages.ts +0 -75
  10. package/src/assets/icons/minus.svg +0 -7
  11. package/src/assets/icons/partner-logos/getyourguide.svg +0 -8
  12. package/src/assets/icons/plus.svg +0 -3
  13. package/src/colours.css +0 -23
  14. package/src/components/BookingDetails.module.css +0 -1591
  15. package/src/components/BookingDetails.tsx +0 -2264
  16. package/src/components/JobApplicationDialog.module.css +0 -440
  17. package/src/components/JobApplicationDialog.tsx +0 -620
  18. package/src/components/PhoneInputWithCountry.module.css +0 -131
  19. package/src/components/PhoneInputWithCountry.tsx +0 -44
  20. package/src/components/PickupLocationDialog.module.css +0 -360
  21. package/src/components/PickupLocationDialog.tsx +0 -357
  22. package/src/components/PickupLocationMap.tsx +0 -110
  23. package/src/components/PostBookingDependentAddOnUpsell.module.css +0 -174
  24. package/src/components/PostBookingDependentAddOnUpsell.tsx +0 -407
  25. package/src/components/accordion.css +0 -27
  26. package/src/components/accordion.tsx +0 -29
  27. package/src/components/analytics/AnalyticsConsentRestore.tsx +0 -19
  28. package/src/components/analytics/AnalyticsScripts.tsx +0 -106
  29. package/src/components/analytics/CookieConsentBanner.css +0 -86
  30. package/src/components/analytics/CookieConsentBanner.tsx +0 -102
  31. package/src/components/bottom-sheet.module.css +0 -78
  32. package/src/components/bottom-sheet.tsx +0 -60
  33. package/src/components/breadcrumb.module.css +0 -40
  34. package/src/components/breadcrumb.tsx +0 -36
  35. package/src/components/button.css +0 -245
  36. package/src/components/button.tsx +0 -152
  37. package/src/components/client-bottom-sheet.tsx +0 -14
  38. package/src/components/colorable-svg.tsx +0 -29
  39. package/src/components/conditional-footer.tsx +0 -27
  40. package/src/components/contact-us.module.css +0 -147
  41. package/src/components/contact-us.tsx +0 -49
  42. package/src/components/email-signup.css +0 -151
  43. package/src/components/email-signup.tsx +0 -63
  44. package/src/components/faq-wrapper.module.css +0 -47
  45. package/src/components/faq-wrapper.tsx +0 -15
  46. package/src/components/footer.css +0 -187
  47. package/src/components/footer.tsx +0 -143
  48. package/src/components/global-simple-modal.tsx +0 -33
  49. package/src/components/google-review-summary.module.css +0 -77
  50. package/src/components/google-review-summary.tsx +0 -50
  51. package/src/components/hero-image.css +0 -13
  52. package/src/components/hero-image.tsx +0 -44
  53. package/src/components/image.css +0 -29
  54. package/src/components/image.tsx +0 -113
  55. package/src/components/language-aware-link.tsx +0 -72
  56. package/src/components/language-switcher.module.css +0 -124
  57. package/src/components/language-switcher.tsx +0 -75
  58. package/src/components/map-section.css +0 -59
  59. package/src/components/map-section.tsx +0 -63
  60. package/src/components/navbar.module.css +0 -152
  61. package/src/components/navbar.tsx +0 -125
  62. package/src/components/parallax-provider.tsx +0 -11
  63. package/src/components/product-tag.module.css +0 -30
  64. package/src/components/product-tag.tsx +0 -34
  65. package/src/components/product-theme-pages/best-option.module.css +0 -70
  66. package/src/components/product-theme-pages/best-option.tsx +0 -35
  67. package/src/components/product-theme-pages/extended-tour-options.module.css +0 -22
  68. package/src/components/product-theme-pages/extended-tour-options.tsx +0 -11
  69. package/src/components/product-theme-pages/image-modal.tsx +0 -248
  70. package/src/components/product-theme-pages/photo-gallery.module.css +0 -200
  71. package/src/components/product-theme-pages/photo-gallery.tsx +0 -90
  72. package/src/components/product-theme-pages/product-theme-page-layout.module.css +0 -13
  73. package/src/components/product-theme-pages/product-theme-page-layout.tsx +0 -67
  74. package/src/components/product-theme-pages/top-of-fold.module.css +0 -179
  75. package/src/components/product-theme-pages/top-of-fold.tsx +0 -80
  76. package/src/components/product-tile/image-only-product-tile-desktop.module.css +0 -106
  77. package/src/components/product-tile/image-only-product-tile-desktop.tsx +0 -56
  78. package/src/components/product-tile/image-only-product-tile-mobile.module.css +0 -122
  79. package/src/components/product-tile/image-only-product-tile-mobile.tsx +0 -89
  80. package/src/components/product-tile/image-only-product-tile.tsx +0 -44
  81. package/src/components/product-tile/product-tile-card.module.css +0 -84
  82. package/src/components/product-tile/product-tile-card.tsx +0 -61
  83. package/src/components/review-highlights-section.css +0 -85
  84. package/src/components/review-highlights-section.tsx +0 -127
  85. package/src/components/season-closure-overlay.module.css +0 -99
  86. package/src/components/season-closure-overlay.tsx +0 -98
  87. package/src/components/simple-modal.tsx +0 -69
  88. package/src/components/simple-top-of-fold.module.css +0 -76
  89. package/src/components/simple-top-of-fold.tsx +0 -34
  90. package/src/components/spacer.css +0 -41
  91. package/src/components/spacer.tsx +0 -23
  92. package/src/components/star-rating.module.css +0 -74
  93. package/src/components/star-rating.tsx +0 -48
  94. package/src/components/terms/TermsContent.tsx +0 -178
  95. package/src/components/title-subtitle.module.css +0 -10
  96. package/src/components/title-subtitle.tsx +0 -30
  97. package/src/components/translatable-reviews.tsx +0 -75
  98. package/src/components/value-pill.module.css +0 -59
  99. package/src/components/value-pill.tsx +0 -46
  100. package/src/components/value-props.css +0 -185
  101. package/src/components/value-props.tsx +0 -88
  102. package/src/constants/booking-guide-quiz.ts +0 -64
  103. package/src/constants/contact-info.ts +0 -2
  104. package/src/constants/faq.ts +0 -44
  105. package/src/constants/images.ts +0 -556
  106. package/src/constants/json-ld/faq-json-ld.tsx +0 -170
  107. package/src/constants/json-ld/homepage-json-ld.tsx +0 -138
  108. package/src/constants/json-ld/job-posting-json-ld.tsx +0 -92
  109. package/src/constants/json-ld/organization-json-ld.tsx +0 -62
  110. package/src/constants/json-ld/page-json-ld.tsx +0 -6
  111. package/src/constants/json-ld/product-json-ld.tsx +0 -154
  112. package/src/constants/json-ld/review-json-ld.tsx +0 -377
  113. package/src/constants/navigation-links/footer-links.ts +0 -48
  114. package/src/constants/navigation-links/nav-bar-links.ts +0 -41
  115. package/src/constants/navigation-links/navigation-link.ts +0 -6
  116. package/src/constants/pill-values.ts +0 -210
  117. package/src/constants/products.ts +0 -155
  118. package/src/constants/quiz-recommendations.ts +0 -506
  119. package/src/constants/reviews.ts +0 -75
  120. package/src/constants/staff.ts +0 -197
  121. package/src/constants/value-props.ts +0 -58
  122. package/src/data/dap-descriptions/session-couples-families-friends.en.json +0 -61
  123. package/src/data/dap-descriptions/session-elopements.en.json +0 -60
  124. package/src/data/dap-descriptions/session-proposals.en.json +0 -60
  125. package/src/data/product-descriptions/afternoon-delight.en.json +0 -35
  126. package/src/data/product-descriptions/emerald-lake-escape.en.json +0 -68
  127. package/src/data/product-descriptions/lake-louise-adventure.en.json +0 -74
  128. package/src/data/product-descriptions/moraine-lake-adventure.en.json +0 -78
  129. package/src/data/product-descriptions/moraine-lake-sunrise-lake-louise-golden-hour.en.json +0 -65
  130. package/src/data/product-descriptions/moraine-lake-sunrise.en.json +0 -64
  131. package/src/data/product-descriptions/private-tour.en.json +0 -80
  132. package/src/data/product-descriptions/two-lakes-combo.en.json +0 -65
  133. package/src/data/products-config.json +0 -101
  134. package/src/hooks/use-bottom-sheet.tsx +0 -15
  135. package/src/hooks/use-simple-modal.tsx +0 -27
  136. package/src/hooks/useBookingSourceMetadataFromLocation.ts +0 -21
  137. package/src/hooks/useEmailSubscription.tsx +0 -103
  138. package/src/hooks/useEmbeddedInIframe.ts +0 -16
  139. package/src/hooks/useIsBookingLaunchLive.ts +0 -49
  140. package/src/hooks/useQuiz.tsx +0 -210
  141. package/src/providers/bottom-sheet-provider.tsx +0 -40
  142. package/src/providers/dependent-add-on-dialog-provider.tsx +0 -105
  143. package/src/radius.css +0 -5
  144. package/src/spacing.css +0 -7
  145. package/src/strings/en.json +0 -1774
  146. package/src/strings/es.json +0 -1573
  147. package/src/strings/fr.json +0 -1573
  148. package/src/strings/index.js +0 -23
  149. package/src/text-style.css +0 -97
  150. package/src/types/fareharbor.d.ts +0 -12
  151. package/src/types/quiz.ts +0 -59
  152. package/src/utils/currency-converter.ts +0 -101
@@ -1,14 +0,0 @@
1
- 'use client';
2
-
3
- import BottomSheet from './bottom-sheet';
4
- import { useBottomSheet } from '@/hooks/use-bottom-sheet';
5
-
6
- export default function ClientBottomSheet() {
7
- const { isOpen, content, closeSheet } = useBottomSheet();
8
-
9
- return (
10
- <BottomSheet isOpen={isOpen} onClose={closeSheet}>
11
- {content}
12
- </BottomSheet>
13
- );
14
- }
@@ -1,29 +0,0 @@
1
- import React from 'react';
2
-
3
- interface ColorableSvgProps {
4
- src: string;
5
- className?: string;
6
- width?: number;
7
- height?: number;
8
- }
9
-
10
- export default function ColorableSvg({ src, className, width = 24, height = 24 }: ColorableSvgProps) {
11
- const [svgContent, setSvgContent] = React.useState<string>('');
12
-
13
- React.useEffect(() => {
14
- fetch(src)
15
- .then(res => res.text())
16
- .then(text => {
17
- // Replace both the style attribute and width/height attributes
18
- const colorableSvg = text
19
- .replace(/style="[^"]*"/, 'style="fill: currentColor"')
20
- .replace(/width="[^"]*"/, `width="${width}"`)
21
- .replace(/height="[^"]*"/, `height="${height}"`);
22
- setSvgContent(colorableSvg);
23
- });
24
- }, [src, width, height]);
25
-
26
- return (
27
- <div className={className} dangerouslySetInnerHTML={{ __html: svgContent }} />
28
- );
29
- }
@@ -1,27 +0,0 @@
1
- 'use client';
2
-
3
- import { usePathname } from 'next/navigation';
4
- import { useEmbeddedInIframe } from '@/hooks/useEmbeddedInIframe';
5
- import Footer from './footer';
6
-
7
- export default function ConditionalFooter() {
8
- const pathname = usePathname();
9
- const embeddedInIframe = useEmbeddedInIframe();
10
-
11
- if (embeddedInIframe) {
12
- return null;
13
- }
14
-
15
- // Hide footer on subscribe/unsubscribe and partner pages
16
- if (
17
- pathname === '/subscribe' ||
18
- pathname === '/unsubscribe' ||
19
- pathname === '/live-pickups' ||
20
- pathname?.startsWith('/partner/') ||
21
- pathname?.startsWith('/partners/')
22
- ) {
23
- return null;
24
- }
25
-
26
- return <Footer />;
27
- }
@@ -1,147 +0,0 @@
1
- .contactSection {
2
- padding-bottom: 1rem; /* Reduced from 6rem */
3
- }
4
-
5
- .contactTiles {
6
- display: flex;
7
- flex-direction: column;
8
- flex: 1;
9
- gap: 1rem;
10
- }
11
-
12
- .imageContainer {
13
- width: 100%;
14
- display: flex;
15
- flex-direction: column;
16
- gap: 1rem;
17
- height: 320px;
18
- }
19
-
20
- .contactImageCaption {
21
- font-size: 0.9rem;
22
- color: var(--primary-text);
23
- text-align: center;
24
- }
25
-
26
- .imageContainer img {
27
- border-radius: var(--border-radius-small);
28
- object-fit: cover;
29
- }
30
-
31
- @media (min-width: 1024px) {
32
- .container {
33
- padding: 4rem;
34
- }
35
-
36
- .title {
37
- font-size: 4rem;
38
- }
39
-
40
- .contactTileTitle {
41
- font-size: 2.5rem;
42
- }
43
-
44
- .contactTiles {
45
- flex-direction: row;
46
- align-items: flex-start;
47
- gap: 4rem;
48
- }
49
-
50
- .imageContainer {
51
- height: 500px;
52
- flex: 1;
53
- max-width: 50%;
54
- }
55
-
56
- .contactInfo {
57
- flex: 1;
58
- display: flex;
59
- flex-direction: column;
60
- justify-content: flex-start;
61
- }
62
-
63
- .contactLink {
64
- font-size: 1.2rem;
65
- }
66
-
67
- .contactTileDescription {
68
- font-size: 1.2rem;
69
- }
70
- }
71
-
72
- @media (max-width: 1023px) {
73
- .container {
74
- padding: 1rem;
75
- }
76
-
77
- .title {
78
- font-size: 4rem;
79
- }
80
-
81
- .contactTileTitle {
82
- font-size: 1.5rem;
83
- }
84
-
85
- .contactLink {
86
- font-size: 1.1rem;
87
- }
88
-
89
- .contactTileDescription {
90
- font-size: 1.1rem;
91
- }
92
- }
93
-
94
- .contactTile {
95
- border-left: 4px solid var(--accent-orange);
96
- padding-left: 1rem;
97
- margin-bottom: 2rem;
98
- max-width: 100%; /* Ensure it doesn't overflow container */
99
- }
100
-
101
- .contactLink {
102
- text-decoration: underline;
103
- color: var(--accent-orange);
104
- font-family: monospace;
105
- word-break: break-all; /* Break long email addresses */
106
- display: inline-block; /* Helps with overflow containment */
107
- }
108
-
109
- .contactTileDescription {
110
- color: inherit;
111
- text-decoration: none;
112
- font-family: monospace; /* For that typewriter-like feel */
113
- }
114
-
115
- .contactSignOff {
116
- color: var(--accent-orange);
117
- text-decoration: none;
118
- font-size: 1.2rem;
119
- font-weight: bold;
120
- font-family: monospace; /* For that typewriter-like feel */
121
- }
122
-
123
- .contactTile h3 {
124
- margin: 0 0 0.5rem 0;
125
- font-size: 1.5rem;
126
- }
127
-
128
- .contactTile address {
129
- font-style: normal;
130
- }
131
-
132
- .title {
133
- font-weight: normal;
134
- text-align: left;
135
- margin-bottom: 1rem; /* Single margin rule here */
136
- }
137
-
138
- .contactTileTitle {
139
- text-align: left;
140
- }
141
-
142
- .contactInfo {
143
- display: flex;
144
- flex-direction: column;
145
- margin: auto 0; /* This will center it vertically */
146
- flex: 1;
147
- }
@@ -1,49 +0,0 @@
1
- 'use client';
2
-
3
- import styles from './contact-us.module.css';
4
- import defaultStrings from '@/strings';
5
- import { CONTACT_EMAIL, CONTACT_PHONE } from '@/constants/contact-info';
6
- import ViaViaImage from './image';
7
- import { IMAGES } from '@/constants/images';
8
-
9
- export default function ContactUs({ strings = defaultStrings }: { strings?: any }) {
10
- return (
11
- <section className={styles.contactSection}>
12
- <div className={styles.container}>
13
- <h3 className={styles.title}>{strings.contact.title}</h3>
14
- <div className={styles.contactTiles}>
15
- <div className={styles.contactInfo}>
16
- <div className={styles.contactTile}>
17
- <h4 className={styles.contactTileTitle}>{strings.contact.writeUs}</h4>
18
- <a href={`mailto:${CONTACT_EMAIL}`} className={styles.contactLink}>
19
- {CONTACT_EMAIL}
20
- </a>
21
- </div>
22
-
23
- <div className={styles.contactTile}>
24
- <h4 className={styles.contactTileTitle}>{strings.contact.sayHi}</h4>
25
- <a href={`tel:${CONTACT_PHONE}`} className={styles.contactLink}>
26
- {CONTACT_PHONE}
27
- </a>
28
- </div>
29
-
30
- <div className={styles.contactTile}>
31
- <h4 className={styles.contactTileTitle}>{strings.contact.weMightSpeakYourLanguage}</h4>
32
- <p className={styles.contactTileDescription}>{strings.contact.weMightSpeakYourLanguageDescription}</p>
33
- </div>
34
- </div>
35
-
36
- <div className={styles.imageContainer}>
37
- <ViaViaImage
38
- className={styles.contactImage}
39
- imageId={IMAGES.JENNA_AND_NATHAN_VIA_VIA.id}
40
- alt={IMAGES.JENNA_AND_NATHAN_VIA_VIA.alt}
41
- context="GALLERY"
42
- />
43
- <p className={styles.contactImageCaption}>{strings.contact.contactImageCaption}</p>
44
- </div>
45
- </div>
46
- </div>
47
- </section>
48
- );
49
- }
@@ -1,151 +0,0 @@
1
- /* Email signup form styles */
2
- .email-signup {
3
- display: flex;
4
- flex-direction: column;
5
- align-items: center;
6
- gap: 0.2rem;
7
- width: 100%;
8
- max-width: 500px;
9
- margin: 1rem auto;
10
- }
11
-
12
- .email-signup h3 {
13
- color: var(--accent-white);
14
- font-family: 'Poppins';
15
- font-weight: 800;
16
- font-size: 1.5rem;
17
- text-align: center;
18
- margin: 0;
19
- text-transform: lowercase;
20
- }
21
-
22
- .email-signup-form {
23
- display: flex;
24
- gap: 0.5rem;
25
- width: 100%;
26
- max-width: 450px;
27
- }
28
-
29
- .email-signup-input {
30
- flex: 1;
31
- padding: 0.5rem;
32
- border: 2px solid var(--accent-white);
33
- border-radius: 8px;
34
- background-color: transparent;
35
- color: var(--accent-white);
36
- font-family: 'Figtree';
37
- font-size: 0.92rem;
38
- outline: none;
39
- transition: border-color 0.3s ease;
40
- }
41
-
42
- .email-signup-input::placeholder {
43
- color: var(--accent-white-70);
44
- }
45
-
46
- .email-signup-input:focus {
47
- border-color: var(--accent-white);
48
- box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.2);
49
- }
50
-
51
- .email-signup-submit {
52
- padding: 0.75rem 1.5rem;
53
- background-color: var(--accent-white);
54
- color: var(--accent-orange);
55
- border: 2px solid var(--accent-white);
56
- border-radius: 8px;
57
- font-family: 'Poppins';
58
- font-size: 1rem;
59
- font-weight: 800;
60
- text-transform: lowercase;
61
- cursor: pointer;
62
- transition: all 0.3s ease;
63
- white-space: nowrap;
64
- }
65
-
66
- .email-signup-submit:hover {
67
- background-color: transparent;
68
- color: var(--accent-white);
69
- }
70
-
71
- .email-signup-submit:disabled {
72
- opacity: 0.6;
73
- cursor: not-allowed;
74
- }
75
-
76
- .email-signup-success {
77
- color: var(--accent-white);
78
- font-family: 'Figtree';
79
- font-size: 1rem;
80
- text-align: center;
81
- margin-top: 0.5rem;
82
- }
83
-
84
- .email-signup-error {
85
- color: #ffcccb;
86
- font-family: 'Figtree';
87
- font-size: 1rem;
88
- text-align: center;
89
- margin-top: 0.5rem;
90
- }
91
-
92
- /* Modal-specific styles for white background */
93
- .email-signup-modal .email-signup h3 {
94
- color: var(--accent-orange) !important;
95
- }
96
-
97
- .email-signup-modal .email-signup-input {
98
- border: 2px solid var(--accent-orange) !important;
99
- background-color: #fff !important;
100
- color: var(--primary-text) !important;
101
- }
102
-
103
- .email-signup-modal .email-signup-input::placeholder {
104
- color: var(--grey-text) !important;
105
- }
106
-
107
- .email-signup-modal .email-signup-input:focus {
108
- border-color: var(--accent-orange) !important;
109
- box-shadow: 0 0 0 2px var(--accent-orange-10) !important;
110
- }
111
-
112
- .email-signup-modal .email-signup-submit {
113
- background-color: var(--accent-orange) !important;
114
- color: var(--accent-white) !important;
115
- border: 2px solid var(--accent-orange) !important;
116
- }
117
-
118
- .email-signup-modal .email-signup-submit:hover {
119
- background-color: var(--accent-orange-70) !important;
120
- color: var(--accent-white) !important;
121
- }
122
-
123
- .email-signup-modal .email-signup-success {
124
- color: #28a745 !important;
125
- }
126
-
127
- .email-signup-modal .email-signup-error {
128
- color: #dc3545 !important;
129
- }
130
-
131
- /* Mobile styles for email signup */
132
- @media (max-width: 768px) {
133
- .email-signup {
134
- max-width: 320px;
135
- }
136
-
137
- .email-signup h3 {
138
- font-size: 1.25rem;
139
- }
140
-
141
- .email-signup-form {
142
- flex-direction: column;
143
- gap: 0.75rem;
144
- }
145
-
146
- .email-signup-input,
147
- .email-signup-submit {
148
- padding: 0.8rem;
149
- font-size: 0.92rem;
150
- }
151
- }
@@ -1,63 +0,0 @@
1
- 'use client';
2
-
3
- import { useEmailSubscription } from '@/hooks/useEmailSubscription';
4
- import './email-signup.css';
5
-
6
- interface EmailSignupProps {
7
- strings: any;
8
- initialEmail?: string;
9
- autoSubmit?: boolean;
10
- source?: string;
11
- }
12
-
13
- export default function EmailSignup({ strings, initialEmail = '', autoSubmit = false, source }: EmailSignupProps) {
14
- const { email, setEmail, isSubmitting, submitStatus, subscribeEmail } = useEmailSubscription({
15
- initialEmail,
16
- autoSubmit,
17
- source
18
- });
19
-
20
- const handleEmailSubmit = async (e: React.FormEvent) => {
21
- e.preventDefault();
22
- if (!email || isSubmitting) return;
23
- await subscribeEmail(email);
24
- };
25
-
26
- return (
27
- <div className="email-signup">
28
- <h3>{strings.footer.emailSignup.title}</h3>
29
- <form className="email-signup-form" onSubmit={handleEmailSubmit}>
30
- <input
31
- type="email"
32
- value={email}
33
- onChange={(e) => setEmail(e.target.value)}
34
- placeholder={strings.footer.emailSignup.placeholder}
35
- className="email-signup-input"
36
- required
37
- />
38
- <button
39
- type="submit"
40
- disabled={isSubmitting || !email}
41
- className="email-signup-submit"
42
- >
43
- {isSubmitting ? '...' : strings.footer.emailSignup.submit}
44
- </button>
45
- </form>
46
- {submitStatus === 'success' && (
47
- <div className="email-signup-success">
48
- {strings.footer.emailSignup.success}
49
- </div>
50
- )}
51
- {submitStatus === 'error' && (
52
- <div className="email-signup-error">
53
- {strings.footer.emailSignup.error}
54
- </div>
55
- )}
56
- {submitStatus === 'duplicate' && (
57
- <div className="email-signup-success">
58
- {strings.footer.emailSignup.duplicate}
59
- </div>
60
- )}
61
- </div>
62
- );
63
- }
@@ -1,47 +0,0 @@
1
- .faqWrapper {
2
- padding-top: var(--spacing-large);
3
- padding-bottom: var(--spacing-large);
4
- display: flex;
5
- flex-direction: column;
6
- align-items: center;
7
- justify-content: center;
8
- margin: 0 auto;
9
- box-sizing: border-box;
10
- }
11
-
12
- .faqWrapperRow {
13
- display: flex;
14
- padding-bottom: var(--spacing-medium);
15
- box-sizing: border-box;
16
- width: 100%;
17
- }
18
-
19
- @media (min-width: 1024px) {
20
- .faqWrapper {
21
- width: 70%;
22
- }
23
-
24
- .faqWrapperRow {
25
- flex-direction: row;
26
- }
27
-
28
- .faqWrapperTitle {
29
- width: 30%;
30
- }
31
-
32
- .faqSection {
33
- width: 70%;
34
- box-sizing: border-box;
35
- }
36
- }
37
-
38
- @media (max-width: 1023px) {
39
- .faqWrapper {
40
- width: 100%;
41
- }
42
-
43
- .faqWrapperRow {
44
- flex-direction: column;
45
- }
46
- }
47
-
@@ -1,15 +0,0 @@
1
- import styles from "./faq-wrapper.module.css";
2
- import FAQSection from "@/app/faq/faq-section";
3
- import { faqSection } from "@/constants/faq";
4
-
5
- export default function FAQWrapper({faqSection, strings}: {faqSection: faqSection, strings: any}) {
6
- return (
7
- <div className={styles.faqWrapper}>
8
- <div className={styles.faqWrapperRow}>
9
- <h2 className={styles.faqWrapperTitle}>{strings.productThemePages.faqSection.title}</h2>
10
- <FAQSection className={styles.faqSection} faqSection={faqSection} selectionMode="single" />
11
- </div>
12
- <a href="/faq" className={styles.faqWrapperLink}>{strings.common.seeMore} →</a>
13
- </div>
14
- )
15
- }