@shortstravelmgmt/component-lib 0.3.0-canary.59.gc44efdc → 0.3.0-canary.67.gf2fa1ca
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/index.d.ts +625 -98
- package/dist/index.esm.js +2854 -1591
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +2863 -1591
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/styles.css.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -13,6 +13,18 @@ declare const brandColors: {
|
|
|
13
13
|
readonly blue: "#19345F";
|
|
14
14
|
readonly blueDeep: "#0C1E3E";
|
|
15
15
|
readonly blueTint: "#E4F1F8";
|
|
16
|
+
readonly stmBlue: "#054F8E";
|
|
17
|
+
};
|
|
18
|
+
declare const navyColors: {
|
|
19
|
+
readonly navy900: "#0C1E3E";
|
|
20
|
+
readonly navy800: "#122A4F";
|
|
21
|
+
readonly navy700: "#19345F";
|
|
22
|
+
readonly navy600: "#2D4A6A";
|
|
23
|
+
};
|
|
24
|
+
declare const tintColors: {
|
|
25
|
+
readonly tint100: "#E4F1F8";
|
|
26
|
+
readonly tint200: "#B8D8E8";
|
|
27
|
+
readonly tint300: "#7EB4C8";
|
|
16
28
|
};
|
|
17
29
|
declare const primaryColors: {
|
|
18
30
|
readonly primary: "#19345F";
|
|
@@ -30,6 +42,8 @@ declare const neutralColors: {
|
|
|
30
42
|
readonly tableBorder: "#CFDBEA";
|
|
31
43
|
readonly border: "#E6EDF5";
|
|
32
44
|
readonly borderDark: "#CFDBEA";
|
|
45
|
+
readonly line: "#DCE5EF";
|
|
46
|
+
readonly lineStrong: "#C4D3E2";
|
|
33
47
|
readonly white: "#FFFFFF";
|
|
34
48
|
};
|
|
35
49
|
declare const textColors: {
|
|
@@ -39,6 +53,7 @@ declare const textColors: {
|
|
|
39
53
|
readonly stone: "#56687F";
|
|
40
54
|
readonly pending: "#AEBBCB";
|
|
41
55
|
readonly error: "#940000";
|
|
56
|
+
readonly ink400: "#71839A";
|
|
42
57
|
};
|
|
43
58
|
declare const statusColors: {
|
|
44
59
|
readonly success: "#138660";
|
|
@@ -71,8 +86,8 @@ declare const teamColors: {
|
|
|
71
86
|
readonly mixed: "#D1C1C3";
|
|
72
87
|
};
|
|
73
88
|
declare const travelColors: {
|
|
74
|
-
readonly limoBackground: "#
|
|
75
|
-
readonly limoForeground: "#
|
|
89
|
+
readonly limoBackground: "#1C1C1C";
|
|
90
|
+
readonly limoForeground: "#FFFFFF";
|
|
76
91
|
readonly busBackground: "#FEF3C7";
|
|
77
92
|
readonly busForeground: "#D97706";
|
|
78
93
|
};
|
|
@@ -120,6 +135,9 @@ declare const vendorColors: {
|
|
|
120
135
|
};
|
|
121
136
|
declare const gradients: {
|
|
122
137
|
readonly avatar: "linear-gradient(135deg, #19345F 0%, #00BCD0 100%)";
|
|
138
|
+
readonly cyan: "linear-gradient(90deg, #00BCD0, #00AEEF)";
|
|
139
|
+
readonly navy: "linear-gradient(160deg, #143462 0%, #0C1E3E 70%)";
|
|
140
|
+
readonly hero: "linear-gradient(135deg, #0E2447 0%, #071730 100%)";
|
|
123
141
|
};
|
|
124
142
|
declare const alertTokens: {
|
|
125
143
|
readonly primary: {
|
|
@@ -143,6 +161,28 @@ declare const alertTokens: {
|
|
|
143
161
|
readonly border: "#940000";
|
|
144
162
|
};
|
|
145
163
|
};
|
|
164
|
+
declare const alertBandTokens: {
|
|
165
|
+
readonly primary: {
|
|
166
|
+
readonly accent: "#00BCD0";
|
|
167
|
+
readonly bg: "#E2F7FA";
|
|
168
|
+
readonly ink: "#1B2A41";
|
|
169
|
+
};
|
|
170
|
+
readonly success: {
|
|
171
|
+
readonly accent: "#2E9E6B";
|
|
172
|
+
readonly bg: "#E2F0EC";
|
|
173
|
+
readonly ink: "#0F7350";
|
|
174
|
+
};
|
|
175
|
+
readonly warning: {
|
|
176
|
+
readonly accent: "#E8A13A";
|
|
177
|
+
readonly bg: "#FFF7ED";
|
|
178
|
+
readonly ink: "#9F5500";
|
|
179
|
+
};
|
|
180
|
+
readonly error: {
|
|
181
|
+
readonly accent: "#D7503A";
|
|
182
|
+
readonly bg: "#FEF2F2";
|
|
183
|
+
readonly ink: "#C0402C";
|
|
184
|
+
};
|
|
185
|
+
};
|
|
146
186
|
declare const semanticColors: {
|
|
147
187
|
readonly fg: {
|
|
148
188
|
readonly 1: "#1B2A41";
|
|
@@ -252,6 +292,18 @@ declare const lightTheme: {
|
|
|
252
292
|
readonly blue: "#19345F";
|
|
253
293
|
readonly blueDeep: "#0C1E3E";
|
|
254
294
|
readonly blueTint: "#E4F1F8";
|
|
295
|
+
readonly stmBlue: "#054F8E";
|
|
296
|
+
};
|
|
297
|
+
readonly tint: {
|
|
298
|
+
readonly tint100: "#E4F1F8";
|
|
299
|
+
readonly tint200: "#B8D8E8";
|
|
300
|
+
readonly tint300: "#7EB4C8";
|
|
301
|
+
};
|
|
302
|
+
readonly navy: {
|
|
303
|
+
readonly navy900: "#0C1E3E";
|
|
304
|
+
readonly navy800: "#122A4F";
|
|
305
|
+
readonly navy700: "#19345F";
|
|
306
|
+
readonly navy600: "#2D4A6A";
|
|
255
307
|
};
|
|
256
308
|
readonly primary: {
|
|
257
309
|
readonly primary: "#19345F";
|
|
@@ -269,6 +321,8 @@ declare const lightTheme: {
|
|
|
269
321
|
readonly tableBorder: "#CFDBEA";
|
|
270
322
|
readonly border: "#E6EDF5";
|
|
271
323
|
readonly borderDark: "#CFDBEA";
|
|
324
|
+
readonly line: "#DCE5EF";
|
|
325
|
+
readonly lineStrong: "#C4D3E2";
|
|
272
326
|
readonly white: "#FFFFFF";
|
|
273
327
|
};
|
|
274
328
|
readonly text: {
|
|
@@ -278,6 +332,7 @@ declare const lightTheme: {
|
|
|
278
332
|
readonly stone: "#56687F";
|
|
279
333
|
readonly pending: "#AEBBCB";
|
|
280
334
|
readonly error: "#940000";
|
|
335
|
+
readonly ink400: "#71839A";
|
|
281
336
|
};
|
|
282
337
|
readonly status: {
|
|
283
338
|
readonly success: "#138660";
|
|
@@ -310,8 +365,8 @@ declare const lightTheme: {
|
|
|
310
365
|
readonly mixed: "#D1C1C3";
|
|
311
366
|
};
|
|
312
367
|
readonly travel: {
|
|
313
|
-
readonly limoBackground: "#
|
|
314
|
-
readonly limoForeground: "#
|
|
368
|
+
readonly limoBackground: "#1C1C1C";
|
|
369
|
+
readonly limoForeground: "#FFFFFF";
|
|
315
370
|
readonly busBackground: "#FEF3C7";
|
|
316
371
|
readonly busForeground: "#D97706";
|
|
317
372
|
};
|
|
@@ -379,6 +434,28 @@ declare const lightTheme: {
|
|
|
379
434
|
readonly border: "#940000";
|
|
380
435
|
};
|
|
381
436
|
};
|
|
437
|
+
readonly alertBand: {
|
|
438
|
+
readonly primary: {
|
|
439
|
+
readonly accent: "#00BCD0";
|
|
440
|
+
readonly bg: "#E2F7FA";
|
|
441
|
+
readonly ink: "#1B2A41";
|
|
442
|
+
};
|
|
443
|
+
readonly success: {
|
|
444
|
+
readonly accent: "#2E9E6B";
|
|
445
|
+
readonly bg: "#E2F0EC";
|
|
446
|
+
readonly ink: "#0F7350";
|
|
447
|
+
};
|
|
448
|
+
readonly warning: {
|
|
449
|
+
readonly accent: "#E8A13A";
|
|
450
|
+
readonly bg: "#FFF7ED";
|
|
451
|
+
readonly ink: "#9F5500";
|
|
452
|
+
};
|
|
453
|
+
readonly error: {
|
|
454
|
+
readonly accent: "#D7503A";
|
|
455
|
+
readonly bg: "#FEF2F2";
|
|
456
|
+
readonly ink: "#C0402C";
|
|
457
|
+
};
|
|
458
|
+
};
|
|
382
459
|
readonly semantic: {
|
|
383
460
|
readonly fg: {
|
|
384
461
|
readonly 1: "#1B2A41";
|
|
@@ -487,6 +564,9 @@ declare const lightTheme: {
|
|
|
487
564
|
};
|
|
488
565
|
readonly gradients: {
|
|
489
566
|
readonly avatar: "linear-gradient(135deg, #19345F 0%, #00BCD0 100%)";
|
|
567
|
+
readonly cyan: "linear-gradient(90deg, #00BCD0, #00AEEF)";
|
|
568
|
+
readonly navy: "linear-gradient(160deg, #143462 0%, #0C1E3E 70%)";
|
|
569
|
+
readonly hero: "linear-gradient(135deg, #0E2447 0%, #071730 100%)";
|
|
490
570
|
};
|
|
491
571
|
};
|
|
492
572
|
declare const darkTheme: {
|
|
@@ -519,6 +599,8 @@ declare const darkTheme: {
|
|
|
519
599
|
readonly tableBorder: "#4a4a4a";
|
|
520
600
|
readonly border: "#3a3a3a";
|
|
521
601
|
readonly borderDark: "#4a4a4a";
|
|
602
|
+
readonly line: "#3a3a3a";
|
|
603
|
+
readonly lineStrong: "#4a4a4a";
|
|
522
604
|
readonly white: "#1a1a1a";
|
|
523
605
|
};
|
|
524
606
|
readonly text: {
|
|
@@ -528,6 +610,7 @@ declare const darkTheme: {
|
|
|
528
610
|
readonly stone: "#808080";
|
|
529
611
|
readonly pending: "#606060";
|
|
530
612
|
readonly error: "#ff6b6b";
|
|
613
|
+
readonly ink400: "#808080";
|
|
531
614
|
};
|
|
532
615
|
readonly semantic: {
|
|
533
616
|
readonly fg: {
|
|
@@ -560,6 +643,18 @@ declare const darkTheme: {
|
|
|
560
643
|
readonly blue: "#19345F";
|
|
561
644
|
readonly blueDeep: "#0C1E3E";
|
|
562
645
|
readonly blueTint: "#E4F1F8";
|
|
646
|
+
readonly stmBlue: "#054F8E";
|
|
647
|
+
};
|
|
648
|
+
readonly tint: {
|
|
649
|
+
readonly tint100: "#E4F1F8";
|
|
650
|
+
readonly tint200: "#B8D8E8";
|
|
651
|
+
readonly tint300: "#7EB4C8";
|
|
652
|
+
};
|
|
653
|
+
readonly navy: {
|
|
654
|
+
readonly navy900: "#0C1E3E";
|
|
655
|
+
readonly navy800: "#122A4F";
|
|
656
|
+
readonly navy700: "#19345F";
|
|
657
|
+
readonly navy600: "#2D4A6A";
|
|
563
658
|
};
|
|
564
659
|
readonly status: {
|
|
565
660
|
readonly success: "#138660";
|
|
@@ -580,8 +675,8 @@ declare const darkTheme: {
|
|
|
580
675
|
readonly mixed: "#D1C1C3";
|
|
581
676
|
};
|
|
582
677
|
readonly travel: {
|
|
583
|
-
readonly limoBackground: "#
|
|
584
|
-
readonly limoForeground: "#
|
|
678
|
+
readonly limoBackground: "#1C1C1C";
|
|
679
|
+
readonly limoForeground: "#FFFFFF";
|
|
585
680
|
readonly busBackground: "#FEF3C7";
|
|
586
681
|
readonly busForeground: "#D97706";
|
|
587
682
|
};
|
|
@@ -649,6 +744,28 @@ declare const darkTheme: {
|
|
|
649
744
|
readonly border: "#940000";
|
|
650
745
|
};
|
|
651
746
|
};
|
|
747
|
+
readonly alertBand: {
|
|
748
|
+
readonly primary: {
|
|
749
|
+
readonly accent: "#00BCD0";
|
|
750
|
+
readonly bg: "#E2F7FA";
|
|
751
|
+
readonly ink: "#1B2A41";
|
|
752
|
+
};
|
|
753
|
+
readonly success: {
|
|
754
|
+
readonly accent: "#2E9E6B";
|
|
755
|
+
readonly bg: "#E2F0EC";
|
|
756
|
+
readonly ink: "#0F7350";
|
|
757
|
+
};
|
|
758
|
+
readonly warning: {
|
|
759
|
+
readonly accent: "#E8A13A";
|
|
760
|
+
readonly bg: "#FFF7ED";
|
|
761
|
+
readonly ink: "#9F5500";
|
|
762
|
+
};
|
|
763
|
+
readonly error: {
|
|
764
|
+
readonly accent: "#D7503A";
|
|
765
|
+
readonly bg: "#FEF2F2";
|
|
766
|
+
readonly ink: "#C0402C";
|
|
767
|
+
};
|
|
768
|
+
};
|
|
652
769
|
};
|
|
653
770
|
readonly typography: {
|
|
654
771
|
readonly fontFamily: {
|
|
@@ -730,6 +847,9 @@ declare const darkTheme: {
|
|
|
730
847
|
};
|
|
731
848
|
readonly gradients: {
|
|
732
849
|
readonly avatar: "linear-gradient(135deg, #19345F 0%, #00BCD0 100%)";
|
|
850
|
+
readonly cyan: "linear-gradient(90deg, #00BCD0, #00AEEF)";
|
|
851
|
+
readonly navy: "linear-gradient(160deg, #143462 0%, #0C1E3E 70%)";
|
|
852
|
+
readonly hero: "linear-gradient(135deg, #0E2447 0%, #071730 100%)";
|
|
733
853
|
};
|
|
734
854
|
};
|
|
735
855
|
/**
|
|
@@ -739,6 +859,8 @@ declare const darkTheme: {
|
|
|
739
859
|
interface Theme {
|
|
740
860
|
colors: {
|
|
741
861
|
brand: typeof brandColors;
|
|
862
|
+
tint: typeof tintColors;
|
|
863
|
+
navy: typeof navyColors;
|
|
742
864
|
primary: {
|
|
743
865
|
primary: string;
|
|
744
866
|
primaryDark: string;
|
|
@@ -755,6 +877,8 @@ interface Theme {
|
|
|
755
877
|
tableBorder: string;
|
|
756
878
|
border: string;
|
|
757
879
|
borderDark: string;
|
|
880
|
+
line: string;
|
|
881
|
+
lineStrong: string;
|
|
758
882
|
white: string;
|
|
759
883
|
};
|
|
760
884
|
text: {
|
|
@@ -764,6 +888,7 @@ interface Theme {
|
|
|
764
888
|
stone: string;
|
|
765
889
|
pending: string;
|
|
766
890
|
error: string;
|
|
891
|
+
ink400: string;
|
|
767
892
|
};
|
|
768
893
|
status: typeof statusColors;
|
|
769
894
|
accent: {
|
|
@@ -773,6 +898,7 @@ interface Theme {
|
|
|
773
898
|
travel: typeof travelColors;
|
|
774
899
|
vendor: typeof vendorColors;
|
|
775
900
|
alert: typeof alertTokens;
|
|
901
|
+
alertBand: typeof alertBandTokens;
|
|
776
902
|
semantic: {
|
|
777
903
|
fg: {
|
|
778
904
|
1: string;
|
|
@@ -1073,10 +1199,10 @@ declare function lineClamp(lines: number): CSSObject;
|
|
|
1073
1199
|
*/
|
|
1074
1200
|
declare function styled<T extends Record<string, CSSObject>>(factory: (theme: Theme) => T): (theme: Theme) => T;
|
|
1075
1201
|
|
|
1076
|
-
type AlertVariant
|
|
1202
|
+
type AlertVariant = 'primary' | 'success' | 'warning' | 'error';
|
|
1077
1203
|
interface AlertProps {
|
|
1078
1204
|
/** Visual style variant */
|
|
1079
|
-
variant?: AlertVariant
|
|
1205
|
+
variant?: AlertVariant;
|
|
1080
1206
|
/** Optional title for the alert */
|
|
1081
1207
|
title?: string;
|
|
1082
1208
|
/** Content of the alert */
|
|
@@ -1094,42 +1220,6 @@ interface AlertProps {
|
|
|
1094
1220
|
*/
|
|
1095
1221
|
declare const Alert: React__default.FC<AlertProps>;
|
|
1096
1222
|
|
|
1097
|
-
type AlertVariant = 'primary' | 'success' | 'warning' | 'error';
|
|
1098
|
-
|
|
1099
|
-
interface AlertStyledProps {
|
|
1100
|
-
/** Visual style variant */
|
|
1101
|
-
variant?: AlertVariant;
|
|
1102
|
-
/** Optional title for the alert */
|
|
1103
|
-
title?: string;
|
|
1104
|
-
/** Content of the alert */
|
|
1105
|
-
children: React__default.ReactNode;
|
|
1106
|
-
/** Whether the alert can be dismissed */
|
|
1107
|
-
dismissible?: boolean;
|
|
1108
|
-
/** Callback when dismiss button is clicked */
|
|
1109
|
-
onDismiss?: () => void;
|
|
1110
|
-
/** Additional inline styles */
|
|
1111
|
-
style?: React__default.CSSProperties;
|
|
1112
|
-
/** Data test attribute for testing */
|
|
1113
|
-
'data-test'?: string;
|
|
1114
|
-
}
|
|
1115
|
-
/**
|
|
1116
|
-
* Alert component for displaying important messages.
|
|
1117
|
-
* Uses CSS-in-JS styling with theme support.
|
|
1118
|
-
* Supports primary, success, warning, and error variants.
|
|
1119
|
-
*
|
|
1120
|
-
* @example
|
|
1121
|
-
* ```tsx
|
|
1122
|
-
* <AlertStyled variant="success" title="Success!">
|
|
1123
|
-
* Your changes have been saved.
|
|
1124
|
-
* </AlertStyled>
|
|
1125
|
-
*
|
|
1126
|
-
* <AlertStyled variant="error" dismissible onDismiss={() => setShow(false)}>
|
|
1127
|
-
* An error occurred. Please try again.
|
|
1128
|
-
* </AlertStyled>
|
|
1129
|
-
* ```
|
|
1130
|
-
*/
|
|
1131
|
-
declare const AlertStyled: React__default.FC<AlertStyledProps>;
|
|
1132
|
-
|
|
1133
1223
|
type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
1134
1224
|
interface AvatarProps extends HTMLAttributes<HTMLDivElement> {
|
|
1135
1225
|
/** Image source URL */
|
|
@@ -1161,7 +1251,11 @@ interface AvatarGroupProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
1161
1251
|
*/
|
|
1162
1252
|
declare const AvatarGroup: React__default.FC<AvatarGroupProps>;
|
|
1163
1253
|
|
|
1164
|
-
|
|
1254
|
+
/**
|
|
1255
|
+
* `men` / `women` / `mixed` are the team-group colours (theme `team`), for a
|
|
1256
|
+
* sport code such as "MBB" beside a team's name.
|
|
1257
|
+
*/
|
|
1258
|
+
type BadgeVariant = 'default' | 'success' | 'warning' | 'error' | 'info' | 'men' | 'women' | 'mixed';
|
|
1165
1259
|
type BadgeSize = 'sm' | 'md';
|
|
1166
1260
|
interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {
|
|
1167
1261
|
/** Visual style variant */
|
|
@@ -2771,6 +2865,33 @@ interface PageHeaderProps {
|
|
|
2771
2865
|
*/
|
|
2772
2866
|
declare const PageHeader: React__default.FC<PageHeaderProps>;
|
|
2773
2867
|
|
|
2868
|
+
interface PageHeaderSubsectionProps {
|
|
2869
|
+
/** The section the page lives under, e.g. `Team Management` */
|
|
2870
|
+
sectionName: string;
|
|
2871
|
+
/** The page's own name, rendered as the page heading, e.g. `MBB - Baseball` */
|
|
2872
|
+
pageName: ReactNode;
|
|
2873
|
+
/** Supporting content under the page name, e.g. travel dates */
|
|
2874
|
+
meta?: ReactNode;
|
|
2875
|
+
/** Called by the back arrow. When omitted the arrow returns to the prior page in browser history. */
|
|
2876
|
+
onBack?: () => void;
|
|
2877
|
+
/** Accessible text for the back arrow */
|
|
2878
|
+
backLabel?: string;
|
|
2879
|
+
/** Hides the back arrow entirely */
|
|
2880
|
+
hideBack?: boolean;
|
|
2881
|
+
/** Right side actions */
|
|
2882
|
+
actions?: ReactNode;
|
|
2883
|
+
/** Additional CSS class */
|
|
2884
|
+
className?: string;
|
|
2885
|
+
}
|
|
2886
|
+
/**
|
|
2887
|
+
* The header for a page that sits inside a section: a back arrow leading the
|
|
2888
|
+
* section name, with the page name as the heading below. The arrow returns to the prior page.
|
|
2889
|
+
*/
|
|
2890
|
+
declare const PageHeaderSubsection: {
|
|
2891
|
+
({ sectionName, pageName, meta, onBack, backLabel, hideBack, actions, className, }: PageHeaderSubsectionProps): React.JSX.Element;
|
|
2892
|
+
displayName: string;
|
|
2893
|
+
};
|
|
2894
|
+
|
|
2774
2895
|
/** A rendered slot in the page list: either a page number or a truncation gap. */
|
|
2775
2896
|
type PaginationItem = number | 'ellipsis';
|
|
2776
2897
|
interface PaginationProps {
|
|
@@ -3136,26 +3257,150 @@ interface SupplierTypeToggleProps {
|
|
|
3136
3257
|
*/
|
|
3137
3258
|
declare const SupplierTypeToggle: ({ value, defaultValue, onChange, disabled, className, }: SupplierTypeToggleProps) => React.JSX.Element;
|
|
3138
3259
|
|
|
3139
|
-
interface
|
|
3140
|
-
/**
|
|
3260
|
+
interface SportCodeBadgeProps {
|
|
3261
|
+
/** The team's sport code, e.g. "MBB", "WSO", "XCC". */
|
|
3262
|
+
code: string;
|
|
3263
|
+
/** Additional CSS class. */
|
|
3264
|
+
className?: string;
|
|
3265
|
+
}
|
|
3266
|
+
/** The team group a sport code belongs to: its first letter is M(en), W(omen) or X (mixed). */
|
|
3267
|
+
declare const sportCodeVariant: (code: string) => BadgeVariant;
|
|
3268
|
+
/**
|
|
3269
|
+
* A team's sport code as the standard pill Badge in its team-group colour —
|
|
3270
|
+
* men blue, women coral, mixed mauve.
|
|
3271
|
+
*/
|
|
3272
|
+
declare const SportCodeBadge: React__default.FC<SportCodeBadgeProps>;
|
|
3273
|
+
|
|
3274
|
+
interface TabPanelStackPanel {
|
|
3275
|
+
/** Matches the TabStrip tab that shows it. */
|
|
3141
3276
|
id: string;
|
|
3277
|
+
/** The panel's content. */
|
|
3278
|
+
content: ReactNode;
|
|
3279
|
+
}
|
|
3280
|
+
interface TabPanelStackProps {
|
|
3281
|
+
/** Every tab's panel, rendered at once so the stack can size to the widest. */
|
|
3282
|
+
panels: TabPanelStackPanel[];
|
|
3283
|
+
/** The panel to show. */
|
|
3284
|
+
activeId: string;
|
|
3285
|
+
/** Prefix for the panels' ids, for a TabStrip's `controls`. */
|
|
3286
|
+
idPrefix?: string;
|
|
3287
|
+
/** Additional CSS class. */
|
|
3288
|
+
className?: string;
|
|
3289
|
+
}
|
|
3290
|
+
/**
|
|
3291
|
+
* Tab panels that hold one width: all of them render in the same grid cell,
|
|
3292
|
+
* the inactive ones hidden, so the box is as wide as the widest
|
|
3293
|
+
* panel and does not resize when the tab changes. Pair it with a TabStrip —
|
|
3294
|
+
* made for tabbed dropdowns (a team picker's Men / Women / Mixed lists), whose
|
|
3295
|
+
* popover otherwise shrink-wraps each list in turn.
|
|
3296
|
+
*
|
|
3297
|
+
* Hidden panels are `visibility: hidden`, which also takes them out of the
|
|
3298
|
+
* focus order and the accessibility tree (`aria-hidden` says so explicitly),
|
|
3299
|
+
* so only the visible one can be read or tabbed to.
|
|
3300
|
+
*/
|
|
3301
|
+
declare const TabPanelStack: React__default.FC<TabPanelStackProps>;
|
|
3302
|
+
|
|
3303
|
+
interface TeamPickerTeam {
|
|
3304
|
+
/** Sport code, e.g. "MBB" — the team's value, and its badge. */
|
|
3305
|
+
code: string;
|
|
3306
|
+
/** Team name, e.g. "Men's Basketball". */
|
|
3307
|
+
name: string;
|
|
3308
|
+
}
|
|
3309
|
+
interface TeamPickerProps {
|
|
3310
|
+
/** Teams by group key ("men", "women", "mixed"). */
|
|
3311
|
+
groups: Record<string, TeamPickerTeam[]>;
|
|
3312
|
+
/** Tab order; defaults to men, women, mixed, then any other keys. */
|
|
3313
|
+
groupOrder?: string[];
|
|
3314
|
+
/** The group shown; uncontrolled (first group) when left out. */
|
|
3315
|
+
activeGroup?: string;
|
|
3316
|
+
/** Called when the reader switches group. */
|
|
3317
|
+
onGroupChange?: (group: string) => void;
|
|
3318
|
+
/** `single` picks one team; `multiple` toggles teams with checkboxes. */
|
|
3319
|
+
mode?: 'single' | 'multiple';
|
|
3320
|
+
/** Codes currently chosen. */
|
|
3321
|
+
selected?: string[];
|
|
3322
|
+
/** Single: a team was picked. */
|
|
3323
|
+
onSelect?: (code: string) => void;
|
|
3324
|
+
/** Multiple: a team's checkbox was toggled. */
|
|
3325
|
+
onToggle?: (code: string) => void;
|
|
3326
|
+
/** Multiple: a group's select-all checkbox was toggled (all its codes). */
|
|
3327
|
+
onToggleGroup?: (group: string, codes: string[]) => void;
|
|
3328
|
+
/** Multiple: "Only" — choose just this team. Omit to hide the shortcut. */
|
|
3329
|
+
onOnly?: (code: string) => void;
|
|
3330
|
+
/** Accessible label for the tab row. */
|
|
3331
|
+
'aria-label'?: string;
|
|
3332
|
+
/** Shown in a group with no teams. */
|
|
3333
|
+
emptyMessage?: string;
|
|
3334
|
+
}
|
|
3335
|
+
/**
|
|
3336
|
+
* Pick teams from Men / Women / Mixed tabs — the body of a team dropdown
|
|
3337
|
+
* (the Hub's Request Team Travel menu and its season schedule / calendar
|
|
3338
|
+
* team filter). Each team is its sport-code badge and name. Every group's
|
|
3339
|
+
* list renders at once in a TabPanelStack, so the dropdown is as wide as the
|
|
3340
|
+
* longest name in any tab and holds that width as the tabs change.
|
|
3341
|
+
*
|
|
3342
|
+
* Controlled: the host keeps the choice (and, for `multiple`, applies it);
|
|
3343
|
+
* the picker reports picks, toggles, group toggles and "Only".
|
|
3344
|
+
*/
|
|
3345
|
+
declare const TeamPicker: React__default.FC<TeamPickerProps>;
|
|
3346
|
+
|
|
3347
|
+
/** Everything about a tab except its identity; see `TabStripItem`. */
|
|
3348
|
+
interface TabStripItemFields {
|
|
3142
3349
|
/** Visible tab text. */
|
|
3143
3350
|
label: ReactNode;
|
|
3144
3351
|
/** Small trailing content, e.g. a count badge. */
|
|
3145
3352
|
badge?: ReactNode;
|
|
3353
|
+
/** A count shown in the trailing badge (shorthand for `badge`). */
|
|
3354
|
+
count?: number;
|
|
3355
|
+
/** Leading icon inside the tab. */
|
|
3356
|
+
icon?: ReactNode;
|
|
3146
3357
|
/**
|
|
3147
3358
|
* Leading control shown before the label, e.g. a select-all checkbox. It
|
|
3148
3359
|
* carries its own click handling; picking the tab is the label's job.
|
|
3149
3360
|
*/
|
|
3150
3361
|
leading?: ReactNode;
|
|
3362
|
+
/** Locks the tab: it can't be picked and the arrow keys skip it. */
|
|
3363
|
+
disabled?: boolean;
|
|
3151
3364
|
}
|
|
3365
|
+
/**
|
|
3366
|
+
* One tab. Identify it with `id` (the team-management / schedule callers) or
|
|
3367
|
+
* `value` (the itinerary timeline) — the two TabStrips that briefly coexisted
|
|
3368
|
+
* were merged into this one, so both spellings are accepted, and at least one
|
|
3369
|
+
* is required: the identity keys the tab, its DOM id, focus and selection.
|
|
3370
|
+
*/
|
|
3371
|
+
type TabStripItem = TabStripItemFields & ({
|
|
3372
|
+
/** Reported through `onTabChange`/`onChange` when this tab is picked. */
|
|
3373
|
+
id: string;
|
|
3374
|
+
/** Alias of `id`. */
|
|
3375
|
+
value?: string;
|
|
3376
|
+
} | {
|
|
3377
|
+
id?: string;
|
|
3378
|
+
/** Alias of `id`, reported the same way. */
|
|
3379
|
+
value: string;
|
|
3380
|
+
});
|
|
3381
|
+
/** Alias kept for the itinerary timeline's original import. */
|
|
3382
|
+
type TabStripTab = TabStripItem;
|
|
3152
3383
|
interface TabStripProps {
|
|
3153
3384
|
/** Tabs, left to right. */
|
|
3154
3385
|
tabs: TabStripItem[];
|
|
3155
3386
|
/** Id of the active tab. */
|
|
3156
3387
|
activeTab?: string;
|
|
3388
|
+
/** Alias of `activeTab`. */
|
|
3389
|
+
value?: string;
|
|
3157
3390
|
/** Called with the newly picked tab id. */
|
|
3158
3391
|
onTabChange?: (id: string) => void;
|
|
3392
|
+
/** Alias of `onTabChange`. */
|
|
3393
|
+
onChange?: (id: string) => void;
|
|
3394
|
+
/**
|
|
3395
|
+
* Whether moving focus with the arrow keys also picks the tab. `manual` only
|
|
3396
|
+
* moves focus, so arrowing past a route-changing tab doesn't navigate;
|
|
3397
|
+
* `automatic` picks as it goes, which suits a filter row.
|
|
3398
|
+
*
|
|
3399
|
+
* Defaults to `manual` with the `activeTab`/`onTabChange` API, and to
|
|
3400
|
+
* `automatic` with the older `value`/`onChange` API, which always picked on
|
|
3401
|
+
* arrow keys — so existing callers of that API keep their behaviour.
|
|
3402
|
+
*/
|
|
3403
|
+
activation?: 'manual' | 'automatic';
|
|
3159
3404
|
/**
|
|
3160
3405
|
* Colour of the active tab's underline. `teal` (the brand spark) is the
|
|
3161
3406
|
* default and the portal-wide convention; `primary` (navy) is kept for the
|
|
@@ -3164,16 +3409,19 @@ interface TabStripProps {
|
|
|
3164
3409
|
accent?: 'primary' | 'teal';
|
|
3165
3410
|
/** Accessible label for the tablist. */
|
|
3166
3411
|
'aria-label'?: string;
|
|
3412
|
+
/** Id of the panel the tabs control. */
|
|
3413
|
+
controls?: string;
|
|
3167
3414
|
/** Additional CSS class. */
|
|
3168
3415
|
className?: string;
|
|
3169
3416
|
}
|
|
3170
3417
|
/**
|
|
3171
3418
|
* A row of underline tabs. The active tab is underlined in the chosen accent;
|
|
3172
|
-
* an optional leading slot (a checkbox) and trailing badge
|
|
3173
|
-
* carry the extras the team selector
|
|
3419
|
+
* an optional leading slot (a checkbox), icon, and trailing badge or count let
|
|
3420
|
+
* it carry the extras the team selector and itinerary filters need without a
|
|
3421
|
+
* bespoke tab bar.
|
|
3174
3422
|
*/
|
|
3175
3423
|
declare const TabStrip: {
|
|
3176
|
-
({ tabs, activeTab, onTabChange, accent, "aria-label": ariaLabel, className }: TabStripProps): React.JSX.Element;
|
|
3424
|
+
({ tabs, activeTab, value, onTabChange, onChange, activation, accent, "aria-label": ariaLabel, controls, className, }: TabStripProps): React.JSX.Element;
|
|
3177
3425
|
displayName: string;
|
|
3178
3426
|
};
|
|
3179
3427
|
|
|
@@ -3247,6 +3495,26 @@ declare const TeamSubMenu: {
|
|
|
3247
3495
|
displayName: string;
|
|
3248
3496
|
};
|
|
3249
3497
|
|
|
3498
|
+
interface TravelDateRangeProps {
|
|
3499
|
+
/** First travel date as `YYYY-MM-DD` */
|
|
3500
|
+
startDate: string;
|
|
3501
|
+
/** Last travel date as `YYYY-MM-DD` */
|
|
3502
|
+
endDate: string;
|
|
3503
|
+
/** Additional CSS class */
|
|
3504
|
+
className?: string;
|
|
3505
|
+
}
|
|
3506
|
+
/** `7` → `7th`, `1` → `1st`, `22` → `22nd`, `13` → `13th`. */
|
|
3507
|
+
declare const ordinalDay: (day: number) => string;
|
|
3508
|
+
/**
|
|
3509
|
+
* A trip's travel dates as `Sun, Jun 7th ⇢ Tue, Jun 9th, 2026`. The year shows
|
|
3510
|
+
* once at the end, or on both dates when the trip crosses a year. A single-day
|
|
3511
|
+
* trip shows one date.
|
|
3512
|
+
*/
|
|
3513
|
+
declare const TravelDateRange: {
|
|
3514
|
+
({ startDate, endDate, className }: TravelDateRangeProps): React.JSX.Element | null;
|
|
3515
|
+
displayName: string;
|
|
3516
|
+
};
|
|
3517
|
+
|
|
3250
3518
|
interface FlightData {
|
|
3251
3519
|
/** Whether the leg is a commercial booking or a charter. */
|
|
3252
3520
|
type: 'commercial' | 'charter';
|
|
@@ -3606,6 +3874,63 @@ declare const computeTravelTypeCodes: (request: Pick<AgentGroupTravelRequest, "a
|
|
|
3606
3874
|
/** Hub's agent-facing list of open Group Travel Requests, grouped by school, one row per PNR group. */
|
|
3607
3875
|
declare const AgentGroupTravelRequestsTable: ({ requests, sports, views, today, onOpenRequest, onViewMasterTrip, onDeleteRequest, onCopyPnr, onToggleDueStatus, onSubmittedDateChange, onQuoteSentDateChange, className, }: AgentGroupTravelRequestsTableProps) => React.JSX.Element;
|
|
3608
3876
|
|
|
3877
|
+
/** One invoice line for one traveler. */
|
|
3878
|
+
interface AirInvoiceLine {
|
|
3879
|
+
/** Stable key for the row */
|
|
3880
|
+
id: string;
|
|
3881
|
+
/** Traveler as `LAST/FIRST MIDDLE` */
|
|
3882
|
+
traveler: string;
|
|
3883
|
+
/** Shows the check mark: a Known Traveler Number is on the reservation */
|
|
3884
|
+
knownTraveler?: boolean;
|
|
3885
|
+
/** A voided line is greyed, struck through and tagged VOID */
|
|
3886
|
+
isVoid?: boolean;
|
|
3887
|
+
/** Strikes through the whole line, traveler name included, with no VOID tag — e.g. a traveler removed from the trip */
|
|
3888
|
+
struckThrough?: boolean;
|
|
3889
|
+
billingInfo?: string;
|
|
3890
|
+
/** Already formatted, e.g. `May 19, 2026` */
|
|
3891
|
+
invoiceDate?: string;
|
|
3892
|
+
invoice?: string;
|
|
3893
|
+
ticket?: string;
|
|
3894
|
+
/** Original ticket this one was exchanged from */
|
|
3895
|
+
originalTicket?: string;
|
|
3896
|
+
/** Form of payment, e.g. `AX...9981` or `Credit on file` */
|
|
3897
|
+
payment?: string;
|
|
3898
|
+
/** Already formatted, e.g. `$876.40` */
|
|
3899
|
+
total?: string;
|
|
3900
|
+
}
|
|
3901
|
+
/** A selectable invoice version. */
|
|
3902
|
+
interface AirInvoiceVersion {
|
|
3903
|
+
id: string;
|
|
3904
|
+
label: string;
|
|
3905
|
+
}
|
|
3906
|
+
interface AirInvoiceCardProps {
|
|
3907
|
+
/** Card heading, e.g. `Air Invoice Details` */
|
|
3908
|
+
title?: ReactNode;
|
|
3909
|
+
/** Invoice lines, one per traveler per ticketing event */
|
|
3910
|
+
lines: AirInvoiceLine[];
|
|
3911
|
+
/** Status shown in the total row's Payment column, e.g. `Paid` */
|
|
3912
|
+
paymentStatus?: string;
|
|
3913
|
+
/** Formatted invoice total */
|
|
3914
|
+
total?: string;
|
|
3915
|
+
/** Invoice versions; the Version control appears when there is more than one */
|
|
3916
|
+
versions?: AirInvoiceVersion[];
|
|
3917
|
+
/** Id of the version on screen */
|
|
3918
|
+
selectedVersionId?: string;
|
|
3919
|
+
/** Called with the picked version id */
|
|
3920
|
+
onVersionChange?: (versionId: string) => void;
|
|
3921
|
+
/** Additional CSS class */
|
|
3922
|
+
className?: string;
|
|
3923
|
+
}
|
|
3924
|
+
/**
|
|
3925
|
+
* An air invoice: a header with the Version control in its right corner, then
|
|
3926
|
+
* every ticketing line for its travelers — voided lines included —
|
|
3927
|
+
* down to the amount paid.
|
|
3928
|
+
*/
|
|
3929
|
+
declare const AirInvoiceCard: {
|
|
3930
|
+
({ title, lines, paymentStatus, total, versions, selectedVersionId, onVersionChange, className, }: AirInvoiceCardProps): React.JSX.Element;
|
|
3931
|
+
displayName: string;
|
|
3932
|
+
};
|
|
3933
|
+
|
|
3609
3934
|
interface SidenavItem {
|
|
3610
3935
|
/** Unique key for the item */
|
|
3611
3936
|
key: string;
|
|
@@ -3703,6 +4028,34 @@ interface AppLayoutProps {
|
|
|
3703
4028
|
*/
|
|
3704
4029
|
declare const AppLayout: React__default.FC<AppLayoutProps>;
|
|
3705
4030
|
|
|
4031
|
+
/** One labelled booking detail, e.g. `Cost center: 4120-ATH-WBB`. */
|
|
4032
|
+
interface BookingDetail {
|
|
4033
|
+
label: string;
|
|
4034
|
+
value: ReactNode;
|
|
4035
|
+
}
|
|
4036
|
+
interface BookingDetailsCardProps {
|
|
4037
|
+
/** Details shown two columns wide, filled top-to-bottom then left-to-right */
|
|
4038
|
+
details: BookingDetail[];
|
|
4039
|
+
/** Card heading */
|
|
4040
|
+
title?: ReactNode;
|
|
4041
|
+
/** Short's booking reference, shown right-aligned in the header */
|
|
4042
|
+
refId?: string;
|
|
4043
|
+
/** A further section below the details, divided from them by a thin rule, e.g. the trip cost */
|
|
4044
|
+
children?: ReactNode;
|
|
4045
|
+
/** Additional CSS class */
|
|
4046
|
+
className?: string;
|
|
4047
|
+
}
|
|
4048
|
+
/**
|
|
4049
|
+
* The accounting and approval context attached to a booking — cost center,
|
|
4050
|
+
* authorizations, event, sport, department and arranger — as label/value pairs.
|
|
4051
|
+
* A further section, such as the trip cost, can follow below a thin rule.
|
|
4052
|
+
* Renders nothing when there are no details and no further section.
|
|
4053
|
+
*/
|
|
4054
|
+
declare const BookingDetailsCard: {
|
|
4055
|
+
({ details, title, refId, children, className }: BookingDetailsCardProps): React.JSX.Element | null;
|
|
4056
|
+
displayName: string;
|
|
4057
|
+
};
|
|
4058
|
+
|
|
3706
4059
|
type CardVariant = 'default' | 'bordered' | 'elevated';
|
|
3707
4060
|
type CardPadding = 'none' | 'sm' | 'md' | 'lg';
|
|
3708
4061
|
interface CardProps extends HTMLAttributes<HTMLDivElement> {
|
|
@@ -4392,10 +4745,7 @@ declare const HubAppShell: ({ children, navItems, individualTravelItem, agentsIt
|
|
|
4392
4745
|
|
|
4393
4746
|
/**
|
|
4394
4747
|
* Parses an `YYYY-MM-DD` itinerary date into a *local* calendar date.
|
|
4395
|
-
*
|
|
4396
|
-
* `new Date('2026-11-12')` is parsed as UTC midnight, which renders as the
|
|
4397
|
-
* previous day everywhere west of Greenwich. Travel dates are calendar dates,
|
|
4398
|
-
* never instants, so they are built component-wise instead.
|
|
4748
|
+
* Component-wise construction avoids UTC parsing shifting the calendar day.
|
|
4399
4749
|
*/
|
|
4400
4750
|
declare const parseItineraryDate: (isoDate: string) => Date | null;
|
|
4401
4751
|
/** Formats an itinerary date as `Thu Nov 12` (short) or `Thursday, November 12, 2026` (long). */
|
|
@@ -4406,10 +4756,7 @@ declare const formatItineraryDateRange: (startIso: string, endIso: string) => st
|
|
|
4406
4756
|
declare const formatItineraryMoney: (amount: number, currency?: string) => string;
|
|
4407
4757
|
/**
|
|
4408
4758
|
* Booking state of a single segment.
|
|
4409
|
-
*
|
|
4410
|
-
* Mirrors the statuses the Portal itinerary prints today — `Holding Confirmed`
|
|
4411
|
-
* is shown to travelers as `Confirmed` — plus the ticketing states Hub's
|
|
4412
|
-
* individual travel list already uses.
|
|
4759
|
+
* Portal's `Holding Confirmed` displays as `Confirmed`; Hub ticketing states also apply.
|
|
4413
4760
|
*/
|
|
4414
4761
|
type ItinerarySegmentStatus = 'confirmed' | 'ticketed' | 'not-ticketed' | 'itinerary' | 'pending' | 'cancelled';
|
|
4415
4762
|
interface ItinerarySegmentBase {
|
|
@@ -4425,6 +4772,10 @@ interface ItinerarySegmentBase {
|
|
|
4425
4772
|
cost?: number;
|
|
4426
4773
|
/** ISO 4217 currency code for `cost` */
|
|
4427
4774
|
currency?: string;
|
|
4775
|
+
/** Traveler loyalty numbers associated with this booking. */
|
|
4776
|
+
loyaltyNumbers?: string[];
|
|
4777
|
+
/** Associated booking remarks to display in Notes. */
|
|
4778
|
+
notes?: string[];
|
|
4428
4779
|
}
|
|
4429
4780
|
/** A flight. Fields follow Hub's `CommercialFlight` plus what the Portal itinerary prints. */
|
|
4430
4781
|
interface ItineraryAirSegment extends ItinerarySegmentBase {
|
|
@@ -4437,6 +4788,8 @@ interface ItineraryAirSegment extends ItinerarySegmentBase {
|
|
|
4437
4788
|
flightNumber: string;
|
|
4438
4789
|
/** Operating carrier when the flight is a codeshare */
|
|
4439
4790
|
operatedBy?: string;
|
|
4791
|
+
/** Display-ready CO2 emissions, including units and any per-traveler qualifier. */
|
|
4792
|
+
co2Emissions?: string;
|
|
4440
4793
|
/** Departure airport code, e.g. `DSM` */
|
|
4441
4794
|
departureAirport: string;
|
|
4442
4795
|
/** Departure city, e.g. `Des Moines, IA` */
|
|
@@ -4455,8 +4808,12 @@ interface ItineraryAirSegment extends ItinerarySegmentBase {
|
|
|
4455
4808
|
arrivalTime: string;
|
|
4456
4809
|
/** Elapsed flight time, e.g. `3h 42m` */
|
|
4457
4810
|
elapsed?: string;
|
|
4811
|
+
/** Flight distance in miles, shown below elapsed time. */
|
|
4812
|
+
miles?: number;
|
|
4458
4813
|
/** Assigned seats */
|
|
4459
4814
|
seats?: string[];
|
|
4815
|
+
/** No seats assigned yet: the Seats field reads `Unassigned` in red in place of any seat list */
|
|
4816
|
+
seatsUnassigned?: boolean;
|
|
4460
4817
|
/** Cabin / class of service, e.g. `Main Cabin` */
|
|
4461
4818
|
cabin?: string;
|
|
4462
4819
|
/** Shows the online check-in action (the Portal reveals it the day before departure) */
|
|
@@ -4483,12 +4840,18 @@ interface ItineraryCarSegment extends ItinerarySegmentBase {
|
|
|
4483
4840
|
pickupTime?: string;
|
|
4484
4841
|
/** Pick-up location, e.g. `Harry Reid Intl Airport (LAS)` */
|
|
4485
4842
|
pickupLocation: string;
|
|
4843
|
+
/** Optional pick-up street address lines. */
|
|
4844
|
+
pickupAddress?: string[];
|
|
4486
4845
|
/** Drop-off date as `YYYY-MM-DD` */
|
|
4487
4846
|
dropoffDate: string;
|
|
4488
4847
|
/** Drop-off clock time */
|
|
4489
4848
|
dropoffTime?: string;
|
|
4490
4849
|
/** Drop-off location */
|
|
4491
4850
|
dropoffLocation: string;
|
|
4851
|
+
/** Optional drop-off street address lines. */
|
|
4852
|
+
dropoffAddress?: string[];
|
|
4853
|
+
/** Formatted rental duration, e.g. `6d 45m`, shown between pick-up and drop-off */
|
|
4854
|
+
duration?: string;
|
|
4492
4855
|
/** Rental counter phone number */
|
|
4493
4856
|
phone?: string;
|
|
4494
4857
|
/** Quoted rate per day */
|
|
@@ -4526,47 +4889,107 @@ interface ItineraryHotelSegment extends ItinerarySegmentBase {
|
|
|
4526
4889
|
/** Property phone number */
|
|
4527
4890
|
phone?: string;
|
|
4528
4891
|
}
|
|
4892
|
+
/** A Black Car booking with remarks already parsed by the host application. */
|
|
4893
|
+
interface ItineraryLimoSegment extends ItinerarySegmentBase {
|
|
4894
|
+
type: 'limo';
|
|
4895
|
+
/** Vehicle description, e.g. `Executive Sedan` */
|
|
4896
|
+
vehicleType?: string;
|
|
4897
|
+
/** Pick-up calendar date as `YYYY-MM-DD`, or empty when unavailable */
|
|
4898
|
+
pickupDate: string;
|
|
4899
|
+
/** Display-ready pick-up time; multiple times may be joined with ` · ` */
|
|
4900
|
+
pickupTime?: string;
|
|
4901
|
+
/** Pick-up address or meeting instructions */
|
|
4902
|
+
pickupLocation?: string;
|
|
4903
|
+
/** Drop-off destination */
|
|
4904
|
+
dropoffLocation?: string;
|
|
4905
|
+
/** Formatted journey duration when supplied */
|
|
4906
|
+
duration?: string;
|
|
4907
|
+
/** Quoted total including its currency, preserved from the booking */
|
|
4908
|
+
totalDue?: string;
|
|
4909
|
+
/** Parsed cancellation policy paragraphs */
|
|
4910
|
+
cancellationPolicies?: string[];
|
|
4911
|
+
/** Remaining remarks not consumed by the parsed fields */
|
|
4912
|
+
comments?: string[];
|
|
4913
|
+
}
|
|
4914
|
+
/** A rail journey using the station and booking fields shown in Hub. */
|
|
4915
|
+
interface ItineraryRailSegment extends ItinerarySegmentBase {
|
|
4916
|
+
type: 'rail';
|
|
4917
|
+
/** Service or carrier name, e.g. `Amtrak Acela` */
|
|
4918
|
+
carrier: string;
|
|
4919
|
+
/** Carrier code used by the service icon */
|
|
4920
|
+
carrierCode?: string;
|
|
4921
|
+
/** Train number displayed alongside the service name */
|
|
4922
|
+
trainNumber?: string;
|
|
4923
|
+
/** Operating partner for a codeshare service */
|
|
4924
|
+
operatedBy?: string;
|
|
4925
|
+
/** Departure calendar date as `YYYY-MM-DD` */
|
|
4926
|
+
departureDate: string;
|
|
4927
|
+
/** Departure clock time */
|
|
4928
|
+
departureTime?: string;
|
|
4929
|
+
/** Departure station name or code */
|
|
4930
|
+
departureStation: string;
|
|
4931
|
+
/** Departure city and state */
|
|
4932
|
+
departureCity?: string;
|
|
4933
|
+
/** Arrival calendar date as `YYYY-MM-DD` */
|
|
4934
|
+
arrivalDate?: string;
|
|
4935
|
+
/** Arrival clock time */
|
|
4936
|
+
arrivalTime?: string;
|
|
4937
|
+
/** Arrival station name or code */
|
|
4938
|
+
arrivalStation: string;
|
|
4939
|
+
/** Arrival city and state */
|
|
4940
|
+
arrivalCity?: string;
|
|
4941
|
+
/** Formatted journey duration */
|
|
4942
|
+
elapsed?: string;
|
|
4943
|
+
/** Journey distance in miles */
|
|
4944
|
+
miles?: number;
|
|
4945
|
+
/** Assigned seats, including coach information when provided */
|
|
4946
|
+
seats?: string[];
|
|
4947
|
+
/** Class of service */
|
|
4948
|
+
cabin?: string;
|
|
4949
|
+
}
|
|
4529
4950
|
/** Any segment an itinerary can show. */
|
|
4530
|
-
type ItinerarySegment = ItineraryAirSegment | ItineraryCarSegment | ItineraryHotelSegment;
|
|
4951
|
+
type ItinerarySegment = ItineraryAirSegment | ItineraryCarSegment | ItineraryHotelSegment | ItineraryLimoSegment | ItineraryRailSegment;
|
|
4531
4952
|
/** The date a segment belongs to on the itinerary — departure, pick-up or check-in. */
|
|
4532
4953
|
declare const getSegmentDate: (segment: ItinerarySegment) => string;
|
|
4533
|
-
/** Minutes since midnight for a `6:15 AM` clock time, or null when it cannot be read. */
|
|
4954
|
+
/** Minutes since midnight for a `6:15 AM` (or `6.15 AM`) clock time, or null when it cannot be read. */
|
|
4534
4955
|
declare const parseClockTime: (time?: string) => number | null;
|
|
4535
4956
|
/**
|
|
4536
4957
|
* When a segment starts on its itinerary day, used to read a day in time order.
|
|
4537
4958
|
*
|
|
4538
4959
|
* Null when the booking carries no time — a hotel with no stated check-in, say.
|
|
4960
|
+
* A Black Car with several pickup times (`3:00 PM · 3:30 PM`) starts at the first.
|
|
4539
4961
|
*/
|
|
4540
4962
|
declare const getSegmentStartMinutes: (segment: ItinerarySegment) => number | null;
|
|
4541
4963
|
/** Traveler-facing name for a segment, used as the card heading and in the day summary. */
|
|
4542
4964
|
declare const getSegmentTitle: (segment: ItinerarySegment) => string;
|
|
4543
4965
|
interface ItinerarySegmentCardProps {
|
|
4544
|
-
/** The air, car or
|
|
4966
|
+
/** The air, car, hotel, Black Car or rail booking to render */
|
|
4545
4967
|
segment: ItinerarySegment;
|
|
4546
4968
|
/** Heading level for the card title, so pages keep a sensible outline */
|
|
4547
4969
|
headingLevel?: 2 | 3 | 4;
|
|
4548
4970
|
/** Called when a traveler starts online check-in for a flight */
|
|
4549
4971
|
onCheckIn?: (segment: ItineraryAirSegment) => void;
|
|
4972
|
+
/** Shows a blue Check In button beside a flight's vendor name (needs `onCheckIn`); the timeline sets it on each day's first flight */
|
|
4973
|
+
showCheckIn?: boolean;
|
|
4974
|
+
/** `card` stands alone with its own border; `section` drops the chrome to sit inside a day card */
|
|
4975
|
+
variant?: 'card' | 'section';
|
|
4550
4976
|
/** Extra content rendered below the detail list (notes, agent remarks) */
|
|
4551
4977
|
footer?: ReactNode;
|
|
4552
4978
|
/** Additional CSS class */
|
|
4553
4979
|
className?: string;
|
|
4554
4980
|
}
|
|
4555
4981
|
/**
|
|
4556
|
-
*
|
|
4557
|
-
*
|
|
4558
|
-
* Renders a flight, rental car or hotel stay with the same header, endpoint
|
|
4559
|
-
* pair and labelled detail list, so a traveler reads every segment the same
|
|
4560
|
-
* way. The business fields match what the legacy Portal itinerary prints.
|
|
4982
|
+
* One flight, rental car, hotel, Black Car or rail booking.
|
|
4983
|
+
* Uses a shared header, journey board and labelled details grounded in Hub.
|
|
4561
4984
|
*/
|
|
4562
4985
|
declare const ItinerarySegmentCard: {
|
|
4563
|
-
({ segment, headingLevel, onCheckIn, footer, className, }: ItinerarySegmentCardProps): React.JSX.Element;
|
|
4986
|
+
({ segment, headingLevel, onCheckIn, showCheckIn, variant, footer, className, }: ItinerarySegmentCardProps): React.JSX.Element;
|
|
4564
4987
|
displayName: string;
|
|
4565
4988
|
};
|
|
4566
4989
|
|
|
4567
4990
|
/** One travel day: the date and every segment starting on it. */
|
|
4568
4991
|
interface ItineraryDay {
|
|
4569
|
-
/** Day the segments start on, as `YYYY-MM-DD
|
|
4992
|
+
/** Day the segments start on, as `YYYY-MM-DD`; empty for bookings that carry no date */
|
|
4570
4993
|
date: string;
|
|
4571
4994
|
/** Segments starting on this day, in the order they should be read */
|
|
4572
4995
|
segments: ItinerarySegment[];
|
|
@@ -4585,8 +5008,10 @@ interface ItineraryDay {
|
|
|
4585
5008
|
* order they were given.
|
|
4586
5009
|
*/
|
|
4587
5010
|
declare const groupSegmentsByDay: (segments: ItinerarySegment[]) => ItineraryDay[];
|
|
5011
|
+
/** Segment-type filters offered above the first day. Ground covers rental cars and Black Car. */
|
|
5012
|
+
type ItinerarySegmentFilter = 'all' | 'air' | 'hotel' | 'ground' | 'rail';
|
|
4588
5013
|
interface ItineraryTimelineProps {
|
|
4589
|
-
/** Every
|
|
5014
|
+
/** Every booking on the trip, including Black Car and rail, in any order */
|
|
4590
5015
|
segments: ItinerarySegment[];
|
|
4591
5016
|
/** Shows a loading placeholder instead of the timeline */
|
|
4592
5017
|
loading?: boolean;
|
|
@@ -4596,18 +5021,17 @@ interface ItineraryTimelineProps {
|
|
|
4596
5021
|
emptyMessage?: ReactNode;
|
|
4597
5022
|
/** Called when a traveler starts online check-in for a flight */
|
|
4598
5023
|
onCheckIn?: (segment: ItineraryAirSegment) => void;
|
|
5024
|
+
/** Shows All / Flights / Hotels / Ground / Rail tabs above the first day; types with nothing booked are left out */
|
|
5025
|
+
showTypeTabs?: boolean;
|
|
4599
5026
|
/** Additional CSS class */
|
|
4600
5027
|
className?: string;
|
|
4601
5028
|
}
|
|
4602
5029
|
/**
|
|
4603
|
-
*
|
|
4604
|
-
*
|
|
4605
|
-
* Interleaves air, car and hotel segments under a heading for each travel day,
|
|
4606
|
-
* and covers the loading, error and nothing-booked-yet states a real trip
|
|
4607
|
-
* passes through.
|
|
5030
|
+
* Groups all supported bookings under each travel day.
|
|
5031
|
+
* Also covers loading, error and nothing-booked-yet states.
|
|
4608
5032
|
*/
|
|
4609
5033
|
declare const ItineraryTimeline: {
|
|
4610
|
-
({ segments, loading, error, emptyMessage, onCheckIn, className, }: ItineraryTimelineProps): React.JSX.Element;
|
|
5034
|
+
({ segments, loading, error, emptyMessage, onCheckIn, showTypeTabs, className, }: ItineraryTimelineProps): React.JSX.Element;
|
|
4611
5035
|
displayName: string;
|
|
4612
5036
|
};
|
|
4613
5037
|
|
|
@@ -4677,25 +5101,40 @@ interface ModalProps {
|
|
|
4677
5101
|
/** Callback when modal should close */
|
|
4678
5102
|
onClose: () => void;
|
|
4679
5103
|
/** Modal title */
|
|
4680
|
-
title?:
|
|
5104
|
+
title?: ReactNode;
|
|
5105
|
+
/** A line under the title. */
|
|
5106
|
+
subtitle?: ReactNode;
|
|
5107
|
+
/** Icon before the title. */
|
|
5108
|
+
icon?: ReactNode;
|
|
4681
5109
|
/** Modal content */
|
|
4682
5110
|
children: React__default.ReactNode;
|
|
4683
5111
|
/** Size of the modal */
|
|
4684
5112
|
size?: ModalSize;
|
|
5113
|
+
/** A specific maximum width in px, in place of the size's. */
|
|
5114
|
+
width?: number;
|
|
4685
5115
|
/** Whether to show close button */
|
|
4686
5116
|
showCloseButton?: boolean;
|
|
4687
5117
|
/** Whether clicking backdrop closes modal */
|
|
4688
5118
|
closeOnBackdropClick?: boolean;
|
|
4689
5119
|
/** Whether pressing Escape closes modal */
|
|
4690
5120
|
closeOnEscape?: boolean;
|
|
4691
|
-
/** Footer content */
|
|
5121
|
+
/** Footer content — usually a ModalFooter. */
|
|
4692
5122
|
footer?: React__default.ReactNode;
|
|
4693
|
-
/** Additional CSS class */
|
|
5123
|
+
/** Additional CSS class for the dialog. */
|
|
4694
5124
|
className?: string;
|
|
5125
|
+
/** Additional CSS class for the dimmed backdrop (e.g. to offset it below a fixed banner). */
|
|
5126
|
+
overlayClassName?: string;
|
|
5127
|
+
/** Additional CSS class for the body. */
|
|
5128
|
+
bodyClassName?: string;
|
|
4695
5129
|
}
|
|
4696
5130
|
/**
|
|
4697
|
-
*
|
|
4698
|
-
*
|
|
5131
|
+
* The portal's dialog: a Module card over a 50% backdrop — white header with
|
|
5132
|
+
* the title and a round close button, a lightly tinted body, and a white
|
|
5133
|
+
* footer whose actions put Cancel on the left and the rest on the right.
|
|
5134
|
+
* It is the Hub's long-standing modal look (its toast modal was a Module
|
|
5135
|
+
* card), made the library's one dialog (SAF-327).
|
|
5136
|
+
*
|
|
5137
|
+
* Closes on Escape and, unless turned off, on a backdrop click.
|
|
4699
5138
|
* Use an Alert instead when the user does not have to act.
|
|
4700
5139
|
*/
|
|
4701
5140
|
declare const Modal: React__default.FC<ModalProps>;
|
|
@@ -4943,6 +5382,11 @@ interface ModuleProps {
|
|
|
4943
5382
|
show?: boolean;
|
|
4944
5383
|
/** Callback when toggle is clicked */
|
|
4945
5384
|
onToggle?: () => void;
|
|
5385
|
+
/**
|
|
5386
|
+
* Let the body scroll inside a height-capped card (Modal caps it to the
|
|
5387
|
+
* viewport) instead of being clipped by the card's rounded-corner overflow.
|
|
5388
|
+
*/
|
|
5389
|
+
scrollBody?: boolean;
|
|
4946
5390
|
}
|
|
4947
5391
|
/**
|
|
4948
5392
|
* Module component - a collapsible card with header, body, and footer sections.
|
|
@@ -4993,9 +5437,10 @@ interface PageBannersProps {
|
|
|
4993
5437
|
/** Travel alerts affecting trips, such as weather or carrier disruption. */
|
|
4994
5438
|
alertBanners: TravelAlertBanner[];
|
|
4995
5439
|
/**
|
|
4996
|
-
*
|
|
4997
|
-
*
|
|
4998
|
-
*
|
|
5440
|
+
* Drop the block's own bottom margin, for a host that spaces it itself (the
|
|
5441
|
+
* dashboard does). Every banner renders as a square band either way; this
|
|
5442
|
+
* prop no longer picks a look — before SAF-327 it switched from rounded
|
|
5443
|
+
* cards to the bands.
|
|
4999
5444
|
*/
|
|
5000
5445
|
fullWidth?: boolean;
|
|
5001
5446
|
/** Additional CSS class. */
|
|
@@ -5667,13 +6112,17 @@ interface TableProps<T = any> {
|
|
|
5667
6112
|
selectAllLabel?: string;
|
|
5668
6113
|
/** Row click handler */
|
|
5669
6114
|
onRowClick?: (row: T, index: number) => void;
|
|
6115
|
+
/** Extra class for a row, e.g. to grey out a voided line */
|
|
6116
|
+
rowClassName?: (row: T, index: number) => string | undefined;
|
|
6117
|
+
/** Rows rendered in a `<tfoot>` after the body, e.g. a totals row. Pass `<tr>` elements. */
|
|
6118
|
+
footer?: React__default.ReactNode;
|
|
5670
6119
|
/** Additional CSS class */
|
|
5671
6120
|
className?: string;
|
|
5672
6121
|
}
|
|
5673
6122
|
/**
|
|
5674
6123
|
* Data table with sorting, selection, and empty and loading states.
|
|
5675
6124
|
*/
|
|
5676
|
-
declare const Table: <T extends Record<string, any> = any>({ columns, data, rowKey, bordered, striped, hoverable, compact, loading, emptyMessage, emptyContent, selectable, selectedRowKeys, defaultSelectedRowKeys, onSelectionChange, isRowSelectable, rowSelectionLabel, selectAllLabel, onRowClick, className, }: TableProps<T>) => React__default.JSX.Element;
|
|
6125
|
+
declare const Table: <T extends Record<string, any> = any>({ columns, data, rowKey, bordered, striped, hoverable, compact, loading, emptyMessage, emptyContent, selectable, selectedRowKeys, defaultSelectedRowKeys, onSelectionChange, isRowSelectable, rowSelectionLabel, selectAllLabel, onRowClick, rowClassName, footer, className, }: TableProps<T>) => React__default.JSX.Element;
|
|
5677
6126
|
|
|
5678
6127
|
interface TeamOption {
|
|
5679
6128
|
/** Team code (e.g., 'MBB', 'WBB') */
|
|
@@ -7489,6 +7938,14 @@ interface IndividualTravelPagination {
|
|
|
7489
7938
|
}
|
|
7490
7939
|
type IndividualTravelTabCounts = Partial<Record<TabKey, number>>;
|
|
7491
7940
|
type IndividualTravelExportScope = 'all' | TabKey;
|
|
7941
|
+
/**
|
|
7942
|
+
* The Requested tab's submitted-date window, as `YYYY-MM-DD` strings. Either
|
|
7943
|
+
* bound may be empty.
|
|
7944
|
+
*/
|
|
7945
|
+
interface IndividualTravelRequestedDateRange {
|
|
7946
|
+
from: string;
|
|
7947
|
+
to: string;
|
|
7948
|
+
}
|
|
7492
7949
|
interface IndividualTravelExportRequest {
|
|
7493
7950
|
scope: IndividualTravelExportScope;
|
|
7494
7951
|
activeTab: TabKey;
|
|
@@ -7539,6 +7996,23 @@ interface IndividualTravelPageProps {
|
|
|
7539
7996
|
onSelectRequest?: (trip: TripData) => void;
|
|
7540
7997
|
/** Optional handoff to a real host-owned request route. Hidden when absent. */
|
|
7541
7998
|
onCreateRequest?: () => void;
|
|
7999
|
+
/** Label of the create-request button. */
|
|
8000
|
+
createRequestLabel?: string;
|
|
8001
|
+
/**
|
|
8002
|
+
* Controlled submitted-date window for the Requested tab. Supplying
|
|
8003
|
+
* `onRequestedDateRangeChange` gives that tab the Advanced filters panel
|
|
8004
|
+
* with "Submitted from / through" fields, in place of the booked-trip filters
|
|
8005
|
+
* a request cannot use.
|
|
8006
|
+
*/
|
|
8007
|
+
requestedDateRange?: IndividualTravelRequestedDateRange;
|
|
8008
|
+
/** Called with the applied submitted-date window. */
|
|
8009
|
+
onRequestedDateRangeChange?: (range: IndividualTravelRequestedDateRange) => void;
|
|
8010
|
+
/**
|
|
8011
|
+
* The window Reset restores, and the one that does not count as an active
|
|
8012
|
+
* filter — a host that defaults to recent requests passes that default here.
|
|
8013
|
+
* Defaults to no bounds.
|
|
8014
|
+
*/
|
|
8015
|
+
defaultRequestedDateRange?: IndividualTravelRequestedDateRange;
|
|
7542
8016
|
/** Message used when the active, unfiltered source is empty. */
|
|
7543
8017
|
emptyMessage?: string;
|
|
7544
8018
|
/** Accessible label for the primary search field. */
|
|
@@ -7753,6 +8227,23 @@ interface IndividualTravelRequestDetail {
|
|
|
7753
8227
|
busRequest?: IndividualTravelRequestBusRequest;
|
|
7754
8228
|
specialRequests?: string;
|
|
7755
8229
|
}
|
|
8230
|
+
/**
|
|
8231
|
+
* What an autofill field looks up: airports, city / state places, or any
|
|
8232
|
+
* address or venue (a car or bus pickup).
|
|
8233
|
+
*/
|
|
8234
|
+
type IndividualTravelRequestLocationKind = 'airport' | 'city' | 'place';
|
|
8235
|
+
/** One autofill suggestion. `value` is written into the field as is. */
|
|
8236
|
+
interface IndividualTravelRequestLocationOption {
|
|
8237
|
+
value: string;
|
|
8238
|
+
label: string;
|
|
8239
|
+
/** Secondary line, such as the airport's full name. */
|
|
8240
|
+
description?: string;
|
|
8241
|
+
/**
|
|
8242
|
+
* Where the suggestion came from. `google` suggestions (Google Places) must
|
|
8243
|
+
* be shown with Google's attribution, which the list adds under them.
|
|
8244
|
+
*/
|
|
8245
|
+
provider?: 'google';
|
|
8246
|
+
}
|
|
7756
8247
|
|
|
7757
8248
|
interface IndividualTravelRequestFormPageProps {
|
|
7758
8249
|
/** Authenticated traveler display data. The component never emits an actor ID. */
|
|
@@ -7783,6 +8274,13 @@ interface IndividualTravelRequestFormPageProps {
|
|
|
7783
8274
|
notice?: ReactNode;
|
|
7784
8275
|
/** Label for the submit button. */
|
|
7785
8276
|
submitLabel?: string;
|
|
8277
|
+
/**
|
|
8278
|
+
* Autofill lookup for the airport, city and address fields. Called,
|
|
8279
|
+
* debounced, once the traveler has typed two characters; free text stays
|
|
8280
|
+
* valid, so a place the lookup does not know can still be requested.
|
|
8281
|
+
* Absent, the fields are plain text inputs.
|
|
8282
|
+
*/
|
|
8283
|
+
onSearchLocations?: (query: string, kind: IndividualTravelRequestLocationKind) => Promise<IndividualTravelRequestLocationOption[]>;
|
|
7786
8284
|
/** Additional CSS class. */
|
|
7787
8285
|
className?: string;
|
|
7788
8286
|
}
|
|
@@ -7877,11 +8375,19 @@ interface ItineraryAgent {
|
|
|
7877
8375
|
name: string;
|
|
7878
8376
|
/** Role, e.g. `Travel Consultant` */
|
|
7879
8377
|
role?: string;
|
|
7880
|
-
/** Contact phone number */
|
|
7881
|
-
phone?: string;
|
|
7882
8378
|
/** Contact email address */
|
|
7883
8379
|
email?: string;
|
|
7884
|
-
|
|
8380
|
+
/** When the team is staffed, e.g. `7am - 7pm M-F Central Time` */
|
|
8381
|
+
businessHours?: string;
|
|
8382
|
+
/** Toll-free number for the team */
|
|
8383
|
+
tollFreeNumber?: string;
|
|
8384
|
+
/** Number to call outside business hours */
|
|
8385
|
+
afterHoursPhone?: string;
|
|
8386
|
+
/** When the after-hours number applies, e.g. `for Outside Normal Business Hours, Weekends and Holidays 24x7` */
|
|
8387
|
+
afterHoursNote?: string;
|
|
8388
|
+
}
|
|
8389
|
+
/** `all` shows everything; `itinerary` keeps only the page header, the toggle row, the day-by-day travel details and the closing notices. */
|
|
8390
|
+
type ItineraryPageView = 'all' | 'itinerary';
|
|
7885
8391
|
interface ItineraryPageProps {
|
|
7886
8392
|
/** Trip name, e.g. `Las Vegas Invitational` */
|
|
7887
8393
|
tripName: string;
|
|
@@ -7893,7 +8399,7 @@ interface ItineraryPageProps {
|
|
|
7893
8399
|
startDate: string;
|
|
7894
8400
|
/** Last travel date as `YYYY-MM-DD` */
|
|
7895
8401
|
endDate: string;
|
|
7896
|
-
/** Every air, car and
|
|
8402
|
+
/** Every air, car, hotel, Black Car and rail booking on the trip */
|
|
7897
8403
|
segments: ItinerarySegment[];
|
|
7898
8404
|
/** Overall booking state shown next to the trip name */
|
|
7899
8405
|
status?: ItinerarySegmentStatus;
|
|
@@ -7905,15 +8411,35 @@ interface ItineraryPageProps {
|
|
|
7905
8411
|
currency?: string;
|
|
7906
8412
|
/** Travel team contact for the trip */
|
|
7907
8413
|
agent?: ItineraryAgent;
|
|
8414
|
+
/** Air invoice shown under Air Invoice Details. When omitted, the trip's confirmation, dates, travelers and program are shown instead. */
|
|
8415
|
+
invoice?: Omit<AirInvoiceCardProps, 'className' | 'title'>;
|
|
8416
|
+
/** Accounting and approval context shown in the Booking Details card above the invoice */
|
|
8417
|
+
bookingDetails?: BookingDetail[];
|
|
7908
8418
|
/** Shows the loading state in place of the timeline */
|
|
7909
8419
|
loading?: boolean;
|
|
7910
8420
|
/** Message shown in place of the timeline when the itinerary could not be loaded */
|
|
7911
8421
|
error?: ReactNode;
|
|
8422
|
+
/** Starting view when the page owns the All / Itinerary Only toggle */
|
|
8423
|
+
defaultView?: ItineraryPageView;
|
|
8424
|
+
/** Called when the traveler switches between All and Itinerary Only */
|
|
8425
|
+
onViewChange?: (view: ItineraryPageView) => void;
|
|
8426
|
+
/** Alerts about this trip, e.g. a schedule change or a lower fare, shown above the cards */
|
|
8427
|
+
alertBanners?: TravelAlertBanner[];
|
|
8428
|
+
/** Standing travel guidance shown under the alerts, e.g. ID and airport-arrival reminders */
|
|
8429
|
+
travelNotes?: ReactNode;
|
|
8430
|
+
/** Standing fare or policy notices at the very bottom of the itinerary, e.g. a non-refundable ticket */
|
|
8431
|
+
closingBanners?: SystemBanner[];
|
|
8432
|
+
/** Fine print under the closing notices, e.g. passport and visa requirements */
|
|
8433
|
+
closingNotes?: ReactNode;
|
|
7912
8434
|
/** Important host-owned context shown above the timeline without replacing it */
|
|
7913
8435
|
notice?: ReactNode;
|
|
7914
8436
|
/** Called when the traveler retries a failed itinerary load */
|
|
7915
8437
|
onRetry?: () => void;
|
|
7916
|
-
/**
|
|
8438
|
+
/** Section shown above the page name in the page header */
|
|
8439
|
+
sectionName?: string;
|
|
8440
|
+
/** Page name in the page header. Defaults to the lead traveler's surname and party size, e.g. `Itinerary for Broughton +5` */
|
|
8441
|
+
pageName?: string;
|
|
8442
|
+
/** Called by the header's back arrow. When omitted the arrow returns to the prior page in browser history. */
|
|
7917
8443
|
onBack?: () => void;
|
|
7918
8444
|
/** Accessible text for the optional return action */
|
|
7919
8445
|
backLabel?: string;
|
|
@@ -7931,15 +8457,16 @@ interface ItineraryPageProps {
|
|
|
7931
8457
|
className?: string;
|
|
7932
8458
|
}
|
|
7933
8459
|
/**
|
|
7934
|
-
*
|
|
7935
|
-
*
|
|
7936
|
-
|
|
7937
|
-
|
|
7938
|
-
|
|
7939
|
-
*
|
|
8460
|
+
* The lead traveler's surname plus how many others are on the record locator,
|
|
8461
|
+
* e.g. `Broughton/Kevin` and five more reads `Broughton +5`.
|
|
8462
|
+
*/
|
|
8463
|
+
declare const itineraryPageName: (travelers: string[]) => string;
|
|
8464
|
+
/**
|
|
8465
|
+
* A traveler's bookings in day order, including Black Car and rail.
|
|
8466
|
+
* Trip data and print, email, calendar and invoice actions arrive as props.
|
|
7940
8467
|
*/
|
|
7941
8468
|
declare const ItineraryPage: {
|
|
7942
|
-
({ tripName, recordLocator, travelers, startDate, endDate, segments, status, sportCode, totalCost, currency, agent, loading, error, notice, onRetry, onBack, backLabel, onPrint, onEmail, onAddToCalendar, onDownloadInvoice, onCheckIn, className, }: ItineraryPageProps): React.JSX.Element;
|
|
8469
|
+
({ tripName, recordLocator, travelers, startDate, endDate, segments, status, sportCode, totalCost, currency, agent, invoice, bookingDetails, loading, error, notice, defaultView, onViewChange, alertBanners, travelNotes, closingBanners, closingNotes, onRetry, sectionName, pageName, onBack, backLabel, onPrint, onEmail, onAddToCalendar, onDownloadInvoice, onCheckIn, className, }: ItineraryPageProps): React.JSX.Element;
|
|
7943
8470
|
displayName: string;
|
|
7944
8471
|
};
|
|
7945
8472
|
|
|
@@ -8586,5 +9113,5 @@ declare const TripDetailPage: {
|
|
|
8586
9113
|
displayName: string;
|
|
8587
9114
|
};
|
|
8588
9115
|
|
|
8589
|
-
export { ACMI_AIRCRAFT_OPTIONS, ACMI_CARRIER_OPTIONS, ACMI_INSURANCE_FLAT, Accordion, AcmiQuoteCalculator, AdministrationPage, AgentGroupTravelRequestsPage, AgentGroupTravelRequestsTable, AirSegment, Alert,
|
|
8590
|
-
export type { AccordionProps, AccountInfo, AcmiAircraftOption, AcmiLeg, AcmiPositioningMode, AcmiQuoteCalculatorProps, AcmiQuoteInputs, AcmiQuoteResult, AdministrationCard, AdministrationPageProps, AdministrationTab, AgentGroupTravelRequest, AgentGroupTravelRequestSportOption, AgentGroupTravelRequestViewOption, AgentGroupTravelRequestsPageProps,
|
|
9116
|
+
export { ACMI_AIRCRAFT_OPTIONS, ACMI_CARRIER_OPTIONS, ACMI_INSURANCE_FLAT, Accordion, AcmiQuoteCalculator, AdministrationPage, AgentGroupTravelRequestsPage, AgentGroupTravelRequestsTable, AirInvoiceCard, AirSegment, Alert, AppLayout, ArrowDownLeftIcon, ArrowUpRightIcon, Avatar, AvatarGroup, BID_TYPE_HEADINGS, BackLink, Badge, BookingDetailsCard, BuildingIcon, BusIcon, Button, ButtonStyled, CARRIER_CATERING_OPTIONS, CARRIER_CONTACT_TYPES, CHAMPIONSHIP_BID_TYPES, CHAMPIONSHIP_HEADINGS, CHARTER_CONTACT_GROUPS, CHARTER_SECTIONS, CalendarIcon, CalendarTypeSelector, CalendarViewSelector, CarIcon, Card, CardBody, CardFooter, CardHeader, CarrierProfilePage, ChampionshipBidDetailPage, ChampionshipBidsPage, CharterBidResponsePage, CharterBidViewPage, CharterManifestPage, CharterSourcingEmailPreview, ChartersAccessManagementPage, ChartersHomePage, CheckIcon, Checkbox, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ClientSelector, CloseIcon, ConfirmModal, ContactCard, ContactList, ContactUsPage, CubeIcon, DOCUMENT_FILE_EXTENSIONS, DashboardIcon, DashboardPage, Datepicker, DetailList, DocumentIcon, DownloadIcon, Drawer, DrawerBody, DrawerFooter, DrawerHeader, Dropdown, DueDatesDrawer, EditIcon, EmptyState, EyeIcon, FeatureFlagManagementPage, FieldLayout, FileUploadButton, FilterChip, FilterIcon, FormField, FormRow, FormSection, FormStack, GridHeaderRow, GridIcon, GridTable, GroundSegment, GroupTravelRequestPage, HUB_ADMIN_ITEM, HUB_AGENTS_ITEM, HUB_INDIVIDUAL_TRAVEL_ITEM, HUB_NAV_ITEMS, HUB_OFF_FLEET_ITEM, HUB_SOURCING_ITEM, HUB_STM_CHARTERS_ITEM, HandIcon, HeadsetIcon, HomeIcon, HotelIcon, HotelSegment, HubAppShell, Icon, Icons, IndividualTravelPage, IndividualTravelRequestDetailPage, IndividualTravelRequestFormPage, InfoCenterPage, InfoIcon, InfoTile, Input, ItineraryPage, ItinerarySegmentCard, ItineraryTimeline, LightbulbIcon, LimoIcon, ListboxSelect, LockIcon, LogoIcon, LogoutIcon, MailIcon, ManifestCapacityStats, ManifestViewToggle, MegaphoneIcon, MembershipPrograms, MenuIcon, Metric, MinusIcon, Modal, ModalFooter, Module, ModuleDivider, ModuleVerticalDivider, MultiUserSearch, NavCard, NavItem, NextTripCard, NotFoundPage, OFF_FLEET_LEARNED_DESCRIPTION, OFF_FLEET_LEARNED_EMPTY_COPY, OFF_FLEET_QUEUE_DESCRIPTION, OffFleetLearnedExamplesPage, OffFleetReviewQueuePage, OffFleetSubmissionDetailPage, PageBanners, PageHeader, PageHeaderSubsection, Pagination, PhoneIcon, PlaneIcon, PlusIcon, PreferencesPanel, PrinterIcon, ProfileMenu, Progress, ProgressBar, ProgressCircle, QuoteCostBreakdown, QuoteReviewActions, REGULAR_SEASON_BID_TYPES, RailIcon, RefreshIcon, RegularSeasonBidsPage, RegularSeasonBidsTable, ReportIcon, RequestFormFooter, RequestFormHeader, RequestFormLayout, RequestSummary, ResultCount, RosterProgramNumbersPage, RosterReportsPage, RosterToolbar, SOURCING_COST_CATEGORIES, SOURCING_COST_CATEGORY_LABELS, SUPPLIER_TYPE_OPTIONS, SchoolContactForm, SearchField, SearchIcon, Segment, SegmentedSelector, Select, SelectFilter, ServiceToggle, ServiceToggleList, SettingsIcon, Sidenav, SingleTeamPanelSelector, SourcingQuoteDetailPage, SourcingReviewQueuePage, SourcingReviewQueueTable, Spinner, SportCodeBadge, StatusBadge, SummarySection, SupplierTypeToggle, TRIP_MONTH_OPTIONS, TabPanelStack, TabStrip, Table, TableCell, Tag, TeamCalendarHeader, TeamCard, TeamContactsPanel, TeamEquipmentForm, TeamHeader, TeamImportForm, TeamManagementPage, TeamPicker, TeamProgramForm, TeamRosterMemberForm, TeamScheduleActions, TeamScheduleCompactTable, TeamScheduleEditor, TeamScheduleExpandedTable, TeamSchedulePage, TeamSubMenu, TeamTravelCalendarCardView, TeamTravelCalendarListView, TeamTravelCalendarPage, TeamTravelCalendarToolbar, TeamTravelCalendarView, TeamUserAccessForm, Textarea, ThemeProvider, Timepicker, Title, Toggle, Tooltip, Topbar, TrashIcon, TravelBoard, TravelDateRange, TravelServiceIcon, TravelSummaryMetrics, TravelerForm, TrendDownIcon, TrendUpIcon, TripDetailPage, TripSegment, TripTable, TypeIcon, UploadIcon, UserIcon, UsersIcon, WarningIcon, XIcon, absoluteFill, accentColors, alertTokens, boxShadow, brandColors, breakpoints, buildPaginationItems, buttonReset, computeLineItemTotal, computeQuoteTotals, computeTravelTypeCodes, css, cx, darkTheme, lightTheme as defaultTheme, deriveProgramBidStatus, flexCenter, flexCol, flexRow, font, fontFamily, fontSize, fontWeight, formatCompactTripCost, formatItineraryDate, formatItineraryDateRange, formatItineraryMoney, formatTeamScheduleDueDate, formatTeamScheduleTravelDates, getCharterSourcingEmailRoute, getCharterSourcingEmailSubject, getPageCount, getSegmentDate, getSegmentStartMinutes, getSegmentTitle, getTeamTravelCalendarPeriodLabel, groupSegmentsByDay, iconNames, iconRegistry, injectGlobal, isExpiringSoon, isProgramBiddable, isQuoteActionable, isTravelDueDateCompleted, isTravelDueDateOverdue, itineraryPageName, leading, lightTheme, lineClamp, lineHeight, matchesQuoteSearch, merge, moveTeamTravelCalendarPeriod, neutralColors, ordinalDay, parseClockTime, parseItineraryDate, primaryColors, radius, rounded, semanticColors, shadow, size, space, spacing, sportCodeVariant, srOnly, statusColors, styled, sx, teamColors, textColors, toInlineStyle, trans, transition, truncate, useTheme, weight };
|
|
9117
|
+
export type { AccordionProps, AccountInfo, AcmiAircraftOption, AcmiLeg, AcmiPositioningMode, AcmiQuoteCalculatorProps, AcmiQuoteInputs, AcmiQuoteResult, AdministrationCard, AdministrationPageProps, AdministrationTab, AgentGroupTravelRequest, AgentGroupTravelRequestSportOption, AgentGroupTravelRequestViewOption, AgentGroupTravelRequestsPageProps, AirInvoiceCardProps, AirInvoiceLine, AirInvoiceVersion, AirSegmentProps, AlertProps, AlertVariant, AppLayoutProps, AvatarGroupProps, AvatarProps, AvatarSize, BackLinkProps, BadgeProps, BadgeSize, BadgeVariant, BookingDetail, BookingDetailsCardProps, ButtonProps, ButtonSize$1 as ButtonSize, ButtonStyledProps, ButtonVariant$1 as ButtonVariant, CSSObject, CalendarMetric, CalendarTypeSelectorProps, CalendarTypeValue, CalendarView, CalendarViewSelectorProps, CalendarViewValue, CardBodyProps, CardFooterProps, CardHeaderProps, CardPadding, CardProps, CardVariant, CarrierAircraft, CarrierContact, CarrierProfilePageProps, CarrierProfilePreferences, CarrierProfileTab, ChampionshipBid, ChampionshipBidDetail, ChampionshipBidDetailPageProps, ChampionshipBidType, ChampionshipBidsPageProps, CharterBidLevel, CharterBidResponsePageProps, CharterBidSubmission, CharterBidTarget, CharterBidViewPageProps, CharterContact, CharterContactGroup, CharterFlightProgramBid, CharterManifestEquipment, CharterManifestPageProps, CharterManifestPassenger, CharterManifestSegment, CharterSectionCard, CharterSourcingEmailChange, CharterSourcingEmailChanges, CharterSourcingEmailLeg, CharterSourcingEmailPreviewProps, CharterSourcingEmailQuote, CharterSourcingEmailVariant, CharterSubmissionType, CharterSubmittedBid, CharterTripBid, CharterTripBidStatus, ChartersAccessId, ChartersAccessManagementPageProps, ChartersAccessMembership, ChartersAccessRole, ChartersAccountUser, ChartersHomePageProps, CheckboxProps, ClientOption, ClientSelectorProps, ConfirmModalProps, Contact, ContactCardData, ContactCardProps, ContactDetail, ContactInfo, ContactListProps, ContactPair, ContactSection, ContactUsData, ContactUsPageProps, DashboardPageProps, DatepickerProps, DatepickerSize, DetailListItem, DetailListProps, DetailListVariant, DrawerBodyProps, DrawerFooterProps, DrawerHeaderProps, DrawerPosition, DrawerProps, DrawerSize, DropdownAlignment, DropdownItemProps, DropdownProps, DueDatesDrawerProps, EmptyStateProps, EmptyStateSize, FeatureFlagDefinition, FeatureFlagIdentifier, FeatureFlagManagementPageProps, FeatureFlagRule, FeatureFlagRuleDeactivateRequest, FeatureFlagRuleEditRequest, FeatureFlagRuleEffect, FeatureFlagRuleFormValue, FeatureFlagTargetOption, FeatureFlagTargetOptions, FeatureFlagTargetType, FieldLayoutProps, FieldLayoutRenderProps, FieldSizing, FileUploadButtonProps, FilterChipProps, FilterOption, FlightData, FormFieldProps, FormRowProps, FormSectionProps, FormStackProps, GridCellRenderProps, GridColumn, GridHeaderRowProps, GridRow, GridTableProps, GridTotalRow, GroundData, GroundSegmentProps, GroupTravelDueField, GroupTravelDueStatus, GroupTravelPnr, GroupTravelRequestContact, GroupTravelRequestFieldValue, GroupTravelRequestPageProps, GroupTravelRequestSource, GroupTravelRequestValues, GroupedTravelDueDates, HotelData, HotelSegmentProps, HubAppShellActions, HubAppShellProps, HubNavigationItem, IconName, IconProps, IndividualTravelExportRequest, IndividualTravelExportScope, IndividualTravelFilters, IndividualTravelPageProps, IndividualTravelPagination, IndividualTravelRequestAirLeg, IndividualTravelRequestAirRequest, IndividualTravelRequestAirTripType, IndividualTravelRequestAnswerValue, IndividualTravelRequestBusRequest, IndividualTravelRequestCarLeg, IndividualTravelRequestCarRequest, IndividualTravelRequestCurrentTraveler, IndividualTravelRequestDetail, IndividualTravelRequestDetailPageProps, IndividualTravelRequestFormConfiguration, IndividualTravelRequestFormPageProps, IndividualTravelRequestHotelLeg, IndividualTravelRequestHotelRequest, IndividualTravelRequestLabeledAnswer, IndividualTravelRequestLocationKind, IndividualTravelRequestLocationOption, IndividualTravelRequestOption, IndividualTravelRequestQuestion, IndividualTravelRequestQuestionType, IndividualTravelRequestService, IndividualTravelRequestSubmitter, IndividualTravelRequestTraveler, IndividualTravelRequestTravelerType, IndividualTravelRequestValues, IndividualTravelRequestedDateRange, IndividualTravelTabCounts, InfoCenterArticle, InfoCenterPageProps, InfoCenterPageState, InfoTileEdge, InfoTileProps, InputProps, InputSize, ItineraryAgent, ItineraryAirSegment, ItineraryCarSegment, ItineraryDay, ItineraryHotelSegment, ItineraryLimoSegment, ItineraryPageProps, ItineraryPageView, ItineraryRailSegment, ItinerarySegment, ItinerarySegmentCardProps, ItinerarySegmentFilter, ItinerarySegmentStatus, ItineraryTimelineProps, ListboxSelectOption, ListboxSelectProps, ManifestCapacityStatsProps, ManifestSendState, ManifestView, ManifestViewToggleProps, MembershipProgram, MembershipProgramsProps, MetricProps, ModalFooterProps, ModalProps, ModalSize, ModuleProps, ModuleSize, MultiUserSearchOption, MultiUserSearchProps, NavCardProps, NavItemProps, NavItemSize, NavItemVariant, NextTripCardProps, NextTripCheckIn, NextTripDetail, NextTripEndpoint, NextTripStatus, NotFoundPageProps, OffFleetLearnedExample, OffFleetLearnedExamplesPageProps, OffFleetLeg, OffFleetLegDiagnostic, OffFleetLegMatch, OffFleetPreflightCheck, OffFleetPreflightRow, OffFleetPriceBasis, OffFleetQuoteHeader, OffFleetReviewQueuePageProps, OffFleetSubmission, OffFleetSubmissionDetailPageProps, OffFleetSubmissionStatus, OffFleetTripGrouping, OffFleetTripSegment, PageBannersProps, PageHeaderProps, PageHeaderSubsectionProps, PaginationItem, PaginationProps, PreferenceField, PreferenceSection, PreferencesPanelProps, ProfileMenuItem, ProfileMenuProps, ProgressBarProps, ProgressCircleProps, ProgressSize, ProgressVariant, QuoteCostBreakdownProps, QuoteCostTotals, QuoteFieldChange, QuoteReviewActionsProps, RegularSeasonBidType, RegularSeasonBidsPageProps, RegularSeasonBidsTableProps, RequestFormFooterProps, RequestFormHeaderProps, RequestFormLayoutProps, RequestFormPane, RequestSummaryProps, ResultCountProps, RosterProgramNumberId, RosterProgramNumberRow, RosterProgramNumbersPageProps, RosterReportOption, RosterReportsPageProps, RosterToolbarProps, ScheduleFilterOption, ScheduleMetric, SchoolContactFormProps, SearchFieldProps, SeasonOption, SegmentOption, SegmentProps, SegmentVariant, SegmentedSelectorOption, SegmentedSelectorProps, SelectFilterOption, SelectFilterProps, SelectOption, SelectOptionGroup, SelectProps, SelectSize, ServiceConfig, ServiceToggleListProps, ServiceToggleProps, SidenavItem, SidenavProps, SingleTeamPanelSelectorProps, SourcingCostAdjustment, SourcingCostCategory, SourcingCostLineItem, SourcingQuote, SourcingQuoteDetailPageProps, SourcingQuoteDraft, SourcingQuoteLeg, SourcingQuoteLegType, SourcingQuoteStatus, SourcingReviewQueuePageProps, SourcingReviewQueueTableProps, SpinnerProps, SpinnerSize, SportCodeBadgeProps, StatusBadgeProps, StatusBadgeVariant, StyleFunction, StyleObject, SummaryItem, SummarySectionConfig, SummarySegment, SupplierTypeToggleProps, SupplierTypeValue, SystemBanner, TabKey, TabPanelStackPanel, TabPanelStackProps, TabStripItem, TabStripProps, TabStripTab, TableCellProps, TableColumn, TableProps, TableRowKey, TagProps, TagSize, TagVariant, TeamCalendarHeaderProps, TeamCardProps, TeamContactId, TeamContactOption, TeamContactsLoadingState, TeamContactsPanelProps, TeamContactsValue, TeamEquipmentFormProps, TeamEquipmentValues, TeamFormMode, TeamHeaderProps, TeamImportFormProps, TeamImportKind, TeamManagementPageProps, TeamManagementTab, TeamNumericValue, TeamOption, TeamPanelCategory, TeamPanelOption, TeamPickerProps, TeamPickerTeam, TeamPortalUserOption, TeamProgramFormProps, TeamProgramType, TeamProgramValues, TeamRosterMemberFormProps, TeamRosterMemberValues, TeamScheduleActionsProps, TeamScheduleCompactEvent, TeamScheduleCompactRow, TeamScheduleCompactTableProps, TeamScheduleCompactTrip, TeamScheduleDueDate, TeamScheduleEditorEvent, TeamScheduleEditorProps, TeamScheduleEditorTrip, TeamScheduleExpandedRow, TeamScheduleExpandedTableProps, TeamScheduleHomeAway, TeamSchedulePageProps, TeamSubMenuProps, TeamSubMenuTab, TeamTravelCalendarCardViewProps, TeamTravelCalendarDueDate, TeamTravelCalendarDuration, TeamTravelCalendarEvent, TeamTravelCalendarItemType, TeamTravelCalendarListViewProps, TeamTravelCalendarPageProps, TeamTravelCalendarSportGroup, TeamTravelCalendarToolbarProps, TeamTravelCalendarTrip, TeamTravelCalendarViewProps, TeamUserAccessFormProps, TeamUserAccessValues, TextareaProps, Theme, ThemeBreakpoint, ThemeColors, ThemeContextValue, ThemeMode, ThemeProviderProps, ThemeRadius, ThemeShadow, ThemeSpacing, ThemeTransition, ThemeTypography, TimepickerProps, TimepickerSize, TitleProps, TitleWeight, ToggleProps, ToggleSize, ToolbarAction, TooltipPosition, TooltipProps, TooltipVariant, TopbarProps, TravelAlertBanner, TravelBoardDay, TravelBoardMode, TravelBoardProps, TravelBoardStatus, TravelBoardTeamTrip, TravelBoardTrip, TravelDateRangeProps, TravelDueDateItem, TravelServiceIconProps, TravelSummaryMetricsProps, TravelType, TravelerFormData, TravelerFormProps, TripData, TripDetailPageProps, TripSegmentProps, TripTableProps, TypeIconProps, VendorCode };
|