mautourco-components 0.2.7 → 0.2.8
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/dist/components/atoms/Typography/Typography.d.ts +2 -0
- package/dist/components/atoms/Typography/Typography.js +13 -4
- package/dist/components/molecules/RatingTab/RatingTab.js +1 -1
- package/dist/components/organisms/PaxSelector/PaxSelector.js +3 -3
- package/dist/components/organisms/SearchBarTransfer/SearchBarTransfer.js +2 -2
- package/dist/styles/components/organism/pax-selector.css +3 -15
- package/dist/styles/components/organism/search-bar-transfer.css +4 -10
- package/dist/styles/components/rating-tab.css +1 -3
- package/package.json +1 -1
- package/src/components/atoms/Typography/Typography.tsx +29 -2
- package/src/components/molecules/RatingTab/RatingTab.tsx +1 -1
- package/src/components/organisms/PaxSelector/PaxSelector.tsx +4 -4
- package/src/components/organisms/SearchBarTransfer/SearchBarTransfer.tsx +3 -3
- package/src/styles/components/organism/pax-selector.css +3 -15
- package/src/styles/components/organism/search-bar-transfer.css +4 -10
- package/src/styles/components/rating-tab.css +1 -3
|
@@ -4,9 +4,11 @@ type BodySizeInput = BodyTokenSize | 'base' | 'xl';
|
|
|
4
4
|
type Variant = 'light' | 'regular' | 'medium' | 'bold' | 'black';
|
|
5
5
|
type Leading = 'none' | '4' | '5' | '6' | '7';
|
|
6
6
|
type HeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;
|
|
7
|
+
type TextColor = 'default' | 'accent' | 'subtle' | 'light' | 'brand' | 'inverted' | 'state-default' | 'state-hover' | 'state-filled' | 'state-disabled' | 'state-error' | 'state-success';
|
|
7
8
|
interface BaseProps {
|
|
8
9
|
variant?: Variant;
|
|
9
10
|
leading?: Leading;
|
|
11
|
+
color?: TextColor;
|
|
10
12
|
className?: string;
|
|
11
13
|
children: React.ReactNode;
|
|
12
14
|
onClick?: React.MouseEventHandler<Element>;
|
|
@@ -66,9 +66,16 @@ var buildVariantClass = function (base, variant) {
|
|
|
66
66
|
return undefined;
|
|
67
67
|
return "".concat(base, "--").concat(variant);
|
|
68
68
|
};
|
|
69
|
+
var getColorStyle = function (color) {
|
|
70
|
+
if (!color)
|
|
71
|
+
return {};
|
|
72
|
+
return {
|
|
73
|
+
color: "var(--color-text-".concat(color, ", inherit)"),
|
|
74
|
+
};
|
|
75
|
+
};
|
|
69
76
|
export var Heading = function (_a) {
|
|
70
77
|
var _b;
|
|
71
|
-
var _c = _a.level, level = _c === void 0 ? 2 : _c, _d = _a.variant, variant = _d === void 0 ? 'bold' : _d, leading = _a.leading, as = _a.as, _e = _a.className, className = _e === void 0 ? '' : _e, children = _a.children, onClick = _a.onClick;
|
|
78
|
+
var _c = _a.level, level = _c === void 0 ? 2 : _c, _d = _a.variant, variant = _d === void 0 ? 'bold' : _d, leading = _a.leading, color = _a.color, as = _a.as, _e = _a.className, className = _e === void 0 ? '' : _e, children = _a.children, onClick = _a.onClick;
|
|
72
79
|
var Tag = as || "h".concat(level);
|
|
73
80
|
var baseClass = (_b = headingTokenClass[level]) !== null && _b !== void 0 ? _b : headingTokenClass[2];
|
|
74
81
|
var variantClass = buildVariantClass(baseClass, variant);
|
|
@@ -80,10 +87,11 @@ export var Heading = function (_a) {
|
|
|
80
87
|
]
|
|
81
88
|
.filter(Boolean)
|
|
82
89
|
.join(' ');
|
|
83
|
-
|
|
90
|
+
var colorStyle = getColorStyle(color);
|
|
91
|
+
return (_jsx(Tag, __assign({ className: classes, style: colorStyle, onClick: onClick }, { children: children })));
|
|
84
92
|
};
|
|
85
93
|
export var Text = function (_a) {
|
|
86
|
-
var _b = _a.size, size = _b === void 0 ? 'md' : _b, _c = _a.variant, variant = _c === void 0 ? 'regular' : _c, leading = _a.leading, as = _a.as, _d = _a.className, className = _d === void 0 ? '' : _d, children = _a.children, onClick = _a.onClick;
|
|
94
|
+
var _b = _a.size, size = _b === void 0 ? 'md' : _b, _c = _a.variant, variant = _c === void 0 ? 'regular' : _c, leading = _a.leading, color = _a.color, as = _a.as, _d = _a.className, className = _d === void 0 ? '' : _d, children = _a.children, onClick = _a.onClick;
|
|
87
95
|
var Tag = as || 'p';
|
|
88
96
|
var normalizedSize = bodySizeAlias[size];
|
|
89
97
|
var _e = getBodyClass(normalizedSize, leading), baseClass = _e.className, lineHeightHandled = _e.lineHeightHandled;
|
|
@@ -96,5 +104,6 @@ export var Text = function (_a) {
|
|
|
96
104
|
]
|
|
97
105
|
.filter(Boolean)
|
|
98
106
|
.join(' ');
|
|
99
|
-
|
|
107
|
+
var colorStyle = getColorStyle(color);
|
|
108
|
+
return (_jsx(Tag, __assign({ className: classes, style: colorStyle, onClick: onClick }, { children: children })));
|
|
100
109
|
};
|
|
@@ -36,6 +36,6 @@ var RatingTab = function (_a) {
|
|
|
36
36
|
};
|
|
37
37
|
var stateClass = disabled ? 'rating-tab--disabled' : checked ? 'rating-tab--active' : 'rating-tab--default';
|
|
38
38
|
var containerClasses = ['rating-tab', stateClass, className].filter(Boolean).join(' ');
|
|
39
|
-
return (_jsxs("div", __assign({ className: containerClasses, role: "checkbox", "aria-checked": checked, "aria-disabled": disabled, tabIndex: disabled ? -1 : 0, onClick: handleToggle, onKeyDown: handleKeyDown }, { children: [_jsxs("div", __assign({ className: "rating-tab__left" }, { children: [_jsx("div", __assign({ className: "rating-tab__checkbox" }, { children: checked && _jsx(Check, { size: "sm", className: "rating-tab__checkbox-icon" }) })), _jsx(Text, __assign({ size: "sm", className: "rating-tab__label" }, { children: label }))] })), _jsx(RatingStar, { value: ratingValue, max: maxStars })] })));
|
|
39
|
+
return (_jsxs("div", __assign({ className: containerClasses, role: "checkbox", "aria-checked": checked, "aria-disabled": disabled, tabIndex: disabled ? -1 : 0, onClick: handleToggle, onKeyDown: handleKeyDown }, { children: [_jsxs("div", __assign({ className: "rating-tab__left" }, { children: [_jsx("div", __assign({ className: "rating-tab__checkbox" }, { children: checked && _jsx(Check, { size: "sm", className: "rating-tab__checkbox-icon" }) })), _jsx(Text, __assign({ size: "sm", color: "default", className: "rating-tab__label" }, { children: label }))] })), _jsx(RatingStar, { value: ratingValue, max: maxStars })] })));
|
|
40
40
|
};
|
|
41
41
|
export default RatingTab;
|
|
@@ -149,7 +149,7 @@ var StepperRow = function (_a) {
|
|
|
149
149
|
onChange(value + 1);
|
|
150
150
|
}
|
|
151
151
|
};
|
|
152
|
-
return (_jsxs("div", __assign({ className: "pax-selector__stepper" }, { children: [_jsx(Text, __assign({ size: "base", variant: "bold", className: "pax-selector__stepper-label" }, { children: label })), _jsxs("div", __assign({ className: "pax-selector__stepper-controls" }, { children: [_jsx("button", __assign({ type: "button", className: "pax-selector__stepper-btn", onClick: handleDecrement, disabled: value <= min, "aria-label": "Decrease ".concat(label) }, { children: _jsx(Icon, { name: "minus", size: "sm" }) })), _jsx("span", __assign({ className: "pax-selector__stepper-count" }, { children: value })), _jsx("button", __assign({ type: "button", className: "pax-selector__stepper-btn", onClick: handleIncrement, disabled: value >= max, "aria-label": "Increase ".concat(label) }, { children: _jsx(Icon, { name: "plus", size: "sm" }) }))] }))] })));
|
|
152
|
+
return (_jsxs("div", __assign({ className: "pax-selector__stepper" }, { children: [_jsx(Text, __assign({ size: "base", variant: "bold", color: "default", className: "pax-selector__stepper-label" }, { children: label })), _jsxs("div", __assign({ className: "pax-selector__stepper-controls" }, { children: [_jsx("button", __assign({ type: "button", className: "pax-selector__stepper-btn", onClick: handleDecrement, disabled: value <= min, "aria-label": "Decrease ".concat(label) }, { children: _jsx(Icon, { name: "minus", size: "sm" }) })), _jsx("span", __assign({ className: "pax-selector__stepper-count" }, { children: value })), _jsx("button", __assign({ type: "button", className: "pax-selector__stepper-btn", onClick: handleIncrement, disabled: value >= max, "aria-label": "Increase ".concat(label) }, { children: _jsx(Icon, { name: "plus", size: "sm" }) }))] }))] })));
|
|
153
153
|
};
|
|
154
154
|
var ClientTypeSelector = function (_a) {
|
|
155
155
|
var value = _a.value, onChange = _a.onChange;
|
|
@@ -223,7 +223,7 @@ var RoomEditor = function (_a) {
|
|
|
223
223
|
var teenAgeChunks = chunkAges(room.teenAges || [], 'Teen');
|
|
224
224
|
var childAgeChunks = chunkAges(room.childAges || [], 'Child');
|
|
225
225
|
var infantAgeChunks = chunkAges(room.infantAges || [], 'Infant');
|
|
226
|
-
return (_jsxs("div", __assign({ className: "pax-selector__room-container" }, { children: [_jsxs("div", __assign({ className: "pax-selector__room-header" }, { children: [_jsxs("div", __assign({ className: "pax-selector__room-title" }, { children: [_jsxs(Text, __assign({ size: "lg", variant: "bold", className: "pax-selector__room-name" }, { children: ["Room ", roomNumber] })), _jsx(Icon, { name: "home", size: "md", className: "pax-selector__room-icon" })] })), showRemove && (_jsxs("button", __assign({ type: "button", className: "pax-selector__room-remove", onClick: onRemove, "aria-label": "Remove room ".concat(roomNumber) }, { children: [_jsx(Icon, { name: "close", size: "sm", className: "pax-selector__room-remove-icon" }), _jsx("span", __assign({ className: "pax-selector__room-remove-text" }, { children: "Remove" }))] })))] })), _jsxs("div", __assign({ className: "pax-selector__room-content" }, { children: [_jsxs("div", __assign({ className: "pax-selector__steppers" }, { children: [_jsx(StepperRow, { label: "Adult", value: room.adults, max: maxAdults, onChange: function (val) { return handleFieldChange('adults', val); } }), _jsx(StepperRow, { label: "Teen", value: room.teens, max: maxTeens, onChange: function (val) { return handleFieldChange('teens', val); } }), _jsx(StepperRow, { label: "Child", value: room.children, max: maxChildren, onChange: function (val) { return handleFieldChange('children', val); } }), _jsx(StepperRow, { label: "Infant", value: room.infants, max: maxInfants, onChange: function (val) { return handleFieldChange('infants', val); } })] })), ((room.teens > 0) || (room.children > 0) || (room.infants > 0)) && (_jsxs("div", __assign({ className: "pax-selector__age-section" }, { children: [_jsx(Text, __assign({ size: "base", variant: "bold", className: "pax-selector__age-section-title" }, { children: "Please specify the age :" })), _jsxs("div", __assign({ className: "pax-selector__age-groups" }, { children: [room.teens > 0 && teenAgeChunks.map(function (chunk, chunkIndex) { return (_jsx("div", __assign({ className: "pax-selector__age-row" }, { children: chunk.map(function (age, ageIndex) {
|
|
226
|
+
return (_jsxs("div", __assign({ className: "pax-selector__room-container" }, { children: [_jsxs("div", __assign({ className: "pax-selector__room-header" }, { children: [_jsxs("div", __assign({ className: "pax-selector__room-title" }, { children: [_jsxs(Text, __assign({ size: "lg", variant: "bold", color: "accent", className: "pax-selector__room-name" }, { children: ["Room ", roomNumber] })), _jsx(Icon, { name: "home", size: "md", className: "pax-selector__room-icon" })] })), showRemove && (_jsxs("button", __assign({ type: "button", className: "pax-selector__room-remove", onClick: onRemove, "aria-label": "Remove room ".concat(roomNumber) }, { children: [_jsx(Icon, { name: "close", size: "sm", className: "pax-selector__room-remove-icon" }), _jsx("span", __assign({ className: "pax-selector__room-remove-text" }, { children: "Remove" }))] })))] })), _jsxs("div", __assign({ className: "pax-selector__room-content" }, { children: [_jsxs("div", __assign({ className: "pax-selector__steppers" }, { children: [_jsx(StepperRow, { label: "Adult", value: room.adults, max: maxAdults, onChange: function (val) { return handleFieldChange('adults', val); } }), _jsx(StepperRow, { label: "Teen", value: room.teens, max: maxTeens, onChange: function (val) { return handleFieldChange('teens', val); } }), _jsx(StepperRow, { label: "Child", value: room.children, max: maxChildren, onChange: function (val) { return handleFieldChange('children', val); } }), _jsx(StepperRow, { label: "Infant", value: room.infants, max: maxInfants, onChange: function (val) { return handleFieldChange('infants', val); } })] })), ((room.teens > 0) || (room.children > 0) || (room.infants > 0)) && (_jsxs("div", __assign({ className: "pax-selector__age-section" }, { children: [_jsx(Text, __assign({ size: "base", variant: "bold", color: "default", className: "pax-selector__age-section-title" }, { children: "Please specify the age :" })), _jsxs("div", __assign({ className: "pax-selector__age-groups" }, { children: [room.teens > 0 && teenAgeChunks.map(function (chunk, chunkIndex) { return (_jsx("div", __assign({ className: "pax-selector__age-row" }, { children: chunk.map(function (age, ageIndex) {
|
|
227
227
|
var actualIndex = chunkIndex * 2 + ageIndex;
|
|
228
228
|
return (_jsx(AgeSelector, { label: "Teen", value: age, onChange: function (selectedAge) { return handleAgeChange('teenAges', actualIndex, selectedAge); }, ageRange: CHILD_CATEGORY_AGES, required: true }, "teen-".concat(actualIndex)));
|
|
229
229
|
}) }), "teen-chunk-".concat(chunkIndex))); }), room.children > 0 && childAgeChunks.map(function (chunk, chunkIndex) { return (_jsx("div", __assign({ className: "pax-selector__age-row" }, { children: chunk.map(function (age, ageIndex) {
|
|
@@ -371,7 +371,7 @@ var PaxSelector = function (_a) {
|
|
|
371
371
|
var hasPax = getTotalPax() > 0;
|
|
372
372
|
return (_jsxs("div", __assign({ className: "pax-selector ".concat(className), ref: containerRef }, { children: [_jsxs("button", __assign({ type: "button", className: "pax-selector__trigger", onClick: function () { return setIsOpen(!isOpen); }, "aria-expanded": isOpen, "aria-haspopup": "true" }, { children: [_jsx(Text, __assign({ size: "sm", variant: "regular", className: "pax-selector__label" }, { children: label })), _jsxs("div", __assign({ className: "pax-selector__input ".concat(isOpen ? 'pax-selector__input--active' : '') }, { children: [_jsxs("div", __assign({ className: "pax-selector__input-content" }, { children: [_jsx(Icon, { name: "user-icon", size: "sm", className: "pax-selector__input-icon" }), _jsx("span", __assign({ className: "pax-selector__input-text ".concat(!hasPax ? 'pax-selector__input-placeholder' : '') }, { children: getDisplayText() }))] })), _jsx(Icon, { name: "chevron-down", size: "sm", className: "pax-selector__chevron ".concat(isOpen ? 'pax-selector__chevron--open' : '') })] }))] })), isOpen && (_jsxs("div", __assign({ className: "pax-selector__dropdown" }, { children: [multipleRooms ? (_jsxs(_Fragment, { children: [showAddRoom && (_jsxs("button", __assign({ type: "button", className: "pax-selector__add-room", onClick: handleAddRoom }, { children: [_jsx(Icon, { name: "home", size: "sm", className: "pax-selector__add-room-icon" }), "Add a room", _jsx(Icon, { name: "plus", size: "sm", className: "pax-selector__add-room-icon" })] }))), _jsx("div", __assign({ className: "pax-selector__rooms" }, { children: rooms.map(function (room, index) { return (_jsx(RoomEditor, { room: room, roomNumber: index + 1, showRemove: rooms.length > 1, maxAdults: maxAdults, maxTeens: maxTeens, maxChildren: maxChildren, maxInfants: maxInfants, onChange: function (updatedRoom) { return handleRoomChange(room.roomId, updatedRoom); }, onRemove: function () { return handleRemoveRoom(room.roomId); } }, room.roomId)); }) }))] })) : (
|
|
373
373
|
/* Single Room Mode */
|
|
374
|
-
_jsxs(_Fragment, { children: [_jsxs("div", __assign({ className: "pax-selector__steppers" }, { children: [_jsx(StepperRow, { label: "Adult", value: internalData.adults, max: maxAdults, onChange: function (val) { return handleDataChange('adults', val); } }), _jsx(StepperRow, { label: "Teen", value: internalData.teens, max: maxTeens, onChange: function (val) { return handleDataChange('teens', val); } }), _jsx(StepperRow, { label: "Child", value: internalData.children, max: maxChildren, onChange: function (val) { return handleDataChange('children', val); } }), _jsx(StepperRow, { label: "Infant", value: internalData.infants, max: maxInfants, onChange: function (val) { return handleDataChange('infants', val); } })] })), ((internalData.teens > 0) || (internalData.children > 0) || (internalData.infants > 0)) && (_jsxs("div", __assign({ className: "pax-selector__age-section" }, { children: [_jsx(Text, __assign({ size: "base", variant: "bold", className: "pax-selector__age-section-title" }, { children: "Please specify the age :" })), _jsx("div", __assign({ className: "pax-selector__age-groups" }, { children: (function () {
|
|
374
|
+
_jsxs(_Fragment, { children: [_jsxs("div", __assign({ className: "pax-selector__steppers" }, { children: [_jsx(StepperRow, { label: "Adult", value: internalData.adults, max: maxAdults, onChange: function (val) { return handleDataChange('adults', val); } }), _jsx(StepperRow, { label: "Teen", value: internalData.teens, max: maxTeens, onChange: function (val) { return handleDataChange('teens', val); } }), _jsx(StepperRow, { label: "Child", value: internalData.children, max: maxChildren, onChange: function (val) { return handleDataChange('children', val); } }), _jsx(StepperRow, { label: "Infant", value: internalData.infants, max: maxInfants, onChange: function (val) { return handleDataChange('infants', val); } })] })), ((internalData.teens > 0) || (internalData.children > 0) || (internalData.infants > 0)) && (_jsxs("div", __assign({ className: "pax-selector__age-section" }, { children: [_jsx(Text, __assign({ size: "base", variant: "bold", color: "default", className: "pax-selector__age-section-title" }, { children: "Please specify the age :" })), _jsx("div", __assign({ className: "pax-selector__age-groups" }, { children: (function () {
|
|
375
375
|
var chunkAges = function (ages, category) {
|
|
376
376
|
var chunks = [];
|
|
377
377
|
for (var i = 0; i < ages.length; i += 2) {
|
|
@@ -164,7 +164,7 @@ var SearchBarTransfer = function (_a) {
|
|
|
164
164
|
onSearch === null || onSearch === void 0 ? void 0 : onSearch(data);
|
|
165
165
|
}
|
|
166
166
|
};
|
|
167
|
-
return (_jsxs("div", __assign({ className: "search-bar-transfer ".concat(className) }, { children: [_jsxs("div", __assign({ className: "search-bar-transfer__header" }, { children: [_jsx(Heading, __assign({ level: 5, variant: "bold",
|
|
167
|
+
return (_jsxs("div", __assign({ className: "search-bar-transfer ".concat(className) }, { children: [_jsxs("div", __assign({ className: "search-bar-transfer__header" }, { children: [_jsx(Heading, __assign({ level: 5, variant: "bold", color: "accent" }, { children: "Select your transfer details" })), _jsx("div", __assign({ className: "search-bar-transfer__mode-selector" }, { children: _jsx(SegmentedButton, { options: modeOptions, value: mode, onChange: handleModeChange, name: "transfer-mode" }) }))] })), mode === "roundtrip" ? (_jsx(RoundTrip, { id: "roundtrip-main", locations: locations, paxData: roundTripData === null || roundTripData === void 0 ? void 0 : roundTripData.paxData, arrivalDate: roundTripData === null || roundTripData === void 0 ? void 0 : roundTripData.arrivalDate, departureDate: roundTripData === null || roundTripData === void 0 ? void 0 : roundTripData.departureDate, pickupDropoffPoint: (_b = roundTripData === null || roundTripData === void 0 ? void 0 : roundTripData.pickupDropoffPoint) === null || _b === void 0 ? void 0 : _b.id, accommodation: (_c = roundTripData === null || roundTripData === void 0 ? void 0 : roundTripData.accommodation) === null || _c === void 0 ? void 0 : _c.id, onChange: setRoundTripData })) : (_jsxs(_Fragment, { children: [_jsxs("div", __assign({ className: "search-bar-transfer__transfer-type" }, { children: [_jsx(Text, __assign({ size: "lg", variant: "bold", color: "subtle", as: "div", className: "search-bar-transfer__transfer-type-label" }, { children: "Select a transfer type you want to add" })), _jsxs("div", __assign({ className: "search-bar-transfer__add-buttons" }, { children: [_jsx(Button, __assign({ variant: "outline-secondary", size: "sm", leadingIcon: "plus", onClick: function () { return handleAddTransfer("arrival"); } }, { children: "Add Arrival" })), _jsx(Button, __assign({ variant: "outline-secondary", size: "sm", leadingIcon: "plus", onClick: function () { return handleAddTransfer("departure"); } }, { children: "Add Departure" })), _jsx(Button, __assign({ variant: "outline-secondary", size: "sm", leadingIcon: "plus", onClick: function () { return handleAddTransfer("inter-hotel"); } }, { children: "Add Inter-Hotel" }))] }))] })), transferLines.length > 0 && (_jsx("div", __assign({ className: "search-bar-transfer__transfer-lines" }, { children: (function () {
|
|
168
168
|
// Group transfers by type
|
|
169
169
|
var groupedTransfers = {
|
|
170
170
|
arrival: [],
|
|
@@ -183,7 +183,7 @@ var SearchBarTransfer = function (_a) {
|
|
|
183
183
|
departure: { label: "Departure", icon: "departure" },
|
|
184
184
|
"inter-hotel": { label: "Inter-Hotel", icon: "building" },
|
|
185
185
|
};
|
|
186
|
-
return nonEmptyGroups.map(function (type, groupIndex) { return (_jsxs(React.Fragment, { children: [_jsxs("div", __assign({ className: "search-bar-transfer__category-header" }, { children: [_jsx(Icon, { name: categoryInfo[type].icon, size: "md" }), _jsx(Text, __assign({ size: "md", variant: "bold", as: "span" }, { children: categoryInfo[type].label }))] })), groupedTransfers[type].map(function (line) {
|
|
186
|
+
return nonEmptyGroups.map(function (type, groupIndex) { return (_jsxs(React.Fragment, { children: [_jsxs("div", __assign({ className: "search-bar-transfer__category-header" }, { children: [_jsx(Icon, { name: categoryInfo[type].icon, size: "md" }), _jsx(Text, __assign({ size: "md", variant: "bold", color: "default", as: "span" }, { children: categoryInfo[type].label }))] })), groupedTransfers[type].map(function (line) {
|
|
187
187
|
var _a, _b;
|
|
188
188
|
return (_jsx(TransferLine, { id: line.id, type: line.type, paxData: line.paxData, transferDate: line.transferDate, pickupPoint: (_a = line.pickupPoint) === null || _a === void 0 ? void 0 : _a.id, dropoffPoint: (_b = line.dropoffPoint) === null || _b === void 0 ? void 0 : _b.id, locations: locations, onDataChange: function (data) { return handleTransferLineChange(line.id, data); }, onDelete: function () { return handleDeleteTransferLine(line.id); }, showDelete: transferLines.length > 1 }, line.id));
|
|
189
189
|
}), groupIndex < nonEmptyGroups.length - 1 && (_jsx("svg", __assign({ className: "search-bar-transfer__divider", xmlns: "http://www.w3.org/2000/svg", width: "100%", height: "1", viewBox: "0 0 1076 1", fill: "none", preserveAspectRatio: "none" }, { children: _jsx("path", { d: "M0 0.5L1076 0.499906", stroke: "var(--color-border-medium, #A3A3A3)", strokeWidth: "1", strokeDasharray: "10 10" }) })))] }, type)); });
|
|
@@ -2236,11 +2236,7 @@
|
|
|
2236
2236
|
}
|
|
2237
2237
|
|
|
2238
2238
|
.pax-selector__stepper-label {
|
|
2239
|
-
|
|
2240
|
-
font-weight: 700;
|
|
2241
|
-
font-size: 16px;
|
|
2242
|
-
line-height: 24px;
|
|
2243
|
-
color: var(--color-text-default, #262626);
|
|
2239
|
+
/* La couleur est maintenant gérée par la prop color="default" du composant Text */
|
|
2244
2240
|
}
|
|
2245
2241
|
|
|
2246
2242
|
.pax-selector__stepper-controls {
|
|
@@ -2669,11 +2665,7 @@
|
|
|
2669
2665
|
}
|
|
2670
2666
|
|
|
2671
2667
|
.pax-selector__age-section-title {
|
|
2672
|
-
|
|
2673
|
-
font-weight: var(--font-weight-font-bold, 700);
|
|
2674
|
-
font-size: 16px;
|
|
2675
|
-
line-height: 24px;
|
|
2676
|
-
color: var(--color-text-default, #262626);
|
|
2668
|
+
/* La couleur est maintenant gérée par la prop color="default" du composant Text */
|
|
2677
2669
|
margin: 0;
|
|
2678
2670
|
}
|
|
2679
2671
|
|
|
@@ -2722,11 +2714,7 @@
|
|
|
2722
2714
|
}
|
|
2723
2715
|
|
|
2724
2716
|
.pax-selector__room-name {
|
|
2725
|
-
|
|
2726
|
-
font-weight: var(--font-weight-font-bold, 700);
|
|
2727
|
-
font-size: 18px;
|
|
2728
|
-
line-height: 24px;
|
|
2729
|
-
color: var(--color-text-accent, #0f7173);
|
|
2717
|
+
/* La couleur est maintenant gérée par la prop color="accent" du composant Text */
|
|
2730
2718
|
margin: 0;
|
|
2731
2719
|
}
|
|
2732
2720
|
|
|
@@ -2099,10 +2099,6 @@
|
|
|
2099
2099
|
justify-content: space-between;
|
|
2100
2100
|
}
|
|
2101
2101
|
|
|
2102
|
-
.search-bar-transfer__title {
|
|
2103
|
-
color: var(--color-text-accent, #0f7173);
|
|
2104
|
-
}
|
|
2105
|
-
|
|
2106
2102
|
/* Mode Selector (Segmented Button) */
|
|
2107
2103
|
|
|
2108
2104
|
.search-bar-transfer__mode-selector {
|
|
@@ -2119,9 +2115,7 @@
|
|
|
2119
2115
|
justify-content: space-between;
|
|
2120
2116
|
}
|
|
2121
2117
|
|
|
2122
|
-
|
|
2123
|
-
color: var(--color-text-subtle);
|
|
2124
|
-
}
|
|
2118
|
+
/* La couleur est maintenant gérée par la prop color="subtle" du composant Text */
|
|
2125
2119
|
|
|
2126
2120
|
.search-bar-transfer__add-buttons {
|
|
2127
2121
|
display: flex;
|
|
@@ -2143,7 +2137,7 @@
|
|
|
2143
2137
|
display: flex;
|
|
2144
2138
|
align-items: center;
|
|
2145
2139
|
gap: 0.5rem;
|
|
2146
|
-
|
|
2140
|
+
/* La couleur du texte est maintenant gérée par la prop color="default" du composant Text */
|
|
2147
2141
|
}
|
|
2148
2142
|
|
|
2149
2143
|
/* Divider between categories */
|
|
@@ -2215,8 +2209,8 @@
|
|
|
2215
2209
|
gap: 1rem;
|
|
2216
2210
|
}
|
|
2217
2211
|
|
|
2218
|
-
|
|
2219
|
-
|
|
2212
|
+
/* Responsive: Réduire la taille du titre sur mobile */
|
|
2213
|
+
.search-bar-transfer__header .heading-md {
|
|
2220
2214
|
font-size: var(--font-size-text-2xl, 24px);
|
|
2221
2215
|
line-height: var(--font-leading-leading-2xl, 36px);
|
|
2222
2216
|
}
|
|
@@ -2114,9 +2114,7 @@
|
|
|
2114
2114
|
color: var(--checkbox-color-checkbox-checked-default, #0f7173);
|
|
2115
2115
|
}
|
|
2116
2116
|
|
|
2117
|
-
|
|
2118
|
-
color: var(--color-text-default, #262626);
|
|
2119
|
-
}
|
|
2117
|
+
/* La couleur est maintenant gérée par la prop color="default" du composant Text */
|
|
2120
2118
|
|
|
2121
2119
|
/* States */
|
|
2122
2120
|
|
package/package.json
CHANGED
|
@@ -5,10 +5,24 @@ type BodySizeInput = BodyTokenSize | 'base' | 'xl';
|
|
|
5
5
|
type Variant = 'light' | 'regular' | 'medium' | 'bold' | 'black';
|
|
6
6
|
type Leading = 'none' | '4' | '5' | '6' | '7';
|
|
7
7
|
type HeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;
|
|
8
|
+
type TextColor =
|
|
9
|
+
| 'default'
|
|
10
|
+
| 'accent'
|
|
11
|
+
| 'subtle'
|
|
12
|
+
| 'light'
|
|
13
|
+
| 'brand'
|
|
14
|
+
| 'inverted'
|
|
15
|
+
| 'state-default'
|
|
16
|
+
| 'state-hover'
|
|
17
|
+
| 'state-filled'
|
|
18
|
+
| 'state-disabled'
|
|
19
|
+
| 'state-error'
|
|
20
|
+
| 'state-success';
|
|
8
21
|
|
|
9
22
|
interface BaseProps {
|
|
10
23
|
variant?: Variant;
|
|
11
24
|
leading?: Leading;
|
|
25
|
+
color?: TextColor;
|
|
12
26
|
className?: string;
|
|
13
27
|
children: React.ReactNode;
|
|
14
28
|
onClick?: React.MouseEventHandler<Element>;
|
|
@@ -91,11 +105,19 @@ const buildVariantClass = (base: string, variant: Variant): string | undefined =
|
|
|
91
105
|
return `${base}--${variant}`;
|
|
92
106
|
};
|
|
93
107
|
|
|
108
|
+
const getColorStyle = (color?: TextColor): React.CSSProperties => {
|
|
109
|
+
if (!color) return {};
|
|
110
|
+
return {
|
|
111
|
+
color: `var(--color-text-${color}, inherit)`,
|
|
112
|
+
};
|
|
113
|
+
};
|
|
114
|
+
|
|
94
115
|
|
|
95
116
|
export const Heading: React.FC<HeadingProps> = ({
|
|
96
117
|
level = 2,
|
|
97
118
|
variant = 'bold',
|
|
98
119
|
leading,
|
|
120
|
+
color,
|
|
99
121
|
as,
|
|
100
122
|
className = '',
|
|
101
123
|
children,
|
|
@@ -114,8 +136,10 @@ export const Heading: React.FC<HeadingProps> = ({
|
|
|
114
136
|
.filter(Boolean)
|
|
115
137
|
.join(' ');
|
|
116
138
|
|
|
139
|
+
const colorStyle = getColorStyle(color);
|
|
140
|
+
|
|
117
141
|
return (
|
|
118
|
-
<Tag className={classes} onClick={onClick}>
|
|
142
|
+
<Tag className={classes} style={colorStyle} onClick={onClick}>
|
|
119
143
|
{children}
|
|
120
144
|
</Tag>
|
|
121
145
|
);
|
|
@@ -126,6 +150,7 @@ export const Text: React.FC<TextProps> = ({
|
|
|
126
150
|
size = 'md',
|
|
127
151
|
variant = 'regular',
|
|
128
152
|
leading,
|
|
153
|
+
color,
|
|
129
154
|
as,
|
|
130
155
|
className = '',
|
|
131
156
|
children,
|
|
@@ -145,8 +170,10 @@ export const Text: React.FC<TextProps> = ({
|
|
|
145
170
|
.filter(Boolean)
|
|
146
171
|
.join(' ');
|
|
147
172
|
|
|
173
|
+
const colorStyle = getColorStyle(color);
|
|
174
|
+
|
|
148
175
|
return (
|
|
149
|
-
<Tag className={classes} onClick={onClick}>
|
|
176
|
+
<Tag className={classes} style={colorStyle} onClick={onClick}>
|
|
150
177
|
{children}
|
|
151
178
|
</Tag>
|
|
152
179
|
);
|
|
@@ -81,7 +81,7 @@ const RatingTab: React.FC<RatingTabProps> = ({
|
|
|
81
81
|
<div className="rating-tab__checkbox">
|
|
82
82
|
{checked && <Check size="sm" className="rating-tab__checkbox-icon" />}
|
|
83
83
|
</div>
|
|
84
|
-
<Text size="sm" className="rating-tab__label">
|
|
84
|
+
<Text size="sm" color="default" className="rating-tab__label">
|
|
85
85
|
{label}
|
|
86
86
|
</Text>
|
|
87
87
|
</div>
|
|
@@ -285,7 +285,7 @@ const StepperRow: React.FC<StepperRowProps> = ({
|
|
|
285
285
|
|
|
286
286
|
return (
|
|
287
287
|
<div className="pax-selector__stepper">
|
|
288
|
-
<Text size="base" variant="bold" className="pax-selector__stepper-label">
|
|
288
|
+
<Text size="base" variant="bold" color="default" className="pax-selector__stepper-label">
|
|
289
289
|
{label}
|
|
290
290
|
</Text>
|
|
291
291
|
<div className="pax-selector__stepper-controls">
|
|
@@ -467,7 +467,7 @@ const RoomEditor: React.FC<RoomEditorProps> = ({
|
|
|
467
467
|
<div className="pax-selector__room-container">
|
|
468
468
|
<div className="pax-selector__room-header">
|
|
469
469
|
<div className="pax-selector__room-title">
|
|
470
|
-
<Text size="lg" variant="bold" className="pax-selector__room-name">
|
|
470
|
+
<Text size="lg" variant="bold" color="accent" className="pax-selector__room-name">
|
|
471
471
|
Room {roomNumber}
|
|
472
472
|
</Text>
|
|
473
473
|
<Icon name="home" size="md" className="pax-selector__room-icon" />
|
|
@@ -516,7 +516,7 @@ const RoomEditor: React.FC<RoomEditorProps> = ({
|
|
|
516
516
|
{/* Age specification section */}
|
|
517
517
|
{((room.teens > 0) || (room.children > 0) || (room.infants > 0)) && (
|
|
518
518
|
<div className="pax-selector__age-section">
|
|
519
|
-
<Text size="base" variant="bold" className="pax-selector__age-section-title">
|
|
519
|
+
<Text size="base" variant="bold" color="default" className="pax-selector__age-section-title">
|
|
520
520
|
Please specify the age :
|
|
521
521
|
</Text>
|
|
522
522
|
|
|
@@ -857,7 +857,7 @@ const PaxSelector: React.FC<PaxSelectorProps> = ({
|
|
|
857
857
|
{/* Age specification for single room */}
|
|
858
858
|
{((internalData.teens > 0) || (internalData.children > 0) || (internalData.infants > 0)) && (
|
|
859
859
|
<div className="pax-selector__age-section">
|
|
860
|
-
<Text size="base" variant="bold" className="pax-selector__age-section-title">
|
|
860
|
+
<Text size="base" variant="bold" color="default" className="pax-selector__age-section-title">
|
|
861
861
|
Please specify the age :
|
|
862
862
|
</Text>
|
|
863
863
|
|
|
@@ -210,7 +210,7 @@ const SearchBarTransfer: React.FC<SearchBarTransferProps> = ({
|
|
|
210
210
|
<div className={`search-bar-transfer ${className}`}>
|
|
211
211
|
{/* Header with title and mode selector */}
|
|
212
212
|
<div className="search-bar-transfer__header">
|
|
213
|
-
<Heading level={5} variant="bold"
|
|
213
|
+
<Heading level={5} variant="bold" color="accent">
|
|
214
214
|
Select your transfer details
|
|
215
215
|
</Heading>
|
|
216
216
|
|
|
@@ -241,7 +241,7 @@ const SearchBarTransfer: React.FC<SearchBarTransferProps> = ({
|
|
|
241
241
|
<>
|
|
242
242
|
{/* Transfer type selector */}
|
|
243
243
|
<div className="search-bar-transfer__transfer-type">
|
|
244
|
-
<Text size="lg" variant="bold" as="div" className="search-bar-transfer__transfer-type-label">
|
|
244
|
+
<Text size="lg" variant="bold" color="subtle" as="div" className="search-bar-transfer__transfer-type-label">
|
|
245
245
|
Select a transfer type you want to add
|
|
246
246
|
</Text>
|
|
247
247
|
<div className="search-bar-transfer__add-buttons">
|
|
@@ -303,7 +303,7 @@ const SearchBarTransfer: React.FC<SearchBarTransferProps> = ({
|
|
|
303
303
|
{/* Category header */}
|
|
304
304
|
<div className="search-bar-transfer__category-header">
|
|
305
305
|
<Icon name={categoryInfo[type].icon} size="md" />
|
|
306
|
-
<Text size="md" variant="bold" as="span">
|
|
306
|
+
<Text size="md" variant="bold" color="default" as="span">
|
|
307
307
|
{categoryInfo[type].label}
|
|
308
308
|
</Text>
|
|
309
309
|
</div>
|
|
@@ -147,11 +147,7 @@
|
|
|
147
147
|
}
|
|
148
148
|
|
|
149
149
|
.pax-selector__stepper-label {
|
|
150
|
-
|
|
151
|
-
font-weight: 700;
|
|
152
|
-
font-size: 16px;
|
|
153
|
-
line-height: 24px;
|
|
154
|
-
color: var(--color-text-default, #262626);
|
|
150
|
+
/* La couleur est maintenant gérée par la prop color="default" du composant Text */
|
|
155
151
|
}
|
|
156
152
|
|
|
157
153
|
.pax-selector__stepper-controls {
|
|
@@ -573,11 +569,7 @@
|
|
|
573
569
|
}
|
|
574
570
|
|
|
575
571
|
.pax-selector__age-section-title {
|
|
576
|
-
|
|
577
|
-
font-weight: var(--font-weight-font-bold, 700);
|
|
578
|
-
font-size: 16px;
|
|
579
|
-
line-height: 24px;
|
|
580
|
-
color: var(--color-text-default, #262626);
|
|
572
|
+
/* La couleur est maintenant gérée par la prop color="default" du composant Text */
|
|
581
573
|
margin: 0;
|
|
582
574
|
}
|
|
583
575
|
|
|
@@ -625,11 +617,7 @@
|
|
|
625
617
|
}
|
|
626
618
|
|
|
627
619
|
.pax-selector__room-name {
|
|
628
|
-
|
|
629
|
-
font-weight: var(--font-weight-font-bold, 700);
|
|
630
|
-
font-size: 18px;
|
|
631
|
-
line-height: 24px;
|
|
632
|
-
color: var(--color-text-accent, #0f7173);
|
|
620
|
+
/* La couleur est maintenant gérée par la prop color="accent" du composant Text */
|
|
633
621
|
margin: 0;
|
|
634
622
|
}
|
|
635
623
|
|
|
@@ -10,10 +10,6 @@
|
|
|
10
10
|
@apply flex items-center justify-between w-full;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
.search-bar-transfer__title {
|
|
14
|
-
color: var(--color-text-accent, #0f7173);
|
|
15
|
-
}
|
|
16
|
-
|
|
17
13
|
/* Mode Selector (Segmented Button) */
|
|
18
14
|
.search-bar-transfer__mode-selector {
|
|
19
15
|
@apply flex items-center;
|
|
@@ -24,9 +20,7 @@
|
|
|
24
20
|
@apply flex items-center justify-between w-full;
|
|
25
21
|
}
|
|
26
22
|
|
|
27
|
-
|
|
28
|
-
color: var(--color-text-subtle);
|
|
29
|
-
}
|
|
23
|
+
/* La couleur est maintenant gérée par la prop color="subtle" du composant Text */
|
|
30
24
|
|
|
31
25
|
.search-bar-transfer__add-buttons {
|
|
32
26
|
@apply flex gap-2;
|
|
@@ -40,7 +34,7 @@
|
|
|
40
34
|
/* Category Header */
|
|
41
35
|
.search-bar-transfer__category-header {
|
|
42
36
|
@apply flex items-center gap-2;
|
|
43
|
-
|
|
37
|
+
/* La couleur du texte est maintenant gérée par la prop color="default" du composant Text */
|
|
44
38
|
}
|
|
45
39
|
|
|
46
40
|
/* Divider between categories */
|
|
@@ -95,8 +89,8 @@
|
|
|
95
89
|
@apply flex-col items-start gap-4;
|
|
96
90
|
}
|
|
97
91
|
|
|
98
|
-
|
|
99
|
-
|
|
92
|
+
/* Responsive: Réduire la taille du titre sur mobile */
|
|
93
|
+
.search-bar-transfer__header .heading-md {
|
|
100
94
|
font-size: var(--font-size-text-2xl, 24px);
|
|
101
95
|
line-height: var(--font-leading-leading-2xl, 36px);
|
|
102
96
|
}
|
|
@@ -38,9 +38,7 @@
|
|
|
38
38
|
color: var(--checkbox-color-checkbox-checked-default, #0f7173);
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
|
|
42
|
-
color: var(--color-text-default, #262626);
|
|
43
|
-
}
|
|
41
|
+
/* La couleur est maintenant gérée par la prop color="default" du composant Text */
|
|
44
42
|
|
|
45
43
|
/* States */
|
|
46
44
|
|