@qite/tide-booking-component 1.4.107 → 1.4.108

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.
@@ -16726,6 +16726,28 @@ var Icon = function (_a) {
16726
16726
  d: 'M215.7 499.2C267 435 384 279.4 384 192C384 86 298 0 192 0S0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128z'
16727
16727
  })
16728
16728
  );
16729
+ case 'ui-triangle-error':
16730
+ return React__default['default'].createElement(
16731
+ 'svg',
16732
+ {
16733
+ className: ['icon', 'icon--'.concat(name), className]
16734
+ .filter(function (className) {
16735
+ return !lodash.isEmpty(className);
16736
+ })
16737
+ .join(' '),
16738
+ width: width,
16739
+ height: height,
16740
+ viewBox: '0 0 512 512',
16741
+ fill: fill !== null && fill !== void 0 ? fill : 'currentColor'
16742
+ },
16743
+ React__default['default'].createElement(HTMLComment, {
16744
+ text: '!Font Awesome Free v7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.'
16745
+ }),
16746
+ title && React__default['default'].createElement('title', null, title),
16747
+ React__default['default'].createElement('path', {
16748
+ d: 'M256 0c14.7 0 28.2 8.1 35.2 21l216 400c6.7 12.4 6.4 27.4-.8 39.5S486.1 480 472 480L40 480c-14.1 0-27.2-7.4-34.4-19.5s-7.5-27.1-.8-39.5l216-400c7-12.9 20.5-21 35.2-21zm0 352a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm0-192c-18.2 0-32.7 15.5-31.4 33.7l7.4 104c.9 12.5 11.4 22.3 23.9 22.3 12.6 0 23-9.7 23.9-22.3l7.4-104c1.3-18.2-13.1-33.7-31.4-33.7z'
16749
+ })
16750
+ );
16729
16751
  default:
16730
16752
  return null;
16731
16753
  }
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ type ErrorProps = {
3
+ message?: string;
4
+ };
5
+ declare const Error: React.FC<ErrorProps>;
6
+ export default Error;
@@ -16756,6 +16756,28 @@ var Icon = function (_a) {
16756
16756
  d: 'M215.7 499.2C267 435 384 279.4 384 192C384 86 298 0 192 0S0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128z'
16757
16757
  })
16758
16758
  );
16759
+ case 'ui-triangle-error':
16760
+ return React__default.createElement(
16761
+ 'svg',
16762
+ {
16763
+ className: ['icon', 'icon--'.concat(name), className]
16764
+ .filter(function (className) {
16765
+ return !isEmpty(className);
16766
+ })
16767
+ .join(' '),
16768
+ width: width,
16769
+ height: height,
16770
+ viewBox: '0 0 512 512',
16771
+ fill: fill !== null && fill !== void 0 ? fill : 'currentColor'
16772
+ },
16773
+ React__default.createElement(HTMLComment, {
16774
+ text: '!Font Awesome Free v7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.'
16775
+ }),
16776
+ title && React__default.createElement('title', null, title),
16777
+ React__default.createElement('path', {
16778
+ d: 'M256 0c14.7 0 28.2 8.1 35.2 21l216 400c6.7 12.4 6.4 27.4-.8 39.5S486.1 480 472 480L40 480c-14.1 0-27.2-7.4-34.4-19.5s-7.5-27.1-.8-39.5l216-400c7-12.9 20.5-21 35.2-21zm0 352a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm0-192c-18.2 0-32.7 15.5-31.4 33.7l7.4 104c.9 12.5 11.4 22.3 23.9 22.3 12.6 0 23-9.7 23.9-22.3l7.4-104c1.3-18.2-13.1-33.7-31.4-33.7z'
16779
+ })
16780
+ );
16759
16781
  default:
16760
16782
  return null;
16761
16783
  }
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ type ErrorProps = {
3
+ message?: string;
4
+ };
5
+ declare const Error: React.FC<ErrorProps>;
6
+ export default Error;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qite/tide-booking-component",
3
- "version": "1.4.107",
3
+ "version": "1.4.108",
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",
@@ -0,0 +1,27 @@
1
+ import React from 'react';
2
+ import Icon from '../../shared/components/icon';
3
+
4
+ type ErrorProps = {
5
+ message?: string;
6
+ };
7
+ const Error: React.FC<ErrorProps> = ({ message }) => {
8
+ return (
9
+ <section className="error">
10
+ <div className="error__container">
11
+ <div className="error__card">
12
+ <div className="error__icon">
13
+ <Icon name="ui-triangle-error" width={20} height={20} />
14
+ </div>
15
+ <h1 className="error__title">Something went wrong</h1>
16
+ <p className="error__message">{message || 'Sorry, something went wrong. Please try again later.'}</p>
17
+
18
+ <a href="/" className="cta cta--primary error__link">
19
+ Back to home
20
+ </a>
21
+ </div>
22
+ </div>
23
+ </section>
24
+ );
25
+ };
26
+
27
+ export default Error;
@@ -1079,6 +1079,20 @@ const Icon: React.FC<IconProps> = ({ name, className, title, width, height, fill
1079
1079
  </svg>
1080
1080
  );
1081
1081
 
1082
+ case 'ui-triangle-error':
1083
+ return (
1084
+ <svg
1085
+ className={['icon', `icon--${name}`, className].filter((className) => !isEmpty(className)).join(' ')}
1086
+ width={width}
1087
+ height={height}
1088
+ viewBox="0 0 512 512"
1089
+ fill={fill ?? 'currentColor'}>
1090
+ <HTMLComment text="!Font Awesome Free v7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc." />
1091
+ {title && <title>{title}</title>}
1092
+ <path d="M256 0c14.7 0 28.2 8.1 35.2 21l216 400c6.7 12.4 6.4 27.4-.8 39.5S486.1 480 472 480L40 480c-14.1 0-27.2-7.4-34.4-19.5s-7.5-27.1-.8-39.5l216-400c7-12.9 20.5-21 35.2-21zm0 352a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm0-192c-18.2 0-32.7 15.5-31.4 33.7l7.4 104c.9 12.5 11.4 22.3 23.9 22.3 12.6 0 23-9.7 23.9-22.3l7.4-104c1.3-18.2-13.1-33.7-31.4-33.7z" />
1093
+ </svg>
1094
+ );
1095
+
1082
1096
  default:
1083
1097
  return null;
1084
1098
  }
@@ -0,0 +1,50 @@
1
+ @use '../components/mixins' as mixins;
2
+
3
+ .error {
4
+ padding: 60px 0px;
5
+ background: var(--tide-booking-bg);
6
+
7
+ &__container {
8
+ @include mixins.container-wide();
9
+ display: flex;
10
+ align-items: center;
11
+ justify-content: center;
12
+ height: 100%;
13
+ }
14
+
15
+ &__card {
16
+ display: flex;
17
+ flex-direction: column;
18
+ align-items: center;
19
+ }
20
+
21
+ &__icon {
22
+ border-radius: 20%;
23
+ display: flex;
24
+ font-size: 24px;
25
+ font-weight: 600;
26
+ align-items: center;
27
+ justify-content: center;
28
+ margin-bottom: 20px;
29
+ color: var(--tide-booking-invalid);
30
+
31
+ @include media-lg {
32
+ font-size: 50px;
33
+ }
34
+
35
+ svg {
36
+ width: 40px;
37
+ height: 40px;
38
+
39
+ @include media-lg {
40
+ width: 80px;
41
+ height: 80px;
42
+ }
43
+ }
44
+ }
45
+
46
+ &__link {
47
+ max-width: 150px;
48
+ margin-top: 1rem;
49
+ }
50
+ }
@@ -1,3 +1,4 @@
1
+ @use '../components/mixins' as mixins;
1
2
  .faq {
2
3
  padding: 30px 0;
3
4
 
@@ -26,6 +26,7 @@ body {
26
26
  @import './components/login';
27
27
  @import './components/accordion';
28
28
  @import './components/footer';
29
+ @import './components/error';
29
30
 
30
31
  @import './qsm/qsm';
31
32
 
@@ -521,6 +521,9 @@
521
521
  // border-bottom: 4px solid variables.$secondary-color;
522
522
  display: flex;
523
523
  flex-direction: column;
524
+ max-height: 300px;
525
+ overflow: auto;
526
+ @extend %scrollbar-thin;
524
527
 
525
528
  @include mixins.media-md {
526
529
  width: 100%;