mautourco-components 0.2.12 → 0.2.14

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 (144) hide show
  1. package/dist/components/atoms/Icon/Icon.d.ts +1 -1
  2. package/dist/components/atoms/Icon/Icon.js +1 -1
  3. package/dist/components/atoms/Icon/icons/AccomIcon.d.ts +12 -0
  4. package/dist/components/atoms/Icon/icons/AccomIcon.js +36 -0
  5. package/dist/components/atoms/Icon/icons/ArrowDownOutlineIcon.d.ts +8 -0
  6. package/dist/components/atoms/Icon/icons/ArrowDownOutlineIcon.js +36 -0
  7. package/dist/components/atoms/Icon/icons/ArrowRightOutlineIcon.js +1 -1
  8. package/dist/components/atoms/Icon/icons/BusIcon.d.ts +12 -0
  9. package/dist/components/atoms/Icon/icons/BusIcon.js +36 -0
  10. package/dist/components/atoms/Icon/icons/Calendar2Icon.d.ts +12 -0
  11. package/dist/components/atoms/Icon/icons/Calendar2Icon.js +36 -0
  12. package/dist/components/atoms/Icon/icons/MapIcon.d.ts +8 -0
  13. package/dist/components/atoms/Icon/icons/MapIcon.js +36 -0
  14. package/dist/components/atoms/Icon/icons/MicroIcon.d.ts +12 -0
  15. package/dist/components/atoms/Icon/icons/MicroIcon.js +36 -0
  16. package/dist/components/atoms/Icon/icons/MoreVerticalIcon.d.ts +12 -0
  17. package/dist/components/atoms/Icon/icons/MoreVerticalIcon.js +36 -0
  18. package/dist/components/atoms/Icon/icons/NightIcon.d.ts +12 -0
  19. package/dist/components/atoms/Icon/icons/NightIcon.js +36 -0
  20. package/dist/components/atoms/Icon/icons/QuotationIcon.d.ts +8 -0
  21. package/dist/components/atoms/Icon/icons/QuotationIcon.js +36 -0
  22. package/dist/components/atoms/Icon/icons/RowExcursion.d.ts +16 -0
  23. package/dist/components/atoms/Icon/icons/RowExcursion.js +28 -0
  24. package/dist/components/atoms/Icon/icons/StopWatchIcon.d.ts +12 -0
  25. package/dist/components/atoms/Icon/icons/StopWatchIcon.js +36 -0
  26. package/dist/components/atoms/Icon/icons/Utensils.d.ts +12 -0
  27. package/dist/components/atoms/Icon/icons/Utensils.js +36 -0
  28. package/dist/components/atoms/Icon/icons/WalletIcon.d.ts +12 -0
  29. package/dist/components/atoms/Icon/icons/WalletIcon.js +36 -0
  30. package/dist/components/atoms/Icon/icons/registry.d.ts +12 -0
  31. package/dist/components/atoms/Icon/icons/registry.js +51 -27
  32. package/dist/components/atoms/Typography/Typography.d.ts +3 -1
  33. package/dist/components/atoms/Typography/Typography.js +3 -15
  34. package/dist/components/molecules/ActionDropdown/ActionDropdown.css +2119 -0
  35. package/dist/components/molecules/ActionDropdown/ActionDropdown.d.ts +21 -0
  36. package/dist/components/molecules/ActionDropdown/ActionDropdown.js +34 -0
  37. package/dist/components/molecules/DateDisplay/DateDisplay.d.ts +14 -0
  38. package/dist/components/molecules/DateDisplay/DateDisplay.js +39 -0
  39. package/dist/components/molecules/FromTo/FromTo.d.ts +8 -0
  40. package/dist/components/molecules/FromTo/FromTo.js +24 -0
  41. package/dist/components/molecules/TableServiceItem/DetailsCol.d.ts +12 -0
  42. package/dist/components/molecules/TableServiceItem/DetailsCol.js +17 -0
  43. package/dist/components/molecules/TableServiceItem/ItemCol.d.ts +13 -0
  44. package/dist/components/molecules/TableServiceItem/ItemCol.js +24 -0
  45. package/dist/components/molecules/TableServiceItem/RowAccommodation.d.ts +16 -0
  46. package/dist/components/molecules/TableServiceItem/RowAccommodation.js +37 -0
  47. package/dist/components/molecules/TableServiceItem/RowExcursion.d.ts +16 -0
  48. package/dist/components/molecules/TableServiceItem/RowExcursion.js +22 -0
  49. package/dist/components/molecules/TableServiceItem/RowOtherServices.d.ts +9 -0
  50. package/dist/components/molecules/TableServiceItem/RowOtherServices.js +34 -0
  51. package/dist/components/molecules/TableServiceItem/RowTransfer.d.ts +15 -0
  52. package/dist/components/molecules/TableServiceItem/RowTransfer.js +37 -0
  53. package/dist/components/molecules/TableServiceItem/index.d.ts +17 -0
  54. package/dist/components/molecules/TableServiceItem/index.js +15 -0
  55. package/dist/components/molecules/TextWithIcon/TextWithIcon.d.ts +30 -0
  56. package/dist/components/molecules/TextWithIcon/TextWithIcon.js +31 -0
  57. package/dist/components/molecules/TooltipDisplay/TooltipDisplay.d.ts +13 -0
  58. package/dist/components/molecules/TooltipDisplay/TooltipDisplay.js +18 -0
  59. package/dist/components/organisms/MultipleQuotationDocket/MultipleQuotationDocket.d.ts +64 -0
  60. package/dist/components/organisms/MultipleQuotationDocket/MultipleQuotationDocket.js +45 -0
  61. package/dist/components/organisms/MultipleQuotationDocket/index.d.ts +2 -0
  62. package/dist/components/organisms/MultipleQuotationDocket/index.js +1 -0
  63. package/dist/components/organisms/Table/Table.css +2280 -0
  64. package/dist/components/organisms/Table/Table.d.ts +50 -0
  65. package/dist/components/organisms/Table/Table.js +95 -0
  66. package/dist/components/organisms/Table/TableCell.d.ts +15 -0
  67. package/dist/components/organisms/Table/TableCell.js +16 -0
  68. package/dist/components/organisms/Table/columns/booking-columns.d.ts +7 -0
  69. package/dist/components/organisms/Table/columns/booking-columns.js +83 -0
  70. package/dist/components/organisms/Table/columns/detail-resume-columns.d.ts +3 -0
  71. package/dist/components/organisms/Table/columns/detail-resume-columns.js +178 -0
  72. package/dist/components/organisms/Table/columns/index.d.ts +12 -0
  73. package/dist/components/organisms/Table/columns/index.js +9 -0
  74. package/dist/components/organisms/Table/columns/quotation-columns.d.ts +7 -0
  75. package/dist/components/organisms/Table/columns/quotation-columns.js +91 -0
  76. package/dist/components/organisms/Table/constant.d.ts +6 -0
  77. package/dist/components/organisms/Table/constant.js +24 -0
  78. package/dist/components/organisms/Table/index.d.ts +2 -0
  79. package/dist/components/organisms/Table/index.js +2 -0
  80. package/dist/components/ui/popover.d.ts +3 -3
  81. package/dist/components/ui/popover.js +5 -5
  82. package/dist/components/ui/tooltip.d.ts +7 -0
  83. package/dist/components/ui/tooltip.js +42 -0
  84. package/dist/index.d.ts +43 -33
  85. package/dist/index.js +27 -20
  86. package/dist/styles/components/organism/multiple-quotation-docket.css +2304 -0
  87. package/dist/styles/components/typography.css +1 -0
  88. package/dist/types/table/action-dropdown-type.types.d.ts +5 -0
  89. package/dist/types/table/action-dropdown-type.types.js +6 -0
  90. package/dist/types/table/booking.types.d.ts +16 -0
  91. package/dist/types/table/booking.types.js +1 -0
  92. package/dist/types/table/detail-resume.types.d.ts +155 -0
  93. package/dist/types/table/detail-resume.types.js +7 -0
  94. package/dist/types/table/index.d.ts +3 -0
  95. package/dist/types/table/index.js +3 -0
  96. package/dist/types/table/quotation.types.d.ts +23 -0
  97. package/dist/types/table/quotation.types.js +1 -0
  98. package/package.json +6 -1
  99. package/src/components/atoms/Icon/Icon.tsx +2 -8
  100. package/src/components/atoms/Icon/icons/AccomIcon.tsx +45 -0
  101. package/src/components/atoms/Icon/icons/ArrowDownOutlineIcon.tsx +41 -0
  102. package/src/components/atoms/Icon/icons/ArrowRightOutlineIcon.tsx +2 -7
  103. package/src/components/atoms/Icon/icons/BusIcon.tsx +52 -0
  104. package/src/components/atoms/Icon/icons/Calendar2Icon.tsx +54 -0
  105. package/src/components/atoms/Icon/icons/MapIcon.tsx +48 -0
  106. package/src/components/atoms/Icon/icons/MicroIcon.tsx +45 -0
  107. package/src/components/atoms/Icon/icons/MoreVerticalIcon.tsx +53 -0
  108. package/src/components/atoms/Icon/icons/NightIcon.tsx +45 -0
  109. package/src/components/atoms/Icon/icons/QuotationIcon.tsx +50 -0
  110. package/src/components/atoms/Icon/icons/RowExcursion.tsx +54 -0
  111. package/src/components/atoms/Icon/icons/StopWatchIcon.tsx +45 -0
  112. package/src/components/atoms/Icon/icons/Utensils.tsx +45 -0
  113. package/src/components/atoms/Icon/icons/WalletIcon.tsx +45 -0
  114. package/src/components/atoms/Icon/icons/registry.tsx +52 -28
  115. package/src/components/atoms/Typography/Typography.tsx +22 -30
  116. package/src/components/molecules/ActionDropdown/ActionDropdown.css +23 -0
  117. package/src/components/molecules/ActionDropdown/ActionDropdown.tsx +53 -0
  118. package/src/components/molecules/DateDisplay/DateDisplay.tsx +47 -0
  119. package/src/components/molecules/FromTo/FromTo.tsx +31 -0
  120. package/src/components/molecules/TableServiceItem/DetailsCol.tsx +25 -0
  121. package/src/components/molecules/TableServiceItem/ItemCol.tsx +68 -0
  122. package/src/components/molecules/TableServiceItem/RowAccommodation.tsx +56 -0
  123. package/src/components/molecules/TableServiceItem/RowExcursion.tsx +40 -0
  124. package/src/components/molecules/TableServiceItem/RowOtherServices.tsx +50 -0
  125. package/src/components/molecules/TableServiceItem/RowTransfer.tsx +60 -0
  126. package/src/components/molecules/TableServiceItem/index.ts +24 -0
  127. package/src/components/molecules/TextWithIcon/TextWithIcon.tsx +62 -0
  128. package/src/components/molecules/TooltipDisplay/TooltipDisplay.tsx +32 -0
  129. package/src/components/organisms/CarBookingCard/index.ts +3 -0
  130. package/src/components/organisms/MultipleQuotationDocket/MultipleQuotationDocket.tsx +349 -0
  131. package/src/components/organisms/MultipleQuotationDocket/index.ts +6 -0
  132. package/src/components/organisms/Table/Table.css +185 -0
  133. package/src/components/organisms/Table/Table.tsx +273 -0
  134. package/src/components/organisms/Table/TableCell.tsx +40 -0
  135. package/src/components/organisms/Table/columns/booking-columns.tsx +118 -0
  136. package/src/components/organisms/Table/columns/detail-resume-columns.tsx +226 -0
  137. package/src/components/organisms/Table/columns/index.ts +11 -0
  138. package/src/components/organisms/Table/columns/quotation-columns.tsx +150 -0
  139. package/src/components/organisms/Table/constant.ts +31 -0
  140. package/src/components/organisms/Table/index.ts +2 -0
  141. package/src/components/ui/popover.tsx +10 -10
  142. package/src/components/ui/tooltip.tsx +45 -0
  143. package/src/styles/components/organism/multiple-quotation-docket.css +222 -0
  144. package/src/styles/components/typography.css +4 -0
@@ -0,0 +1,349 @@
1
+ import React from 'react';
2
+ import Button from '../../atoms/Button/Button';
3
+ import Chip from '../../atoms/Chip/Chip';
4
+ import Icon, { IconName } from '../../atoms/Icon/Icon';
5
+ import { Heading, Text } from '../../atoms/Typography/Typography';
6
+ import TextWithIcon from '../../molecules/TextWithIcon/TextWithIcon';
7
+ import CardContainer from '../CardContainer/CardContainer';
8
+
9
+ export type DocketServiceType =
10
+ | 'Accommodation'
11
+ | 'Transfer'
12
+ | 'Handling fee'
13
+ | 'Excursion'
14
+ | 'Other Services';
15
+
16
+ export interface DocketDetailsData {
17
+ /** Service type */
18
+ type: DocketServiceType;
19
+ /** Service name/title */
20
+ serviceName?: string;
21
+ /** Price for this service */
22
+ price: string;
23
+ /** Currency for the price */
24
+ currency: string;
25
+ /** Start date */
26
+ startDate?: string;
27
+ /** End date */
28
+ endDate?: string;
29
+ /** Number of nights */
30
+ nights?: number;
31
+ /** Client type */
32
+ clientType?: string;
33
+ /** Adults count */
34
+ adults?: number;
35
+ /** Children details */
36
+ children?: Array<{ age: number }>;
37
+ /** Room type */
38
+ roomType?: string;
39
+ /** Meal plan */
40
+ mealPlan?: string;
41
+ /** Additional details to display */
42
+ details?: Array<{
43
+ icon: IconName;
44
+ label: string;
45
+ value: string;
46
+ }>;
47
+ /** Error message to display (e.g., "Please select your second room") */
48
+ errorMessage?: string;
49
+ }
50
+
51
+ export interface MultipleQuotationDocketProps {
52
+ /** Title of the quotation */
53
+ title?: string;
54
+ /** List of service details */
55
+ services: DocketDetailsData[];
56
+ /** Total prices in different currencies */
57
+ totalPrices: Array<{ currency: string; amount: string }>;
58
+ /** Callback when "More options" is clicked */
59
+ onMoreOptionsClick?: () => void;
60
+ /** Callback when "Add new quote" is clicked */
61
+ onAddNewQuoteClick?: () => void;
62
+ /** Callback when "View" is clicked */
63
+ onViewClick?: () => void;
64
+ /** Callback when "Save" is clicked */
65
+ onSaveClick?: () => void;
66
+ /** Callback when "Book now" is clicked */
67
+ onBookNowClick?: () => void;
68
+ /** Additional CSS classes */
69
+ className?: string;
70
+ }
71
+
72
+ const getServiceIcon = (type: DocketServiceType): IconName => {
73
+ switch (type) {
74
+ case 'Accommodation':
75
+ return 'accom';
76
+ case 'Transfer':
77
+ return 'bus';
78
+ case 'Excursion':
79
+ return 'map-pin';
80
+ case 'Handling fee':
81
+ return 'wallet';
82
+ case 'Other Services':
83
+ return 'more';
84
+ default:
85
+ return 'more';
86
+ }
87
+ };
88
+
89
+ const DocketDetails: React.FC<{ data: DocketDetailsData }> = ({ data }) => {
90
+ const {
91
+ type,
92
+ serviceName,
93
+ startDate,
94
+ endDate,
95
+ nights,
96
+ clientType,
97
+ adults,
98
+ children,
99
+ roomType,
100
+ mealPlan,
101
+ details,
102
+ errorMessage,
103
+ } = data;
104
+ const icon = getServiceIcon(type);
105
+
106
+ return (
107
+ <div className="multiple-quotation-docket__details">
108
+ {errorMessage && (
109
+ <div className="multiple-quotation-docket__error">
110
+ <Text variant="bold" size="sm" color="state-error">
111
+ {errorMessage}
112
+ </Text>
113
+ </div>
114
+ )}
115
+
116
+ {serviceName && (
117
+ <div className="multiple-quotation-docket__service-name">
118
+ <Text variant="bold" size="base">
119
+ {serviceName}
120
+ </Text>
121
+ </div>
122
+ )}
123
+
124
+ {(startDate || endDate || nights) && (
125
+ <div className="multiple-quotation-docket__date-info">
126
+ {startDate && endDate && (
127
+ <div className="multiple-quotation-docket__date-range">
128
+ <TextWithIcon icon="calendar-range-outline" color="accent">
129
+ {startDate}
130
+ </TextWithIcon>
131
+ <Icon name="arrow-right-outline" size="sm" />
132
+ <TextWithIcon icon="calendar-range-outline" color="accent">
133
+ {endDate}
134
+ </TextWithIcon>
135
+ </div>
136
+ )}
137
+ {nights !== undefined && (
138
+ <TextWithIcon icon="night" color="subtle">
139
+ {nights} nights
140
+ </TextWithIcon>
141
+ )}
142
+ </div>
143
+ )}
144
+
145
+ {(clientType || adults || children) && (
146
+ <div className="multiple-quotation-docket__client-info">
147
+ {clientType && (
148
+ <div className="multiple-quotation-docket__client-type">
149
+ <Text variant="bold" size="sm" color="subtle">
150
+ Client type:
151
+ </Text>
152
+ <Text variant="medium" size="sm" color="subtle">
153
+ {clientType}
154
+ </Text>
155
+ </div>
156
+ )}
157
+
158
+ <div className="multiple-quotation-docket__guests">
159
+ {adults !== undefined && (
160
+ <TextWithIcon icon="user" color="subtle">
161
+ {adults} Adults
162
+ </TextWithIcon>
163
+ )}
164
+ {children && children.length > 0 && (
165
+ <div className="multiple-quotation-docket__children">
166
+ {children.map((child, index) => (
167
+ <div key={index} className="multiple-quotation-docket__child">
168
+ <TextWithIcon icon="user" color="subtle">
169
+ <span>
170
+ <span>1 Child </span>
171
+ <span className="multiple-quotation-docket__child-age">
172
+ ({child.age} y.o)
173
+ </span>
174
+ </span>
175
+ </TextWithIcon>
176
+ {index < children.length - 1 && (
177
+ <div className="multiple-quotation-docket__divider" />
178
+ )}
179
+ </div>
180
+ ))}
181
+ </div>
182
+ )}
183
+ </div>
184
+ </div>
185
+ )}
186
+
187
+ {(roomType || mealPlan) && (
188
+ <div className="multiple-quotation-docket__room-info">
189
+ {roomType && (
190
+ <TextWithIcon icon="accom" color="subtle">
191
+ {roomType}
192
+ </TextWithIcon>
193
+ )}
194
+ {mealPlan && (
195
+ <div className="multiple-quotation-docket__meal-plan">
196
+ <TextWithIcon icon="utensils" color="subtle">
197
+ Meal-Plan
198
+ </TextWithIcon>
199
+ <div className="multiple-quotation-docket__divider" />
200
+ <Text variant="medium" size="sm" color="subtle">
201
+ {mealPlan}
202
+ </Text>
203
+ </div>
204
+ )}
205
+ </div>
206
+ )}
207
+
208
+ {details && details.length > 0 && (
209
+ <div className="multiple-quotation-docket__additional-details">
210
+ {details.map((detail, index) => (
211
+ <TextWithIcon key={index} icon={detail.icon} color="subtle">
212
+ {detail.label}: {detail.value}
213
+ </TextWithIcon>
214
+ ))}
215
+ </div>
216
+ )}
217
+ </div>
218
+ );
219
+ };
220
+
221
+ export const MultipleQuotationDocket: React.FC<MultipleQuotationDocketProps> = ({
222
+ title = 'Your quotation',
223
+ services,
224
+ totalPrices,
225
+ onMoreOptionsClick,
226
+ onAddNewQuoteClick,
227
+ onViewClick,
228
+ onSaveClick,
229
+ onBookNowClick,
230
+ className = '',
231
+ }) => {
232
+ return (
233
+ <CardContainer spacing="chill" className={`multiple-quotation-docket ${className}`}>
234
+ {/* Header */}
235
+ <div className="multiple-quotation-docket__header">
236
+ <div className="multiple-quotation-docket__title">
237
+ <Icon name="quotation" size="lg" />
238
+ <Heading
239
+ level={4}
240
+ variant="bold"
241
+ className="multiple-quotation-docket__title-text">
242
+ {title}
243
+ </Heading>
244
+ </div>
245
+ {onMoreOptionsClick && (
246
+ <Chip
247
+ type="outline"
248
+ color="neutral"
249
+ size="sm"
250
+ trailingIcon="chevron-down"
251
+ onClick={onMoreOptionsClick}
252
+ className="multiple-quotation-docket__more-options">
253
+ More options
254
+ </Chip>
255
+ )}
256
+ </div>
257
+
258
+ {/* Services List */}
259
+ <div className="multiple-quotation-docket__services">
260
+ {services.map((service, index) => (
261
+ <div key={index} className="multiple-quotation-docket__service">
262
+ <div className="multiple-quotation-docket__service-header">
263
+ <div className="multiple-quotation-docket__service-title">
264
+ <div className="multiple-quotation-docket__section-bar" />
265
+ <Icon
266
+ name={getServiceIcon(service.type)}
267
+ size="sm"
268
+ color="var(--color-icon-branded, #0f7173)"
269
+ />
270
+ <Text variant="bold" size="sm" color="accent">
271
+ {service.type}
272
+ </Text>
273
+ </div>
274
+ <Chip type="filled" color="accent" size="sm">
275
+ {service.currency} {service.price}
276
+ </Chip>
277
+ </div>
278
+ <DocketDetails data={service} />
279
+ </div>
280
+ ))}
281
+ </div>
282
+
283
+ {/* Total Section */}
284
+ {totalPrices.length > 0 && (
285
+ <div className="multiple-quotation-docket__total">
286
+ <div className="multiple-quotation-docket__total-line" />
287
+ <div className="multiple-quotation-docket__total-content">
288
+ <Text variant="bold" size="sm">
289
+ Total :
290
+ </Text>
291
+ <div className="multiple-quotation-docket__total-prices">
292
+ {totalPrices.map((total, index) => (
293
+ <Text key={index} variant="bold" size="sm">
294
+ {total.currency} {total.amount}
295
+ </Text>
296
+ ))}
297
+ </div>
298
+ </div>
299
+ <div className="multiple-quotation-docket__total-line" />
300
+ </div>
301
+ )}
302
+
303
+ {/* Actions */}
304
+ <div className="multiple-quotation-docket__actions">
305
+ {onAddNewQuoteClick && (
306
+ <Button
307
+ variant="outline-secondary"
308
+ size="sm"
309
+ leadingIcon="plus"
310
+ onClick={onAddNewQuoteClick}
311
+ className="multiple-quotation-docket__action-button">
312
+ Add new quote
313
+ </Button>
314
+ )}
315
+ <div className="multiple-quotation-docket__action-group">
316
+ {onViewClick && (
317
+ <Button
318
+ variant="outline-secondary"
319
+ size="sm"
320
+ onClick={onViewClick}
321
+ className="multiple-quotation-docket__action-button multiple-quotation-docket__action-button--flex">
322
+ View
323
+ </Button>
324
+ )}
325
+ {onSaveClick && (
326
+ <Button
327
+ variant="outline-secondary"
328
+ size="sm"
329
+ onClick={onSaveClick}
330
+ className="multiple-quotation-docket__action-button multiple-quotation-docket__action-button--flex">
331
+ Save
332
+ </Button>
333
+ )}
334
+ {onBookNowClick && (
335
+ <Button
336
+ variant="primary"
337
+ size="sm"
338
+ onClick={onBookNowClick}
339
+ className="multiple-quotation-docket__action-button multiple-quotation-docket__action-button--book">
340
+ Book now
341
+ </Button>
342
+ )}
343
+ </div>
344
+ </div>
345
+ </CardContainer>
346
+ );
347
+ };
348
+
349
+ export default MultipleQuotationDocket;
@@ -0,0 +1,6 @@
1
+ export { MultipleQuotationDocket, default } from './MultipleQuotationDocket';
2
+ export type {
3
+ DocketDetailsData,
4
+ DocketServiceType,
5
+ MultipleQuotationDocketProps,
6
+ } from './MultipleQuotationDocket';
@@ -0,0 +1,185 @@
1
+ .table-container {
2
+ overflow-y: hidden;
3
+ overflow-x: auto;
4
+ max-width: 1680px;
5
+ &.table-container--no-total {
6
+ padding-bottom: var(--spacing-padding-px-4);
7
+ }
8
+ }
9
+
10
+ .table {
11
+ width: 100%;
12
+ border-collapse: collapse;
13
+ border-spacing: 0;
14
+ th,
15
+ td {
16
+ padding-inline: var(--spacing-padding-px-4);
17
+ }
18
+ }
19
+ .table__header {
20
+ th {
21
+ @apply h-11 text-left;
22
+ background-color: var(--color-elevation-level-2);
23
+ }
24
+ }
25
+ .table__body {
26
+ tr {
27
+ @apply transition-colors duration-200;
28
+ border-top: solid 1px var(--color-surface-300);
29
+ &:hover:not(.table__no-hover) {
30
+ background-color: var(--color-elevation-state-hover-subtle);
31
+ }
32
+ &:first-child {
33
+ border-top: none;
34
+ }
35
+ &.table__row-yellow {
36
+ background-color: var(--color-yellow-50);
37
+ border: 1px solid transparent;
38
+ position: relative;
39
+ &::after {
40
+ content: '';
41
+ position: absolute;
42
+ inset: -1px;
43
+ pointer-events: none;
44
+ background-image:
45
+ repeating-linear-gradient(
46
+ to right,
47
+ var(--color-yellow-600) 0,
48
+ var(--color-yellow-600) 8px,
49
+ transparent 8px,
50
+ transparent 16px
51
+ ),
52
+ repeating-linear-gradient(
53
+ to right,
54
+ var(--color-yellow-600) 0,
55
+ var(--color-yellow-600) 8px,
56
+ transparent 8px,
57
+ transparent 16px
58
+ ),
59
+ repeating-linear-gradient(
60
+ to bottom,
61
+ var(--color-yellow-600) 0,
62
+ var(--color-yellow-600) 8px,
63
+ transparent 8px,
64
+ transparent 16px
65
+ ),
66
+ repeating-linear-gradient(
67
+ to bottom,
68
+ var(--color-yellow-600) 0,
69
+ var(--color-yellow-600) 8px,
70
+ transparent 8px,
71
+ transparent 16px
72
+ );
73
+ background-size:
74
+ 100% 1px,
75
+ 100% 1px,
76
+ 1px 100%,
77
+ 1px 100%;
78
+ background-position: top, bottom, left, right;
79
+ background-repeat: repeat-x, repeat-x, repeat-y, repeat-y;
80
+ }
81
+ &:hover {
82
+ background-color: var(--color-yellow-100);
83
+ }
84
+ & + tr {
85
+ border-top: none;
86
+ }
87
+ }
88
+ &.table__row-border-0 {
89
+ border-top: none;
90
+ &:not(:nth-of-type(1)) {
91
+ td {
92
+ vertical-align: top;
93
+ padding-top: 0;
94
+ }
95
+ }
96
+ }
97
+ }
98
+ td {
99
+ padding-block: var(--spacing-padding-px-4);
100
+ &.table__cell-nested {
101
+ padding: 0;
102
+ overflow: hidden;
103
+ tr:last-child {
104
+ border-bottom: none;
105
+ }
106
+ }
107
+ }
108
+ .table__nested-wrapper {
109
+ overflow: hidden;
110
+ display: block;
111
+ }
112
+ .button__icon {
113
+ @apply transition-transform duration-200;
114
+ }
115
+ }
116
+
117
+ .table__row-nested {
118
+ border-left: solid 4px var(--color-primary-brand);
119
+ }
120
+
121
+ .table__button-expanded {
122
+ .button__icon {
123
+ @apply rotate-180;
124
+ }
125
+ }
126
+
127
+ .table__row-clickable {
128
+ cursor: pointer;
129
+ }
130
+
131
+ .table__button {
132
+ width: 136px;
133
+ }
134
+
135
+ .table__row-grouped {
136
+ > td {
137
+ padding: 0;
138
+ }
139
+ }
140
+
141
+ .table__total-container {
142
+ max-width: 1680px;
143
+ }
144
+
145
+ .table__total {
146
+ tr {
147
+ border: 1px solid transparent;
148
+ position: relative;
149
+ &::after {
150
+ content: '';
151
+ position: absolute;
152
+ inset: -1px;
153
+ pointer-events: none;
154
+ background-image:
155
+ repeating-linear-gradient(
156
+ to right,
157
+ var(--divider-color-default) 0,
158
+ var(--divider-color-default) 12px,
159
+ transparent 12px,
160
+ transparent 24px
161
+ ),
162
+ repeating-linear-gradient(
163
+ to right,
164
+ var(--divider-color-default) 0,
165
+ var(--divider-color-default) 12px,
166
+ transparent 12px,
167
+ transparent 24px
168
+ );
169
+ background-size:
170
+ 100% 1px,
171
+ 100% 1px;
172
+ background-position: top, bottom;
173
+ background-repeat: repeat-x, repeat-x;
174
+ }
175
+ }
176
+ td {
177
+ padding-block: var(--spacing-padding-px-4);
178
+ &:last-child {
179
+ width: 160px;
180
+ @media (min-width: 1680px) {
181
+ width: var(--last-column-width);
182
+ }
183
+ }
184
+ }
185
+ }