@qite/tide-booking-component 1.4.66 → 1.4.67

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.
@@ -45222,6 +45222,89 @@ var Breadcrumbs = function (_a) {
45222
45222
  );
45223
45223
  };
45224
45224
 
45225
+ function Accordion(_a) {
45226
+ var summary = _a.summary,
45227
+ children = _a.children,
45228
+ _b = _a.defaultOpen,
45229
+ defaultOpen = _b === void 0 ? false : _b,
45230
+ _c = _a.className,
45231
+ className = _c === void 0 ? '' : _c;
45232
+ var _d = React__default['default'].useState(defaultOpen),
45233
+ open = _d[0],
45234
+ setOpen = _d[1];
45235
+ return React__default['default'].createElement(
45236
+ 'div',
45237
+ { className: ['accordion', open && 'accordion--open', className].filter(Boolean).join(' ') },
45238
+ React__default['default'].createElement(
45239
+ 'button',
45240
+ {
45241
+ className: 'accordion__trigger',
45242
+ type: 'button',
45243
+ 'aria-expanded': open,
45244
+ onClick: function () {
45245
+ return setOpen(function (v) {
45246
+ return !v;
45247
+ });
45248
+ }
45249
+ },
45250
+ React__default['default'].createElement('span', null, summary),
45251
+ React__default['default'].createElement(
45252
+ 'span',
45253
+ { className: 'accordion__icon', 'aria-hidden': true },
45254
+ React__default['default'].createElement(Icon$3, { name: 'ui-chevron', width: 20, height: 20 })
45255
+ )
45256
+ ),
45257
+ React__default['default'].createElement(
45258
+ 'div',
45259
+ { className: 'accordion__panel' },
45260
+ React__default['default'].createElement(
45261
+ 'div',
45262
+ { className: 'accordion__panelInner' },
45263
+ React__default['default'].createElement('div', { className: 'accordion__content' }, children)
45264
+ )
45265
+ )
45266
+ );
45267
+ }
45268
+
45269
+ var FAQ = function (_a) {
45270
+ var items = _a.items,
45271
+ _b = _a.title,
45272
+ title = _b === void 0 ? 'Frequently Asked Questions' : _b;
45273
+ if (!(items === null || items === void 0 ? void 0 : items.length)) {
45274
+ return React__default['default'].createElement(
45275
+ 'section',
45276
+ { className: 'faq' },
45277
+ React__default['default'].createElement('h2', { className: 'faq__title' }, title),
45278
+ React__default['default'].createElement('p', { className: 'faq__empty' }, 'No FAQs available.')
45279
+ );
45280
+ }
45281
+ return React__default['default'].createElement(
45282
+ 'div',
45283
+ { className: 'content' },
45284
+ React__default['default'].createElement(
45285
+ 'div',
45286
+ { className: 'content__container content__container--small' },
45287
+ React__default['default'].createElement(
45288
+ 'section',
45289
+ { className: 'faq' },
45290
+ React__default['default'].createElement('h2', { className: 'faq__title' }, title),
45291
+ React__default['default'].createElement(
45292
+ 'div',
45293
+ { className: 'faq__list' },
45294
+ items.map(function (item, idx) {
45295
+ var _a;
45296
+ return React__default['default'].createElement(
45297
+ Accordion,
45298
+ { key: (_a = item.question) !== null && _a !== void 0 ? _a : idx, summary: item.question },
45299
+ React__default['default'].createElement('div', { className: 'faq__answer' }, item.answer)
45300
+ );
45301
+ })
45302
+ )
45303
+ )
45304
+ )
45305
+ );
45306
+ };
45307
+
45225
45308
  var signalR$1 = {};
45226
45309
 
45227
45310
  var jqueryDeferred$1 = { exports: {} };
@@ -49119,6 +49202,7 @@ var signalR = /*#__PURE__*/ _mergeNamespaces(
49119
49202
  exports.BookingProduct = BookingProduct;
49120
49203
  exports.BookingWizard = BookingWizard;
49121
49204
  exports.Breadcrumbs = Breadcrumbs;
49205
+ exports.FAQ = FAQ;
49122
49206
  exports.Footer = Footer;
49123
49207
  exports.Header = Header;
49124
49208
  exports.ImageCardGrid = ImageCardGrid;
@@ -7,4 +7,5 @@ export interface FAQProps {
7
7
  items: FAQItem[];
8
8
  title?: string;
9
9
  }
10
- export default function FAQ({ items, title }: FAQProps): React.JSX.Element;
10
+ declare const FAQ: React.FC<FAQProps>;
11
+ export default FAQ;
@@ -11,6 +11,7 @@ import ImageWithTextSection from './content/image-with-text-section';
11
11
  import Slider from './content/components/slider';
12
12
  import PhotoGallery from './content/components/gallery';
13
13
  import Breadcrumbs from './content/components/breadcrumb';
14
+ import FAQ from './content/components/faq';
14
15
  export * from './content/navbar/types';
15
16
  export * from './content/header/types';
16
17
  export * from './content/footer/types';
@@ -33,5 +34,6 @@ export {
33
34
  ImageWithTextSection,
34
35
  Slider,
35
36
  PhotoGallery,
36
- Breadcrumbs
37
+ Breadcrumbs,
38
+ FAQ
37
39
  };
@@ -44925,6 +44925,89 @@ var Breadcrumbs = function (_a) {
44925
44925
  );
44926
44926
  };
44927
44927
 
44928
+ function Accordion(_a) {
44929
+ var summary = _a.summary,
44930
+ children = _a.children,
44931
+ _b = _a.defaultOpen,
44932
+ defaultOpen = _b === void 0 ? false : _b,
44933
+ _c = _a.className,
44934
+ className = _c === void 0 ? '' : _c;
44935
+ var _d = React__default.useState(defaultOpen),
44936
+ open = _d[0],
44937
+ setOpen = _d[1];
44938
+ return React__default.createElement(
44939
+ 'div',
44940
+ { className: ['accordion', open && 'accordion--open', className].filter(Boolean).join(' ') },
44941
+ React__default.createElement(
44942
+ 'button',
44943
+ {
44944
+ className: 'accordion__trigger',
44945
+ type: 'button',
44946
+ 'aria-expanded': open,
44947
+ onClick: function () {
44948
+ return setOpen(function (v) {
44949
+ return !v;
44950
+ });
44951
+ }
44952
+ },
44953
+ React__default.createElement('span', null, summary),
44954
+ React__default.createElement(
44955
+ 'span',
44956
+ { className: 'accordion__icon', 'aria-hidden': true },
44957
+ React__default.createElement(Icon$3, { name: 'ui-chevron', width: 20, height: 20 })
44958
+ )
44959
+ ),
44960
+ React__default.createElement(
44961
+ 'div',
44962
+ { className: 'accordion__panel' },
44963
+ React__default.createElement(
44964
+ 'div',
44965
+ { className: 'accordion__panelInner' },
44966
+ React__default.createElement('div', { className: 'accordion__content' }, children)
44967
+ )
44968
+ )
44969
+ );
44970
+ }
44971
+
44972
+ var FAQ = function (_a) {
44973
+ var items = _a.items,
44974
+ _b = _a.title,
44975
+ title = _b === void 0 ? 'Frequently Asked Questions' : _b;
44976
+ if (!(items === null || items === void 0 ? void 0 : items.length)) {
44977
+ return React__default.createElement(
44978
+ 'section',
44979
+ { className: 'faq' },
44980
+ React__default.createElement('h2', { className: 'faq__title' }, title),
44981
+ React__default.createElement('p', { className: 'faq__empty' }, 'No FAQs available.')
44982
+ );
44983
+ }
44984
+ return React__default.createElement(
44985
+ 'div',
44986
+ { className: 'content' },
44987
+ React__default.createElement(
44988
+ 'div',
44989
+ { className: 'content__container content__container--small' },
44990
+ React__default.createElement(
44991
+ 'section',
44992
+ { className: 'faq' },
44993
+ React__default.createElement('h2', { className: 'faq__title' }, title),
44994
+ React__default.createElement(
44995
+ 'div',
44996
+ { className: 'faq__list' },
44997
+ items.map(function (item, idx) {
44998
+ var _a;
44999
+ return React__default.createElement(
45000
+ Accordion,
45001
+ { key: (_a = item.question) !== null && _a !== void 0 ? _a : idx, summary: item.question },
45002
+ React__default.createElement('div', { className: 'faq__answer' }, item.answer)
45003
+ );
45004
+ })
45005
+ )
45006
+ )
45007
+ )
45008
+ );
45009
+ };
45010
+
44928
45011
  var signalR$1 = {};
44929
45012
 
44930
45013
  var jqueryDeferred$1 = { exports: {} };
@@ -48824,6 +48907,7 @@ export {
48824
48907
  BookingWizard,
48825
48908
  Breadcrumbs,
48826
48909
  DepartureRange,
48910
+ FAQ,
48827
48911
  Footer,
48828
48912
  Header,
48829
48913
  ImageCardGrid,
@@ -7,4 +7,5 @@ export interface FAQProps {
7
7
  items: FAQItem[];
8
8
  title?: string;
9
9
  }
10
- export default function FAQ({ items, title }: FAQProps): React.JSX.Element;
10
+ declare const FAQ: React.FC<FAQProps>;
11
+ export default FAQ;
@@ -11,6 +11,7 @@ import ImageWithTextSection from './content/image-with-text-section';
11
11
  import Slider from './content/components/slider';
12
12
  import PhotoGallery from './content/components/gallery';
13
13
  import Breadcrumbs from './content/components/breadcrumb';
14
+ import FAQ from './content/components/faq';
14
15
  export * from './content/navbar/types';
15
16
  export * from './content/header/types';
16
17
  export * from './content/footer/types';
@@ -33,5 +34,6 @@ export {
33
34
  ImageWithTextSection,
34
35
  Slider,
35
36
  PhotoGallery,
36
- Breadcrumbs
37
+ Breadcrumbs,
38
+ FAQ
37
39
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qite/tide-booking-component",
3
- "version": "1.4.66",
3
+ "version": "1.4.67",
4
4
  "description": "React Booking wizard & Booking product component for Tide",
5
5
  "main": "build/build-cjs/index.js",
6
6
  "types": "build/build-cjs/src/index.d.ts",
@@ -11,7 +11,7 @@ export interface FAQProps {
11
11
  title?: string;
12
12
  }
13
13
 
14
- export default function FAQ({ items, title = 'Frequently Asked Questions' }: FAQProps) {
14
+ const FAQ: React.FC<FAQProps> = ({ items, title = 'Frequently Asked Questions' }) => {
15
15
  if (!items?.length) {
16
16
  return (
17
17
  <section className="faq">
@@ -22,15 +22,21 @@ export default function FAQ({ items, title = 'Frequently Asked Questions' }: FAQ
22
22
  }
23
23
 
24
24
  return (
25
- <section className="faq">
26
- <h2 className="faq__title">{title}</h2>
27
- <div className="faq__list">
28
- {items.map((item, idx) => (
29
- <Accordion key={item.question ?? idx} summary={item.question}>
30
- <div className="faq__answer">{item.answer}</div>
31
- </Accordion>
32
- ))}
25
+ <div className="content">
26
+ <div className="content__container content__container--small">
27
+ <section className="faq">
28
+ <h2 className="faq__title">{title}</h2>
29
+ <div className="faq__list">
30
+ {items.map((item, idx) => (
31
+ <Accordion key={item.question ?? idx} summary={item.question}>
32
+ <div className="faq__answer">{item.answer}</div>
33
+ </Accordion>
34
+ ))}
35
+ </div>
36
+ </section>
33
37
  </div>
34
- </section>
38
+ </div>
35
39
  );
36
- }
40
+ };
41
+
42
+ export default FAQ;
package/src/index.ts CHANGED
@@ -11,6 +11,7 @@ import ImageWithTextSection from './content/image-with-text-section';
11
11
  import Slider from './content/components/slider';
12
12
  import PhotoGallery from './content/components/gallery';
13
13
  import Breadcrumbs from './content/components/breadcrumb';
14
+ import FAQ from './content/components/faq';
14
15
 
15
16
  export * from './content/navbar/types';
16
17
  export * from './content/header/types';
@@ -35,5 +36,6 @@ export {
35
36
  ImageWithTextSection,
36
37
  Slider,
37
38
  PhotoGallery,
38
- Breadcrumbs
39
+ Breadcrumbs,
40
+ FAQ
39
41
  };