@tui-cruises/mein-schiff-web-react-component-library 3.0.2 → 3.0.4
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.
- package/CHANGELOG.md +43 -7
- package/icons/icons/index.ts +1 -0
- package/icons/icons/speed.tsx +20 -0
- package/index.tsx +1 -0
- package/package.json +2 -2
- package/src/components/core/Button/Button.tsx +1 -1
- package/src/components/core/Pagination/Pagination.tsx +2 -2
- package/src/components/core/Price/Price.tsx +84 -0
- package/src/components/core/Price/index.ts +1 -0
- package/src/components/core/Tag/Tag.tsx +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,23 +2,59 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
-
### [3.0.
|
|
5
|
+
### [3.0.4](https://bitbucket.org/yours_truly/tuic-mein-schiff-web-react-component-library/compare/v3.0.3...v3.0.4) (2025-09-16)
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
### Features
|
|
9
9
|
|
|
10
|
-
* next15
|
|
10
|
+
* **EC-1589:** next15 ([f7f195e](https://bitbucket.org/yours_truly/tuic-mein-schiff-web-react-component-library/commit/f7f195e4a667094f98ef1d91ff081b3e8339c56a))
|
|
11
11
|
|
|
12
|
-
### [3.0.
|
|
13
|
-
|
|
14
|
-
## [3.0.0](https://bitbucket.org/yours_truly/tuic-mein-schiff-web-react-component-library/compare/v2.2.9...v3.0.0) (2025-09-12)
|
|
12
|
+
### [3.0.3](https://bitbucket.org/yours_truly/tuic-mein-schiff-web-react-component-library/compare/v2.2.8...v3.0.3) (2025-09-16)
|
|
15
13
|
|
|
16
14
|
|
|
17
15
|
### Features
|
|
18
16
|
|
|
19
|
-
* next15 prep ([
|
|
17
|
+
* next15 prep ([c228c08](https://bitbucket.org/yours_truly/tuic-mein-schiff-web-react-component-library/commit/c228c084b32c60499eaf055e6f9e5dc698ebaf72))
|
|
18
|
+
* next15 prep ([9d1adcf](https://bitbucket.org/yours_truly/tuic-mein-schiff-web-react-component-library/commit/9d1adcf970b8a75ec478211bdf01933e0bd7a03e))
|
|
19
|
+
* **Price:** new price information component ([b1a67bc](https://bitbucket.org/yours_truly/tuic-mein-schiff-web-react-component-library/commit/b1a67bc66e7c1342aeefd3d60d2597bff7236578))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
### Bug Fixes
|
|
23
|
+
|
|
24
|
+
* **Button:** align button text to center (pull request [#9](https://bitbucket.org/yours_truly/tuic-mein-schiff-web-react-component-library/issues/9)) ([d25791d](https://bitbucket.org/yours_truly/tuic-mein-schiff-web-react-component-library/commit/d25791dbb0e75eb099418ae716eaa6854835b084))
|
|
25
|
+
* **Calendar:** use of wrong type causes build failures ([#8](https://bitbucket.org/yours_truly/tuic-mein-schiff-web-react-component-library/issues/8)) ([afdbd3d](https://bitbucket.org/yours_truly/tuic-mein-schiff-web-react-component-library/commit/afdbd3da42d4dcc364fdb13b66b1d7f35ad46a94))
|
|
26
|
+
* **Icon:** add missing 'speed' icon (pull request [#10](https://bitbucket.org/yours_truly/tuic-mein-schiff-web-react-component-library/issues/10)) ([f490e3c](https://bitbucket.org/yours_truly/tuic-mein-schiff-web-react-component-library/commit/f490e3c3b9ca6f02f56323f73e0753c5e7f60d52))
|
|
27
|
+
* **OM-2216:** change pagination icon button size on mobile/tablet according to design (pull request [#6](https://bitbucket.org/yours_truly/tuic-mein-schiff-web-react-component-library/issues/6)) ([6541f91](https://bitbucket.org/yours_truly/tuic-mein-schiff-web-react-component-library/commit/6541f9109995bab9644ddf46682005988bee2255))
|
|
28
|
+
* **Pagination:** adjust icon button sizes on mobile/tablet to match design ([c468b10](https://bitbucket.org/yours_truly/tuic-mein-schiff-web-react-component-library/commit/c468b1075f2425fcfa871c3d4459a1b401a61423))
|
|
29
|
+
* **Tag:** use text-center (pull request [#7](https://bitbucket.org/yours_truly/tuic-mein-schiff-web-react-component-library/issues/7)) ([f6184d1](https://bitbucket.org/yours_truly/tuic-mein-schiff-web-react-component-library/commit/f6184d1027637018693aef04e2986d36b86521aa))
|
|
30
|
+
|
|
31
|
+
### [2.2.11](https://bitbucket.org/yours_truly/tuic-mein-schiff-web-react-component-library/compare/v2.2.10...v2.2.11) (2025-09-10)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
### Bug Fixes
|
|
35
|
+
|
|
36
|
+
* **Button:** align button text to center (pull request [#9](https://bitbucket.org/yours_truly/tuic-mein-schiff-web-react-component-library/issues/9)) ([d25791d](https://bitbucket.org/yours_truly/tuic-mein-schiff-web-react-component-library/commit/d25791dbb0e75eb099418ae716eaa6854835b084))
|
|
37
|
+
* **Calendar:** use of wrong type causes build failures ([#8](https://bitbucket.org/yours_truly/tuic-mein-schiff-web-react-component-library/issues/8)) ([afdbd3d](https://bitbucket.org/yours_truly/tuic-mein-schiff-web-react-component-library/commit/afdbd3da42d4dcc364fdb13b66b1d7f35ad46a94))
|
|
38
|
+
* **Icon:** add missing 'speed' icon (pull request [#10](https://bitbucket.org/yours_truly/tuic-mein-schiff-web-react-component-library/issues/10)) ([f490e3c](https://bitbucket.org/yours_truly/tuic-mein-schiff-web-react-component-library/commit/f490e3c3b9ca6f02f56323f73e0753c5e7f60d52))
|
|
39
|
+
|
|
40
|
+
### [2.2.10](https://bitbucket.org/yours_truly/tuic-mein-schiff-web-react-component-library/compare/v2.2.9...v2.2.10) (2025-09-09)
|
|
41
|
+
|
|
42
|
+
### [2.2.9](https://bitbucket.org/yours_truly/tuic-mein-schiff-web-react-component-library/compare/v2.2.7...v2.2.9) (2025-09-09)
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
### Bug Fixes
|
|
46
|
+
|
|
47
|
+
* **OM-2216:** change pagination icon button size on mobile/tablet according to design (pull request [#6](https://bitbucket.org/yours_truly/tuic-mein-schiff-web-react-component-library/issues/6)) ([6541f91](https://bitbucket.org/yours_truly/tuic-mein-schiff-web-react-component-library/commit/6541f9109995bab9644ddf46682005988bee2255))
|
|
48
|
+
* **Pagination:** adjust icon button sizes on mobile/tablet to match design ([c468b10](https://bitbucket.org/yours_truly/tuic-mein-schiff-web-react-component-library/commit/c468b1075f2425fcfa871c3d4459a1b401a61423))
|
|
49
|
+
* **Tag:** use text-center (pull request [#7](https://bitbucket.org/yours_truly/tuic-mein-schiff-web-react-component-library/issues/7)) ([f6184d1](https://bitbucket.org/yours_truly/tuic-mein-schiff-web-react-component-library/commit/f6184d1027637018693aef04e2986d36b86521aa))
|
|
50
|
+
* typefix ([b7fccaf](https://bitbucket.org/yours_truly/tuic-mein-schiff-web-react-component-library/commit/b7fccaf80e990db4d68b42411c1ce57a6356ad05))
|
|
51
|
+
|
|
52
|
+
### [2.2.8](https://bitbucket.org/yours_truly/tuic-mein-schiff-web-react-component-library/compare/v2.2.7...v2.2.8) (2025-09-08)
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
### Bug Fixes
|
|
20
56
|
|
|
21
|
-
|
|
57
|
+
* **Calendar:** Typefix i18n ([b7fccaf](https://bitbucket.org/yours_truly/tuic-mein-schiff-web-react-component-library/commit/b7fccaf80e990db4d68b42411c1ce57a6356ad05))
|
|
22
58
|
|
|
23
59
|
### [2.2.7](https://bitbucket.org/yours_truly/tuic-mein-schiff-web-react-component-library/compare/v2.2.6...v2.2.7) (2025-08-25)
|
|
24
60
|
|
package/icons/icons/index.ts
CHANGED
|
@@ -114,6 +114,7 @@ export const dynamicComponents = {
|
|
|
114
114
|
'snow-flake': dynamic(() => import('./snow-flake'), { ssr: false }),
|
|
115
115
|
snow: dynamic(() => import('./snow'), { ssr: false }),
|
|
116
116
|
sofa: dynamic(() => import('./sofa'), { ssr: false }),
|
|
117
|
+
speed: dynamic(() => import('./speed'), { ssr: false }),
|
|
117
118
|
'star-dashed': dynamic(() => import('./star-dashed'), { ssr: false }),
|
|
118
119
|
'star-filled': dynamic(() => import('./star-filled'), { ssr: false }),
|
|
119
120
|
'star-half-dashed': dynamic(() => import('./star-half-dashed'), {
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { SVGProps } from 'react';
|
|
2
|
+
const SvgSpeed = (props: SVGProps<SVGSVGElement>) => (
|
|
3
|
+
<svg
|
|
4
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
5
|
+
width="1em"
|
|
6
|
+
height="1em"
|
|
7
|
+
fill="none"
|
|
8
|
+
viewBox="0 0 24 24"
|
|
9
|
+
color="currentColor"
|
|
10
|
+
{...props}
|
|
11
|
+
>
|
|
12
|
+
<path
|
|
13
|
+
fill="currentColor"
|
|
14
|
+
fillRule="evenodd"
|
|
15
|
+
d="M7.69 4.75A.75.75 0 0 1 8.44 4h5.11l4.6 4.6H23l-5.775 7.219a.75.75 0 1 1-1.171-.937l3.825-4.782h-7.44a.75.75 0 0 1 0-1.5h3.59l-3.1-3.1h-4.49a.75.75 0 0 1-.75-.75M5.8 9.35a.75.75 0 0 1 .75-.75h3.6a.75.75 0 0 1 0 1.5h-3.6a.75.75 0 0 1-.75-.75m-2.4 3.178a.75.75 0 0 1 .75-.75h4.8a.75.75 0 0 1 0 1.5h-4.8a.75.75 0 0 1-.75-.75m19.473 3.936a.75.75 0 0 1-.257 1.03C19.636 19.281 18.266 20 16.23 20c-1.211 0-1.853-.642-2.31-1.099l-.02-.02c-.442-.443-.7-.681-1.27-.681-.674 0-1.421.349-2.059.774a8 8 0 0 0-.998.795l-.011.01-.001.001A.75.75 0 0 1 8.5 18.72l.53.53-.53-.53.001-.002.002-.002.006-.006.02-.02.07-.066c.06-.055.145-.133.253-.225.213-.183.519-.428.887-.673.713-.475 1.766-1.026 2.891-1.026 1.212 0 1.853.642 2.31 1.099l.02.02c.443.443.7.681 1.27.681 1.564 0 2.596-.482 5.615-2.293a.75.75 0 0 1 1.028.257M1 15.75a.75.75 0 0 1 .75-.75h6a.75.75 0 0 1 0 1.5h-6a.75.75 0 0 1-.75-.75"
|
|
16
|
+
clipRule="evenodd"
|
|
17
|
+
/>
|
|
18
|
+
</svg>
|
|
19
|
+
);
|
|
20
|
+
export default SvgSpeed;
|
package/index.tsx
CHANGED
|
@@ -20,6 +20,7 @@ export * from './src/components/core/Icon';
|
|
|
20
20
|
export * from './src/components/core/LoadingSpinner';
|
|
21
21
|
export * from './src/components/core/Pictogram';
|
|
22
22
|
export * from './src/components/core/Portlist';
|
|
23
|
+
export * from './src/components/core/Price';
|
|
23
24
|
export * from './src/components/core/QuantityItem';
|
|
24
25
|
export * from './src/components/core/RangeSlider';
|
|
25
26
|
export * from './src/components/core/SegmentedControl';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tui-cruises/mein-schiff-web-react-component-library",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.4",
|
|
4
4
|
"main": "./index.tsx",
|
|
5
5
|
"types": "./index.tsx",
|
|
6
6
|
"type": "module",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"@tuic/i18n": "^1.0.0",
|
|
56
56
|
"@tuic/lib": "^1.0.0",
|
|
57
57
|
"@tuic/logger": "^1.0.0",
|
|
58
|
-
"@tuic/tailwind-config": "
|
|
58
|
+
"@tuic/tailwind-config": "^1.0.0",
|
|
59
59
|
"@tuic/tracking": "^1.0.0",
|
|
60
60
|
"d3": "^7.9.0",
|
|
61
61
|
"date-fns": "^3.4.0",
|
|
@@ -77,7 +77,7 @@ const ButtonRenderFunction = (props: ButtonProps) => {
|
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
const buttonClassNames = twMerge(
|
|
80
|
-
'relative inline-flex appearance-none items-center justify-center gap-2 rounded-md border-none px-7 py-3.5 text-lg font-semibold !leading-normal transition-all md:text-base',
|
|
80
|
+
'relative inline-flex appearance-none items-center justify-center gap-2 rounded-md border-none px-7 py-3.5 text-center text-lg font-semibold !leading-normal transition-all md:text-base',
|
|
81
81
|
hasFullWidthOnMobile && 'w-full sm:w-auto',
|
|
82
82
|
|
|
83
83
|
// Variants
|
|
@@ -66,7 +66,7 @@ export const Pagination = ({
|
|
|
66
66
|
variant: 'secondary',
|
|
67
67
|
iconName: 'nav-arrow-left',
|
|
68
68
|
disabled: !forcePreviousClickable && (pending || minCurrent <= 1),
|
|
69
|
-
size: 'sm',
|
|
69
|
+
size: ['md', { lg: 'sm' }],
|
|
70
70
|
onClick: createNavigationHandler(setPending, onPrevious),
|
|
71
71
|
'aria-label': i18n?.previousPage ?? 'Vorherige Seite',
|
|
72
72
|
});
|
|
@@ -75,7 +75,7 @@ export const Pagination = ({
|
|
|
75
75
|
variant: 'secondary',
|
|
76
76
|
iconName: 'nav-arrow-right',
|
|
77
77
|
disabled: !forceNextClickable && (pending || maxCurrent >= total),
|
|
78
|
-
size: 'sm',
|
|
78
|
+
size: ['md', { lg: 'sm' }],
|
|
79
79
|
onClick: createNavigationHandler(setPending, onNext),
|
|
80
80
|
'aria-label': i18n?.nextPage ?? 'Nächste Seite',
|
|
81
81
|
});
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { twJoin } from 'tailwind-merge';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Props for the Price component.
|
|
5
|
+
*/
|
|
6
|
+
export type PriceProps = {
|
|
7
|
+
/**
|
|
8
|
+
* The visual style of the price.
|
|
9
|
+
* - `mixed`: Different text size.
|
|
10
|
+
* - `mono`: Equal text size.
|
|
11
|
+
*/
|
|
12
|
+
variant: 'mixed' | 'mono';
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Optional text shown before the price, like "ab".
|
|
16
|
+
*/
|
|
17
|
+
priceQualifier?: string;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* The formatted price, including currency (e.g., "1.489 €").
|
|
21
|
+
*/
|
|
22
|
+
priceAmount: string;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Optional note shown after the price, like "p.P.".
|
|
26
|
+
*/
|
|
27
|
+
priceNote?: string;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Optional ARIA label for screen readers.
|
|
31
|
+
* If provided, overrides the default label generation.
|
|
32
|
+
*/
|
|
33
|
+
ariaLabel?: string;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Additional class names for custom styling.
|
|
37
|
+
*/
|
|
38
|
+
className?: string;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* A versatile Price component for displaying price information.
|
|
43
|
+
*/
|
|
44
|
+
const Price = ({
|
|
45
|
+
className,
|
|
46
|
+
variant = 'mixed',
|
|
47
|
+
priceQualifier,
|
|
48
|
+
priceAmount,
|
|
49
|
+
priceNote,
|
|
50
|
+
ariaLabel,
|
|
51
|
+
}: PriceProps) => {
|
|
52
|
+
const isMixed = variant === 'mixed';
|
|
53
|
+
|
|
54
|
+
return (
|
|
55
|
+
<div
|
|
56
|
+
className={twJoin(
|
|
57
|
+
'inline-flex items-baseline justify-center whitespace-nowrap text-marine-high-emphasis',
|
|
58
|
+
'xs:price-xs sm:price-sm md:price-md lg:price-lg xl:price-xl',
|
|
59
|
+
isMixed ? 'gap-1' : 'gap-1 md:gap-1.5 lg:gap-2',
|
|
60
|
+
className,
|
|
61
|
+
)}
|
|
62
|
+
role="text"
|
|
63
|
+
{...(ariaLabel ? { 'aria-label': ariaLabel } : {})}
|
|
64
|
+
>
|
|
65
|
+
{priceQualifier && (
|
|
66
|
+
<span className={isMixed ? 'font-bold text-base' : ''}>
|
|
67
|
+
{priceQualifier}
|
|
68
|
+
</span>
|
|
69
|
+
)}
|
|
70
|
+
|
|
71
|
+
<span>{priceAmount}</span>
|
|
72
|
+
|
|
73
|
+
{priceNote && (
|
|
74
|
+
<span className={isMixed ? 'font-bold text-base' : ''}>
|
|
75
|
+
{priceNote}
|
|
76
|
+
</span>
|
|
77
|
+
)}
|
|
78
|
+
</div>
|
|
79
|
+
);
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
Price.displayName = 'Price';
|
|
83
|
+
|
|
84
|
+
export { Price };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Price';
|
|
@@ -105,7 +105,7 @@ const Tag = ({
|
|
|
105
105
|
<div
|
|
106
106
|
{...args}
|
|
107
107
|
className={twJoin(
|
|
108
|
-
'inline-flex items-center justify-center font-semibold text-marine-high-emphasis',
|
|
108
|
+
'inline-flex items-center justify-center text-center font-semibold text-marine-high-emphasis',
|
|
109
109
|
borderRadius,
|
|
110
110
|
textSize,
|
|
111
111
|
padding,
|