@shortstravelmgmt/component-lib 0.1.0
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 +209 -0
- package/dist/index.d.ts +2146 -0
- package/dist/index.esm.js +2163 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/index.js +2296 -0
- package/dist/index.js.map +1 -0
- package/dist/styles.css +2 -0
- package/dist/styles.css.map +1 -0
- package/package.json +118 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,2146 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import React__default, { HTMLAttributes, ButtonHTMLAttributes, InputHTMLAttributes, SVGProps, TextareaHTMLAttributes, SelectHTMLAttributes, ReactNode } from 'react';
|
|
3
|
+
|
|
4
|
+
type AlertVariant = 'primary' | 'success' | 'warning' | 'error';
|
|
5
|
+
interface AlertProps {
|
|
6
|
+
/** Visual style variant */
|
|
7
|
+
variant?: AlertVariant;
|
|
8
|
+
/** Optional title for the alert */
|
|
9
|
+
title?: string;
|
|
10
|
+
/** Content of the alert */
|
|
11
|
+
children: React__default.ReactNode;
|
|
12
|
+
/** Whether the alert can be dismissed */
|
|
13
|
+
dismissible?: boolean;
|
|
14
|
+
/** Callback when dismiss button is clicked */
|
|
15
|
+
onDismiss?: () => void;
|
|
16
|
+
/** Additional CSS class */
|
|
17
|
+
className?: string;
|
|
18
|
+
}
|
|
19
|
+
declare const Alert: React__default.FC<AlertProps>;
|
|
20
|
+
|
|
21
|
+
type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
22
|
+
interface AvatarProps extends HTMLAttributes<HTMLDivElement> {
|
|
23
|
+
/** Image source URL */
|
|
24
|
+
src?: string;
|
|
25
|
+
/** Alt text for image */
|
|
26
|
+
alt?: string;
|
|
27
|
+
/** Initials to display when no image */
|
|
28
|
+
initials?: string;
|
|
29
|
+
/** Name (used to generate initials if not provided) */
|
|
30
|
+
name?: string;
|
|
31
|
+
/** Size of the avatar */
|
|
32
|
+
size?: AvatarSize;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Avatar component for user profile images or initials.
|
|
36
|
+
*/
|
|
37
|
+
declare const Avatar: React__default.FC<AvatarProps>;
|
|
38
|
+
interface AvatarGroupProps extends HTMLAttributes<HTMLDivElement> {
|
|
39
|
+
/** Maximum number of avatars to show before +N */
|
|
40
|
+
max?: number;
|
|
41
|
+
}
|
|
42
|
+
declare const AvatarGroup: React__default.FC<AvatarGroupProps>;
|
|
43
|
+
|
|
44
|
+
type BadgeVariant = 'default' | 'success' | 'warning' | 'error' | 'info';
|
|
45
|
+
type BadgeSize = 'sm' | 'md';
|
|
46
|
+
interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {
|
|
47
|
+
/** Visual style variant */
|
|
48
|
+
variant?: BadgeVariant;
|
|
49
|
+
/** Size of the badge */
|
|
50
|
+
size?: BadgeSize;
|
|
51
|
+
/** Shows a status dot before the text */
|
|
52
|
+
dot?: boolean;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Badge component for status indicators, labels, and tags.
|
|
56
|
+
*/
|
|
57
|
+
declare const Badge: React__default.FC<BadgeProps>;
|
|
58
|
+
|
|
59
|
+
type ButtonVariant = 'primary' | 'secondary' | 'outline' | 'ghost' | 'danger';
|
|
60
|
+
type ButtonSize = 'sm' | 'md' | 'lg';
|
|
61
|
+
interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
62
|
+
/** Visual style variant */
|
|
63
|
+
variant?: ButtonVariant;
|
|
64
|
+
/** Size of the button */
|
|
65
|
+
size?: ButtonSize;
|
|
66
|
+
/** Makes button take full width */
|
|
67
|
+
fullWidth?: boolean;
|
|
68
|
+
/** Shows loading spinner */
|
|
69
|
+
loading?: boolean;
|
|
70
|
+
/** Icon element to show before text */
|
|
71
|
+
leftIcon?: React__default.ReactNode;
|
|
72
|
+
/** Icon element to show after text */
|
|
73
|
+
rightIcon?: React__default.ReactNode;
|
|
74
|
+
/** Makes button square (equal width/height) */
|
|
75
|
+
square?: boolean;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Primary button component for user interactions.
|
|
79
|
+
* Supports multiple variants, sizes, and states.
|
|
80
|
+
*/
|
|
81
|
+
declare const Button: React__default.ForwardRefExoticComponent<ButtonProps & React__default.RefAttributes<HTMLButtonElement>>;
|
|
82
|
+
|
|
83
|
+
interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'size'> {
|
|
84
|
+
/** Label text for the checkbox */
|
|
85
|
+
label?: string;
|
|
86
|
+
/** Size variant */
|
|
87
|
+
size?: 'sm' | 'md' | 'lg';
|
|
88
|
+
/** Helper text shown below */
|
|
89
|
+
helperText?: string;
|
|
90
|
+
/** Error message */
|
|
91
|
+
error?: string;
|
|
92
|
+
/** Indeterminate state */
|
|
93
|
+
indeterminate?: boolean;
|
|
94
|
+
/** Additional class for wrapper */
|
|
95
|
+
className?: string;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Checkbox component for boolean selections.
|
|
99
|
+
*/
|
|
100
|
+
declare const Checkbox: React.ForwardRefExoticComponent<CheckboxProps & React.RefAttributes<HTMLInputElement>>;
|
|
101
|
+
|
|
102
|
+
type DatepickerSize = 'sm' | 'md' | 'lg';
|
|
103
|
+
interface DatepickerProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'size'> {
|
|
104
|
+
/** Size variant */
|
|
105
|
+
size?: DatepickerSize;
|
|
106
|
+
/** Label text */
|
|
107
|
+
label?: string;
|
|
108
|
+
/** Helper text shown below */
|
|
109
|
+
helperText?: string;
|
|
110
|
+
/** Error message (shows error state) */
|
|
111
|
+
error?: string;
|
|
112
|
+
/** Makes input take full width */
|
|
113
|
+
fullWidth?: boolean;
|
|
114
|
+
/** Additional class for wrapper */
|
|
115
|
+
className?: string;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Datepicker component for selecting dates.
|
|
119
|
+
*/
|
|
120
|
+
declare const Datepicker: React.ForwardRefExoticComponent<DatepickerProps & React.RefAttributes<HTMLInputElement>>;
|
|
121
|
+
|
|
122
|
+
interface IconProps extends SVGProps<SVGSVGElement> {
|
|
123
|
+
/** Icon size in pixels */
|
|
124
|
+
size?: number;
|
|
125
|
+
/** Icon color (defaults to currentColor) */
|
|
126
|
+
color?: string;
|
|
127
|
+
}
|
|
128
|
+
declare const PlaneIcon: React__default.FC<IconProps>;
|
|
129
|
+
declare const CarIcon: React__default.FC<IconProps>;
|
|
130
|
+
declare const HotelIcon: React__default.FC<IconProps>;
|
|
131
|
+
declare const LimoIcon: React__default.FC<IconProps>;
|
|
132
|
+
declare const RailIcon: React__default.FC<IconProps>;
|
|
133
|
+
declare const BusIcon: React__default.FC<IconProps>;
|
|
134
|
+
declare const SearchIcon: React__default.FC<IconProps>;
|
|
135
|
+
declare const ChevronDownIcon: React__default.FC<IconProps>;
|
|
136
|
+
declare const ChevronUpIcon: React__default.FC<IconProps>;
|
|
137
|
+
declare const ChevronRightIcon: React__default.FC<IconProps>;
|
|
138
|
+
declare const ChevronLeftIcon: React__default.FC<IconProps>;
|
|
139
|
+
declare const ArrowUpRightIcon: React__default.FC<IconProps>;
|
|
140
|
+
declare const EyeIcon: React__default.FC<IconProps>;
|
|
141
|
+
declare const DownloadIcon: React__default.FC<IconProps>;
|
|
142
|
+
declare const FilterIcon: React__default.FC<IconProps>;
|
|
143
|
+
declare const CalendarIcon: React__default.FC<IconProps>;
|
|
144
|
+
declare const UserIcon: React__default.FC<IconProps>;
|
|
145
|
+
declare const UsersIcon: React__default.FC<IconProps>;
|
|
146
|
+
declare const MailIcon: React__default.FC<IconProps>;
|
|
147
|
+
declare const PhoneIcon: React__default.FC<IconProps>;
|
|
148
|
+
declare const PrinterIcon: React__default.FC<IconProps>;
|
|
149
|
+
declare const RefreshIcon: React__default.FC<IconProps>;
|
|
150
|
+
declare const WarningIcon: React__default.FC<IconProps>;
|
|
151
|
+
declare const CheckIcon: React__default.FC<IconProps>;
|
|
152
|
+
declare const XIcon: React__default.FC<IconProps>;
|
|
153
|
+
declare const PlusIcon: React__default.FC<IconProps>;
|
|
154
|
+
declare const MinusIcon: React__default.FC<IconProps>;
|
|
155
|
+
declare const MenuIcon: React__default.FC<IconProps>;
|
|
156
|
+
declare const LightbulbIcon: React__default.FC<IconProps>;
|
|
157
|
+
declare const MegaphoneIcon: React__default.FC<IconProps>;
|
|
158
|
+
declare const CloseIcon: React__default.FC<IconProps>;
|
|
159
|
+
declare const DashboardIcon: React__default.FC<IconProps>;
|
|
160
|
+
declare const ReportIcon: React__default.FC<IconProps>;
|
|
161
|
+
declare const SettingsIcon: React__default.FC<IconProps>;
|
|
162
|
+
declare const LogoIcon: React__default.FC<IconProps>;
|
|
163
|
+
declare const TrendUpIcon: React__default.FC<IconProps>;
|
|
164
|
+
declare const TrendDownIcon: React__default.FC<IconProps>;
|
|
165
|
+
declare const InfoIcon: React__default.FC<IconProps>;
|
|
166
|
+
declare const DocumentIcon: React__default.FC<IconProps>;
|
|
167
|
+
declare const BuildingIcon: React__default.FC<IconProps>;
|
|
168
|
+
declare const GridIcon: React__default.FC<IconProps>;
|
|
169
|
+
declare const EditIcon: React__default.FC<IconProps>;
|
|
170
|
+
declare const HomeIcon: React__default.FC<IconProps>;
|
|
171
|
+
declare const CubeIcon: React__default.FC<IconProps>;
|
|
172
|
+
declare const LockIcon: React__default.FC<IconProps>;
|
|
173
|
+
declare const TrashIcon: React__default.FC<IconProps>;
|
|
174
|
+
declare const Icons: {
|
|
175
|
+
readonly Plane: React__default.FC<IconProps>;
|
|
176
|
+
readonly Car: React__default.FC<IconProps>;
|
|
177
|
+
readonly Hotel: React__default.FC<IconProps>;
|
|
178
|
+
readonly Limo: React__default.FC<IconProps>;
|
|
179
|
+
readonly Rail: React__default.FC<IconProps>;
|
|
180
|
+
readonly Bus: React__default.FC<IconProps>;
|
|
181
|
+
readonly Search: React__default.FC<IconProps>;
|
|
182
|
+
readonly ChevronDown: React__default.FC<IconProps>;
|
|
183
|
+
readonly ChevronUp: React__default.FC<IconProps>;
|
|
184
|
+
readonly ChevronRight: React__default.FC<IconProps>;
|
|
185
|
+
readonly ChevronLeft: React__default.FC<IconProps>;
|
|
186
|
+
readonly ArrowUpRight: React__default.FC<IconProps>;
|
|
187
|
+
readonly Eye: React__default.FC<IconProps>;
|
|
188
|
+
readonly Download: React__default.FC<IconProps>;
|
|
189
|
+
readonly Filter: React__default.FC<IconProps>;
|
|
190
|
+
readonly Calendar: React__default.FC<IconProps>;
|
|
191
|
+
readonly User: React__default.FC<IconProps>;
|
|
192
|
+
readonly Users: React__default.FC<IconProps>;
|
|
193
|
+
readonly Mail: React__default.FC<IconProps>;
|
|
194
|
+
readonly Phone: React__default.FC<IconProps>;
|
|
195
|
+
readonly Printer: React__default.FC<IconProps>;
|
|
196
|
+
readonly Refresh: React__default.FC<IconProps>;
|
|
197
|
+
readonly Warning: React__default.FC<IconProps>;
|
|
198
|
+
readonly Check: React__default.FC<IconProps>;
|
|
199
|
+
readonly X: React__default.FC<IconProps>;
|
|
200
|
+
readonly Close: React__default.FC<IconProps>;
|
|
201
|
+
readonly Plus: React__default.FC<IconProps>;
|
|
202
|
+
readonly Minus: React__default.FC<IconProps>;
|
|
203
|
+
readonly Menu: React__default.FC<IconProps>;
|
|
204
|
+
readonly Lightbulb: React__default.FC<IconProps>;
|
|
205
|
+
readonly Megaphone: React__default.FC<IconProps>;
|
|
206
|
+
readonly Dashboard: React__default.FC<IconProps>;
|
|
207
|
+
readonly Report: React__default.FC<IconProps>;
|
|
208
|
+
readonly Settings: React__default.FC<IconProps>;
|
|
209
|
+
readonly Logo: React__default.FC<IconProps>;
|
|
210
|
+
readonly TrendUp: React__default.FC<IconProps>;
|
|
211
|
+
readonly TrendDown: React__default.FC<IconProps>;
|
|
212
|
+
readonly Info: React__default.FC<IconProps>;
|
|
213
|
+
readonly Document: React__default.FC<IconProps>;
|
|
214
|
+
readonly Building: React__default.FC<IconProps>;
|
|
215
|
+
readonly Grid: React__default.FC<IconProps>;
|
|
216
|
+
readonly Edit: React__default.FC<IconProps>;
|
|
217
|
+
readonly Home: React__default.FC<IconProps>;
|
|
218
|
+
readonly Cube: React__default.FC<IconProps>;
|
|
219
|
+
readonly Lock: React__default.FC<IconProps>;
|
|
220
|
+
readonly Trash: React__default.FC<IconProps>;
|
|
221
|
+
};
|
|
222
|
+
type IconName = keyof typeof Icons;
|
|
223
|
+
|
|
224
|
+
type InputSize = 'sm' | 'md' | 'lg';
|
|
225
|
+
interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size'> {
|
|
226
|
+
/** Size of the input */
|
|
227
|
+
size?: InputSize;
|
|
228
|
+
/** Label text */
|
|
229
|
+
label?: string;
|
|
230
|
+
/** Helper text shown below input */
|
|
231
|
+
helperText?: string;
|
|
232
|
+
/** Error message (shows error state when present) */
|
|
233
|
+
error?: string;
|
|
234
|
+
/** Icon element to show at the start */
|
|
235
|
+
leftIcon?: React__default.ReactNode;
|
|
236
|
+
/** Icon element to show at the end */
|
|
237
|
+
rightIcon?: React__default.ReactNode;
|
|
238
|
+
/** Makes input take full width */
|
|
239
|
+
fullWidth?: boolean;
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Input component for text entry.
|
|
243
|
+
*/
|
|
244
|
+
declare const Input: React__default.ForwardRefExoticComponent<InputProps & React__default.RefAttributes<HTMLInputElement>>;
|
|
245
|
+
interface TextareaProps extends Omit<TextareaHTMLAttributes<HTMLTextAreaElement>, 'size'> {
|
|
246
|
+
/** Size of the textarea */
|
|
247
|
+
size?: InputSize;
|
|
248
|
+
/** Label text */
|
|
249
|
+
label?: string;
|
|
250
|
+
/** Helper text shown below textarea */
|
|
251
|
+
helperText?: string;
|
|
252
|
+
/** Error message (shows error state when present) */
|
|
253
|
+
error?: string;
|
|
254
|
+
/** Makes textarea take full width */
|
|
255
|
+
fullWidth?: boolean;
|
|
256
|
+
}
|
|
257
|
+
declare const Textarea: React__default.ForwardRefExoticComponent<TextareaProps & React__default.RefAttributes<HTMLTextAreaElement>>;
|
|
258
|
+
|
|
259
|
+
interface MetricProps {
|
|
260
|
+
/** The metric value to display */
|
|
261
|
+
value?: string | number;
|
|
262
|
+
/** Label describing the metric */
|
|
263
|
+
label: string;
|
|
264
|
+
/** Prefix to show before value (e.g., "$") */
|
|
265
|
+
prefix?: string;
|
|
266
|
+
/** Suffix to show after value */
|
|
267
|
+
suffix?: string;
|
|
268
|
+
/** Use dark theme */
|
|
269
|
+
dark?: boolean;
|
|
270
|
+
/** Click handler */
|
|
271
|
+
onClick?: () => void;
|
|
272
|
+
/** Additional CSS class */
|
|
273
|
+
className?: string;
|
|
274
|
+
/** Show warning indicator */
|
|
275
|
+
warning?: boolean;
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Metric component for displaying key performance indicators.
|
|
279
|
+
* Used in dashboards for trip counts, costs, and status metrics.
|
|
280
|
+
*/
|
|
281
|
+
declare const Metric: React__default.FC<MetricProps>;
|
|
282
|
+
|
|
283
|
+
interface SelectOption {
|
|
284
|
+
label: string;
|
|
285
|
+
value: string | number;
|
|
286
|
+
disabled?: boolean;
|
|
287
|
+
}
|
|
288
|
+
interface SelectOptionGroup {
|
|
289
|
+
label: string;
|
|
290
|
+
options: SelectOption[];
|
|
291
|
+
}
|
|
292
|
+
type SelectSize = 'sm' | 'md' | 'lg';
|
|
293
|
+
interface SelectProps extends Omit<SelectHTMLAttributes<HTMLSelectElement>, 'size'> {
|
|
294
|
+
/** Options to display */
|
|
295
|
+
options?: SelectOption[];
|
|
296
|
+
/** Grouped options */
|
|
297
|
+
optionGroups?: SelectOptionGroup[];
|
|
298
|
+
/** Size variant */
|
|
299
|
+
size?: SelectSize;
|
|
300
|
+
/** Label text */
|
|
301
|
+
label?: string;
|
|
302
|
+
/** Placeholder text (shown as first disabled option) */
|
|
303
|
+
placeholder?: string;
|
|
304
|
+
/** Helper text shown below */
|
|
305
|
+
helperText?: string;
|
|
306
|
+
/** Error message (shows error state) */
|
|
307
|
+
error?: string;
|
|
308
|
+
/** Icon element at the start */
|
|
309
|
+
leftIcon?: React__default.ReactNode;
|
|
310
|
+
/** Makes select take full width */
|
|
311
|
+
fullWidth?: boolean;
|
|
312
|
+
/** Additional class for wrapper */
|
|
313
|
+
className?: string;
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* Select component for choosing from a list of options.
|
|
317
|
+
*/
|
|
318
|
+
declare const Select: React__default.ForwardRefExoticComponent<SelectProps & React__default.RefAttributes<HTMLSelectElement>>;
|
|
319
|
+
|
|
320
|
+
type SpinnerSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
321
|
+
interface SpinnerProps {
|
|
322
|
+
/** Size of the spinner */
|
|
323
|
+
size?: SpinnerSize;
|
|
324
|
+
/** Additional CSS class */
|
|
325
|
+
className?: string;
|
|
326
|
+
/** Color of the spinner (defaults to currentColor) */
|
|
327
|
+
color?: string;
|
|
328
|
+
/** Accessible label */
|
|
329
|
+
label?: string;
|
|
330
|
+
}
|
|
331
|
+
declare const Spinner: React__default.FC<SpinnerProps>;
|
|
332
|
+
|
|
333
|
+
type StatusBadgeVariant = 'ticketed' | 'itinerary' | 'not-ticketed' | 'submitted' | 'pending' | 'cancelled';
|
|
334
|
+
interface StatusBadgeProps {
|
|
335
|
+
/** The status variant to display */
|
|
336
|
+
status: StatusBadgeVariant;
|
|
337
|
+
/** Optional custom label (defaults to formatted status) */
|
|
338
|
+
label?: string;
|
|
339
|
+
/** Additional CSS class */
|
|
340
|
+
className?: string;
|
|
341
|
+
}
|
|
342
|
+
declare const StatusBadge: React__default.FC<StatusBadgeProps>;
|
|
343
|
+
|
|
344
|
+
type TagVariant = 'default' | 'primary' | 'success' | 'warning' | 'error' | 'info';
|
|
345
|
+
type TagSize = 'sm' | 'md' | 'lg';
|
|
346
|
+
interface TagProps {
|
|
347
|
+
/** Tag content */
|
|
348
|
+
children: React__default.ReactNode;
|
|
349
|
+
/** Visual variant */
|
|
350
|
+
variant?: TagVariant;
|
|
351
|
+
/** Size of the tag */
|
|
352
|
+
size?: TagSize;
|
|
353
|
+
/** Whether the tag is removable */
|
|
354
|
+
removable?: boolean;
|
|
355
|
+
/** Callback when remove button is clicked */
|
|
356
|
+
onRemove?: () => void;
|
|
357
|
+
/** Click handler */
|
|
358
|
+
onClick?: () => void;
|
|
359
|
+
/** Additional CSS class */
|
|
360
|
+
className?: string;
|
|
361
|
+
/** Inline styles */
|
|
362
|
+
style?: React__default.CSSProperties;
|
|
363
|
+
}
|
|
364
|
+
declare const Tag: React__default.FC<TagProps>;
|
|
365
|
+
|
|
366
|
+
type TimepickerSize = 'sm' | 'md' | 'lg';
|
|
367
|
+
interface TimepickerProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'size'> {
|
|
368
|
+
/** Size variant */
|
|
369
|
+
size?: TimepickerSize;
|
|
370
|
+
/** Label text */
|
|
371
|
+
label?: string;
|
|
372
|
+
/** Helper text shown below */
|
|
373
|
+
helperText?: string;
|
|
374
|
+
/** Error message (shows error state) */
|
|
375
|
+
error?: string;
|
|
376
|
+
/** Makes input take full width */
|
|
377
|
+
fullWidth?: boolean;
|
|
378
|
+
/** Additional class for wrapper */
|
|
379
|
+
className?: string;
|
|
380
|
+
}
|
|
381
|
+
/**
|
|
382
|
+
* Timepicker component for selecting times.
|
|
383
|
+
*/
|
|
384
|
+
declare const Timepicker: React.ForwardRefExoticComponent<TimepickerProps & React.RefAttributes<HTMLInputElement>>;
|
|
385
|
+
|
|
386
|
+
type TitleWeight = 'light' | 'normal' | 'medium' | 'semibold' | 'bold';
|
|
387
|
+
interface TitleProps {
|
|
388
|
+
/** Title text content */
|
|
389
|
+
children: ReactNode;
|
|
390
|
+
/** Font weight */
|
|
391
|
+
weight?: TitleWeight;
|
|
392
|
+
/** Additional CSS class */
|
|
393
|
+
className?: string;
|
|
394
|
+
}
|
|
395
|
+
/**
|
|
396
|
+
* Title component for page headings.
|
|
397
|
+
* Large, prominent text for page titles.
|
|
398
|
+
*/
|
|
399
|
+
declare const Title: React__default.FC<TitleProps>;
|
|
400
|
+
|
|
401
|
+
type ToggleSize = 'sm' | 'md' | 'lg';
|
|
402
|
+
interface ToggleProps {
|
|
403
|
+
/** Whether the toggle is checked */
|
|
404
|
+
checked: boolean;
|
|
405
|
+
/** Callback when toggle state changes */
|
|
406
|
+
onChange?: (checked: boolean) => void;
|
|
407
|
+
/** Whether the toggle is disabled */
|
|
408
|
+
disabled?: boolean;
|
|
409
|
+
/** Size of the toggle */
|
|
410
|
+
size?: ToggleSize;
|
|
411
|
+
/** Label for the toggle */
|
|
412
|
+
label?: string;
|
|
413
|
+
/** Position of the label */
|
|
414
|
+
labelPosition?: 'left' | 'right';
|
|
415
|
+
/** Additional CSS class */
|
|
416
|
+
className?: string;
|
|
417
|
+
/** Accessible name for the toggle */
|
|
418
|
+
'aria-label'?: string;
|
|
419
|
+
}
|
|
420
|
+
declare const Toggle: React__default.FC<ToggleProps>;
|
|
421
|
+
|
|
422
|
+
type TooltipPosition = 'top' | 'bottom' | 'left' | 'right';
|
|
423
|
+
type TooltipVariant = 'dark' | 'light';
|
|
424
|
+
interface TooltipProps {
|
|
425
|
+
/** Tooltip content */
|
|
426
|
+
content: React__default.ReactNode;
|
|
427
|
+
/** Element that triggers the tooltip */
|
|
428
|
+
children: React__default.ReactNode;
|
|
429
|
+
/** Position of the tooltip relative to the trigger */
|
|
430
|
+
position?: TooltipPosition;
|
|
431
|
+
/** Visual variant */
|
|
432
|
+
variant?: TooltipVariant;
|
|
433
|
+
/** Delay before showing tooltip (ms) */
|
|
434
|
+
delay?: number;
|
|
435
|
+
/** Whether tooltip is disabled */
|
|
436
|
+
disabled?: boolean;
|
|
437
|
+
/** Additional CSS class */
|
|
438
|
+
className?: string;
|
|
439
|
+
}
|
|
440
|
+
declare const Tooltip: React__default.FC<TooltipProps>;
|
|
441
|
+
|
|
442
|
+
type TravelType = 'A' | 'C' | 'H' | 'L' | 'R' | 'B' | 'U';
|
|
443
|
+
interface TypeIconProps {
|
|
444
|
+
/** Travel type code: A=Air, C=Car, H=Hotel, L=Limo, R=Rail, B=Bus, U=Unknown */
|
|
445
|
+
type: TravelType;
|
|
446
|
+
/** Size in pixels */
|
|
447
|
+
size?: number;
|
|
448
|
+
/** Show tooltip on hover */
|
|
449
|
+
showTooltip?: boolean;
|
|
450
|
+
/** Additional CSS class */
|
|
451
|
+
className?: string;
|
|
452
|
+
}
|
|
453
|
+
declare const TypeIcon: React__default.FC<TypeIconProps>;
|
|
454
|
+
|
|
455
|
+
type VendorCode = 'DL' | 'AA' | 'UA' | 'WN' | 'B6' | 'AS' | 'F9' | 'NK' | 'G4' | 'HA' | string;
|
|
456
|
+
interface TravelServiceIconProps {
|
|
457
|
+
/** Travel type: A=Air, C=Car, H=Hotel, L=Limo, R=Rail */
|
|
458
|
+
type: TravelType;
|
|
459
|
+
/** Vendor/airline code (e.g., DL, AA, UA) */
|
|
460
|
+
vendor?: string;
|
|
461
|
+
/** Display mode: icon shows vendor logo, code shows text */
|
|
462
|
+
mode?: 'icon' | 'code';
|
|
463
|
+
/** Size in pixels */
|
|
464
|
+
size?: number;
|
|
465
|
+
/** Show multi-segment indicator */
|
|
466
|
+
multi?: boolean;
|
|
467
|
+
/** Additional CSS class */
|
|
468
|
+
className?: string;
|
|
469
|
+
}
|
|
470
|
+
declare const TravelServiceIcon: React__default.FC<TravelServiceIconProps>;
|
|
471
|
+
|
|
472
|
+
interface AccordionProps {
|
|
473
|
+
/** Header content (always visible) */
|
|
474
|
+
header: ReactNode;
|
|
475
|
+
/** Body content (collapsible) */
|
|
476
|
+
children: ReactNode;
|
|
477
|
+
/** Whether the accordion is initially open */
|
|
478
|
+
defaultOpen?: boolean;
|
|
479
|
+
/** Controlled open state */
|
|
480
|
+
open?: boolean;
|
|
481
|
+
/** Callback when open state changes */
|
|
482
|
+
onOpenChange?: (open: boolean) => void;
|
|
483
|
+
/** Show vertical timeline indicator */
|
|
484
|
+
showTimeline?: boolean;
|
|
485
|
+
/** Additional CSS class */
|
|
486
|
+
className?: string;
|
|
487
|
+
}
|
|
488
|
+
/**
|
|
489
|
+
* Accordion component for collapsible content sections.
|
|
490
|
+
* Used in travel request forms for expandable form segments.
|
|
491
|
+
*/
|
|
492
|
+
declare const Accordion: React__default.FC<AccordionProps>;
|
|
493
|
+
|
|
494
|
+
type DropdownAlignment = 'left' | 'center' | 'right';
|
|
495
|
+
interface DropdownProps {
|
|
496
|
+
/** Label for the dropdown trigger button */
|
|
497
|
+
label: string;
|
|
498
|
+
/** Content to display in the dropdown */
|
|
499
|
+
children: React__default.ReactNode;
|
|
500
|
+
/** Alignment of the dropdown menu */
|
|
501
|
+
alignment?: DropdownAlignment;
|
|
502
|
+
/** Minimum width of the dropdown (in pixels) */
|
|
503
|
+
width?: number;
|
|
504
|
+
/** Additional CSS class */
|
|
505
|
+
className?: string;
|
|
506
|
+
/** Whether the dropdown is disabled */
|
|
507
|
+
disabled?: boolean;
|
|
508
|
+
}
|
|
509
|
+
interface DropdownItemProps {
|
|
510
|
+
/** Item label */
|
|
511
|
+
children: React__default.ReactNode;
|
|
512
|
+
/** Click handler */
|
|
513
|
+
onClick?: () => void;
|
|
514
|
+
/** Whether the item is disabled */
|
|
515
|
+
disabled?: boolean;
|
|
516
|
+
/** Icon to display */
|
|
517
|
+
icon?: React__default.ReactNode;
|
|
518
|
+
/** Additional CSS class */
|
|
519
|
+
className?: string;
|
|
520
|
+
}
|
|
521
|
+
declare const Dropdown: React__default.FC<DropdownProps> & {
|
|
522
|
+
Item: React__default.FC<DropdownItemProps>;
|
|
523
|
+
};
|
|
524
|
+
|
|
525
|
+
interface FilterOption {
|
|
526
|
+
value: string;
|
|
527
|
+
label: string;
|
|
528
|
+
}
|
|
529
|
+
interface FilterChipProps {
|
|
530
|
+
/** Label for the filter */
|
|
531
|
+
label: string;
|
|
532
|
+
/** Currently selected value */
|
|
533
|
+
value: string;
|
|
534
|
+
/** Options to display in dropdown */
|
|
535
|
+
options: FilterOption[];
|
|
536
|
+
/** Callback when value changes */
|
|
537
|
+
onChange: (value: string) => void;
|
|
538
|
+
/** Show search input in dropdown */
|
|
539
|
+
searchable?: boolean;
|
|
540
|
+
/** Placeholder for search input */
|
|
541
|
+
searchPlaceholder?: string;
|
|
542
|
+
/** Info message to show at top of dropdown */
|
|
543
|
+
infoMessage?: string;
|
|
544
|
+
/** Additional CSS class */
|
|
545
|
+
className?: string;
|
|
546
|
+
}
|
|
547
|
+
declare const FilterChip: React__default.FC<FilterChipProps>;
|
|
548
|
+
|
|
549
|
+
interface FormFieldProps {
|
|
550
|
+
/** Label text for the field */
|
|
551
|
+
label: string;
|
|
552
|
+
/** Optional helper text displayed below the input */
|
|
553
|
+
helperText?: string;
|
|
554
|
+
/** Error message to display */
|
|
555
|
+
error?: string;
|
|
556
|
+
/** Whether the field is required */
|
|
557
|
+
required?: boolean;
|
|
558
|
+
/** Whether to hide the label visually (still accessible) */
|
|
559
|
+
hideLabel?: boolean;
|
|
560
|
+
/** Additional CSS class for the wrapper */
|
|
561
|
+
className?: string;
|
|
562
|
+
/** The input element type */
|
|
563
|
+
as?: 'input' | 'textarea';
|
|
564
|
+
/** Input props when as="input" */
|
|
565
|
+
inputProps?: InputProps;
|
|
566
|
+
/** Textarea props when as="textarea" */
|
|
567
|
+
textareaProps?: TextareaProps;
|
|
568
|
+
/** Children for custom input rendering */
|
|
569
|
+
children?: React__default.ReactNode;
|
|
570
|
+
}
|
|
571
|
+
declare const FormField: React__default.ForwardRefExoticComponent<FormFieldProps & React__default.RefAttributes<HTMLInputElement | HTMLTextAreaElement>>;
|
|
572
|
+
|
|
573
|
+
interface FormRowProps {
|
|
574
|
+
/** Child elements to display in a row */
|
|
575
|
+
children: ReactNode;
|
|
576
|
+
/** Number of columns (auto-detected from children count if not specified) */
|
|
577
|
+
columns?: 1 | 2 | 3 | 4;
|
|
578
|
+
/** Gap size between items */
|
|
579
|
+
gap?: 'sm' | 'md' | 'lg';
|
|
580
|
+
/** Additional CSS class */
|
|
581
|
+
className?: string;
|
|
582
|
+
/** Stack on mobile (default: true) */
|
|
583
|
+
stackOnMobile?: boolean;
|
|
584
|
+
}
|
|
585
|
+
/**
|
|
586
|
+
* FormRow component for laying out form fields in a responsive grid.
|
|
587
|
+
* Stacks on mobile by default and arranges in columns on larger screens.
|
|
588
|
+
*/
|
|
589
|
+
declare const FormRow: React__default.FC<FormRowProps>;
|
|
590
|
+
|
|
591
|
+
interface FormSectionProps {
|
|
592
|
+
/** Section title */
|
|
593
|
+
title: string;
|
|
594
|
+
/** Icon element to display */
|
|
595
|
+
icon?: ReactNode;
|
|
596
|
+
/** Status key for submitted state */
|
|
597
|
+
status?: 'submitted' | 'not-submitted' | 'draft';
|
|
598
|
+
/** Whether the section is disabled */
|
|
599
|
+
disabled?: boolean;
|
|
600
|
+
/** Children content */
|
|
601
|
+
children: ReactNode;
|
|
602
|
+
/** Additional CSS class */
|
|
603
|
+
className?: string;
|
|
604
|
+
/** Section ID for anchoring */
|
|
605
|
+
id?: string;
|
|
606
|
+
}
|
|
607
|
+
/**
|
|
608
|
+
* FormSection component for grouping related form fields with a title and icon.
|
|
609
|
+
* Used in travel request forms for sections like General, Air, Hotel, etc.
|
|
610
|
+
*/
|
|
611
|
+
declare const FormSection: React__default.FC<FormSectionProps>;
|
|
612
|
+
|
|
613
|
+
type ManifestView = 'passengers' | 'equipment';
|
|
614
|
+
interface ManifestViewToggleProps {
|
|
615
|
+
view: ManifestView;
|
|
616
|
+
onView: (view: ManifestView) => void;
|
|
617
|
+
paxCount: number;
|
|
618
|
+
eqCount: number;
|
|
619
|
+
locked: boolean;
|
|
620
|
+
className?: string;
|
|
621
|
+
}
|
|
622
|
+
declare const ManifestViewToggle: ({ view, onView, paxCount, eqCount, locked, className, }: ManifestViewToggleProps) => React.JSX.Element;
|
|
623
|
+
|
|
624
|
+
type NavItemVariant = 'default' | 'pill';
|
|
625
|
+
type NavItemSize = 'sm' | 'md' | 'lg';
|
|
626
|
+
interface NavItemProps {
|
|
627
|
+
/** Icon to display */
|
|
628
|
+
icon?: React__default.ReactNode;
|
|
629
|
+
/** Label text */
|
|
630
|
+
label: string;
|
|
631
|
+
/** Whether the item is currently active */
|
|
632
|
+
active?: boolean;
|
|
633
|
+
/** Whether the navigation is collapsed (icon only) */
|
|
634
|
+
collapsed?: boolean;
|
|
635
|
+
/** Visual variant */
|
|
636
|
+
variant?: NavItemVariant;
|
|
637
|
+
/** Size of the nav item */
|
|
638
|
+
size?: NavItemSize;
|
|
639
|
+
/** Optional badge count or text */
|
|
640
|
+
badge?: string | number;
|
|
641
|
+
/** Badge variant */
|
|
642
|
+
badgeVariant?: 'default' | 'success' | 'warning' | 'error' | 'info';
|
|
643
|
+
/** Click handler */
|
|
644
|
+
onClick?: () => void;
|
|
645
|
+
/** Whether the item is disabled */
|
|
646
|
+
disabled?: boolean;
|
|
647
|
+
/** Optional href for link items */
|
|
648
|
+
href?: string;
|
|
649
|
+
/** Whether to open link in new tab (for external links) */
|
|
650
|
+
external?: boolean;
|
|
651
|
+
/** Additional CSS class */
|
|
652
|
+
className?: string;
|
|
653
|
+
/** Accessible description */
|
|
654
|
+
'aria-label'?: string;
|
|
655
|
+
}
|
|
656
|
+
declare const NavItem: React__default.FC<NavItemProps>;
|
|
657
|
+
|
|
658
|
+
type ProgressSize = 'xs' | 'sm' | 'md' | 'lg';
|
|
659
|
+
type ProgressVariant = 'primary' | 'success' | 'warning' | 'error';
|
|
660
|
+
interface ProgressBarProps {
|
|
661
|
+
/** Current progress value */
|
|
662
|
+
value: number;
|
|
663
|
+
/** Maximum value */
|
|
664
|
+
max?: number;
|
|
665
|
+
/** Size of the progress bar */
|
|
666
|
+
size?: ProgressSize;
|
|
667
|
+
/** Color variant */
|
|
668
|
+
variant?: ProgressVariant;
|
|
669
|
+
/** Show percentage label */
|
|
670
|
+
showLabel?: boolean;
|
|
671
|
+
/** Additional CSS class */
|
|
672
|
+
className?: string;
|
|
673
|
+
}
|
|
674
|
+
interface ProgressCircleProps {
|
|
675
|
+
/** Current progress value */
|
|
676
|
+
value: number;
|
|
677
|
+
/** Maximum value */
|
|
678
|
+
max?: number;
|
|
679
|
+
/** Size of the circle */
|
|
680
|
+
size?: ProgressSize;
|
|
681
|
+
/** Color variant */
|
|
682
|
+
variant?: ProgressVariant;
|
|
683
|
+
/** Show percentage in center */
|
|
684
|
+
showLabel?: boolean;
|
|
685
|
+
/** Additional CSS class */
|
|
686
|
+
className?: string;
|
|
687
|
+
}
|
|
688
|
+
declare const ProgressBar: React__default.FC<ProgressBarProps>;
|
|
689
|
+
declare const ProgressCircle: React__default.FC<ProgressCircleProps>;
|
|
690
|
+
declare const Progress: {
|
|
691
|
+
Bar: React__default.FC<ProgressBarProps>;
|
|
692
|
+
Circle: React__default.FC<ProgressCircleProps>;
|
|
693
|
+
};
|
|
694
|
+
|
|
695
|
+
interface ToolbarAction {
|
|
696
|
+
/** Action label */
|
|
697
|
+
label: string;
|
|
698
|
+
/** Action icon */
|
|
699
|
+
icon?: ReactNode;
|
|
700
|
+
/** Handler */
|
|
701
|
+
onClick: () => void;
|
|
702
|
+
/** Is action disabled */
|
|
703
|
+
disabled?: boolean;
|
|
704
|
+
}
|
|
705
|
+
interface RosterToolbarProps {
|
|
706
|
+
/** Import dropdown options */
|
|
707
|
+
importOptions?: ToolbarAction[];
|
|
708
|
+
/** Export dropdown options */
|
|
709
|
+
exportOptions?: ToolbarAction[];
|
|
710
|
+
/** Toggle for lock roster */
|
|
711
|
+
lockToggle?: {
|
|
712
|
+
isLocked: boolean;
|
|
713
|
+
onToggle: (locked: boolean) => void;
|
|
714
|
+
disabled?: boolean;
|
|
715
|
+
};
|
|
716
|
+
/** Save button config */
|
|
717
|
+
saveButton?: {
|
|
718
|
+
label?: string;
|
|
719
|
+
onClick: () => void;
|
|
720
|
+
disabled?: boolean;
|
|
721
|
+
loading?: boolean;
|
|
722
|
+
};
|
|
723
|
+
/** Additional actions */
|
|
724
|
+
additionalActions?: ReactNode;
|
|
725
|
+
/** Search field */
|
|
726
|
+
searchField?: ReactNode;
|
|
727
|
+
/** Additional class */
|
|
728
|
+
className?: string;
|
|
729
|
+
}
|
|
730
|
+
/**
|
|
731
|
+
* RosterToolbar - Toolbar for roster management with import/export/save actions
|
|
732
|
+
*/
|
|
733
|
+
declare const RosterToolbar: {
|
|
734
|
+
({ importOptions, exportOptions, lockToggle, saveButton, additionalActions, searchField, className, }: RosterToolbarProps): React.JSX.Element;
|
|
735
|
+
displayName: string;
|
|
736
|
+
};
|
|
737
|
+
|
|
738
|
+
interface SearchFieldProps {
|
|
739
|
+
/** Placeholder text for the search input */
|
|
740
|
+
placeholder?: string;
|
|
741
|
+
/** Current value of the search field */
|
|
742
|
+
value?: string;
|
|
743
|
+
/** Default value for uncontrolled usage */
|
|
744
|
+
defaultValue?: string;
|
|
745
|
+
/** Callback when search value changes */
|
|
746
|
+
onChange?: (value: string) => void;
|
|
747
|
+
/** Callback when search is submitted */
|
|
748
|
+
onSearch?: (value: string) => void;
|
|
749
|
+
/** Callback when search is cleared */
|
|
750
|
+
onClear?: () => void;
|
|
751
|
+
/** Size variant */
|
|
752
|
+
size?: 'sm' | 'md' | 'lg';
|
|
753
|
+
/** Whether the field is disabled */
|
|
754
|
+
disabled?: boolean;
|
|
755
|
+
/** Whether to show the clear button when there's a value */
|
|
756
|
+
showClear?: boolean;
|
|
757
|
+
/** Whether to show the search button */
|
|
758
|
+
showButton?: boolean;
|
|
759
|
+
/** Additional CSS class */
|
|
760
|
+
className?: string;
|
|
761
|
+
/** ID for the input element */
|
|
762
|
+
id?: string;
|
|
763
|
+
/** Accessible label */
|
|
764
|
+
'aria-label'?: string;
|
|
765
|
+
}
|
|
766
|
+
declare const SearchField: React__default.ForwardRefExoticComponent<SearchFieldProps & React__default.RefAttributes<HTMLInputElement>>;
|
|
767
|
+
|
|
768
|
+
interface SegmentOption {
|
|
769
|
+
/** Unique identifier for the option */
|
|
770
|
+
value: string;
|
|
771
|
+
/** Display label */
|
|
772
|
+
label: string;
|
|
773
|
+
/** Whether the option is disabled */
|
|
774
|
+
disabled?: boolean;
|
|
775
|
+
/** Icon to display */
|
|
776
|
+
icon?: React__default.ReactNode;
|
|
777
|
+
}
|
|
778
|
+
interface SegmentProps {
|
|
779
|
+
/** Available options */
|
|
780
|
+
options: SegmentOption[];
|
|
781
|
+
/** Currently selected value */
|
|
782
|
+
value: string;
|
|
783
|
+
/** Callback when selection changes */
|
|
784
|
+
onChange: (value: string) => void;
|
|
785
|
+
/** Size variant */
|
|
786
|
+
size?: 'sm' | 'md' | 'lg';
|
|
787
|
+
/** Whether the segment fills available width */
|
|
788
|
+
fullWidth?: boolean;
|
|
789
|
+
/** Additional CSS class */
|
|
790
|
+
className?: string;
|
|
791
|
+
/** Accessible label */
|
|
792
|
+
'aria-label'?: string;
|
|
793
|
+
}
|
|
794
|
+
declare const Segment: React__default.FC<SegmentProps>;
|
|
795
|
+
|
|
796
|
+
interface SelectFilterOption {
|
|
797
|
+
label: string;
|
|
798
|
+
value: string | number;
|
|
799
|
+
}
|
|
800
|
+
interface SelectFilterProps {
|
|
801
|
+
/** Filter label */
|
|
802
|
+
label: string;
|
|
803
|
+
/** Available options */
|
|
804
|
+
options?: SelectFilterOption[];
|
|
805
|
+
/** Grouped options by tab/category */
|
|
806
|
+
groupedOptions?: Record<string, SelectFilterOption[]>;
|
|
807
|
+
/** Selected values */
|
|
808
|
+
value?: (string | number)[];
|
|
809
|
+
/** Change handler */
|
|
810
|
+
onChange?: (values: (string | number)[]) => void;
|
|
811
|
+
/** Allow multiple selections */
|
|
812
|
+
multiselect?: boolean;
|
|
813
|
+
/** Tab names for grouped options */
|
|
814
|
+
tabs?: string[];
|
|
815
|
+
/** Show value instead of label in selected tag */
|
|
816
|
+
showValue?: boolean;
|
|
817
|
+
/** Whether to use grouped options */
|
|
818
|
+
grouped?: boolean;
|
|
819
|
+
/** Disabled state */
|
|
820
|
+
disabled?: boolean;
|
|
821
|
+
/** Dropdown width in pixels */
|
|
822
|
+
width?: number;
|
|
823
|
+
/** Additional CSS class */
|
|
824
|
+
className?: string;
|
|
825
|
+
}
|
|
826
|
+
/**
|
|
827
|
+
* SelectFilter component for filtering data with dropdown selections.
|
|
828
|
+
* Supports single/multi select, grouped options with tabs.
|
|
829
|
+
*/
|
|
830
|
+
declare const SelectFilter: React__default.FC<SelectFilterProps>;
|
|
831
|
+
|
|
832
|
+
interface ServiceConfig {
|
|
833
|
+
/** Unique key for the service */
|
|
834
|
+
key: string;
|
|
835
|
+
/** Display label */
|
|
836
|
+
label: string;
|
|
837
|
+
/** Icon element */
|
|
838
|
+
icon?: ReactNode;
|
|
839
|
+
/** Whether this service has a toggle (can be disabled) */
|
|
840
|
+
hasToggle?: boolean;
|
|
841
|
+
}
|
|
842
|
+
interface ServiceToggleProps {
|
|
843
|
+
/** Unique key for the service */
|
|
844
|
+
serviceKey?: string;
|
|
845
|
+
/** Display label */
|
|
846
|
+
label: string;
|
|
847
|
+
/** Icon element */
|
|
848
|
+
icon?: ReactNode;
|
|
849
|
+
/** Whether this service has a toggle (can be disabled) */
|
|
850
|
+
hasToggle?: boolean;
|
|
851
|
+
/** Whether the service is enabled */
|
|
852
|
+
enabled?: boolean;
|
|
853
|
+
/** Callback when toggle state changes */
|
|
854
|
+
onToggle?: (enabled: boolean) => void;
|
|
855
|
+
/** Callback when clicked (navigation) */
|
|
856
|
+
onClick?: () => void;
|
|
857
|
+
/** Disabled state */
|
|
858
|
+
disabled?: boolean;
|
|
859
|
+
}
|
|
860
|
+
interface ServiceToggleListProps {
|
|
861
|
+
/** List of services to display */
|
|
862
|
+
services: ServiceConfig[];
|
|
863
|
+
/** Map of enabled states by service key */
|
|
864
|
+
enabledServices?: Record<string, boolean>;
|
|
865
|
+
/** Callback when a service is toggled */
|
|
866
|
+
onToggle?: (key: string, enabled: boolean) => void;
|
|
867
|
+
/** Callback when a service is clicked */
|
|
868
|
+
onClick?: (key: string) => void;
|
|
869
|
+
/** Additional CSS class */
|
|
870
|
+
className?: string;
|
|
871
|
+
}
|
|
872
|
+
/**
|
|
873
|
+
* ServiceToggle component for a single service item.
|
|
874
|
+
* Shows an icon, label, and optional toggle switch.
|
|
875
|
+
*/
|
|
876
|
+
declare const ServiceToggle: React__default.FC<ServiceToggleProps>;
|
|
877
|
+
/**
|
|
878
|
+
* ServiceToggleList component for displaying a list of services with toggles.
|
|
879
|
+
* Used in travel request forms for service selection (Air, Hotel, Ground, etc.)
|
|
880
|
+
*/
|
|
881
|
+
declare const ServiceToggleList: React__default.FC<ServiceToggleListProps>;
|
|
882
|
+
|
|
883
|
+
interface TeamHeaderProps {
|
|
884
|
+
/** Team code (e.g., 'MBB') */
|
|
885
|
+
teamCode?: string;
|
|
886
|
+
/** Team name/description */
|
|
887
|
+
teamName?: string;
|
|
888
|
+
/** Pre-title text (e.g., 'Team Management') */
|
|
889
|
+
pretitle?: string;
|
|
890
|
+
/** Back link href */
|
|
891
|
+
backHref?: string;
|
|
892
|
+
/** Callback for back button click */
|
|
893
|
+
onBack?: () => void;
|
|
894
|
+
/** Right side actions */
|
|
895
|
+
actions?: ReactNode;
|
|
896
|
+
/** Additional class */
|
|
897
|
+
className?: string;
|
|
898
|
+
}
|
|
899
|
+
/**
|
|
900
|
+
* TeamHeader - Header component for team management pages
|
|
901
|
+
*/
|
|
902
|
+
declare const TeamHeader: {
|
|
903
|
+
({ teamCode, teamName, pretitle, backHref, onBack, actions, className, }: TeamHeaderProps): React.JSX.Element;
|
|
904
|
+
displayName: string;
|
|
905
|
+
};
|
|
906
|
+
|
|
907
|
+
interface FlightData {
|
|
908
|
+
type: 'commercial' | 'charter';
|
|
909
|
+
departure: string;
|
|
910
|
+
arrival: string;
|
|
911
|
+
departureDate: string;
|
|
912
|
+
departureTime?: string;
|
|
913
|
+
arrivalDate?: string;
|
|
914
|
+
arrivalTime?: string;
|
|
915
|
+
airline?: string;
|
|
916
|
+
flightNumber?: string;
|
|
917
|
+
}
|
|
918
|
+
interface GroundData {
|
|
919
|
+
type: 'bus' | 'van' | 'car' | 'limo';
|
|
920
|
+
company?: string;
|
|
921
|
+
pickupLocation: string;
|
|
922
|
+
dropoffLocation: string;
|
|
923
|
+
pickupDate: string;
|
|
924
|
+
pickupTime?: string;
|
|
925
|
+
vehicleCount?: number;
|
|
926
|
+
}
|
|
927
|
+
interface HotelData {
|
|
928
|
+
name: string;
|
|
929
|
+
address?: string;
|
|
930
|
+
city?: string;
|
|
931
|
+
checkIn: string;
|
|
932
|
+
checkOut: string;
|
|
933
|
+
roomCount?: number;
|
|
934
|
+
confirmationNumber?: string;
|
|
935
|
+
}
|
|
936
|
+
type SegmentVariant = 'light' | 'dark';
|
|
937
|
+
interface TripSegmentProps {
|
|
938
|
+
/** Segment type */
|
|
939
|
+
type: 'air' | 'ground' | 'hotel';
|
|
940
|
+
/** Visual variant */
|
|
941
|
+
variant?: SegmentVariant;
|
|
942
|
+
/** Additional CSS class */
|
|
943
|
+
className?: string;
|
|
944
|
+
/** Content to render */
|
|
945
|
+
children: ReactNode;
|
|
946
|
+
}
|
|
947
|
+
interface AirSegmentProps {
|
|
948
|
+
flights: FlightData[];
|
|
949
|
+
variant?: SegmentVariant;
|
|
950
|
+
className?: string;
|
|
951
|
+
}
|
|
952
|
+
interface GroundSegmentProps {
|
|
953
|
+
segments: GroundData[];
|
|
954
|
+
variant?: SegmentVariant;
|
|
955
|
+
className?: string;
|
|
956
|
+
}
|
|
957
|
+
interface HotelSegmentProps {
|
|
958
|
+
hotels: HotelData[];
|
|
959
|
+
variant?: SegmentVariant;
|
|
960
|
+
className?: string;
|
|
961
|
+
}
|
|
962
|
+
/**
|
|
963
|
+
* Base TripSegment component wrapper
|
|
964
|
+
*/
|
|
965
|
+
declare const TripSegment: React__default.FC<TripSegmentProps>;
|
|
966
|
+
/**
|
|
967
|
+
* AirSegment component for displaying flight information
|
|
968
|
+
*/
|
|
969
|
+
declare const AirSegment: React__default.FC<AirSegmentProps>;
|
|
970
|
+
/**
|
|
971
|
+
* GroundSegment component for displaying ground transportation
|
|
972
|
+
*/
|
|
973
|
+
declare const GroundSegment: React__default.FC<GroundSegmentProps>;
|
|
974
|
+
/**
|
|
975
|
+
* HotelSegment component for displaying hotel information
|
|
976
|
+
*/
|
|
977
|
+
declare const HotelSegment: React__default.FC<HotelSegmentProps>;
|
|
978
|
+
|
|
979
|
+
type CardVariant = 'default' | 'bordered' | 'elevated';
|
|
980
|
+
type CardPadding = 'none' | 'sm' | 'md' | 'lg';
|
|
981
|
+
interface CardProps extends HTMLAttributes<HTMLDivElement> {
|
|
982
|
+
/** Visual style variant */
|
|
983
|
+
variant?: CardVariant;
|
|
984
|
+
/** Internal padding */
|
|
985
|
+
padding?: CardPadding;
|
|
986
|
+
/** Makes the card interactive/clickable */
|
|
987
|
+
interactive?: boolean;
|
|
988
|
+
}
|
|
989
|
+
/**
|
|
990
|
+
* Card component for grouping related content.
|
|
991
|
+
*/
|
|
992
|
+
declare const Card: React__default.ForwardRefExoticComponent<CardProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
993
|
+
interface CardHeaderProps extends HTMLAttributes<HTMLDivElement> {
|
|
994
|
+
/** Title text */
|
|
995
|
+
title?: string;
|
|
996
|
+
/** Subtitle text */
|
|
997
|
+
subtitle?: string;
|
|
998
|
+
/** Actions to display in the header */
|
|
999
|
+
actions?: React__default.ReactNode;
|
|
1000
|
+
}
|
|
1001
|
+
declare const CardHeader: React__default.FC<CardHeaderProps>;
|
|
1002
|
+
interface CardBodyProps extends HTMLAttributes<HTMLDivElement> {
|
|
1003
|
+
}
|
|
1004
|
+
declare const CardBody: React__default.FC<CardBodyProps>;
|
|
1005
|
+
interface CardFooterProps extends HTMLAttributes<HTMLDivElement> {
|
|
1006
|
+
}
|
|
1007
|
+
declare const CardFooter: React__default.FC<CardFooterProps>;
|
|
1008
|
+
|
|
1009
|
+
interface Contact {
|
|
1010
|
+
/** Contact ID */
|
|
1011
|
+
id: string | number;
|
|
1012
|
+
/** Contact name */
|
|
1013
|
+
name: string;
|
|
1014
|
+
/** Contact email */
|
|
1015
|
+
email?: string;
|
|
1016
|
+
/** Contact phone */
|
|
1017
|
+
phone?: string;
|
|
1018
|
+
/** Contact role/type */
|
|
1019
|
+
role?: string;
|
|
1020
|
+
/** Whether this is a primary contact */
|
|
1021
|
+
isPrimary?: boolean;
|
|
1022
|
+
/** Whether this is a secondary contact */
|
|
1023
|
+
isSecondary?: boolean;
|
|
1024
|
+
}
|
|
1025
|
+
interface ContactListProps {
|
|
1026
|
+
/** Title of the contact list */
|
|
1027
|
+
title?: string;
|
|
1028
|
+
/** Tooltip content */
|
|
1029
|
+
tooltip?: ReactNode;
|
|
1030
|
+
/** List of contacts */
|
|
1031
|
+
contacts: Contact[];
|
|
1032
|
+
/** Callback when contact is edited */
|
|
1033
|
+
onEdit?: (contact: Contact) => void;
|
|
1034
|
+
/** Callback when contact is removed */
|
|
1035
|
+
onRemove?: (contact: Contact) => void;
|
|
1036
|
+
/** Callback when add is clicked */
|
|
1037
|
+
onAdd?: () => void;
|
|
1038
|
+
/** Whether to show add button */
|
|
1039
|
+
showAdd?: boolean;
|
|
1040
|
+
/** Label for add button */
|
|
1041
|
+
addLabel?: string;
|
|
1042
|
+
/** Alert/info message at top */
|
|
1043
|
+
alert?: ReactNode;
|
|
1044
|
+
/** Additional class */
|
|
1045
|
+
className?: string;
|
|
1046
|
+
}
|
|
1047
|
+
/**
|
|
1048
|
+
* ContactList - Displays a list of contacts with edit/remove actions
|
|
1049
|
+
*/
|
|
1050
|
+
declare const ContactList: {
|
|
1051
|
+
({ title, tooltip, contacts, onEdit, onRemove, onAdd, showAdd, addLabel, alert, className, }: ContactListProps): React.JSX.Element;
|
|
1052
|
+
displayName: string;
|
|
1053
|
+
};
|
|
1054
|
+
|
|
1055
|
+
type DrawerPosition = 'left' | 'right' | 'top' | 'bottom';
|
|
1056
|
+
type DrawerSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';
|
|
1057
|
+
interface DrawerProps {
|
|
1058
|
+
/** Whether the drawer is open */
|
|
1059
|
+
isOpen: boolean;
|
|
1060
|
+
/** Callback when drawer should close */
|
|
1061
|
+
onClose: () => void;
|
|
1062
|
+
/** Position of the drawer */
|
|
1063
|
+
position?: DrawerPosition;
|
|
1064
|
+
/** Size of the drawer */
|
|
1065
|
+
size?: DrawerSize;
|
|
1066
|
+
/** Drawer content */
|
|
1067
|
+
children: React__default.ReactNode;
|
|
1068
|
+
/** Whether clicking backdrop closes drawer */
|
|
1069
|
+
closeOnBackdropClick?: boolean;
|
|
1070
|
+
/** Whether pressing Escape closes drawer */
|
|
1071
|
+
closeOnEscape?: boolean;
|
|
1072
|
+
/** Whether to show backdrop */
|
|
1073
|
+
showBackdrop?: boolean;
|
|
1074
|
+
/** Additional CSS class */
|
|
1075
|
+
className?: string;
|
|
1076
|
+
}
|
|
1077
|
+
interface DrawerHeaderProps {
|
|
1078
|
+
/** Header title */
|
|
1079
|
+
title?: string;
|
|
1080
|
+
/** Header content */
|
|
1081
|
+
children?: React__default.ReactNode;
|
|
1082
|
+
/** Whether to show close button */
|
|
1083
|
+
showClose?: boolean;
|
|
1084
|
+
/** Close callback */
|
|
1085
|
+
onClose?: () => void;
|
|
1086
|
+
/** Additional CSS class */
|
|
1087
|
+
className?: string;
|
|
1088
|
+
}
|
|
1089
|
+
interface DrawerBodyProps {
|
|
1090
|
+
/** Body content */
|
|
1091
|
+
children: React__default.ReactNode;
|
|
1092
|
+
/** Additional CSS class */
|
|
1093
|
+
className?: string;
|
|
1094
|
+
}
|
|
1095
|
+
interface DrawerFooterProps {
|
|
1096
|
+
/** Footer content */
|
|
1097
|
+
children: React__default.ReactNode;
|
|
1098
|
+
/** Additional CSS class */
|
|
1099
|
+
className?: string;
|
|
1100
|
+
}
|
|
1101
|
+
declare const DrawerHeader: React__default.FC<DrawerHeaderProps>;
|
|
1102
|
+
declare const DrawerBody: React__default.FC<DrawerBodyProps>;
|
|
1103
|
+
declare const DrawerFooter: React__default.FC<DrawerFooterProps>;
|
|
1104
|
+
declare const Drawer: React__default.FC<DrawerProps> & {
|
|
1105
|
+
Header: typeof DrawerHeader;
|
|
1106
|
+
Body: typeof DrawerBody;
|
|
1107
|
+
Footer: typeof DrawerFooter;
|
|
1108
|
+
};
|
|
1109
|
+
|
|
1110
|
+
interface MembershipProgram {
|
|
1111
|
+
/** Unique identifier */
|
|
1112
|
+
id: string | number;
|
|
1113
|
+
/** Program type (airline, hotel, car rental, etc.) */
|
|
1114
|
+
type: 'airline' | 'hotel' | 'car' | 'other';
|
|
1115
|
+
/** Provider name */
|
|
1116
|
+
provider: string;
|
|
1117
|
+
/** Program name */
|
|
1118
|
+
programName?: string;
|
|
1119
|
+
/** Membership number */
|
|
1120
|
+
membershipNumber: string;
|
|
1121
|
+
/** Member status/tier */
|
|
1122
|
+
status?: string;
|
|
1123
|
+
}
|
|
1124
|
+
interface MembershipProgramsProps {
|
|
1125
|
+
/** Title of the section */
|
|
1126
|
+
title?: string;
|
|
1127
|
+
/** Programs to display */
|
|
1128
|
+
programs: MembershipProgram[];
|
|
1129
|
+
/** Handler for editing a program */
|
|
1130
|
+
onEdit?: (program: MembershipProgram) => void;
|
|
1131
|
+
/** Handler for removing a program */
|
|
1132
|
+
onRemove?: (program: MembershipProgram) => void;
|
|
1133
|
+
/** Handler for adding a program */
|
|
1134
|
+
onAdd?: () => void;
|
|
1135
|
+
/** Alert/info message at top */
|
|
1136
|
+
alert?: ReactNode;
|
|
1137
|
+
/** Whether in loading state */
|
|
1138
|
+
isLoading?: boolean;
|
|
1139
|
+
/** Empty state message */
|
|
1140
|
+
emptyMessage?: string;
|
|
1141
|
+
/** Additional class */
|
|
1142
|
+
className?: string;
|
|
1143
|
+
}
|
|
1144
|
+
/**
|
|
1145
|
+
* MembershipPrograms - Displays a list of frequent flyer/loyalty programs
|
|
1146
|
+
*/
|
|
1147
|
+
declare const MembershipPrograms: {
|
|
1148
|
+
({ title, programs, onEdit, onRemove, onAdd, alert, isLoading, emptyMessage, className, }: MembershipProgramsProps): React.JSX.Element;
|
|
1149
|
+
displayName: string;
|
|
1150
|
+
};
|
|
1151
|
+
|
|
1152
|
+
interface ManifestCapacityStatsProps {
|
|
1153
|
+
paxCount: number;
|
|
1154
|
+
seats: number;
|
|
1155
|
+
paxWeight: number;
|
|
1156
|
+
cargoWeight: number;
|
|
1157
|
+
payloadLimit: number;
|
|
1158
|
+
className?: string;
|
|
1159
|
+
}
|
|
1160
|
+
/** Advisory seat and payload meters from Hub's charter manifest. */
|
|
1161
|
+
declare const ManifestCapacityStats: ({ paxCount, seats, paxWeight, cargoWeight, payloadLimit, className, }: ManifestCapacityStatsProps) => React.JSX.Element;
|
|
1162
|
+
|
|
1163
|
+
type ModalSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';
|
|
1164
|
+
interface ModalProps {
|
|
1165
|
+
/** Whether the modal is open */
|
|
1166
|
+
isOpen: boolean;
|
|
1167
|
+
/** Callback when modal should close */
|
|
1168
|
+
onClose: () => void;
|
|
1169
|
+
/** Modal title */
|
|
1170
|
+
title?: string;
|
|
1171
|
+
/** Modal content */
|
|
1172
|
+
children: React__default.ReactNode;
|
|
1173
|
+
/** Size of the modal */
|
|
1174
|
+
size?: ModalSize;
|
|
1175
|
+
/** Whether to show close button */
|
|
1176
|
+
showCloseButton?: boolean;
|
|
1177
|
+
/** Whether clicking backdrop closes modal */
|
|
1178
|
+
closeOnBackdropClick?: boolean;
|
|
1179
|
+
/** Whether pressing Escape closes modal */
|
|
1180
|
+
closeOnEscape?: boolean;
|
|
1181
|
+
/** Footer content */
|
|
1182
|
+
footer?: React__default.ReactNode;
|
|
1183
|
+
/** Additional CSS class */
|
|
1184
|
+
className?: string;
|
|
1185
|
+
}
|
|
1186
|
+
declare const Modal: React__default.FC<ModalProps>;
|
|
1187
|
+
interface ModalFooterProps {
|
|
1188
|
+
children: React__default.ReactNode;
|
|
1189
|
+
className?: string;
|
|
1190
|
+
}
|
|
1191
|
+
declare const ModalFooter: React__default.FC<ModalFooterProps>;
|
|
1192
|
+
interface ConfirmModalProps extends Omit<ModalProps, 'footer' | 'children'> {
|
|
1193
|
+
/** Message to display */
|
|
1194
|
+
message: string | React__default.ReactNode;
|
|
1195
|
+
/** Confirm button text */
|
|
1196
|
+
confirmText?: string;
|
|
1197
|
+
/** Cancel button text */
|
|
1198
|
+
cancelText?: string;
|
|
1199
|
+
/** Callback when confirmed */
|
|
1200
|
+
onConfirm: () => void;
|
|
1201
|
+
/** Whether confirm action is destructive */
|
|
1202
|
+
destructive?: boolean;
|
|
1203
|
+
/** Whether confirm action is in progress */
|
|
1204
|
+
loading?: boolean;
|
|
1205
|
+
}
|
|
1206
|
+
declare const ConfirmModal: React__default.FC<ConfirmModalProps>;
|
|
1207
|
+
|
|
1208
|
+
type ModuleSize = 'sm' | 'md' | 'lg';
|
|
1209
|
+
interface ModuleProps {
|
|
1210
|
+
/** Module title */
|
|
1211
|
+
title?: string;
|
|
1212
|
+
/** Icon element to display */
|
|
1213
|
+
icon?: ReactNode;
|
|
1214
|
+
/** Icon CSS class for color */
|
|
1215
|
+
iconClassName?: string;
|
|
1216
|
+
/** Badge content */
|
|
1217
|
+
badge?: string | number;
|
|
1218
|
+
/** Content before main body */
|
|
1219
|
+
before?: ReactNode;
|
|
1220
|
+
/** Main content */
|
|
1221
|
+
children: ReactNode;
|
|
1222
|
+
/** Content after main body */
|
|
1223
|
+
after?: ReactNode;
|
|
1224
|
+
/** Footer content */
|
|
1225
|
+
footer?: ReactNode;
|
|
1226
|
+
/** Tools/actions to display in header */
|
|
1227
|
+
tools?: ReactNode;
|
|
1228
|
+
/** Additional CSS class */
|
|
1229
|
+
className?: string;
|
|
1230
|
+
/** Header additional class */
|
|
1231
|
+
headerClassName?: string;
|
|
1232
|
+
/** Title additional class */
|
|
1233
|
+
titleClassName?: string;
|
|
1234
|
+
/** Body additional class */
|
|
1235
|
+
bodyClassName?: string;
|
|
1236
|
+
/** Module size */
|
|
1237
|
+
size?: ModuleSize;
|
|
1238
|
+
/** Whether to show toggle control */
|
|
1239
|
+
useToggle?: boolean;
|
|
1240
|
+
/** Controlled show/hide state */
|
|
1241
|
+
show?: boolean;
|
|
1242
|
+
/** Callback when toggle is clicked */
|
|
1243
|
+
onToggle?: () => void;
|
|
1244
|
+
}
|
|
1245
|
+
/**
|
|
1246
|
+
* Module component - a collapsible card with header, body, and footer sections.
|
|
1247
|
+
* Used for grouping related content like trip segments (Air, Ground, Hotel).
|
|
1248
|
+
*/
|
|
1249
|
+
declare const Module: React__default.FC<ModuleProps>;
|
|
1250
|
+
/**
|
|
1251
|
+
* Horizontal divider for Module content
|
|
1252
|
+
*/
|
|
1253
|
+
declare const ModuleDivider: React__default.FC<{
|
|
1254
|
+
dark?: boolean;
|
|
1255
|
+
className?: string;
|
|
1256
|
+
}>;
|
|
1257
|
+
/**
|
|
1258
|
+
* Vertical divider for Module content
|
|
1259
|
+
*/
|
|
1260
|
+
declare const ModuleVerticalDivider: React__default.FC<{
|
|
1261
|
+
dark?: boolean;
|
|
1262
|
+
className?: string;
|
|
1263
|
+
}>;
|
|
1264
|
+
|
|
1265
|
+
interface SystemBanner {
|
|
1266
|
+
id: string;
|
|
1267
|
+
html: string;
|
|
1268
|
+
detailHtml?: string;
|
|
1269
|
+
}
|
|
1270
|
+
interface TravelAlertBanner {
|
|
1271
|
+
id: string;
|
|
1272
|
+
title: string;
|
|
1273
|
+
body?: string;
|
|
1274
|
+
href?: string;
|
|
1275
|
+
}
|
|
1276
|
+
interface PageBannersProps {
|
|
1277
|
+
systemBanners: SystemBanner[];
|
|
1278
|
+
alertBanners: TravelAlertBanner[];
|
|
1279
|
+
className?: string;
|
|
1280
|
+
}
|
|
1281
|
+
declare const PageBanners: ({ systemBanners, alertBanners, className, }: PageBannersProps) => React.JSX.Element | null;
|
|
1282
|
+
|
|
1283
|
+
interface PreferenceField {
|
|
1284
|
+
/** Field label */
|
|
1285
|
+
label: string;
|
|
1286
|
+
/** Field value display */
|
|
1287
|
+
value?: string | ReactNode;
|
|
1288
|
+
/** Field input element */
|
|
1289
|
+
input?: ReactNode;
|
|
1290
|
+
}
|
|
1291
|
+
interface PreferenceSection {
|
|
1292
|
+
/** Section title */
|
|
1293
|
+
title: string;
|
|
1294
|
+
/** Section icon */
|
|
1295
|
+
icon?: ReactNode;
|
|
1296
|
+
/** Fields in this section */
|
|
1297
|
+
fields: PreferenceField[];
|
|
1298
|
+
}
|
|
1299
|
+
interface PreferencesPanelProps {
|
|
1300
|
+
/** Title of the panel */
|
|
1301
|
+
title?: string;
|
|
1302
|
+
/** Sections to display */
|
|
1303
|
+
sections: PreferenceSection[];
|
|
1304
|
+
/** Alert/info message at top */
|
|
1305
|
+
alert?: ReactNode;
|
|
1306
|
+
/** Footer actions */
|
|
1307
|
+
footer?: ReactNode;
|
|
1308
|
+
/** Whether form is in loading state */
|
|
1309
|
+
isLoading?: boolean;
|
|
1310
|
+
/** Additional class */
|
|
1311
|
+
className?: string;
|
|
1312
|
+
}
|
|
1313
|
+
/**
|
|
1314
|
+
* PreferencesPanel - Displays travel preferences in a multi-column layout
|
|
1315
|
+
*/
|
|
1316
|
+
declare const PreferencesPanel: {
|
|
1317
|
+
({ title, sections, alert, footer, isLoading, className, }: PreferencesPanelProps): React.JSX.Element;
|
|
1318
|
+
displayName: string;
|
|
1319
|
+
};
|
|
1320
|
+
|
|
1321
|
+
interface SummaryItem {
|
|
1322
|
+
/** Label for the field */
|
|
1323
|
+
label: string;
|
|
1324
|
+
/** Value to display */
|
|
1325
|
+
value: string | number | null | undefined;
|
|
1326
|
+
/** Optional formatter function */
|
|
1327
|
+
format?: (value: any) => string;
|
|
1328
|
+
}
|
|
1329
|
+
interface SummarySegment {
|
|
1330
|
+
/** Segment label (e.g., "Flight 1") */
|
|
1331
|
+
label: string;
|
|
1332
|
+
/** Items in this segment */
|
|
1333
|
+
items: SummaryItem[];
|
|
1334
|
+
}
|
|
1335
|
+
interface SummarySectionConfig {
|
|
1336
|
+
/** Section title (e.g., "Commercial Air Request") */
|
|
1337
|
+
title: string;
|
|
1338
|
+
/** Key to check if this section should be visible */
|
|
1339
|
+
key: string;
|
|
1340
|
+
/** Direct items to display */
|
|
1341
|
+
items?: SummaryItem[];
|
|
1342
|
+
/** Segments with repeated items (e.g., multiple flights) */
|
|
1343
|
+
segments?: SummarySegment[];
|
|
1344
|
+
}
|
|
1345
|
+
interface RequestSummaryProps {
|
|
1346
|
+
/** Summary sections to display */
|
|
1347
|
+
sections: SummarySectionConfig[];
|
|
1348
|
+
/** Map of values by field key */
|
|
1349
|
+
values: Record<string, any>;
|
|
1350
|
+
/** Map of enabled sections by key */
|
|
1351
|
+
enabledSections?: Record<string, boolean>;
|
|
1352
|
+
/** Submission info */
|
|
1353
|
+
submissionInfo?: {
|
|
1354
|
+
submittedBy: string;
|
|
1355
|
+
submittedOn: string;
|
|
1356
|
+
};
|
|
1357
|
+
/** Additional CSS class */
|
|
1358
|
+
className?: string;
|
|
1359
|
+
/** Title for the summary panel */
|
|
1360
|
+
title?: string;
|
|
1361
|
+
}
|
|
1362
|
+
/**
|
|
1363
|
+
* SummarySection component for a group of related summary items.
|
|
1364
|
+
*/
|
|
1365
|
+
declare const SummarySection: React__default.FC<{
|
|
1366
|
+
section: SummarySectionConfig;
|
|
1367
|
+
values: Record<string, any>;
|
|
1368
|
+
}>;
|
|
1369
|
+
/**
|
|
1370
|
+
* RequestSummary component for displaying a summary of travel request form data.
|
|
1371
|
+
* Shows enabled sections with their filled-in values.
|
|
1372
|
+
*/
|
|
1373
|
+
declare const RequestSummary: React__default.FC<RequestSummaryProps>;
|
|
1374
|
+
|
|
1375
|
+
interface SidenavItem {
|
|
1376
|
+
/** Unique key for the item */
|
|
1377
|
+
key: string;
|
|
1378
|
+
/** Display label */
|
|
1379
|
+
label: string;
|
|
1380
|
+
/** Icon component to display */
|
|
1381
|
+
icon: React__default.ReactNode;
|
|
1382
|
+
/** Whether item opens in new tab */
|
|
1383
|
+
external?: boolean;
|
|
1384
|
+
/** Click handler */
|
|
1385
|
+
onClick?: () => void;
|
|
1386
|
+
}
|
|
1387
|
+
interface SidenavProps extends HTMLAttributes<HTMLElement> {
|
|
1388
|
+
/** Logo component or image for expanded state */
|
|
1389
|
+
logo?: React__default.ReactNode;
|
|
1390
|
+
/** Logo component or image for collapsed state */
|
|
1391
|
+
logoCollapsed?: React__default.ReactNode;
|
|
1392
|
+
/** Navigation items */
|
|
1393
|
+
items: SidenavItem[];
|
|
1394
|
+
/** Currently active item key */
|
|
1395
|
+
activeKey?: string;
|
|
1396
|
+
/** Callback when an item is clicked */
|
|
1397
|
+
onItemClick?: (key: string) => void;
|
|
1398
|
+
/** Whether the sidenav starts expanded */
|
|
1399
|
+
defaultExpanded?: boolean;
|
|
1400
|
+
/** Footer content (e.g., user avatar) */
|
|
1401
|
+
footer?: React__default.ReactNode;
|
|
1402
|
+
}
|
|
1403
|
+
/**
|
|
1404
|
+
* Sidenav component for main navigation.
|
|
1405
|
+
* Supports expanded and collapsed states with icons and labels.
|
|
1406
|
+
*/
|
|
1407
|
+
declare const Sidenav: React__default.FC<SidenavProps>;
|
|
1408
|
+
|
|
1409
|
+
interface TableColumn<T = any> {
|
|
1410
|
+
/** Unique key for the column */
|
|
1411
|
+
key: string;
|
|
1412
|
+
/** Column header label */
|
|
1413
|
+
label: string;
|
|
1414
|
+
/** Whether the column is sortable */
|
|
1415
|
+
sortable?: boolean;
|
|
1416
|
+
/** Column width (e.g., '100px', '20%') */
|
|
1417
|
+
width?: string;
|
|
1418
|
+
/** Custom render function for cells */
|
|
1419
|
+
render?: (value: any, row: T, index: number) => React__default.ReactNode;
|
|
1420
|
+
/** Text alignment */
|
|
1421
|
+
align?: 'left' | 'center' | 'right';
|
|
1422
|
+
}
|
|
1423
|
+
interface TableProps<T = any> {
|
|
1424
|
+
/** Column definitions */
|
|
1425
|
+
columns: TableColumn<T>[];
|
|
1426
|
+
/** Data rows */
|
|
1427
|
+
data: T[];
|
|
1428
|
+
/** Unique key accessor for each row */
|
|
1429
|
+
rowKey?: keyof T | ((row: T) => string | number);
|
|
1430
|
+
/** Whether to show borders */
|
|
1431
|
+
bordered?: boolean;
|
|
1432
|
+
/** Whether rows are striped */
|
|
1433
|
+
striped?: boolean;
|
|
1434
|
+
/** Whether rows highlight on hover */
|
|
1435
|
+
hoverable?: boolean;
|
|
1436
|
+
/** Whether the table is compact */
|
|
1437
|
+
compact?: boolean;
|
|
1438
|
+
/** Loading state */
|
|
1439
|
+
loading?: boolean;
|
|
1440
|
+
/** Empty state message */
|
|
1441
|
+
emptyMessage?: string;
|
|
1442
|
+
/** Row click handler */
|
|
1443
|
+
onRowClick?: (row: T, index: number) => void;
|
|
1444
|
+
/** Additional CSS class */
|
|
1445
|
+
className?: string;
|
|
1446
|
+
}
|
|
1447
|
+
declare const Table: <T extends Record<string, any> = any>({ columns, data, rowKey, bordered, striped, hoverable, compact, loading, emptyMessage, onRowClick, className, }: TableProps<T>) => React__default.JSX.Element;
|
|
1448
|
+
|
|
1449
|
+
interface TeamOption {
|
|
1450
|
+
/** Team code (e.g., 'MBB', 'WBB') */
|
|
1451
|
+
code: string;
|
|
1452
|
+
/** Team description/name */
|
|
1453
|
+
description: string;
|
|
1454
|
+
/** Team ID */
|
|
1455
|
+
id: string | number;
|
|
1456
|
+
/** Team category: men, women, mixed */
|
|
1457
|
+
category?: 'men' | 'women' | 'mixed';
|
|
1458
|
+
}
|
|
1459
|
+
interface TeamCardProps {
|
|
1460
|
+
/** Title of the card */
|
|
1461
|
+
title?: string;
|
|
1462
|
+
/** Icon element */
|
|
1463
|
+
icon?: ReactNode;
|
|
1464
|
+
/** List of teams to display */
|
|
1465
|
+
teams: TeamOption[];
|
|
1466
|
+
/** Callback when a team is selected */
|
|
1467
|
+
onTeamSelect?: (team: TeamOption) => void;
|
|
1468
|
+
/** Additional class */
|
|
1469
|
+
className?: string;
|
|
1470
|
+
}
|
|
1471
|
+
/**
|
|
1472
|
+
* TeamCard - Displays a list of teams with category filters
|
|
1473
|
+
*/
|
|
1474
|
+
declare const TeamCard: {
|
|
1475
|
+
({ title, icon, teams, onTeamSelect, className, }: TeamCardProps): React.JSX.Element;
|
|
1476
|
+
displayName: string;
|
|
1477
|
+
};
|
|
1478
|
+
|
|
1479
|
+
interface AccountInfo {
|
|
1480
|
+
/** Account code/abbreviation */
|
|
1481
|
+
code: string;
|
|
1482
|
+
/** Full account name */
|
|
1483
|
+
name: string;
|
|
1484
|
+
}
|
|
1485
|
+
interface TopbarProps extends HTMLAttributes<HTMLElement> {
|
|
1486
|
+
/** Current account information */
|
|
1487
|
+
account?: AccountInfo;
|
|
1488
|
+
/** List of available accounts for dropdown */
|
|
1489
|
+
accounts?: AccountInfo[];
|
|
1490
|
+
/** Callback when account is selected */
|
|
1491
|
+
onAccountSelect?: (account: AccountInfo) => void;
|
|
1492
|
+
/** Callback when account selector is clicked (legacy, use onAccountSelect for dropdown) */
|
|
1493
|
+
onAccountClick?: () => void;
|
|
1494
|
+
/** Actions to display on the right side */
|
|
1495
|
+
actions?: React__default.ReactNode;
|
|
1496
|
+
/** Left side content (e.g., account selector) */
|
|
1497
|
+
leftContent?: React__default.ReactNode;
|
|
1498
|
+
}
|
|
1499
|
+
/**
|
|
1500
|
+
* Topbar component for the main header.
|
|
1501
|
+
* Includes account selector with dropdown and action buttons.
|
|
1502
|
+
*/
|
|
1503
|
+
declare const Topbar: React__default.FC<TopbarProps>;
|
|
1504
|
+
|
|
1505
|
+
interface TravelerFormData {
|
|
1506
|
+
/** First name */
|
|
1507
|
+
firstName?: string;
|
|
1508
|
+
/** Middle initial */
|
|
1509
|
+
middleInitial?: string;
|
|
1510
|
+
/** Last name */
|
|
1511
|
+
lastName?: string;
|
|
1512
|
+
/** Weight in lbs */
|
|
1513
|
+
weight?: number;
|
|
1514
|
+
/** Gender */
|
|
1515
|
+
gender?: 'male' | 'female' | 'other' | 'prefer_not_to_say';
|
|
1516
|
+
/** Birth date */
|
|
1517
|
+
birthDate?: string;
|
|
1518
|
+
/** Traveler type */
|
|
1519
|
+
travelerType?: string;
|
|
1520
|
+
/** Known traveler number */
|
|
1521
|
+
knownTravelerNumber?: string;
|
|
1522
|
+
/** DHS redress number */
|
|
1523
|
+
dhsRedress?: string;
|
|
1524
|
+
/** Special requests */
|
|
1525
|
+
specialRequests?: string;
|
|
1526
|
+
/** Seat preference */
|
|
1527
|
+
seatPreference?: 'aisle' | 'window' | 'middle' | 'no_preference';
|
|
1528
|
+
}
|
|
1529
|
+
interface TravelerFormProps {
|
|
1530
|
+
/** Current form values */
|
|
1531
|
+
values?: TravelerFormData;
|
|
1532
|
+
/** Title of the form */
|
|
1533
|
+
title?: string;
|
|
1534
|
+
/** Subtitle/description */
|
|
1535
|
+
subtitle?: string;
|
|
1536
|
+
/** Render props for form fields - allows consumer to provide their own input components */
|
|
1537
|
+
children?: ReactNode;
|
|
1538
|
+
/** Form sections - render props approach */
|
|
1539
|
+
renderNameSection?: (values: TravelerFormData) => ReactNode;
|
|
1540
|
+
renderDetailsSection?: (values: TravelerFormData) => ReactNode;
|
|
1541
|
+
renderPreferencesSection?: (values: TravelerFormData) => ReactNode;
|
|
1542
|
+
/** Footer actions */
|
|
1543
|
+
footer?: ReactNode;
|
|
1544
|
+
/** Whether form is in loading state */
|
|
1545
|
+
isLoading?: boolean;
|
|
1546
|
+
/** Additional class */
|
|
1547
|
+
className?: string;
|
|
1548
|
+
}
|
|
1549
|
+
/**
|
|
1550
|
+
* TravelerForm - Form layout for editing traveler/roster member details
|
|
1551
|
+
*/
|
|
1552
|
+
declare const TravelerForm: {
|
|
1553
|
+
({ values, title, subtitle, children, renderNameSection, renderDetailsSection, renderPreferencesSection, footer, isLoading, className, }: TravelerFormProps): React.JSX.Element;
|
|
1554
|
+
displayName: string;
|
|
1555
|
+
};
|
|
1556
|
+
|
|
1557
|
+
interface TripData {
|
|
1558
|
+
/** Unique trip identifier */
|
|
1559
|
+
id: string;
|
|
1560
|
+
/** PNR/Confirmation number */
|
|
1561
|
+
pnr?: string;
|
|
1562
|
+
/** Request ID (for requested trips) */
|
|
1563
|
+
reqId?: string;
|
|
1564
|
+
/** Traveler name(s) */
|
|
1565
|
+
travelers: string[];
|
|
1566
|
+
/** Sport code */
|
|
1567
|
+
sport?: string;
|
|
1568
|
+
/** Vendor/Airline code */
|
|
1569
|
+
vendor?: string;
|
|
1570
|
+
/** Itinerary string (e.g., "ATL-RDU") */
|
|
1571
|
+
itinerary?: string;
|
|
1572
|
+
/** Travel type codes */
|
|
1573
|
+
types: TravelType[];
|
|
1574
|
+
/** Multi-segment indicators */
|
|
1575
|
+
multiSegments?: TravelType[];
|
|
1576
|
+
/** Travel date range */
|
|
1577
|
+
dates: string;
|
|
1578
|
+
/** Trip status */
|
|
1579
|
+
status: StatusBadgeVariant;
|
|
1580
|
+
/** Requested by (for request trips) */
|
|
1581
|
+
requestedBy?: string;
|
|
1582
|
+
/** Submitted date (for request trips) */
|
|
1583
|
+
submitted?: string;
|
|
1584
|
+
}
|
|
1585
|
+
interface TripTableProps {
|
|
1586
|
+
/** Array of trip data */
|
|
1587
|
+
trips: TripData[];
|
|
1588
|
+
/** Table variant */
|
|
1589
|
+
variant?: 'current' | 'past' | 'requested';
|
|
1590
|
+
/** Density mode */
|
|
1591
|
+
density?: 'comfortable' | 'compact';
|
|
1592
|
+
/** Vendor display mode */
|
|
1593
|
+
vendorMode?: 'icon' | 'code';
|
|
1594
|
+
/** Use unified service column */
|
|
1595
|
+
useServiceColumn?: boolean;
|
|
1596
|
+
/** Callback when viewing a trip */
|
|
1597
|
+
onViewTrip?: (id: string) => void;
|
|
1598
|
+
/** Show empty state */
|
|
1599
|
+
emptyMessage?: string;
|
|
1600
|
+
/** Additional CSS class */
|
|
1601
|
+
className?: string;
|
|
1602
|
+
}
|
|
1603
|
+
declare const TripTable: React__default.FC<TripTableProps>;
|
|
1604
|
+
|
|
1605
|
+
interface AppLayoutProps {
|
|
1606
|
+
/** Navigation items for the sidenav */
|
|
1607
|
+
navItems?: SidenavItem[];
|
|
1608
|
+
/** Currently active navigation item key */
|
|
1609
|
+
activeNavKey?: string;
|
|
1610
|
+
/** Logo element for the sidenav */
|
|
1611
|
+
logo?: React__default.ReactNode;
|
|
1612
|
+
/** Collapsed logo element for the sidenav */
|
|
1613
|
+
collapsedLogo?: React__default.ReactNode;
|
|
1614
|
+
/** Account info for the topbar */
|
|
1615
|
+
account?: AccountInfo;
|
|
1616
|
+
/** Whether the sidenav starts expanded */
|
|
1617
|
+
defaultExpanded?: boolean;
|
|
1618
|
+
/** Callback when navigation item is clicked */
|
|
1619
|
+
onNavItemClick?: (key: string) => void;
|
|
1620
|
+
/** Callback when account selector is clicked */
|
|
1621
|
+
onAccountClick?: () => void;
|
|
1622
|
+
/** Main content to render */
|
|
1623
|
+
children: React__default.ReactNode;
|
|
1624
|
+
/** Footer content for the sidenav */
|
|
1625
|
+
navFooter?: React__default.ReactNode;
|
|
1626
|
+
/** Additional actions for the topbar */
|
|
1627
|
+
topbarActions?: React__default.ReactNode;
|
|
1628
|
+
/** Additional CSS class */
|
|
1629
|
+
className?: string;
|
|
1630
|
+
}
|
|
1631
|
+
declare const AppLayout: React__default.FC<AppLayoutProps>;
|
|
1632
|
+
|
|
1633
|
+
interface RequestFormHeaderProps {
|
|
1634
|
+
/** Title to display */
|
|
1635
|
+
title: string;
|
|
1636
|
+
/** Current page number (1-indexed) */
|
|
1637
|
+
currentPage?: number;
|
|
1638
|
+
/** Total pages */
|
|
1639
|
+
totalPages?: number;
|
|
1640
|
+
/** Event or request name */
|
|
1641
|
+
eventName?: string;
|
|
1642
|
+
/** Additional content on the right side */
|
|
1643
|
+
rightContent?: ReactNode;
|
|
1644
|
+
/** Additional CSS class */
|
|
1645
|
+
className?: string;
|
|
1646
|
+
}
|
|
1647
|
+
interface RequestFormFooterProps {
|
|
1648
|
+
/** Callback for cancel/previous button */
|
|
1649
|
+
onPrevious: () => void;
|
|
1650
|
+
/** Callback for next/submit button */
|
|
1651
|
+
onNext: () => void;
|
|
1652
|
+
/** Whether on first page */
|
|
1653
|
+
isFirstPage?: boolean;
|
|
1654
|
+
/** Whether on last page */
|
|
1655
|
+
isLastPage?: boolean;
|
|
1656
|
+
/** Whether the form is currently submitting */
|
|
1657
|
+
isSubmitting?: boolean;
|
|
1658
|
+
/** Custom previous button text */
|
|
1659
|
+
previousText?: string;
|
|
1660
|
+
/** Custom next button text */
|
|
1661
|
+
nextText?: string;
|
|
1662
|
+
/** Additional CSS class */
|
|
1663
|
+
className?: string;
|
|
1664
|
+
}
|
|
1665
|
+
interface RequestFormLayoutProps {
|
|
1666
|
+
/** Header component */
|
|
1667
|
+
header?: ReactNode;
|
|
1668
|
+
/** Left sidebar content (service toggles) */
|
|
1669
|
+
sidebar?: ReactNode;
|
|
1670
|
+
/** Main form content */
|
|
1671
|
+
children: ReactNode;
|
|
1672
|
+
/** Right sidebar content (summary) */
|
|
1673
|
+
summary?: ReactNode;
|
|
1674
|
+
/** Footer component */
|
|
1675
|
+
footer?: ReactNode;
|
|
1676
|
+
/** Additional CSS class */
|
|
1677
|
+
className?: string;
|
|
1678
|
+
/** Whether to show the sidebar on mobile */
|
|
1679
|
+
showSidebarOnMobile?: boolean;
|
|
1680
|
+
}
|
|
1681
|
+
/**
|
|
1682
|
+
* RequestFormHeader component for the fixed header in travel request forms.
|
|
1683
|
+
*/
|
|
1684
|
+
declare const RequestFormHeader: React__default.FC<RequestFormHeaderProps>;
|
|
1685
|
+
/**
|
|
1686
|
+
* RequestFormFooter component for the fixed footer with navigation buttons.
|
|
1687
|
+
*/
|
|
1688
|
+
declare const RequestFormFooter: React__default.FC<RequestFormFooterProps>;
|
|
1689
|
+
/**
|
|
1690
|
+
* RequestFormLayout template for travel request forms.
|
|
1691
|
+
* Provides a three-column layout with fixed header and footer.
|
|
1692
|
+
*/
|
|
1693
|
+
declare const RequestFormLayout: React__default.FC<RequestFormLayoutProps>;
|
|
1694
|
+
|
|
1695
|
+
type AdministrationTab = 'system' | 'client';
|
|
1696
|
+
interface AdministrationCard {
|
|
1697
|
+
key: string;
|
|
1698
|
+
title: string;
|
|
1699
|
+
description: string;
|
|
1700
|
+
icon?: ReactNode;
|
|
1701
|
+
}
|
|
1702
|
+
interface AdministrationPageProps {
|
|
1703
|
+
activeTab?: AdministrationTab;
|
|
1704
|
+
onTabChange?: (tab: AdministrationTab) => void;
|
|
1705
|
+
cards?: AdministrationCard[];
|
|
1706
|
+
onCardClick?: (card: AdministrationCard) => void;
|
|
1707
|
+
children?: ReactNode;
|
|
1708
|
+
className?: string;
|
|
1709
|
+
}
|
|
1710
|
+
/** Hub administration shell and system-card index. */
|
|
1711
|
+
declare const AdministrationPage: ({ activeTab, onTabChange, cards, onCardClick, children, className, }: AdministrationPageProps) => React.JSX.Element;
|
|
1712
|
+
|
|
1713
|
+
type ManifestSendState = 'none' | 'initial-sent' | 'final-sent';
|
|
1714
|
+
interface CharterManifestSegment {
|
|
1715
|
+
id: string;
|
|
1716
|
+
label: string;
|
|
1717
|
+
detail: string;
|
|
1718
|
+
}
|
|
1719
|
+
interface CharterManifestPassenger {
|
|
1720
|
+
id: string | number;
|
|
1721
|
+
firstName: string;
|
|
1722
|
+
lastName: string;
|
|
1723
|
+
travelerType: string;
|
|
1724
|
+
screeningType?: string;
|
|
1725
|
+
personalWeight?: number;
|
|
1726
|
+
carryOnWeight?: number;
|
|
1727
|
+
checkedWeight?: number;
|
|
1728
|
+
seatAssignment?: string | null;
|
|
1729
|
+
}
|
|
1730
|
+
interface CharterManifestEquipment {
|
|
1731
|
+
id: string | number;
|
|
1732
|
+
name: string;
|
|
1733
|
+
quantity: number;
|
|
1734
|
+
weight: number;
|
|
1735
|
+
}
|
|
1736
|
+
interface CharterManifestPageProps {
|
|
1737
|
+
tripName: string;
|
|
1738
|
+
travelStartDate?: string;
|
|
1739
|
+
travelEndDate?: string;
|
|
1740
|
+
seats: number;
|
|
1741
|
+
payloadLimit: number;
|
|
1742
|
+
passengerWeight: number;
|
|
1743
|
+
cargoWeight: number;
|
|
1744
|
+
carrierName?: string;
|
|
1745
|
+
carrierNote?: string;
|
|
1746
|
+
passengers?: CharterManifestPassenger[];
|
|
1747
|
+
equipment?: CharterManifestEquipment[];
|
|
1748
|
+
segments?: CharterManifestSegment[];
|
|
1749
|
+
locked?: boolean;
|
|
1750
|
+
sendState?: ManifestSendState;
|
|
1751
|
+
onBack?: () => void;
|
|
1752
|
+
onGenerateFile?: () => void;
|
|
1753
|
+
onChangeCarrier?: () => void;
|
|
1754
|
+
onSplitSegments?: () => void;
|
|
1755
|
+
onAddPassengers?: () => void;
|
|
1756
|
+
onAddEquipment?: () => void;
|
|
1757
|
+
onRemovePassenger?: (passenger: CharterManifestPassenger) => void;
|
|
1758
|
+
onRemoveEquipment?: (equipment: CharterManifestEquipment) => void;
|
|
1759
|
+
onSendInitial?: () => void;
|
|
1760
|
+
onSendFinal?: () => void;
|
|
1761
|
+
onUndoInitial?: () => void;
|
|
1762
|
+
className?: string;
|
|
1763
|
+
}
|
|
1764
|
+
/** Stateless, service-free rendering of Hub's charter manifest page. */
|
|
1765
|
+
declare const CharterManifestPage: ({ tripName, travelStartDate, travelEndDate, seats, payloadLimit, passengerWeight, cargoWeight, carrierName, carrierNote, passengers, equipment, segments, locked, sendState, onBack, onGenerateFile, onChangeCarrier, onSplitSegments, onAddPassengers, onAddEquipment, onRemovePassenger, onRemoveEquipment, onSendInitial, onSendFinal, onUndoInitial, className, }: CharterManifestPageProps) => React.JSX.Element;
|
|
1766
|
+
|
|
1767
|
+
interface ContactInfo {
|
|
1768
|
+
name?: string;
|
|
1769
|
+
email?: string;
|
|
1770
|
+
phone?: string;
|
|
1771
|
+
show247?: boolean;
|
|
1772
|
+
}
|
|
1773
|
+
interface ContactCardData {
|
|
1774
|
+
title: string;
|
|
1775
|
+
contacts: ContactInfo[];
|
|
1776
|
+
}
|
|
1777
|
+
interface ContactUsPageProps {
|
|
1778
|
+
/** Page title */
|
|
1779
|
+
title?: string;
|
|
1780
|
+
/** Alert/notification banner */
|
|
1781
|
+
alert?: ReactNode;
|
|
1782
|
+
/** Contact cards to display */
|
|
1783
|
+
cards?: ContactCardData[];
|
|
1784
|
+
/** Custom content to render instead of cards */
|
|
1785
|
+
children?: ReactNode;
|
|
1786
|
+
/** Additional class */
|
|
1787
|
+
className?: string;
|
|
1788
|
+
}
|
|
1789
|
+
/**
|
|
1790
|
+
* ContactUsPage - Contact information page layout
|
|
1791
|
+
*
|
|
1792
|
+
* Shows a page with:
|
|
1793
|
+
* - Title
|
|
1794
|
+
* - Optional alert banner
|
|
1795
|
+
* - Contact cards grid
|
|
1796
|
+
*/
|
|
1797
|
+
declare const ContactUsPage: {
|
|
1798
|
+
({ title, alert, cards, children, className, }: ContactUsPageProps): React.JSX.Element;
|
|
1799
|
+
displayName: string;
|
|
1800
|
+
};
|
|
1801
|
+
|
|
1802
|
+
type DashboardWidgetSize = 'S' | 'M' | 'L';
|
|
1803
|
+
type DashboardWidgetState = 'loading' | 'data' | 'empty' | 'error';
|
|
1804
|
+
interface DashboardWidgetRow {
|
|
1805
|
+
primary: string;
|
|
1806
|
+
secondary?: string;
|
|
1807
|
+
value?: string;
|
|
1808
|
+
badge?: string;
|
|
1809
|
+
}
|
|
1810
|
+
interface DashboardWidget {
|
|
1811
|
+
id: string;
|
|
1812
|
+
type: 'travelers' | 'unused' | 'info';
|
|
1813
|
+
title: string;
|
|
1814
|
+
size: DashboardWidgetSize;
|
|
1815
|
+
state?: DashboardWidgetState;
|
|
1816
|
+
pinned?: boolean;
|
|
1817
|
+
rows?: DashboardWidgetRow[];
|
|
1818
|
+
emptyMessage?: string;
|
|
1819
|
+
footerLabel?: string;
|
|
1820
|
+
}
|
|
1821
|
+
interface DashboardPageProps {
|
|
1822
|
+
greeting?: string;
|
|
1823
|
+
firstName?: string;
|
|
1824
|
+
accountName?: string;
|
|
1825
|
+
widgets?: DashboardWidget[];
|
|
1826
|
+
systemBanners?: SystemBanner[];
|
|
1827
|
+
alertBanners?: TravelAlertBanner[];
|
|
1828
|
+
syncStatus?: 'idle' | 'saving' | 'error';
|
|
1829
|
+
onRefresh?: (widget: DashboardWidget) => void;
|
|
1830
|
+
onRemove?: (widget: DashboardWidget) => void;
|
|
1831
|
+
onResize?: (widget: DashboardWidget, size: DashboardWidgetSize) => void;
|
|
1832
|
+
onReset?: () => void;
|
|
1833
|
+
onAddWidget?: (type: DashboardWidget['type']) => void;
|
|
1834
|
+
className?: string;
|
|
1835
|
+
}
|
|
1836
|
+
/** Hub's personalized post-login landing page. */
|
|
1837
|
+
declare const DashboardPage: ({ greeting, firstName, accountName, widgets, systemBanners, alertBanners, syncStatus, onRefresh, onRemove, onResize, onReset, onAddWidget, className, }: DashboardPageProps) => React.JSX.Element;
|
|
1838
|
+
|
|
1839
|
+
interface GroupTravelRequestPageProps {
|
|
1840
|
+
/** Event name to display in header */
|
|
1841
|
+
eventName?: string;
|
|
1842
|
+
/** Total pages for multi-page forms */
|
|
1843
|
+
totalPages?: number;
|
|
1844
|
+
/** Callback when form is submitted */
|
|
1845
|
+
onSubmit?: (data: any) => void;
|
|
1846
|
+
/** Callback when form is cancelled */
|
|
1847
|
+
onCancel?: () => void;
|
|
1848
|
+
/** Initial form values */
|
|
1849
|
+
initialValues?: Record<string, any>;
|
|
1850
|
+
/** Custom services configuration */
|
|
1851
|
+
services?: ServiceConfig[];
|
|
1852
|
+
/** Custom summary sections */
|
|
1853
|
+
summarySections?: SummarySectionConfig[];
|
|
1854
|
+
/** Additional CSS class */
|
|
1855
|
+
className?: string;
|
|
1856
|
+
}
|
|
1857
|
+
/**
|
|
1858
|
+
* GroupTravelRequestPage component provides a complete travel request form page.
|
|
1859
|
+
* Includes service toggles, form sections, and summary panel.
|
|
1860
|
+
*/
|
|
1861
|
+
declare const GroupTravelRequestPage: React__default.FC<GroupTravelRequestPageProps>;
|
|
1862
|
+
|
|
1863
|
+
type TabKey = 'requested' | 'current' | 'past';
|
|
1864
|
+
interface IndividualTravelPageProps {
|
|
1865
|
+
/** Current trips data */
|
|
1866
|
+
currentTrips: TripData[];
|
|
1867
|
+
/** Past trips data */
|
|
1868
|
+
pastTrips: TripData[];
|
|
1869
|
+
/** Requested trips data */
|
|
1870
|
+
requestedTrips: TripData[];
|
|
1871
|
+
/** Sport options for filter */
|
|
1872
|
+
sportOptions?: FilterOption[];
|
|
1873
|
+
/** Traveler options for filter */
|
|
1874
|
+
travelerOptions?: FilterOption[];
|
|
1875
|
+
/** Initial active tab */
|
|
1876
|
+
initialTab?: TabKey;
|
|
1877
|
+
/** Table density */
|
|
1878
|
+
density?: 'comfortable' | 'compact';
|
|
1879
|
+
/** Vendor display mode */
|
|
1880
|
+
vendorMode?: 'icon' | 'code';
|
|
1881
|
+
/** Use service column mode */
|
|
1882
|
+
useServiceColumn?: boolean;
|
|
1883
|
+
/** Callback when viewing a trip */
|
|
1884
|
+
onViewTrip?: (id: string) => void;
|
|
1885
|
+
/** Callback when viewing a request */
|
|
1886
|
+
onViewRequest?: (id: string) => void;
|
|
1887
|
+
/** Callback when exporting */
|
|
1888
|
+
onExport?: (scope: 'all' | 'current' | 'past') => void;
|
|
1889
|
+
/** Show traveler scope info for standard users */
|
|
1890
|
+
showTravelerScopeInfo?: boolean;
|
|
1891
|
+
/** Additional CSS class */
|
|
1892
|
+
className?: string;
|
|
1893
|
+
}
|
|
1894
|
+
declare const IndividualTravelPage: React__default.FC<IndividualTravelPageProps>;
|
|
1895
|
+
|
|
1896
|
+
interface InfoCenterArticle {
|
|
1897
|
+
id: string;
|
|
1898
|
+
title: string;
|
|
1899
|
+
/** Short plain-text snippet shown on the card */
|
|
1900
|
+
body: string;
|
|
1901
|
+
/** Full HTML body rendered inside the article modal */
|
|
1902
|
+
fullText?: string;
|
|
1903
|
+
category: string;
|
|
1904
|
+
/** External link; when present "Read more" opens it instead of the modal */
|
|
1905
|
+
href?: string;
|
|
1906
|
+
}
|
|
1907
|
+
type InfoCenterPageState = 'loading' | 'data' | 'empty' | 'error';
|
|
1908
|
+
interface InfoCenterPageProps {
|
|
1909
|
+
/** Page title */
|
|
1910
|
+
title?: string;
|
|
1911
|
+
/** Account name shown in the subtitle */
|
|
1912
|
+
accountName?: string;
|
|
1913
|
+
/** Articles to display */
|
|
1914
|
+
articles?: InfoCenterArticle[];
|
|
1915
|
+
/** Explicit page state; derived from `articles` when omitted */
|
|
1916
|
+
state?: InfoCenterPageState;
|
|
1917
|
+
/** Show admin controls (Add Article, per-card edit) */
|
|
1918
|
+
isAdmin?: boolean;
|
|
1919
|
+
/** Called when the admin Add Article button is clicked */
|
|
1920
|
+
onAddArticle?: () => void;
|
|
1921
|
+
/** Called when an admin clicks a card's edit button */
|
|
1922
|
+
onEditArticle?: (article: InfoCenterArticle) => void;
|
|
1923
|
+
/** Called when an article with an external href is opened */
|
|
1924
|
+
onOpenExternal?: (article: InfoCenterArticle) => void;
|
|
1925
|
+
/** Additional class */
|
|
1926
|
+
className?: string;
|
|
1927
|
+
/** Show the Hub breadcrumb above the title. */
|
|
1928
|
+
showBreadcrumb?: boolean;
|
|
1929
|
+
/** Home link used by the breadcrumb. */
|
|
1930
|
+
homeHref?: string;
|
|
1931
|
+
/** Article to open after navigation from a dashboard card. */
|
|
1932
|
+
initialArticleId?: string;
|
|
1933
|
+
/** Called once the initial article has been consumed. */
|
|
1934
|
+
onInitialArticleOpen?: () => void;
|
|
1935
|
+
}
|
|
1936
|
+
/**
|
|
1937
|
+
* InfoCenterPage - Info Center article browser
|
|
1938
|
+
*
|
|
1939
|
+
* Shows all published Info Center articles for the active account,
|
|
1940
|
+
* filtered by category tab. "Read more" on an article with an external
|
|
1941
|
+
* href opens it in a new tab; articles without an href open an inline
|
|
1942
|
+
* modal that renders the full article body.
|
|
1943
|
+
*/
|
|
1944
|
+
declare const InfoCenterPage: ({ title, accountName, articles, state, isAdmin, onAddArticle, onEditArticle, onOpenExternal, className, showBreadcrumb, homeHref, initialArticleId, onInitialArticleOpen, }: InfoCenterPageProps) => React.JSX.Element;
|
|
1945
|
+
|
|
1946
|
+
interface NotFoundPageProps {
|
|
1947
|
+
/** Error code to display */
|
|
1948
|
+
errorCode?: string | number;
|
|
1949
|
+
/** Main heading */
|
|
1950
|
+
title?: string;
|
|
1951
|
+
/** Description message */
|
|
1952
|
+
message?: string;
|
|
1953
|
+
/** Action button/link content */
|
|
1954
|
+
action?: ReactNode;
|
|
1955
|
+
/** Custom illustration or icon */
|
|
1956
|
+
illustration?: ReactNode;
|
|
1957
|
+
/** Additional class */
|
|
1958
|
+
className?: string;
|
|
1959
|
+
}
|
|
1960
|
+
/**
|
|
1961
|
+
* NotFoundPage - 404 error page layout
|
|
1962
|
+
*
|
|
1963
|
+
* Shows a centered error page with:
|
|
1964
|
+
* - Error code (404)
|
|
1965
|
+
* - Title and message
|
|
1966
|
+
* - Optional action button
|
|
1967
|
+
* - Optional illustration
|
|
1968
|
+
*/
|
|
1969
|
+
declare const NotFoundPage: {
|
|
1970
|
+
({ errorCode, title, message, action, illustration, className, }: NotFoundPageProps): React.JSX.Element;
|
|
1971
|
+
displayName: string;
|
|
1972
|
+
};
|
|
1973
|
+
|
|
1974
|
+
interface TeamManagementTab {
|
|
1975
|
+
/** Tab identifier */
|
|
1976
|
+
id: string;
|
|
1977
|
+
/** Tab label */
|
|
1978
|
+
label: string;
|
|
1979
|
+
/** Tab icon */
|
|
1980
|
+
icon?: ReactNode;
|
|
1981
|
+
/** Tab badge count */
|
|
1982
|
+
badge?: number;
|
|
1983
|
+
}
|
|
1984
|
+
interface TeamManagementPageProps {
|
|
1985
|
+
/** Team header component */
|
|
1986
|
+
header?: ReactNode;
|
|
1987
|
+
/** Available tabs */
|
|
1988
|
+
tabs?: TeamManagementTab[];
|
|
1989
|
+
/** Currently active tab */
|
|
1990
|
+
activeTab?: string;
|
|
1991
|
+
/** Tab change handler */
|
|
1992
|
+
onTabChange?: (tabId: string) => void;
|
|
1993
|
+
/** Tab content */
|
|
1994
|
+
children?: ReactNode;
|
|
1995
|
+
/** Sidebar content */
|
|
1996
|
+
sidebar?: ReactNode;
|
|
1997
|
+
/** Footer content */
|
|
1998
|
+
footer?: ReactNode;
|
|
1999
|
+
/** Additional class */
|
|
2000
|
+
className?: string;
|
|
2001
|
+
}
|
|
2002
|
+
/**
|
|
2003
|
+
* TeamManagementPage - Layout for team management with tabbed navigation
|
|
2004
|
+
*/
|
|
2005
|
+
declare const TeamManagementPage: {
|
|
2006
|
+
({ header, tabs, activeTab, onTabChange, children, sidebar, footer, className, }: TeamManagementPageProps): React.JSX.Element;
|
|
2007
|
+
displayName: string;
|
|
2008
|
+
};
|
|
2009
|
+
|
|
2010
|
+
interface ScheduleMetric {
|
|
2011
|
+
label: string;
|
|
2012
|
+
value: string | number;
|
|
2013
|
+
prefix?: string;
|
|
2014
|
+
suffix?: string;
|
|
2015
|
+
}
|
|
2016
|
+
interface ScheduleFilterOption {
|
|
2017
|
+
label: string;
|
|
2018
|
+
value: string | number;
|
|
2019
|
+
}
|
|
2020
|
+
interface TeamSchedulePageProps {
|
|
2021
|
+
/** Page title */
|
|
2022
|
+
title?: string;
|
|
2023
|
+
/** Mobile title variant */
|
|
2024
|
+
mobileTitle?: string;
|
|
2025
|
+
/** Summary metrics to display */
|
|
2026
|
+
metrics?: ScheduleMetric[];
|
|
2027
|
+
/** Team filter content */
|
|
2028
|
+
teamFilter?: ReactNode;
|
|
2029
|
+
/** Service filter content */
|
|
2030
|
+
serviceFilter?: ReactNode;
|
|
2031
|
+
/** Action buttons area */
|
|
2032
|
+
actions?: ReactNode;
|
|
2033
|
+
/** Main schedule content - compact view */
|
|
2034
|
+
compactView?: ReactNode;
|
|
2035
|
+
/** Main schedule content - expanded view */
|
|
2036
|
+
expandedView?: ReactNode;
|
|
2037
|
+
/** Current view mode */
|
|
2038
|
+
viewMode?: 'compact' | 'expanded';
|
|
2039
|
+
/** Whether in mobile mode */
|
|
2040
|
+
isMobile?: boolean;
|
|
2041
|
+
/** Additional class */
|
|
2042
|
+
className?: string;
|
|
2043
|
+
}
|
|
2044
|
+
/**
|
|
2045
|
+
* TeamSchedulePage - Team travel schedule page layout
|
|
2046
|
+
*
|
|
2047
|
+
* Shows a page with:
|
|
2048
|
+
* - Title and filter row
|
|
2049
|
+
* - Summary metrics
|
|
2050
|
+
* - Action buttons
|
|
2051
|
+
* - Schedule table (compact or expanded view)
|
|
2052
|
+
*/
|
|
2053
|
+
declare const TeamSchedulePage: {
|
|
2054
|
+
({ title, mobileTitle, metrics, teamFilter, serviceFilter, actions, compactView, expandedView, viewMode, isMobile, className, }: TeamSchedulePageProps): React.JSX.Element;
|
|
2055
|
+
displayName: string;
|
|
2056
|
+
};
|
|
2057
|
+
|
|
2058
|
+
type CalendarView = 'calendar' | 'card' | 'list';
|
|
2059
|
+
interface CalendarMetric {
|
|
2060
|
+
label: string;
|
|
2061
|
+
value: string | number;
|
|
2062
|
+
onClick?: () => void;
|
|
2063
|
+
}
|
|
2064
|
+
interface TeamTravelCalendarPageProps {
|
|
2065
|
+
/** Page title */
|
|
2066
|
+
title?: string;
|
|
2067
|
+
/** Mobile title variant */
|
|
2068
|
+
mobileTitle?: string;
|
|
2069
|
+
/** Summary metrics to display */
|
|
2070
|
+
metrics?: CalendarMetric[];
|
|
2071
|
+
/** Team filter content */
|
|
2072
|
+
teamFilter?: ReactNode;
|
|
2073
|
+
/** Service filter content */
|
|
2074
|
+
serviceFilter?: ReactNode;
|
|
2075
|
+
/** View selector content */
|
|
2076
|
+
viewSelector?: ReactNode;
|
|
2077
|
+
/** Type selector content */
|
|
2078
|
+
typeSelector?: ReactNode;
|
|
2079
|
+
/** Calendar view content */
|
|
2080
|
+
calendarView?: ReactNode;
|
|
2081
|
+
/** Card view content */
|
|
2082
|
+
cardView?: ReactNode;
|
|
2083
|
+
/** List view content */
|
|
2084
|
+
listView?: ReactNode;
|
|
2085
|
+
/** Sidebar content (due dates) */
|
|
2086
|
+
sidebar?: ReactNode;
|
|
2087
|
+
/** Current view mode */
|
|
2088
|
+
view?: CalendarView;
|
|
2089
|
+
/** Whether sidebar is open */
|
|
2090
|
+
sidebarOpen?: boolean;
|
|
2091
|
+
/** Whether in mobile mode */
|
|
2092
|
+
isMobile?: boolean;
|
|
2093
|
+
/** Additional class */
|
|
2094
|
+
className?: string;
|
|
2095
|
+
}
|
|
2096
|
+
/**
|
|
2097
|
+
* TeamTravelCalendarPage - Team travel calendar page layout
|
|
2098
|
+
*
|
|
2099
|
+
* Shows a page with:
|
|
2100
|
+
* - Title and filter row
|
|
2101
|
+
* - Summary metrics
|
|
2102
|
+
* - View switcher (calendar/card/list)
|
|
2103
|
+
* - Main calendar/card/list view
|
|
2104
|
+
* - Sidebar for due dates
|
|
2105
|
+
*/
|
|
2106
|
+
declare const TeamTravelCalendarPage: {
|
|
2107
|
+
({ title, mobileTitle, metrics, teamFilter, serviceFilter, viewSelector, typeSelector, calendarView, cardView, listView, sidebar, view, sidebarOpen, isMobile, className, }: TeamTravelCalendarPageProps): React.JSX.Element;
|
|
2108
|
+
displayName: string;
|
|
2109
|
+
};
|
|
2110
|
+
|
|
2111
|
+
interface TripDetailPageProps {
|
|
2112
|
+
/** Trip header content (title, status, dates) */
|
|
2113
|
+
header?: ReactNode;
|
|
2114
|
+
/** Air segment content */
|
|
2115
|
+
airSegment?: ReactNode;
|
|
2116
|
+
/** Ground segment content */
|
|
2117
|
+
groundSegment?: ReactNode;
|
|
2118
|
+
/** Hotel segment content */
|
|
2119
|
+
hotelSegment?: ReactNode;
|
|
2120
|
+
/** Files/attachments section */
|
|
2121
|
+
filesSection?: ReactNode;
|
|
2122
|
+
/** Team roster section */
|
|
2123
|
+
teamSection?: ReactNode;
|
|
2124
|
+
/** Events sidebar */
|
|
2125
|
+
eventsSection?: ReactNode;
|
|
2126
|
+
/** Due dates sidebar */
|
|
2127
|
+
dueDatesSection?: ReactNode;
|
|
2128
|
+
/** Additional class */
|
|
2129
|
+
className?: string;
|
|
2130
|
+
}
|
|
2131
|
+
/**
|
|
2132
|
+
* TripDetailPage - Trip detail view layout
|
|
2133
|
+
*
|
|
2134
|
+
* Displays a trip with:
|
|
2135
|
+
* - Header with trip info and status
|
|
2136
|
+
* - Main content area:
|
|
2137
|
+
* - Left (7 cols): Segments (Air/Ground/Hotel), Files, Team
|
|
2138
|
+
* - Right (3 cols): Events, Due Dates
|
|
2139
|
+
*/
|
|
2140
|
+
declare const TripDetailPage: {
|
|
2141
|
+
({ header, airSegment, groundSegment, hotelSegment, filesSection, teamSection, eventsSection, dueDatesSection, className, }: TripDetailPageProps): React.JSX.Element;
|
|
2142
|
+
displayName: string;
|
|
2143
|
+
};
|
|
2144
|
+
|
|
2145
|
+
export { Accordion, AdministrationPage, AirSegment, Alert, AppLayout, ArrowUpRightIcon, Avatar, AvatarGroup, Badge, BuildingIcon, BusIcon, Button, CalendarIcon, CarIcon, Card, CardBody, CardFooter, CardHeader, CharterManifestPage, CheckIcon, Checkbox, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, CloseIcon, ConfirmModal, ContactList, ContactUsPage, CubeIcon, DashboardIcon, DashboardPage, Datepicker, DocumentIcon, DownloadIcon, Drawer, DrawerBody, DrawerFooter, DrawerHeader, Dropdown, EditIcon, EyeIcon, FilterChip, FilterIcon, FormField, FormRow, FormSection, GridIcon, GroundSegment, GroupTravelRequestPage, HomeIcon, HotelIcon, HotelSegment, Icons, IndividualTravelPage, InfoCenterPage, InfoIcon, Input, LightbulbIcon, LimoIcon, LockIcon, LogoIcon, MailIcon, ManifestCapacityStats, ManifestViewToggle, MegaphoneIcon, MembershipPrograms, MenuIcon, Metric, MinusIcon, Modal, ModalFooter, Module, ModuleDivider, ModuleVerticalDivider, NavItem, NotFoundPage, PageBanners, PhoneIcon, PlaneIcon, PlusIcon, PreferencesPanel, PrinterIcon, Progress, ProgressBar, ProgressCircle, RailIcon, RefreshIcon, ReportIcon, RequestFormFooter, RequestFormHeader, RequestFormLayout, RequestSummary, RosterToolbar, SearchField, SearchIcon, Segment, Select, SelectFilter, ServiceToggle, ServiceToggleList, SettingsIcon, Sidenav, Spinner, StatusBadge, SummarySection, Table, Tag, TeamCard, TeamHeader, TeamManagementPage, TeamSchedulePage, TeamTravelCalendarPage, Textarea, Timepicker, Title, Toggle, Tooltip, Topbar, TrashIcon, TravelServiceIcon, TravelerForm, TrendDownIcon, TrendUpIcon, TripDetailPage, TripSegment, TripTable, TypeIcon, UserIcon, UsersIcon, WarningIcon, XIcon };
|
|
2146
|
+
export type { AccordionProps, AccountInfo, AdministrationCard, AdministrationPageProps, AdministrationTab, AirSegmentProps, AlertProps, AlertVariant, AppLayoutProps, AvatarGroupProps, AvatarProps, AvatarSize, BadgeProps, BadgeSize, BadgeVariant, ButtonProps, ButtonSize, ButtonVariant, CalendarMetric, CalendarView, CardBodyProps, CardFooterProps, CardHeaderProps, CardPadding, CardProps, CardVariant, CharterManifestEquipment, CharterManifestPageProps, CharterManifestPassenger, CharterManifestSegment, CheckboxProps, ConfirmModalProps, Contact, ContactCardData, ContactInfo, ContactListProps, ContactUsPageProps, DashboardPageProps, DatepickerProps, DatepickerSize, DrawerBodyProps, DrawerFooterProps, DrawerHeaderProps, DrawerPosition, DrawerProps, DrawerSize, DropdownAlignment, DropdownItemProps, DropdownProps, FilterChipProps, FilterOption, FlightData, FormFieldProps, FormRowProps, FormSectionProps, GroundData, GroundSegmentProps, GroupTravelRequestPageProps, HotelData, HotelSegmentProps, IconName, IconProps, IndividualTravelPageProps, InfoCenterArticle, InfoCenterPageProps, InfoCenterPageState, InputProps, InputSize, ManifestCapacityStatsProps, ManifestSendState, ManifestView, ManifestViewToggleProps, MembershipProgram, MembershipProgramsProps, MetricProps, ModalFooterProps, ModalProps, ModalSize, ModuleProps, ModuleSize, NavItemProps, NavItemSize, NavItemVariant, NotFoundPageProps, PageBannersProps, PreferenceField, PreferenceSection, PreferencesPanelProps, ProgressBarProps, ProgressCircleProps, ProgressSize, ProgressVariant, RequestFormFooterProps, RequestFormHeaderProps, RequestFormLayoutProps, RequestSummaryProps, RosterToolbarProps, ScheduleFilterOption, ScheduleMetric, SearchFieldProps, SegmentOption, SegmentProps, SegmentVariant, SelectFilterOption, SelectFilterProps, SelectOption, SelectOptionGroup, SelectProps, SelectSize, ServiceConfig, ServiceToggleListProps, ServiceToggleProps, SidenavItem, SidenavProps, SpinnerProps, SpinnerSize, StatusBadgeProps, StatusBadgeVariant, SummaryItem, SummarySectionConfig, SummarySegment, SystemBanner, TabKey, TableColumn, TableProps, TagProps, TagSize, TagVariant, TeamCardProps, TeamHeaderProps, TeamManagementPageProps, TeamManagementTab, TeamOption, TeamSchedulePageProps, TeamTravelCalendarPageProps, TextareaProps, TimepickerProps, TimepickerSize, TitleProps, TitleWeight, ToggleProps, ToggleSize, ToolbarAction, TooltipPosition, TooltipProps, TooltipVariant, TopbarProps, TravelAlertBanner, TravelServiceIconProps, TravelType, TravelerFormData, TravelerFormProps, TripData, TripDetailPageProps, TripSegmentProps, TripTableProps, TypeIconProps, VendorCode };
|