mautourco-components 0.2.13 → 0.2.15

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 (35) hide show
  1. package/dist/components/atoms/Icon/icons/PlusCircleIcon.d.ts +12 -0
  2. package/dist/components/atoms/Icon/icons/PlusCircleIcon.js +36 -0
  3. package/dist/components/atoms/Icon/icons/QuotationIcon.d.ts +8 -0
  4. package/dist/components/atoms/Icon/icons/QuotationIcon.js +36 -0
  5. package/dist/components/atoms/Icon/icons/registry.d.ts +2 -0
  6. package/dist/components/atoms/Icon/icons/registry.js +4 -0
  7. package/dist/components/atoms/Inputs/DropdownInput/DropdownInput.js +15 -3
  8. package/dist/components/organisms/MultipleQuotationDocket/MultipleQuotationDocket.d.ts +64 -0
  9. package/dist/components/organisms/MultipleQuotationDocket/MultipleQuotationDocket.js +45 -0
  10. package/dist/components/organisms/MultipleQuotationDocket/index.d.ts +2 -0
  11. package/dist/components/organisms/MultipleQuotationDocket/index.js +1 -0
  12. package/dist/components/organisms/QuoteHeader/QuoteHeader.css +2142 -0
  13. package/dist/components/organisms/QuoteHeader/QuoteHeader.d.ts +12 -0
  14. package/dist/components/organisms/QuoteHeader/QuoteHeader.js +41 -0
  15. package/dist/components/organisms/QuoteHeader/constant.d.ts +3 -0
  16. package/dist/components/organisms/QuoteHeader/constant.js +8 -0
  17. package/dist/index.d.ts +4 -0
  18. package/dist/index.js +2 -0
  19. package/dist/styles/components/dropdown.css +7 -6
  20. package/dist/styles/components/forms.css +18 -9
  21. package/dist/styles/components/organism/multiple-quotation-docket.css +2304 -0
  22. package/package.json +1 -1
  23. package/src/components/atoms/Icon/icons/PlusCircleIcon.tsx +60 -0
  24. package/src/components/atoms/Icon/icons/QuotationIcon.tsx +50 -0
  25. package/src/components/atoms/Icon/icons/registry.tsx +4 -0
  26. package/src/components/atoms/Inputs/DropdownInput/DropdownInput.tsx +29 -17
  27. package/src/components/organisms/CarBookingCard/index.ts +1 -0
  28. package/src/components/organisms/MultipleQuotationDocket/MultipleQuotationDocket.tsx +349 -0
  29. package/src/components/organisms/MultipleQuotationDocket/index.ts +6 -0
  30. package/src/components/organisms/QuoteHeader/QuoteHeader.css +37 -0
  31. package/src/components/organisms/QuoteHeader/QuoteHeader.tsx +93 -0
  32. package/src/components/organisms/QuoteHeader/constant.ts +8 -0
  33. package/src/styles/components/dropdown.css +7 -6
  34. package/src/styles/components/forms.css +18 -11
  35. package/src/styles/components/organism/multiple-quotation-docket.css +222 -0
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import './QuoteHeader.css';
3
+ export interface QuoteHeaderProps {
4
+ /** Current tab */
5
+ current: 'quotation' | 'booking';
6
+ /** Callback to navigate to a different tab */
7
+ onNavigate: (tab: 'quotation' | 'booking') => void;
8
+ /** Callback to create a new quote */
9
+ onNewQuote: () => void;
10
+ onFilterChange: (filter: 'date' | 'clientType' | 'fileStatus', value: string) => void;
11
+ }
12
+ export declare const QuoteHeader: React.FC<QuoteHeaderProps>;
@@ -0,0 +1,41 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
+ import Button from '../../atoms/Button/Button';
14
+ import DropdownInput from '../../atoms/Inputs/DropdownInput/DropdownInput';
15
+ import Input from '../../atoms/Inputs/Input/Input';
16
+ import { Heading } from '../../atoms/Typography/Typography';
17
+ import { SORT_BY__FILE_STATUS_OPTIONS, SORT_BY_CLIENT_TYPE_OPTIONS, SORT_BY_DATE_OPTIONS, } from './constant';
18
+ import './QuoteHeader.css';
19
+ var filterConfig = {
20
+ date: {
21
+ options: SORT_BY_DATE_OPTIONS,
22
+ placeholder: 'Sort by date',
23
+ },
24
+ clientType: {
25
+ options: SORT_BY_CLIENT_TYPE_OPTIONS,
26
+ placeholder: 'Client type',
27
+ },
28
+ fileStatus: {
29
+ options: SORT_BY__FILE_STATUS_OPTIONS,
30
+ placeholder: 'File status',
31
+ },
32
+ };
33
+ export var QuoteHeader = function (props) {
34
+ var _a = props.current, current = _a === void 0 ? 'quotation' : _a, onNavigate = props.onNavigate, onNewQuote = props.onNewQuote, onFilterChange = props.onFilterChange;
35
+ return (_jsxs("div", __assign({ className: "quote-header" }, { children: [_jsx(Heading, __assign({ level: 4, as: "h1", className: "quote-header__title", color: "accent" }, { children: "Quotation & Booking" })), _jsxs("div", __assign({ className: "flex gap-4" }, { children: [_jsx(Button, __assign({ variant: current === 'quotation' ? 'primary' : 'outline-primary', className: "quote-header__button", onClick: function () { return onNavigate('quotation'); } }, { children: "Quotation" })), _jsx(Button, __assign({ variant: current === 'booking' ? 'primary' : 'outline-primary', className: "quote-header__button", onClick: function () { return onNavigate('booking'); } }, { children: "Booking" }))] })), _jsxs("div", __assign({ className: "quote-header__search-container" }, { children: [_jsx(Input, { placeholder: "Search", icon: "search", iconPosition: "leading", className: "quote-header__search" }), _jsx(Button, __assign({ variant: "primary", leadingIcon: "plus-circle", iconSize: "md", size: "sm", onClick: onNewQuote }, { children: "New quote" }))] })), _jsx("div", __assign({ className: "quote-header__filters" }, { children: Object.entries(filterConfig).map(function (_a) {
36
+ var key = _a[0], value = _a[1];
37
+ return (_jsx(DropdownInput, { placeholder: value.placeholder, options: value.options, onSelect: function (value) {
38
+ return onFilterChange(key, value);
39
+ } }, key));
40
+ }) }))] })));
41
+ };
@@ -0,0 +1,3 @@
1
+ export declare const SORT_BY_DATE_OPTIONS: string[];
2
+ export declare const SORT_BY_CLIENT_TYPE_OPTIONS: string[];
3
+ export declare const SORT_BY__FILE_STATUS_OPTIONS: string[];
@@ -0,0 +1,8 @@
1
+ export var SORT_BY_DATE_OPTIONS = ['Newest to oldest', 'Last week', 'Oldest to newest'];
2
+ export var SORT_BY_CLIENT_TYPE_OPTIONS = ['All', 'Standard', 'Honeymoon', 'Wedding'];
3
+ export var SORT_BY__FILE_STATUS_OPTIONS = [
4
+ 'All',
5
+ 'Free sales',
6
+ 'On request',
7
+ 'Pay to book',
8
+ ];
package/dist/index.d.ts CHANGED
@@ -33,7 +33,9 @@ export { CardContainer } from './components/organisms/CardContainer/CardContaine
33
33
  export { default as DateTimePicker } from './components/organisms/DateTimePicker/DateTimePicker';
34
34
  export { Dialog } from './components/organisms/Dialog/Dialog';
35
35
  export { Footer } from './components/organisms/Footer/Footer';
36
+ export { default as MultipleQuotationDocket } from './components/organisms/MultipleQuotationDocket';
36
37
  export { default as PaxSelector } from './components/organisms/PaxSelector/PaxSelector';
38
+ export { QuoteHeader } from './components/organisms/QuoteHeader/QuoteHeader';
37
39
  export { default as RoundTrip } from './components/organisms/RoundTrip/RoundTrip';
38
40
  export { default as SearchBarTransfer } from './components/organisms/SearchBarTransfer/SearchBarTransfer';
39
41
  export * from './components/organisms/Table';
@@ -60,6 +62,7 @@ export type { CardContainerProps, CardContainerSpacing, } from './components/org
60
62
  export type { DateTimePickerProps } from './components/organisms/DateTimePicker/DateTimePicker';
61
63
  export type { DialogProps, DialogSize } from './components/organisms/Dialog/Dialog';
62
64
  export type { FooterProps } from './components/organisms/Footer/Footer';
65
+ export type { DocketDetailsData, DocketServiceType, MultipleQuotationDocketProps, } from './components/organisms/MultipleQuotationDocket';
63
66
  export type { ClientType, PaxData, PaxSelectorProps, } from './components/organisms/PaxSelector/PaxSelector';
64
67
  export type { RoundTripData, RoundTripProps, RoundTripTransfer, } from './components/organisms/RoundTrip/RoundTrip';
65
68
  export type { SearchBarTransferData, SearchBarTransferProps, TransferMode, } from './components/organisms/SearchBarTransfer/SearchBarTransfer';
@@ -68,4 +71,5 @@ export type { TransferLineData, TransferLineProps, TransferType, } from './compo
68
71
  export type { FromToProps } from './components/molecules/FromTo/FromTo';
69
72
  export type { SectionTitleProps } from './components/molecules/SectionTitle/SectionTitle';
70
73
  export type { DetailsColProps, ItemColProps, RowAccommodationProps, RowExcursionProps, RowTransferProps, } from './components/molecules/TableServiceItem';
74
+ export type { QuoteHeaderProps } from './components/organisms/QuoteHeader/QuoteHeader';
71
75
  export * from './types/table';
package/dist/index.js CHANGED
@@ -36,7 +36,9 @@ export { CardContainer } from './components/organisms/CardContainer/CardContaine
36
36
  export { default as DateTimePicker } from './components/organisms/DateTimePicker/DateTimePicker';
37
37
  export { Dialog } from './components/organisms/Dialog/Dialog';
38
38
  export { Footer } from './components/organisms/Footer/Footer';
39
+ export { default as MultipleQuotationDocket } from './components/organisms/MultipleQuotationDocket';
39
40
  export { default as PaxSelector } from './components/organisms/PaxSelector/PaxSelector';
41
+ export { QuoteHeader } from './components/organisms/QuoteHeader/QuoteHeader';
40
42
  export { default as RoundTrip } from './components/organisms/RoundTrip/RoundTrip';
41
43
  export { default as SearchBarTransfer } from './components/organisms/SearchBarTransfer/SearchBarTransfer';
42
44
  export * from './components/organisms/Table';
@@ -2089,8 +2089,8 @@
2089
2089
  width: 100%;
2090
2090
  min-height: 40px;
2091
2091
  padding: 8px 12px;
2092
- border: 1px solid var(--color-slate-500, #6B7280);
2093
- border-radius: 0.375rem;
2092
+ border: 1px solid var(--color-slate-500, #6b7280);
2093
+ border-radius: var(--input-border-radius-default);
2094
2094
  background-color: var(--color-white, #ffffff);
2095
2095
  cursor: pointer;
2096
2096
  transition: all 0.2s ease-in-out;
@@ -2161,7 +2161,7 @@
2161
2161
 
2162
2162
  .dropdown-input--disabled {
2163
2163
  background-color: var(--color-slate-100);
2164
- border-color: var(--color-slate-300, #D1D5DB);
2164
+ border-color: var(--color-slate-300, #d1d5db);
2165
2165
  cursor: not-allowed;
2166
2166
  }
2167
2167
 
@@ -2183,10 +2183,11 @@
2183
2183
  z-index: 1000;
2184
2184
  width: 100%;
2185
2185
  background-color: var(--color-white);
2186
- border: 1px solid var(--color-neutral-400);
2187
- border-top: 1px solid var(--color-neutral-400);
2186
+ border: 1px solid var(--color-border-subtle);
2188
2187
  border-radius: var(--multiselect-border-radius, 0.75rem);
2189
- box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
2188
+ box-shadow:
2189
+ 0 4px 6px -1px rgba(0, 0, 0, 0.1),
2190
+ 0 2px 4px -1px rgba(0, 0, 0, 0.06);
2190
2191
  max-height: var(--multiselect-size-menu-max-height, 17.25rem);
2191
2192
  overflow-y: auto;
2192
2193
  padding: var(--spacing-padding-px-0);
@@ -2077,10 +2077,10 @@
2077
2077
  /* Styles Input centralisés: consomment uniquement des variables CSS issues de Style Dictionary */
2078
2078
 
2079
2079
  .input-field {
2080
- font-family: var(--typography-font-family-sans, Inter,system-ui,sans-serif);
2080
+ font-family: var(--typography-font-family-sans, Inter, system-ui, sans-serif);
2081
2081
  font-size: var(--input-font-size-default, 1rem);
2082
2082
  line-height: var(--input-line-height-default, 1.5rem);
2083
- border-radius: 0.375rem;
2083
+ border-radius: var(--input-border-radius-default);
2084
2084
  border-width: 1px;
2085
2085
  border-style: solid;
2086
2086
  padding: var(--input-padding-vertical, 0.5rem) var(--input-padding-horizontal, 0.75rem);
@@ -2095,6 +2095,7 @@
2095
2095
  .input-wrapper {
2096
2096
  position: relative;
2097
2097
  width: 100%;
2098
+ height: 42px;
2098
2099
  }
2099
2100
 
2100
2101
  .input-icon {
@@ -2106,16 +2107,24 @@
2106
2107
  height: var(--input-search-iconSize, 1rem);
2107
2108
  }
2108
2109
 
2109
- .input-icon--leading { left: var(--input-padding-horizontal, 0.75rem); }
2110
+ .input-icon--leading {
2111
+ left: var(--input-padding-horizontal, 0.75rem);
2112
+ }
2110
2113
 
2111
- .input-icon--trailing { right: var(--input-padding-horizontal, 0.75rem); }
2114
+ .input-icon--trailing {
2115
+ right: var(--input-padding-horizontal, 0.75rem);
2116
+ }
2112
2117
 
2113
2118
  .input-field--with-icon.input-field--icon-leading {
2114
- padding-left: calc(var(--input-padding-horizontal, 0.75rem) + var(--input-search-iconSize, 1rem) + 0.5rem);
2119
+ padding-left: calc(
2120
+ var(--input-padding-horizontal, 0.75rem) + var(--input-search-iconSize, 1rem) + 0.5rem
2121
+ );
2115
2122
  }
2116
2123
 
2117
2124
  .input-field--with-icon.input-field--icon-trailing {
2118
- padding-right: calc(var(--input-padding-horizontal, 0.75rem) + var(--input-search-iconSize, 1rem) + 0.5rem);
2125
+ padding-right: calc(
2126
+ var(--input-padding-horizontal, 0.75rem) + var(--input-search-iconSize, 1rem) + 0.5rem
2127
+ );
2119
2128
  }
2120
2129
 
2121
2130
  .input-field:focus {
@@ -2126,7 +2135,7 @@
2126
2135
 
2127
2136
  .input-field--default {
2128
2137
  background-color: var(--color-white);
2129
- border-color: var(--color-slate-300);
2138
+ border-color: var(--color-tuna-500);
2130
2139
  color: var(--color-slate-900);
2131
2140
  }
2132
2141
 
@@ -2194,7 +2203,7 @@
2194
2203
  }
2195
2204
 
2196
2205
  .input-showcase h1 {
2197
- font-family: var(--typography-font-family-sans, Inter,system-ui,sans-serif);
2206
+ font-family: var(--typography-font-family-sans, Inter, system-ui, sans-serif);
2198
2207
  font-size: var(--typography-font-size-2xl, 1.5re);
2199
2208
  font-weight: var(--font-weight-font-bold);
2200
2209
  color: var(--color-slate-900);
@@ -2202,7 +2211,7 @@
2202
2211
  }
2203
2212
 
2204
2213
  .input-showcase h2 {
2205
- font-family: var(--typography-font-family-sans, Inter,system-ui,sans-serif);
2214
+ font-family: var(--typography-font-family-sans, Inter, system-ui, sans-serif);
2206
2215
  font-size: var(--typography-font-size-lg, 1.125rem);
2207
2216
  font-weight: var(--font-weight-font-medium);
2208
2217
  color: var(--color-slate-700);