@shortstravelmgmt/component-lib 0.2.11 → 0.2.12-canary.30.g1e89a1a
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/README.md +54 -7
- package/dist/index.d.ts +925 -56
- package/dist/index.esm.js +377 -30
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +377 -30
- 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
|
@@ -9,15 +9,15 @@ import React__default, { CSSProperties, HTMLAttributes, ButtonHTMLAttributes, In
|
|
|
9
9
|
* Components should use these tokens via the useTheme hook or css utility.
|
|
10
10
|
*/
|
|
11
11
|
declare const brandColors: {
|
|
12
|
-
readonly blue: "#
|
|
13
|
-
readonly blueDeep: "#
|
|
14
|
-
readonly blueTint: "#
|
|
12
|
+
readonly blue: "#19345F";
|
|
13
|
+
readonly blueDeep: "#0C1E3E";
|
|
14
|
+
readonly blueTint: "#E4F1F8";
|
|
15
15
|
};
|
|
16
16
|
declare const primaryColors: {
|
|
17
|
-
readonly primary: "#
|
|
18
|
-
readonly primaryDark: "#
|
|
19
|
-
readonly primaryLight: "#
|
|
20
|
-
readonly primaryLightHover: "#
|
|
17
|
+
readonly primary: "#19345F";
|
|
18
|
+
readonly primaryDark: "#0C1E3E";
|
|
19
|
+
readonly primaryLight: "#E4F1F8";
|
|
20
|
+
readonly primaryLightHover: "#D3E4F0";
|
|
21
21
|
};
|
|
22
22
|
declare const neutralColors: {
|
|
23
23
|
readonly basecolor: "#F5F5F5";
|
|
@@ -44,8 +44,20 @@ declare const statusColors: {
|
|
|
44
44
|
readonly warning: "#9F5500";
|
|
45
45
|
readonly gold: "#FFC179";
|
|
46
46
|
readonly error: "#940000";
|
|
47
|
+
readonly successInk: "#0F7350";
|
|
48
|
+
readonly warningInk: "#8F4C00";
|
|
49
|
+
readonly successAccent: "#2E9E6B";
|
|
50
|
+
readonly warningAccent: "#E8A13A";
|
|
51
|
+
readonly dangerAccent: "#D7503A";
|
|
52
|
+
readonly dangerAccentStrong: "#C0402C";
|
|
53
|
+
readonly dangerAccentStrongHover: "#A33524";
|
|
47
54
|
};
|
|
48
55
|
declare const accentColors: {
|
|
56
|
+
readonly teal: "#00BCD0";
|
|
57
|
+
readonly tealHover: "#00AEEF";
|
|
58
|
+
readonly tealContrast: "#0C1E3E";
|
|
59
|
+
readonly tealInk: "#009AAB";
|
|
60
|
+
readonly tealGlow: "rgba(0, 188, 208, 0.35)";
|
|
49
61
|
readonly mint: "#37C3A4";
|
|
50
62
|
readonly forest: "#003E1B";
|
|
51
63
|
readonly forestLight: "#E2F0EC";
|
|
@@ -106,13 +118,13 @@ declare const vendorColors: {
|
|
|
106
118
|
};
|
|
107
119
|
};
|
|
108
120
|
declare const gradients: {
|
|
109
|
-
readonly avatar: "linear-gradient(135deg, #
|
|
121
|
+
readonly avatar: "linear-gradient(135deg, #19345F 0%, #00BCD0 100%)";
|
|
110
122
|
};
|
|
111
123
|
declare const alertTokens: {
|
|
112
124
|
readonly primary: {
|
|
113
|
-
readonly fg: "#
|
|
114
|
-
readonly bg: "#
|
|
115
|
-
readonly border: "#
|
|
125
|
+
readonly fg: "#19345F";
|
|
126
|
+
readonly bg: "#E4F1F8";
|
|
127
|
+
readonly border: "#19345F";
|
|
116
128
|
};
|
|
117
129
|
readonly success: {
|
|
118
130
|
readonly fg: "#138660";
|
|
@@ -137,8 +149,8 @@ declare const semanticColors: {
|
|
|
137
149
|
readonly 3: "#5C5C5C";
|
|
138
150
|
readonly 4: "#787878";
|
|
139
151
|
readonly disabled: "#C7C7CA";
|
|
140
|
-
readonly link: "#
|
|
141
|
-
readonly linkHover: "#
|
|
152
|
+
readonly link: "#19345F";
|
|
153
|
+
readonly linkHover: "#0C1E3E";
|
|
142
154
|
};
|
|
143
155
|
readonly bg: {
|
|
144
156
|
readonly page: "#F5F5F5";
|
|
@@ -148,8 +160,9 @@ declare const semanticColors: {
|
|
|
148
160
|
};
|
|
149
161
|
};
|
|
150
162
|
declare const fontFamily: {
|
|
151
|
-
readonly base: "'
|
|
152
|
-
readonly display: "'
|
|
163
|
+
readonly base: "'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif";
|
|
164
|
+
readonly display: "'Montserrat', system-ui, -apple-system, sans-serif";
|
|
165
|
+
readonly label: "'Roboto Condensed', system-ui, -apple-system, sans-serif";
|
|
153
166
|
readonly mono: "'JetBrains Mono', ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace";
|
|
154
167
|
};
|
|
155
168
|
declare const fontSize: {
|
|
@@ -225,15 +238,15 @@ declare const transition: {
|
|
|
225
238
|
declare const lightTheme: {
|
|
226
239
|
readonly colors: {
|
|
227
240
|
readonly brand: {
|
|
228
|
-
readonly blue: "#
|
|
229
|
-
readonly blueDeep: "#
|
|
230
|
-
readonly blueTint: "#
|
|
241
|
+
readonly blue: "#19345F";
|
|
242
|
+
readonly blueDeep: "#0C1E3E";
|
|
243
|
+
readonly blueTint: "#E4F1F8";
|
|
231
244
|
};
|
|
232
245
|
readonly primary: {
|
|
233
|
-
readonly primary: "#
|
|
234
|
-
readonly primaryDark: "#
|
|
235
|
-
readonly primaryLight: "#
|
|
236
|
-
readonly primaryLightHover: "#
|
|
246
|
+
readonly primary: "#19345F";
|
|
247
|
+
readonly primaryDark: "#0C1E3E";
|
|
248
|
+
readonly primaryLight: "#E4F1F8";
|
|
249
|
+
readonly primaryLightHover: "#D3E4F0";
|
|
237
250
|
};
|
|
238
251
|
readonly neutral: {
|
|
239
252
|
readonly basecolor: "#F5F5F5";
|
|
@@ -260,8 +273,20 @@ declare const lightTheme: {
|
|
|
260
273
|
readonly warning: "#9F5500";
|
|
261
274
|
readonly gold: "#FFC179";
|
|
262
275
|
readonly error: "#940000";
|
|
276
|
+
readonly successInk: "#0F7350";
|
|
277
|
+
readonly warningInk: "#8F4C00";
|
|
278
|
+
readonly successAccent: "#2E9E6B";
|
|
279
|
+
readonly warningAccent: "#E8A13A";
|
|
280
|
+
readonly dangerAccent: "#D7503A";
|
|
281
|
+
readonly dangerAccentStrong: "#C0402C";
|
|
282
|
+
readonly dangerAccentStrongHover: "#A33524";
|
|
263
283
|
};
|
|
264
284
|
readonly accent: {
|
|
285
|
+
readonly teal: "#00BCD0";
|
|
286
|
+
readonly tealHover: "#00AEEF";
|
|
287
|
+
readonly tealContrast: "#0C1E3E";
|
|
288
|
+
readonly tealInk: "#009AAB";
|
|
289
|
+
readonly tealGlow: "rgba(0, 188, 208, 0.35)";
|
|
265
290
|
readonly mint: "#37C3A4";
|
|
266
291
|
readonly forest: "#003E1B";
|
|
267
292
|
readonly forestLight: "#E2F0EC";
|
|
@@ -323,9 +348,9 @@ declare const lightTheme: {
|
|
|
323
348
|
};
|
|
324
349
|
readonly alert: {
|
|
325
350
|
readonly primary: {
|
|
326
|
-
readonly fg: "#
|
|
327
|
-
readonly bg: "#
|
|
328
|
-
readonly border: "#
|
|
351
|
+
readonly fg: "#19345F";
|
|
352
|
+
readonly bg: "#E4F1F8";
|
|
353
|
+
readonly border: "#19345F";
|
|
329
354
|
};
|
|
330
355
|
readonly success: {
|
|
331
356
|
readonly fg: "#138660";
|
|
@@ -350,8 +375,8 @@ declare const lightTheme: {
|
|
|
350
375
|
readonly 3: "#5C5C5C";
|
|
351
376
|
readonly 4: "#787878";
|
|
352
377
|
readonly disabled: "#C7C7CA";
|
|
353
|
-
readonly link: "#
|
|
354
|
-
readonly linkHover: "#
|
|
378
|
+
readonly link: "#19345F";
|
|
379
|
+
readonly linkHover: "#0C1E3E";
|
|
355
380
|
};
|
|
356
381
|
readonly bg: {
|
|
357
382
|
readonly page: "#F5F5F5";
|
|
@@ -363,8 +388,9 @@ declare const lightTheme: {
|
|
|
363
388
|
};
|
|
364
389
|
readonly typography: {
|
|
365
390
|
readonly fontFamily: {
|
|
366
|
-
readonly base: "'
|
|
367
|
-
readonly display: "'
|
|
391
|
+
readonly base: "'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif";
|
|
392
|
+
readonly display: "'Montserrat', system-ui, -apple-system, sans-serif";
|
|
393
|
+
readonly label: "'Roboto Condensed', system-ui, -apple-system, sans-serif";
|
|
368
394
|
readonly mono: "'JetBrains Mono', ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace";
|
|
369
395
|
};
|
|
370
396
|
readonly fontSize: {
|
|
@@ -439,11 +465,29 @@ declare const lightTheme: {
|
|
|
439
465
|
readonly slow: "300ms ease";
|
|
440
466
|
};
|
|
441
467
|
readonly gradients: {
|
|
442
|
-
readonly avatar: "linear-gradient(135deg, #
|
|
468
|
+
readonly avatar: "linear-gradient(135deg, #19345F 0%, #00BCD0 100%)";
|
|
443
469
|
};
|
|
444
470
|
};
|
|
445
471
|
declare const darkTheme: {
|
|
446
472
|
readonly colors: {
|
|
473
|
+
readonly primary: {
|
|
474
|
+
readonly primary: "#0A53EF";
|
|
475
|
+
readonly primaryDark: "#1A43D1";
|
|
476
|
+
readonly primaryLight: "#E6ECFB";
|
|
477
|
+
readonly primaryLightHover: "#DAE3F8";
|
|
478
|
+
};
|
|
479
|
+
readonly accent: {
|
|
480
|
+
readonly tealInk: "#00BCD0";
|
|
481
|
+
readonly teal: "#00BCD0";
|
|
482
|
+
readonly tealHover: "#00AEEF";
|
|
483
|
+
readonly tealContrast: "#0C1E3E";
|
|
484
|
+
readonly tealGlow: "rgba(0, 188, 208, 0.35)";
|
|
485
|
+
readonly mint: "#37C3A4";
|
|
486
|
+
readonly forest: "#003E1B";
|
|
487
|
+
readonly forestLight: "#E2F0EC";
|
|
488
|
+
readonly tangerine: "#FE7C35";
|
|
489
|
+
readonly tangerineLight: "#FFE2C1";
|
|
490
|
+
};
|
|
447
491
|
readonly neutral: {
|
|
448
492
|
readonly basecolor: "#1a1a1a";
|
|
449
493
|
readonly subtle: "#2a2a2a";
|
|
@@ -482,28 +526,22 @@ declare const darkTheme: {
|
|
|
482
526
|
};
|
|
483
527
|
};
|
|
484
528
|
readonly brand: {
|
|
485
|
-
readonly blue: "#
|
|
486
|
-
readonly blueDeep: "#
|
|
487
|
-
readonly blueTint: "#
|
|
488
|
-
};
|
|
489
|
-
readonly primary: {
|
|
490
|
-
readonly primary: "#0A53EF";
|
|
491
|
-
readonly primaryDark: "#1A43D1";
|
|
492
|
-
readonly primaryLight: "#E6ECFB";
|
|
493
|
-
readonly primaryLightHover: "#DAE3F8";
|
|
529
|
+
readonly blue: "#19345F";
|
|
530
|
+
readonly blueDeep: "#0C1E3E";
|
|
531
|
+
readonly blueTint: "#E4F1F8";
|
|
494
532
|
};
|
|
495
533
|
readonly status: {
|
|
496
534
|
readonly success: "#138660";
|
|
497
535
|
readonly warning: "#9F5500";
|
|
498
536
|
readonly gold: "#FFC179";
|
|
499
537
|
readonly error: "#940000";
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
readonly
|
|
503
|
-
readonly
|
|
504
|
-
readonly
|
|
505
|
-
readonly
|
|
506
|
-
readonly
|
|
538
|
+
readonly successInk: "#0F7350";
|
|
539
|
+
readonly warningInk: "#8F4C00";
|
|
540
|
+
readonly successAccent: "#2E9E6B";
|
|
541
|
+
readonly warningAccent: "#E8A13A";
|
|
542
|
+
readonly dangerAccent: "#D7503A";
|
|
543
|
+
readonly dangerAccentStrong: "#C0402C";
|
|
544
|
+
readonly dangerAccentStrongHover: "#A33524";
|
|
507
545
|
};
|
|
508
546
|
readonly team: {
|
|
509
547
|
readonly men: "#8AC6D9";
|
|
@@ -560,9 +598,9 @@ declare const darkTheme: {
|
|
|
560
598
|
};
|
|
561
599
|
readonly alert: {
|
|
562
600
|
readonly primary: {
|
|
563
|
-
readonly fg: "#
|
|
564
|
-
readonly bg: "#
|
|
565
|
-
readonly border: "#
|
|
601
|
+
readonly fg: "#19345F";
|
|
602
|
+
readonly bg: "#E4F1F8";
|
|
603
|
+
readonly border: "#19345F";
|
|
566
604
|
};
|
|
567
605
|
readonly success: {
|
|
568
606
|
readonly fg: "#138660";
|
|
@@ -583,8 +621,9 @@ declare const darkTheme: {
|
|
|
583
621
|
};
|
|
584
622
|
readonly typography: {
|
|
585
623
|
readonly fontFamily: {
|
|
586
|
-
readonly base: "'
|
|
587
|
-
readonly display: "'
|
|
624
|
+
readonly base: "'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif";
|
|
625
|
+
readonly display: "'Montserrat', system-ui, -apple-system, sans-serif";
|
|
626
|
+
readonly label: "'Roboto Condensed', system-ui, -apple-system, sans-serif";
|
|
588
627
|
readonly mono: "'JetBrains Mono', ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace";
|
|
589
628
|
};
|
|
590
629
|
readonly fontSize: {
|
|
@@ -659,7 +698,7 @@ declare const darkTheme: {
|
|
|
659
698
|
readonly slow: "300ms ease";
|
|
660
699
|
};
|
|
661
700
|
readonly gradients: {
|
|
662
|
-
readonly avatar: "linear-gradient(135deg, #
|
|
701
|
+
readonly avatar: "linear-gradient(135deg, #19345F 0%, #00BCD0 100%)";
|
|
663
702
|
};
|
|
664
703
|
};
|
|
665
704
|
/**
|
|
@@ -669,7 +708,12 @@ declare const darkTheme: {
|
|
|
669
708
|
interface Theme {
|
|
670
709
|
colors: {
|
|
671
710
|
brand: typeof brandColors;
|
|
672
|
-
primary:
|
|
711
|
+
primary: {
|
|
712
|
+
primary: string;
|
|
713
|
+
primaryDark: string;
|
|
714
|
+
primaryLight: string;
|
|
715
|
+
primaryLightHover: string;
|
|
716
|
+
};
|
|
673
717
|
neutral: {
|
|
674
718
|
basecolor: string;
|
|
675
719
|
subtle: string;
|
|
@@ -691,7 +735,9 @@ interface Theme {
|
|
|
691
735
|
error: string;
|
|
692
736
|
};
|
|
693
737
|
status: typeof statusColors;
|
|
694
|
-
accent:
|
|
738
|
+
accent: {
|
|
739
|
+
[K in keyof typeof accentColors]: string;
|
|
740
|
+
};
|
|
695
741
|
team: typeof teamColors;
|
|
696
742
|
travel: typeof travelColors;
|
|
697
743
|
vendor: typeof vendorColors;
|
|
@@ -944,6 +990,10 @@ interface AlertProps {
|
|
|
944
990
|
/** Additional CSS class */
|
|
945
991
|
className?: string;
|
|
946
992
|
}
|
|
993
|
+
/**
|
|
994
|
+
* Inline message calling out status or guidance in place, without interrupting the user.
|
|
995
|
+
* Use a modal instead when the user has to act before continuing.
|
|
996
|
+
*/
|
|
947
997
|
declare const Alert: React__default.FC<AlertProps>;
|
|
948
998
|
|
|
949
999
|
type AlertVariant = 'primary' | 'success' | 'warning' | 'error';
|
|
@@ -1007,6 +1057,10 @@ interface AvatarGroupProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
1007
1057
|
/** Maximum number of avatars to show before +N */
|
|
1008
1058
|
max?: number;
|
|
1009
1059
|
}
|
|
1060
|
+
/**
|
|
1061
|
+
* Row of overlapping avatars for a team or traveler party.
|
|
1062
|
+
* Collapses everything past `max` into a +N counter so the row keeps a fixed footprint.
|
|
1063
|
+
*/
|
|
1010
1064
|
declare const AvatarGroup: React__default.FC<AvatarGroupProps>;
|
|
1011
1065
|
|
|
1012
1066
|
type BadgeVariant = 'default' | 'success' | 'warning' | 'error' | 'info';
|
|
@@ -1128,61 +1182,124 @@ interface DatepickerProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 't
|
|
|
1128
1182
|
*/
|
|
1129
1183
|
declare const Datepicker: React.ForwardRefExoticComponent<DatepickerProps & React.RefAttributes<HTMLInputElement>>;
|
|
1130
1184
|
|
|
1185
|
+
/**
|
|
1186
|
+
* The library's icon set.
|
|
1187
|
+
*
|
|
1188
|
+
* Every icon is a 24x24 stroked SVG that inherits its color from
|
|
1189
|
+
* `currentColor` and scales through the `size` prop, so an icon picks up the
|
|
1190
|
+
* text color of whatever it sits in without extra styling.
|
|
1191
|
+
*/
|
|
1192
|
+
|
|
1131
1193
|
interface IconProps extends SVGProps<SVGSVGElement> {
|
|
1132
1194
|
/** Icon size in pixels */
|
|
1133
1195
|
size?: number;
|
|
1134
1196
|
/** Icon color (defaults to currentColor) */
|
|
1135
1197
|
color?: string;
|
|
1136
1198
|
}
|
|
1199
|
+
/** Air segment (travel type `A`). */
|
|
1137
1200
|
declare const PlaneIcon: React__default.FC<IconProps>;
|
|
1201
|
+
/** Rental car segment (travel type `C`). */
|
|
1138
1202
|
declare const CarIcon: React__default.FC<IconProps>;
|
|
1203
|
+
/** Hotel segment (travel type `H`). */
|
|
1139
1204
|
declare const HotelIcon: React__default.FC<IconProps>;
|
|
1205
|
+
/** Limo or black car segment (travel type `L`). */
|
|
1140
1206
|
declare const LimoIcon: React__default.FC<IconProps>;
|
|
1207
|
+
/** Rail segment (travel type `R`). */
|
|
1141
1208
|
declare const RailIcon: React__default.FC<IconProps>;
|
|
1209
|
+
/** Motorcoach segment (travel type `B`), including team charters. */
|
|
1142
1210
|
declare const BusIcon: React__default.FC<IconProps>;
|
|
1211
|
+
/** Magnifying glass, for search inputs and filter triggers. */
|
|
1143
1212
|
declare const SearchIcon: React__default.FC<IconProps>;
|
|
1213
|
+
/** Downward chevron, for expanding a section or opening a dropdown. */
|
|
1144
1214
|
declare const ChevronDownIcon: React__default.FC<IconProps>;
|
|
1215
|
+
/** Upward chevron, for collapsing an expanded section. */
|
|
1145
1216
|
declare const ChevronUpIcon: React__default.FC<IconProps>;
|
|
1217
|
+
/** Rightward chevron, for drill-in navigation and breadcrumbs. */
|
|
1146
1218
|
declare const ChevronRightIcon: React__default.FC<IconProps>;
|
|
1219
|
+
/** Leftward chevron, for back navigation and carousels. */
|
|
1147
1220
|
declare const ChevronLeftIcon: React__default.FC<IconProps>;
|
|
1221
|
+
/** Outbound arrow, for departing legs and external links. */
|
|
1148
1222
|
declare const ArrowUpRightIcon: React__default.FC<IconProps>;
|
|
1223
|
+
/** Inbound arrow, for returning legs. */
|
|
1149
1224
|
declare const ArrowDownLeftIcon: React__default.FC<IconProps>;
|
|
1225
|
+
/** Eye, for view-only actions and visibility toggles. */
|
|
1150
1226
|
declare const EyeIcon: React__default.FC<IconProps>;
|
|
1227
|
+
/** Download, for exporting reports and manifests. */
|
|
1151
1228
|
declare const DownloadIcon: React__default.FC<IconProps>;
|
|
1229
|
+
/** Upload, for importing rosters and attaching files. */
|
|
1152
1230
|
declare const UploadIcon: React__default.FC<IconProps>;
|
|
1231
|
+
/** Funnel, for opening filter controls. */
|
|
1153
1232
|
declare const FilterIcon: React__default.FC<IconProps>;
|
|
1233
|
+
/** Calendar, for date pickers and schedule views. */
|
|
1154
1234
|
declare const CalendarIcon: React__default.FC<IconProps>;
|
|
1235
|
+
/** Single person, for a traveler or profile. */
|
|
1155
1236
|
declare const UserIcon: React__default.FC<IconProps>;
|
|
1237
|
+
/** Group of people, for teams, rosters, and group travel. */
|
|
1156
1238
|
declare const UsersIcon: React__default.FC<IconProps>;
|
|
1239
|
+
/** Envelope, for email addresses and send actions. */
|
|
1157
1240
|
declare const MailIcon: React__default.FC<IconProps>;
|
|
1241
|
+
/** Handset, for phone numbers. */
|
|
1158
1242
|
declare const PhoneIcon: React__default.FC<IconProps>;
|
|
1243
|
+
/** Agent headset, for travel agent contact and support. */
|
|
1159
1244
|
declare const HeadsetIcon: React__default.FC<IconProps>;
|
|
1245
|
+
/** Printer, for print actions. */
|
|
1160
1246
|
declare const PrinterIcon: React__default.FC<IconProps>;
|
|
1247
|
+
/** Circular arrows, for reloading data and retrying a failed request. */
|
|
1161
1248
|
declare const RefreshIcon: React__default.FC<IconProps>;
|
|
1249
|
+
/** Warning triangle, for warning and error states. */
|
|
1162
1250
|
declare const WarningIcon: React__default.FC<IconProps>;
|
|
1251
|
+
/** Checkmark, for success states and confirmed selections. */
|
|
1163
1252
|
declare const CheckIcon: React__default.FC<IconProps>;
|
|
1253
|
+
/** Cross, for clearing a value or marking a negative state. */
|
|
1164
1254
|
declare const XIcon: React__default.FC<IconProps>;
|
|
1255
|
+
/** Plus, for add and create actions. */
|
|
1165
1256
|
declare const PlusIcon: React__default.FC<IconProps>;
|
|
1257
|
+
/** Minus, for remove and decrement actions. */
|
|
1166
1258
|
declare const MinusIcon: React__default.FC<IconProps>;
|
|
1259
|
+
/** Hamburger, for opening navigation on small screens. */
|
|
1167
1260
|
declare const MenuIcon: React__default.FC<IconProps>;
|
|
1261
|
+
/** Lightbulb, for tips and informational callouts. */
|
|
1168
1262
|
declare const LightbulbIcon: React__default.FC<IconProps>;
|
|
1263
|
+
/** Megaphone, for announcements and broadcast banners. */
|
|
1169
1264
|
declare const MegaphoneIcon: React__default.FC<IconProps>;
|
|
1265
|
+
/** Close, for dismissing modals, drawers, and alerts. */
|
|
1170
1266
|
declare const CloseIcon: React__default.FC<IconProps>;
|
|
1267
|
+
/** Dashboard, for the home and overview destinations. */
|
|
1171
1268
|
declare const DashboardIcon: React__default.FC<IconProps>;
|
|
1269
|
+
/** Report, for reporting destinations and exports. */
|
|
1172
1270
|
declare const ReportIcon: React__default.FC<IconProps>;
|
|
1271
|
+
/** Gear, for settings and configuration. */
|
|
1173
1272
|
declare const SettingsIcon: React__default.FC<IconProps>;
|
|
1273
|
+
/** Short's Travel mark, for brand placements and app headers. */
|
|
1174
1274
|
declare const LogoIcon: React__default.FC<IconProps>;
|
|
1275
|
+
/** Rising trend line, for a metric moving up. */
|
|
1175
1276
|
declare const TrendUpIcon: React__default.FC<IconProps>;
|
|
1277
|
+
/** Falling trend line, for a metric moving down. */
|
|
1176
1278
|
declare const TrendDownIcon: React__default.FC<IconProps>;
|
|
1279
|
+
/** Information, for help text and info banners. */
|
|
1177
1280
|
declare const InfoIcon: React__default.FC<IconProps>;
|
|
1281
|
+
/** Document, for itineraries, invoices, and attachments. */
|
|
1178
1282
|
declare const DocumentIcon: React__default.FC<IconProps>;
|
|
1283
|
+
/** Building, for schools, venues, and vendor offices. */
|
|
1179
1284
|
declare const BuildingIcon: React__default.FC<IconProps>;
|
|
1285
|
+
/** Grid, for switching to a card or tile layout. */
|
|
1180
1286
|
declare const GridIcon: React__default.FC<IconProps>;
|
|
1287
|
+
/** Pencil, for edit actions. */
|
|
1181
1288
|
declare const EditIcon: React__default.FC<IconProps>;
|
|
1289
|
+
/** House, for the home destination. */
|
|
1182
1290
|
declare const HomeIcon: React__default.FC<IconProps>;
|
|
1291
|
+
/** Cube, for packages, equipment, and bundled services. */
|
|
1183
1292
|
declare const CubeIcon: React__default.FC<IconProps>;
|
|
1293
|
+
/** Padlock, for restricted access and locked records. */
|
|
1184
1294
|
declare const LockIcon: React__default.FC<IconProps>;
|
|
1295
|
+
/** Trash can, for delete actions. */
|
|
1185
1296
|
declare const TrashIcon: React__default.FC<IconProps>;
|
|
1297
|
+
/**
|
|
1298
|
+
* Every icon keyed by name, for choosing one at runtime.
|
|
1299
|
+
*
|
|
1300
|
+
* Use a direct import when the icon is known at author time; reach for this
|
|
1301
|
+
* only when the name arrives as data (a nav config, an API response).
|
|
1302
|
+
*/
|
|
1186
1303
|
declare const Icons: {
|
|
1187
1304
|
readonly Plane: React__default.FC<IconProps>;
|
|
1188
1305
|
readonly Car: React__default.FC<IconProps>;
|
|
@@ -1267,6 +1384,9 @@ interface TextareaProps extends Omit<TextareaHTMLAttributes<HTMLTextAreaElement>
|
|
|
1267
1384
|
/** Makes textarea take full width */
|
|
1268
1385
|
fullWidth?: boolean;
|
|
1269
1386
|
}
|
|
1387
|
+
/**
|
|
1388
|
+
* Multi-line text field sharing the Input label, helper text, and error treatment.
|
|
1389
|
+
*/
|
|
1270
1390
|
declare const Textarea: React__default.ForwardRefExoticComponent<TextareaProps & React__default.RefAttributes<HTMLTextAreaElement>>;
|
|
1271
1391
|
|
|
1272
1392
|
interface MetricProps {
|
|
@@ -1341,6 +1461,10 @@ interface SpinnerProps {
|
|
|
1341
1461
|
/** Accessible label */
|
|
1342
1462
|
label?: string;
|
|
1343
1463
|
}
|
|
1464
|
+
/**
|
|
1465
|
+
* Indeterminate loading indicator for waits with no known duration.
|
|
1466
|
+
* Exposes its label to screen readers, so give it one that says what is loading.
|
|
1467
|
+
*/
|
|
1344
1468
|
declare const Spinner: React__default.FC<SpinnerProps>;
|
|
1345
1469
|
|
|
1346
1470
|
type StatusBadgeVariant = 'ticketed' | 'itinerary' | 'not-ticketed' | 'submitted' | 'pending' | 'cancelled' | 'approved' | 'rejected' | 'in-review';
|
|
@@ -1350,6 +1474,10 @@ interface StatusBadgeProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'childr
|
|
|
1350
1474
|
/** Optional custom label (defaults to formatted status) */
|
|
1351
1475
|
label?: string;
|
|
1352
1476
|
}
|
|
1477
|
+
/**
|
|
1478
|
+
* Badge for a travel record status, styled per status so the same state always reads the same.
|
|
1479
|
+
* Falls back to a formatted version of the status code when no label is given.
|
|
1480
|
+
*/
|
|
1353
1481
|
declare const StatusBadge: React__default.FC<StatusBadgeProps>;
|
|
1354
1482
|
|
|
1355
1483
|
type TagVariant = 'default' | 'primary' | 'success' | 'warning' | 'error' | 'info'
|
|
@@ -1374,6 +1502,10 @@ interface TagProps {
|
|
|
1374
1502
|
/** Inline styles */
|
|
1375
1503
|
style?: React__default.CSSProperties;
|
|
1376
1504
|
}
|
|
1505
|
+
/**
|
|
1506
|
+
* Compact label for keywords, categories, and applied filters.
|
|
1507
|
+
* Becomes a button when clickable, and can carry a remove affordance.
|
|
1508
|
+
*/
|
|
1377
1509
|
declare const Tag: React__default.ForwardRefExoticComponent<TagProps & React__default.RefAttributes<HTMLSpanElement>>;
|
|
1378
1510
|
|
|
1379
1511
|
type TimepickerSize = 'sm' | 'md' | 'lg';
|
|
@@ -1445,6 +1577,10 @@ interface ToggleProps {
|
|
|
1445
1577
|
*/
|
|
1446
1578
|
disabledIcon?: ReactNode;
|
|
1447
1579
|
}
|
|
1580
|
+
/**
|
|
1581
|
+
* Switch for a setting that applies immediately, with no separate save step.
|
|
1582
|
+
* Use a checkbox instead when the change is submitted with a form.
|
|
1583
|
+
*/
|
|
1448
1584
|
declare const Toggle: React__default.FC<ToggleProps>;
|
|
1449
1585
|
|
|
1450
1586
|
type TooltipPosition = 'top' | 'bottom' | 'left' | 'right';
|
|
@@ -1465,6 +1601,10 @@ interface TooltipProps {
|
|
|
1465
1601
|
/** Additional CSS class */
|
|
1466
1602
|
className?: string;
|
|
1467
1603
|
}
|
|
1604
|
+
/**
|
|
1605
|
+
* Hover and focus label for a control whose purpose is not obvious from its face.
|
|
1606
|
+
* Supplementary only -- never put information here that a user must have.
|
|
1607
|
+
*/
|
|
1468
1608
|
declare const Tooltip: React__default.FC<TooltipProps>;
|
|
1469
1609
|
|
|
1470
1610
|
type TravelType = 'A' | 'C' | 'H' | 'L' | 'R' | 'B' | 'U';
|
|
@@ -1476,6 +1616,10 @@ interface TypeIconProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'children'
|
|
|
1476
1616
|
/** Show tooltip on hover */
|
|
1477
1617
|
showTooltip?: boolean;
|
|
1478
1618
|
}
|
|
1619
|
+
/**
|
|
1620
|
+
* Segment icon keyed to a travel type code, color-coded per type.
|
|
1621
|
+
* Use TravelServiceIcon when the vendor matters as well as the type.
|
|
1622
|
+
*/
|
|
1479
1623
|
declare const TypeIcon: React__default.FC<TypeIconProps>;
|
|
1480
1624
|
|
|
1481
1625
|
type VendorCode = 'DL' | 'AA' | 'UA' | 'WN' | 'B6' | 'AS' | 'F9' | 'NK' | 'G4' | 'HA' | string;
|
|
@@ -1491,6 +1635,10 @@ interface TravelServiceIconProps extends Omit<HTMLAttributes<HTMLSpanElement>, '
|
|
|
1491
1635
|
/** Show multi-segment indicator */
|
|
1492
1636
|
multi?: boolean;
|
|
1493
1637
|
}
|
|
1638
|
+
/**
|
|
1639
|
+
* Segment icon that identifies the vendor as well as the travel type.
|
|
1640
|
+
* Shows the vendor mark when one is known, and can flag a multi-segment leg.
|
|
1641
|
+
*/
|
|
1494
1642
|
declare const TravelServiceIcon: React__default.FC<TravelServiceIconProps>;
|
|
1495
1643
|
|
|
1496
1644
|
interface AccordionProps {
|
|
@@ -1516,18 +1664,29 @@ interface AccordionProps {
|
|
|
1516
1664
|
declare const Accordion: React__default.FC<AccordionProps>;
|
|
1517
1665
|
|
|
1518
1666
|
interface SegmentedSelectorOption {
|
|
1667
|
+
/** Value reported through `onChange` when this option is picked. */
|
|
1519
1668
|
id: string;
|
|
1669
|
+
/** Visible text. Omit for an icon-only option. */
|
|
1520
1670
|
label?: string;
|
|
1671
|
+
/** Accessible name, required when the option is icon-only. */
|
|
1521
1672
|
alt?: string;
|
|
1673
|
+
/** Icon element shown before the label. */
|
|
1522
1674
|
icon?: ReactNode;
|
|
1523
1675
|
}
|
|
1524
1676
|
interface SegmentedSelectorProps {
|
|
1677
|
+
/** Options to render, left to right. */
|
|
1525
1678
|
options: SegmentedSelectorOption[];
|
|
1679
|
+
/** Id of the currently selected option. */
|
|
1526
1680
|
value: string;
|
|
1681
|
+
/** Called with the newly selected option id. */
|
|
1527
1682
|
onChange?: (value: string) => void;
|
|
1683
|
+
/** Disables every option. */
|
|
1528
1684
|
disabled?: boolean;
|
|
1685
|
+
/** Control size. */
|
|
1529
1686
|
size?: 'sm' | 'md' | 'lg';
|
|
1687
|
+
/** Additional CSS class. */
|
|
1530
1688
|
className?: string;
|
|
1689
|
+
/** Accessible name for the group. */
|
|
1531
1690
|
ariaLabel?: string;
|
|
1532
1691
|
/** Stable hook used by Hub acceptance and Chromatic tests. */
|
|
1533
1692
|
dataTest?: string;
|
|
@@ -1538,18 +1697,32 @@ interface SegmentedSelectorProps {
|
|
|
1538
1697
|
/** Which side of the label an option's icon sits on. Defaults to left. */
|
|
1539
1698
|
iconPosition?: 'left' | 'right';
|
|
1540
1699
|
}
|
|
1700
|
+
/**
|
|
1701
|
+
* Single-select control rendering its options as one connected row of buttons.
|
|
1702
|
+
* Backs the calendar selectors below; use those when their options fit.
|
|
1703
|
+
*/
|
|
1541
1704
|
declare const SegmentedSelector: ({ options, value, onChange, disabled, size, className, ariaLabel, dataTest, itemClassName, activeItemClassName, iconPosition, }: SegmentedSelectorProps) => React.JSX.Element;
|
|
1542
1705
|
type CalendarViewValue = 'calendar' | 'card' | 'list';
|
|
1543
1706
|
interface CalendarViewSelectorProps extends Omit<SegmentedSelectorProps, 'options' | 'value' | 'onChange' | 'ariaLabel'> {
|
|
1707
|
+
/** Currently selected layout. */
|
|
1544
1708
|
value: CalendarViewValue;
|
|
1709
|
+
/** Called with the newly selected layout. */
|
|
1545
1710
|
onChange?: (value: CalendarViewValue) => void;
|
|
1546
1711
|
}
|
|
1712
|
+
/**
|
|
1713
|
+
* Chooses how the team travel calendar lays out: calendar grid, cards, or list.
|
|
1714
|
+
*/
|
|
1547
1715
|
declare const CalendarViewSelector: ({ value, onChange, ...props }: CalendarViewSelectorProps) => React.JSX.Element;
|
|
1548
1716
|
type CalendarTypeValue = 'trips' | 'due_dates';
|
|
1549
1717
|
interface CalendarTypeSelectorProps extends Omit<SegmentedSelectorProps, 'options' | 'value' | 'onChange' | 'ariaLabel'> {
|
|
1718
|
+
/** Currently selected item type. */
|
|
1550
1719
|
value: CalendarTypeValue;
|
|
1720
|
+
/** Called with the newly selected item type. */
|
|
1551
1721
|
onChange?: (value: CalendarTypeValue) => void;
|
|
1552
1722
|
}
|
|
1723
|
+
/**
|
|
1724
|
+
* Chooses what the team travel calendar plots -- trips or due dates.
|
|
1725
|
+
*/
|
|
1553
1726
|
declare const CalendarTypeSelector: ({ value, onChange, ...props }: CalendarTypeSelectorProps) => React.JSX.Element;
|
|
1554
1727
|
|
|
1555
1728
|
interface ContactCardProps {
|
|
@@ -1650,6 +1823,10 @@ interface DropdownItemProps {
|
|
|
1650
1823
|
/** Additional CSS class */
|
|
1651
1824
|
className?: string;
|
|
1652
1825
|
}
|
|
1826
|
+
/**
|
|
1827
|
+
* Button that reveals a menu of actions, closing on outside click or Escape.
|
|
1828
|
+
* Compose the menu from DropdownItem; for choosing a value, use Segment or FilterChip instead.
|
|
1829
|
+
*/
|
|
1653
1830
|
declare const Dropdown: React__default.FC<DropdownProps> & {
|
|
1654
1831
|
Item: React__default.FC<DropdownItemProps>;
|
|
1655
1832
|
};
|
|
@@ -1785,6 +1962,10 @@ interface FilterChipProps {
|
|
|
1785
1962
|
/** Additional CSS class */
|
|
1786
1963
|
className?: string;
|
|
1787
1964
|
}
|
|
1965
|
+
/**
|
|
1966
|
+
* Compact single-select filter showing its current value on the chip itself.
|
|
1967
|
+
* Can filter its own options when the list is long enough to need searching.
|
|
1968
|
+
*/
|
|
1788
1969
|
declare const FilterChip: React__default.FC<FilterChipProps>;
|
|
1789
1970
|
|
|
1790
1971
|
interface FormFieldProps {
|
|
@@ -1809,6 +1990,11 @@ interface FormFieldProps {
|
|
|
1809
1990
|
/** Children for custom input rendering */
|
|
1810
1991
|
children?: React__default.ReactNode;
|
|
1811
1992
|
}
|
|
1993
|
+
/**
|
|
1994
|
+
* Pairs a labelled control with its helper text and error message, wiring up the
|
|
1995
|
+
* accessible associations between them.
|
|
1996
|
+
* Renders an Input or Textarea via `as`, or any control passed as children.
|
|
1997
|
+
*/
|
|
1812
1998
|
declare const FormField: React__default.ForwardRefExoticComponent<FormFieldProps & React__default.RefAttributes<HTMLInputElement | HTMLTextAreaElement>>;
|
|
1813
1999
|
|
|
1814
2000
|
interface FormRowProps {
|
|
@@ -1852,8 +2038,11 @@ interface FormSectionProps {
|
|
|
1852
2038
|
declare const FormSection: React__default.FC<FormSectionProps>;
|
|
1853
2039
|
|
|
1854
2040
|
interface FormStackProps {
|
|
2041
|
+
/** Form fields to space evenly. */
|
|
1855
2042
|
children: ReactNode;
|
|
2043
|
+
/** Vertical space between fields. */
|
|
1856
2044
|
gap?: 'sm' | 'md' | 'lg';
|
|
2045
|
+
/** Additional CSS class. */
|
|
1857
2046
|
className?: string;
|
|
1858
2047
|
}
|
|
1859
2048
|
/** Standard vertical form-field rhythm used by Hub modal forms. */
|
|
@@ -1894,13 +2083,23 @@ declare const InfoTile: React__default.FC<InfoTileProps>;
|
|
|
1894
2083
|
|
|
1895
2084
|
type ManifestView = 'passengers' | 'equipment';
|
|
1896
2085
|
interface ManifestViewToggleProps {
|
|
2086
|
+
/** Manifest currently shown. */
|
|
1897
2087
|
view: ManifestView;
|
|
2088
|
+
/** Called with the manifest the user switched to. */
|
|
1898
2089
|
onView: (view: ManifestView) => void;
|
|
2090
|
+
/** Passenger count shown on the passengers tab. */
|
|
1899
2091
|
paxCount: number;
|
|
2092
|
+
/** Equipment count shown on the equipment tab. */
|
|
1900
2093
|
eqCount: number;
|
|
2094
|
+
/** Marks the manifest as locked, swapping both tab icons for a padlock. Presentational only -- it does not stop the switch. */
|
|
1901
2095
|
locked: boolean;
|
|
2096
|
+
/** Additional CSS class. */
|
|
1902
2097
|
className?: string;
|
|
1903
2098
|
}
|
|
2099
|
+
/**
|
|
2100
|
+
* Tabs switching a charter manifest between its passenger and equipment lists,
|
|
2101
|
+
* each showing its current count.
|
|
2102
|
+
*/
|
|
1904
2103
|
declare const ManifestViewToggle: ({ view, onView, paxCount, eqCount, locked, className, }: ManifestViewToggleProps) => React.JSX.Element;
|
|
1905
2104
|
|
|
1906
2105
|
/** A user option that can be searched for and selected. */
|
|
@@ -1993,6 +2192,11 @@ interface NavItemProps {
|
|
|
1993
2192
|
/** Accessible description */
|
|
1994
2193
|
'aria-label'?: string;
|
|
1995
2194
|
}
|
|
2195
|
+
/**
|
|
2196
|
+
* One destination in a navigation list, with an optional icon and badge.
|
|
2197
|
+
* Renders as a link when given `href`, otherwise as a button.
|
|
2198
|
+
* Collapses to icon-only, keeping its label available to screen readers.
|
|
2199
|
+
*/
|
|
1996
2200
|
declare const NavItem: React__default.FC<NavItemProps>;
|
|
1997
2201
|
|
|
1998
2202
|
interface PageHeaderProps {
|
|
@@ -2091,8 +2295,18 @@ interface ProgressCircleProps {
|
|
|
2091
2295
|
*/
|
|
2092
2296
|
diameter?: number;
|
|
2093
2297
|
}
|
|
2298
|
+
/**
|
|
2299
|
+
* Horizontal bar for determinate progress -- a known percentage of a known total.
|
|
2300
|
+
* Use Spinner when the duration is unknown.
|
|
2301
|
+
*/
|
|
2094
2302
|
declare const ProgressBar: React__default.FC<ProgressBarProps>;
|
|
2303
|
+
/**
|
|
2304
|
+
* Ring showing determinate progress, for tighter spaces than ProgressBar fits.
|
|
2305
|
+
*/
|
|
2095
2306
|
declare const ProgressCircle: React__default.FC<ProgressCircleProps>;
|
|
2307
|
+
/**
|
|
2308
|
+
* Namespace bundling the progress indicators as `Progress.Bar` and `Progress.Circle`.
|
|
2309
|
+
*/
|
|
2096
2310
|
declare const Progress: {
|
|
2097
2311
|
Bar: React__default.FC<ProgressBarProps>;
|
|
2098
2312
|
Circle: React__default.FC<ProgressCircleProps>;
|
|
@@ -2169,17 +2383,31 @@ interface SearchFieldProps {
|
|
|
2169
2383
|
/** Accessible label */
|
|
2170
2384
|
'aria-label'?: string;
|
|
2171
2385
|
}
|
|
2386
|
+
/**
|
|
2387
|
+
* Search input with clear and submit affordances.
|
|
2388
|
+
* Works controlled via `value` or uncontrolled via `defaultValue`; `onChange` fires
|
|
2389
|
+
* per keystroke while `onSearch` fires only on submit.
|
|
2390
|
+
*/
|
|
2172
2391
|
declare const SearchField: React__default.ForwardRefExoticComponent<SearchFieldProps & React__default.RefAttributes<HTMLInputElement>>;
|
|
2173
2392
|
|
|
2174
2393
|
interface SchoolContactFormProps {
|
|
2394
|
+
/** Whether the form is adding or editing, used for the heading. */
|
|
2175
2395
|
mode?: 'Add' | 'Edit' | string;
|
|
2396
|
+
/** Optional control for prefilling the form from an existing portal user. */
|
|
2176
2397
|
createFromPortalUser?: ReactNode;
|
|
2398
|
+
/** Rendered first name field. */
|
|
2177
2399
|
firstNameField: ReactNode;
|
|
2400
|
+
/** Rendered middle initial field. */
|
|
2178
2401
|
middleInitialField: ReactNode;
|
|
2402
|
+
/** Rendered last name field. */
|
|
2179
2403
|
lastNameField: ReactNode;
|
|
2404
|
+
/** Rendered business phone field. */
|
|
2180
2405
|
businessPhoneField: ReactNode;
|
|
2406
|
+
/** Rendered cell phone field. */
|
|
2181
2407
|
cellPhoneField: ReactNode;
|
|
2408
|
+
/** Rendered email field. */
|
|
2182
2409
|
emailField: ReactNode;
|
|
2410
|
+
/** Additional CSS class. */
|
|
2183
2411
|
className?: string;
|
|
2184
2412
|
}
|
|
2185
2413
|
/**
|
|
@@ -2214,6 +2442,10 @@ interface SegmentProps {
|
|
|
2214
2442
|
/** Accessible label */
|
|
2215
2443
|
'aria-label'?: string;
|
|
2216
2444
|
}
|
|
2445
|
+
/**
|
|
2446
|
+
* Segmented control for picking one of a few options that are all worth showing.
|
|
2447
|
+
* Prefer a Dropdown once the list outgrows the available width.
|
|
2448
|
+
*/
|
|
2217
2449
|
declare const Segment: React__default.FC<SegmentProps>;
|
|
2218
2450
|
|
|
2219
2451
|
interface SelectFilterOption {
|
|
@@ -2306,17 +2538,29 @@ declare const ServiceToggle: React__default.FC<ServiceToggleProps>;
|
|
|
2306
2538
|
declare const ServiceToggleList: React__default.FC<ServiceToggleListProps>;
|
|
2307
2539
|
|
|
2308
2540
|
type SupplierTypeValue = 'A' | 'C' | 'H';
|
|
2541
|
+
/**
|
|
2542
|
+
* The selectable supplier types, without the "All" entry the toggle adds.
|
|
2543
|
+
*/
|
|
2309
2544
|
declare const SUPPLIER_TYPE_OPTIONS: Array<{
|
|
2310
2545
|
value: SupplierTypeValue;
|
|
2311
2546
|
label: string;
|
|
2312
2547
|
}>;
|
|
2313
2548
|
interface SupplierTypeToggleProps {
|
|
2549
|
+
/** Selected supplier type, or `''` for all. Makes the toggle controlled. */
|
|
2314
2550
|
value?: SupplierTypeValue | '';
|
|
2551
|
+
/** Initial selection when uncontrolled. */
|
|
2315
2552
|
defaultValue?: SupplierTypeValue | '';
|
|
2553
|
+
/** Called with the newly selected supplier type, or `''` for all. */
|
|
2316
2554
|
onChange?: (value: SupplierTypeValue | '') => void;
|
|
2555
|
+
/** Disables every option. */
|
|
2317
2556
|
disabled?: boolean;
|
|
2557
|
+
/** Additional CSS class. */
|
|
2318
2558
|
className?: string;
|
|
2319
2559
|
}
|
|
2560
|
+
/**
|
|
2561
|
+
* Filters a supplier list down to air, car, or hotel.
|
|
2562
|
+
* Works controlled via `value` or uncontrolled via `defaultValue`.
|
|
2563
|
+
*/
|
|
2320
2564
|
declare const SupplierTypeToggle: ({ value, defaultValue, onChange, disabled, className, }: SupplierTypeToggleProps) => React.JSX.Element;
|
|
2321
2565
|
|
|
2322
2566
|
interface TeamCalendarHeaderProps {
|
|
@@ -2364,13 +2608,19 @@ declare const TeamHeader: {
|
|
|
2364
2608
|
displayName: string;
|
|
2365
2609
|
};
|
|
2366
2610
|
interface TeamSubMenuTab {
|
|
2611
|
+
/** Value reported through `onTabChange` when this tab is picked. */
|
|
2367
2612
|
id: string;
|
|
2613
|
+
/** Visible tab text. */
|
|
2368
2614
|
label: string;
|
|
2369
2615
|
}
|
|
2370
2616
|
interface TeamSubMenuProps {
|
|
2617
|
+
/** Tabs to render. Defaults to the standard team management set. */
|
|
2371
2618
|
tabs?: TeamSubMenuTab[];
|
|
2619
|
+
/** Id of the currently selected tab. */
|
|
2372
2620
|
activeTab?: string;
|
|
2621
|
+
/** Called with the newly selected tab id. */
|
|
2373
2622
|
onTabChange?: (tabId: string) => void;
|
|
2623
|
+
/** Additional CSS class. */
|
|
2374
2624
|
className?: string;
|
|
2375
2625
|
}
|
|
2376
2626
|
/** Router-agnostic counterpart of Hub's team-management submenu. */
|
|
@@ -2380,32 +2630,55 @@ declare const TeamSubMenu: {
|
|
|
2380
2630
|
};
|
|
2381
2631
|
|
|
2382
2632
|
interface FlightData {
|
|
2633
|
+
/** Whether the leg is a commercial booking or a charter. */
|
|
2383
2634
|
type: 'commercial' | 'charter';
|
|
2635
|
+
/** Departure airport code. */
|
|
2384
2636
|
departure: string;
|
|
2637
|
+
/** Arrival airport code. */
|
|
2385
2638
|
arrival: string;
|
|
2639
|
+
/** Departure date. */
|
|
2386
2640
|
departureDate: string;
|
|
2641
|
+
/** Departure time, local to the departure airport. */
|
|
2387
2642
|
departureTime?: string;
|
|
2643
|
+
/** Arrival date, when it differs from the departure date. */
|
|
2388
2644
|
arrivalDate?: string;
|
|
2645
|
+
/** Arrival time, local to the arrival airport. */
|
|
2389
2646
|
arrivalTime?: string;
|
|
2647
|
+
/** Operating carrier name. */
|
|
2390
2648
|
airline?: string;
|
|
2649
|
+
/** Flight number. */
|
|
2391
2650
|
flightNumber?: string;
|
|
2392
2651
|
}
|
|
2393
2652
|
interface GroundData {
|
|
2653
|
+
/** Vehicle class for the leg. */
|
|
2394
2654
|
type: 'bus' | 'van' | 'car' | 'limo';
|
|
2655
|
+
/** Ground operator name. */
|
|
2395
2656
|
company?: string;
|
|
2657
|
+
/** Where the vehicle collects the party. */
|
|
2396
2658
|
pickupLocation: string;
|
|
2659
|
+
/** Where the vehicle drops the party. */
|
|
2397
2660
|
dropoffLocation: string;
|
|
2661
|
+
/** Pickup date. */
|
|
2398
2662
|
pickupDate: string;
|
|
2663
|
+
/** Pickup time, local to the pickup location. */
|
|
2399
2664
|
pickupTime?: string;
|
|
2665
|
+
/** Number of vehicles on the leg. */
|
|
2400
2666
|
vehicleCount?: number;
|
|
2401
2667
|
}
|
|
2402
2668
|
interface HotelData {
|
|
2669
|
+
/** Property name. */
|
|
2403
2670
|
name: string;
|
|
2671
|
+
/** Street address. */
|
|
2404
2672
|
address?: string;
|
|
2673
|
+
/** City, shown when the address is omitted. */
|
|
2405
2674
|
city?: string;
|
|
2675
|
+
/** Check-in date. */
|
|
2406
2676
|
checkIn: string;
|
|
2677
|
+
/** Check-out date. */
|
|
2407
2678
|
checkOut: string;
|
|
2679
|
+
/** Number of rooms held. */
|
|
2408
2680
|
roomCount?: number;
|
|
2681
|
+
/** Hotel confirmation number. */
|
|
2409
2682
|
confirmationNumber?: string;
|
|
2410
2683
|
}
|
|
2411
2684
|
type SegmentVariant = 'light' | 'dark';
|
|
@@ -2420,18 +2693,27 @@ interface TripSegmentProps {
|
|
|
2420
2693
|
children: ReactNode;
|
|
2421
2694
|
}
|
|
2422
2695
|
interface AirSegmentProps {
|
|
2696
|
+
/** Flights on this segment, in travel order. */
|
|
2423
2697
|
flights: FlightData[];
|
|
2698
|
+
/** Visual variant. */
|
|
2424
2699
|
variant?: SegmentVariant;
|
|
2700
|
+
/** Additional CSS class. */
|
|
2425
2701
|
className?: string;
|
|
2426
2702
|
}
|
|
2427
2703
|
interface GroundSegmentProps {
|
|
2704
|
+
/** Ground legs on this segment, in travel order. */
|
|
2428
2705
|
segments: GroundData[];
|
|
2706
|
+
/** Visual variant. */
|
|
2429
2707
|
variant?: SegmentVariant;
|
|
2708
|
+
/** Additional CSS class. */
|
|
2430
2709
|
className?: string;
|
|
2431
2710
|
}
|
|
2432
2711
|
interface HotelSegmentProps {
|
|
2712
|
+
/** Hotel stays on this segment, in travel order. */
|
|
2433
2713
|
hotels: HotelData[];
|
|
2714
|
+
/** Visual variant. */
|
|
2434
2715
|
variant?: SegmentVariant;
|
|
2716
|
+
/** Additional CSS class. */
|
|
2435
2717
|
className?: string;
|
|
2436
2718
|
}
|
|
2437
2719
|
/**
|
|
@@ -2603,70 +2885,102 @@ interface GroupTravelDueStatus {
|
|
|
2603
2885
|
complete: boolean;
|
|
2604
2886
|
}
|
|
2605
2887
|
interface GroupTravelPnr {
|
|
2888
|
+
/** Identifier for the PNR. */
|
|
2606
2889
|
id: string | number;
|
|
2607
2890
|
/** Airline record locator, or the placeholder used before one has been issued. */
|
|
2608
2891
|
recordLocator: string;
|
|
2609
2892
|
complete: boolean;
|
|
2610
2893
|
}
|
|
2611
2894
|
interface AgentGroupTravelRequest {
|
|
2895
|
+
/** Identifier for the PNR. */
|
|
2612
2896
|
id: number;
|
|
2613
2897
|
/** School/account this request belongs to — rows are grouped by this value. */
|
|
2614
2898
|
accountName: string;
|
|
2615
2899
|
/** Whether an agent or the client themselves submitted the request. */
|
|
2616
2900
|
source: GroupTravelRequestSource;
|
|
2901
|
+
/** Master trip this request became, once one exists. */
|
|
2617
2902
|
masterTripId?: number;
|
|
2618
2903
|
/** Shown as a tooltip and highlights the ID when present. */
|
|
2619
2904
|
notes?: string;
|
|
2620
2905
|
/** ISO (yyyy-mm-dd) trip start date. */
|
|
2621
2906
|
startDate: string;
|
|
2907
|
+
/** Trip name. */
|
|
2622
2908
|
name: string;
|
|
2909
|
+
/** Sport name shown in the row. */
|
|
2623
2910
|
sport: string;
|
|
2624
2911
|
/** Sport code used for the sport filter, e.g. "MBB". */
|
|
2625
2912
|
sportCode: string;
|
|
2913
|
+
/** Airline handling the group, once assigned. */
|
|
2626
2914
|
carrier?: string;
|
|
2915
|
+
/** Whether commercial air is part of the request. */
|
|
2627
2916
|
air: boolean;
|
|
2917
|
+
/** Whether a charter is part of the request. */
|
|
2628
2918
|
charter: boolean;
|
|
2919
|
+
/** Whether rental cars are part of the request. */
|
|
2629
2920
|
car: boolean;
|
|
2921
|
+
/** Whether a motorcoach is part of the request. */
|
|
2630
2922
|
motorcoach: boolean;
|
|
2923
|
+
/** Whether hotel rooms are part of the request. */
|
|
2631
2924
|
hotel: boolean;
|
|
2925
|
+
/** Whether the hotel is booked as a group block. */
|
|
2632
2926
|
groupHotel: boolean;
|
|
2927
|
+
/** Routing summary for the trip. */
|
|
2633
2928
|
routing: string;
|
|
2634
2929
|
/** ISO (yyyy-mm-dd) date submitted. */
|
|
2635
2930
|
submittedDate?: string;
|
|
2636
2931
|
/** ISO (yyyy-mm-dd) date the quote was sent. */
|
|
2637
2932
|
quoteSentDate?: string;
|
|
2933
|
+
/** Due status for confirming the booking. */
|
|
2638
2934
|
confirmation: GroupTravelDueStatus;
|
|
2935
|
+
/** Due status for the deposit. */
|
|
2639
2936
|
deposit: GroupTravelDueStatus;
|
|
2937
|
+
/** Due status for the utilization review. */
|
|
2640
2938
|
utilization: GroupTravelDueStatus;
|
|
2939
|
+
/** Due status for submitting traveler names. */
|
|
2641
2940
|
names: GroupTravelDueStatus;
|
|
2941
|
+
/** Due status for ticketing. */
|
|
2642
2942
|
ticketing: GroupTravelDueStatus;
|
|
2643
2943
|
/** One entry per PNR in this group; more than one renders as an expandable "Multi" group. */
|
|
2644
2944
|
pnrs: GroupTravelPnr[];
|
|
2645
2945
|
}
|
|
2646
2946
|
interface AgentGroupTravelRequestSportOption {
|
|
2947
|
+
/** Sport code matched against a request. */
|
|
2647
2948
|
code: string;
|
|
2949
|
+
/** Visible sport name. */
|
|
2648
2950
|
label: string;
|
|
2649
2951
|
}
|
|
2650
2952
|
interface AgentGroupTravelRequestViewOption {
|
|
2953
|
+
/** Identifier for the saved view. */
|
|
2651
2954
|
id: string;
|
|
2955
|
+
/** Visible view name. */
|
|
2652
2956
|
label: string;
|
|
2653
2957
|
/** Account names included in this saved view. */
|
|
2654
2958
|
accountNames: string[];
|
|
2655
2959
|
}
|
|
2656
2960
|
interface AgentGroupTravelRequestsTableProps {
|
|
2961
|
+
/** Requests to list. Rows are grouped by account. */
|
|
2657
2962
|
requests: AgentGroupTravelRequest[];
|
|
2963
|
+
/** Sports offered in the sport filter. */
|
|
2658
2964
|
sports?: AgentGroupTravelRequestSportOption[];
|
|
2659
2965
|
/** Saved account-group "views"; the view filter is hidden when none are supplied. */
|
|
2660
2966
|
views?: AgentGroupTravelRequestViewOption[];
|
|
2661
2967
|
/** ISO (yyyy-mm-dd) reference date for due-status coloring. Defaults to today; pass a fixed value in stories/tests for determinism. */
|
|
2662
2968
|
today?: string;
|
|
2969
|
+
/** Called with the request the agent opened. */
|
|
2663
2970
|
onOpenRequest?: (id: number) => void;
|
|
2971
|
+
/** Called with the master trip the agent opened. */
|
|
2664
2972
|
onViewMasterTrip?: (masterTripId: number) => void;
|
|
2973
|
+
/** Called with the request the agent deleted. */
|
|
2665
2974
|
onDeleteRequest?: (id: number) => void;
|
|
2975
|
+
/** Called with the record locator the agent copied. */
|
|
2666
2976
|
onCopyPnr?: (recordLocator: string) => void;
|
|
2977
|
+
/** Called with the request and the milestone the agent marked complete or incomplete. */
|
|
2667
2978
|
onToggleDueStatus?: (id: number, field: GroupTravelDueField) => void;
|
|
2979
|
+
/** Called with the request and its new submitted date. */
|
|
2668
2980
|
onSubmittedDateChange?: (id: number, value: string) => void;
|
|
2981
|
+
/** Called with the request and its new quote-sent date. */
|
|
2669
2982
|
onQuoteSentDateChange?: (id: number, value: string) => void;
|
|
2983
|
+
/** Additional CSS class. */
|
|
2670
2984
|
className?: string;
|
|
2671
2985
|
}
|
|
2672
2986
|
/** Computes the short "A/C/B/H/GH/CA" travel-type codes shown in the Type column. */
|
|
@@ -2760,6 +3074,10 @@ interface AppLayoutProps {
|
|
|
2760
3074
|
/** Additional CSS class */
|
|
2761
3075
|
className?: string;
|
|
2762
3076
|
}
|
|
3077
|
+
/**
|
|
3078
|
+
* Generic page frame: sidebar, top bar, and content area.
|
|
3079
|
+
* Use HubAppShell for Hub screens -- it adds the Hub navigation and branding.
|
|
3080
|
+
*/
|
|
2763
3081
|
declare const AppLayout: React__default.FC<AppLayoutProps>;
|
|
2764
3082
|
|
|
2765
3083
|
type CardVariant = 'default' | 'bordered' | 'elevated';
|
|
@@ -2784,30 +3102,49 @@ interface CardHeaderProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
2784
3102
|
/** Actions to display in the header */
|
|
2785
3103
|
actions?: React__default.ReactNode;
|
|
2786
3104
|
}
|
|
3105
|
+
/**
|
|
3106
|
+
* Top of a Card: title, subtitle, and any header actions.
|
|
3107
|
+
*/
|
|
2787
3108
|
declare const CardHeader: React__default.FC<CardHeaderProps>;
|
|
2788
3109
|
interface CardBodyProps extends HTMLAttributes<HTMLDivElement> {
|
|
2789
3110
|
}
|
|
3111
|
+
/**
|
|
3112
|
+
* Main content region of a Card, carrying the card padding.
|
|
3113
|
+
*/
|
|
2790
3114
|
declare const CardBody: React__default.FC<CardBodyProps>;
|
|
2791
3115
|
interface CardFooterProps extends HTMLAttributes<HTMLDivElement> {
|
|
2792
3116
|
}
|
|
3117
|
+
/**
|
|
3118
|
+
* Bottom of a Card, for actions and summary detail.
|
|
3119
|
+
*/
|
|
2793
3120
|
declare const CardFooter: React__default.FC<CardFooterProps>;
|
|
2794
3121
|
|
|
2795
3122
|
/** The three notifications the Charter Sourcing backend currently sends. */
|
|
2796
3123
|
type CharterSourcingEmailVariant = 'admin-review' | 'submitter-approved' | 'submitter-updated';
|
|
2797
3124
|
/** One origin/destination pair included in the email's route summary. */
|
|
2798
3125
|
interface CharterSourcingEmailLeg {
|
|
3126
|
+
/** Departure airport code. */
|
|
2799
3127
|
origin: string;
|
|
3128
|
+
/** Arrival airport code. */
|
|
2800
3129
|
destination: string;
|
|
2801
3130
|
}
|
|
2802
3131
|
/** Contract-backed quote facts shared by all three notifications. */
|
|
2803
3132
|
interface CharterSourcingEmailQuote {
|
|
3133
|
+
/** Sourcing request the quote answers. */
|
|
2804
3134
|
requestId: string;
|
|
3135
|
+
/** Operator quoting the charter. */
|
|
2805
3136
|
carrier: string;
|
|
3137
|
+
/** Aircraft type offered. */
|
|
2806
3138
|
aircraft: string;
|
|
3139
|
+
/** Passenger count the quote covers. */
|
|
2807
3140
|
passengers: string | number;
|
|
3141
|
+
/** Legs in the quoted routing, in travel order. */
|
|
2808
3142
|
legs: readonly CharterSourcingEmailLeg[];
|
|
3143
|
+
/** Outbound travel date. */
|
|
2809
3144
|
outboundDate: string;
|
|
3145
|
+
/** Return travel date. */
|
|
2810
3146
|
returnDate: string;
|
|
3147
|
+
/** Who submitted the quote. */
|
|
2811
3148
|
submittedBy: string;
|
|
2812
3149
|
/**
|
|
2813
3150
|
* Preformatted amount without an assumed currency symbol. The backend only
|
|
@@ -2817,8 +3154,11 @@ interface CharterSourcingEmailQuote {
|
|
|
2817
3154
|
}
|
|
2818
3155
|
/** One scalar value changed by an administrator. */
|
|
2819
3156
|
interface CharterSourcingEmailChange {
|
|
3157
|
+
/** Field that changed. */
|
|
2820
3158
|
label: string;
|
|
3159
|
+
/** Value before the change. */
|
|
2821
3160
|
previousValue: string;
|
|
3161
|
+
/** Value after the change. */
|
|
2822
3162
|
updatedValue: string;
|
|
2823
3163
|
}
|
|
2824
3164
|
/** Hub only sends an update notification when at least one field changed. */
|
|
@@ -2827,20 +3167,26 @@ type CharterSourcingEmailChanges = readonly [
|
|
|
2827
3167
|
...CharterSourcingEmailChange[]
|
|
2828
3168
|
];
|
|
2829
3169
|
interface CharterSourcingEmailPreviewBaseProps {
|
|
3170
|
+
/** Quote the email is about. */
|
|
2830
3171
|
quote: CharterSourcingEmailQuote;
|
|
2831
3172
|
/**
|
|
2832
3173
|
* Original production recipient shown when a non-production environment
|
|
2833
3174
|
* diverts the message to its configured test inbox.
|
|
2834
3175
|
*/
|
|
2835
3176
|
testServerOriginalRecipient?: string;
|
|
3177
|
+
/** Additional CSS class. */
|
|
2836
3178
|
className?: string;
|
|
2837
3179
|
}
|
|
2838
3180
|
/** Props mirror the three real sends; an update must contain at least one change. */
|
|
2839
3181
|
type CharterSourcingEmailPreviewProps = CharterSourcingEmailPreviewBaseProps & ({
|
|
3182
|
+
/** Which of the three sends to preview. */
|
|
2840
3183
|
variant: 'admin-review' | 'submitter-approved';
|
|
3184
|
+
/** Not carried by these sends -- only an update lists changes. */
|
|
2841
3185
|
changes?: never;
|
|
2842
3186
|
} | {
|
|
3187
|
+
/** Which of the three sends to preview. */
|
|
2843
3188
|
variant: 'submitter-updated';
|
|
3189
|
+
/** What changed since the last send. An update must list at least one. */
|
|
2844
3190
|
changes: CharterSourcingEmailChanges;
|
|
2845
3191
|
});
|
|
2846
3192
|
/** The exact comma-separated route label used by the backend subject and body. */
|
|
@@ -2956,9 +3302,22 @@ interface DrawerFooterProps {
|
|
|
2956
3302
|
/** Additional CSS class */
|
|
2957
3303
|
className?: string;
|
|
2958
3304
|
}
|
|
3305
|
+
/**
|
|
3306
|
+
* Top of a Drawer: title and the close affordance.
|
|
3307
|
+
*/
|
|
2959
3308
|
declare const DrawerHeader: React__default.FC<DrawerHeaderProps>;
|
|
3309
|
+
/**
|
|
3310
|
+
* Scrollable content region of a Drawer.
|
|
3311
|
+
*/
|
|
2960
3312
|
declare const DrawerBody: React__default.FC<DrawerBodyProps>;
|
|
3313
|
+
/**
|
|
3314
|
+
* Bottom of a Drawer, for actions that stay visible while the body scrolls.
|
|
3315
|
+
*/
|
|
2961
3316
|
declare const DrawerFooter: React__default.FC<DrawerFooterProps>;
|
|
3317
|
+
/**
|
|
3318
|
+
* Panel sliding in from an edge for secondary work that keeps the page behind it
|
|
3319
|
+
* in context. Traps focus while open and closes on Escape or backdrop click.
|
|
3320
|
+
*/
|
|
2962
3321
|
declare const Drawer: React__default.FC<DrawerProps> & {
|
|
2963
3322
|
Header: typeof DrawerHeader;
|
|
2964
3323
|
Body: typeof DrawerBody;
|
|
@@ -2966,26 +3325,42 @@ declare const Drawer: React__default.FC<DrawerProps> & {
|
|
|
2966
3325
|
};
|
|
2967
3326
|
|
|
2968
3327
|
interface TravelDueDateItem {
|
|
3328
|
+
/** Date the task is due. */
|
|
2969
3329
|
duedate: string;
|
|
3330
|
+
/** When the task was completed. Empty while it is outstanding. */
|
|
2970
3331
|
completeddatetime: string;
|
|
3332
|
+
/** Short task name. */
|
|
2971
3333
|
tasktitle: string;
|
|
3334
|
+
/** Identifier for the task. */
|
|
2972
3335
|
taskid: number;
|
|
3336
|
+
/** Workflow status text as the source system reports it. */
|
|
2973
3337
|
status: string;
|
|
3338
|
+
/** Who completed the task. */
|
|
2974
3339
|
completedby: string;
|
|
3340
|
+
/** Longer explanation of what the task requires. */
|
|
2975
3341
|
description: string;
|
|
3342
|
+
/** Travel service the task belongs to (air, ground, hotel). */
|
|
2976
3343
|
servicetype?: string;
|
|
3344
|
+
/** Sport the task belongs to. */
|
|
2977
3345
|
sportCode: string;
|
|
3346
|
+
/** Trip the task belongs to. */
|
|
2978
3347
|
tripId: string;
|
|
3348
|
+
/** Name of that trip, for display without a second lookup. */
|
|
2979
3349
|
tripName: string;
|
|
3350
|
+
/** Master trip the task rolls up to, used to open the trip from a task. */
|
|
2980
3351
|
masterTripGUID?: string;
|
|
2981
3352
|
/** Set by the API when the due date has passed; used by `overdueOnly`. */
|
|
2982
3353
|
pastdue?: boolean;
|
|
2983
3354
|
}
|
|
2984
3355
|
type GroupedTravelDueDates = Record<string, TravelDueDateItem[]>;
|
|
2985
3356
|
interface DueDatesDrawerProps {
|
|
3357
|
+
/** Whether the drawer is open. */
|
|
2986
3358
|
isOpen: boolean;
|
|
3359
|
+
/** Tasks to show, already grouped by date. */
|
|
2987
3360
|
dueDates: GroupedTravelDueDates;
|
|
3361
|
+
/** Date to focus when opening from a calendar day. */
|
|
2988
3362
|
selectedDate?: string | null;
|
|
3363
|
+
/** Trip to focus when opening from a trip. */
|
|
2989
3364
|
selectedTrip?: string | null;
|
|
2990
3365
|
/**
|
|
2991
3366
|
* NG-702/NG-811: opened via the Overdue Actions card — only past-due,
|
|
@@ -2993,11 +3368,20 @@ interface DueDatesDrawerProps {
|
|
|
2993
3368
|
* rather than showing every due date.
|
|
2994
3369
|
*/
|
|
2995
3370
|
overdueOnly?: boolean;
|
|
3371
|
+
/** Called when the user dismisses the drawer. */
|
|
2996
3372
|
onClose: () => void;
|
|
3373
|
+
/** Called with the task the user marked complete or incomplete. */
|
|
2997
3374
|
onToggle?: (item: TravelDueDateItem) => void;
|
|
3375
|
+
/** Called with the master trip of the task the user opened. */
|
|
2998
3376
|
onTaskClick?: (masterTripGUID: string) => void;
|
|
3377
|
+
/** Additional CSS class. */
|
|
2999
3378
|
className?: string;
|
|
3000
3379
|
}
|
|
3380
|
+
/**
|
|
3381
|
+
* Whether a task counts as done.
|
|
3382
|
+
* Treats a completion timestamp as authoritative, since the source systems do not
|
|
3383
|
+
* always write the status text back.
|
|
3384
|
+
*/
|
|
3001
3385
|
declare const isTravelDueDateCompleted: (item: Pick<TravelDueDateItem, "status" | "completeddatetime">) => boolean;
|
|
3002
3386
|
declare const isTravelDueDateOverdue: (item: Pick<TravelDueDateItem, "completeddatetime" | "pastdue">) => boolean;
|
|
3003
3387
|
/** Hub's searchable, status-aware due-dates drawer. */
|
|
@@ -3093,16 +3477,32 @@ declare namespace GridTable {
|
|
|
3093
3477
|
}
|
|
3094
3478
|
|
|
3095
3479
|
interface HubNavigationItem {
|
|
3480
|
+
/** Stable id, matched against `activeNavKey` to mark the current destination. */
|
|
3096
3481
|
key: string;
|
|
3482
|
+
/** Visible text for the entry. */
|
|
3097
3483
|
label: string;
|
|
3484
|
+
/** Route the entry points at. The shell reports it back rather than navigating itself. */
|
|
3098
3485
|
path: string;
|
|
3486
|
+
/** Icon shown beside the label, and alone when the rail is collapsed. */
|
|
3099
3487
|
icon: ReactNode;
|
|
3100
3488
|
}
|
|
3489
|
+
/**
|
|
3490
|
+
* Individual Travel entry, kept separate because not every account has it.
|
|
3491
|
+
*/
|
|
3101
3492
|
declare const HUB_INDIVIDUAL_TRAVEL_ITEM: HubNavigationItem;
|
|
3102
3493
|
/** Canonical navigation identity for the carrier-facing STM Charters portal. */
|
|
3103
3494
|
declare const HUB_STM_CHARTERS_ITEM: HubNavigationItem;
|
|
3495
|
+
/**
|
|
3496
|
+
* The default primary navigation, in display order.
|
|
3497
|
+
*/
|
|
3104
3498
|
declare const HUB_NAV_ITEMS: HubNavigationItem[];
|
|
3499
|
+
/**
|
|
3500
|
+
* Administration entry, shown in the footer to admins.
|
|
3501
|
+
*/
|
|
3105
3502
|
declare const HUB_ADMIN_ITEM: HubNavigationItem;
|
|
3503
|
+
/**
|
|
3504
|
+
* Agent workspace entry, shown in the footer to admins.
|
|
3505
|
+
*/
|
|
3106
3506
|
declare const HUB_AGENTS_ITEM: HubNavigationItem;
|
|
3107
3507
|
/**
|
|
3108
3508
|
* Sourcing sits with the admin-gated footer items rather than in `HUB_NAV_ITEMS`: the
|
|
@@ -3112,46 +3512,70 @@ declare const HUB_SOURCING_ITEM: HubNavigationItem;
|
|
|
3112
3512
|
/** Off-fleet quote review is an admin surface too, so it is gated the same way. */
|
|
3113
3513
|
declare const HUB_OFF_FLEET_ITEM: HubNavigationItem;
|
|
3114
3514
|
interface HubAppShellActions {
|
|
3515
|
+
/** Whether the mobile navigation drawer is currently open. */
|
|
3115
3516
|
isMobileNavOpen: boolean;
|
|
3517
|
+
/** Opens or closes the mobile navigation drawer. */
|
|
3116
3518
|
toggleMobileNav: () => void;
|
|
3117
3519
|
}
|
|
3118
3520
|
interface HubAppShellProps {
|
|
3521
|
+
/** Page content rendered inside the shell. */
|
|
3119
3522
|
children: ReactNode;
|
|
3523
|
+
/** Primary navigation entries. Defaults to the standard Hub set. */
|
|
3120
3524
|
navItems?: HubNavigationItem[];
|
|
3121
3525
|
/** Set to `null` when Individual Travel is not available to the current user or account. */
|
|
3122
3526
|
individualTravelItem?: HubNavigationItem | null;
|
|
3527
|
+
/** Agent workspace entry, rendered in the footer and gated on `isAdmin`. */
|
|
3123
3528
|
agentsItem?: HubNavigationItem;
|
|
3124
3529
|
/** ACMI sourcing entry, rendered in the footer and shown only when `isAdmin` is true. */
|
|
3125
3530
|
sourcingItem?: HubNavigationItem;
|
|
3126
3531
|
/** Off-fleet quote review entry, rendered in the footer and gated on `isAdmin`. */
|
|
3127
3532
|
offFleetItem?: HubNavigationItem;
|
|
3533
|
+
/** Administration entry, rendered in the footer and gated on `isAdmin`. */
|
|
3128
3534
|
adminItem?: HubNavigationItem;
|
|
3129
3535
|
/**
|
|
3130
3536
|
* Authoritative footer navigation. When provided (including an empty array),
|
|
3131
3537
|
* it replaces the default admin-gated Sourcing, Off-Fleet, Agents, and Administration items.
|
|
3132
3538
|
*/
|
|
3133
3539
|
footerNavItems?: HubNavigationItem[];
|
|
3540
|
+
/** Key of the entry to mark as current. */
|
|
3134
3541
|
activeNavKey?: string;
|
|
3542
|
+
/** Called with the entry the user picked. The host performs the routing. */
|
|
3135
3543
|
onNavigate?: (item: HubNavigationItem) => void;
|
|
3544
|
+
/** Called when the user activates the logo. */
|
|
3136
3545
|
onLogoClick?: () => void;
|
|
3546
|
+
/** Called when the user chooses to hand off to the legacy portal. */
|
|
3137
3547
|
onLegacyPortal?: () => void;
|
|
3548
|
+
/** Account switcher rendered in the top bar. */
|
|
3138
3549
|
accountSelector?: ReactNode;
|
|
3550
|
+
/** Renders top bar actions, given the shell state so they can drive the mobile nav. */
|
|
3139
3551
|
renderTopbarActions?: (actions: HubAppShellActions) => ReactNode;
|
|
3552
|
+
/** Renders extra content inside the mobile drawer, given a callback that closes it. */
|
|
3140
3553
|
renderMobileExtras?: (close: () => void) => ReactNode;
|
|
3554
|
+
/** Content pinned to the bottom of the mobile drawer. */
|
|
3141
3555
|
mobileFooter?: ReactNode;
|
|
3556
|
+
/** Profile menu rendered in the top bar. */
|
|
3142
3557
|
profileMenu?: ReactNode;
|
|
3558
|
+
/** Initials shown in the top bar when no profile menu is supplied. */
|
|
3143
3559
|
userInitials?: string;
|
|
3560
|
+
/** Whether the current user sees the admin-gated footer entries. */
|
|
3144
3561
|
isAdmin?: boolean;
|
|
3562
|
+
/** Renders navigation as non-interactive, for loading and restricted states. */
|
|
3145
3563
|
navigationDisabled?: boolean;
|
|
3564
|
+
/** Shows the shell in its loading state. */
|
|
3146
3565
|
loading?: boolean;
|
|
3566
|
+
/** Renders the content area as non-interactive while an operation blocks it. */
|
|
3147
3567
|
contentDisabled?: boolean;
|
|
3568
|
+
/** Whether to render children at all. Set false to hold the frame while content resolves. */
|
|
3148
3569
|
showContent?: boolean;
|
|
3149
|
-
/**
|
|
3570
|
+
/** Overrides the default brand mark, shown while the side rail is expanded. */
|
|
3150
3571
|
logo?: ReactNode;
|
|
3151
|
-
/**
|
|
3572
|
+
/** Overrides the brand mark shown while the side rail is collapsed, where only an icon fits. */
|
|
3152
3573
|
collapsedLogo?: ReactNode;
|
|
3574
|
+
/** Whether the side rail starts expanded. */
|
|
3153
3575
|
defaultExpanded?: boolean;
|
|
3576
|
+
/** Beta tag shown beside the brand mark. */
|
|
3154
3577
|
betaLabel?: string;
|
|
3578
|
+
/** Additional CSS class. */
|
|
3155
3579
|
className?: string;
|
|
3156
3580
|
}
|
|
3157
3581
|
/** The shared application navigation and content shell used by Hub and its Storybook pages. */
|
|
@@ -3421,11 +3845,17 @@ declare const MembershipPrograms: {
|
|
|
3421
3845
|
};
|
|
3422
3846
|
|
|
3423
3847
|
interface ManifestCapacityStatsProps {
|
|
3848
|
+
/** Passengers currently manifested. */
|
|
3424
3849
|
paxCount: number;
|
|
3850
|
+
/** Seats available on the aircraft. */
|
|
3425
3851
|
seats: number;
|
|
3852
|
+
/** Total passenger weight, in pounds. */
|
|
3426
3853
|
paxWeight: number;
|
|
3854
|
+
/** Total cargo and equipment weight, in pounds. */
|
|
3427
3855
|
cargoWeight: number;
|
|
3856
|
+
/** Maximum payload the aircraft can carry, in pounds. */
|
|
3428
3857
|
payloadLimit: number;
|
|
3858
|
+
/** Additional CSS class. */
|
|
3429
3859
|
className?: string;
|
|
3430
3860
|
}
|
|
3431
3861
|
/** Advisory seat and payload meters from Hub's charter manifest. */
|
|
@@ -3454,11 +3884,21 @@ interface ModalProps {
|
|
|
3454
3884
|
/** Additional CSS class */
|
|
3455
3885
|
className?: string;
|
|
3456
3886
|
}
|
|
3887
|
+
/**
|
|
3888
|
+
* Dialog that interrupts the page until the user resolves it.
|
|
3889
|
+
* Traps focus, closes on Escape, and restores focus to the trigger on close.
|
|
3890
|
+
* Use an Alert instead when the user does not have to act.
|
|
3891
|
+
*/
|
|
3457
3892
|
declare const Modal: React__default.FC<ModalProps>;
|
|
3458
3893
|
interface ModalFooterProps {
|
|
3894
|
+
/** Footer content, usually the confirm and cancel actions. */
|
|
3459
3895
|
children: React__default.ReactNode;
|
|
3896
|
+
/** Additional CSS class. */
|
|
3460
3897
|
className?: string;
|
|
3461
3898
|
}
|
|
3899
|
+
/**
|
|
3900
|
+
* Action row for the bottom of a Modal, keeping button order consistent across dialogs.
|
|
3901
|
+
*/
|
|
3462
3902
|
declare const ModalFooter: React__default.FC<ModalFooterProps>;
|
|
3463
3903
|
interface ConfirmModalProps extends Omit<ModalProps, 'footer' | 'children'> {
|
|
3464
3904
|
/** Message to display */
|
|
@@ -3474,6 +3914,10 @@ interface ConfirmModalProps extends Omit<ModalProps, 'footer' | 'children'> {
|
|
|
3474
3914
|
/** Whether confirm action is in progress */
|
|
3475
3915
|
loading?: boolean;
|
|
3476
3916
|
}
|
|
3917
|
+
/**
|
|
3918
|
+
* Modal preset for confirming a single action, with the confirm and cancel
|
|
3919
|
+
* buttons already wired.
|
|
3920
|
+
*/
|
|
3477
3921
|
declare const ConfirmModal: React__default.FC<ConfirmModalProps>;
|
|
3478
3922
|
|
|
3479
3923
|
type ModuleSize = 'sm' | 'md' | 'lg';
|
|
@@ -3534,21 +3978,34 @@ declare const ModuleVerticalDivider: React__default.FC<{
|
|
|
3534
3978
|
}>;
|
|
3535
3979
|
|
|
3536
3980
|
interface SystemBanner {
|
|
3981
|
+
/** Identifier for the banner, used to key and dismiss it. */
|
|
3537
3982
|
id: string;
|
|
3983
|
+
/** Banner body as trusted HTML from the announcements system. */
|
|
3538
3984
|
html: string;
|
|
3985
|
+
/** Expanded detail revealed when the reader opens the banner. */
|
|
3539
3986
|
detailHtml?: string;
|
|
3540
3987
|
}
|
|
3541
3988
|
interface TravelAlertBanner {
|
|
3989
|
+
/** Identifier for the alert. */
|
|
3542
3990
|
id: string;
|
|
3991
|
+
/** Headline summarizing the disruption. */
|
|
3543
3992
|
title: string;
|
|
3993
|
+
/** Supporting detail. */
|
|
3544
3994
|
body?: string;
|
|
3995
|
+
/** Link to the full advisory. */
|
|
3545
3996
|
href?: string;
|
|
3546
3997
|
}
|
|
3547
3998
|
interface PageBannersProps {
|
|
3999
|
+
/** Platform-wide notices such as maintenance windows. */
|
|
3548
4000
|
systemBanners: SystemBanner[];
|
|
4001
|
+
/** Travel alerts affecting trips, such as weather or carrier disruption. */
|
|
3549
4002
|
alertBanners: TravelAlertBanner[];
|
|
4003
|
+
/** Additional CSS class. */
|
|
3550
4004
|
className?: string;
|
|
3551
4005
|
}
|
|
4006
|
+
/**
|
|
4007
|
+
* Stacked notices for the top of a page: platform notices first, then travel alerts.
|
|
4008
|
+
*/
|
|
3552
4009
|
declare const PageBanners: ({ systemBanners, alertBanners, className, }: PageBannersProps) => React.JSX.Element | null;
|
|
3553
4010
|
|
|
3554
4011
|
interface PreferenceField {
|
|
@@ -4098,6 +4555,9 @@ interface TableProps<T = any> {
|
|
|
4098
4555
|
/** Additional CSS class */
|
|
4099
4556
|
className?: string;
|
|
4100
4557
|
}
|
|
4558
|
+
/**
|
|
4559
|
+
* Data table with sorting, selection, and empty and loading states.
|
|
4560
|
+
*/
|
|
4101
4561
|
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;
|
|
4102
4562
|
|
|
4103
4563
|
interface TeamOption {
|
|
@@ -4132,61 +4592,106 @@ declare const TeamCard: {
|
|
|
4132
4592
|
|
|
4133
4593
|
type TeamContactId = string | number;
|
|
4134
4594
|
interface TeamContactOption {
|
|
4595
|
+
/** Identifier reported back through the selected contact ids. */
|
|
4135
4596
|
id: TeamContactId;
|
|
4597
|
+
/** Contact name shown in the picker. */
|
|
4136
4598
|
name: string;
|
|
4599
|
+
/** Role at the school, shown beside the name. */
|
|
4137
4600
|
title?: string;
|
|
4601
|
+
/** Contact email address. */
|
|
4138
4602
|
email?: string;
|
|
4603
|
+
/** Contact phone number. */
|
|
4139
4604
|
phone?: string;
|
|
4605
|
+
/** Whether the contact is still active. Inactive contacts stay selectable so existing assignments survive. */
|
|
4140
4606
|
active?: boolean;
|
|
4141
4607
|
}
|
|
4142
4608
|
interface TeamContactsValue {
|
|
4609
|
+
/** Contact who owns the trip. */
|
|
4143
4610
|
primaryContactId?: TeamContactId;
|
|
4611
|
+
/** Backup contact. */
|
|
4144
4612
|
secondaryContactId?: TeamContactId;
|
|
4613
|
+
/** Contacts copied on correspondence. Holes are kept so empty rows stay in place while editing. */
|
|
4145
4614
|
ccContactIds?: Array<TeamContactId | undefined>;
|
|
4146
4615
|
}
|
|
4147
4616
|
interface TeamContactsLoadingState {
|
|
4617
|
+
/** Whether the primary contact is being saved. */
|
|
4148
4618
|
primary?: boolean;
|
|
4619
|
+
/** Whether the secondary contact is being saved. */
|
|
4149
4620
|
secondary?: boolean;
|
|
4621
|
+
/** Per-row save state for the copied contacts, positionally matched to `ccContactIds`. */
|
|
4150
4622
|
cc?: boolean[];
|
|
4151
4623
|
}
|
|
4152
4624
|
interface TeamContactsPanelProps {
|
|
4625
|
+
/** Contacts available to assign. */
|
|
4153
4626
|
contacts: TeamContactOption[];
|
|
4627
|
+
/** Currently assigned contacts. */
|
|
4154
4628
|
value: TeamContactsValue;
|
|
4629
|
+
/** Called with the full assignment after any change. */
|
|
4155
4630
|
onChange?: (value: TeamContactsValue) => void;
|
|
4631
|
+
/** Disables every picker. */
|
|
4156
4632
|
disabled?: boolean;
|
|
4633
|
+
/** Per-slot save state, for showing progress on the row being written. */
|
|
4157
4634
|
loading?: TeamContactsLoadingState;
|
|
4635
|
+
/** Stable hook for acceptance and visual tests. */
|
|
4158
4636
|
dataTestId?: string;
|
|
4637
|
+
/** Additional CSS class. */
|
|
4159
4638
|
className?: string;
|
|
4160
4639
|
}
|
|
4640
|
+
/**
|
|
4641
|
+
* Assigns a team's primary, secondary, and copied travel contacts.
|
|
4642
|
+
* Each slot saves independently, so `loading` is per slot rather than per panel.
|
|
4643
|
+
*/
|
|
4161
4644
|
declare const TeamContactsPanel: {
|
|
4162
4645
|
({ contacts, value, onChange, disabled, loading, dataTestId, className, }: TeamContactsPanelProps): React.JSX.Element;
|
|
4163
4646
|
displayName: string;
|
|
4164
4647
|
};
|
|
4165
4648
|
|
|
4166
4649
|
interface SeasonOption {
|
|
4650
|
+
/** Value reported through `onSeasonChange` when this season is picked. */
|
|
4167
4651
|
value: string;
|
|
4652
|
+
/** Visible season text. */
|
|
4168
4653
|
label: string;
|
|
4169
4654
|
}
|
|
4170
4655
|
interface TeamScheduleActionsProps {
|
|
4656
|
+
/** Whether the schedule is currently in its compact layout. */
|
|
4171
4657
|
isCompactView: boolean;
|
|
4658
|
+
/** Number of trips in the current season, shown in the summary. */
|
|
4172
4659
|
tripCount: number;
|
|
4660
|
+
/** Label for the season currently shown. */
|
|
4173
4661
|
seasonLabel: string;
|
|
4662
|
+
/** Value of the selected season, when a season picker is offered. */
|
|
4174
4663
|
seasonValue?: string;
|
|
4664
|
+
/** Seasons available to pick from. Omit to show only the stepper arrows. */
|
|
4175
4665
|
seasonOptions?: SeasonOption[];
|
|
4666
|
+
/** Disables stepping back, at the earliest season on record. */
|
|
4176
4667
|
previousSeasonDisabled?: boolean;
|
|
4668
|
+
/** Disables export, when there is nothing to export. */
|
|
4177
4669
|
exportDisabled?: boolean;
|
|
4670
|
+
/** Shows export as in progress. */
|
|
4178
4671
|
exporting?: boolean;
|
|
4672
|
+
/** Disables raising a group travel request. */
|
|
4179
4673
|
groupTravelDisabled?: boolean;
|
|
4674
|
+
/** Disables merging events. */
|
|
4180
4675
|
mergeDisabled?: boolean;
|
|
4676
|
+
/** Shows the merge as in progress. */
|
|
4181
4677
|
merging?: boolean;
|
|
4678
|
+
/** Called when the user switches between compact and full schedule layouts. */
|
|
4182
4679
|
onViewSchedule?: () => void;
|
|
4680
|
+
/** Called when the user leaves the schedule. */
|
|
4183
4681
|
onBack?: () => void;
|
|
4682
|
+
/** Called when the user steps to the previous season. */
|
|
4184
4683
|
onPreviousSeason?: () => void;
|
|
4684
|
+
/** Called when the user steps to the next season. */
|
|
4185
4685
|
onNextSeason?: () => void;
|
|
4686
|
+
/** Called with the season the user picked. */
|
|
4186
4687
|
onSeasonChange?: (value: string) => void;
|
|
4688
|
+
/** Called when the user exports the schedule. */
|
|
4187
4689
|
onExport?: () => void;
|
|
4690
|
+
/** Called when the user raises a group travel request. */
|
|
4188
4691
|
onGroupTravelRequest?: () => void;
|
|
4692
|
+
/** Called when the user merges duplicate events. */
|
|
4189
4693
|
onMergeEvents?: () => void;
|
|
4694
|
+
/** Additional CSS class. */
|
|
4190
4695
|
className?: string;
|
|
4191
4696
|
}
|
|
4192
4697
|
/** Exact presentational counterpart of Hub's Team Schedule action controls. */
|
|
@@ -4194,18 +4699,29 @@ declare const TeamScheduleActions: ({ isCompactView, tripCount, seasonLabel, sea
|
|
|
4194
4699
|
|
|
4195
4700
|
/** @deprecated Legacy injected row. Prefer the structured `data` prop. */
|
|
4196
4701
|
interface TeamScheduleCompactRow {
|
|
4702
|
+
/** Identifier for the row. */
|
|
4197
4703
|
id: string | number;
|
|
4704
|
+
/** Rendered trip cell. */
|
|
4198
4705
|
trip: ReactNode;
|
|
4706
|
+
/** Rendered events cell. */
|
|
4199
4707
|
events: ReactNode;
|
|
4200
4708
|
}
|
|
4201
4709
|
interface TeamScheduleCompactEvent {
|
|
4710
|
+
/** Identifier for the event. */
|
|
4202
4711
|
id: string | number;
|
|
4712
|
+
/** Opposing school. */
|
|
4203
4713
|
opponent: string;
|
|
4714
|
+
/** Event name. */
|
|
4204
4715
|
title: string;
|
|
4716
|
+
/** Date the event is played. */
|
|
4205
4717
|
date: string;
|
|
4718
|
+
/** Start time, when one is set. */
|
|
4206
4719
|
time?: string;
|
|
4720
|
+
/** Marker shown while the date or time is still to be confirmed. */
|
|
4207
4721
|
tbc?: string;
|
|
4722
|
+
/** Where the event is played. */
|
|
4208
4723
|
location: string;
|
|
4724
|
+
/** Whether the event is home or away. */
|
|
4209
4725
|
homeAway: string;
|
|
4210
4726
|
/** Leading 48px cell (e.g. checkbox or drag handle). */
|
|
4211
4727
|
leading?: ReactNode;
|
|
@@ -4213,14 +4729,21 @@ interface TeamScheduleCompactEvent {
|
|
|
4213
4729
|
action?: ReactNode;
|
|
4214
4730
|
}
|
|
4215
4731
|
interface TeamScheduleCompactTrip {
|
|
4732
|
+
/** Identifier for the trip. */
|
|
4216
4733
|
id: string | number;
|
|
4734
|
+
/** Rendered group travel request indicator. */
|
|
4217
4735
|
gtr?: ReactNode;
|
|
4736
|
+
/** First day of travel. */
|
|
4218
4737
|
travelStart: string;
|
|
4738
|
+
/** Last day of travel. */
|
|
4219
4739
|
travelEnd: string;
|
|
4740
|
+
/** Trip name. */
|
|
4220
4741
|
tripName: string;
|
|
4742
|
+
/** Rendered summary of the travel services on the trip. */
|
|
4221
4743
|
services?: ReactNode;
|
|
4222
4744
|
/** Trailing 116px cell (e.g. Edit action). */
|
|
4223
4745
|
action?: ReactNode;
|
|
4746
|
+
/** Competitions the trip covers. */
|
|
4224
4747
|
events: TeamScheduleCompactEvent[];
|
|
4225
4748
|
}
|
|
4226
4749
|
interface TeamScheduleCompactTableProps {
|
|
@@ -4233,19 +4756,25 @@ interface TeamScheduleCompactTableProps {
|
|
|
4233
4756
|
rows?: TeamScheduleCompactRow[];
|
|
4234
4757
|
/** Header labels for legacy `rows` mode only. */
|
|
4235
4758
|
tripHeaders?: ReactNode[];
|
|
4759
|
+
/** Header labels for the event columns in legacy `rows` mode only. */
|
|
4236
4760
|
eventHeaders?: ReactNode[];
|
|
4761
|
+
/** Called when the user adds an event. */
|
|
4237
4762
|
onAddEvent?: () => void;
|
|
4763
|
+
/** Disables adding an event. */
|
|
4238
4764
|
addEventDisabled?: boolean;
|
|
4765
|
+
/** Additional CSS class. */
|
|
4239
4766
|
className?: string;
|
|
4240
4767
|
/** Click trip column headers to sort. */
|
|
4241
4768
|
enableSorting?: boolean;
|
|
4242
4769
|
/** Search box matching trip and event text. */
|
|
4243
4770
|
enableGlobalFilter?: boolean;
|
|
4771
|
+
/** Placeholder for the search box. */
|
|
4244
4772
|
globalFilterPlaceholder?: string;
|
|
4245
4773
|
/** Per-column text filters under the trip headers. */
|
|
4246
4774
|
enableColumnFilters?: boolean;
|
|
4247
4775
|
/** Page the trips with prev/next controls. */
|
|
4248
4776
|
enablePagination?: boolean;
|
|
4777
|
+
/** Trips per page when pagination is on. */
|
|
4249
4778
|
pageSize?: number;
|
|
4250
4779
|
/** Checkbox per trip plus a select-all header checkbox. */
|
|
4251
4780
|
enableRowSelection?: boolean;
|
|
@@ -4260,26 +4789,43 @@ interface TeamScheduleCompactTableProps {
|
|
|
4260
4789
|
declare const TeamScheduleCompactTable: ({ data, rows, tripHeaders, eventHeaders, onAddEvent, addEventDisabled, className, enableSorting, enableGlobalFilter, globalFilterPlaceholder, enableColumnFilters, enablePagination, pageSize, enableRowSelection, onRowSelectionChange, enableColumnVisibility, enableExpanding, }: TeamScheduleCompactTableProps) => React.JSX.Element;
|
|
4261
4790
|
|
|
4262
4791
|
interface TeamScheduleDueDate {
|
|
4792
|
+
/** Identifier for the task. */
|
|
4263
4793
|
id?: string | number;
|
|
4794
|
+
/** Short task name. */
|
|
4264
4795
|
title: string;
|
|
4796
|
+
/** Date the task is due. */
|
|
4265
4797
|
date: string;
|
|
4266
4798
|
}
|
|
4267
4799
|
interface TeamScheduleExpandedRow {
|
|
4800
|
+
/** Stable identifier for the trip. */
|
|
4268
4801
|
masterTripGUID: string;
|
|
4802
|
+
/** Sport the trip belongs to. */
|
|
4269
4803
|
sportCode?: string;
|
|
4804
|
+
/** First day of travel. */
|
|
4270
4805
|
travelStartDate?: string;
|
|
4806
|
+
/** Last day of travel. */
|
|
4271
4807
|
travelEndDate?: string;
|
|
4808
|
+
/** Trip name. */
|
|
4272
4809
|
tripName: string;
|
|
4810
|
+
/** Outstanding tasks for the trip. */
|
|
4273
4811
|
dueDates?: TeamScheduleDueDate[];
|
|
4812
|
+
/** Rendered air itinerary for the trip. */
|
|
4274
4813
|
airSegment?: ReactNode;
|
|
4814
|
+
/** Rendered ground itinerary for the trip. */
|
|
4275
4815
|
groundSegment?: ReactNode;
|
|
4816
|
+
/** Rendered lodging for the trip. */
|
|
4276
4817
|
hotelSegment?: ReactNode;
|
|
4277
4818
|
}
|
|
4278
4819
|
interface TeamScheduleExpandedTableProps {
|
|
4820
|
+
/** Trips to show, in display order. */
|
|
4279
4821
|
rows: TeamScheduleExpandedRow[];
|
|
4822
|
+
/** Team the schedule belongs to, shown in the header. */
|
|
4280
4823
|
teamCode?: string;
|
|
4824
|
+
/** Called with the trip the user opened. */
|
|
4281
4825
|
onTripClick?: (row: TeamScheduleExpandedRow) => void;
|
|
4826
|
+
/** Text shown when there are no trips. */
|
|
4282
4827
|
emptyMessage?: string;
|
|
4828
|
+
/** Additional CSS class. */
|
|
4283
4829
|
className?: string;
|
|
4284
4830
|
}
|
|
4285
4831
|
declare const formatTeamScheduleTravelDates: (startValue?: string, endValue?: string) => string;
|
|
@@ -4289,20 +4835,33 @@ declare const TeamScheduleExpandedTable: ({ rows, teamCode, onTripClick, emptyMe
|
|
|
4289
4835
|
|
|
4290
4836
|
type TeamScheduleHomeAway = 'Home' | 'Away' | 'Neutral';
|
|
4291
4837
|
interface TeamScheduleEditorEvent {
|
|
4838
|
+
/** Identifier for the event. */
|
|
4292
4839
|
id: string | number;
|
|
4840
|
+
/** Date the event is played. */
|
|
4293
4841
|
eventDate: string;
|
|
4842
|
+
/** Opposing school. */
|
|
4294
4843
|
opponent: string;
|
|
4844
|
+
/** Event name. */
|
|
4295
4845
|
eventTitle: string;
|
|
4846
|
+
/** Whether the event is home or away. */
|
|
4296
4847
|
homeOrAway: TeamScheduleHomeAway;
|
|
4848
|
+
/** Whether the event is a candidate for merging into another. */
|
|
4297
4849
|
mergeable?: boolean;
|
|
4298
4850
|
}
|
|
4299
4851
|
interface TeamScheduleEditorTrip {
|
|
4852
|
+
/** Identifier for the trip. */
|
|
4300
4853
|
id: string | number;
|
|
4854
|
+
/** Whether a group travel request has already been raised for the trip. */
|
|
4301
4855
|
gtrExists?: boolean;
|
|
4856
|
+
/** First day of travel. */
|
|
4302
4857
|
travelStartDate: string;
|
|
4858
|
+
/** Last day of travel. */
|
|
4303
4859
|
travelEndDate: string;
|
|
4860
|
+
/** Trip name. */
|
|
4304
4861
|
tripName: string;
|
|
4862
|
+
/** Travel services on the trip, as codes or a preformatted summary. */
|
|
4305
4863
|
services: string[] | string;
|
|
4864
|
+
/** Competitions the trip covers. */
|
|
4306
4865
|
events: TeamScheduleEditorEvent[];
|
|
4307
4866
|
}
|
|
4308
4867
|
interface TeamScheduleEditorProps {
|
|
@@ -4314,113 +4873,219 @@ interface TeamScheduleEditorProps {
|
|
|
4314
4873
|
opponentOptions?: string[];
|
|
4315
4874
|
/** Called after any saved edit or deletion. */
|
|
4316
4875
|
onChange?: (rows: TeamScheduleEditorTrip[]) => void;
|
|
4876
|
+
/** Called with the trip the user saved. */
|
|
4317
4877
|
onSaveTrip?: (trip: TeamScheduleEditorTrip) => void;
|
|
4878
|
+
/** Called with the trip the user deleted. */
|
|
4318
4879
|
onDeleteTrip?: (trip: TeamScheduleEditorTrip) => void;
|
|
4880
|
+
/** Called with the event the user saved, and its trip when it has one. */
|
|
4319
4881
|
onSaveEvent?: (event: TeamScheduleEditorEvent, trip?: TeamScheduleEditorTrip) => void;
|
|
4882
|
+
/** Called with the event the user deleted and the trip it came from. */
|
|
4320
4883
|
onDeleteEvent?: (event: TeamScheduleEditorEvent, trip: TeamScheduleEditorTrip) => void;
|
|
4884
|
+
/** Called with the trip the user raised a group travel request for. */
|
|
4321
4885
|
onOpenGroupTravelRequest?: (trip: TeamScheduleEditorTrip) => void;
|
|
4886
|
+
/** Called with the ids of the currently selected trips. */
|
|
4322
4887
|
onSelectedTripsChange?: (ids: Array<string | number>) => void;
|
|
4888
|
+
/** Called with the ids of the currently selected events. */
|
|
4323
4889
|
onSelectedEventsChange?: (ids: Array<string | number>) => void;
|
|
4890
|
+
/** Additional CSS class. */
|
|
4324
4891
|
className?: string;
|
|
4325
4892
|
}
|
|
4893
|
+
/**
|
|
4894
|
+
* Inline editor for a team's season: trips, and the events inside each trip.
|
|
4895
|
+
* Works controlled via `rows` or uncontrolled via `initialRows`.
|
|
4896
|
+
*/
|
|
4326
4897
|
declare const TeamScheduleEditor: ({ rows, initialRows, opponentOptions, onChange, onSaveTrip, onDeleteTrip, onSaveEvent, onDeleteEvent, onOpenGroupTravelRequest, onSelectedTripsChange, onSelectedEventsChange, className, }: TeamScheduleEditorProps) => React.JSX.Element;
|
|
4327
4898
|
|
|
4328
4899
|
type TeamTravelCalendarDuration = 'month' | 'week';
|
|
4329
4900
|
type TeamTravelCalendarItemType = 'trips' | 'due_dates';
|
|
4330
4901
|
interface TeamTravelCalendarDueDate {
|
|
4902
|
+
/** Identifier for the task, unique within the trip. */
|
|
4331
4903
|
taskid: number | string;
|
|
4904
|
+
/** Date the task is due. */
|
|
4332
4905
|
duedate: string;
|
|
4906
|
+
/** Short task name shown on the calendar. */
|
|
4333
4907
|
tasktitle: string;
|
|
4908
|
+
/** Longer explanation of what the task requires. */
|
|
4334
4909
|
description?: string;
|
|
4910
|
+
/** Workflow status of the task. */
|
|
4335
4911
|
status?: string;
|
|
4912
|
+
/** When the task was completed, absent while it is outstanding. */
|
|
4336
4913
|
completeddatetime?: string;
|
|
4914
|
+
/** Who completed the task. */
|
|
4337
4915
|
completedby?: string;
|
|
4916
|
+
/** Travel service the task belongs to (air, ground, hotel). */
|
|
4338
4917
|
servicetype?: string;
|
|
4918
|
+
/** Sport the task belongs to. */
|
|
4339
4919
|
sportCode?: string;
|
|
4920
|
+
/** Trip the task belongs to. */
|
|
4340
4921
|
tripId?: string;
|
|
4922
|
+
/** Name of that trip, for display without a second lookup. */
|
|
4341
4923
|
tripName?: string;
|
|
4924
|
+
/** Start date of that trip. */
|
|
4342
4925
|
tripStart?: string;
|
|
4926
|
+
/** Master trip this task rolls up to. */
|
|
4343
4927
|
masterTripGUID?: string;
|
|
4344
4928
|
}
|
|
4345
4929
|
interface TeamTravelCalendarEvent {
|
|
4930
|
+
/** Identifier for the event. */
|
|
4346
4931
|
id?: string | number;
|
|
4932
|
+
/** Event name. */
|
|
4347
4933
|
eventtitle?: string;
|
|
4934
|
+
/** Opposing team. */
|
|
4348
4935
|
opponentname?: string;
|
|
4936
|
+
/** Where the event is played. */
|
|
4349
4937
|
venuename?: string;
|
|
4938
|
+
/** Date the event starts. */
|
|
4350
4939
|
eventstartdate?: string;
|
|
4940
|
+
/** Whether the event is home or away. */
|
|
4351
4941
|
homeoraway?: string;
|
|
4352
4942
|
}
|
|
4353
4943
|
interface TeamTravelCalendarTrip {
|
|
4944
|
+
/** Stable identifier for the trip across systems. */
|
|
4354
4945
|
masterTripGUID: string;
|
|
4946
|
+
/** Numeric trip identifier, where the legacy portal uses one. */
|
|
4355
4947
|
masterTripID?: number | string;
|
|
4948
|
+
/** Sport the trip belongs to. */
|
|
4356
4949
|
sportCode: string;
|
|
4950
|
+
/** First day of travel. */
|
|
4357
4951
|
tripStart: string;
|
|
4952
|
+
/** Last day of travel. */
|
|
4358
4953
|
tripEnd: string;
|
|
4954
|
+
/** Trip name shown on the calendar. */
|
|
4359
4955
|
tripName: string;
|
|
4956
|
+
/** Booking status of the air portion. */
|
|
4360
4957
|
air_status?: string;
|
|
4958
|
+
/** Booking status of the charter portion. */
|
|
4361
4959
|
charter_status?: string;
|
|
4960
|
+
/** Booking status of the ground portion. */
|
|
4362
4961
|
ground_status?: string;
|
|
4962
|
+
/** Booking status of the hotel portion. */
|
|
4363
4963
|
hotel_status?: string;
|
|
4964
|
+
/** Tasks due for this trip. */
|
|
4364
4965
|
duedates?: TeamTravelCalendarDueDate[];
|
|
4966
|
+
/** Competitions this trip covers. */
|
|
4365
4967
|
events?: TeamTravelCalendarEvent[];
|
|
4366
4968
|
}
|
|
4367
4969
|
interface TeamTravelCalendarSportGroup {
|
|
4970
|
+
/** Sport the group covers. */
|
|
4368
4971
|
sportCode: string;
|
|
4972
|
+
/** Human-readable sport name. */
|
|
4369
4973
|
sportDescription: string;
|
|
4974
|
+
/** Number of upcoming trips, shown on the group header. */
|
|
4370
4975
|
upcomingCount?: number;
|
|
4976
|
+
/** Start date of the next trip, shown on the group header. */
|
|
4371
4977
|
nextTripStartDate?: string;
|
|
4978
|
+
/** Trips in the group. */
|
|
4372
4979
|
trips: TeamTravelCalendarTrip[];
|
|
4373
4980
|
}
|
|
4374
4981
|
interface TeamTravelCalendarToolbarProps {
|
|
4982
|
+
/** Period the calendar currently spans. */
|
|
4375
4983
|
duration: TeamTravelCalendarDuration;
|
|
4984
|
+
/** Period label shown between the navigation controls. */
|
|
4376
4985
|
label?: string;
|
|
4377
4986
|
/** Optional app-owned date picker/navigation control. */
|
|
4378
4987
|
navigation?: ReactNode;
|
|
4988
|
+
/** Called with the newly selected period length. */
|
|
4379
4989
|
onDurationChange?: (duration: TeamTravelCalendarDuration) => void;
|
|
4990
|
+
/** Called when the user jumps back to today. */
|
|
4380
4991
|
onToday?: () => void;
|
|
4992
|
+
/** Called when the user steps back one period. */
|
|
4381
4993
|
onPrevious?: () => void;
|
|
4994
|
+
/** Called when the user steps forward one period. */
|
|
4382
4995
|
onNext?: () => void;
|
|
4996
|
+
/** Additional CSS class. */
|
|
4383
4997
|
className?: string;
|
|
4384
4998
|
}
|
|
4999
|
+
/**
|
|
5000
|
+
* Period controls shared by the calendar views: previous, next, today, and month/week.
|
|
5001
|
+
* Stateless -- the host owns the active date and passes the label back in.
|
|
5002
|
+
*/
|
|
4385
5003
|
declare const TeamTravelCalendarToolbar: ({ duration, label, navigation, onDurationChange, onToday, onPrevious, onNext, className, }: TeamTravelCalendarToolbarProps) => React.JSX.Element;
|
|
4386
5004
|
interface TeamTravelCalendarViewProps {
|
|
5005
|
+
/** Any date inside the period to render. */
|
|
4387
5006
|
activeDate: string;
|
|
5007
|
+
/** Whether to render a month or a week. */
|
|
4388
5008
|
duration?: TeamTravelCalendarDuration;
|
|
5009
|
+
/** Whether cells plot trips or due dates. */
|
|
4389
5010
|
type?: TeamTravelCalendarItemType;
|
|
5011
|
+
/** Trips to plot. Used when `type` is `trips`. */
|
|
4390
5012
|
trips?: TeamTravelCalendarTrip[];
|
|
5013
|
+
/** Tasks to plot. Used when `type` is `due_dates`. */
|
|
4391
5014
|
dueDates?: TeamTravelCalendarDueDate[];
|
|
5015
|
+
/** Date to mark as today. Defaults to the current date; set it to keep snapshots stable. */
|
|
4392
5016
|
today?: string;
|
|
5017
|
+
/** Toolbar rendered above the grid, usually a TeamTravelCalendarToolbar. */
|
|
4393
5018
|
toolbar?: ReactNode;
|
|
5019
|
+
/** Called with the trip the user opened. */
|
|
4394
5020
|
onTripClick?: (trip: TeamTravelCalendarTrip) => void;
|
|
5021
|
+
/** Called with the day the user opened, and the task when one was clicked directly. */
|
|
4395
5022
|
onDueDateClick?: (date: string, dueDate?: TeamTravelCalendarDueDate) => void;
|
|
5023
|
+
/** Called with the task the user marked complete or incomplete. */
|
|
4396
5024
|
onDueDateToggle?: (dueDate: TeamTravelCalendarDueDate) => void;
|
|
5025
|
+
/** Additional CSS class. */
|
|
4397
5026
|
className?: string;
|
|
4398
5027
|
}
|
|
5028
|
+
/**
|
|
5029
|
+
* Month or week grid plotting a team's trips or task due dates onto calendar days.
|
|
5030
|
+
*/
|
|
4399
5031
|
declare const TeamTravelCalendarView: ({ activeDate, duration, type, trips, dueDates, today, toolbar, onTripClick, onDueDateClick, onDueDateToggle, className, }: TeamTravelCalendarViewProps) => React.JSX.Element;
|
|
4400
5032
|
interface TeamTravelCalendarCardViewProps {
|
|
5033
|
+
/** Trips grouped by sport, in display order. */
|
|
4401
5034
|
groups: TeamTravelCalendarSportGroup[];
|
|
5035
|
+
/** Whether cards summarize trips or due dates. */
|
|
4402
5036
|
type?: TeamTravelCalendarItemType;
|
|
5037
|
+
/** Toolbar rendered above the cards. */
|
|
4403
5038
|
toolbar?: ReactNode;
|
|
5039
|
+
/** Called with the trip the user opened. */
|
|
4404
5040
|
onTripClick?: (trip: TeamTravelCalendarTrip) => void;
|
|
5041
|
+
/** Called with the task the user opened. */
|
|
4405
5042
|
onDueDateClick?: (dueDate: TeamTravelCalendarDueDate) => void;
|
|
5043
|
+
/** Called with the task the user marked complete or incomplete. */
|
|
4406
5044
|
onDueDateToggle?: (dueDate: TeamTravelCalendarDueDate) => void;
|
|
5045
|
+
/** Additional CSS class. */
|
|
4407
5046
|
className?: string;
|
|
4408
5047
|
}
|
|
5048
|
+
/**
|
|
5049
|
+
* The same travel plotted as cards grouped by sport, for scanning across sports
|
|
5050
|
+
* rather than across dates.
|
|
5051
|
+
*/
|
|
4409
5052
|
declare const TeamTravelCalendarCardView: ({ groups, type, toolbar, onTripClick, onDueDateClick, onDueDateToggle, className, }: TeamTravelCalendarCardViewProps) => React.JSX.Element;
|
|
4410
5053
|
interface TeamTravelCalendarListViewProps {
|
|
5054
|
+
/** Trips to list, in display order. */
|
|
4411
5055
|
trips: TeamTravelCalendarTrip[];
|
|
5056
|
+
/** Whether rows show trips or due dates. */
|
|
4412
5057
|
type?: TeamTravelCalendarItemType;
|
|
5058
|
+
/** Toolbar rendered above the list. */
|
|
4413
5059
|
toolbar?: ReactNode;
|
|
5060
|
+
/** Label describing the period the list covers. */
|
|
4414
5061
|
periodLabel?: string;
|
|
5062
|
+
/** Count of upcoming trips shown in the list header. */
|
|
4415
5063
|
upcomingTrips?: number;
|
|
5064
|
+
/** Called with the trip the user opened. */
|
|
4416
5065
|
onTripClick?: (trip: TeamTravelCalendarTrip) => void;
|
|
5066
|
+
/** Called with the trip whose task list the user opened. */
|
|
4417
5067
|
onDueDatesClick?: (trip: TeamTravelCalendarTrip) => void;
|
|
5068
|
+
/** Called with the task the user opened. */
|
|
4418
5069
|
onDueDateClick?: (dueDate: TeamTravelCalendarDueDate) => void;
|
|
5070
|
+
/** Called with the task the user marked complete or incomplete. */
|
|
4419
5071
|
onDueDateToggle?: (dueDate: TeamTravelCalendarDueDate) => void;
|
|
5072
|
+
/** Additional CSS class. */
|
|
4420
5073
|
className?: string;
|
|
4421
5074
|
}
|
|
5075
|
+
/**
|
|
5076
|
+
* The same travel as a dense chronological list, for long periods that a grid
|
|
5077
|
+
* cannot show at once.
|
|
5078
|
+
*/
|
|
4422
5079
|
declare const TeamTravelCalendarListView: ({ trips, type, toolbar, periodLabel, upcomingTrips, onTripClick, onDueDatesClick, onDueDateClick, onDueDateToggle, className, }: TeamTravelCalendarListViewProps) => React.JSX.Element;
|
|
5080
|
+
/**
|
|
5081
|
+
* Formats the heading for a calendar period -- "March 2026" for a month,
|
|
5082
|
+
* a date range for a week.
|
|
5083
|
+
*/
|
|
4423
5084
|
declare const getTeamTravelCalendarPeriodLabel: (activeDate: string, duration: TeamTravelCalendarDuration) => string;
|
|
5085
|
+
/**
|
|
5086
|
+
* Steps a date forward or back by whole periods, returning the new active date.
|
|
5087
|
+
* Pass a negative `amount` to step backwards.
|
|
5088
|
+
*/
|
|
4424
5089
|
declare const moveTeamTravelCalendarPeriod: (activeDate: string, duration: TeamTravelCalendarDuration, amount: number) => string;
|
|
4425
5090
|
|
|
4426
5091
|
type TeamFormMode = 'Add' | 'Edit';
|
|
@@ -4440,84 +5105,154 @@ interface ManagedFormProps<T> {
|
|
|
4440
5105
|
showActions?: boolean;
|
|
4441
5106
|
/** Disable every field and action. */
|
|
4442
5107
|
disabled?: boolean;
|
|
5108
|
+
/** Additional CSS class. */
|
|
4443
5109
|
className?: string;
|
|
4444
5110
|
}
|
|
4445
5111
|
interface TeamEquipmentValues {
|
|
5112
|
+
/** What the item is. */
|
|
4446
5113
|
description: string;
|
|
5114
|
+
/** Weight per unit, in pounds. Drives the manifest payload total. */
|
|
4447
5115
|
weight: TeamNumericValue;
|
|
5116
|
+
/** How many are travelling. */
|
|
4448
5117
|
quantity: TeamNumericValue;
|
|
5118
|
+
/** Height per unit, in inches. */
|
|
4449
5119
|
height: TeamNumericValue;
|
|
5120
|
+
/** Width per unit, in inches. */
|
|
4450
5121
|
width: TeamNumericValue;
|
|
5122
|
+
/** Depth per unit, in inches. */
|
|
4451
5123
|
depth: TeamNumericValue;
|
|
4452
5124
|
}
|
|
4453
5125
|
interface TeamEquipmentFormProps extends ManagedFormProps<TeamEquipmentValues> {
|
|
5126
|
+
/** Whether the form is adding or editing. */
|
|
4454
5127
|
mode?: TeamFormMode;
|
|
4455
5128
|
}
|
|
5129
|
+
/**
|
|
5130
|
+
* Adds or edits a piece of team equipment, including the dimensions and weight
|
|
5131
|
+
* that charter payload planning depends on.
|
|
5132
|
+
*/
|
|
4456
5133
|
declare const TeamEquipmentForm: ({ mode, values, initialValues, onChange, onSubmit, onCancel, showActions, disabled, className, }: TeamEquipmentFormProps) => React.JSX.Element;
|
|
4457
5134
|
interface TeamUserAccessValues {
|
|
5135
|
+
/** Portal user being granted access to the team. */
|
|
4458
5136
|
userId: string;
|
|
4459
5137
|
}
|
|
4460
5138
|
interface TeamUserAccessFormProps extends ManagedFormProps<TeamUserAccessValues> {
|
|
5139
|
+
/** Portal users available to grant access to. */
|
|
4461
5140
|
options: SelectOption[];
|
|
4462
5141
|
}
|
|
5142
|
+
/**
|
|
5143
|
+
* Grants an existing portal user access to a team.
|
|
5144
|
+
*/
|
|
4463
5145
|
declare const TeamUserAccessForm: ({ options, values, initialValues, onChange, onSubmit, onCancel, showActions, disabled, className, }: TeamUserAccessFormProps) => React.JSX.Element;
|
|
4464
5146
|
type TeamProgramType = 'Air' | 'Car' | 'Hotel';
|
|
4465
5147
|
interface TeamProgramValues {
|
|
5148
|
+
/** Which loyalty program the number belongs to. */
|
|
4466
5149
|
type: TeamProgramType;
|
|
5150
|
+
/** Supplier running the program. */
|
|
4467
5151
|
supplier: string;
|
|
5152
|
+
/** The team's account or membership number. */
|
|
4468
5153
|
accountNumber: string;
|
|
4469
5154
|
}
|
|
4470
5155
|
interface TeamProgramFormProps extends ManagedFormProps<TeamProgramValues> {
|
|
5156
|
+
/** Suppliers to offer per program type. Types left out fall back to a free-text entry. */
|
|
4471
5157
|
supplierOptions?: Partial<Record<TeamProgramType, SelectOption[]>>;
|
|
4472
5158
|
}
|
|
5159
|
+
/**
|
|
5160
|
+
* Records a loyalty or corporate program number the team travels under.
|
|
5161
|
+
*/
|
|
4473
5162
|
declare const TeamProgramForm: ({ values, initialValues, onChange, onSubmit, onCancel, showActions, disabled, className, supplierOptions, }: TeamProgramFormProps) => React.JSX.Element;
|
|
4474
5163
|
interface TeamRosterMemberValues {
|
|
5164
|
+
/** Portal user this roster member is linked to, when they have an account. */
|
|
4475
5165
|
portalUserId: string;
|
|
5166
|
+
/** Given name, as it appears on the government ID used to travel. */
|
|
4476
5167
|
firstName: string;
|
|
5168
|
+
/** Middle name, as it appears on that ID. */
|
|
4477
5169
|
middleName: string;
|
|
5170
|
+
/** Confirms the traveler has no middle name, so the empty field is deliberate. */
|
|
4478
5171
|
noMiddleName: boolean;
|
|
5172
|
+
/** Family name, as it appears on that ID. */
|
|
4479
5173
|
lastName: string;
|
|
5174
|
+
/** Whether the traveler is an athlete, coach, staff member, or guest. */
|
|
4480
5175
|
travelerType: string;
|
|
5176
|
+
/** Date of birth, required by carriers for ticketing. */
|
|
4481
5177
|
birthDate: string;
|
|
5178
|
+
/** Gender as recorded on the travel document. */
|
|
4482
5179
|
gender: string;
|
|
5180
|
+
/** Traveler weight, in pounds. Feeds charter payload calculations. */
|
|
4483
5181
|
weight: TeamNumericValue;
|
|
5182
|
+
/** Passport number, for international travel. */
|
|
4484
5183
|
passportNumber: string;
|
|
5184
|
+
/** TSA PreCheck / Known Traveler Number. */
|
|
4485
5185
|
knownTravelerNumber: string;
|
|
5186
|
+
/** DHS redress number, where the traveler has one. */
|
|
4486
5187
|
dhsRedressNumber: string;
|
|
5188
|
+
/** Airline the frequent flyer number belongs to. */
|
|
4487
5189
|
airline: string;
|
|
5190
|
+
/** Frequent flyer number for that airline. */
|
|
4488
5191
|
frequentFlyerNumber: string;
|
|
5192
|
+
/** Accessibility needs, seating, and meal requests. */
|
|
4489
5193
|
specialRequests: string;
|
|
4490
5194
|
}
|
|
4491
5195
|
interface TeamPortalUserOption extends SelectOption {
|
|
5196
|
+
/** Traveler details to prefill the form with when this user is picked. */
|
|
4492
5197
|
traveler?: Partial<TeamRosterMemberValues>;
|
|
4493
5198
|
}
|
|
4494
5199
|
interface TeamRosterMemberFormProps extends ManagedFormProps<TeamRosterMemberValues> {
|
|
5200
|
+
/** Whether the form is adding or editing. */
|
|
4495
5201
|
mode?: TeamFormMode;
|
|
5202
|
+
/** Portal users a roster member can be created from. */
|
|
4496
5203
|
portalUsers?: TeamPortalUserOption[];
|
|
5204
|
+
/** Airlines offered for the frequent flyer number. */
|
|
4497
5205
|
airlineOptions?: SelectOption[];
|
|
5206
|
+
/** Traveler types offered. */
|
|
4498
5207
|
travelerTypeOptions?: SelectOption[];
|
|
4499
5208
|
}
|
|
5209
|
+
/**
|
|
5210
|
+
* Adds or edits a roster member, including the identity details carriers require
|
|
5211
|
+
* for ticketing. Can prefill from a linked portal user.
|
|
5212
|
+
*/
|
|
4500
5213
|
declare const TeamRosterMemberForm: ({ mode, values, initialValues, onChange, onSubmit, onCancel, showActions, disabled, className, portalUsers, airlineOptions, travelerTypeOptions, }: TeamRosterMemberFormProps) => React.JSX.Element;
|
|
4501
5214
|
type TeamImportKind = 'equipment' | 'roster' | 'teamworks-roster';
|
|
4502
5215
|
interface TeamImportFormProps {
|
|
5216
|
+
/** What the uploaded file contains. */
|
|
4503
5217
|
kind: TeamImportKind;
|
|
5218
|
+
/** Called with the file the user chose. */
|
|
4504
5219
|
onSubmit?: (file: File) => void;
|
|
5220
|
+
/** Called when the user abandons the import. */
|
|
4505
5221
|
onCancel?: () => void;
|
|
5222
|
+
/** Disables the form while an import is running. */
|
|
4506
5223
|
disabled?: boolean;
|
|
5224
|
+
/** Additional CSS class. */
|
|
4507
5225
|
className?: string;
|
|
4508
5226
|
}
|
|
5227
|
+
/**
|
|
5228
|
+
* Bulk-loads roster or equipment records from an uploaded file.
|
|
5229
|
+
*/
|
|
4509
5230
|
declare const TeamImportForm: ({ kind, onSubmit, onCancel, disabled, className }: TeamImportFormProps) => React.JSX.Element;
|
|
4510
5231
|
|
|
4511
5232
|
interface TravelSummaryMetricsProps {
|
|
5233
|
+
/** Trips completed so far this season. */
|
|
4512
5234
|
tripsTraveled?: string | number;
|
|
5235
|
+
/** Trips still ahead this season. */
|
|
4513
5236
|
remainingTrips?: string | number;
|
|
5237
|
+
/** Total trip spend for the season. */
|
|
4514
5238
|
seasonTripCosts?: string | number;
|
|
5239
|
+
/** Season the figures cover. */
|
|
4515
5240
|
seasonLabel: string;
|
|
5241
|
+
/** Count of overdue tasks, surfaced as the one actionable tile. */
|
|
4516
5242
|
overdueActions?: string | number;
|
|
5243
|
+
/** Called when the user opens the overdue tasks. The tile is static without it. */
|
|
4517
5244
|
onOverdueActionsClick?: () => void;
|
|
5245
|
+
/** Additional CSS class. */
|
|
4518
5246
|
className?: string;
|
|
4519
5247
|
}
|
|
5248
|
+
/**
|
|
5249
|
+
* Formats a trip cost for a metric tile, abbreviating thousands so long figures
|
|
5250
|
+
* do not wrap.
|
|
5251
|
+
*/
|
|
4520
5252
|
declare const formatCompactTripCost: (value?: string | number) => string | undefined;
|
|
5253
|
+
/**
|
|
5254
|
+
* Season-at-a-glance tiles: trips taken, trips remaining, spend, and overdue tasks.
|
|
5255
|
+
*/
|
|
4521
5256
|
declare const TravelSummaryMetrics: ({ tripsTraveled, remainingTrips, seasonTripCosts, seasonLabel, overdueActions, onOverdueActionsClick, className, }: TravelSummaryMetricsProps) => React.JSX.Element;
|
|
4522
5257
|
|
|
4523
5258
|
interface TravelerFormData {
|
|
@@ -4555,7 +5290,9 @@ interface TravelerFormProps {
|
|
|
4555
5290
|
children?: ReactNode;
|
|
4556
5291
|
/** Form sections - render props approach */
|
|
4557
5292
|
renderNameSection?: (values: TravelerFormData) => ReactNode;
|
|
5293
|
+
/** Renders the traveler detail fields, given the current values. */
|
|
4558
5294
|
renderDetailsSection?: (values: TravelerFormData) => ReactNode;
|
|
5295
|
+
/** Renders the travel preference fields, given the current values. */
|
|
4559
5296
|
renderPreferencesSection?: (values: TravelerFormData) => ReactNode;
|
|
4560
5297
|
/** Footer actions */
|
|
4561
5298
|
footer?: ReactNode;
|
|
@@ -4629,6 +5366,9 @@ interface TripTableProps {
|
|
|
4629
5366
|
/** Additional CSS class */
|
|
4630
5367
|
className?: string;
|
|
4631
5368
|
}
|
|
5369
|
+
/**
|
|
5370
|
+
* Trip listing with the segment, status, and date columns the travel screens share.
|
|
5371
|
+
*/
|
|
4632
5372
|
declare const TripTable: React__default.FC<TripTableProps>;
|
|
4633
5373
|
|
|
4634
5374
|
type AdministrationTab = 'system' | 'client';
|
|
@@ -4639,13 +5379,19 @@ interface AdministrationCard {
|
|
|
4639
5379
|
icon?: ReactNode;
|
|
4640
5380
|
}
|
|
4641
5381
|
interface AdministrationPageProps {
|
|
5382
|
+
/** Tab currently shown. */
|
|
4642
5383
|
activeTab?: AdministrationTab;
|
|
4643
5384
|
/** Authoritative tabs for the current viewer. An empty array renders no tab controls. */
|
|
4644
5385
|
enabledTabs?: AdministrationTab[];
|
|
5386
|
+
/** Called with the tab the user selected. */
|
|
4645
5387
|
onTabChange?: (tab: AdministrationTab) => void;
|
|
5388
|
+
/** Administration destinations offered on the current tab. */
|
|
4646
5389
|
cards?: AdministrationCard[];
|
|
5390
|
+
/** Called with the destination the user opened. */
|
|
4647
5391
|
onCardClick?: (card: AdministrationCard) => void;
|
|
5392
|
+
/** Content rendered below the cards, for a tab that hosts its own screen. */
|
|
4648
5393
|
children?: ReactNode;
|
|
5394
|
+
/** Additional CSS class. */
|
|
4649
5395
|
className?: string;
|
|
4650
5396
|
}
|
|
4651
5397
|
/** Hub administration shell and system-card index. */
|
|
@@ -4664,20 +5410,35 @@ interface AgentGroupTravelRequestsPageProps {
|
|
|
4664
5410
|
today?: string;
|
|
4665
5411
|
/** Shows the STM-employee-only quick links (agent request form, CDS requests, actionable items, administer views). */
|
|
4666
5412
|
isStmEmployee?: boolean;
|
|
5413
|
+
/** Called when the agent returns to booking. */
|
|
4667
5414
|
onBackToBookATrip?: () => void;
|
|
5415
|
+
/** Called when the agent raises a request on behalf of a school. */
|
|
4668
5416
|
onSubmitNewRequest?: () => void;
|
|
5417
|
+
/** Called when the agent raises a request through the agent-only form. */
|
|
4669
5418
|
onSubmitAgentRequest?: () => void;
|
|
5419
|
+
/** Called when the agent searches closed requests. */
|
|
4670
5420
|
onSearchPastRequests?: () => void;
|
|
5421
|
+
/** Called when the agent opens the CDS request queue. */
|
|
4671
5422
|
onShowCdsRequests?: () => void;
|
|
5423
|
+
/** Called when the agent opens the items needing action. */
|
|
4672
5424
|
onShowActionableItems?: () => void;
|
|
5425
|
+
/** Called when the agent manages the saved account-group views. */
|
|
4673
5426
|
onAdministerViews?: () => void;
|
|
5427
|
+
/** Called with the request the agent opened. */
|
|
4674
5428
|
onOpenRequest?: (id: number) => void;
|
|
5429
|
+
/** Called with the master trip the agent opened. */
|
|
4675
5430
|
onViewMasterTrip?: (masterTripId: number) => void;
|
|
5431
|
+
/** Called with the request the agent deleted. */
|
|
4676
5432
|
onDeleteRequest?: (id: number) => void;
|
|
5433
|
+
/** Called with the record locator the agent copied. */
|
|
4677
5434
|
onCopyPnr?: (recordLocator: string) => void;
|
|
5435
|
+
/** Called with the request and the milestone the agent marked complete or incomplete. */
|
|
4678
5436
|
onToggleDueStatus?: (id: number, field: GroupTravelDueField) => void;
|
|
5437
|
+
/** Called with the request and its new submitted date. */
|
|
4679
5438
|
onSubmittedDateChange?: (id: number, value: string) => void;
|
|
5439
|
+
/** Called with the request and its new quote-sent date. */
|
|
4680
5440
|
onQuoteSentDateChange?: (id: number, value: string) => void;
|
|
5441
|
+
/** Additional CSS class. */
|
|
4681
5442
|
className?: string;
|
|
4682
5443
|
}
|
|
4683
5444
|
/** Hub's agent-facing Group Travel Request screen — the "Book a Trip" quick links plus the open-requests list. */
|
|
@@ -4810,6 +5571,7 @@ interface ChampionshipBidDetailPageProps {
|
|
|
4810
5571
|
onBack?: () => void;
|
|
4811
5572
|
/** BCP 47 locale used to format seats and total cost. */
|
|
4812
5573
|
locale?: string;
|
|
5574
|
+
/** Additional CSS class. */
|
|
4813
5575
|
className?: string;
|
|
4814
5576
|
}
|
|
4815
5577
|
/**
|
|
@@ -5022,31 +5784,57 @@ interface CharterManifestEquipment {
|
|
|
5022
5784
|
weight: number;
|
|
5023
5785
|
}
|
|
5024
5786
|
interface CharterManifestPageProps {
|
|
5787
|
+
/** Trip the manifest belongs to. */
|
|
5025
5788
|
tripName: string;
|
|
5789
|
+
/** First day of travel. */
|
|
5026
5790
|
travelStartDate?: string;
|
|
5791
|
+
/** Last day of travel. */
|
|
5027
5792
|
travelEndDate?: string;
|
|
5793
|
+
/** Seats available on the aircraft. */
|
|
5028
5794
|
seats: number;
|
|
5795
|
+
/** Maximum payload the aircraft can carry, in pounds. */
|
|
5029
5796
|
payloadLimit: number;
|
|
5797
|
+
/** Total passenger weight, in pounds. */
|
|
5030
5798
|
passengerWeight: number;
|
|
5799
|
+
/** Total cargo and equipment weight, in pounds. */
|
|
5031
5800
|
cargoWeight: number;
|
|
5801
|
+
/** Operator flying the charter. */
|
|
5032
5802
|
carrierName?: string;
|
|
5803
|
+
/** Note from the operator about the manifest. */
|
|
5033
5804
|
carrierNote?: string;
|
|
5805
|
+
/** Passengers currently manifested. */
|
|
5034
5806
|
passengers?: CharterManifestPassenger[];
|
|
5807
|
+
/** Equipment currently manifested. */
|
|
5035
5808
|
equipment?: CharterManifestEquipment[];
|
|
5809
|
+
/** Flight segments the manifest covers. */
|
|
5036
5810
|
segments?: CharterManifestSegment[];
|
|
5811
|
+
/** Whether the manifest is locked against further edits after a final send. */
|
|
5037
5812
|
locked?: boolean;
|
|
5813
|
+
/** How far the manifest has progressed through initial and final sends. */
|
|
5038
5814
|
sendState?: ManifestSendState;
|
|
5815
|
+
/** Called when the user leaves the manifest. */
|
|
5039
5816
|
onBack?: () => void;
|
|
5817
|
+
/** Called when the user generates the manifest file for the operator. */
|
|
5040
5818
|
onGenerateFile?: () => void;
|
|
5819
|
+
/** Called when the user reassigns the charter to another operator. */
|
|
5041
5820
|
onChangeCarrier?: () => void;
|
|
5821
|
+
/** Called when the user splits the manifest across segments. */
|
|
5042
5822
|
onSplitSegments?: () => void;
|
|
5823
|
+
/** Called when the user adds passengers. */
|
|
5043
5824
|
onAddPassengers?: () => void;
|
|
5825
|
+
/** Called when the user adds equipment. */
|
|
5044
5826
|
onAddEquipment?: () => void;
|
|
5827
|
+
/** Called with the passenger the user removed. */
|
|
5045
5828
|
onRemovePassenger?: (passenger: CharterManifestPassenger) => void;
|
|
5829
|
+
/** Called with the equipment the user removed. */
|
|
5046
5830
|
onRemoveEquipment?: (equipment: CharterManifestEquipment) => void;
|
|
5831
|
+
/** Called when the user sends the initial manifest to the operator. */
|
|
5047
5832
|
onSendInitial?: () => void;
|
|
5833
|
+
/** Called when the user sends the final manifest, locking it. */
|
|
5048
5834
|
onSendFinal?: () => void;
|
|
5835
|
+
/** Called when the user retracts an initial send. */
|
|
5049
5836
|
onUndoInitial?: () => void;
|
|
5837
|
+
/** Additional CSS class. */
|
|
5050
5838
|
className?: string;
|
|
5051
5839
|
}
|
|
5052
5840
|
/** Stateless, service-free rendering of Hub's charter manifest page. */
|
|
@@ -5104,6 +5892,7 @@ interface ChartersAccessManagementPageProps {
|
|
|
5104
5892
|
onChangeRole?: (membership: ChartersAccessMembership, role: ChartersAccessRole) => void | Promise<void>;
|
|
5105
5893
|
/** Remove STM Charters access after the page confirmation. */
|
|
5106
5894
|
onRemoveAccess?: (membership: ChartersAccessMembership) => void | Promise<void>;
|
|
5895
|
+
/** Additional CSS class. */
|
|
5107
5896
|
className?: string;
|
|
5108
5897
|
}
|
|
5109
5898
|
/**
|
|
@@ -5212,14 +6001,21 @@ interface ContactUsData {
|
|
|
5212
6001
|
groupHotelContacts?: ContactInfo[];
|
|
5213
6002
|
}
|
|
5214
6003
|
interface ContactUsPageProps {
|
|
6004
|
+
/** Page heading. */
|
|
5215
6005
|
title?: string;
|
|
6006
|
+
/** Which state to render. Drives the loading, empty, and error treatments. */
|
|
5216
6007
|
state?: 'loading' | 'data' | 'empty' | 'error';
|
|
6008
|
+
/** Message shown in the error state. */
|
|
5217
6009
|
errorMessage?: string;
|
|
6010
|
+
/** Contact details to show in the data state. */
|
|
5218
6011
|
data?: ContactUsData;
|
|
6012
|
+
/** Called when the user prints the contact sheet. */
|
|
5219
6013
|
onPrint?: () => void;
|
|
5220
6014
|
/** Generic cards remain available for non-Hub consumers. */
|
|
5221
6015
|
cards?: ContactCardData[];
|
|
6016
|
+
/** Content rendered below the cards. */
|
|
5222
6017
|
children?: ReactNode;
|
|
6018
|
+
/** Additional CSS class. */
|
|
5223
6019
|
className?: string;
|
|
5224
6020
|
}
|
|
5225
6021
|
/** Exact presentational counterpart of the Hub Contact Us screen. */
|
|
@@ -5274,21 +6070,37 @@ interface DashboardWidget {
|
|
|
5274
6070
|
};
|
|
5275
6071
|
}
|
|
5276
6072
|
interface DashboardPageProps {
|
|
6073
|
+
/** Greeting line above the name. */
|
|
5277
6074
|
greeting?: string;
|
|
6075
|
+
/** Name the greeting addresses. */
|
|
5278
6076
|
firstName?: string;
|
|
6077
|
+
/** School or account shown in the subtitle. */
|
|
5279
6078
|
accountName?: string;
|
|
6079
|
+
/** Widgets to render, in display order. */
|
|
5280
6080
|
widgets?: DashboardWidget[];
|
|
6081
|
+
/** Platform-wide notices shown above the widgets. */
|
|
5281
6082
|
systemBanners?: SystemBanner[];
|
|
6083
|
+
/** Travel alerts shown above the widgets. */
|
|
5282
6084
|
alertBanners?: TravelAlertBanner[];
|
|
6085
|
+
/** Whether the layout is saved, saving, or failed to save. */
|
|
5283
6086
|
syncStatus?: 'idle' | 'saving' | 'error';
|
|
6087
|
+
/** Called with the widget the user refreshed. */
|
|
5284
6088
|
onRefresh?: (widget: DashboardWidget) => void;
|
|
6089
|
+
/** Called with the widget the user removed. */
|
|
5285
6090
|
onRemove?: (widget: DashboardWidget) => void;
|
|
6091
|
+
/** Called with the widget and its new size. */
|
|
5286
6092
|
onResize?: (widget: DashboardWidget, size: DashboardWidgetSize) => void;
|
|
6093
|
+
/** Called with the positions a widget moved from and to. */
|
|
5287
6094
|
onReorder?: (from: number, to: number) => void;
|
|
6095
|
+
/** Called when the user restores the default layout. */
|
|
5288
6096
|
onReset?: () => void;
|
|
6097
|
+
/** Called with the type of widget the user added. */
|
|
5289
6098
|
onAddWidget?: (type: DashboardWidget['type']) => void;
|
|
6099
|
+
/** Called with the widget and the traveler date range the user picked. */
|
|
5290
6100
|
onTravelerRangeChange?: (widget: DashboardWidget, range: DashboardTravelerRange) => void;
|
|
6101
|
+
/** Called with the route a widget link points at. The host performs the routing. */
|
|
5291
6102
|
onNavigate?: (path: string, state?: unknown) => void;
|
|
6103
|
+
/** Additional CSS class. */
|
|
5292
6104
|
className?: string;
|
|
5293
6105
|
}
|
|
5294
6106
|
/** Exact, service-free rendering of Hub's personalized home page. */
|
|
@@ -5369,22 +6181,33 @@ interface FeatureFlagManagementPageProps {
|
|
|
5369
6181
|
rules: FeatureFlagRule[];
|
|
5370
6182
|
/** Controlled account and audience options. */
|
|
5371
6183
|
targetOptions: FeatureFlagTargetOptions;
|
|
6184
|
+
/** Whether the catalog and rules are still loading. */
|
|
5372
6185
|
loading?: boolean;
|
|
6186
|
+
/** Load error shown in place of the rule list. */
|
|
5373
6187
|
error?: string;
|
|
6188
|
+
/** Called when the user retries a failed load. */
|
|
5374
6189
|
onRetry?: () => void;
|
|
5375
6190
|
/** Host mutation state. It disables all mutation controls. */
|
|
5376
6191
|
submitting?: boolean;
|
|
5377
6192
|
/** Controlled user-search results are returned through `targetOptions.users`. */
|
|
5378
6193
|
onSearchUsers?: (query: string, accountId?: FeatureFlagIdentifier) => void | Promise<void>;
|
|
6194
|
+
/** Whether a user search is in flight. */
|
|
5379
6195
|
userSearchLoading?: boolean;
|
|
6196
|
+
/** Error from the last user search. */
|
|
5380
6197
|
userSearchError?: string;
|
|
5381
6198
|
/** Called when an account selection needs account-scoped audience options from the host. */
|
|
5382
6199
|
onAccountChange?: (accountId?: FeatureFlagIdentifier) => void | Promise<void>;
|
|
6200
|
+
/** Whether account-scoped audience options are loading. */
|
|
5383
6201
|
audienceLoading?: boolean;
|
|
6202
|
+
/** Error from the last audience load. */
|
|
5384
6203
|
audienceError?: string;
|
|
6204
|
+
/** Called with the rule the user created. */
|
|
5385
6205
|
onCreateRule?: (value: FeatureFlagRuleFormValue) => void | Promise<void>;
|
|
6206
|
+
/** Called with the edit the user submitted. */
|
|
5386
6207
|
onEditRule?: (request: FeatureFlagRuleEditRequest) => void | Promise<void>;
|
|
6208
|
+
/** Called with the rule the user deactivated. */
|
|
5387
6209
|
onDeactivateRule?: (request: FeatureFlagRuleDeactivateRequest) => void | Promise<void>;
|
|
6210
|
+
/** Additional CSS class. */
|
|
5388
6211
|
className?: string;
|
|
5389
6212
|
}
|
|
5390
6213
|
/**
|
|
@@ -5407,20 +6230,36 @@ interface GroupTravelRequestContact {
|
|
|
5407
6230
|
email?: string;
|
|
5408
6231
|
}
|
|
5409
6232
|
interface GroupTravelRequestPageProps {
|
|
6233
|
+
/** Event the request is being raised for, shown in the heading. */
|
|
5410
6234
|
eventName?: string;
|
|
6235
|
+
/** Number of steps in the wizard, shown in the progress indicator. */
|
|
5411
6236
|
totalPages?: number;
|
|
6237
|
+
/** Called with the completed request. */
|
|
5412
6238
|
onSubmit?: (data: GroupTravelRequestValues) => void;
|
|
6239
|
+
/** Called when the user abandons the request. */
|
|
5413
6240
|
onCancel?: () => void;
|
|
6241
|
+
/** Called with the full request on every field change. */
|
|
5414
6242
|
onChange?: (data: GroupTravelRequestValues) => void;
|
|
6243
|
+
/** Values to prefill the wizard with. */
|
|
5415
6244
|
initialValues?: GroupTravelRequestValues;
|
|
6245
|
+
/** Team contacts offered as the request contact. */
|
|
5416
6246
|
contacts?: GroupTravelRequestContact[];
|
|
6247
|
+
/** Catering choices offered for the trip. */
|
|
5417
6248
|
cateringOptions?: string[];
|
|
6249
|
+
/** Default pickup address, offered as the departure point. */
|
|
5418
6250
|
schoolAddress?: string;
|
|
6251
|
+
/** Travel services the request can cover, and how each is configured. */
|
|
5419
6252
|
services?: ServiceConfig[];
|
|
5420
6253
|
/** Retained for consumers that provide a custom summary configuration. */
|
|
5421
6254
|
summarySections?: SummarySectionConfig[];
|
|
6255
|
+
/** Additional CSS class. */
|
|
5422
6256
|
className?: string;
|
|
5423
6257
|
}
|
|
6258
|
+
/**
|
|
6259
|
+
* Multi-step wizard for requesting travel for a whole team.
|
|
6260
|
+
* Collects the trip, the services needed, and the traveling party, and hands the
|
|
6261
|
+
* completed request to the host through `onSubmit`.
|
|
6262
|
+
*/
|
|
5424
6263
|
declare const GroupTravelRequestPage: {
|
|
5425
6264
|
({ eventName, totalPages, onSubmit, onCancel, onChange, initialValues, contacts, cateringOptions, schoolAddress, services, summarySections, className, }: GroupTravelRequestPageProps): React.JSX.Element;
|
|
5426
6265
|
displayName: string;
|
|
@@ -5539,6 +6378,10 @@ interface IndividualTravelPageProps {
|
|
|
5539
6378
|
/** Additional CSS class. */
|
|
5540
6379
|
className?: string;
|
|
5541
6380
|
}
|
|
6381
|
+
/**
|
|
6382
|
+
* Landing page for a single traveler's own requests, listing what they have raised
|
|
6383
|
+
* and offering a new one.
|
|
6384
|
+
*/
|
|
5542
6385
|
declare const IndividualTravelPage: React__default.FC<IndividualTravelPageProps>;
|
|
5543
6386
|
|
|
5544
6387
|
/** Travel services represented by the legacy individual-request record. */
|
|
@@ -5730,9 +6573,17 @@ interface IndividualTravelRequestFormPageProps {
|
|
|
5730
6573
|
onRetry?: () => void;
|
|
5731
6574
|
/** Optional account-specific fee or response-time notice. */
|
|
5732
6575
|
notice?: ReactNode;
|
|
6576
|
+
/** Label for the submit button. */
|
|
5733
6577
|
submitLabel?: string;
|
|
6578
|
+
/** Additional CSS class. */
|
|
5734
6579
|
className?: string;
|
|
5735
6580
|
}
|
|
6581
|
+
/**
|
|
6582
|
+
* Form for one traveler to request their own travel.
|
|
6583
|
+
* The questions asked come from the account configuration, so the host supplies
|
|
6584
|
+
* them rather than the page assuming a fixed set.
|
|
6585
|
+
* Renders read-only when no `onSubmit` is given.
|
|
6586
|
+
*/
|
|
5736
6587
|
declare const IndividualTravelRequestFormPage: React__default.FC<IndividualTravelRequestFormPageProps>;
|
|
5737
6588
|
|
|
5738
6589
|
interface IndividualTravelRequestDetailPageProps {
|
|
@@ -5746,9 +6597,11 @@ interface IndividualTravelRequestDetailPageProps {
|
|
|
5746
6597
|
notice?: ReactNode;
|
|
5747
6598
|
/** Optional host-owned return route. Hidden when absent. */
|
|
5748
6599
|
onBack?: () => void;
|
|
6600
|
+
/** Label for the back link. */
|
|
5749
6601
|
backLabel?: string;
|
|
5750
6602
|
/** Optional retry for a failed host query. Hidden unless an error is present. */
|
|
5751
6603
|
onRetry?: () => void;
|
|
6604
|
+
/** Additional CSS class. */
|
|
5752
6605
|
className?: string;
|
|
5753
6606
|
}
|
|
5754
6607
|
/**
|
|
@@ -6176,12 +7029,21 @@ interface RosterProgramNumberRow {
|
|
|
6176
7029
|
accountNumber: string;
|
|
6177
7030
|
}
|
|
6178
7031
|
interface RosterProgramNumbersPageProps {
|
|
7032
|
+
/** Loyalty and corporate program numbers held for the team. */
|
|
6179
7033
|
programs: RosterProgramNumberRow[];
|
|
7034
|
+
/** Whether the programs are still loading. */
|
|
6180
7035
|
loading?: boolean;
|
|
7036
|
+
/** Whether a save is in flight. */
|
|
6181
7037
|
saving?: boolean;
|
|
7038
|
+
/** Called when the user leaves the page. */
|
|
6182
7039
|
onBack?: () => void;
|
|
7040
|
+
/** Called with the full set of programs the user saved. */
|
|
6183
7041
|
onSubmit?: (programs: RosterProgramNumberRow[]) => void | Promise<void>;
|
|
6184
7042
|
}
|
|
7043
|
+
/**
|
|
7044
|
+
* Edits the loyalty and corporate program numbers a team travels under, saving them
|
|
7045
|
+
* as one set.
|
|
7046
|
+
*/
|
|
6185
7047
|
declare const RosterProgramNumbersPage: {
|
|
6186
7048
|
({ programs, loading, saving, onBack, onSubmit, }: RosterProgramNumbersPageProps): React.JSX.Element;
|
|
6187
7049
|
displayName: string;
|
|
@@ -6234,11 +7096,18 @@ interface RosterReportOption {
|
|
|
6234
7096
|
description?: string;
|
|
6235
7097
|
}
|
|
6236
7098
|
interface RosterReportsPageProps {
|
|
7099
|
+
/** Reports the user can run. */
|
|
6237
7100
|
reports: RosterReportOption[];
|
|
7101
|
+
/** Report currently running, shown as in progress. */
|
|
6238
7102
|
runningReportId?: string;
|
|
7103
|
+
/** Called when the user leaves the page. */
|
|
6239
7104
|
onBack?: () => void;
|
|
7105
|
+
/** Called with the report the user ran. */
|
|
6240
7106
|
onRun?: (report: RosterReportOption) => void | Promise<void>;
|
|
6241
7107
|
}
|
|
7108
|
+
/**
|
|
7109
|
+
* Lists the roster reports a user can run, and reports progress while one runs.
|
|
7110
|
+
*/
|
|
6242
7111
|
declare const RosterReportsPage: {
|
|
6243
7112
|
({ reports, runningReportId, onBack, onRun }: RosterReportsPageProps): React.JSX.Element;
|
|
6244
7113
|
displayName: string;
|