@shortstravelmgmt/component-lib 0.2.11 → 0.2.12-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -800,7 +800,7 @@ const Icons = {
800
800
  Trash: TrashIcon$2,
801
801
  };
802
802
 
803
- var styles$1I = {"alert":"Alert-module_alert__xxiES","content":"Alert-module_content__CVX32","icon":"Alert-module_icon__Xyh6J","body":"Alert-module_body__TTkmt","title":"Alert-module_title__7wNPO","message":"Alert-module_message__plreL","dismissButton":"Alert-module_dismissButton__MdRWh","primary":"Alert-module_primary__nME13","success":"Alert-module_success__GDt4S","warning":"Alert-module_warning__y4bLx","error":"Alert-module_error__nKMAG"};
803
+ var styles$1J = {"alert":"Alert-module_alert__xxiES","content":"Alert-module_content__CVX32","icon":"Alert-module_icon__Xyh6J","body":"Alert-module_body__TTkmt","title":"Alert-module_title__7wNPO","message":"Alert-module_message__plreL","dismissButton":"Alert-module_dismissButton__MdRWh","primary":"Alert-module_primary__nME13","success":"Alert-module_success__GDt4S","warning":"Alert-module_warning__y4bLx","error":"Alert-module_error__nKMAG"};
804
804
 
805
805
  const variantIcons$1 = {
806
806
  primary: LightbulbIcon,
@@ -810,7 +810,7 @@ const variantIcons$1 = {
810
810
  };
811
811
  const Alert = ({ variant = 'primary', title, children, dismissible = false, onDismiss, className = '', }) => {
812
812
  const IconComponent = variantIcons$1[variant];
813
- return (jsxRuntime.jsx("div", { className: `${styles$1I.alert} ${styles$1I[variant]} ${className}`, role: "alert", children: jsxRuntime.jsxs("div", { className: styles$1I.content, children: [jsxRuntime.jsx(IconComponent, { className: styles$1I.icon, size: 20 }), jsxRuntime.jsxs("div", { className: styles$1I.body, children: [title && jsxRuntime.jsx("h4", { className: styles$1I.title, children: title }), jsxRuntime.jsx("div", { className: styles$1I.message, children: children })] }), dismissible && onDismiss && (jsxRuntime.jsx("button", { type: "button", onClick: onDismiss, className: styles$1I.dismissButton, "aria-label": "Dismiss alert", children: jsxRuntime.jsx(CloseIcon, { size: 16 }) }))] }) }));
813
+ return (jsxRuntime.jsx("div", { className: `${styles$1J.alert} ${styles$1J[variant]} ${className}`, role: "alert", children: jsxRuntime.jsxs("div", { className: styles$1J.content, children: [jsxRuntime.jsx(IconComponent, { className: styles$1J.icon, size: 20 }), jsxRuntime.jsxs("div", { className: styles$1J.body, children: [title && jsxRuntime.jsx("h4", { className: styles$1J.title, children: title }), jsxRuntime.jsx("div", { className: styles$1J.message, children: children })] }), dismissible && onDismiss && (jsxRuntime.jsx("button", { type: "button", onClick: onDismiss, className: styles$1J.dismissButton, "aria-label": "Dismiss alert", children: jsxRuntime.jsx(CloseIcon, { size: 16 }) }))] }) }));
814
814
  };
815
815
 
816
816
  // ============================================================================
@@ -1076,7 +1076,7 @@ const Badge = ({ variant = 'default', size = 'md', dot = false, className = '',
1076
1076
  };
1077
1077
  Badge.displayName = 'Badge';
1078
1078
 
1079
- var styles$1H = {"button":"Button-module_button__xDdzH","sm":"Button-module_sm__fb2AF","md":"Button-module_md__XOa6t","lg":"Button-module_lg__UN9rL","square":"Button-module_square__-o34b","primary":"Button-module_primary__jWHqR","secondary":"Button-module_secondary__30FUq","outline":"Button-module_outline__v98mS","ghost":"Button-module_ghost__XUGB1","danger":"Button-module_danger__NUxPy","fullWidth":"Button-module_fullWidth__p2otK","loading":"Button-module_loading__TsL5I","spinner":"Button-module_spinner__6bZoj","spin":"Button-module_spin__ZPDMG","icon":"Button-module_icon__21hUM","content":"Button-module_content__iVRPQ"};
1079
+ var styles$1I = {"button":"Button-module_button__xDdzH","sm":"Button-module_sm__fb2AF","md":"Button-module_md__XOa6t","lg":"Button-module_lg__UN9rL","square":"Button-module_square__-o34b","primary":"Button-module_primary__jWHqR","secondary":"Button-module_secondary__30FUq","outline":"Button-module_outline__v98mS","ghost":"Button-module_ghost__XUGB1","danger":"Button-module_danger__NUxPy","fullWidth":"Button-module_fullWidth__p2otK","loading":"Button-module_loading__TsL5I","spinner":"Button-module_spinner__6bZoj","spin":"Button-module_spin__ZPDMG","icon":"Button-module_icon__21hUM","content":"Button-module_content__iVRPQ"};
1080
1080
 
1081
1081
  /**
1082
1082
  * Primary button component for user interactions.
@@ -1084,17 +1084,17 @@ var styles$1H = {"button":"Button-module_button__xDdzH","sm":"Button-module_sm__
1084
1084
  */
1085
1085
  const Button = React.forwardRef(({ variant = 'primary', size = 'md', fullWidth = false, loading = false, leftIcon, rightIcon, square = false, className = '', disabled, children, ...props }, ref) => {
1086
1086
  const classNames = [
1087
- styles$1H.button,
1088
- styles$1H[variant],
1089
- styles$1H[size],
1090
- fullWidth ? styles$1H.fullWidth : '',
1091
- square ? styles$1H.square : '',
1092
- loading ? styles$1H.loading : '',
1087
+ styles$1I.button,
1088
+ styles$1I[variant],
1089
+ styles$1I[size],
1090
+ fullWidth ? styles$1I.fullWidth : '',
1091
+ square ? styles$1I.square : '',
1092
+ loading ? styles$1I.loading : '',
1093
1093
  className,
1094
1094
  ]
1095
1095
  .filter(Boolean)
1096
1096
  .join(' ');
1097
- return (jsxRuntime.jsxs("button", { ref: ref, className: classNames, disabled: disabled || loading, ...props, children: [loading && (jsxRuntime.jsx("span", { className: styles$1H.spinner, children: jsxRuntime.jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10", strokeOpacity: "0.25" }), jsxRuntime.jsx("path", { d: "M12 2a10 10 0 0 1 10 10", strokeLinecap: "round" })] }) })), !loading && leftIcon && jsxRuntime.jsx("span", { className: styles$1H.icon, children: leftIcon }), children && jsxRuntime.jsx("span", { className: styles$1H.content, children: children }), !loading && rightIcon && jsxRuntime.jsx("span", { className: styles$1H.icon, children: rightIcon })] }));
1097
+ return (jsxRuntime.jsxs("button", { ref: ref, className: classNames, disabled: disabled || loading, ...props, children: [loading && (jsxRuntime.jsx("span", { className: styles$1I.spinner, children: jsxRuntime.jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10", strokeOpacity: "0.25" }), jsxRuntime.jsx("path", { d: "M12 2a10 10 0 0 1 10 10", strokeLinecap: "round" })] }) })), !loading && leftIcon && jsxRuntime.jsx("span", { className: styles$1I.icon, children: leftIcon }), children && jsxRuntime.jsx("span", { className: styles$1I.content, children: children }), !loading && rightIcon && jsxRuntime.jsx("span", { className: styles$1I.icon, children: rightIcon })] }));
1098
1098
  });
1099
1099
  Button.displayName = 'Button';
1100
1100
 
@@ -1431,23 +1431,23 @@ const ButtonStyled = React.forwardRef(({ variant = 'primary', size = 'md', fullW
1431
1431
  });
1432
1432
  ButtonStyled.displayName = 'ButtonStyled';
1433
1433
 
1434
- var styles$1G = {"wrapper":"Checkbox-module_wrapper__tYM-f","label":"Checkbox-module_label__x7c9f","disabled":"Checkbox-module_disabled__YtL8b","checkboxWrapper":"Checkbox-module_checkboxWrapper__ez0mi","input":"Checkbox-module_input__xBHoX","checkbox":"Checkbox-module_checkbox__zGuTf","sm":"Checkbox-module_sm__naurE","md":"Checkbox-module_md__LlE6O","lg":"Checkbox-module_lg__dMWT-","hasError":"Checkbox-module_hasError__aCefd","labelText":"Checkbox-module_labelText__7arlw","helperText":"Checkbox-module_helperText__jR4oi","errorText":"Checkbox-module_errorText__u8puP"};
1434
+ var styles$1H = {"wrapper":"Checkbox-module_wrapper__tYM-f","label":"Checkbox-module_label__x7c9f","disabled":"Checkbox-module_disabled__YtL8b","checkboxWrapper":"Checkbox-module_checkboxWrapper__ez0mi","input":"Checkbox-module_input__xBHoX","checkbox":"Checkbox-module_checkbox__zGuTf","sm":"Checkbox-module_sm__naurE","md":"Checkbox-module_md__LlE6O","lg":"Checkbox-module_lg__dMWT-","hasError":"Checkbox-module_hasError__aCefd","labelText":"Checkbox-module_labelText__7arlw","helperText":"Checkbox-module_helperText__jR4oi","errorText":"Checkbox-module_errorText__u8puP"};
1435
1435
 
1436
1436
  const CheckIcon$1 = () => (jsxRuntime.jsx("svg", { width: "10", height: "8", viewBox: "0 0 10 8", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: jsxRuntime.jsx("path", { d: "M1 4L3.5 6.5L9 1", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) }));
1437
1437
  const IndeterminateIcon = () => (jsxRuntime.jsx("svg", { width: "10", height: "2", viewBox: "0 0 10 2", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: jsxRuntime.jsx("path", { d: "M1 1H9", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round" }) }));
1438
1438
  /**
1439
1439
  * Checkbox component for boolean selections.
1440
1440
  */
1441
- const Checkbox = React.forwardRef(({ label, size = 'md', helperText, error, indeterminate = false, className = '', disabled, id, checked, ...props }, ref) => {
1441
+ const Checkbox = React.forwardRef(({ label, size = 'md', helperText, error, indeterminate = false, className = '', disabled, id, checked, type = 'checkbox', indicator, ...props }, ref) => {
1442
1442
  const generatedId = React.useId();
1443
1443
  const checkboxId = id || generatedId;
1444
1444
  const helperId = `${checkboxId}-helper`;
1445
1445
  const errorId = `${checkboxId}-error`;
1446
1446
  const wrapperClasses = [
1447
- styles$1G.wrapper,
1448
- styles$1G[size],
1449
- disabled ? styles$1G.disabled : '',
1450
- error ? styles$1G.hasError : '',
1447
+ styles$1H.wrapper,
1448
+ styles$1H[size],
1449
+ disabled ? styles$1H.disabled : '',
1450
+ error ? styles$1H.hasError : '',
1451
1451
  className,
1452
1452
  ].filter(Boolean).join(' ');
1453
1453
  // Handle indeterminate state via ref
@@ -1463,13 +1463,17 @@ const Checkbox = React.forwardRef(({ label, size = 'md', helperText, error, inde
1463
1463
  ref.current = node;
1464
1464
  }
1465
1465
  };
1466
- return (jsxRuntime.jsxs("div", { className: wrapperClasses, children: [jsxRuntime.jsxs("label", { className: styles$1G.label, children: [jsxRuntime.jsxs("div", { className: styles$1G.checkboxWrapper, children: [jsxRuntime.jsx("input", { ref: inputRef, type: "checkbox", id: checkboxId, className: styles$1G.input, disabled: disabled, checked: checked, "aria-invalid": !!error, "aria-describedby": [error ? errorId : null, helperText ? helperId : null]
1466
+ return (jsxRuntime.jsxs("div", { className: wrapperClasses, children: [jsxRuntime.jsxs("label", { className: styles$1H.label, children: [jsxRuntime.jsxs("div", { className: styles$1H.checkboxWrapper, children: [jsxRuntime.jsx("input", { ref: inputRef, type: type, id: checkboxId, className: styles$1H.input, disabled: disabled, checked: checked, "aria-invalid": !!error, "aria-describedby": [error ? errorId : null, helperText ? helperId : null]
1467
1467
  .filter(Boolean)
1468
- .join(' ') || undefined, ...props }), jsxRuntime.jsx("span", { className: styles$1G.checkbox, children: indeterminate ? jsxRuntime.jsx(IndeterminateIcon, {}) : jsxRuntime.jsx(CheckIcon$1, {}) })] }), label && jsxRuntime.jsx("span", { className: styles$1G.labelText, children: label })] }), error && (jsxRuntime.jsx("span", { id: errorId, className: styles$1G.errorText, children: error })), helperText && !error && (jsxRuntime.jsx("span", { id: helperId, className: styles$1G.helperText, children: helperText }))] }));
1468
+ .join(' ') || undefined, ...props }), jsxRuntime.jsx("span", { className: indicator ? undefined : styles$1H.checkbox, children: indicator
1469
+ ? indicator({ checked: !!checked, indeterminate, disabled: !!disabled })
1470
+ : indeterminate
1471
+ ? jsxRuntime.jsx(IndeterminateIcon, {})
1472
+ : jsxRuntime.jsx(CheckIcon$1, {}) })] }), label && jsxRuntime.jsx("span", { className: styles$1H.labelText, children: label })] }), error && (jsxRuntime.jsx("span", { id: errorId, className: styles$1H.errorText, children: error })), helperText && !error && (jsxRuntime.jsx("span", { id: helperId, className: styles$1H.helperText, children: helperText }))] }));
1469
1473
  });
1470
1474
  Checkbox.displayName = 'Checkbox';
1471
1475
 
1472
- var styles$1F = {"wrapper":"Datepicker-module_wrapper__SdezU","fullWidth":"Datepicker-module_fullWidth__CAeMt","label":"Datepicker-module_label__qUNBV","inputWrapper":"Datepicker-module_inputWrapper__FK2IJ","sm":"Datepicker-module_sm__DuDMB","md":"Datepicker-module_md__oyus3","lg":"Datepicker-module_lg__2sqBg","icon":"Datepicker-module_icon__WdaRf","input":"Datepicker-module_input__4TCcy","disabled":"Datepicker-module_disabled__W0e-a","error":"Datepicker-module_error__XPpIy","helperText":"Datepicker-module_helperText__UllZP","errorText":"Datepicker-module_errorText__lveyr"};
1476
+ var styles$1G = {"wrapper":"Datepicker-module_wrapper__SdezU","fullWidth":"Datepicker-module_fullWidth__CAeMt","label":"Datepicker-module_label__qUNBV","inputWrapper":"Datepicker-module_inputWrapper__FK2IJ","sm":"Datepicker-module_sm__DuDMB","md":"Datepicker-module_md__oyus3","lg":"Datepicker-module_lg__2sqBg","icon":"Datepicker-module_icon__WdaRf","input":"Datepicker-module_input__4TCcy","disabled":"Datepicker-module_disabled__W0e-a","error":"Datepicker-module_error__XPpIy","helperText":"Datepicker-module_helperText__UllZP","errorText":"Datepicker-module_errorText__lveyr"};
1473
1477
 
1474
1478
  const CalendarIcon = () => (jsxRuntime.jsxs("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [jsxRuntime.jsx("rect", { x: "3", y: "4", width: "18", height: "18", rx: "2", ry: "2" }), jsxRuntime.jsx("line", { x1: "16", y1: "2", x2: "16", y2: "6" }), jsxRuntime.jsx("line", { x1: "8", y1: "2", x2: "8", y2: "6" }), jsxRuntime.jsx("line", { x1: "3", y1: "10", x2: "21", y2: "10" })] }));
1475
1479
  /**
@@ -1481,23 +1485,23 @@ const Datepicker = React.forwardRef(({ size = 'md', label, helperText, error, fu
1481
1485
  const helperId = `${inputId}-helper`;
1482
1486
  const errorId = `${inputId}-error`;
1483
1487
  const wrapperClasses = [
1484
- styles$1F.wrapper,
1485
- fullWidth ? styles$1F.fullWidth : '',
1488
+ styles$1G.wrapper,
1489
+ fullWidth ? styles$1G.fullWidth : '',
1486
1490
  className,
1487
1491
  ].filter(Boolean).join(' ');
1488
1492
  const inputWrapperClasses = [
1489
- styles$1F.inputWrapper,
1490
- styles$1F[size],
1491
- error ? styles$1F.error : '',
1492
- disabled ? styles$1F.disabled : '',
1493
+ styles$1G.inputWrapper,
1494
+ styles$1G[size],
1495
+ error ? styles$1G.error : '',
1496
+ disabled ? styles$1G.disabled : '',
1493
1497
  ].filter(Boolean).join(' ');
1494
- return (jsxRuntime.jsxs("div", { className: wrapperClasses, children: [label && (jsxRuntime.jsx("label", { htmlFor: inputId, className: styles$1F.label, children: label })), jsxRuntime.jsxs("div", { className: inputWrapperClasses, children: [jsxRuntime.jsx("span", { className: styles$1F.icon, children: jsxRuntime.jsx(CalendarIcon, {}) }), jsxRuntime.jsx("input", { ref: ref, type: "date", id: inputId, className: styles$1F.input, disabled: disabled, "aria-invalid": !!error, "aria-describedby": [error ? errorId : null, helperText ? helperId : null]
1498
+ return (jsxRuntime.jsxs("div", { className: wrapperClasses, children: [label && (jsxRuntime.jsx("label", { htmlFor: inputId, className: styles$1G.label, children: label })), jsxRuntime.jsxs("div", { className: inputWrapperClasses, children: [jsxRuntime.jsx("span", { className: styles$1G.icon, children: jsxRuntime.jsx(CalendarIcon, {}) }), jsxRuntime.jsx("input", { ref: ref, type: "date", id: inputId, className: styles$1G.input, disabled: disabled, "aria-invalid": !!error, "aria-describedby": [error ? errorId : null, helperText ? helperId : null]
1495
1499
  .filter(Boolean)
1496
- .join(' ') || undefined, ...props })] }), error && (jsxRuntime.jsx("span", { id: errorId, className: styles$1F.errorText, children: error })), helperText && !error && (jsxRuntime.jsx("span", { id: helperId, className: styles$1F.helperText, children: helperText }))] }));
1500
+ .join(' ') || undefined, ...props })] }), error && (jsxRuntime.jsx("span", { id: errorId, className: styles$1G.errorText, children: error })), helperText && !error && (jsxRuntime.jsx("span", { id: helperId, className: styles$1G.helperText, children: helperText }))] }));
1497
1501
  });
1498
1502
  Datepicker.displayName = 'Datepicker';
1499
1503
 
1500
- var styles$1E = {"wrapper":"Input-module_wrapper__-8ija","fullWidth":"Input-module_fullWidth__xXOvN","label":"Input-module_label__t4LH-","inputWrapper":"Input-module_inputWrapper__U4EEd","error":"Input-module_error__fT9Sb","disabled":"Input-module_disabled__3tnIE","xs":"Input-module_xs__p7BuD","sm":"Input-module_sm__lGHP-","md":"Input-module_md__pReoW","lg":"Input-module_lg__iqqov","input":"Input-module_input__PeHY6","icon":"Input-module_icon__jkJiF","textarea":"Input-module_textarea__ZgdBz","helperText":"Input-module_helperText__eKsC8","errorText":"Input-module_errorText__xoiKP"};
1504
+ var styles$1F = {"wrapper":"Input-module_wrapper__-8ija","fullWidth":"Input-module_fullWidth__xXOvN","label":"Input-module_label__t4LH-","inputWrapper":"Input-module_inputWrapper__U4EEd","error":"Input-module_error__fT9Sb","disabled":"Input-module_disabled__3tnIE","xs":"Input-module_xs__p7BuD","sm":"Input-module_sm__lGHP-","md":"Input-module_md__pReoW","lg":"Input-module_lg__iqqov","input":"Input-module_input__PeHY6","icon":"Input-module_icon__jkJiF","textarea":"Input-module_textarea__ZgdBz","helperText":"Input-module_helperText__eKsC8","errorText":"Input-module_errorText__xoiKP"};
1501
1505
 
1502
1506
  /**
1503
1507
  * Input component for text entry.
@@ -1505,45 +1509,45 @@ var styles$1E = {"wrapper":"Input-module_wrapper__-8ija","fullWidth":"Input-modu
1505
1509
  const Input = React.forwardRef(({ size = 'md', label, helperText, error, leftIcon, rightIcon, fullWidth = false, className = '', id, disabled, ...props }, ref) => {
1506
1510
  const inputId = id || `input-${Math.random().toString(36).substr(2, 9)}`;
1507
1511
  const wrapperClasses = [
1508
- styles$1E.wrapper,
1509
- fullWidth ? styles$1E.fullWidth : '',
1512
+ styles$1F.wrapper,
1513
+ fullWidth ? styles$1F.fullWidth : '',
1510
1514
  className,
1511
1515
  ]
1512
1516
  .filter(Boolean)
1513
1517
  .join(' ');
1514
1518
  const inputWrapperClasses = [
1515
- styles$1E.inputWrapper,
1516
- styles$1E[size],
1517
- error ? styles$1E.error : '',
1518
- disabled ? styles$1E.disabled : '',
1519
+ styles$1F.inputWrapper,
1520
+ styles$1F[size],
1521
+ error ? styles$1F.error : '',
1522
+ disabled ? styles$1F.disabled : '',
1519
1523
  ]
1520
1524
  .filter(Boolean)
1521
1525
  .join(' ');
1522
- return (jsxRuntime.jsxs("div", { className: wrapperClasses, children: [label && (jsxRuntime.jsx("label", { htmlFor: inputId, className: styles$1E.label, children: label })), jsxRuntime.jsxs("div", { className: inputWrapperClasses, children: [leftIcon && jsxRuntime.jsx("span", { className: styles$1E.icon, children: leftIcon }), jsxRuntime.jsx("input", { ref: ref, id: inputId, className: styles$1E.input, disabled: disabled, "aria-invalid": !!error, "aria-describedby": error ? `${inputId}-error` : helperText ? `${inputId}-helper` : undefined, ...props }), rightIcon && jsxRuntime.jsx("span", { className: styles$1E.icon, children: rightIcon })] }), error && (jsxRuntime.jsx("span", { id: `${inputId}-error`, className: styles$1E.errorText, children: error })), helperText && !error && (jsxRuntime.jsx("span", { id: `${inputId}-helper`, className: styles$1E.helperText, children: helperText }))] }));
1526
+ return (jsxRuntime.jsxs("div", { className: wrapperClasses, children: [label && (jsxRuntime.jsx("label", { htmlFor: inputId, className: styles$1F.label, children: label })), jsxRuntime.jsxs("div", { className: inputWrapperClasses, children: [leftIcon && jsxRuntime.jsx("span", { className: styles$1F.icon, children: leftIcon }), jsxRuntime.jsx("input", { ref: ref, id: inputId, className: styles$1F.input, disabled: disabled, "aria-invalid": !!error, "aria-describedby": error ? `${inputId}-error` : helperText ? `${inputId}-helper` : undefined, ...props }), rightIcon && jsxRuntime.jsx("span", { className: styles$1F.icon, children: rightIcon })] }), error && (jsxRuntime.jsx("span", { id: `${inputId}-error`, className: styles$1F.errorText, children: error })), helperText && !error && (jsxRuntime.jsx("span", { id: `${inputId}-helper`, className: styles$1F.helperText, children: helperText }))] }));
1523
1527
  });
1524
1528
  Input.displayName = 'Input';
1525
1529
  const Textarea = React.forwardRef(({ size = 'md', label, helperText, error, fullWidth = false, className = '', id, disabled, rows = 4, ...props }, ref) => {
1526
1530
  const textareaId = id || `textarea-${Math.random().toString(36).substr(2, 9)}`;
1527
1531
  const wrapperClasses = [
1528
- styles$1E.wrapper,
1529
- fullWidth ? styles$1E.fullWidth : '',
1532
+ styles$1F.wrapper,
1533
+ fullWidth ? styles$1F.fullWidth : '',
1530
1534
  className,
1531
1535
  ]
1532
1536
  .filter(Boolean)
1533
1537
  .join(' ');
1534
1538
  const textareaClasses = [
1535
- styles$1E.textarea,
1536
- styles$1E[size],
1537
- error ? styles$1E.error : '',
1538
- disabled ? styles$1E.disabled : '',
1539
+ styles$1F.textarea,
1540
+ styles$1F[size],
1541
+ error ? styles$1F.error : '',
1542
+ disabled ? styles$1F.disabled : '',
1539
1543
  ]
1540
1544
  .filter(Boolean)
1541
1545
  .join(' ');
1542
- return (jsxRuntime.jsxs("div", { className: wrapperClasses, children: [label && (jsxRuntime.jsx("label", { htmlFor: textareaId, className: styles$1E.label, children: label })), jsxRuntime.jsx("textarea", { ref: ref, id: textareaId, className: textareaClasses, disabled: disabled, rows: rows, "aria-invalid": !!error, "aria-describedby": error ? `${textareaId}-error` : helperText ? `${textareaId}-helper` : undefined, ...props }), error && (jsxRuntime.jsx("span", { id: `${textareaId}-error`, className: styles$1E.errorText, children: error })), helperText && !error && (jsxRuntime.jsx("span", { id: `${textareaId}-helper`, className: styles$1E.helperText, children: helperText }))] }));
1546
+ return (jsxRuntime.jsxs("div", { className: wrapperClasses, children: [label && (jsxRuntime.jsx("label", { htmlFor: textareaId, className: styles$1F.label, children: label })), jsxRuntime.jsx("textarea", { ref: ref, id: textareaId, className: textareaClasses, disabled: disabled, rows: rows, "aria-invalid": !!error, "aria-describedby": error ? `${textareaId}-error` : helperText ? `${textareaId}-helper` : undefined, ...props }), error && (jsxRuntime.jsx("span", { id: `${textareaId}-error`, className: styles$1F.errorText, children: error })), helperText && !error && (jsxRuntime.jsx("span", { id: `${textareaId}-helper`, className: styles$1F.helperText, children: helperText }))] }));
1543
1547
  });
1544
1548
  Textarea.displayName = 'Textarea';
1545
1549
 
1546
- var styles$1D = {"metric":"Metric-module_metric__LZ8D-","dark":"Metric-module_dark__FKdvj","clickable":"Metric-module_clickable__c3-pM","content":"Metric-module_content__YYpBG","valueRow":"Metric-module_valueRow__JpgYR","valueContainer":"Metric-module_valueContainer__CzjZ1","prefix":"Metric-module_prefix__Agpzq","value":"Metric-module_value__zspnf","suffix":"Metric-module_suffix__qvCMJ","warningIcon":"Metric-module_warningIcon__F-Ol5","label":"Metric-module_label__ydcti"};
1550
+ var styles$1E = {"metric":"Metric-module_metric__LZ8D-","dark":"Metric-module_dark__FKdvj","clickable":"Metric-module_clickable__c3-pM","content":"Metric-module_content__YYpBG","valueRow":"Metric-module_valueRow__JpgYR","valueContainer":"Metric-module_valueContainer__CzjZ1","prefix":"Metric-module_prefix__Agpzq","value":"Metric-module_value__zspnf","suffix":"Metric-module_suffix__qvCMJ","warningIcon":"Metric-module_warningIcon__F-Ol5","label":"Metric-module_label__ydcti"};
1547
1551
 
1548
1552
  const WarningIcon = () => (jsxRuntime.jsx("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "currentColor", children: jsxRuntime.jsx("path", { d: "M12 2L1 21h22L12 2zm0 3.5L19.5 19H4.5L12 5.5zM11 10v4h2v-4h-2zm0 6v2h2v-2h-2z" }) }));
1549
1553
  /**
@@ -1553,15 +1557,15 @@ const WarningIcon = () => (jsxRuntime.jsx("svg", { width: "24", height: "24", vi
1553
1557
  const Metric = ({ value, label, prefix, suffix, dark = false, onClick, className = '', warning = false, }) => {
1554
1558
  const displayValue = value !== undefined && !isNaN(parseFloat(String(value))) ? value : 0;
1555
1559
  return (jsxRuntime.jsx("div", { className: `
1556
- ${styles$1D.metric}
1557
- ${dark ? styles$1D.dark : ''}
1558
- ${onClick ? styles$1D.clickable : ''}
1560
+ ${styles$1E.metric}
1561
+ ${dark ? styles$1E.dark : ''}
1562
+ ${onClick ? styles$1E.clickable : ''}
1559
1563
  ${className}
1560
- `, onClick: onClick, children: value !== undefined && (jsxRuntime.jsxs("div", { className: styles$1D.content, children: [jsxRuntime.jsxs("div", { className: styles$1D.valueRow, children: [jsxRuntime.jsxs("div", { className: styles$1D.valueContainer, children: [prefix && jsxRuntime.jsx("span", { className: styles$1D.prefix, children: prefix }), jsxRuntime.jsx("span", { className: styles$1D.value, children: displayValue }), suffix && jsxRuntime.jsx("span", { className: styles$1D.suffix, children: suffix })] }), warning && (jsxRuntime.jsx("div", { className: styles$1D.warningIcon, children: jsxRuntime.jsx(WarningIcon, {}) }))] }), jsxRuntime.jsx("div", { className: styles$1D.label, children: label })] })) }));
1564
+ `, onClick: onClick, children: value !== undefined && (jsxRuntime.jsxs("div", { className: styles$1E.content, children: [jsxRuntime.jsxs("div", { className: styles$1E.valueRow, children: [jsxRuntime.jsxs("div", { className: styles$1E.valueContainer, children: [prefix && jsxRuntime.jsx("span", { className: styles$1E.prefix, children: prefix }), jsxRuntime.jsx("span", { className: styles$1E.value, children: displayValue }), suffix && jsxRuntime.jsx("span", { className: styles$1E.suffix, children: suffix })] }), warning && (jsxRuntime.jsx("div", { className: styles$1E.warningIcon, children: jsxRuntime.jsx(WarningIcon, {}) }))] }), jsxRuntime.jsx("div", { className: styles$1E.label, children: label })] })) }));
1561
1565
  };
1562
1566
  Metric.displayName = 'Metric';
1563
1567
 
1564
- var styles$1C = {"wrapper":"Select-module_wrapper__UN2Bo","fullWidth":"Select-module_fullWidth__GgV-D","label":"Select-module_label__aSRVE","selectWrapper":"Select-module_selectWrapper__OCGYf","sm":"Select-module_sm__oTHGX","md":"Select-module_md__VSZQg","lg":"Select-module_lg__nknhY","select":"Select-module_select__DY-Id","hasLeftIcon":"Select-module_hasLeftIcon__ZrReQ","leftIcon":"Select-module_leftIcon__nBU1-","chevron":"Select-module_chevron__1MAEQ","disabled":"Select-module_disabled__0GOXE","error":"Select-module_error__Yijk5","helperText":"Select-module_helperText__rHrqP","errorText":"Select-module_errorText__1kM2R"};
1568
+ var styles$1D = {"wrapper":"Select-module_wrapper__UN2Bo","fullWidth":"Select-module_fullWidth__GgV-D","label":"Select-module_label__aSRVE","selectWrapper":"Select-module_selectWrapper__OCGYf","sm":"Select-module_sm__oTHGX","md":"Select-module_md__VSZQg","lg":"Select-module_lg__nknhY","select":"Select-module_select__DY-Id","hasLeftIcon":"Select-module_hasLeftIcon__ZrReQ","leftIcon":"Select-module_leftIcon__nBU1-","chevron":"Select-module_chevron__1MAEQ","disabled":"Select-module_disabled__0GOXE","error":"Select-module_error__Yijk5","helperText":"Select-module_helperText__rHrqP","errorText":"Select-module_errorText__1kM2R"};
1565
1569
 
1566
1570
  const ChevronDownIcon = () => (jsxRuntime.jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: jsxRuntime.jsx("polyline", { points: "6 9 12 15 18 9" }) }));
1567
1571
  /**
@@ -1573,16 +1577,16 @@ const Select = React.forwardRef(({ options, optionGroups, size = 'md', label, pl
1573
1577
  const helperId = `${selectId}-helper`;
1574
1578
  const errorId = `${selectId}-error`;
1575
1579
  const wrapperClasses = [
1576
- styles$1C.wrapper,
1577
- fullWidth ? styles$1C.fullWidth : '',
1580
+ styles$1D.wrapper,
1581
+ fullWidth ? styles$1D.fullWidth : '',
1578
1582
  className,
1579
1583
  ].filter(Boolean).join(' ');
1580
1584
  const selectWrapperClasses = [
1581
- styles$1C.selectWrapper,
1582
- styles$1C[size],
1583
- error ? styles$1C.error : '',
1584
- disabled ? styles$1C.disabled : '',
1585
- leftIcon ? styles$1C.hasLeftIcon : '',
1585
+ styles$1D.selectWrapper,
1586
+ styles$1D[size],
1587
+ error ? styles$1D.error : '',
1588
+ disabled ? styles$1D.disabled : '',
1589
+ leftIcon ? styles$1D.hasLeftIcon : '',
1586
1590
  ].filter(Boolean).join(' ');
1587
1591
  const renderOptions = () => {
1588
1592
  // Render grouped options
@@ -1595,16 +1599,16 @@ const Select = React.forwardRef(({ options, optionGroups, size = 'md', label, pl
1595
1599
  }
1596
1600
  return null;
1597
1601
  };
1598
- return (jsxRuntime.jsxs("div", { className: wrapperClasses, children: [label && (jsxRuntime.jsx("label", { htmlFor: selectId, className: styles$1C.label, children: label })), jsxRuntime.jsxs("div", { className: selectWrapperClasses, children: [leftIcon && jsxRuntime.jsx("span", { className: styles$1C.leftIcon, children: leftIcon }), jsxRuntime.jsxs("select", { ref: ref, id: selectId, className: styles$1C.select, disabled: disabled, "aria-invalid": !!error, "aria-describedby": [error ? errorId : null, helperText ? helperId : null]
1602
+ return (jsxRuntime.jsxs("div", { className: wrapperClasses, children: [label && (jsxRuntime.jsx("label", { htmlFor: selectId, className: styles$1D.label, children: label })), jsxRuntime.jsxs("div", { className: selectWrapperClasses, children: [leftIcon && jsxRuntime.jsx("span", { className: styles$1D.leftIcon, children: leftIcon }), jsxRuntime.jsxs("select", { ref: ref, id: selectId, className: styles$1D.select, disabled: disabled, "aria-invalid": !!error, "aria-describedby": [error ? errorId : null, helperText ? helperId : null]
1599
1603
  .filter(Boolean)
1600
- .join(' ') || undefined, ...props, children: [placeholder && (jsxRuntime.jsx("option", { value: "", disabled: true, children: placeholder })), renderOptions()] }), jsxRuntime.jsx("span", { className: styles$1C.chevron, children: jsxRuntime.jsx(ChevronDownIcon, {}) })] }), error && (jsxRuntime.jsx("span", { id: errorId, className: styles$1C.errorText, children: error })), helperText && !error && (jsxRuntime.jsx("span", { id: helperId, className: styles$1C.helperText, children: helperText }))] }));
1604
+ .join(' ') || undefined, ...props, children: [placeholder && (jsxRuntime.jsx("option", { value: "", disabled: true, children: placeholder })), renderOptions()] }), jsxRuntime.jsx("span", { className: styles$1D.chevron, children: jsxRuntime.jsx(ChevronDownIcon, {}) })] }), error && (jsxRuntime.jsx("span", { id: errorId, className: styles$1D.errorText, children: error })), helperText && !error && (jsxRuntime.jsx("span", { id: helperId, className: styles$1D.helperText, children: helperText }))] }));
1601
1605
  });
1602
1606
  Select.displayName = 'Select';
1603
1607
 
1604
- var styles$1B = {"spinner":"Spinner-module_spinner__OZwmB","svg":"Spinner-module_svg__Tusqk","spin":"Spinner-module_spin__YAPc9","track":"Spinner-module_track__NxLfV","indicator":"Spinner-module_indicator__gSUxF","xs":"Spinner-module_xs__4-WEg","sm":"Spinner-module_sm__enoDn","md":"Spinner-module_md__6axf9","lg":"Spinner-module_lg__EvJyC","xl":"Spinner-module_xl__yIXoK","srOnly":"Spinner-module_srOnly__WnZYf"};
1608
+ var styles$1C = {"spinner":"Spinner-module_spinner__OZwmB","svg":"Spinner-module_svg__Tusqk","spin":"Spinner-module_spin__YAPc9","track":"Spinner-module_track__NxLfV","indicator":"Spinner-module_indicator__gSUxF","xs":"Spinner-module_xs__4-WEg","sm":"Spinner-module_sm__enoDn","md":"Spinner-module_md__6axf9","lg":"Spinner-module_lg__EvJyC","xl":"Spinner-module_xl__yIXoK","srOnly":"Spinner-module_srOnly__WnZYf"};
1605
1609
 
1606
1610
  const Spinner = ({ size = 'md', className = '', color, label = 'Loading...', }) => {
1607
- return (jsxRuntime.jsxs("span", { className: `${styles$1B.spinner} ${styles$1B[size]} ${className}`, role: "status", "aria-label": label, style: color ? { color } : undefined, children: [jsxRuntime.jsxs("svg", { className: styles$1B.svg, xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", children: [jsxRuntime.jsx("circle", { className: styles$1B.track, cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "4" }), jsxRuntime.jsx("path", { className: styles$1B.indicator, fill: "currentColor", d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z" })] }), jsxRuntime.jsx("span", { className: styles$1B.srOnly, children: label })] }));
1611
+ return (jsxRuntime.jsxs("span", { className: `${styles$1C.spinner} ${styles$1C[size]} ${className}`, role: "status", "aria-label": label, style: color ? { color } : undefined, children: [jsxRuntime.jsxs("svg", { className: styles$1C.svg, xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", children: [jsxRuntime.jsx("circle", { className: styles$1C.track, cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "4" }), jsxRuntime.jsx("path", { className: styles$1C.indicator, fill: "currentColor", d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z" })] }), jsxRuntime.jsx("span", { className: styles$1C.srOnly, children: label })] }));
1608
1612
  };
1609
1613
 
1610
1614
  const statusVariantStyles = (theme) => ({
@@ -1749,7 +1753,7 @@ const Tag = React.forwardRef(({ children, variant = 'default', size = 'md', remo
1749
1753
  });
1750
1754
  Tag.displayName = 'Tag';
1751
1755
 
1752
- var styles$1A = {"wrapper":"Timepicker-module_wrapper__pPrwn","fullWidth":"Timepicker-module_fullWidth__de3hO","label":"Timepicker-module_label__5RDrm","inputWrapper":"Timepicker-module_inputWrapper__-E5pk","sm":"Timepicker-module_sm__sWJu2","md":"Timepicker-module_md__TfpGX","lg":"Timepicker-module_lg__xSlw-","icon":"Timepicker-module_icon__NuPk4","input":"Timepicker-module_input__NxTmR","disabled":"Timepicker-module_disabled__lyxzF","error":"Timepicker-module_error__TOMK7","helperText":"Timepicker-module_helperText__MmcqS","errorText":"Timepicker-module_errorText__pXdnE"};
1756
+ var styles$1B = {"wrapper":"Timepicker-module_wrapper__pPrwn","fullWidth":"Timepicker-module_fullWidth__de3hO","label":"Timepicker-module_label__5RDrm","inputWrapper":"Timepicker-module_inputWrapper__-E5pk","sm":"Timepicker-module_sm__sWJu2","md":"Timepicker-module_md__TfpGX","lg":"Timepicker-module_lg__xSlw-","icon":"Timepicker-module_icon__NuPk4","input":"Timepicker-module_input__NxTmR","disabled":"Timepicker-module_disabled__lyxzF","error":"Timepicker-module_error__TOMK7","helperText":"Timepicker-module_helperText__MmcqS","errorText":"Timepicker-module_errorText__pXdnE"};
1753
1757
 
1754
1758
  const ClockIcon = () => (jsxRuntime.jsxs("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10" }), jsxRuntime.jsx("polyline", { points: "12 6 12 12 16 14" })] }));
1755
1759
  /**
@@ -1761,30 +1765,30 @@ const Timepicker = React.forwardRef(({ size = 'md', label, helperText, error, fu
1761
1765
  const helperId = `${inputId}-helper`;
1762
1766
  const errorId = `${inputId}-error`;
1763
1767
  const wrapperClasses = [
1764
- styles$1A.wrapper,
1765
- fullWidth ? styles$1A.fullWidth : '',
1768
+ styles$1B.wrapper,
1769
+ fullWidth ? styles$1B.fullWidth : '',
1766
1770
  className,
1767
1771
  ].filter(Boolean).join(' ');
1768
1772
  const inputWrapperClasses = [
1769
- styles$1A.inputWrapper,
1770
- styles$1A[size],
1771
- error ? styles$1A.error : '',
1772
- disabled ? styles$1A.disabled : '',
1773
+ styles$1B.inputWrapper,
1774
+ styles$1B[size],
1775
+ error ? styles$1B.error : '',
1776
+ disabled ? styles$1B.disabled : '',
1773
1777
  ].filter(Boolean).join(' ');
1774
- return (jsxRuntime.jsxs("div", { className: wrapperClasses, children: [label && (jsxRuntime.jsx("label", { htmlFor: inputId, className: styles$1A.label, children: label })), jsxRuntime.jsxs("div", { className: inputWrapperClasses, children: [jsxRuntime.jsx("span", { className: styles$1A.icon, children: jsxRuntime.jsx(ClockIcon, {}) }), jsxRuntime.jsx("input", { ref: ref, type: "time", id: inputId, className: styles$1A.input, disabled: disabled, "aria-invalid": !!error, "aria-describedby": [error ? errorId : null, helperText ? helperId : null]
1778
+ return (jsxRuntime.jsxs("div", { className: wrapperClasses, children: [label && (jsxRuntime.jsx("label", { htmlFor: inputId, className: styles$1B.label, children: label })), jsxRuntime.jsxs("div", { className: inputWrapperClasses, children: [jsxRuntime.jsx("span", { className: styles$1B.icon, children: jsxRuntime.jsx(ClockIcon, {}) }), jsxRuntime.jsx("input", { ref: ref, type: "time", id: inputId, className: styles$1B.input, disabled: disabled, "aria-invalid": !!error, "aria-describedby": [error ? errorId : null, helperText ? helperId : null]
1775
1779
  .filter(Boolean)
1776
- .join(' ') || undefined, ...props })] }), error && (jsxRuntime.jsx("span", { id: errorId, className: styles$1A.errorText, children: error })), helperText && !error && (jsxRuntime.jsx("span", { id: helperId, className: styles$1A.helperText, children: helperText }))] }));
1780
+ .join(' ') || undefined, ...props })] }), error && (jsxRuntime.jsx("span", { id: errorId, className: styles$1B.errorText, children: error })), helperText && !error && (jsxRuntime.jsx("span", { id: helperId, className: styles$1B.helperText, children: helperText }))] }));
1777
1781
  });
1778
1782
  Timepicker.displayName = 'Timepicker';
1779
1783
 
1780
- var styles$1z = {"title":"Title-module_title__mSSqn","light":"Title-module_light__7mlh-","normal":"Title-module_normal__ZYrS4","medium":"Title-module_medium__UK-Bj","semibold":"Title-module_semibold__07lTs","bold":"Title-module_bold__-oWUS"};
1784
+ var styles$1A = {"title":"Title-module_title__mSSqn","light":"Title-module_light__7mlh-","normal":"Title-module_normal__ZYrS4","medium":"Title-module_medium__UK-Bj","semibold":"Title-module_semibold__07lTs","bold":"Title-module_bold__-oWUS"};
1781
1785
 
1782
1786
  /**
1783
1787
  * Title component for page headings.
1784
1788
  * Large, prominent text for page titles.
1785
1789
  */
1786
1790
  const Title = ({ children, weight = 'light', className = '', }) => {
1787
- return (jsxRuntime.jsx("h1", { className: `${styles$1z.title} ${styles$1z[weight]} ${className}`, children: children }));
1791
+ return (jsxRuntime.jsx("h1", { className: `${styles$1A.title} ${styles$1A[weight]} ${className}`, children: children }));
1788
1792
  };
1789
1793
  Title.displayName = 'Title';
1790
1794
 
@@ -1889,7 +1893,7 @@ const Toggle = ({ checked, onChange, disabled = false, size = 'md', label, label
1889
1893
  return toggleElement;
1890
1894
  };
1891
1895
 
1892
- var styles$1y = {"wrapper":"Tooltip-module_wrapper__9SUwl","tooltip":"Tooltip-module_tooltip__KQ7km","fadeIn":"Tooltip-module_fadeIn__dL8S5","content":"Tooltip-module_content__kO8yx","dark":"Tooltip-module_dark__Y66ss","light":"Tooltip-module_light__mItfR","semantic":"Tooltip-module_semantic__shhec","primary":"Tooltip-module_primary__no1LJ","secondary":"Tooltip-module_secondary__HEoKK","success":"Tooltip-module_success__EG2f-","warning":"Tooltip-module_warning__1zoqE","error":"Tooltip-module_error__Nn6y6","top":"Tooltip-module_top__1jrIn","bottom":"Tooltip-module_bottom__99YBc","left":"Tooltip-module_left__ZNd1H","right":"Tooltip-module_right__r0j5Q","arrow":"Tooltip-module_arrow__qcKWx","arrowTop":"Tooltip-module_arrowTop__k13dt","arrowBottom":"Tooltip-module_arrowBottom__FP-w2","arrowLeft":"Tooltip-module_arrowLeft__7T1uO","arrowRight":"Tooltip-module_arrowRight__FbPdB"};
1896
+ var styles$1z = {"wrapper":"Tooltip-module_wrapper__9SUwl","tooltip":"Tooltip-module_tooltip__KQ7km","fadeIn":"Tooltip-module_fadeIn__dL8S5","content":"Tooltip-module_content__kO8yx","dark":"Tooltip-module_dark__Y66ss","light":"Tooltip-module_light__mItfR","semantic":"Tooltip-module_semantic__shhec","primary":"Tooltip-module_primary__no1LJ","secondary":"Tooltip-module_secondary__HEoKK","success":"Tooltip-module_success__EG2f-","warning":"Tooltip-module_warning__1zoqE","error":"Tooltip-module_error__Nn6y6","top":"Tooltip-module_top__1jrIn","bottom":"Tooltip-module_bottom__99YBc","left":"Tooltip-module_left__ZNd1H","right":"Tooltip-module_right__r0j5Q","arrow":"Tooltip-module_arrow__qcKWx","arrowTop":"Tooltip-module_arrowTop__k13dt","arrowBottom":"Tooltip-module_arrowBottom__FP-w2","arrowLeft":"Tooltip-module_arrowLeft__7T1uO","arrowRight":"Tooltip-module_arrowRight__FbPdB"};
1893
1897
 
1894
1898
  const Tooltip = ({ content, children, position = 'top', variant = 'dark', delay = 200, disabled = false, className = '', }) => {
1895
1899
  const [isVisible, setIsVisible] = React.useState(false);
@@ -1967,7 +1971,7 @@ const Tooltip = ({ content, children, position = 'top', variant = 'dark', delay
1967
1971
  }
1968
1972
  };
1969
1973
  }, []);
1970
- return (jsxRuntime.jsxs("div", { ref: triggerRef, className: `${styles$1y.wrapper} ${className}`, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onFocus: handleFocus, onBlur: handleBlur, onTouchStart: handleTouchStart, onTouchEnd: handleTouchEnd, children: [children, isVisible && content && (jsxRuntime.jsxs("div", { ref: tooltipRef, className: `${styles$1y.tooltip} ${styles$1y[actualPosition]} ${styles$1y[variant]} ${!['dark', 'light'].includes(variant) ? styles$1y.semantic : ''}`, role: "tooltip", children: [jsxRuntime.jsx("div", { className: styles$1y.content, children: content }), jsxRuntime.jsx("div", { className: `${styles$1y.arrow} ${styles$1y[`arrow${actualPosition.charAt(0).toUpperCase()}${actualPosition.slice(1)}`]}` })] }))] }));
1974
+ return (jsxRuntime.jsxs("div", { ref: triggerRef, className: `${styles$1z.wrapper} ${className}`, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onFocus: handleFocus, onBlur: handleBlur, onTouchStart: handleTouchStart, onTouchEnd: handleTouchEnd, children: [children, isVisible && content && (jsxRuntime.jsxs("div", { ref: tooltipRef, className: `${styles$1z.tooltip} ${styles$1z[actualPosition]} ${styles$1z[variant]} ${!['dark', 'light'].includes(variant) ? styles$1z.semantic : ''}`, role: "tooltip", children: [jsxRuntime.jsx("div", { className: styles$1z.content, children: content }), jsxRuntime.jsx("div", { className: `${styles$1z.arrow} ${styles$1z[`arrow${actualPosition.charAt(0).toUpperCase()}${actualPosition.slice(1)}`]}` })] }))] }));
1971
1975
  };
1972
1976
 
1973
1977
  function getTypeColors$1(theme) {
@@ -2117,7 +2121,7 @@ const TypeIcon = ({ type, size = 18, showTooltip = true, className = '', style,
2117
2121
  }, ...props, children: jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", width: size * 0.6, height: size * 0.6, fill: "currentColor", children: typeIcons[type] || typeIcons.U }) }));
2118
2122
  };
2119
2123
 
2120
- var styles$1x = {"accordion":"Accordion-module_accordion__I3hmS","headerContainer":"Accordion-module_headerContainer__QhfHx","toggle":"Accordion-module_toggle__rlK5n","caret":"Accordion-module_caret__iZAh1","open":"Accordion-module_open__5jX-w","header":"Accordion-module_header__gzKrn","body":"Accordion-module_body__xTgL6","hidden":"Accordion-module_hidden__wcCWd","visible":"Accordion-module_visible__116om","timeline":"Accordion-module_timeline__ikrdK","line":"Accordion-module_line__buDP1","endCaret":"Accordion-module_endCaret__OXpPJ","content":"Accordion-module_content__aL8Vn"};
2124
+ var styles$1y = {"accordion":"Accordion-module_accordion__I3hmS","headerContainer":"Accordion-module_headerContainer__QhfHx","toggle":"Accordion-module_toggle__rlK5n","caret":"Accordion-module_caret__iZAh1","open":"Accordion-module_open__5jX-w","header":"Accordion-module_header__gzKrn","body":"Accordion-module_body__xTgL6","hidden":"Accordion-module_hidden__wcCWd","visible":"Accordion-module_visible__116om","timeline":"Accordion-module_timeline__ikrdK","line":"Accordion-module_line__buDP1","endCaret":"Accordion-module_endCaret__OXpPJ","content":"Accordion-module_content__aL8Vn"};
2121
2125
 
2122
2126
  const CaretIcon = ({ className }) => (jsxRuntime.jsx("svg", { className: className, width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: jsxRuntime.jsx("polyline", { points: "9 18 15 12 9 6" }) }));
2123
2127
  /**
@@ -2135,21 +2139,43 @@ const Accordion = ({ header, children, defaultOpen = true, open: controlledOpen,
2135
2139
  }
2136
2140
  onOpenChange?.(newOpen);
2137
2141
  };
2138
- return (jsxRuntime.jsxs("div", { className: `${styles$1x.accordion} ${className || ''}`, children: [jsxRuntime.jsxs("div", { className: styles$1x.headerContainer, children: [jsxRuntime.jsx("button", { type: "button", className: styles$1x.toggle, onClick: handleToggle, "aria-expanded": isOpen, children: jsxRuntime.jsx(CaretIcon, { className: `${styles$1x.caret} ${isOpen ? styles$1x.open : ''}` }) }), jsxRuntime.jsx("div", { className: styles$1x.header, children: header })] }), jsxRuntime.jsxs("div", { className: `${styles$1x.body} ${isOpen ? styles$1x.visible : styles$1x.hidden}`, "aria-hidden": !isOpen, children: [showTimeline && (jsxRuntime.jsxs("div", { className: styles$1x.timeline, children: [jsxRuntime.jsx("div", { className: styles$1x.line }), jsxRuntime.jsx(CaretIcon, { className: styles$1x.endCaret })] })), jsxRuntime.jsx("div", { className: styles$1x.content, children: children })] })] }));
2142
+ return (jsxRuntime.jsxs("div", { className: `${styles$1y.accordion} ${className || ''}`, children: [jsxRuntime.jsxs("div", { className: styles$1y.headerContainer, children: [jsxRuntime.jsx("button", { type: "button", className: styles$1y.toggle, onClick: handleToggle, "aria-expanded": isOpen, children: jsxRuntime.jsx(CaretIcon, { className: `${styles$1y.caret} ${isOpen ? styles$1y.open : ''}` }) }), jsxRuntime.jsx("div", { className: styles$1y.header, children: header })] }), jsxRuntime.jsxs("div", { className: `${styles$1y.body} ${isOpen ? styles$1y.visible : styles$1y.hidden}`, "aria-hidden": !isOpen, children: [showTimeline && (jsxRuntime.jsxs("div", { className: styles$1y.timeline, children: [jsxRuntime.jsx("div", { className: styles$1y.line }), jsxRuntime.jsx(CaretIcon, { className: styles$1y.endCaret })] })), jsxRuntime.jsx("div", { className: styles$1y.content, children: children })] })] }));
2139
2143
  };
2140
2144
  Accordion.displayName = 'Accordion';
2141
2145
 
2142
- var styles$1w = {"selector":"CalendarSelectors-module_selector__1nDos","item":"CalendarSelectors-module_item__CoR5s","active":"CalendarSelectors-module_active__u4w6Z","sm":"CalendarSelectors-module_sm__ju5t-","withLabel":"CalendarSelectors-module_withLabel__Jr9Re","md":"CalendarSelectors-module_md__a-U38","lg":"CalendarSelectors-module_lg__WHvAF","iconOnly":"CalendarSelectors-module_iconOnly__cAjyD"};
2146
+ /**
2147
+ * Sized to Hub's header back control (44x52), which is already above the 44px
2148
+ * minimum tap target, so it does not need padding to be reachable on a phone.
2149
+ */
2150
+ const backLinkStyle = css({
2151
+ display: 'flex',
2152
+ alignItems: 'center',
2153
+ width: '44px',
2154
+ height: '52px',
2155
+ color: 'inherit',
2156
+ });
2157
+
2158
+ /**
2159
+ * The back affordance in a page header: a tap target holding a single arrow.
2160
+ *
2161
+ * It is deliberately not a Button. This navigates, so it should be a link —
2162
+ * middle-clickable, openable in a new tab, and announced as a link rather than
2163
+ * an action.
2164
+ */
2165
+ const BackLink = ({ icon, as: Component = 'a', label = 'Back', className = '', style, ...props }) => (jsxRuntime.jsx(Component, { className: className, "aria-label": label, style: toInlineStyle(merge(backLinkStyle, style)), ...props, children: icon }));
2166
+ BackLink.displayName = 'BackLink';
2167
+
2168
+ var styles$1x = {"selector":"CalendarSelectors-module_selector__1nDos","item":"CalendarSelectors-module_item__CoR5s","active":"CalendarSelectors-module_active__u4w6Z","sm":"CalendarSelectors-module_sm__ju5t-","withLabel":"CalendarSelectors-module_withLabel__Jr9Re","md":"CalendarSelectors-module_md__a-U38","lg":"CalendarSelectors-module_lg__WHvAF","iconOnly":"CalendarSelectors-module_iconOnly__cAjyD"};
2143
2169
 
2144
2170
  const ListIcon = () => (jsxRuntime.jsxs("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", "aria-hidden": "true", children: [jsxRuntime.jsx("line", { x1: "8", y1: "6", x2: "21", y2: "6" }), jsxRuntime.jsx("line", { x1: "8", y1: "12", x2: "21", y2: "12" }), jsxRuntime.jsx("line", { x1: "8", y1: "18", x2: "21", y2: "18" }), jsxRuntime.jsx("circle", { cx: "3", cy: "6", r: "1", fill: "currentColor", stroke: "none" }), jsxRuntime.jsx("circle", { cx: "3", cy: "12", r: "1", fill: "currentColor", stroke: "none" }), jsxRuntime.jsx("circle", { cx: "3", cy: "18", r: "1", fill: "currentColor", stroke: "none" })] }));
2145
- const SegmentedSelector = ({ options, value, onChange, disabled = false, size = 'md', className = '', ariaLabel = 'View options', dataTest, itemClassName = '', activeItemClassName = '', iconPosition = 'left', }) => (jsxRuntime.jsx("div", { className: [styles$1w.selector, className].filter(Boolean).join(' '), role: "group", "aria-label": ariaLabel, "data-test": dataTest, children: options.map((option) => {
2171
+ const SegmentedSelector = ({ options, value, onChange, disabled = false, size = 'md', className = '', ariaLabel = 'View options', dataTest, itemClassName = '', activeItemClassName = '', iconPosition = 'left', }) => (jsxRuntime.jsx("div", { className: [styles$1x.selector, className].filter(Boolean).join(' '), role: "group", "aria-label": ariaLabel, "data-test": dataTest, children: options.map((option) => {
2146
2172
  const active = option.id === value;
2147
2173
  const accessibleName = option.alt ?? option.label ?? option.id;
2148
2174
  return (jsxRuntime.jsxs("button", { type: "button", title: accessibleName, "aria-label": accessibleName, "aria-pressed": active, disabled: disabled, "data-test": dataTest ? `${dataTest}-option-${option.id}` : undefined, className: [
2149
- styles$1w.item,
2150
- styles$1w[size],
2151
- option.label ? styles$1w.withLabel : styles$1w.iconOnly,
2152
- active ? styles$1w.active : '',
2175
+ styles$1x.item,
2176
+ styles$1x[size],
2177
+ option.label ? styles$1x.withLabel : styles$1x.iconOnly,
2178
+ active ? styles$1x.active : '',
2153
2179
  itemClassName,
2154
2180
  active ? activeItemClassName : '',
2155
2181
  ].filter(Boolean).join(' '), onClick: () => onChange?.(option.id), children: [iconPosition === 'left' && option.icon, option.label && jsxRuntime.jsx("span", { children: option.label }), iconPosition === 'right' && option.icon] }, option.id));
@@ -2164,7 +2190,7 @@ const CalendarTypeSelector = ({ value, onChange, ...props }) => (jsxRuntime.jsx(
2164
2190
  { id: 'due_dates', label: 'Due Dates' },
2165
2191
  ] }));
2166
2192
 
2167
- var styles$1v = {"contact":"ContactCard-module_contact__rwoCO","body":"ContactCard-module_body__zAMJ8","identity":"ContactCard-module_identity__q7L-a","name":"ContactCard-module_name__C8t5-","title":"ContactCard-module_title__UECZm","link":"ContactCard-module_link__VTUHu","linkText":"ContactCard-module_linkText__8atNF"};
2193
+ var styles$1w = {"contact":"ContactCard-module_contact__rwoCO","body":"ContactCard-module_body__zAMJ8","identity":"ContactCard-module_identity__q7L-a","name":"ContactCard-module_name__C8t5-","title":"ContactCard-module_title__UECZm","link":"ContactCard-module_link__VTUHu","linkText":"ContactCard-module_linkText__8atNF"};
2168
2194
 
2169
2195
  /**
2170
2196
  * A single person's contact details: avatar, name, title, and tappable phone
@@ -2176,11 +2202,11 @@ var styles$1v = {"contact":"ContactCard-module_contact__rwoCO","body":"ContactCa
2176
2202
  const ContactCard$1 = ({ name, title, phone, email, action, showAvatar = true, className = '', }) => {
2177
2203
  if (!action && !name)
2178
2204
  return null;
2179
- return (jsxRuntime.jsxs("div", { className: `${styles$1v.contact} ${className}`, children: [name && showAvatar && jsxRuntime.jsx(Avatar, { name: name, size: 36 }), jsxRuntime.jsxs("div", { className: styles$1v.body, children: [jsxRuntime.jsxs("div", { className: styles$1v.identity, children: [action || jsxRuntime.jsx("span", { className: styles$1v.name, children: name }), title && jsxRuntime.jsx("span", { className: styles$1v.title, children: title })] }), phone && (jsxRuntime.jsxs("a", { href: `tel:${phone}`, className: styles$1v.link, children: [jsxRuntime.jsx(PhoneIcon, { size: 16, "aria-hidden": "true" }), jsxRuntime.jsx("span", { className: styles$1v.linkText, children: phone })] })), email && (jsxRuntime.jsxs("a", { href: `mailto:${email}`, className: styles$1v.link, children: [jsxRuntime.jsx(MailIcon, { size: 16, "aria-hidden": "true" }), jsxRuntime.jsx("span", { className: styles$1v.linkText, children: email })] }))] })] }));
2205
+ return (jsxRuntime.jsxs("div", { className: `${styles$1w.contact} ${className}`, children: [name && showAvatar && jsxRuntime.jsx(Avatar, { name: name, size: 36 }), jsxRuntime.jsxs("div", { className: styles$1w.body, children: [jsxRuntime.jsxs("div", { className: styles$1w.identity, children: [action || jsxRuntime.jsx("span", { className: styles$1w.name, children: name }), title && jsxRuntime.jsx("span", { className: styles$1w.title, children: title })] }), phone && (jsxRuntime.jsxs("a", { href: `tel:${phone}`, className: styles$1w.link, children: [jsxRuntime.jsx(PhoneIcon, { size: 16, "aria-hidden": "true" }), jsxRuntime.jsx("span", { className: styles$1w.linkText, children: phone })] })), email && (jsxRuntime.jsxs("a", { href: `mailto:${email}`, className: styles$1w.link, children: [jsxRuntime.jsx(MailIcon, { size: 16, "aria-hidden": "true" }), jsxRuntime.jsx("span", { className: styles$1w.linkText, children: email })] }))] })] }));
2180
2206
  };
2181
2207
  ContactCard$1.displayName = 'ContactCard';
2182
2208
 
2183
- var styles$1u = {"list":"DetailList-module_list__orbOL","pair":"DetailList-module_pair__CAbaR","label":"DetailList-module_label__rloof","value":"DetailList-module_value__TMLgu","iconRow":"DetailList-module_iconRow__G9NsX","icon":"DetailList-module_icon__V-jq2","iconPlaceholder":"DetailList-module_iconPlaceholder__c3w6w","iconText":"DetailList-module_iconText__Kgx7z","badge":"DetailList-module_badge__FBJ8a","primary":"DetailList-module_primary__w79M-","secondary":"DetailList-module_secondary__S0ti-","success":"DetailList-module_success__tJWzC","warning":"DetailList-module_warning__N50cB","error":"DetailList-module_error__no5kK"};
2209
+ var styles$1v = {"list":"DetailList-module_list__orbOL","pair":"DetailList-module_pair__CAbaR","label":"DetailList-module_label__rloof","value":"DetailList-module_value__TMLgu","iconRow":"DetailList-module_iconRow__G9NsX","icon":"DetailList-module_icon__V-jq2","iconPlaceholder":"DetailList-module_iconPlaceholder__c3w6w","iconText":"DetailList-module_iconText__Kgx7z","badge":"DetailList-module_badge__FBJ8a","primary":"DetailList-module_primary__w79M-","secondary":"DetailList-module_secondary__S0ti-","success":"DetailList-module_success__tJWzC","warning":"DetailList-module_warning__N50cB","error":"DetailList-module_error__no5kK"};
2184
2210
 
2185
2211
  /**
2186
2212
  * A compact list of field/value pairs, as used down the side of a trip or
@@ -2197,21 +2223,21 @@ var styles$1u = {"list":"DetailList-module_list__orbOL","pair":"DetailList-modul
2197
2223
  const DetailList = ({ items, gap = 8, className = '' }) => {
2198
2224
  if (!items.some((item) => !!item.description))
2199
2225
  return null;
2200
- return (jsxRuntime.jsx("div", { className: `${styles$1u.list} ${className}`, style: { gap }, children: items.map((item, index) => {
2226
+ return (jsxRuntime.jsx("div", { className: `${styles$1v.list} ${className}`, style: { gap }, children: items.map((item, index) => {
2201
2227
  if (!item.description)
2202
2228
  return null;
2203
2229
  const key = `detail-${index}`;
2204
2230
  if (item.icon !== undefined) {
2205
- return (jsxRuntime.jsxs("div", { className: styles$1u.iconRow, style: { gap }, children: [item.icon ? (jsxRuntime.jsx("span", { className: styles$1u.icon, "aria-hidden": "true", children: item.icon })) : (jsxRuntime.jsx("span", { className: styles$1u.iconPlaceholder })), jsxRuntime.jsx("span", { className: styles$1u.iconText, children: item.description })] }, key));
2231
+ return (jsxRuntime.jsxs("div", { className: styles$1v.iconRow, style: { gap }, children: [item.icon ? (jsxRuntime.jsx("span", { className: styles$1v.icon, "aria-hidden": "true", children: item.icon })) : (jsxRuntime.jsx("span", { className: styles$1v.iconPlaceholder })), jsxRuntime.jsx("span", { className: styles$1v.iconText, children: item.description })] }, key));
2206
2232
  }
2207
2233
  if (!item.label)
2208
2234
  return null;
2209
- return (jsxRuntime.jsxs("div", { className: styles$1u.pair, style: { gap }, children: [jsxRuntime.jsx("span", { className: styles$1u.label, children: item.label }), jsxRuntime.jsx("span", { className: styles$1u.value, children: item.variant ? (jsxRuntime.jsx("span", { className: `${styles$1u.badge} ${styles$1u[item.variant]}`, children: item.description })) : (item.description) })] }, key));
2235
+ return (jsxRuntime.jsxs("div", { className: styles$1v.pair, style: { gap }, children: [jsxRuntime.jsx("span", { className: styles$1v.label, children: item.label }), jsxRuntime.jsx("span", { className: styles$1v.value, children: item.variant ? (jsxRuntime.jsx("span", { className: `${styles$1v.badge} ${styles$1v[item.variant]}`, children: item.description })) : (item.description) })] }, key));
2210
2236
  }) }));
2211
2237
  };
2212
2238
  DetailList.displayName = 'DetailList';
2213
2239
 
2214
- var styles$1t = {"dropdown":"Dropdown-module_dropdown__K4-yz","arrow":"Dropdown-module_arrow__2Xuwf","arrowOpen":"Dropdown-module_arrowOpen__5g2iY","menu":"Dropdown-module_menu__dCgm8","menuOpen":"Dropdown-module_menuOpen__-IXFR","left":"Dropdown-module_left__tnNcS","center":"Dropdown-module_center__s9zhj","right":"Dropdown-module_right__s71gz","item":"Dropdown-module_item__R008o","itemDisabled":"Dropdown-module_itemDisabled__XIuNm","itemIcon":"Dropdown-module_itemIcon__DbSnD"};
2240
+ var styles$1u = {"dropdown":"Dropdown-module_dropdown__K4-yz","arrow":"Dropdown-module_arrow__2Xuwf","arrowOpen":"Dropdown-module_arrowOpen__5g2iY","menu":"Dropdown-module_menu__dCgm8","menuOpen":"Dropdown-module_menuOpen__-IXFR","left":"Dropdown-module_left__tnNcS","center":"Dropdown-module_center__s9zhj","right":"Dropdown-module_right__s71gz","item":"Dropdown-module_item__R008o","itemDisabled":"Dropdown-module_itemDisabled__XIuNm","itemIcon":"Dropdown-module_itemIcon__DbSnD"};
2215
2241
 
2216
2242
  const Dropdown = ({ label, children, alignment = 'left', width, className = '', disabled = false, trigger, }) => {
2217
2243
  const [isOpen, setIsOpen] = React.useState(false);
@@ -2234,19 +2260,19 @@ const Dropdown = ({ label, children, alignment = 'left', width, className = '',
2234
2260
  setIsOpen(false);
2235
2261
  }
2236
2262
  };
2237
- return (jsxRuntime.jsxs("div", { ref: dropdownRef, className: `${styles$1t.dropdown} ${className}`, onKeyDown: handleKeyDown, children: [trigger ? (trigger({ isOpen, toggle: () => !disabled && setIsOpen(!isOpen), disabled })) : (jsxRuntime.jsxs(Button, { variant: "secondary", onClick: () => !disabled && setIsOpen(!isOpen), disabled: disabled, "aria-expanded": isOpen, "aria-haspopup": "true", children: [label, jsxRuntime.jsx("svg", { className: `${styles$1t.arrow} ${isOpen ? styles$1t.arrowOpen : ''}`, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", width: "16", height: "16", children: jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" }) })] })), jsxRuntime.jsx("div", { className: `${styles$1t.menu} ${styles$1t[alignment]} ${isOpen ? styles$1t.menuOpen : ''}`, style: width ? { minWidth: `${width}px` } : undefined, role: "menu", children: children })] }));
2263
+ return (jsxRuntime.jsxs("div", { ref: dropdownRef, className: `${styles$1u.dropdown} ${className}`, onKeyDown: handleKeyDown, children: [trigger ? (trigger({ isOpen, toggle: () => !disabled && setIsOpen(!isOpen), disabled })) : (jsxRuntime.jsxs(Button, { variant: "secondary", onClick: () => !disabled && setIsOpen(!isOpen), disabled: disabled, "aria-expanded": isOpen, "aria-haspopup": "true", children: [label, jsxRuntime.jsx("svg", { className: `${styles$1u.arrow} ${isOpen ? styles$1u.arrowOpen : ''}`, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", width: "16", height: "16", children: jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" }) })] })), jsxRuntime.jsx("div", { className: `${styles$1u.menu} ${styles$1u[alignment]} ${isOpen ? styles$1u.menuOpen : ''}`, style: width ? { minWidth: `${width}px` } : undefined, role: "menu", children: children })] }));
2238
2264
  };
2239
2265
  const DropdownItem = ({ children, onClick, disabled = false, icon, className = '', }) => {
2240
- return (jsxRuntime.jsxs("button", { type: "button", className: `${styles$1t.item} ${disabled ? styles$1t.itemDisabled : ''} ${className}`, onClick: onClick, disabled: disabled, role: "menuitem", children: [icon && jsxRuntime.jsx("span", { className: styles$1t.itemIcon, children: icon }), children] }));
2266
+ return (jsxRuntime.jsxs("button", { type: "button", className: `${styles$1u.item} ${disabled ? styles$1u.itemDisabled : ''} ${className}`, onClick: onClick, disabled: disabled, role: "menuitem", children: [icon && jsxRuntime.jsx("span", { className: styles$1u.itemIcon, children: icon }), children] }));
2241
2267
  };
2242
2268
  Dropdown.Item = DropdownItem;
2243
2269
 
2244
- var styles$1s = {"emptyState":"EmptyState-module_emptyState__WVjm4","sm":"EmptyState-module_sm__uIlcU","md":"EmptyState-module_md__cUO3z","lg":"EmptyState-module_lg__TDd0B","icon":"EmptyState-module_icon__q7SEB","title":"EmptyState-module_title__wrG0V","description":"EmptyState-module_description__EhVZb","actions":"EmptyState-module_actions__XNSCG"};
2270
+ var styles$1t = {"emptyState":"EmptyState-module_emptyState__WVjm4","sm":"EmptyState-module_sm__uIlcU","md":"EmptyState-module_md__cUO3z","lg":"EmptyState-module_lg__TDd0B","icon":"EmptyState-module_icon__q7SEB","title":"EmptyState-module_title__wrG0V","description":"EmptyState-module_description__EhVZb","actions":"EmptyState-module_actions__XNSCG"};
2245
2271
 
2246
2272
  /** Placeholder shown when a list, table, or panel has nothing to display. */
2247
- const EmptyState$1 = ({ title, description, icon, actionLabel, onAction, secondaryActionLabel, onSecondaryAction, size = 'md', children, className = '', }) => (jsxRuntime.jsxs("div", { className: [styles$1s.emptyState, styles$1s[size], className].filter(Boolean).join(' '), "data-test": "empty-state", children: [icon && jsxRuntime.jsx("div", { className: styles$1s.icon, "aria-hidden": "true", children: icon }), jsxRuntime.jsx("p", { className: styles$1s.title, children: title }), description && jsxRuntime.jsx("p", { className: styles$1s.description, children: description }), (actionLabel || secondaryActionLabel) && (jsxRuntime.jsxs("div", { className: styles$1s.actions, children: [actionLabel && (jsxRuntime.jsx(Button, { size: "sm", onClick: onAction, "data-test": "empty-state-action", children: actionLabel })), secondaryActionLabel && (jsxRuntime.jsx(Button, { size: "sm", variant: "secondary", onClick: onSecondaryAction, "data-test": "empty-state-secondary-action", children: secondaryActionLabel }))] })), children] }));
2273
+ const EmptyState$1 = ({ title, description, icon, actionLabel, onAction, secondaryActionLabel, onSecondaryAction, size = 'md', children, className = '', }) => (jsxRuntime.jsxs("div", { className: [styles$1t.emptyState, styles$1t[size], className].filter(Boolean).join(' '), "data-test": "empty-state", children: [icon && jsxRuntime.jsx("div", { className: styles$1t.icon, "aria-hidden": "true", children: icon }), jsxRuntime.jsx("p", { className: styles$1t.title, children: title }), description && jsxRuntime.jsx("p", { className: styles$1t.description, children: description }), (actionLabel || secondaryActionLabel) && (jsxRuntime.jsxs("div", { className: styles$1t.actions, children: [actionLabel && (jsxRuntime.jsx(Button, { size: "sm", onClick: onAction, "data-test": "empty-state-action", children: actionLabel })), secondaryActionLabel && (jsxRuntime.jsx(Button, { size: "sm", variant: "secondary", onClick: onSecondaryAction, "data-test": "empty-state-secondary-action", children: secondaryActionLabel }))] })), children] }));
2248
2274
 
2249
- var styles$1r = {"field":"FieldLayout-module_field__XUDXw","top":"FieldLayout-module_top__l7TpS","left":"FieldLayout-module_left__l9daC","label":"FieldLayout-module_label__eQGNc","labelError":"FieldLayout-module_labelError__pBsN0","required":"FieldLayout-module_required__Alrlu","tooltip":"FieldLayout-module_tooltip__OsmG5","control":"FieldLayout-module_control__ZTojP","icon":"FieldLayout-module_icon__1-nNC","iconLeft":"FieldLayout-module_iconLeft__GLO22","iconRight":"FieldLayout-module_iconRight__xvVIN","message":"FieldLayout-module_message__aQVJy","error":"FieldLayout-module_error__JZHWG","note":"FieldLayout-module_note__DOSvG"};
2275
+ var styles$1s = {"field":"FieldLayout-module_field__XUDXw","top":"FieldLayout-module_top__l7TpS","left":"FieldLayout-module_left__l9daC","label":"FieldLayout-module_label__eQGNc","labelError":"FieldLayout-module_labelError__pBsN0","required":"FieldLayout-module_required__Alrlu","tooltip":"FieldLayout-module_tooltip__OsmG5","control":"FieldLayout-module_control__ZTojP","icon":"FieldLayout-module_icon__1-nNC","iconLeft":"FieldLayout-module_iconLeft__GLO22","iconRight":"FieldLayout-module_iconRight__xvVIN","message":"FieldLayout-module_message__aQVJy","error":"FieldLayout-module_error__JZHWG","note":"FieldLayout-module_note__DOSvG"};
2250
2276
 
2251
2277
  /**
2252
2278
  * The chrome around a form control: label, required marker, tooltip, the
@@ -2261,11 +2287,11 @@ const FieldLayout = ({ children, label, labelPosition = 'top', showLabel = true,
2261
2287
  const id = React.useId();
2262
2288
  const errorId = `${id}-error`;
2263
2289
  const hasError = Boolean(error);
2264
- return (jsxRuntime.jsxs("div", { className: `${styles$1r.field} ${styles$1r[labelPosition]} ${className}`, children: [label && showLabel && (jsxRuntime.jsxs("label", { htmlFor: id, className: `${styles$1r.label} ${hasError ? styles$1r.labelError : ''}`, children: [label, required && !disabled && (jsxRuntime.jsx("span", { className: styles$1r.required, "aria-hidden": "true", children: "*" })), tooltip && (jsxRuntime.jsx(Tooltip, { className: styles$1r.tooltip, content: tooltip, children: jsxRuntime.jsx(InfoIcon$1, { size: 16 }) }))] })), jsxRuntime.jsxs("div", { className: styles$1r.control, children: [leftIcon && !disabled && (jsxRuntime.jsx("span", { className: `${styles$1r.icon} ${styles$1r.iconLeft}`, "aria-hidden": "true", children: leftIcon })), children({ id, describedBy: hasError ? errorId : undefined, hasError }), rightIcon && !disabled && (jsxRuntime.jsx("span", { className: `${styles$1r.icon} ${styles$1r.iconRight}`, "aria-hidden": "true", children: rightIcon }))] }), hasError && (jsxRuntime.jsx("p", { id: errorId, className: `${styles$1r.message} ${styles$1r.error}`, children: error })), note && jsxRuntime.jsx("p", { className: `${styles$1r.message} ${styles$1r.note}`, children: note })] }));
2290
+ return (jsxRuntime.jsxs("div", { className: `${styles$1s.field} ${styles$1s[labelPosition]} ${className}`, children: [label && showLabel && (jsxRuntime.jsxs("label", { htmlFor: id, className: `${styles$1s.label} ${hasError ? styles$1s.labelError : ''}`, children: [label, required && !disabled && (jsxRuntime.jsx("span", { className: styles$1s.required, "aria-hidden": "true", children: "*" })), tooltip && (jsxRuntime.jsx(Tooltip, { className: styles$1s.tooltip, content: tooltip, children: jsxRuntime.jsx(InfoIcon$1, { size: 16 }) }))] })), jsxRuntime.jsxs("div", { className: styles$1s.control, children: [leftIcon && !disabled && (jsxRuntime.jsx("span", { className: `${styles$1s.icon} ${styles$1s.iconLeft}`, "aria-hidden": "true", children: leftIcon })), children({ id, describedBy: hasError ? errorId : undefined, hasError }), rightIcon && !disabled && (jsxRuntime.jsx("span", { className: `${styles$1s.icon} ${styles$1s.iconRight}`, "aria-hidden": "true", children: rightIcon }))] }), hasError && (jsxRuntime.jsx("p", { id: errorId, className: `${styles$1s.message} ${styles$1s.error}`, children: error })), note && jsxRuntime.jsx("p", { className: `${styles$1s.message} ${styles$1s.note}`, children: note })] }));
2265
2291
  };
2266
2292
  FieldLayout.displayName = 'FieldLayout';
2267
2293
 
2268
- var styles$1q = {"wrapper":"FileUploadButton-module_wrapper__usYRn","input":"FileUploadButton-module_input__RBN3b"};
2294
+ var styles$1r = {"wrapper":"FileUploadButton-module_wrapper__usYRn","input":"FileUploadButton-module_input__RBN3b"};
2269
2295
 
2270
2296
  /** Document types a travel workflow usually accepts. */
2271
2297
  const DOCUMENT_FILE_EXTENSIONS = ['.pdf', '.doc', '.docx', '.xls', '.xlsx'];
@@ -2277,10 +2303,10 @@ const DOCUMENT_FILE_EXTENSIONS = ['.pdf', '.doc', '.docx', '.xls', '.xlsx'];
2277
2303
  * "choose file" control rather than a button and an input side by side. The
2278
2304
  * button underneath is decorative and hidden from assistive technology.
2279
2305
  */
2280
- const FileUploadButton = ({ label = 'Add File', accept = DOCUMENT_FILE_EXTENSIONS.join(','), multiple = false, disabled = false, loading = false, variant = 'outline-secondary', size = 'sm', icon, onSelect, className = '', inputProps, }) => (jsxRuntime.jsxs("div", { className: `${styles$1q.wrapper} ${className}`, children: [jsxRuntime.jsx(ButtonStyled, { variant: variant, size: size, loading: loading, disabled: disabled, rightIcon: icon, tabIndex: -1, "aria-hidden": "true", children: label }), !disabled && (jsxRuntime.jsx("input", { ...inputProps, className: styles$1q.input, type: "file", accept: accept, multiple: multiple, "aria-label": label, onChange: onSelect }))] }));
2306
+ const FileUploadButton = ({ label = 'Add File', accept = DOCUMENT_FILE_EXTENSIONS.join(','), multiple = false, disabled = false, loading = false, variant = 'outline-secondary', size = 'sm', icon, onSelect, className = '', inputProps, }) => (jsxRuntime.jsxs("div", { className: `${styles$1r.wrapper} ${className}`, children: [jsxRuntime.jsx(ButtonStyled, { variant: variant, size: size, loading: loading, disabled: disabled, rightIcon: icon, tabIndex: -1, "aria-hidden": "true", children: label }), !disabled && (jsxRuntime.jsx("input", { ...inputProps, className: styles$1r.input, type: "file", accept: accept, multiple: multiple, "aria-label": label, onChange: onSelect }))] }));
2281
2307
  FileUploadButton.displayName = 'FileUploadButton';
2282
2308
 
2283
- var styles$1p = {"wrapper":"FilterChip-module_wrapper__YDRSW","chip":"FilterChip-module_chip__pF7K5","open":"FilterChip-module_open__EYBp7","active":"FilterChip-module_active__JEkku","label":"FilterChip-module_label__tRr-y","value":"FilterChip-module_value__0EcVu","chevron":"FilterChip-module_chevron__kh13z","rotated":"FilterChip-module_rotated__U-FzI","dropdown":"FilterChip-module_dropdown__w3ytW","infoMessage":"FilterChip-module_infoMessage__0TzcA","searchWrapper":"FilterChip-module_searchWrapper__VHOSK","searchIcon":"FilterChip-module_searchIcon__jJ2K-","searchInput":"FilterChip-module_searchInput__FqwvR","optionsList":"FilterChip-module_optionsList__P0dgd","option":"FilterChip-module_option__DMuqM","selected":"FilterChip-module_selected__ltt9Y","noResults":"FilterChip-module_noResults__QGNao"};
2309
+ var styles$1q = {"wrapper":"FilterChip-module_wrapper__YDRSW","chip":"FilterChip-module_chip__pF7K5","open":"FilterChip-module_open__EYBp7","active":"FilterChip-module_active__JEkku","label":"FilterChip-module_label__tRr-y","value":"FilterChip-module_value__0EcVu","chevron":"FilterChip-module_chevron__kh13z","rotated":"FilterChip-module_rotated__U-FzI","dropdown":"FilterChip-module_dropdown__w3ytW","infoMessage":"FilterChip-module_infoMessage__0TzcA","searchWrapper":"FilterChip-module_searchWrapper__VHOSK","searchIcon":"FilterChip-module_searchIcon__jJ2K-","searchInput":"FilterChip-module_searchInput__FqwvR","optionsList":"FilterChip-module_optionsList__P0dgd","option":"FilterChip-module_option__DMuqM","selected":"FilterChip-module_selected__ltt9Y","noResults":"FilterChip-module_noResults__QGNao"};
2284
2310
 
2285
2311
  const FilterChip = ({ label, value, options, onChange, searchable = false, searchPlaceholder = 'Search...', infoMessage, disabled = false, className, }) => {
2286
2312
  const [open, setOpen] = React.useState(false);
@@ -2321,13 +2347,13 @@ const FilterChip = ({ label, value, options, onChange, searchable = false, searc
2321
2347
  const selectedOption = options.find(opt => opt.value === value);
2322
2348
  const displayValue = selectedOption?.label || value;
2323
2349
  const isDefault = value === options[0]?.value;
2324
- return (jsxRuntime.jsxs("div", { ref: ref, className: `${styles$1p.wrapper} ${className || ''}`, children: [jsxRuntime.jsxs("button", { type: "button", className: `${styles$1p.chip} ${open ? styles$1p.open : ''} ${!isDefault ? styles$1p.active : ''}`, onClick: () => setOpen(!open), disabled: disabled, "aria-haspopup": "listbox", "aria-expanded": open, children: [jsxRuntime.jsxs("span", { className: styles$1p.label, children: [label, ":"] }), jsxRuntime.jsx("span", { className: styles$1p.value, children: displayValue }), jsxRuntime.jsx("svg", { className: `${styles$1p.chevron} ${open ? styles$1p.rotated : ''}`, width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: jsxRuntime.jsx("polyline", { points: "6 9 12 15 18 9" }) })] }), open && (jsxRuntime.jsxs("div", { className: styles$1p.dropdown, role: "listbox", children: [infoMessage && (jsxRuntime.jsxs("div", { className: styles$1p.infoMessage, children: [jsxRuntime.jsx("svg", { width: "12", height: "12", viewBox: "0 0 24 24", fill: "currentColor", children: jsxRuntime.jsx("path", { d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z" }) }), jsxRuntime.jsx("span", { children: infoMessage })] })), searchable && (jsxRuntime.jsxs("div", { className: styles$1p.searchWrapper, children: [jsxRuntime.jsxs("svg", { className: styles$1p.searchIcon, width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [jsxRuntime.jsx("circle", { cx: "11", cy: "11", r: "8" }), jsxRuntime.jsx("line", { x1: "21", y1: "21", x2: "16.65", y2: "16.65" })] }), jsxRuntime.jsx("input", { type: "text", value: searchQuery, onChange: (e) => setSearchQuery(e.target.value), placeholder: searchPlaceholder, className: styles$1p.searchInput, autoFocus: true })] })), jsxRuntime.jsxs("div", { className: styles$1p.optionsList, children: [filteredOptions.map((option) => (jsxRuntime.jsx("button", { type: "button", role: "option", "aria-selected": option.value === value, className: `${styles$1p.option} ${option.value === value ? styles$1p.selected : ''}`, onClick: () => {
2350
+ return (jsxRuntime.jsxs("div", { ref: ref, className: `${styles$1q.wrapper} ${className || ''}`, children: [jsxRuntime.jsxs("button", { type: "button", className: `${styles$1q.chip} ${open ? styles$1q.open : ''} ${!isDefault ? styles$1q.active : ''}`, onClick: () => setOpen(!open), disabled: disabled, "aria-haspopup": "listbox", "aria-expanded": open, children: [jsxRuntime.jsxs("span", { className: styles$1q.label, children: [label, ":"] }), jsxRuntime.jsx("span", { className: styles$1q.value, children: displayValue }), jsxRuntime.jsx("svg", { className: `${styles$1q.chevron} ${open ? styles$1q.rotated : ''}`, width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: jsxRuntime.jsx("polyline", { points: "6 9 12 15 18 9" }) })] }), open && (jsxRuntime.jsxs("div", { className: styles$1q.dropdown, role: "listbox", children: [infoMessage && (jsxRuntime.jsxs("div", { className: styles$1q.infoMessage, children: [jsxRuntime.jsx("svg", { width: "12", height: "12", viewBox: "0 0 24 24", fill: "currentColor", children: jsxRuntime.jsx("path", { d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z" }) }), jsxRuntime.jsx("span", { children: infoMessage })] })), searchable && (jsxRuntime.jsxs("div", { className: styles$1q.searchWrapper, children: [jsxRuntime.jsxs("svg", { className: styles$1q.searchIcon, width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [jsxRuntime.jsx("circle", { cx: "11", cy: "11", r: "8" }), jsxRuntime.jsx("line", { x1: "21", y1: "21", x2: "16.65", y2: "16.65" })] }), jsxRuntime.jsx("input", { type: "text", value: searchQuery, onChange: (e) => setSearchQuery(e.target.value), placeholder: searchPlaceholder, className: styles$1q.searchInput, autoFocus: true })] })), jsxRuntime.jsxs("div", { className: styles$1q.optionsList, children: [filteredOptions.map((option) => (jsxRuntime.jsx("button", { type: "button", role: "option", "aria-selected": option.value === value, className: `${styles$1q.option} ${option.value === value ? styles$1q.selected : ''}`, onClick: () => {
2325
2351
  onChange(option.value);
2326
2352
  setOpen(false);
2327
- }, children: option.label }, option.value))), filteredOptions.length === 0 && (jsxRuntime.jsx("div", { className: styles$1p.noResults, children: "No results found" }))] })] }))] }));
2353
+ }, children: option.label }, option.value))), filteredOptions.length === 0 && (jsxRuntime.jsx("div", { className: styles$1q.noResults, children: "No results found" }))] })] }))] }));
2328
2354
  };
2329
2355
 
2330
- var styles$1o = {"formField":"FormField-module_formField__VhLhK","label":"FormField-module_label__CNCs6","required":"FormField-module_required__HkPQf","inputElement":"FormField-module_inputElement__9uvGR","inputError":"FormField-module_inputError__xD7fk","helperText":"FormField-module_helperText__D99kd","errorText":"FormField-module_errorText__8mXAJ","visuallyHidden":"FormField-module_visuallyHidden__YQc7S"};
2356
+ var styles$1p = {"formField":"FormField-module_formField__VhLhK","label":"FormField-module_label__CNCs6","required":"FormField-module_required__HkPQf","inputElement":"FormField-module_inputElement__9uvGR","inputError":"FormField-module_inputError__xD7fk","helperText":"FormField-module_helperText__D99kd","errorText":"FormField-module_errorText__8mXAJ","visuallyHidden":"FormField-module_visuallyHidden__YQc7S"};
2331
2357
 
2332
2358
  const FormField = React.forwardRef(({ label, helperText, error, required = false, hideLabel = false, className, as = 'input', inputProps, textareaProps, children, }, ref) => {
2333
2359
  const generatedId = React.useId();
@@ -2346,15 +2372,15 @@ const FormField = React.forwardRef(({ label, helperText, error, required = false
2346
2372
  return children;
2347
2373
  }
2348
2374
  if (as === 'textarea') {
2349
- return (jsxRuntime.jsx(Textarea, { ref: ref, id: inputId, "aria-describedby": describedBy, "aria-invalid": hasError, "aria-required": required, ...textareaProps, className: `${styles$1o.inputElement} ${hasError ? styles$1o.inputError : ''} ${textareaProps?.className || ''}` }));
2375
+ return (jsxRuntime.jsx(Textarea, { ref: ref, id: inputId, "aria-describedby": describedBy, "aria-invalid": hasError, "aria-required": required, ...textareaProps, className: `${styles$1p.inputElement} ${hasError ? styles$1p.inputError : ''} ${textareaProps?.className || ''}` }));
2350
2376
  }
2351
- return (jsxRuntime.jsx(Input, { ref: ref, id: inputId, "aria-describedby": describedBy, "aria-invalid": hasError, "aria-required": required, ...inputProps, className: `${styles$1o.inputElement} ${hasError ? styles$1o.inputError : ''} ${inputProps?.className || ''}` }));
2377
+ return (jsxRuntime.jsx(Input, { ref: ref, id: inputId, "aria-describedby": describedBy, "aria-invalid": hasError, "aria-required": required, ...inputProps, className: `${styles$1p.inputElement} ${hasError ? styles$1p.inputError : ''} ${inputProps?.className || ''}` }));
2352
2378
  };
2353
- return (jsxRuntime.jsxs("div", { className: `${styles$1o.formField} ${className || ''}`, children: [jsxRuntime.jsxs("label", { htmlFor: inputId, className: `${styles$1o.label} ${hideLabel ? styles$1o.visuallyHidden : ''}`, children: [label, required && jsxRuntime.jsx("span", { className: styles$1o.required, "aria-hidden": "true", children: "*" })] }), renderInput(), helperText && !hasError && (jsxRuntime.jsx("p", { id: helperId, className: styles$1o.helperText, children: helperText })), hasError && (jsxRuntime.jsx("p", { id: errorId, className: styles$1o.errorText, role: "alert", children: error }))] }));
2379
+ return (jsxRuntime.jsxs("div", { className: `${styles$1p.formField} ${className || ''}`, children: [jsxRuntime.jsxs("label", { htmlFor: inputId, className: `${styles$1p.label} ${hideLabel ? styles$1p.visuallyHidden : ''}`, children: [label, required && jsxRuntime.jsx("span", { className: styles$1p.required, "aria-hidden": "true", children: "*" })] }), renderInput(), helperText && !hasError && (jsxRuntime.jsx("p", { id: helperId, className: styles$1p.helperText, children: helperText })), hasError && (jsxRuntime.jsx("p", { id: errorId, className: styles$1p.errorText, role: "alert", children: error }))] }));
2354
2380
  });
2355
2381
  FormField.displayName = 'FormField';
2356
2382
 
2357
- var styles$1n = {"row":"FormRow-module_row__2ObP9","cols1":"FormRow-module_cols1__WsxX3","cols2":"FormRow-module_cols2__t548T","cols3":"FormRow-module_cols3__zjoSR","cols4":"FormRow-module_cols4__DbZL-","gapsm":"FormRow-module_gapsm__sl0ji","gapmd":"FormRow-module_gapmd__77Yp3","gaplg":"FormRow-module_gaplg__Yb-fh","stackMobile":"FormRow-module_stackMobile__6UluR"};
2383
+ var styles$1o = {"row":"FormRow-module_row__2ObP9","cols1":"FormRow-module_cols1__WsxX3","cols2":"FormRow-module_cols2__t548T","cols3":"FormRow-module_cols3__zjoSR","cols4":"FormRow-module_cols4__DbZL-","gapsm":"FormRow-module_gapsm__sl0ji","gapmd":"FormRow-module_gapmd__77Yp3","gaplg":"FormRow-module_gaplg__Yb-fh","stackMobile":"FormRow-module_stackMobile__6UluR"};
2358
2384
 
2359
2385
  /**
2360
2386
  * FormRow component for laying out form fields in a responsive grid.
@@ -2364,16 +2390,16 @@ const FormRow = ({ children, columns, gap = 'md', className, stackOnMobile = tru
2364
2390
  const childCount = React.Children.count(children);
2365
2391
  const colCount = columns || (childCount > 4 ? 4 : childCount);
2366
2392
  return (jsxRuntime.jsx("div", { className: `
2367
- ${styles$1n.row}
2368
- ${styles$1n[`cols${colCount}`]}
2369
- ${styles$1n[`gap${gap}`]}
2370
- ${stackOnMobile ? styles$1n.stackMobile : ''}
2393
+ ${styles$1o.row}
2394
+ ${styles$1o[`cols${colCount}`]}
2395
+ ${styles$1o[`gap${gap}`]}
2396
+ ${stackOnMobile ? styles$1o.stackMobile : ''}
2371
2397
  ${className || ''}
2372
2398
  `, children: children }));
2373
2399
  };
2374
2400
  FormRow.displayName = 'FormRow';
2375
2401
 
2376
- var styles$1m = {"section":"FormSection-module_section__T17Vg","header":"FormSection-module_header__2MkY6","icon":"FormSection-module_icon__uywPB","title":"FormSection-module_title__dlvYD","fieldset":"FormSection-module_fieldset__pDDIo","disabled":"FormSection-module_disabled__xC3-e","status":"FormSection-module_status__2XOyW","statusLabel":"FormSection-module_statusLabel__VAuDb","statusValue":"FormSection-module_statusValue__YKSc-","submitted":"FormSection-module_submitted__sS-zT","not-submitted":"FormSection-module_not-submitted__Kuk2i","draft":"FormSection-module_draft__XHq3-"};
2402
+ var styles$1n = {"section":"FormSection-module_section__T17Vg","header":"FormSection-module_header__2MkY6","icon":"FormSection-module_icon__uywPB","title":"FormSection-module_title__dlvYD","fieldset":"FormSection-module_fieldset__pDDIo","disabled":"FormSection-module_disabled__xC3-e","status":"FormSection-module_status__2XOyW","statusLabel":"FormSection-module_statusLabel__VAuDb","statusValue":"FormSection-module_statusValue__YKSc-","submitted":"FormSection-module_submitted__sS-zT","not-submitted":"FormSection-module_not-submitted__Kuk2i","draft":"FormSection-module_draft__XHq3-"};
2377
2403
 
2378
2404
  /**
2379
2405
  * FormSection component for grouping related form fields with a title and icon.
@@ -2382,14 +2408,14 @@ var styles$1m = {"section":"FormSection-module_section__T17Vg","header":"FormSec
2382
2408
  const FormSection = ({ title, icon, status, disabled = false, children, className, id, }) => {
2383
2409
  const isSubmitted = status === 'submitted';
2384
2410
  const isDisabled = disabled || isSubmitted;
2385
- return (jsxRuntime.jsxs("div", { className: `${styles$1m.section} ${className || ''}`, id: id, children: [jsxRuntime.jsxs("div", { className: styles$1m.header, children: [icon && jsxRuntime.jsx("span", { className: styles$1m.icon, children: icon }), jsxRuntime.jsx("h2", { className: styles$1m.title, children: title })] }), jsxRuntime.jsxs("fieldset", { disabled: isDisabled, className: `${styles$1m.fieldset} ${isDisabled ? styles$1m.disabled : ''}`, children: [status && (jsxRuntime.jsxs("div", { className: styles$1m.status, children: [jsxRuntime.jsx("span", { className: styles$1m.statusLabel, children: "Status:" }), jsxRuntime.jsx("span", { className: `${styles$1m.statusValue} ${styles$1m[status]}`, children: status === 'submitted' ? 'Submitted' : status === 'draft' ? 'Draft' : 'Not Submitted' })] })), children] })] }));
2411
+ return (jsxRuntime.jsxs("div", { className: `${styles$1n.section} ${className || ''}`, id: id, children: [jsxRuntime.jsxs("div", { className: styles$1n.header, children: [icon && jsxRuntime.jsx("span", { className: styles$1n.icon, children: icon }), jsxRuntime.jsx("h2", { className: styles$1n.title, children: title })] }), jsxRuntime.jsxs("fieldset", { disabled: isDisabled, className: `${styles$1n.fieldset} ${isDisabled ? styles$1n.disabled : ''}`, children: [status && (jsxRuntime.jsxs("div", { className: styles$1n.status, children: [jsxRuntime.jsx("span", { className: styles$1n.statusLabel, children: "Status:" }), jsxRuntime.jsx("span", { className: `${styles$1n.statusValue} ${styles$1n[status]}`, children: status === 'submitted' ? 'Submitted' : status === 'draft' ? 'Draft' : 'Not Submitted' })] })), children] })] }));
2386
2412
  };
2387
2413
  FormSection.displayName = 'FormSection';
2388
2414
 
2389
- var styles$1l = {"stack":"FormStack-module_stack__SURjY","sm":"FormStack-module_sm__rt3tb","md":"FormStack-module_md__SRDmc","lg":"FormStack-module_lg__jql3j"};
2415
+ var styles$1m = {"stack":"FormStack-module_stack__SURjY","sm":"FormStack-module_sm__rt3tb","md":"FormStack-module_md__SRDmc","lg":"FormStack-module_lg__jql3j"};
2390
2416
 
2391
2417
  /** Standard vertical form-field rhythm used by Hub modal forms. */
2392
- const FormStack = ({ children, gap = 'md', className = '' }) => (jsxRuntime.jsx("div", { className: [styles$1l.stack, styles$1l[gap], className].filter(Boolean).join(' '), children: children }));
2418
+ const FormStack = ({ children, gap = 'md', className = '' }) => (jsxRuntime.jsx("div", { className: [styles$1m.stack, styles$1m[gap], className].filter(Boolean).join(' '), children: children }));
2393
2419
 
2394
2420
  const RADIUS = '8px';
2395
2421
  /**
@@ -2467,26 +2493,26 @@ const InfoTile = ({ value, label, icon, square = NO_EDGES, borderless = NO_EDGES
2467
2493
  };
2468
2494
  InfoTile.displayName = 'InfoTile';
2469
2495
 
2470
- var styles$1k = {"toggle":"ManifestViewToggle-module_toggle__sHnAd","lockedToggle":"ManifestViewToggle-module_lockedToggle__m70h9","tab":"ManifestViewToggle-module_tab__qcwg7","active":"ManifestViewToggle-module_active__ln3B8","locked":"ManifestViewToggle-module_locked__Udun8","lockedActive":"ManifestViewToggle-module_lockedActive__kYSaF","count":"ManifestViewToggle-module_count__M-8a8"};
2496
+ var styles$1l = {"toggle":"ManifestViewToggle-module_toggle__sHnAd","lockedToggle":"ManifestViewToggle-module_lockedToggle__m70h9","tab":"ManifestViewToggle-module_tab__qcwg7","active":"ManifestViewToggle-module_active__ln3B8","locked":"ManifestViewToggle-module_locked__Udun8","lockedActive":"ManifestViewToggle-module_lockedActive__kYSaF","count":"ManifestViewToggle-module_count__M-8a8"};
2471
2497
 
2472
2498
  const ManifestViewToggle = ({ view, onView, paxCount, eqCount, locked, className = '', }) => {
2473
2499
  const tabs = [
2474
2500
  { key: 'passengers', label: 'Passengers', count: paxCount, icon: UsersIcon$1 },
2475
2501
  { key: 'equipment', label: 'Equipment', count: eqCount, icon: CubeIcon },
2476
2502
  ];
2477
- return (jsxRuntime.jsx("div", { className: [styles$1k.toggle, locked ? styles$1k.lockedToggle : '', className].filter(Boolean).join(' '), role: "tablist", "aria-label": "Manifest view", children: tabs.map((tab) => {
2503
+ return (jsxRuntime.jsx("div", { className: [styles$1l.toggle, locked ? styles$1l.lockedToggle : '', className].filter(Boolean).join(' '), role: "tablist", "aria-label": "Manifest view", children: tabs.map((tab) => {
2478
2504
  const active = view === tab.key;
2479
2505
  const Icon = locked ? LockIcon$1 : tab.icon;
2480
2506
  return (jsxRuntime.jsxs("button", { type: "button", role: "tab", "aria-selected": active, onClick: () => onView(tab.key), className: [
2481
- styles$1k.tab,
2482
- active ? styles$1k.active : '',
2483
- locked ? styles$1k.locked : '',
2484
- locked && active ? styles$1k.lockedActive : '',
2485
- ].filter(Boolean).join(' '), children: [jsxRuntime.jsx(Icon, { size: 16 }), tab.label, jsxRuntime.jsx("span", { className: styles$1k.count, children: tab.count })] }, tab.key));
2507
+ styles$1l.tab,
2508
+ active ? styles$1l.active : '',
2509
+ locked ? styles$1l.locked : '',
2510
+ locked && active ? styles$1l.lockedActive : '',
2511
+ ].filter(Boolean).join(' '), children: [jsxRuntime.jsx(Icon, { size: 16 }), tab.label, jsxRuntime.jsx("span", { className: styles$1l.count, children: tab.count })] }, tab.key));
2486
2512
  }) }));
2487
2513
  };
2488
2514
 
2489
- var styles$1j = {"container":"MultiUserSearch-module_container__aWwYv","disabled":"MultiUserSearch-module_disabled__Twuo3","label":"MultiUserSearch-module_label__W4WWS","selectedUsers":"MultiUserSearch-module_selectedUsers__IPRHn","selectedBadge":"MultiUserSearch-module_selectedBadge__VxTlk","badgeContent":"MultiUserSearch-module_badgeContent__UnAN7","removeButton":"MultiUserSearch-module_removeButton__vV8P0","inputWrapper":"MultiUserSearch-module_inputWrapper__G4T-v","listbox":"MultiUserSearch-module_listbox__PxgPe","option":"MultiUserSearch-module_option__m0sTR","highlighted":"MultiUserSearch-module_highlighted__GvlxG","optionDisabled":"MultiUserSearch-module_optionDisabled__1GBAH","optionAvatar":"MultiUserSearch-module_optionAvatar__YO9js","optionContent":"MultiUserSearch-module_optionContent__q4YGx","optionName":"MultiUserSearch-module_optionName__YM5T7","optionEmail":"MultiUserSearch-module_optionEmail__-x6qp","optionTitle":"MultiUserSearch-module_optionTitle__RQZWi","loadingItem":"MultiUserSearch-module_loadingItem__ajXfz","noResults":"MultiUserSearch-module_noResults__czQX6","hint":"MultiUserSearch-module_hint__pcdaa","helperText":"MultiUserSearch-module_helperText__0jOQq","errorText":"MultiUserSearch-module_errorText__XISLN"};
2515
+ var styles$1k = {"container":"MultiUserSearch-module_container__aWwYv","disabled":"MultiUserSearch-module_disabled__Twuo3","label":"MultiUserSearch-module_label__W4WWS","selectedUsers":"MultiUserSearch-module_selectedUsers__IPRHn","selectedBadge":"MultiUserSearch-module_selectedBadge__VxTlk","badgeContent":"MultiUserSearch-module_badgeContent__UnAN7","removeButton":"MultiUserSearch-module_removeButton__vV8P0","inputWrapper":"MultiUserSearch-module_inputWrapper__G4T-v","listbox":"MultiUserSearch-module_listbox__PxgPe","option":"MultiUserSearch-module_option__m0sTR","highlighted":"MultiUserSearch-module_highlighted__GvlxG","optionDisabled":"MultiUserSearch-module_optionDisabled__1GBAH","optionAvatar":"MultiUserSearch-module_optionAvatar__YO9js","optionContent":"MultiUserSearch-module_optionContent__q4YGx","optionName":"MultiUserSearch-module_optionName__YM5T7","optionEmail":"MultiUserSearch-module_optionEmail__-x6qp","optionTitle":"MultiUserSearch-module_optionTitle__RQZWi","loadingItem":"MultiUserSearch-module_loadingItem__ajXfz","noResults":"MultiUserSearch-module_noResults__czQX6","hint":"MultiUserSearch-module_hint__pcdaa","helperText":"MultiUserSearch-module_helperText__0jOQq","errorText":"MultiUserSearch-module_errorText__XISLN"};
2490
2516
 
2491
2517
  const DEBOUNCE_MS = 300;
2492
2518
  /**
@@ -2614,34 +2640,34 @@ const MultiUserSearch = ({ label = 'Search users', placeholder = 'Type to search
2614
2640
  const showDropdown = isOpen && (loading || availableOptions.length > 0 || (meetsMinLength && !loading));
2615
2641
  const showNoResults = isOpen && meetsMinLength && !loading && availableOptions.length === 0;
2616
2642
  const showMinLengthHint = isOpen && !meetsMinLength && query.length > 0;
2617
- return (jsxRuntime.jsxs("div", { ref: containerRef, className: [styles$1j.container, disabled ? styles$1j.disabled : '', className]
2643
+ return (jsxRuntime.jsxs("div", { ref: containerRef, className: [styles$1k.container, disabled ? styles$1k.disabled : '', className]
2618
2644
  .filter(Boolean)
2619
- .join(' '), "data-test": dataTest, children: [label && (jsxRuntime.jsx("label", { className: styles$1j.label, htmlFor: `${dataTest}-input`, children: label })), selectedUsers.length > 0 && (jsxRuntime.jsx("div", { className: styles$1j.selectedUsers, "data-test": `${dataTest}-selected`, children: selectedUsers.map((user) => (jsxRuntime.jsx(Badge, { variant: "info", size: "sm", className: styles$1j.selectedBadge, "data-test": `${dataTest}-selected-${user.id}`, children: jsxRuntime.jsxs("span", { className: styles$1j.badgeContent, children: [user.name, jsxRuntime.jsx("button", { type: "button", className: styles$1j.removeButton, onClick: () => removeSelection(user.id), "aria-label": `Remove ${user.name}`, disabled: disabled, children: jsxRuntime.jsx(CloseIcon, { size: 12 }) })] }) }, user.id))) })), jsxRuntime.jsxs("div", { className: styles$1j.inputWrapper, children: [jsxRuntime.jsx(Input, { ref: inputRef, id: `${dataTest}-input`, type: "search", placeholder: placeholder, value: query, onChange: handleInputChange, onFocus: handleInputFocus, onKeyDown: handleKeyDown, disabled: disabled, leftIcon: jsxRuntime.jsx(SearchIcon$1, { size: 16 }), rightIcon: loading ? jsxRuntime.jsx(Spinner, { size: "xs", label: "Searching" }) : undefined, "aria-expanded": isOpen, "aria-controls": `${dataTest}-listbox`, "aria-autocomplete": "list", "aria-activedescendant": highlightedIndex >= 0
2645
+ .join(' '), "data-test": dataTest, children: [label && (jsxRuntime.jsx("label", { className: styles$1k.label, htmlFor: `${dataTest}-input`, children: label })), selectedUsers.length > 0 && (jsxRuntime.jsx("div", { className: styles$1k.selectedUsers, "data-test": `${dataTest}-selected`, children: selectedUsers.map((user) => (jsxRuntime.jsx(Badge, { variant: "info", size: "sm", className: styles$1k.selectedBadge, "data-test": `${dataTest}-selected-${user.id}`, children: jsxRuntime.jsxs("span", { className: styles$1k.badgeContent, children: [user.name, jsxRuntime.jsx("button", { type: "button", className: styles$1k.removeButton, onClick: () => removeSelection(user.id), "aria-label": `Remove ${user.name}`, disabled: disabled, children: jsxRuntime.jsx(CloseIcon, { size: 12 }) })] }) }, user.id))) })), jsxRuntime.jsxs("div", { className: styles$1k.inputWrapper, children: [jsxRuntime.jsx(Input, { ref: inputRef, id: `${dataTest}-input`, type: "search", placeholder: placeholder, value: query, onChange: handleInputChange, onFocus: handleInputFocus, onKeyDown: handleKeyDown, disabled: disabled, leftIcon: jsxRuntime.jsx(SearchIcon$1, { size: 16 }), rightIcon: loading ? jsxRuntime.jsx(Spinner, { size: "xs", label: "Searching" }) : undefined, "aria-expanded": isOpen, "aria-controls": `${dataTest}-listbox`, "aria-autocomplete": "list", "aria-activedescendant": highlightedIndex >= 0
2620
2646
  ? `${dataTest}-option-${availableOptions[highlightedIndex]?.id}`
2621
- : undefined, role: "combobox", fullWidth: true, "data-test": `${dataTest}-input` }), showDropdown && (jsxRuntime.jsxs("ul", { ref: listRef, id: `${dataTest}-listbox`, className: styles$1j.listbox, role: "listbox", "aria-label": "Search results", "data-test": `${dataTest}-listbox`, children: [loading && (jsxRuntime.jsxs("li", { className: styles$1j.loadingItem, role: "status", children: [jsxRuntime.jsx(Spinner, { size: "sm", label: "Searching users" }), jsxRuntime.jsx("span", { children: "Searching users\u2026" })] })), !loading &&
2647
+ : undefined, role: "combobox", fullWidth: true, "data-test": `${dataTest}-input` }), showDropdown && (jsxRuntime.jsxs("ul", { ref: listRef, id: `${dataTest}-listbox`, className: styles$1k.listbox, role: "listbox", "aria-label": "Search results", "data-test": `${dataTest}-listbox`, children: [loading && (jsxRuntime.jsxs("li", { className: styles$1k.loadingItem, role: "status", children: [jsxRuntime.jsx(Spinner, { size: "sm", label: "Searching users" }), jsxRuntime.jsx("span", { children: "Searching users\u2026" })] })), !loading &&
2622
2648
  availableOptions.map((option, index) => (jsxRuntime.jsxs("li", { id: `${dataTest}-option-${option.id}`, role: "option", "aria-selected": highlightedIndex === index, "aria-disabled": option.disabled, className: [
2623
- styles$1j.option,
2624
- highlightedIndex === index ? styles$1j.highlighted : '',
2625
- option.disabled ? styles$1j.optionDisabled : '',
2649
+ styles$1k.option,
2650
+ highlightedIndex === index ? styles$1k.highlighted : '',
2651
+ option.disabled ? styles$1k.optionDisabled : '',
2626
2652
  ]
2627
2653
  .filter(Boolean)
2628
- .join(' '), onClick: () => selectOption(option), title: option.disabledReason, "data-test": `${dataTest}-option-${option.id}`, children: [jsxRuntime.jsx("span", { className: styles$1j.optionAvatar, "aria-hidden": "true", children: jsxRuntime.jsx(UserIcon, { size: 16 }) }), jsxRuntime.jsxs("span", { className: styles$1j.optionContent, children: [jsxRuntime.jsx("span", { className: styles$1j.optionName, children: option.name }), jsxRuntime.jsx("span", { className: styles$1j.optionEmail, children: option.email }), option.title && (jsxRuntime.jsx("span", { className: styles$1j.optionTitle, children: option.title }))] })] }, option.id))), showNoResults && (jsxRuntime.jsxs("li", { className: styles$1j.noResults, role: "status", children: ["No users found matching \"", trimmedQuery, "\""] }))] })), showMinLengthHint && (jsxRuntime.jsxs("div", { className: styles$1j.hint, role: "status", children: ["Enter at least ", minSearchLength, " characters to search"] }))] }), (helperText || error) && (jsxRuntime.jsx("p", { className: [styles$1j.helperText, error ? styles$1j.errorText : '']
2654
+ .join(' '), onClick: () => selectOption(option), title: option.disabledReason, "data-test": `${dataTest}-option-${option.id}`, children: [jsxRuntime.jsx("span", { className: styles$1k.optionAvatar, "aria-hidden": "true", children: jsxRuntime.jsx(UserIcon, { size: 16 }) }), jsxRuntime.jsxs("span", { className: styles$1k.optionContent, children: [jsxRuntime.jsx("span", { className: styles$1k.optionName, children: option.name }), jsxRuntime.jsx("span", { className: styles$1k.optionEmail, children: option.email }), option.title && (jsxRuntime.jsx("span", { className: styles$1k.optionTitle, children: option.title }))] })] }, option.id))), showNoResults && (jsxRuntime.jsxs("li", { className: styles$1k.noResults, role: "status", children: ["No users found matching \"", trimmedQuery, "\""] }))] })), showMinLengthHint && (jsxRuntime.jsxs("div", { className: styles$1k.hint, role: "status", children: ["Enter at least ", minSearchLength, " characters to search"] }))] }), (helperText || error) && (jsxRuntime.jsx("p", { className: [styles$1k.helperText, error ? styles$1k.errorText : '']
2629
2655
  .filter(Boolean)
2630
2656
  .join(' '), role: error ? 'alert' : undefined, children: error || helperText }))] }));
2631
2657
  };
2632
2658
  MultiUserSearch.displayName = 'MultiUserSearch';
2633
2659
 
2634
- var styles$1i = {"navItem":"NavItem-module_navItem__4PpZU","disabled":"NavItem-module_disabled__uYqez","default":"NavItem-module_default__VB92P","active":"NavItem-module_active__3bcnW","pill":"NavItem-module_pill__pn5gl","icon":"NavItem-module_icon__j9VQ5","label":"NavItem-module_label__3S3KY","sm":"NavItem-module_sm__1oeZI","md":"NavItem-module_md__ySO90","lg":"NavItem-module_lg__OmaBw","collapsed":"NavItem-module_collapsed__ciZ6-","iconSm":"NavItem-module_iconSm__UvWnu","iconMd":"NavItem-module_iconMd__uAMlQ","iconLg":"NavItem-module_iconLg__PFPKD","badge":"NavItem-module_badge__oP9u2"};
2660
+ var styles$1j = {"navItem":"NavItem-module_navItem__4PpZU","disabled":"NavItem-module_disabled__uYqez","default":"NavItem-module_default__VB92P","active":"NavItem-module_active__3bcnW","pill":"NavItem-module_pill__pn5gl","icon":"NavItem-module_icon__j9VQ5","label":"NavItem-module_label__3S3KY","sm":"NavItem-module_sm__1oeZI","md":"NavItem-module_md__ySO90","lg":"NavItem-module_lg__OmaBw","collapsed":"NavItem-module_collapsed__ciZ6-","iconSm":"NavItem-module_iconSm__UvWnu","iconMd":"NavItem-module_iconMd__uAMlQ","iconLg":"NavItem-module_iconLg__PFPKD","badge":"NavItem-module_badge__oP9u2"};
2635
2661
 
2636
2662
  const NavItem = ({ icon, label, active = false, collapsed = false, variant = 'default', size = 'md', badge, badgeVariant = 'default', onClick, disabled = false, href, external = false, className, 'aria-label': ariaLabel, }) => {
2637
- const content = (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [icon && jsxRuntime.jsx("span", { className: `${styles$1i.icon} ${styles$1i[`icon${size.charAt(0).toUpperCase()}${size.slice(1)}`]}`, "aria-hidden": "true", children: icon }), !collapsed && (jsxRuntime.jsx("span", { className: styles$1i.label, children: label })), badge !== undefined && !collapsed && (jsxRuntime.jsx(Badge, { variant: badgeVariant, className: styles$1i.badge, children: badge }))] }));
2663
+ const content = (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [icon && jsxRuntime.jsx("span", { className: `${styles$1j.icon} ${styles$1j[`icon${size.charAt(0).toUpperCase()}${size.slice(1)}`]}`, "aria-hidden": "true", children: icon }), !collapsed && (jsxRuntime.jsx("span", { className: styles$1j.label, children: label })), badge !== undefined && !collapsed && (jsxRuntime.jsx(Badge, { variant: badgeVariant, className: styles$1j.badge, children: badge }))] }));
2638
2664
  const classNames = [
2639
- styles$1i.navItem,
2640
- styles$1i[variant],
2641
- styles$1i[size],
2642
- active ? styles$1i.active : '',
2643
- collapsed ? styles$1i.collapsed : '',
2644
- disabled ? styles$1i.disabled : '',
2665
+ styles$1j.navItem,
2666
+ styles$1j[variant],
2667
+ styles$1j[size],
2668
+ active ? styles$1j.active : '',
2669
+ collapsed ? styles$1j.collapsed : '',
2670
+ disabled ? styles$1j.disabled : '',
2645
2671
  className || '',
2646
2672
  ].filter(Boolean).join(' ');
2647
2673
  const commonProps = {
@@ -2656,7 +2682,7 @@ const NavItem = ({ icon, label, active = false, collapsed = false, variant = 'de
2656
2682
  return (jsxRuntime.jsx("button", { type: "button", onClick: disabled ? undefined : onClick, disabled: disabled, ...commonProps, children: content }));
2657
2683
  };
2658
2684
 
2659
- var styles$1h = {"header":"PageHeader-module_header__mgurT","empty":"PageHeader-module_empty__PhGUS","body":"PageHeader-module_body__Ky9Vw","text":"PageHeader-module_text__aZXIA","pretitle":"PageHeader-module_pretitle__4rrfW","title":"PageHeader-module_title__GQfAe"};
2685
+ var styles$1i = {"header":"PageHeader-module_header__mgurT","empty":"PageHeader-module_empty__PhGUS","body":"PageHeader-module_body__Ky9Vw","text":"PageHeader-module_text__aZXIA","pretitle":"PageHeader-module_pretitle__4rrfW","title":"PageHeader-module_title__GQfAe"};
2660
2686
 
2661
2687
  /**
2662
2688
  * Standard page heading: an optional back control, a pretitle, the title, and
@@ -2665,10 +2691,10 @@ var styles$1h = {"header":"PageHeader-module_header__mgurT","empty":"PageHeader-
2665
2691
  * The header keeps its height while `title` is empty and fades in once one
2666
2692
  * arrives, so pages do not jump as their data loads.
2667
2693
  */
2668
- const PageHeader = ({ title, pretitle, after, back, className = '', }) => (jsxRuntime.jsxs("div", { className: `${styles$1h.header} ${title ? '' : styles$1h.empty} ${className}`, children: [back, jsxRuntime.jsx("div", { className: styles$1h.body, children: jsxRuntime.jsxs("div", { className: styles$1h.text, children: [pretitle && jsxRuntime.jsx("h2", { className: styles$1h.pretitle, children: pretitle }), jsxRuntime.jsxs("h1", { className: styles$1h.title, children: [title, "\u00A0"] }), after] }) })] }));
2694
+ const PageHeader = ({ title, pretitle, after, back, className = '', }) => (jsxRuntime.jsxs("div", { className: `${styles$1i.header} ${title ? '' : styles$1i.empty} ${className}`, children: [back, jsxRuntime.jsx("div", { className: styles$1i.body, children: jsxRuntime.jsxs("div", { className: styles$1i.text, children: [pretitle && jsxRuntime.jsx("h2", { className: styles$1i.pretitle, children: pretitle }), jsxRuntime.jsxs("h1", { className: styles$1i.title, children: [title, "\u00A0"] }), after] }) })] }));
2669
2695
  PageHeader.displayName = 'PageHeader';
2670
2696
 
2671
- var styles$1g = {"pagination":"Pagination-module_pagination__bYlk4","summary":"Pagination-module_summary__fE-zz","controls":"Pagination-module_controls__U-4MK","pageSize":"Pagination-module_pageSize__vqxE8","pages":"Pagination-module_pages__-EHb7","page":"Pagination-module_page__bMFDY","step":"Pagination-module_step__RQPZN","current":"Pagination-module_current__YkaCW","ellipsis":"Pagination-module_ellipsis__2nszM"};
2697
+ var styles$1h = {"pagination":"Pagination-module_pagination__bYlk4","summary":"Pagination-module_summary__fE-zz","controls":"Pagination-module_controls__U-4MK","pageSize":"Pagination-module_pageSize__vqxE8","pages":"Pagination-module_pages__-EHb7","page":"Pagination-module_page__bMFDY","step":"Pagination-module_step__RQPZN","current":"Pagination-module_current__YkaCW","ellipsis":"Pagination-module_ellipsis__2nszM"};
2672
2698
 
2673
2699
  /**
2674
2700
  * Builds the page-button list for a paginator, collapsing long runs into
@@ -2713,10 +2739,10 @@ const Pagination = ({ page, pageSize, totalItems, siblingCount = 1, pageSizeOpti
2713
2739
  return;
2714
2740
  onPageChange?.(next);
2715
2741
  };
2716
- return (jsxRuntime.jsxs("nav", { className: [styles$1g.pagination, className].filter(Boolean).join(' '), "aria-label": ariaLabel, "data-test": "pagination", children: [!hideSummary && (jsxRuntime.jsxs("p", { className: styles$1g.summary, "data-test": "pagination-summary", children: ["Showing ", firstItem, "\u2013", lastItem, " of ", totalItems, " ", itemLabel] })), jsxRuntime.jsxs("div", { className: styles$1g.controls, children: [showSizeSelector && (jsxRuntime.jsxs("label", { className: styles$1g.pageSize, children: [jsxRuntime.jsx("span", { children: "Rows per page" }), jsxRuntime.jsx("select", { value: pageSize, onChange: (event) => onPageSizeChange?.(Number(event.target.value)), "data-test": "pagination-page-size", children: pageSizeOptions.map((option) => (jsxRuntime.jsx("option", { value: option, children: option }, option))) })] })), jsxRuntime.jsxs("ul", { className: styles$1g.pages, children: [jsxRuntime.jsx("li", { children: jsxRuntime.jsx("button", { type: "button", className: styles$1g.step, onClick: () => goTo(currentPage - 1), disabled: currentPage <= 1, "aria-label": "Previous page", "data-test": "pagination-previous", children: jsxRuntime.jsx(ChevronLeftIcon, { size: 16 }) }) }), items.map((item, index) => item === 'ellipsis' ? (jsxRuntime.jsx("li", { className: styles$1g.ellipsis, "aria-hidden": "true", children: "\u2026" }, `ellipsis-${index}`)) : (jsxRuntime.jsx("li", { children: jsxRuntime.jsx("button", { type: "button", className: [styles$1g.page, item === currentPage ? styles$1g.current : ''].filter(Boolean).join(' '), onClick: () => goTo(item), "aria-label": `Page ${item}`, "aria-current": item === currentPage ? 'page' : undefined, "data-test": `pagination-page-${item}`, children: item }) }, item))), jsxRuntime.jsx("li", { children: jsxRuntime.jsx("button", { type: "button", className: styles$1g.step, onClick: () => goTo(currentPage + 1), disabled: currentPage >= pageCount, "aria-label": "Next page", "data-test": "pagination-next", children: jsxRuntime.jsx(ChevronRightIcon$1, { size: 16 }) }) })] })] })] }));
2742
+ return (jsxRuntime.jsxs("nav", { className: [styles$1h.pagination, className].filter(Boolean).join(' '), "aria-label": ariaLabel, "data-test": "pagination", children: [!hideSummary && (jsxRuntime.jsxs("p", { className: styles$1h.summary, "data-test": "pagination-summary", children: ["Showing ", firstItem, "\u2013", lastItem, " of ", totalItems, " ", itemLabel] })), jsxRuntime.jsxs("div", { className: styles$1h.controls, children: [showSizeSelector && (jsxRuntime.jsxs("label", { className: styles$1h.pageSize, children: [jsxRuntime.jsx("span", { children: "Rows per page" }), jsxRuntime.jsx("select", { value: pageSize, onChange: (event) => onPageSizeChange?.(Number(event.target.value)), "data-test": "pagination-page-size", children: pageSizeOptions.map((option) => (jsxRuntime.jsx("option", { value: option, children: option }, option))) })] })), jsxRuntime.jsxs("ul", { className: styles$1h.pages, children: [jsxRuntime.jsx("li", { children: jsxRuntime.jsx("button", { type: "button", className: styles$1h.step, onClick: () => goTo(currentPage - 1), disabled: currentPage <= 1, "aria-label": "Previous page", "data-test": "pagination-previous", children: jsxRuntime.jsx(ChevronLeftIcon, { size: 16 }) }) }), items.map((item, index) => item === 'ellipsis' ? (jsxRuntime.jsx("li", { className: styles$1h.ellipsis, "aria-hidden": "true", children: "\u2026" }, `ellipsis-${index}`)) : (jsxRuntime.jsx("li", { children: jsxRuntime.jsx("button", { type: "button", className: [styles$1h.page, item === currentPage ? styles$1h.current : ''].filter(Boolean).join(' '), onClick: () => goTo(item), "aria-label": `Page ${item}`, "aria-current": item === currentPage ? 'page' : undefined, "data-test": `pagination-page-${item}`, children: item }) }, item))), jsxRuntime.jsx("li", { children: jsxRuntime.jsx("button", { type: "button", className: styles$1h.step, onClick: () => goTo(currentPage + 1), disabled: currentPage >= pageCount, "aria-label": "Next page", "data-test": "pagination-next", children: jsxRuntime.jsx(ChevronRightIcon$1, { size: 16 }) }) })] })] })] }));
2717
2743
  };
2718
2744
 
2719
- var styles$1f = {"barContainer":"Progress-module_barContainer__e4v8v","barTrack":"Progress-module_barTrack__tJsPO","barFill":"Progress-module_barFill__RbcDy","barxs":"Progress-module_barxs__TLS4q","barsm":"Progress-module_barsm__BFAiw","barmd":"Progress-module_barmd__QDW-h","barlg":"Progress-module_barlg__C-Mzw","barLabel":"Progress-module_barLabel__4PFJ7","circleContainer":"Progress-module_circleContainer__zyOTa","circleSvg":"Progress-module_circleSvg__0Tt1Q","circleTrack":"Progress-module_circleTrack__p4VWf","circleFill":"Progress-module_circleFill__6fU2M","circleLabel":"Progress-module_circleLabel__vHLfU","primary":"Progress-module_primary__H2wpc","success":"Progress-module_success__rmmnE","warning":"Progress-module_warning__68ovy","error":"Progress-module_error__ZXkH0"};
2745
+ var styles$1g = {"barContainer":"Progress-module_barContainer__e4v8v","barTrack":"Progress-module_barTrack__tJsPO","barFill":"Progress-module_barFill__RbcDy","barxs":"Progress-module_barxs__TLS4q","barsm":"Progress-module_barsm__BFAiw","barmd":"Progress-module_barmd__QDW-h","barlg":"Progress-module_barlg__C-Mzw","barLabel":"Progress-module_barLabel__4PFJ7","circleContainer":"Progress-module_circleContainer__zyOTa","circleSvg":"Progress-module_circleSvg__0Tt1Q","circleTrack":"Progress-module_circleTrack__p4VWf","circleFill":"Progress-module_circleFill__6fU2M","circleLabel":"Progress-module_circleLabel__vHLfU","primary":"Progress-module_primary__H2wpc","success":"Progress-module_success__rmmnE","warning":"Progress-module_warning__68ovy","error":"Progress-module_error__ZXkH0"};
2720
2746
 
2721
2747
  const dimensions = {
2722
2748
  xs: 32,
@@ -2732,7 +2758,7 @@ const strokeWidths = {
2732
2758
  };
2733
2759
  const ProgressBar = ({ value, max = 100, size = 'md', variant = 'primary', showLabel = false, className = '', }) => {
2734
2760
  const percentage = Math.min(Math.max((value / max) * 100, 0), 100);
2735
- return (jsxRuntime.jsxs("div", { className: `${styles$1f.barContainer} ${styles$1f[`bar${size}`]} ${className}`, children: [jsxRuntime.jsx("div", { className: styles$1f.barTrack, children: jsxRuntime.jsx("div", { className: `${styles$1f.barFill} ${styles$1f[variant]}`, style: { width: `${percentage}%` }, role: "progressbar", "aria-valuenow": value, "aria-valuemin": 0, "aria-valuemax": max }) }), showLabel && (jsxRuntime.jsxs("span", { className: styles$1f.barLabel, children: [Math.round(percentage), "%"] }))] }));
2761
+ return (jsxRuntime.jsxs("div", { className: `${styles$1g.barContainer} ${styles$1g[`bar${size}`]} ${className}`, children: [jsxRuntime.jsx("div", { className: styles$1g.barTrack, children: jsxRuntime.jsx("div", { className: `${styles$1g.barFill} ${styles$1g[variant]}`, style: { width: `${percentage}%` }, role: "progressbar", "aria-valuenow": value, "aria-valuemin": 0, "aria-valuemax": max }) }), showLabel && (jsxRuntime.jsxs("span", { className: styles$1g.barLabel, children: [Math.round(percentage), "%"] }))] }));
2736
2762
  };
2737
2763
  const ProgressCircle = ({ value, max = 100, size = 'md', variant = 'primary', showLabel = false, className = '', diameter, }) => {
2738
2764
  const percentage = Math.min(Math.max((value / max) * 100, 0), 100);
@@ -2743,7 +2769,7 @@ const ProgressCircle = ({ value, max = 100, size = 'md', variant = 'primary', sh
2743
2769
  const radius = (dimension - strokeWidth) / 2;
2744
2770
  const circumference = radius * 2 * Math.PI;
2745
2771
  const strokeDashoffset = circumference - (percentage / 100) * circumference;
2746
- return (jsxRuntime.jsxs("div", { className: `${styles$1f.circleContainer} ${className}`, style: { width: dimension, height: dimension }, children: [jsxRuntime.jsxs("svg", { width: dimension, height: dimension, className: styles$1f.circleSvg, children: [jsxRuntime.jsx("circle", { className: styles$1f.circleTrack, cx: dimension / 2, cy: dimension / 2, r: radius, strokeWidth: strokeWidth, fill: "transparent" }), jsxRuntime.jsx("circle", { className: `${styles$1f.circleFill} ${styles$1f[variant]}`, cx: dimension / 2, cy: dimension / 2, r: radius, strokeWidth: strokeWidth, fill: "transparent", strokeDasharray: circumference, strokeDashoffset: strokeDashoffset, strokeLinecap: "round", role: "progressbar", "aria-valuenow": value, "aria-valuemin": 0, "aria-valuemax": max })] }), showLabel && (jsxRuntime.jsxs("span", { className: styles$1f.circleLabel, style: { fontSize: size === 'xs' ? '8px' : size === 'sm' ? '10px' : size === 'md' ? '12px' : '14px' }, children: [Math.round(percentage), "%"] }))] }));
2772
+ return (jsxRuntime.jsxs("div", { className: `${styles$1g.circleContainer} ${className}`, style: { width: dimension, height: dimension }, children: [jsxRuntime.jsxs("svg", { width: dimension, height: dimension, className: styles$1g.circleSvg, children: [jsxRuntime.jsx("circle", { className: styles$1g.circleTrack, cx: dimension / 2, cy: dimension / 2, r: radius, strokeWidth: strokeWidth, fill: "transparent" }), jsxRuntime.jsx("circle", { className: `${styles$1g.circleFill} ${styles$1g[variant]}`, cx: dimension / 2, cy: dimension / 2, r: radius, strokeWidth: strokeWidth, fill: "transparent", strokeDasharray: circumference, strokeDashoffset: strokeDashoffset, strokeLinecap: "round", role: "progressbar", "aria-valuenow": value, "aria-valuemin": 0, "aria-valuemax": max })] }), showLabel && (jsxRuntime.jsxs("span", { className: styles$1g.circleLabel, style: { fontSize: size === 'xs' ? '8px' : size === 'sm' ? '10px' : size === 'md' ? '12px' : '14px' }, children: [Math.round(percentage), "%"] }))] }));
2747
2773
  };
2748
2774
  // Combined export
2749
2775
  const Progress = {
@@ -2751,7 +2777,29 @@ const Progress = {
2751
2777
  Circle: ProgressCircle,
2752
2778
  };
2753
2779
 
2754
- var styles$1e = {"toolbar":"RosterToolbar-module_toolbar__IHjs9","leftSection":"RosterToolbar-module_leftSection__baz7E","rightSection":"RosterToolbar-module_rightSection__R2b-D","dropdown":"RosterToolbar-module_dropdown__NKaWV","dropdownTrigger":"RosterToolbar-module_dropdownTrigger__nCoaZ","dropdownMenu":"RosterToolbar-module_dropdownMenu__7QuED","dropdownItem":"RosterToolbar-module_dropdownItem__mrsat","dropdownItemIcon":"RosterToolbar-module_dropdownItemIcon__gx5tx","lockButton":"RosterToolbar-module_lockButton__zw3s0","locked":"RosterToolbar-module_locked__DVnqB","saveButton":"RosterToolbar-module_saveButton__th1lq","spinner":"RosterToolbar-module_spinner__uWdPg"};
2780
+ // 5px block padding, which is what Hub's `py-1.25` resolves to.
2781
+ const resultCountStyle = css({
2782
+ paddingTop: '5px',
2783
+ paddingBottom: '5px',
2784
+ margin: 0,
2785
+ });
2786
+
2787
+ /**
2788
+ * The "12 trips displayed" line that sits above a filtered list.
2789
+ *
2790
+ * It reports what is on screen, not what exists — the distinction matters when
2791
+ * a filter is applied, which is exactly when someone reads it.
2792
+ *
2793
+ * The count is announced politely so screen-reader users hear the list resize
2794
+ * as they filter, instead of having to go looking for the number.
2795
+ */
2796
+ const ResultCount = ({ count, noun, pluralNoun, className = '', style, }) => {
2797
+ const word = count === 1 ? noun : (pluralNoun ?? `${noun}s`);
2798
+ return (jsxRuntime.jsxs("p", { className: className, "data-testid": "result-count", "aria-live": "polite", style: toInlineStyle(merge(resultCountStyle, style)), children: [count, " ", word.toLocaleLowerCase(), " displayed"] }));
2799
+ };
2800
+ ResultCount.displayName = 'ResultCount';
2801
+
2802
+ var styles$1f = {"toolbar":"RosterToolbar-module_toolbar__IHjs9","leftSection":"RosterToolbar-module_leftSection__baz7E","rightSection":"RosterToolbar-module_rightSection__R2b-D","dropdown":"RosterToolbar-module_dropdown__NKaWV","dropdownTrigger":"RosterToolbar-module_dropdownTrigger__nCoaZ","dropdownMenu":"RosterToolbar-module_dropdownMenu__7QuED","dropdownItem":"RosterToolbar-module_dropdownItem__mrsat","dropdownItemIcon":"RosterToolbar-module_dropdownItemIcon__gx5tx","lockButton":"RosterToolbar-module_lockButton__zw3s0","locked":"RosterToolbar-module_locked__DVnqB","saveButton":"RosterToolbar-module_saveButton__th1lq","spinner":"RosterToolbar-module_spinner__uWdPg"};
2755
2803
 
2756
2804
  const ImportIcon = () => (jsxRuntime.jsxs("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [jsxRuntime.jsx("path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }), jsxRuntime.jsx("polyline", { points: "17 8 12 3 7 8" }), jsxRuntime.jsx("line", { x1: "12", y1: "3", x2: "12", y2: "15" })] }));
2757
2805
  const ExportIcon$1 = () => (jsxRuntime.jsxs("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [jsxRuntime.jsx("path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }), jsxRuntime.jsx("polyline", { points: "7 10 12 15 17 10" }), jsxRuntime.jsx("line", { x1: "12", y1: "15", x2: "12", y2: "3" })] }));
@@ -2759,23 +2807,23 @@ const ChevronIcon$2 = () => (jsxRuntime.jsx("svg", { width: "12", height: "12",
2759
2807
  const LockIcon = () => (jsxRuntime.jsxs("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [jsxRuntime.jsx("rect", { x: "3", y: "11", width: "18", height: "11", rx: "2", ry: "2" }), jsxRuntime.jsx("path", { d: "M7 11V7a5 5 0 0 1 10 0v4" })] }));
2760
2808
  const UnlockIcon = () => (jsxRuntime.jsxs("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [jsxRuntime.jsx("rect", { x: "3", y: "11", width: "18", height: "11", rx: "2", ry: "2" }), jsxRuntime.jsx("path", { d: "M7 11V7a5 5 0 0 1 9.9-1" })] }));
2761
2809
  const SaveIcon = () => (jsxRuntime.jsxs("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [jsxRuntime.jsx("path", { d: "M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z" }), jsxRuntime.jsx("polyline", { points: "17 21 17 13 7 13 7 21" }), jsxRuntime.jsx("polyline", { points: "7 3 7 8 15 8" })] }));
2762
- const SpinnerIcon = () => (jsxRuntime.jsx("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", className: styles$1e.spinner, children: jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10", strokeDasharray: "32", strokeDashoffset: "32" }) }));
2810
+ const SpinnerIcon = () => (jsxRuntime.jsx("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", className: styles$1f.spinner, children: jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10", strokeDasharray: "32", strokeDashoffset: "32" }) }));
2763
2811
  const DropdownButton = ({ label, icon, options, }) => {
2764
- return (jsxRuntime.jsxs("div", { className: styles$1e.dropdown, children: [jsxRuntime.jsxs("button", { type: "button", className: styles$1e.dropdownTrigger, children: [icon, jsxRuntime.jsx("span", { children: label }), jsxRuntime.jsx(ChevronIcon$2, {})] }), jsxRuntime.jsx("div", { className: styles$1e.dropdownMenu, children: options.map((option, i) => (jsxRuntime.jsxs("button", { type: "button", className: styles$1e.dropdownItem, onClick: option.onClick, disabled: option.disabled, children: [option.icon && jsxRuntime.jsx("span", { className: styles$1e.dropdownItemIcon, children: option.icon }), option.label] }, i))) })] }));
2812
+ return (jsxRuntime.jsxs("div", { className: styles$1f.dropdown, children: [jsxRuntime.jsxs("button", { type: "button", className: styles$1f.dropdownTrigger, children: [icon, jsxRuntime.jsx("span", { children: label }), jsxRuntime.jsx(ChevronIcon$2, {})] }), jsxRuntime.jsx("div", { className: styles$1f.dropdownMenu, children: options.map((option, i) => (jsxRuntime.jsxs("button", { type: "button", className: styles$1f.dropdownItem, onClick: option.onClick, disabled: option.disabled, children: [option.icon && jsxRuntime.jsx("span", { className: styles$1f.dropdownItemIcon, children: option.icon }), option.label] }, i))) })] }));
2765
2813
  };
2766
2814
  /**
2767
2815
  * RosterToolbar - Toolbar for roster management with import/export/save actions
2768
2816
  */
2769
2817
  const RosterToolbar = ({ importOptions, exportOptions, lockToggle, saveButton, additionalActions, searchField, className = '', }) => {
2770
- const toolbarClasses = [styles$1e.toolbar, className].filter(Boolean).join(' ');
2771
- return (jsxRuntime.jsxs("div", { className: toolbarClasses, children: [jsxRuntime.jsxs("div", { className: styles$1e.leftSection, children: [searchField, additionalActions] }), jsxRuntime.jsxs("div", { className: styles$1e.rightSection, children: [importOptions && importOptions.length > 0 && (jsxRuntime.jsx(DropdownButton, { label: "Import", icon: jsxRuntime.jsx(ImportIcon, {}), options: importOptions })), exportOptions && exportOptions.length > 0 && (jsxRuntime.jsx(DropdownButton, { label: "Export", icon: jsxRuntime.jsx(ExportIcon$1, {}), options: exportOptions })), lockToggle && (jsxRuntime.jsxs("button", { type: "button", className: [
2772
- styles$1e.lockButton,
2773
- lockToggle.isLocked ? styles$1e.locked : '',
2774
- ].filter(Boolean).join(' '), onClick: () => lockToggle.onToggle(!lockToggle.isLocked), disabled: lockToggle.disabled, "aria-label": lockToggle.isLocked ? 'Unlock roster' : 'Lock roster', children: [lockToggle.isLocked ? jsxRuntime.jsx(LockIcon, {}) : jsxRuntime.jsx(UnlockIcon, {}), jsxRuntime.jsx("span", { children: lockToggle.isLocked ? 'Locked' : 'Unlocked' })] })), saveButton && (jsxRuntime.jsxs("button", { type: "button", className: styles$1e.saveButton, onClick: saveButton.onClick, disabled: saveButton.disabled || saveButton.loading, children: [saveButton.loading ? jsxRuntime.jsx(SpinnerIcon, {}) : jsxRuntime.jsx(SaveIcon, {}), jsxRuntime.jsx("span", { children: saveButton.label || 'Save' })] }))] })] }));
2818
+ const toolbarClasses = [styles$1f.toolbar, className].filter(Boolean).join(' ');
2819
+ return (jsxRuntime.jsxs("div", { className: toolbarClasses, children: [jsxRuntime.jsxs("div", { className: styles$1f.leftSection, children: [searchField, additionalActions] }), jsxRuntime.jsxs("div", { className: styles$1f.rightSection, children: [importOptions && importOptions.length > 0 && (jsxRuntime.jsx(DropdownButton, { label: "Import", icon: jsxRuntime.jsx(ImportIcon, {}), options: importOptions })), exportOptions && exportOptions.length > 0 && (jsxRuntime.jsx(DropdownButton, { label: "Export", icon: jsxRuntime.jsx(ExportIcon$1, {}), options: exportOptions })), lockToggle && (jsxRuntime.jsxs("button", { type: "button", className: [
2820
+ styles$1f.lockButton,
2821
+ lockToggle.isLocked ? styles$1f.locked : '',
2822
+ ].filter(Boolean).join(' '), onClick: () => lockToggle.onToggle(!lockToggle.isLocked), disabled: lockToggle.disabled, "aria-label": lockToggle.isLocked ? 'Unlock roster' : 'Lock roster', children: [lockToggle.isLocked ? jsxRuntime.jsx(LockIcon, {}) : jsxRuntime.jsx(UnlockIcon, {}), jsxRuntime.jsx("span", { children: lockToggle.isLocked ? 'Locked' : 'Unlocked' })] })), saveButton && (jsxRuntime.jsxs("button", { type: "button", className: styles$1f.saveButton, onClick: saveButton.onClick, disabled: saveButton.disabled || saveButton.loading, children: [saveButton.loading ? jsxRuntime.jsx(SpinnerIcon, {}) : jsxRuntime.jsx(SaveIcon, {}), jsxRuntime.jsx("span", { children: saveButton.label || 'Save' })] }))] })] }));
2775
2823
  };
2776
2824
  RosterToolbar.displayName = 'RosterToolbar';
2777
2825
 
2778
- var styles$1d = {"searchField":"SearchField-module_searchField__c7gUE","inputWrapper":"SearchField-module_inputWrapper__SUzHv","searchIcon":"SearchField-module_searchIcon__MOZ2m","input":"SearchField-module_input__abJcl","clearButton":"SearchField-module_clearButton__RMIg2","sm":"SearchField-module_sm__-sayT","lg":"SearchField-module_lg__QKacI"};
2826
+ var styles$1e = {"searchField":"SearchField-module_searchField__c7gUE","inputWrapper":"SearchField-module_inputWrapper__SUzHv","searchIcon":"SearchField-module_searchIcon__MOZ2m","input":"SearchField-module_input__abJcl","clearButton":"SearchField-module_clearButton__RMIg2","sm":"SearchField-module_sm__-sayT","lg":"SearchField-module_lg__QKacI"};
2779
2827
 
2780
2828
  const SearchField = React.forwardRef(({ placeholder = 'Search...', value, defaultValue = '', onChange, onSearch, onClear, size = 'md', disabled = false, showClear = true, showButton = true, className, id, 'aria-label': ariaLabel = 'Search', ...props }, ref) => {
2781
2829
  const [internalValue, setInternalValue] = React.useState(defaultValue);
@@ -2803,25 +2851,25 @@ const SearchField = React.forwardRef(({ placeholder = 'Search...', value, defaul
2803
2851
  onSearch?.(currentValue);
2804
2852
  }
2805
2853
  };
2806
- return (jsxRuntime.jsxs("form", { className: `${styles$1d.searchField} ${styles$1d[size]} ${className || ''}`, onSubmit: handleSubmit, role: "search", children: [jsxRuntime.jsxs("div", { className: styles$1d.inputWrapper, children: [jsxRuntime.jsx(SearchIcon$1, { className: styles$1d.searchIcon, "aria-hidden": "true" }), jsxRuntime.jsx(Input, { ref: ref, id: id, type: "search", placeholder: placeholder, value: currentValue, onChange: handleChange, onKeyDown: handleKeyDown, disabled: disabled, className: styles$1d.input, "aria-label": ariaLabel, ...props }), showClear && currentValue && (jsxRuntime.jsx("button", { type: "button", className: styles$1d.clearButton, onClick: handleClear, disabled: disabled, "aria-label": "Clear search", children: jsxRuntime.jsx(CloseIcon, { size: 16 }) }))] }), showButton && (jsxRuntime.jsx(Button, { type: "submit", variant: "primary", size: size, disabled: disabled, children: "Search" }))] }));
2854
+ return (jsxRuntime.jsxs("form", { className: `${styles$1e.searchField} ${styles$1e[size]} ${className || ''}`, onSubmit: handleSubmit, role: "search", children: [jsxRuntime.jsxs("div", { className: styles$1e.inputWrapper, children: [jsxRuntime.jsx(SearchIcon$1, { className: styles$1e.searchIcon, "aria-hidden": "true" }), jsxRuntime.jsx(Input, { ref: ref, id: id, type: "search", placeholder: placeholder, value: currentValue, onChange: handleChange, onKeyDown: handleKeyDown, disabled: disabled, className: styles$1e.input, "aria-label": ariaLabel, ...props }), showClear && currentValue && (jsxRuntime.jsx("button", { type: "button", className: styles$1e.clearButton, onClick: handleClear, disabled: disabled, "aria-label": "Clear search", children: jsxRuntime.jsx(CloseIcon, { size: 16 }) }))] }), showButton && (jsxRuntime.jsx(Button, { type: "submit", variant: "primary", size: size, disabled: disabled, children: "Search" }))] }));
2807
2855
  });
2808
2856
  SearchField.displayName = 'SearchField';
2809
2857
 
2810
- var styles$1c = {"form":"SchoolContactForm-module_form__-Mx7k","portalLabel":"SchoolContactForm-module_portalLabel__GAeV6","newContactLabel":"SchoolContactForm-module_newContactLabel__7S3Vw","divider":"SchoolContactForm-module_divider__ZSx-R","nameFields":"SchoolContactForm-module_nameFields__Fcjl8","phoneFields":"SchoolContactForm-module_phoneFields__-zRPe"};
2858
+ var styles$1d = {"form":"SchoolContactForm-module_form__-Mx7k","portalLabel":"SchoolContactForm-module_portalLabel__GAeV6","newContactLabel":"SchoolContactForm-module_newContactLabel__7S3Vw","divider":"SchoolContactForm-module_divider__ZSx-R","nameFields":"SchoolContactForm-module_nameFields__Fcjl8","phoneFields":"SchoolContactForm-module_phoneFields__-zRPe"};
2811
2859
 
2812
2860
  /**
2813
2861
  * Layout for Hub's school-contact editor. Field controls stay injectable so
2814
2862
  * consuming applications retain their form state, validation, and masking.
2815
2863
  */
2816
- const SchoolContactForm = ({ mode, createFromPortalUser, firstNameField, middleInitialField, lastNameField, businessPhoneField, cellPhoneField, emailField, className = '', }) => (jsxRuntime.jsxs("div", { className: [styles$1c.form, className].filter(Boolean).join(' '), children: [mode === 'Add' && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("label", { className: styles$1c.portalLabel, children: "Create From Portal User" }), createFromPortalUser] }), jsxRuntime.jsx("div", { className: styles$1c.divider, children: jsxRuntime.jsx("strong", { children: "OR" }) }), jsxRuntime.jsx("p", { className: styles$1c.newContactLabel, children: "Create New Contact Without Portal Access" })] })), jsxRuntime.jsxs("div", { className: styles$1c.nameFields, children: [firstNameField, middleInitialField, lastNameField] }), jsxRuntime.jsxs("div", { className: styles$1c.phoneFields, children: [businessPhoneField, cellPhoneField] }), jsxRuntime.jsx("div", { children: emailField })] }));
2864
+ const SchoolContactForm = ({ mode, createFromPortalUser, firstNameField, middleInitialField, lastNameField, businessPhoneField, cellPhoneField, emailField, className = '', }) => (jsxRuntime.jsxs("div", { className: [styles$1d.form, className].filter(Boolean).join(' '), children: [mode === 'Add' && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("label", { className: styles$1d.portalLabel, children: "Create From Portal User" }), createFromPortalUser] }), jsxRuntime.jsx("div", { className: styles$1d.divider, children: jsxRuntime.jsx("strong", { children: "OR" }) }), jsxRuntime.jsx("p", { className: styles$1d.newContactLabel, children: "Create New Contact Without Portal Access" })] })), jsxRuntime.jsxs("div", { className: styles$1d.nameFields, children: [firstNameField, middleInitialField, lastNameField] }), jsxRuntime.jsxs("div", { className: styles$1d.phoneFields, children: [businessPhoneField, cellPhoneField] }), jsxRuntime.jsx("div", { children: emailField })] }));
2817
2865
 
2818
- var styles$1b = {"segment":"Segment-module_segment__UF-SG","fullWidth":"Segment-module_fullWidth__Hi19i","option":"Segment-module_option__UJUhj","disabled":"Segment-module_disabled__CSxuQ","selected":"Segment-module_selected__gRnVj","sm":"Segment-module_sm__h8S7Z","md":"Segment-module_md__4uTae","lg":"Segment-module_lg__zL0Hv","icon":"Segment-module_icon__ZHRr6"};
2866
+ var styles$1c = {"segment":"Segment-module_segment__UF-SG","fullWidth":"Segment-module_fullWidth__Hi19i","option":"Segment-module_option__UJUhj","disabled":"Segment-module_disabled__CSxuQ","selected":"Segment-module_selected__gRnVj","sm":"Segment-module_sm__h8S7Z","md":"Segment-module_md__4uTae","lg":"Segment-module_lg__zL0Hv","icon":"Segment-module_icon__ZHRr6"};
2819
2867
 
2820
2868
  const Segment = ({ options, value, onChange, size = 'md', fullWidth = false, className = '', 'aria-label': ariaLabel, }) => {
2821
- return (jsxRuntime.jsx("div", { className: `${styles$1b.segment} ${styles$1b[size]} ${fullWidth ? styles$1b.fullWidth : ''} ${className}`, role: "radiogroup", "aria-label": ariaLabel, children: options.map((option) => (jsxRuntime.jsxs("button", { type: "button", className: `${styles$1b.option} ${value === option.value ? styles$1b.selected : ''} ${option.disabled ? styles$1b.disabled : ''}`, onClick: () => !option.disabled && onChange(option.value), disabled: option.disabled, role: "radio", "aria-checked": value === option.value, children: [option.icon && jsxRuntime.jsx("span", { className: styles$1b.icon, children: option.icon }), option.label] }, option.value))) }));
2869
+ return (jsxRuntime.jsx("div", { className: `${styles$1c.segment} ${styles$1c[size]} ${fullWidth ? styles$1c.fullWidth : ''} ${className}`, role: "radiogroup", "aria-label": ariaLabel, children: options.map((option) => (jsxRuntime.jsxs("button", { type: "button", className: `${styles$1c.option} ${value === option.value ? styles$1c.selected : ''} ${option.disabled ? styles$1c.disabled : ''}`, onClick: () => !option.disabled && onChange(option.value), disabled: option.disabled, role: "radio", "aria-checked": value === option.value, children: [option.icon && jsxRuntime.jsx("span", { className: styles$1c.icon, children: option.icon }), option.label] }, option.value))) }));
2822
2870
  };
2823
2871
 
2824
- var styles$1a = {"container":"SelectFilter-module_container__tCC9y","trigger":"SelectFilter-module_trigger__5WbMf","open":"SelectFilter-module_open__oo-Y6","disabled":"SelectFilter-module_disabled__JUdi3","triggerText":"SelectFilter-module_triggerText__LM07K","placeholder":"SelectFilter-module_placeholder__J0xyo","chevron":"SelectFilter-module_chevron__x-Pnr","dropdown":"SelectFilter-module_dropdown__52FPP","tabs":"SelectFilter-module_tabs__wp6on","tab":"SelectFilter-module_tab__JpnWo","activeTab":"SelectFilter-module_activeTab__ShP7x","actions":"SelectFilter-module_actions__phfFl","actionBtn":"SelectFilter-module_actionBtn__ppB--","options":"SelectFilter-module_options__p1iCX","option":"SelectFilter-module_option__0vwfy","selected":"SelectFilter-module_selected__2vxyT","checkbox":"SelectFilter-module_checkbox__qTUjy","optionLabel":"SelectFilter-module_optionLabel__L4CMA","footer":"SelectFilter-module_footer__aq4JP","applyBtn":"SelectFilter-module_applyBtn__RFKei"};
2872
+ var styles$1b = {"container":"SelectFilter-module_container__tCC9y","trigger":"SelectFilter-module_trigger__5WbMf","open":"SelectFilter-module_open__oo-Y6","disabled":"SelectFilter-module_disabled__JUdi3","triggerText":"SelectFilter-module_triggerText__LM07K","placeholder":"SelectFilter-module_placeholder__J0xyo","chevron":"SelectFilter-module_chevron__x-Pnr","dropdown":"SelectFilter-module_dropdown__52FPP","tabs":"SelectFilter-module_tabs__wp6on","tab":"SelectFilter-module_tab__JpnWo","activeTab":"SelectFilter-module_activeTab__ShP7x","actions":"SelectFilter-module_actions__phfFl","actionBtn":"SelectFilter-module_actionBtn__ppB--","options":"SelectFilter-module_options__p1iCX","option":"SelectFilter-module_option__0vwfy","selected":"SelectFilter-module_selected__2vxyT","checkbox":"SelectFilter-module_checkbox__qTUjy","optionLabel":"SelectFilter-module_optionLabel__L4CMA","footer":"SelectFilter-module_footer__aq4JP","applyBtn":"SelectFilter-module_applyBtn__RFKei"};
2825
2873
 
2826
2874
  const ChevronIcon$1 = () => (jsxRuntime.jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: jsxRuntime.jsx("polyline", { points: "6 9 12 15 18 9" }) }));
2827
2875
  const CheckIcon = () => (jsxRuntime.jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: jsxRuntime.jsx("polyline", { points: "20 6 9 17 4 12" }) }));
@@ -2894,11 +2942,11 @@ const SelectFilter = ({ label, options = [], groupedOptions = {}, value = [], on
2894
2942
  }
2895
2943
  return `${selected.length} selected`;
2896
2944
  };
2897
- return (jsxRuntime.jsxs("div", { ref: dropdownRef, className: `${styles$1a.container} ${className}`, children: [jsxRuntime.jsxs("button", { type: "button", className: `${styles$1a.trigger} ${disabled ? styles$1a.disabled : ''} ${isOpen ? styles$1a.open : ''}`, onClick: () => !disabled && setIsOpen(!isOpen), children: [jsxRuntime.jsx("span", { className: `${styles$1a.triggerText} ${selectedValues.length === 0 ? styles$1a.placeholder : ''}`, children: getDisplayText() }), jsxRuntime.jsx("span", { className: styles$1a.chevron, children: jsxRuntime.jsx(ChevronIcon$1, {}) })] }), isOpen && (jsxRuntime.jsxs("div", { className: styles$1a.dropdown, style: { width }, children: [grouped && tabs.length > 0 && (jsxRuntime.jsx("div", { className: styles$1a.tabs, children: tabs.map(tab => (jsxRuntime.jsx("button", { type: "button", className: `${styles$1a.tab} ${activeTab === tab ? styles$1a.activeTab : ''}`, onClick: () => setActiveTab(tab), children: tab.charAt(0).toUpperCase() + tab.slice(1) }, tab))) })), multiselect && (jsxRuntime.jsxs("div", { className: styles$1a.actions, children: [jsxRuntime.jsx("button", { type: "button", className: styles$1a.actionBtn, onClick: handleSelectAll, children: "Select All" }), jsxRuntime.jsx("button", { type: "button", className: styles$1a.actionBtn, onClick: handleClear, children: "Clear" })] })), jsxRuntime.jsx("div", { className: styles$1a.options, children: currentOptions.map(option => (jsxRuntime.jsxs("div", { className: `${styles$1a.option} ${selectedValues.includes(option.value) ? styles$1a.selected : ''}`, onClick: () => handleSelect(option.value), children: [multiselect && (jsxRuntime.jsx("span", { className: styles$1a.checkbox, children: selectedValues.includes(option.value) && jsxRuntime.jsx(CheckIcon, {}) })), jsxRuntime.jsx("span", { className: styles$1a.optionLabel, children: option.label })] }, option.value))) }), multiselect && (jsxRuntime.jsx("div", { className: styles$1a.footer, children: jsxRuntime.jsx("button", { type: "button", className: styles$1a.applyBtn, onClick: () => setIsOpen(false), children: "Apply" }) }))] }))] }));
2945
+ return (jsxRuntime.jsxs("div", { ref: dropdownRef, className: `${styles$1b.container} ${className}`, children: [jsxRuntime.jsxs("button", { type: "button", className: `${styles$1b.trigger} ${disabled ? styles$1b.disabled : ''} ${isOpen ? styles$1b.open : ''}`, onClick: () => !disabled && setIsOpen(!isOpen), children: [jsxRuntime.jsx("span", { className: `${styles$1b.triggerText} ${selectedValues.length === 0 ? styles$1b.placeholder : ''}`, children: getDisplayText() }), jsxRuntime.jsx("span", { className: styles$1b.chevron, children: jsxRuntime.jsx(ChevronIcon$1, {}) })] }), isOpen && (jsxRuntime.jsxs("div", { className: styles$1b.dropdown, style: { width }, children: [grouped && tabs.length > 0 && (jsxRuntime.jsx("div", { className: styles$1b.tabs, children: tabs.map(tab => (jsxRuntime.jsx("button", { type: "button", className: `${styles$1b.tab} ${activeTab === tab ? styles$1b.activeTab : ''}`, onClick: () => setActiveTab(tab), children: tab.charAt(0).toUpperCase() + tab.slice(1) }, tab))) })), multiselect && (jsxRuntime.jsxs("div", { className: styles$1b.actions, children: [jsxRuntime.jsx("button", { type: "button", className: styles$1b.actionBtn, onClick: handleSelectAll, children: "Select All" }), jsxRuntime.jsx("button", { type: "button", className: styles$1b.actionBtn, onClick: handleClear, children: "Clear" })] })), jsxRuntime.jsx("div", { className: styles$1b.options, children: currentOptions.map(option => (jsxRuntime.jsxs("div", { className: `${styles$1b.option} ${selectedValues.includes(option.value) ? styles$1b.selected : ''}`, onClick: () => handleSelect(option.value), children: [multiselect && (jsxRuntime.jsx("span", { className: styles$1b.checkbox, children: selectedValues.includes(option.value) && jsxRuntime.jsx(CheckIcon, {}) })), jsxRuntime.jsx("span", { className: styles$1b.optionLabel, children: option.label })] }, option.value))) }), multiselect && (jsxRuntime.jsx("div", { className: styles$1b.footer, children: jsxRuntime.jsx("button", { type: "button", className: styles$1b.applyBtn, onClick: () => setIsOpen(false), children: "Apply" }) }))] }))] }));
2898
2946
  };
2899
2947
  SelectFilter.displayName = 'SelectFilter';
2900
2948
 
2901
- var styles$19 = {"list":"ServiceToggle-module_list__bBts8","item":"ServiceToggle-module_item__4wEbQ","labelContainer":"ServiceToggle-module_labelContainer__oz-I1","clickable":"ServiceToggle-module_clickable__yzQxe","icon":"ServiceToggle-module_icon__8IdST","label":"ServiceToggle-module_label__J98Ve"};
2949
+ var styles$1a = {"list":"ServiceToggle-module_list__bBts8","item":"ServiceToggle-module_item__4wEbQ","labelContainer":"ServiceToggle-module_labelContainer__oz-I1","clickable":"ServiceToggle-module_clickable__yzQxe","icon":"ServiceToggle-module_icon__8IdST","label":"ServiceToggle-module_label__J98Ve"};
2902
2950
 
2903
2951
  /**
2904
2952
  * ServiceToggle component for a single service item.
@@ -2911,19 +2959,19 @@ const ServiceToggle = ({ label, icon, hasToggle = true, enabled = false, onToggl
2911
2959
  onClick();
2912
2960
  }
2913
2961
  };
2914
- return (jsxRuntime.jsxs("div", { className: styles$19.item, children: [jsxRuntime.jsxs("div", { className: `${styles$19.labelContainer} ${isClickable ? styles$19.clickable : ''}`, onClick: handleClick, children: [icon && jsxRuntime.jsx("span", { className: styles$19.icon, children: icon }), jsxRuntime.jsx("span", { className: styles$19.label, children: label })] }), hasToggle && (jsxRuntime.jsx(Toggle, { "aria-label": label, checked: enabled, onChange: (checked) => onToggle?.(checked), disabled: disabled, size: "sm" }))] }));
2962
+ return (jsxRuntime.jsxs("div", { className: styles$1a.item, children: [jsxRuntime.jsxs("div", { className: `${styles$1a.labelContainer} ${isClickable ? styles$1a.clickable : ''}`, onClick: handleClick, children: [icon && jsxRuntime.jsx("span", { className: styles$1a.icon, children: icon }), jsxRuntime.jsx("span", { className: styles$1a.label, children: label })] }), hasToggle && (jsxRuntime.jsx(Toggle, { "aria-label": label, checked: enabled, onChange: (checked) => onToggle?.(checked), disabled: disabled, size: "sm" }))] }));
2915
2963
  };
2916
2964
  /**
2917
2965
  * ServiceToggleList component for displaying a list of services with toggles.
2918
2966
  * Used in travel request forms for service selection (Air, Hotel, Ground, etc.)
2919
2967
  */
2920
2968
  const ServiceToggleList = ({ services, enabledServices = {}, onToggle, onClick, className, disabled = false, }) => {
2921
- return (jsxRuntime.jsx("div", { className: `${styles$19.list} ${className || ''}`, children: services.map((service) => (jsxRuntime.jsx(ServiceToggle, { serviceKey: service.key, label: service.label, icon: service.icon, hasToggle: service.hasToggle, enabled: enabledServices[service.key] ?? false, onToggle: (enabled) => onToggle?.(service.key, enabled), onClick: () => onClick?.(service.key), disabled: disabled }, service.key))) }));
2969
+ return (jsxRuntime.jsx("div", { className: `${styles$1a.list} ${className || ''}`, children: services.map((service) => (jsxRuntime.jsx(ServiceToggle, { serviceKey: service.key, label: service.label, icon: service.icon, hasToggle: service.hasToggle, enabled: enabledServices[service.key] ?? false, onToggle: (enabled) => onToggle?.(service.key, enabled), onClick: () => onClick?.(service.key), disabled: disabled }, service.key))) }));
2922
2970
  };
2923
2971
  ServiceToggle.displayName = 'ServiceToggle';
2924
2972
  ServiceToggleList.displayName = 'ServiceToggleList';
2925
2973
 
2926
- var styles$18 = {"toggle":"SupplierTypeToggle-module_toggle__x4pTJ","active":"SupplierTypeToggle-module_active__8BGSe"};
2974
+ var styles$19 = {"toggle":"SupplierTypeToggle-module_toggle__x4pTJ","active":"SupplierTypeToggle-module_active__8BGSe"};
2927
2975
 
2928
2976
  const SUPPLIER_TYPE_OPTIONS = [
2929
2977
  { value: 'A', label: 'Air' },
@@ -2944,10 +2992,10 @@ const SupplierTypeToggle = ({ value, defaultValue = '', onChange, disabled = fal
2944
2992
  setInternalValue(nextValue);
2945
2993
  onChange?.(nextValue);
2946
2994
  };
2947
- return (jsxRuntime.jsx("div", { className: [styles$18.toggle, className].filter(Boolean).join(' '), role: "group", "aria-label": "Supplier type", children: OPTIONS.map((option) => (jsxRuntime.jsx("button", { type: "button", disabled: disabled, "aria-pressed": activeValue === option.value, className: activeValue === option.value ? styles$18.active : '', onClick: () => handleSelect(option.value), children: option.label }, option.value || 'all'))) }));
2995
+ return (jsxRuntime.jsx("div", { className: [styles$19.toggle, className].filter(Boolean).join(' '), role: "group", "aria-label": "Supplier type", children: OPTIONS.map((option) => (jsxRuntime.jsx("button", { type: "button", disabled: disabled, "aria-pressed": activeValue === option.value, className: activeValue === option.value ? styles$19.active : '', onClick: () => handleSelect(option.value), children: option.label }, option.value || 'all'))) }));
2948
2996
  };
2949
2997
 
2950
- var styles$17 = {"header":"TeamCalendarHeader-module_header__j6QB7","row":"TeamCalendarHeader-module_row__g8ntG","identity":"TeamCalendarHeader-module_identity__cvHGq","code":"TeamCalendarHeader-module_code__ClYXC","name":"TeamCalendarHeader-module_name__wqku-","content":"TeamCalendarHeader-module_content__Aqt4I"};
2998
+ var styles$18 = {"header":"TeamCalendarHeader-module_header__j6QB7","row":"TeamCalendarHeader-module_row__g8ntG","identity":"TeamCalendarHeader-module_identity__cvHGq","code":"TeamCalendarHeader-module_code__ClYXC","name":"TeamCalendarHeader-module_name__wqku-","content":"TeamCalendarHeader-module_content__Aqt4I"};
2951
2999
 
2952
3000
  /**
2953
3001
  * The heading of a team's column in the travel calendar: the team's code, its
@@ -2956,10 +3004,10 @@ var styles$17 = {"header":"TeamCalendarHeader-module_header__j6QB7","row":"TeamC
2956
3004
  * It sticks to the top of its column so the team stays identifiable while the
2957
3005
  * schedule scrolls.
2958
3006
  */
2959
- const TeamCalendarHeader = ({ teamCode, teamFullName, children, className = '', }) => (jsxRuntime.jsxs("div", { className: `${styles$17.header} ${className}`, children: [jsxRuntime.jsx("div", { className: styles$17.row, children: jsxRuntime.jsxs("div", { className: styles$17.identity, children: [jsxRuntime.jsx("div", { className: styles$17.code, children: teamCode }), teamFullName && jsxRuntime.jsx("span", { className: styles$17.name, children: teamFullName })] }) }), jsxRuntime.jsx("div", { className: styles$17.content, children: children })] }));
3007
+ const TeamCalendarHeader = ({ teamCode, teamFullName, children, className = '', }) => (jsxRuntime.jsxs("div", { className: `${styles$18.header} ${className}`, children: [jsxRuntime.jsx("div", { className: styles$18.row, children: jsxRuntime.jsxs("div", { className: styles$18.identity, children: [jsxRuntime.jsx("div", { className: styles$18.code, children: teamCode }), teamFullName && jsxRuntime.jsx("span", { className: styles$18.name, children: teamFullName })] }) }), jsxRuntime.jsx("div", { className: styles$18.content, children: children })] }));
2960
3008
  TeamCalendarHeader.displayName = 'TeamCalendarHeader';
2961
3009
 
2962
- var styles$16 = {"header":"TeamHeader-module_header__3Zx1c","empty":"TeamHeader-module_empty__fKrFE","left":"TeamHeader-module_left__yqug2","backButton":"TeamHeader-module_backButton__MqElX","titles":"TeamHeader-module_titles__m3Ne9","pretitle":"TeamHeader-module_pretitle__rZUD6","title":"TeamHeader-module_title__i3dmZ","actions":"TeamHeader-module_actions__ft1DN","subMenu":"TeamHeader-module_subMenu__oL-3Q","activeTab":"TeamHeader-module_activeTab__AUzdq"};
3010
+ var styles$17 = {"header":"TeamHeader-module_header__3Zx1c","empty":"TeamHeader-module_empty__fKrFE","left":"TeamHeader-module_left__yqug2","backButton":"TeamHeader-module_backButton__MqElX","titles":"TeamHeader-module_titles__m3Ne9","pretitle":"TeamHeader-module_pretitle__rZUD6","title":"TeamHeader-module_title__i3dmZ","actions":"TeamHeader-module_actions__ft1DN","subMenu":"TeamHeader-module_subMenu__oL-3Q","activeTab":"TeamHeader-module_activeTab__AUzdq"};
2963
3011
 
2964
3012
  const BackIcon = () => (jsxRuntime.jsxs("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [jsxRuntime.jsx("line", { x1: "19", y1: "12", x2: "5", y2: "12" }), jsxRuntime.jsx("polyline", { points: "12 19 5 12 12 5" })] }));
2965
3013
  /**
@@ -2970,8 +3018,8 @@ const TeamHeader = ({ title: suppliedTitle, teamCode, teamName, pretitle = 'Team
2970
3018
  ? `${teamCode} - ${teamName}`
2971
3019
  : teamName || teamCode || '');
2972
3020
  const headerClasses = [
2973
- styles$16.header,
2974
- !title ? styles$16.empty : '',
3021
+ styles$17.header,
3022
+ !title ? styles$17.empty : '',
2975
3023
  className,
2976
3024
  ].filter(Boolean).join(' ');
2977
3025
  const handleBack = () => {
@@ -2983,7 +3031,7 @@ const TeamHeader = ({ title: suppliedTitle, teamCode, teamName, pretitle = 'Team
2983
3031
  window.location.href = backHref;
2984
3032
  }
2985
3033
  };
2986
- return (jsxRuntime.jsxs("div", { className: headerClasses, "data-test": "team-header", children: [jsxRuntime.jsxs("div", { className: styles$16.left, children: [(backHref || onBack) && (jsxRuntime.jsx("button", { type: "button", className: styles$16.backButton, onClick: handleBack, "aria-label": "Go back", "data-test": "team-header-back", children: jsxRuntime.jsx(BackIcon, {}) })), jsxRuntime.jsxs("div", { className: styles$16.titles, children: [pretitle && jsxRuntime.jsx("span", { className: styles$16.pretitle, children: pretitle }), jsxRuntime.jsxs("h1", { className: styles$16.title, children: [title, "\u00A0"] })] })] }), actions && (jsxRuntime.jsx("div", { className: styles$16.actions, children: actions }))] }));
3034
+ return (jsxRuntime.jsxs("div", { className: headerClasses, "data-test": "team-header", children: [jsxRuntime.jsxs("div", { className: styles$17.left, children: [(backHref || onBack) && (jsxRuntime.jsx("button", { type: "button", className: styles$17.backButton, onClick: handleBack, "aria-label": "Go back", "data-test": "team-header-back", children: jsxRuntime.jsx(BackIcon, {}) })), jsxRuntime.jsxs("div", { className: styles$17.titles, children: [pretitle && jsxRuntime.jsx("span", { className: styles$17.pretitle, children: pretitle }), jsxRuntime.jsxs("h1", { className: styles$17.title, children: [title, "\u00A0"] })] })] }), actions && (jsxRuntime.jsx("div", { className: styles$17.actions, children: actions }))] }));
2987
3035
  };
2988
3036
  const DEFAULT_TABS$1 = [
2989
3037
  { id: 'profile', label: 'Profile' },
@@ -2992,11 +3040,11 @@ const DEFAULT_TABS$1 = [
2992
3040
  { id: 'user-access', label: 'User Access' },
2993
3041
  ];
2994
3042
  /** Router-agnostic counterpart of Hub's team-management submenu. */
2995
- const TeamSubMenu = ({ tabs = DEFAULT_TABS$1, activeTab, onTabChange, className = '' }) => (jsxRuntime.jsx("nav", { className: [styles$16.subMenu, className].filter(Boolean).join(' '), "aria-label": "Team management sections", "data-test": "team-management-tabs", children: tabs.map((tab) => (jsxRuntime.jsx("button", { type: "button", className: activeTab === tab.id ? styles$16.activeTab : '', "aria-current": activeTab === tab.id ? 'page' : undefined, "data-test": `team-management-tab-${tab.id}`, onClick: () => onTabChange?.(tab.id), children: tab.label }, tab.id))) }));
3043
+ const TeamSubMenu = ({ tabs = DEFAULT_TABS$1, activeTab, onTabChange, className = '' }) => (jsxRuntime.jsx("nav", { className: [styles$17.subMenu, className].filter(Boolean).join(' '), "aria-label": "Team management sections", "data-test": "team-management-tabs", children: tabs.map((tab) => (jsxRuntime.jsx("button", { type: "button", className: activeTab === tab.id ? styles$17.activeTab : '', "aria-current": activeTab === tab.id ? 'page' : undefined, "data-test": `team-management-tab-${tab.id}`, onClick: () => onTabChange?.(tab.id), children: tab.label }, tab.id))) }));
2996
3044
  TeamHeader.displayName = 'TeamHeader';
2997
3045
  TeamSubMenu.displayName = 'TeamSubMenu';
2998
3046
 
2999
- var styles$15 = {"segment":"TripSegment-module_segment__jX-Nq","light":"TripSegment-module_light__hHSb3","dark":"TripSegment-module_dark__3Fuo7","empty":"TripSegment-module_empty__vmzg0","item":"TripSegment-module_item__S-RC1","itemHeader":"TripSegment-module_itemHeader__wFWMo","itemType":"TripSegment-module_itemType__NsDLe","itemName":"TripSegment-module_itemName__ysYsC","route":"TripSegment-module_route__Shyz0","location":"TripSegment-module_location__8VCMH","details":"TripSegment-module_details__4U4Km","dates":"TripSegment-module_dates__Wn4-k"};
3047
+ var styles$16 = {"segment":"TripSegment-module_segment__jX-Nq","light":"TripSegment-module_light__hHSb3","dark":"TripSegment-module_dark__3Fuo7","empty":"TripSegment-module_empty__vmzg0","item":"TripSegment-module_item__S-RC1","itemHeader":"TripSegment-module_itemHeader__wFWMo","itemType":"TripSegment-module_itemType__NsDLe","itemName":"TripSegment-module_itemName__ysYsC","route":"TripSegment-module_route__Shyz0","location":"TripSegment-module_location__8VCMH","details":"TripSegment-module_details__4U4Km","dates":"TripSegment-module_dates__Wn4-k"};
3000
3048
 
3001
3049
  const PlaneIcon$2 = () => (jsxRuntime.jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: jsxRuntime.jsx("path", { d: "M21 16v-2l-8-5V3.5a1.5 1.5 0 0 0-3 0V9l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-5.5l8 2.5Z" }) }));
3002
3050
  const BusIcon$1 = () => (jsxRuntime.jsxs("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [jsxRuntime.jsx("rect", { x: "4", y: "4", width: "16", height: "14", rx: "2" }), jsxRuntime.jsx("path", { d: "M8 6v6" }), jsxRuntime.jsx("path", { d: "M16 6v6" }), jsxRuntime.jsx("circle", { cx: "8", cy: "16", r: "1" }), jsxRuntime.jsx("circle", { cx: "16", cy: "16", r: "1" })] }));
@@ -3006,41 +3054,41 @@ const ArrowIcon = () => (jsxRuntime.jsxs("svg", { width: "12", height: "12", vie
3006
3054
  * Base TripSegment component wrapper
3007
3055
  */
3008
3056
  const TripSegment = ({ type: _type, variant = 'light', className = '', children, }) => {
3009
- return (jsxRuntime.jsx("div", { className: `${styles$15.segment} ${styles$15[variant]} ${className}`, children: children }));
3057
+ return (jsxRuntime.jsx("div", { className: `${styles$16.segment} ${styles$16[variant]} ${className}`, children: children }));
3010
3058
  };
3011
3059
  /**
3012
3060
  * AirSegment component for displaying flight information
3013
3061
  */
3014
3062
  const AirSegment = ({ flights, variant = 'light', className = '', }) => {
3015
3063
  if (!flights || flights.length === 0) {
3016
- return (jsxRuntime.jsx(TripSegment, { type: "air", variant: variant, className: className, children: jsxRuntime.jsx("span", { className: styles$15.empty, children: "No flights" }) }));
3064
+ return (jsxRuntime.jsx(TripSegment, { type: "air", variant: variant, className: className, children: jsxRuntime.jsx("span", { className: styles$16.empty, children: "No flights" }) }));
3017
3065
  }
3018
- return (jsxRuntime.jsx(TripSegment, { type: "air", variant: variant, className: className, children: flights.map((flight, i) => (jsxRuntime.jsxs("div", { className: styles$15.item, children: [jsxRuntime.jsxs("div", { className: styles$15.itemHeader, children: [jsxRuntime.jsx(PlaneIcon$2, {}), jsxRuntime.jsx("span", { className: styles$15.itemType, children: flight.type === 'charter' ? 'Charter' : 'Commercial' })] }), jsxRuntime.jsxs("div", { className: styles$15.route, children: [jsxRuntime.jsx("span", { className: styles$15.location, children: flight.departure }), jsxRuntime.jsx(ArrowIcon, {}), jsxRuntime.jsx("span", { className: styles$15.location, children: flight.arrival })] }), jsxRuntime.jsxs("div", { className: styles$15.details, children: [jsxRuntime.jsx("span", { children: flight.departureDate }), flight.departureTime && jsxRuntime.jsx("span", { children: flight.departureTime })] }), flight.airline && (jsxRuntime.jsxs("div", { className: styles$15.details, children: [jsxRuntime.jsx("span", { children: flight.airline }), flight.flightNumber && jsxRuntime.jsxs("span", { children: ["#", flight.flightNumber] })] }))] }, i))) }));
3066
+ return (jsxRuntime.jsx(TripSegment, { type: "air", variant: variant, className: className, children: flights.map((flight, i) => (jsxRuntime.jsxs("div", { className: styles$16.item, children: [jsxRuntime.jsxs("div", { className: styles$16.itemHeader, children: [jsxRuntime.jsx(PlaneIcon$2, {}), jsxRuntime.jsx("span", { className: styles$16.itemType, children: flight.type === 'charter' ? 'Charter' : 'Commercial' })] }), jsxRuntime.jsxs("div", { className: styles$16.route, children: [jsxRuntime.jsx("span", { className: styles$16.location, children: flight.departure }), jsxRuntime.jsx(ArrowIcon, {}), jsxRuntime.jsx("span", { className: styles$16.location, children: flight.arrival })] }), jsxRuntime.jsxs("div", { className: styles$16.details, children: [jsxRuntime.jsx("span", { children: flight.departureDate }), flight.departureTime && jsxRuntime.jsx("span", { children: flight.departureTime })] }), flight.airline && (jsxRuntime.jsxs("div", { className: styles$16.details, children: [jsxRuntime.jsx("span", { children: flight.airline }), flight.flightNumber && jsxRuntime.jsxs("span", { children: ["#", flight.flightNumber] })] }))] }, i))) }));
3019
3067
  };
3020
3068
  /**
3021
3069
  * GroundSegment component for displaying ground transportation
3022
3070
  */
3023
3071
  const GroundSegment = ({ segments, variant = 'light', className = '', }) => {
3024
3072
  if (!segments || segments.length === 0) {
3025
- return (jsxRuntime.jsx(TripSegment, { type: "ground", variant: variant, className: className, children: jsxRuntime.jsx("span", { className: styles$15.empty, children: "No ground transportation" }) }));
3073
+ return (jsxRuntime.jsx(TripSegment, { type: "ground", variant: variant, className: className, children: jsxRuntime.jsx("span", { className: styles$16.empty, children: "No ground transportation" }) }));
3026
3074
  }
3027
- return (jsxRuntime.jsx(TripSegment, { type: "ground", variant: variant, className: className, children: segments.map((segment, i) => (jsxRuntime.jsxs("div", { className: styles$15.item, children: [jsxRuntime.jsxs("div", { className: styles$15.itemHeader, children: [jsxRuntime.jsx(BusIcon$1, {}), jsxRuntime.jsx("span", { className: styles$15.itemType, children: segment.type.charAt(0).toUpperCase() + segment.type.slice(1) })] }), jsxRuntime.jsxs("div", { className: styles$15.route, children: [jsxRuntime.jsx("span", { className: styles$15.location, children: segment.pickupLocation }), jsxRuntime.jsx(ArrowIcon, {}), jsxRuntime.jsx("span", { className: styles$15.location, children: segment.dropoffLocation })] }), jsxRuntime.jsxs("div", { className: styles$15.details, children: [jsxRuntime.jsx("span", { children: segment.pickupDate }), segment.pickupTime && jsxRuntime.jsx("span", { children: segment.pickupTime })] }), segment.company && (jsxRuntime.jsxs("div", { className: styles$15.details, children: [jsxRuntime.jsx("span", { children: segment.company }), segment.vehicleCount && jsxRuntime.jsxs("span", { children: [segment.vehicleCount, " vehicles"] })] }))] }, i))) }));
3075
+ return (jsxRuntime.jsx(TripSegment, { type: "ground", variant: variant, className: className, children: segments.map((segment, i) => (jsxRuntime.jsxs("div", { className: styles$16.item, children: [jsxRuntime.jsxs("div", { className: styles$16.itemHeader, children: [jsxRuntime.jsx(BusIcon$1, {}), jsxRuntime.jsx("span", { className: styles$16.itemType, children: segment.type.charAt(0).toUpperCase() + segment.type.slice(1) })] }), jsxRuntime.jsxs("div", { className: styles$16.route, children: [jsxRuntime.jsx("span", { className: styles$16.location, children: segment.pickupLocation }), jsxRuntime.jsx(ArrowIcon, {}), jsxRuntime.jsx("span", { className: styles$16.location, children: segment.dropoffLocation })] }), jsxRuntime.jsxs("div", { className: styles$16.details, children: [jsxRuntime.jsx("span", { children: segment.pickupDate }), segment.pickupTime && jsxRuntime.jsx("span", { children: segment.pickupTime })] }), segment.company && (jsxRuntime.jsxs("div", { className: styles$16.details, children: [jsxRuntime.jsx("span", { children: segment.company }), segment.vehicleCount && jsxRuntime.jsxs("span", { children: [segment.vehicleCount, " vehicles"] })] }))] }, i))) }));
3028
3076
  };
3029
3077
  /**
3030
3078
  * HotelSegment component for displaying hotel information
3031
3079
  */
3032
3080
  const HotelSegment = ({ hotels, variant = 'light', className = '', }) => {
3033
3081
  if (!hotels || hotels.length === 0) {
3034
- return (jsxRuntime.jsx(TripSegment, { type: "hotel", variant: variant, className: className, children: jsxRuntime.jsx("span", { className: styles$15.empty, children: "No hotels" }) }));
3082
+ return (jsxRuntime.jsx(TripSegment, { type: "hotel", variant: variant, className: className, children: jsxRuntime.jsx("span", { className: styles$16.empty, children: "No hotels" }) }));
3035
3083
  }
3036
- return (jsxRuntime.jsx(TripSegment, { type: "hotel", variant: variant, className: className, children: hotels.map((hotel, i) => (jsxRuntime.jsxs("div", { className: styles$15.item, children: [jsxRuntime.jsxs("div", { className: styles$15.itemHeader, children: [jsxRuntime.jsx(HotelIcon$2, {}), jsxRuntime.jsx("span", { className: styles$15.itemName, children: hotel.name })] }), hotel.city && (jsxRuntime.jsx("div", { className: styles$15.details, children: jsxRuntime.jsx("span", { children: hotel.city }) })), jsxRuntime.jsxs("div", { className: styles$15.dates, children: [jsxRuntime.jsx("span", { children: hotel.checkIn }), jsxRuntime.jsx("span", { children: "\u2013" }), jsxRuntime.jsx("span", { children: hotel.checkOut })] }), hotel.roomCount && (jsxRuntime.jsx("div", { className: styles$15.details, children: jsxRuntime.jsxs("span", { children: [hotel.roomCount, " rooms"] }) }))] }, i))) }));
3084
+ return (jsxRuntime.jsx(TripSegment, { type: "hotel", variant: variant, className: className, children: hotels.map((hotel, i) => (jsxRuntime.jsxs("div", { className: styles$16.item, children: [jsxRuntime.jsxs("div", { className: styles$16.itemHeader, children: [jsxRuntime.jsx(HotelIcon$2, {}), jsxRuntime.jsx("span", { className: styles$16.itemName, children: hotel.name })] }), hotel.city && (jsxRuntime.jsx("div", { className: styles$16.details, children: jsxRuntime.jsx("span", { children: hotel.city }) })), jsxRuntime.jsxs("div", { className: styles$16.dates, children: [jsxRuntime.jsx("span", { children: hotel.checkIn }), jsxRuntime.jsx("span", { children: "\u2013" }), jsxRuntime.jsx("span", { children: hotel.checkOut })] }), hotel.roomCount && (jsxRuntime.jsx("div", { className: styles$16.details, children: jsxRuntime.jsxs("span", { children: [hotel.roomCount, " rooms"] }) }))] }, i))) }));
3037
3085
  };
3038
3086
  TripSegment.displayName = 'TripSegment';
3039
3087
  AirSegment.displayName = 'AirSegment';
3040
3088
  GroundSegment.displayName = 'GroundSegment';
3041
3089
  HotelSegment.displayName = 'HotelSegment';
3042
3090
 
3043
- var styles$14 = {"calculator":"AcmiQuoteCalculator-module_calculator__-6rXx","errorSummary":"AcmiQuoteCalculator-module_errorSummary__3UXtU","alertMessage":"AcmiQuoteCalculator-module_alertMessage__B-nGB","columns":"AcmiQuoteCalculator-module_columns__VlLlN","panel":"AcmiQuoteCalculator-module_panel__y5d5u","panelTitle":"AcmiQuoteCalculator-module_panelTitle__LSjm3","legs":"AcmiQuoteCalculator-module_legs__ULi1q","leg":"AcmiQuoteCalculator-module_leg__HJ-sm","automaticLeg":"AcmiQuoteCalculator-module_automaticLeg__Hvg55","legIndex":"AcmiQuoteCalculator-module_legIndex__Bkql5","legError":"AcmiQuoteCalculator-module_legError__nUX-M","actions":"AcmiQuoteCalculator-module_actions__fzH-d","results":"AcmiQuoteCalculator-module_results__U83fJ","resultGrid":"AcmiQuoteCalculator-module_resultGrid__f7Ktc","finalPrice":"AcmiQuoteCalculator-module_finalPrice__KGEGz","contractFacts":"AcmiQuoteCalculator-module_contractFacts__m55AN","pricedLegs":"AcmiQuoteCalculator-module_pricedLegs__AxxFS","pricedLegHeader":"AcmiQuoteCalculator-module_pricedLegHeader__e7bmc","pricedLeg":"AcmiQuoteCalculator-module_pricedLeg__I1XjZ"};
3091
+ var styles$15 = {"calculator":"AcmiQuoteCalculator-module_calculator__-6rXx","errorSummary":"AcmiQuoteCalculator-module_errorSummary__3UXtU","alertMessage":"AcmiQuoteCalculator-module_alertMessage__B-nGB","columns":"AcmiQuoteCalculator-module_columns__VlLlN","panel":"AcmiQuoteCalculator-module_panel__y5d5u","panelTitle":"AcmiQuoteCalculator-module_panelTitle__LSjm3","legs":"AcmiQuoteCalculator-module_legs__ULi1q","leg":"AcmiQuoteCalculator-module_leg__HJ-sm","automaticLeg":"AcmiQuoteCalculator-module_automaticLeg__Hvg55","legIndex":"AcmiQuoteCalculator-module_legIndex__Bkql5","legError":"AcmiQuoteCalculator-module_legError__nUX-M","actions":"AcmiQuoteCalculator-module_actions__fzH-d","results":"AcmiQuoteCalculator-module_results__U83fJ","resultGrid":"AcmiQuoteCalculator-module_resultGrid__f7Ktc","finalPrice":"AcmiQuoteCalculator-module_finalPrice__KGEGz","contractFacts":"AcmiQuoteCalculator-module_contractFacts__m55AN","pricedLegs":"AcmiQuoteCalculator-module_pricedLegs__AxxFS","pricedLegHeader":"AcmiQuoteCalculator-module_pricedLegHeader__e7bmc","pricedLeg":"AcmiQuoteCalculator-module_pricedLeg__I1XjZ"};
3044
3092
 
3045
3093
  /** Carriers STM currently holds ACMI agreements with. */
3046
3094
  const ACMI_CARRIER_OPTIONS = [
@@ -3156,19 +3204,19 @@ const AcmiQuoteCalculator = ({ carrierOptions = ACMI_CARRIER_OPTIONS, aircraftOp
3156
3204
  const seatHint = specs
3157
3205
  ? `Maximum ${specs.seats} passengers for this aircraft`
3158
3206
  : 'Select an aircraft to see seat capacity';
3159
- return (jsxRuntime.jsxs("div", { className: [styles$14.calculator, className].filter(Boolean).join(' '), "data-test": "acmi-quote-calculator", children: [showErrors && errorList.length > 0 && (jsxRuntime.jsx(Alert, { variant: "error", title: "Fix these before calculating", children: jsxRuntime.jsx("ul", { className: styles$14.errorSummary, "data-test": "acmi-error-summary", children: errorList.map(([field, message]) => (jsxRuntime.jsx("li", { children: message }, field))) }) })), calculationError && (jsxRuntime.jsx(Alert, { variant: "error", title: "Quote could not be calculated", children: jsxRuntime.jsx("p", { className: styles$14.alertMessage, "data-test": "acmi-calculation-error", children: calculationError }) })), jsxRuntime.jsxs("div", { className: styles$14.columns, children: [jsxRuntime.jsxs("section", { className: styles$14.panel, "aria-label": "Quote configuration", children: [jsxRuntime.jsx("h3", { className: styles$14.panelTitle, children: "Quote Configuration" }), jsxRuntime.jsx(Select, { id: "acmi-carrier", label: "Carrier", placeholder: "Select Carrier\u2026", options: carrierOptions, value: inputs.carrier, error: showErrors ? errors.carrier : undefined, onChange: (event) => updateCarrier(event.target.value), "data-test": "acmi-carrier" }), jsxRuntime.jsx(Select, { id: "acmi-aircraft", label: "Aircraft Type", placeholder: "Select Aircraft\u2026", options: availableAircraftOptions, value: inputs.aircraft, disabled: !inputs.carrier, error: showErrors ? errors.aircraft : undefined, onChange: (event) => update('aircraft', event.target.value), "data-test": "acmi-aircraft" }), jsxRuntime.jsx(Input, { id: "acmi-passengers", type: "number", label: "Number of Passengers", placeholder: "Enter passenger count", helperText: seatHint, value: inputs.passengers, error: showErrors ? errors.passengers : undefined, onChange: (event) => update('passengers', event.target.value), "data-test": "acmi-passengers" }), jsxRuntime.jsx(Input, { id: "acmi-fuel-price", type: "number", step: "0.01", label: "Fuel Price ($/gallon)", placeholder: "e.g. 5.50", value: inputs.fuelPrice, error: showErrors ? errors.fuelPrice : undefined, onChange: (event) => update('fuelPrice', event.target.value), "data-test": "acmi-fuel-price" }), jsxRuntime.jsx(Input, { id: "acmi-markup", type: "number", step: "0.1", label: "Markup %", helperText: "Standard is 7% \u2014 adjustable as needed", value: inputs.markupPercent, onChange: (event) => update('markupPercent', event.target.value), "data-test": "acmi-markup" }), jsxRuntime.jsx(Input, { id: "acmi-insurance", label: "Insurance (Flat Fee)", helperText: `${currency.format(insuranceFlat)} per trip (locked)`, value: currency.format(insuranceFlat), readOnly: true, disabled: true, "data-test": "acmi-insurance" }), jsxRuntime.jsx(Input, { id: "acmi-crew-nights", type: "number", label: "Crew Nights (RON)", helperText: "Number of nights crew stays away from base", value: inputs.crewNights, onChange: (event) => update('crewNights', event.target.value), "data-test": "acmi-crew-nights" }), showTripMonth && (jsxRuntime.jsx(Select, { id: "acmi-trip-month", label: "Trip Month (for Historic Winds)", options: TRIP_MONTH_OPTIONS, helperText: "Use this only when the configured pricing service applies a historic winds profile.", value: inputs.tripMonth, onChange: (event) => update('tripMonth', event.target.value), "data-test": "acmi-trip-month" }))] }), jsxRuntime.jsxs("section", { className: styles$14.panel, "aria-label": "Flight itinerary", children: [jsxRuntime.jsx("h3", { className: styles$14.panelTitle, children: "Flight Itinerary" }), jsxRuntime.jsx(Alert, { variant: "primary", children: positioningMode === 'automatic' ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: ["Enter ", jsxRuntime.jsx("strong", { children: "live legs only" }), ", in trip order. The host pricing engine adds positioning ferry legs automatically. Leave flight time blank to use its route estimate; an entered time is treated as an explicit contractual input."] })) : (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: ["Enter ", jsxRuntime.jsx("strong", { children: "every flown leg in order" }), ", including positioning. Mark each leg as live or ferry. Leave flight time blank to use the pricing engine\u2019s route estimate; an entered time is treated as an explicit contractual input."] })) }), showErrors && errors.legs && (jsxRuntime.jsx("p", { className: styles$14.legError, role: "alert", "data-test": "acmi-legs-error", children: errors.legs })), jsxRuntime.jsx("ol", { className: styles$14.legs, children: inputs.legs.map((leg, index) => (jsxRuntime.jsxs("li", { className: [
3160
- styles$14.leg,
3161
- positioningMode === 'automatic' ? styles$14.automaticLeg : '',
3162
- ].filter(Boolean).join(' '), "data-test": "acmi-leg", children: [jsxRuntime.jsxs("span", { className: styles$14.legIndex, children: ["Leg ", index + 1] }), positioningMode === 'explicit' && (jsxRuntime.jsx(Select, { id: `${leg.id}-type`, size: "sm", label: "Leg type", options: [
3207
+ return (jsxRuntime.jsxs("div", { className: [styles$15.calculator, className].filter(Boolean).join(' '), "data-test": "acmi-quote-calculator", children: [showErrors && errorList.length > 0 && (jsxRuntime.jsx(Alert, { variant: "error", title: "Fix these before calculating", children: jsxRuntime.jsx("ul", { className: styles$15.errorSummary, "data-test": "acmi-error-summary", children: errorList.map(([field, message]) => (jsxRuntime.jsx("li", { children: message }, field))) }) })), calculationError && (jsxRuntime.jsx(Alert, { variant: "error", title: "Quote could not be calculated", children: jsxRuntime.jsx("p", { className: styles$15.alertMessage, "data-test": "acmi-calculation-error", children: calculationError }) })), jsxRuntime.jsxs("div", { className: styles$15.columns, children: [jsxRuntime.jsxs("section", { className: styles$15.panel, "aria-label": "Quote configuration", children: [jsxRuntime.jsx("h3", { className: styles$15.panelTitle, children: "Quote Configuration" }), jsxRuntime.jsx(Select, { id: "acmi-carrier", label: "Carrier", placeholder: "Select Carrier\u2026", options: carrierOptions, value: inputs.carrier, error: showErrors ? errors.carrier : undefined, onChange: (event) => updateCarrier(event.target.value), "data-test": "acmi-carrier" }), jsxRuntime.jsx(Select, { id: "acmi-aircraft", label: "Aircraft Type", placeholder: "Select Aircraft\u2026", options: availableAircraftOptions, value: inputs.aircraft, disabled: !inputs.carrier, error: showErrors ? errors.aircraft : undefined, onChange: (event) => update('aircraft', event.target.value), "data-test": "acmi-aircraft" }), jsxRuntime.jsx(Input, { id: "acmi-passengers", type: "number", label: "Number of Passengers", placeholder: "Enter passenger count", helperText: seatHint, value: inputs.passengers, error: showErrors ? errors.passengers : undefined, onChange: (event) => update('passengers', event.target.value), "data-test": "acmi-passengers" }), jsxRuntime.jsx(Input, { id: "acmi-fuel-price", type: "number", step: "0.01", label: "Fuel Price ($/gallon)", placeholder: "e.g. 5.50", value: inputs.fuelPrice, error: showErrors ? errors.fuelPrice : undefined, onChange: (event) => update('fuelPrice', event.target.value), "data-test": "acmi-fuel-price" }), jsxRuntime.jsx(Input, { id: "acmi-markup", type: "number", step: "0.1", label: "Markup %", helperText: "Standard is 7% \u2014 adjustable as needed", value: inputs.markupPercent, onChange: (event) => update('markupPercent', event.target.value), "data-test": "acmi-markup" }), jsxRuntime.jsx(Input, { id: "acmi-insurance", label: "Insurance (Flat Fee)", helperText: `${currency.format(insuranceFlat)} per trip (locked)`, value: currency.format(insuranceFlat), readOnly: true, disabled: true, "data-test": "acmi-insurance" }), jsxRuntime.jsx(Input, { id: "acmi-crew-nights", type: "number", label: "Crew Nights (RON)", helperText: "Number of nights crew stays away from base", value: inputs.crewNights, onChange: (event) => update('crewNights', event.target.value), "data-test": "acmi-crew-nights" }), showTripMonth && (jsxRuntime.jsx(Select, { id: "acmi-trip-month", label: "Trip Month (for Historic Winds)", options: TRIP_MONTH_OPTIONS, helperText: "Use this only when the configured pricing service applies a historic winds profile.", value: inputs.tripMonth, onChange: (event) => update('tripMonth', event.target.value), "data-test": "acmi-trip-month" }))] }), jsxRuntime.jsxs("section", { className: styles$15.panel, "aria-label": "Flight itinerary", children: [jsxRuntime.jsx("h3", { className: styles$15.panelTitle, children: "Flight Itinerary" }), jsxRuntime.jsx(Alert, { variant: "primary", children: positioningMode === 'automatic' ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: ["Enter ", jsxRuntime.jsx("strong", { children: "live legs only" }), ", in trip order. The host pricing engine adds positioning ferry legs automatically. Leave flight time blank to use its route estimate; an entered time is treated as an explicit contractual input."] })) : (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: ["Enter ", jsxRuntime.jsx("strong", { children: "every flown leg in order" }), ", including positioning. Mark each leg as live or ferry. Leave flight time blank to use the pricing engine\u2019s route estimate; an entered time is treated as an explicit contractual input."] })) }), showErrors && errors.legs && (jsxRuntime.jsx("p", { className: styles$15.legError, role: "alert", "data-test": "acmi-legs-error", children: errors.legs })), jsxRuntime.jsx("ol", { className: styles$15.legs, children: inputs.legs.map((leg, index) => (jsxRuntime.jsxs("li", { className: [
3208
+ styles$15.leg,
3209
+ positioningMode === 'automatic' ? styles$15.automaticLeg : '',
3210
+ ].filter(Boolean).join(' '), "data-test": "acmi-leg", children: [jsxRuntime.jsxs("span", { className: styles$15.legIndex, children: ["Leg ", index + 1] }), positioningMode === 'explicit' && (jsxRuntime.jsx(Select, { id: `${leg.id}-type`, size: "sm", label: "Leg type", options: [
3163
3211
  { value: 'live', label: 'Live' },
3164
3212
  { value: 'ferry', label: 'Ferry' },
3165
- ], value: leg.type ?? 'live', onChange: (event) => updateLeg(leg.id, { type: event.target.value }), "data-test": "acmi-leg-type" })), jsxRuntime.jsx(Input, { id: `${leg.id}-origin`, size: "sm", label: "From", maxLength: 4, value: leg.origin, onChange: (event) => updateLeg(leg.id, { origin: event.target.value.toUpperCase() }), "data-test": "acmi-leg-origin" }), jsxRuntime.jsx(Input, { id: `${leg.id}-destination`, size: "sm", label: "To", maxLength: 4, value: leg.destination, onChange: (event) => updateLeg(leg.id, { destination: event.target.value.toUpperCase() }), "data-test": "acmi-leg-destination" }), jsxRuntime.jsx(Input, { id: `${leg.id}-flight-time`, size: "sm", type: "number", step: "0.1", label: "Flight time (h, optional)", value: leg.flightTime, onChange: (event) => updateLeg(leg.id, { flightTime: event.target.value }), "data-test": "acmi-leg-flight-time" }), jsxRuntime.jsx(Button, { variant: "ghost", size: "sm", square: true, "aria-label": `Remove leg ${index + 1}`, disabled: inputs.legs.length === 1, onClick: () => removeLeg(leg.id), "data-test": "acmi-remove-leg", children: jsxRuntime.jsx(TrashIcon$2, { size: 16 }) })] }, leg.id))) }), jsxRuntime.jsxs("div", { className: styles$14.actions, children: [jsxRuntime.jsx(Button, { variant: "outline", size: "sm", leftIcon: jsxRuntime.jsx(PlusIcon$2, { size: 16 }), onClick: addLeg, "data-test": "acmi-add-leg", children: "Add Flight Leg" }), jsxRuntime.jsx(Button, { size: "sm", loading: calculating, onClick: calculate, "data-test": "acmi-calculate", children: calculating ? 'Calculating' : 'Calculate Quote' }), result && onSubmitForApproval && (jsxRuntime.jsx(Button, { variant: "secondary", size: "sm", onClick: () => onSubmitForApproval(inputs), "data-test": "acmi-submit-approval", children: "Use This Total" }))] })] })] }), result && (jsxRuntime.jsxs("section", { className: styles$14.results, "aria-label": "Quote summary", "data-test": "acmi-results", children: [jsxRuntime.jsx("h3", { className: styles$14.panelTitle, children: "Quote Summary" }), jsxRuntime.jsxs("dl", { className: styles$14.resultGrid, children: [jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("dt", { children: "Operating Subtotal" }), jsxRuntime.jsx("dd", { children: currency.format(result.operatingSubtotal) })] }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("dt", { children: "Markup Applied" }), jsxRuntime.jsx("dd", { children: currency.format(result.markupAmount) })] }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("dt", { children: "Insurance (Flat Fee)" }), jsxRuntime.jsx("dd", { children: currency.format(result.insuranceAmount) })] }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("dt", { children: "Pre-Tax Total" }), jsxRuntime.jsx("dd", { children: currency.format(result.preTaxTotal) })] }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("dt", { children: "Federal Excise Tax" }), jsxRuntime.jsx("dd", { children: currency.format(result.fet) })] }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("dt", { children: "Segment Fees" }), jsxRuntime.jsx("dd", { children: currency.format(result.segmentFees) })] })] }), jsxRuntime.jsxs("p", { className: styles$14.finalPrice, "data-test": "acmi-final-price", children: [jsxRuntime.jsx("span", { children: "Total Quoted Price" }), jsxRuntime.jsx("strong", { children: currency.format(result.finalPrice) })] }), result.pricingDetails && (jsxRuntime.jsxs("dl", { className: styles$14.contractFacts, "data-test": "acmi-pricing-details", children: [jsxRuntime.jsxs("div", { "data-test": "acmi-ferry-floor", children: [jsxRuntime.jsx("dt", { children: "Ferry block time" }), jsxRuntime.jsxs("dd", { children: [result.pricingDetails.ferryBlockHours.toFixed(2), " h", result.pricingDetails.ferryMinimumHours
3213
+ ], value: leg.type ?? 'live', onChange: (event) => updateLeg(leg.id, { type: event.target.value }), "data-test": "acmi-leg-type" })), jsxRuntime.jsx(Input, { id: `${leg.id}-origin`, size: "sm", label: "From", maxLength: 4, value: leg.origin, onChange: (event) => updateLeg(leg.id, { origin: event.target.value.toUpperCase() }), "data-test": "acmi-leg-origin" }), jsxRuntime.jsx(Input, { id: `${leg.id}-destination`, size: "sm", label: "To", maxLength: 4, value: leg.destination, onChange: (event) => updateLeg(leg.id, { destination: event.target.value.toUpperCase() }), "data-test": "acmi-leg-destination" }), jsxRuntime.jsx(Input, { id: `${leg.id}-flight-time`, size: "sm", type: "number", step: "0.1", label: "Flight time (h, optional)", value: leg.flightTime, onChange: (event) => updateLeg(leg.id, { flightTime: event.target.value }), "data-test": "acmi-leg-flight-time" }), jsxRuntime.jsx(Button, { variant: "ghost", size: "sm", square: true, "aria-label": `Remove leg ${index + 1}`, disabled: inputs.legs.length === 1, onClick: () => removeLeg(leg.id), "data-test": "acmi-remove-leg", children: jsxRuntime.jsx(TrashIcon$2, { size: 16 }) })] }, leg.id))) }), jsxRuntime.jsxs("div", { className: styles$15.actions, children: [jsxRuntime.jsx(Button, { variant: "outline", size: "sm", leftIcon: jsxRuntime.jsx(PlusIcon$2, { size: 16 }), onClick: addLeg, "data-test": "acmi-add-leg", children: "Add Flight Leg" }), jsxRuntime.jsx(Button, { size: "sm", loading: calculating, onClick: calculate, "data-test": "acmi-calculate", children: calculating ? 'Calculating' : 'Calculate Quote' }), result && onSubmitForApproval && (jsxRuntime.jsx(Button, { variant: "secondary", size: "sm", onClick: () => onSubmitForApproval(inputs), "data-test": "acmi-submit-approval", children: "Use This Total" }))] })] })] }), result && (jsxRuntime.jsxs("section", { className: styles$15.results, "aria-label": "Quote summary", "data-test": "acmi-results", children: [jsxRuntime.jsx("h3", { className: styles$15.panelTitle, children: "Quote Summary" }), jsxRuntime.jsxs("dl", { className: styles$15.resultGrid, children: [jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("dt", { children: "Operating Subtotal" }), jsxRuntime.jsx("dd", { children: currency.format(result.operatingSubtotal) })] }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("dt", { children: "Markup Applied" }), jsxRuntime.jsx("dd", { children: currency.format(result.markupAmount) })] }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("dt", { children: "Insurance (Flat Fee)" }), jsxRuntime.jsx("dd", { children: currency.format(result.insuranceAmount) })] }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("dt", { children: "Pre-Tax Total" }), jsxRuntime.jsx("dd", { children: currency.format(result.preTaxTotal) })] }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("dt", { children: "Federal Excise Tax" }), jsxRuntime.jsx("dd", { children: currency.format(result.fet) })] }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("dt", { children: "Segment Fees" }), jsxRuntime.jsx("dd", { children: currency.format(result.segmentFees) })] })] }), jsxRuntime.jsxs("p", { className: styles$15.finalPrice, "data-test": "acmi-final-price", children: [jsxRuntime.jsx("span", { children: "Total Quoted Price" }), jsxRuntime.jsx("strong", { children: currency.format(result.finalPrice) })] }), result.pricingDetails && (jsxRuntime.jsxs("dl", { className: styles$15.contractFacts, "data-test": "acmi-pricing-details", children: [jsxRuntime.jsxs("div", { "data-test": "acmi-ferry-floor", children: [jsxRuntime.jsx("dt", { children: "Ferry block time" }), jsxRuntime.jsxs("dd", { children: [result.pricingDetails.ferryBlockHours.toFixed(2), " h", result.pricingDetails.ferryMinimumHours
3166
3214
  ? ` · ${result.pricingDetails.ferryMinimumHours.toFixed(2)} h minimum per estimated SkyWest ferry leg`
3167
- : ''] })] }), jsxRuntime.jsxs("div", { "data-test": "acmi-fuel-buffer", children: [jsxRuntime.jsx("dt", { children: "Fuel buffer" }), jsxRuntime.jsxs("dd", { children: [(result.pricingDetails.fuelBufferPercent * 100).toFixed(0), "% \u00B7 ", currency.format(result.pricingDetails.fuelBufferAmount)] })] }), jsxRuntime.jsxs("div", { "data-test": "acmi-screening", children: [jsxRuntime.jsx("dt", { children: "Security screening" }), jsxRuntime.jsx("dd", { children: currency.format(result.pricingDetails.screeningAmount) })] })] })), result.legs && result.legs.length > 0 && (jsxRuntime.jsxs("div", { className: styles$14.pricedLegs, "data-test": "acmi-priced-legs", children: [jsxRuntime.jsx("h4", { children: "Backend-priced itinerary" }), jsxRuntime.jsxs("div", { className: styles$14.pricedLegHeader, "aria-hidden": "true", children: [jsxRuntime.jsx("span", { children: "Leg" }), jsxRuntime.jsx("span", { children: "Type" }), jsxRuntime.jsx("span", { children: "Block" }), jsxRuntime.jsx("span", { children: "Total" })] }), result.legs.map((leg) => (jsxRuntime.jsxs("div", { className: styles$14.pricedLeg, "data-test": "acmi-priced-leg", children: [jsxRuntime.jsxs("span", { children: [leg.origin, " \u2192 ", leg.destination] }), jsxRuntime.jsx("span", { "data-test": "acmi-priced-leg-type", children: leg.type === 'ferry' ? 'Ferry' : 'Live' }), jsxRuntime.jsxs("span", { "data-test": "acmi-priced-leg-block", children: [leg.blockHours.toFixed(2), " h"] }), jsxRuntime.jsx("span", { children: currency.format(leg.total) })] }, leg.id)))] }))] }))] }));
3215
+ : ''] })] }), jsxRuntime.jsxs("div", { "data-test": "acmi-fuel-buffer", children: [jsxRuntime.jsx("dt", { children: "Fuel buffer" }), jsxRuntime.jsxs("dd", { children: [(result.pricingDetails.fuelBufferPercent * 100).toFixed(0), "% \u00B7 ", currency.format(result.pricingDetails.fuelBufferAmount)] })] }), jsxRuntime.jsxs("div", { "data-test": "acmi-screening", children: [jsxRuntime.jsx("dt", { children: "Security screening" }), jsxRuntime.jsx("dd", { children: currency.format(result.pricingDetails.screeningAmount) })] })] })), result.legs && result.legs.length > 0 && (jsxRuntime.jsxs("div", { className: styles$15.pricedLegs, "data-test": "acmi-priced-legs", children: [jsxRuntime.jsx("h4", { children: "Backend-priced itinerary" }), jsxRuntime.jsxs("div", { className: styles$15.pricedLegHeader, "aria-hidden": "true", children: [jsxRuntime.jsx("span", { children: "Leg" }), jsxRuntime.jsx("span", { children: "Type" }), jsxRuntime.jsx("span", { children: "Block" }), jsxRuntime.jsx("span", { children: "Total" })] }), result.legs.map((leg) => (jsxRuntime.jsxs("div", { className: styles$15.pricedLeg, "data-test": "acmi-priced-leg", children: [jsxRuntime.jsxs("span", { children: [leg.origin, " \u2192 ", leg.destination] }), jsxRuntime.jsx("span", { "data-test": "acmi-priced-leg-type", children: leg.type === 'ferry' ? 'Ferry' : 'Live' }), jsxRuntime.jsxs("span", { "data-test": "acmi-priced-leg-block", children: [leg.blockHours.toFixed(2), " h"] }), jsxRuntime.jsx("span", { children: currency.format(leg.total) })] }, leg.id)))] }))] }))] }));
3168
3216
  };
3169
3217
  AcmiQuoteCalculator.displayName = 'AcmiQuoteCalculator';
3170
3218
 
3171
- var styles$13 = {"wrapper":"AgentGroupTravelRequestsTable-module_wrapper__xKyhF","toolbar":"AgentGroupTravelRequestsTable-module_toolbar__VMiqx","showHideAll":"AgentGroupTravelRequestsTable-module_showHideAll__t6kBh","filters":"AgentGroupTravelRequestsTable-module_filters__c1W6C","filterField":"AgentGroupTravelRequestsTable-module_filterField__n9Qu8","tableScroll":"AgentGroupTravelRequestsTable-module_tableScroll__-rt-g","table":"AgentGroupTravelRequestsTable-module_table__Yb4lC","colExpand":"AgentGroupTravelRequestsTable-module_colExpand__WcfMW","colDelete":"AgentGroupTravelRequestsTable-module_colDelete__Yi5vY","colDate":"AgentGroupTravelRequestsTable-module_colDate__XyzfB","accountRow":"AgentGroupTravelRequestsTable-module_accountRow__4bDJV","requestRow":"AgentGroupTravelRequestsTable-module_requestRow__UJ5Mm","empty":"AgentGroupTravelRequestsTable-module_empty__XemcW","expander":"AgentGroupTravelRequestsTable-module_expander__fNedP","iconButton":"AgentGroupTravelRequestsTable-module_iconButton__2Yu4i","muted":"AgentGroupTravelRequestsTable-module_muted__Dy5as","idLink":"AgentGroupTravelRequestsTable-module_idLink__sEuEa","hasNotes":"AgentGroupTravelRequestsTable-module_hasNotes__W4TlG","startSoon":"AgentGroupTravelRequestsTable-module_startSoon__cbWHx","dueStatus":"AgentGroupTravelRequestsTable-module_dueStatus__E0FBZ","dueGreen":"AgentGroupTravelRequestsTable-module_dueGreen__5mSLo","dueRed":"AgentGroupTravelRequestsTable-module_dueRed__qgngM","dueGray":"AgentGroupTravelRequestsTable-module_dueGray__xH3dv","pnrButton":"AgentGroupTravelRequestsTable-module_pnrButton__5VKxA","pnrGreen":"AgentGroupTravelRequestsTable-module_pnrGreen__aBwwW","pnrBlue":"AgentGroupTravelRequestsTable-module_pnrBlue__gta71","pnrGray":"AgentGroupTravelRequestsTable-module_pnrGray__-SLa0","deleteButton":"AgentGroupTravelRequestsTable-module_deleteButton__oeLl9","subPnrRow":"AgentGroupTravelRequestsTable-module_subPnrRow__z8ctM","subPnrPanel":"AgentGroupTravelRequestsTable-module_subPnrPanel__jf5pq","legend":"AgentGroupTravelRequestsTable-module_legend__Wr9jV"};
3219
+ var styles$14 = {"wrapper":"AgentGroupTravelRequestsTable-module_wrapper__xKyhF","toolbar":"AgentGroupTravelRequestsTable-module_toolbar__VMiqx","showHideAll":"AgentGroupTravelRequestsTable-module_showHideAll__t6kBh","filters":"AgentGroupTravelRequestsTable-module_filters__c1W6C","filterField":"AgentGroupTravelRequestsTable-module_filterField__n9Qu8","tableScroll":"AgentGroupTravelRequestsTable-module_tableScroll__-rt-g","table":"AgentGroupTravelRequestsTable-module_table__Yb4lC","colExpand":"AgentGroupTravelRequestsTable-module_colExpand__WcfMW","colDelete":"AgentGroupTravelRequestsTable-module_colDelete__Yi5vY","colDate":"AgentGroupTravelRequestsTable-module_colDate__XyzfB","accountRow":"AgentGroupTravelRequestsTable-module_accountRow__4bDJV","requestRow":"AgentGroupTravelRequestsTable-module_requestRow__UJ5Mm","empty":"AgentGroupTravelRequestsTable-module_empty__XemcW","expander":"AgentGroupTravelRequestsTable-module_expander__fNedP","iconButton":"AgentGroupTravelRequestsTable-module_iconButton__2Yu4i","muted":"AgentGroupTravelRequestsTable-module_muted__Dy5as","idLink":"AgentGroupTravelRequestsTable-module_idLink__sEuEa","hasNotes":"AgentGroupTravelRequestsTable-module_hasNotes__W4TlG","startSoon":"AgentGroupTravelRequestsTable-module_startSoon__cbWHx","dueStatus":"AgentGroupTravelRequestsTable-module_dueStatus__E0FBZ","dueGreen":"AgentGroupTravelRequestsTable-module_dueGreen__5mSLo","dueRed":"AgentGroupTravelRequestsTable-module_dueRed__qgngM","dueGray":"AgentGroupTravelRequestsTable-module_dueGray__xH3dv","pnrButton":"AgentGroupTravelRequestsTable-module_pnrButton__5VKxA","pnrGreen":"AgentGroupTravelRequestsTable-module_pnrGreen__aBwwW","pnrBlue":"AgentGroupTravelRequestsTable-module_pnrBlue__gta71","pnrGray":"AgentGroupTravelRequestsTable-module_pnrGray__-SLa0","deleteButton":"AgentGroupTravelRequestsTable-module_deleteButton__oeLl9","subPnrRow":"AgentGroupTravelRequestsTable-module_subPnrRow__z8ctM","subPnrPanel":"AgentGroupTravelRequestsTable-module_subPnrPanel__jf5pq","legend":"AgentGroupTravelRequestsTable-module_legend__Wr9jV"};
3172
3220
 
3173
3221
  const PNR_PLACEHOLDER = '111111';
3174
3222
  const COLUMN_COUNT = 19;
@@ -3225,18 +3273,18 @@ const computeTravelTypeCodes = (request) => {
3225
3273
  codes.push(request.groupHotel ? 'GH' : 'H');
3226
3274
  return codes;
3227
3275
  };
3228
- const DUE_TONE_CLASS = { green: styles$13.dueGreen, red: styles$13.dueRed, gray: styles$13.dueGray };
3229
- const PNR_TONE_CLASS = { green: styles$13.pnrGreen, blue: styles$13.pnrBlue, gray: styles$13.pnrGray };
3276
+ const DUE_TONE_CLASS = { green: styles$14.dueGreen, red: styles$14.dueRed, gray: styles$14.dueGray };
3277
+ const PNR_TONE_CLASS = { green: styles$14.pnrGreen, blue: styles$14.pnrBlue, gray: styles$14.pnrGray };
3230
3278
  const DueStatusCell = ({ status, today, onToggle, }) => {
3231
3279
  const tone = dueStatusTone(status, today);
3232
3280
  const canToggle = Boolean(onToggle) && (Boolean(status.dueDate) || status.complete);
3233
3281
  const label = status.dueDate ? formatShortDate$1(status.dueDate) : status.complete ? 'Complete' : '—';
3234
- const className = [styles$13.dueStatus, DUE_TONE_CLASS[tone]].join(' ');
3282
+ const className = [styles$14.dueStatus, DUE_TONE_CLASS[tone]].join(' ');
3235
3283
  if (!canToggle)
3236
3284
  return jsxRuntime.jsx("span", { className: className, children: label });
3237
3285
  return (jsxRuntime.jsx("button", { type: "button", className: className, onClick: onToggle, title: "Click to toggle complete", children: label }));
3238
3286
  };
3239
- const PnrButton = ({ label, tone, onClick, dataTest, }) => (jsxRuntime.jsx("button", { type: "button", className: [styles$13.pnrButton, PNR_TONE_CLASS[tone]].join(' '), title: "Click to copy", onClick: onClick, "data-test": dataTest, children: label }));
3287
+ const PnrButton = ({ label, tone, onClick, dataTest, }) => (jsxRuntime.jsx("button", { type: "button", className: [styles$14.pnrButton, PNR_TONE_CLASS[tone]].join(' '), title: "Click to copy", onClick: onClick, "data-test": dataTest, children: label }));
3240
3288
  /** Hub's agent-facing list of open Group Travel Requests, grouped by school, one row per PNR group. */
3241
3289
  const AgentGroupTravelRequestsTable = ({ requests, sports = [], views = [], today = new Date().toISOString().slice(0, 10), onOpenRequest, onViewMasterTrip, onDeleteRequest, onCopyPnr, onToggleDueStatus, onSubmittedDateChange, onQuoteSentDateChange, className = '', }) => {
3242
3290
  const [sportFilter, setSportFilter] = React.useState('');
@@ -3291,15 +3339,15 @@ const AgentGroupTravelRequestsTable = ({ requests, sports = [], views = [], toda
3291
3339
  setDateEdits((current) => ({ ...current, [id]: { ...current[id], submittedDate: value } }));
3292
3340
  onSubmittedDateChange?.(id, value);
3293
3341
  };
3294
- return (jsxRuntime.jsxs("div", { className: [styles$13.wrapper, className].filter(Boolean).join(' '), "data-test": "agent-gtr-table", children: [jsxRuntime.jsxs("div", { className: styles$13.toolbar, children: [jsxRuntime.jsxs("button", { type: "button", className: styles$13.showHideAll, title: "Show/Hide all PNRs", onClick: toggleExpandAll, disabled: multiPnrIds.length === 0, "data-test": "agent-gtr-toggle-all", children: [allExpanded ? jsxRuntime.jsx(ChevronUpIcon, { size: 16 }) : jsxRuntime.jsx(ChevronDownIcon$1, { size: 16 }), jsxRuntime.jsx("span", { children: allExpanded ? 'Collapse all PNRs' : 'Expand all PNRs' })] }), jsxRuntime.jsxs("div", { className: styles$13.filters, children: [jsxRuntime.jsxs("label", { className: styles$13.filterField, children: [jsxRuntime.jsx("span", { children: "Filter by sport" }), jsxRuntime.jsxs("select", { value: sportFilter, onChange: (event) => setSportFilter(event.target.value), "data-test": "agent-gtr-sport-filter", children: [jsxRuntime.jsx("option", { value: "", children: "All Sports" }), sports.map((sport) => (jsxRuntime.jsx("option", { value: sport.code, children: sport.label }, sport.code)))] })] }), views.length > 0 && (jsxRuntime.jsxs("label", { className: styles$13.filterField, children: [jsxRuntime.jsx("span", { children: "Filter by view" }), jsxRuntime.jsxs("select", { value: viewFilter, onChange: (event) => setViewFilter(event.target.value), "data-test": "agent-gtr-view-filter", children: [jsxRuntime.jsx("option", { value: "", children: "All Accounts" }), views.map((view) => (jsxRuntime.jsx("option", { value: view.id, children: view.label }, view.id)))] })] }))] })] }), jsxRuntime.jsx("div", { className: styles$13.tableScroll, children: jsxRuntime.jsxs("table", { className: styles$13.table, children: [jsxRuntime.jsx("thead", { children: jsxRuntime.jsxs("tr", { children: [jsxRuntime.jsx("th", { className: styles$13.colExpand, children: jsxRuntime.jsx("span", { className: "sr-only", children: "Expand" }) }), jsxRuntime.jsx("th", { children: "Source" }), jsxRuntime.jsx("th", { children: "Master Trip" }), jsxRuntime.jsx("th", { children: "ID" }), jsxRuntime.jsx("th", { children: "Start Date" }), jsxRuntime.jsx("th", { children: "Name" }), jsxRuntime.jsx("th", { children: "Sport" }), jsxRuntime.jsxs("th", { children: [jsxRuntime.jsx(PlaneIcon$3, { size: 16 }), jsxRuntime.jsx("span", { className: "sr-only", children: "Carrier" })] }), jsxRuntime.jsx("th", { children: "Routing" }), jsxRuntime.jsx("th", { children: "Submitted" }), jsxRuntime.jsx("th", { children: "Type" }), jsxRuntime.jsx("th", { children: "Quote Sent" }), jsxRuntime.jsx("th", { children: "Confirmation" }), jsxRuntime.jsx("th", { children: "Deposit" }), jsxRuntime.jsx("th", { children: "Utilization" }), jsxRuntime.jsx("th", { children: "Names" }), jsxRuntime.jsx("th", { children: "Ticketing" }), jsxRuntime.jsx("th", { children: "PNR" }), jsxRuntime.jsx("th", { className: styles$13.colDelete, children: jsxRuntime.jsx("span", { className: "sr-only", children: "Delete" }) })] }) }), jsxRuntime.jsxs("tbody", { children: [!groups.length && (jsxRuntime.jsx("tr", { children: jsxRuntime.jsx("td", { colSpan: COLUMN_COUNT, className: styles$13.empty, "data-test": "agent-gtr-empty", children: "No open group travel requests match these filters." }) })), groups.map((group) => (jsxRuntime.jsxs(React.Fragment, { children: [jsxRuntime.jsx("tr", { className: styles$13.accountRow, children: jsxRuntime.jsx("td", { colSpan: COLUMN_COUNT, children: group.accountName }) }), group.items.map((request) => {
3342
+ return (jsxRuntime.jsxs("div", { className: [styles$14.wrapper, className].filter(Boolean).join(' '), "data-test": "agent-gtr-table", children: [jsxRuntime.jsxs("div", { className: styles$14.toolbar, children: [jsxRuntime.jsxs("button", { type: "button", className: styles$14.showHideAll, title: "Show/Hide all PNRs", onClick: toggleExpandAll, disabled: multiPnrIds.length === 0, "data-test": "agent-gtr-toggle-all", children: [allExpanded ? jsxRuntime.jsx(ChevronUpIcon, { size: 16 }) : jsxRuntime.jsx(ChevronDownIcon$1, { size: 16 }), jsxRuntime.jsx("span", { children: allExpanded ? 'Collapse all PNRs' : 'Expand all PNRs' })] }), jsxRuntime.jsxs("div", { className: styles$14.filters, children: [jsxRuntime.jsxs("label", { className: styles$14.filterField, children: [jsxRuntime.jsx("span", { children: "Filter by sport" }), jsxRuntime.jsxs("select", { value: sportFilter, onChange: (event) => setSportFilter(event.target.value), "data-test": "agent-gtr-sport-filter", children: [jsxRuntime.jsx("option", { value: "", children: "All Sports" }), sports.map((sport) => (jsxRuntime.jsx("option", { value: sport.code, children: sport.label }, sport.code)))] })] }), views.length > 0 && (jsxRuntime.jsxs("label", { className: styles$14.filterField, children: [jsxRuntime.jsx("span", { children: "Filter by view" }), jsxRuntime.jsxs("select", { value: viewFilter, onChange: (event) => setViewFilter(event.target.value), "data-test": "agent-gtr-view-filter", children: [jsxRuntime.jsx("option", { value: "", children: "All Accounts" }), views.map((view) => (jsxRuntime.jsx("option", { value: view.id, children: view.label }, view.id)))] })] }))] })] }), jsxRuntime.jsx("div", { className: styles$14.tableScroll, children: jsxRuntime.jsxs("table", { className: styles$14.table, children: [jsxRuntime.jsx("thead", { children: jsxRuntime.jsxs("tr", { children: [jsxRuntime.jsx("th", { className: styles$14.colExpand, children: jsxRuntime.jsx("span", { className: "sr-only", children: "Expand" }) }), jsxRuntime.jsx("th", { children: "Source" }), jsxRuntime.jsx("th", { children: "Master Trip" }), jsxRuntime.jsx("th", { children: "ID" }), jsxRuntime.jsx("th", { children: "Start Date" }), jsxRuntime.jsx("th", { children: "Name" }), jsxRuntime.jsx("th", { children: "Sport" }), jsxRuntime.jsxs("th", { children: [jsxRuntime.jsx(PlaneIcon$3, { size: 16 }), jsxRuntime.jsx("span", { className: "sr-only", children: "Carrier" })] }), jsxRuntime.jsx("th", { children: "Routing" }), jsxRuntime.jsx("th", { children: "Submitted" }), jsxRuntime.jsx("th", { children: "Type" }), jsxRuntime.jsx("th", { children: "Quote Sent" }), jsxRuntime.jsx("th", { children: "Confirmation" }), jsxRuntime.jsx("th", { children: "Deposit" }), jsxRuntime.jsx("th", { children: "Utilization" }), jsxRuntime.jsx("th", { children: "Names" }), jsxRuntime.jsx("th", { children: "Ticketing" }), jsxRuntime.jsx("th", { children: "PNR" }), jsxRuntime.jsx("th", { className: styles$14.colDelete, children: jsxRuntime.jsx("span", { className: "sr-only", children: "Delete" }) })] }) }), jsxRuntime.jsxs("tbody", { children: [!groups.length && (jsxRuntime.jsx("tr", { children: jsxRuntime.jsx("td", { colSpan: COLUMN_COUNT, className: styles$14.empty, "data-test": "agent-gtr-empty", children: "No open group travel requests match these filters." }) })), groups.map((group) => (jsxRuntime.jsxs(React.Fragment, { children: [jsxRuntime.jsx("tr", { className: styles$14.accountRow, children: jsxRuntime.jsx("td", { colSpan: COLUMN_COUNT, children: group.accountName }) }), group.items.map((request) => {
3295
3343
  const isMulti = request.pnrs.length > 1;
3296
3344
  const isExpanded = expandedIds.has(request.id);
3297
3345
  const startSoon = daysUntil(request.startDate, today) < 8;
3298
- return (jsxRuntime.jsxs(React.Fragment, { children: [jsxRuntime.jsxs("tr", { className: styles$13.requestRow, "data-test": "agent-gtr-row", children: [jsxRuntime.jsx("td", { className: styles$13.colExpand, children: isMulti && (jsxRuntime.jsx("button", { type: "button", className: styles$13.expander, "aria-expanded": isExpanded, "aria-label": `${isExpanded ? 'Collapse' : 'Expand'} PNRs for ${request.name}`, onClick: () => toggleExpanded(request.id), "data-test": "agent-gtr-expand-row", children: isExpanded ? jsxRuntime.jsx(ChevronDownIcon$1, { size: 16 }) : jsxRuntime.jsx(ChevronRightIcon$1, { size: 16 }) })) }), jsxRuntime.jsx("td", { children: request.source === 'client' ? 'C' : 'A' }), jsxRuntime.jsx("td", { children: request.masterTripId ? (jsxRuntime.jsx("button", { type: "button", className: styles$13.iconButton, "aria-label": `View master trip ${request.masterTripId}`, title: `View Master Trip ${request.masterTripId}`, onClick: () => onViewMasterTrip?.(request.masterTripId), children: jsxRuntime.jsx(SearchIcon$1, { size: 16 }) })) : (jsxRuntime.jsx("span", { className: styles$13.muted, children: "\u2014" })) }), jsxRuntime.jsx("td", { children: jsxRuntime.jsx("button", { type: "button", className: [styles$13.idLink, request.notes ? styles$13.hasNotes : ''].filter(Boolean).join(' '), title: request.notes || undefined, onClick: () => onOpenRequest?.(request.id), "data-test": "agent-gtr-open-request", children: request.id }) }), jsxRuntime.jsx("td", { className: startSoon ? styles$13.startSoon : '', children: formatShortDate$1(request.startDate) }), jsxRuntime.jsx("td", { children: truncate(request.name) }), jsxRuntime.jsx("td", { children: truncate(request.sport) }), jsxRuntime.jsx("td", { children: isMulti ? 'Multi' : request.carrier || '' }), jsxRuntime.jsx("td", { children: isMulti ? 'Multi' : request.routing }), jsxRuntime.jsx("td", { className: styles$13.colDate, children: jsxRuntime.jsx(Datepicker, { "aria-label": `Submitted date for request ${request.id}`, size: "sm", value: dateEdits[request.id]?.submittedDate ?? request.submittedDate ?? '', onChange: (event) => handleSubmittedDateChange(request.id, event.target.value), "data-test": "agent-gtr-submitted-date" }) }), jsxRuntime.jsx("td", { children: computeTravelTypeCodes(request).join(', ') }), jsxRuntime.jsx("td", { className: styles$13.colDate, children: jsxRuntime.jsx(Datepicker, { "aria-label": `Quote sent date for request ${request.id}`, size: "sm", value: dateEdits[request.id]?.quoteSentDate ?? request.quoteSentDate ?? '', onChange: (event) => handleQuoteSentDateChange(request.id, event.target.value), "data-test": "agent-gtr-quote-sent-date" }) }), DUE_FIELDS.map(({ field }) => (jsxRuntime.jsx("td", { children: jsxRuntime.jsx(DueStatusCell, { status: request[field], today: today, onToggle: onToggleDueStatus ? () => onToggleDueStatus(request.id, field) : undefined }) }, field))), jsxRuntime.jsx("td", { children: isMulti ? (jsxRuntime.jsx(PnrButton, { label: "Multi", tone: groupPnrTone(request.pnrs), onClick: () => toggleExpanded(request.id), dataTest: "agent-gtr-pnr-multi" })) : (jsxRuntime.jsx(PnrButton, { label: request.pnrs[0].recordLocator.toUpperCase(), tone: pnrTone(request.pnrs[0]), onClick: () => handleCopyPnr(request.pnrs[0].recordLocator), dataTest: "agent-gtr-pnr" })) }), jsxRuntime.jsx("td", { className: styles$13.colDelete, children: !isMulti && onDeleteRequest && (jsxRuntime.jsx("button", { type: "button", className: styles$13.deleteButton, "aria-label": `Delete request ${request.id}`, title: "Click to delete this trip", onClick: () => onDeleteRequest(request.id), "data-test": "agent-gtr-delete", children: jsxRuntime.jsx(TrashIcon$2, { size: 16 }) })) })] }), isMulti && isExpanded && (jsxRuntime.jsx("tr", { className: styles$13.subPnrRow, children: jsxRuntime.jsx("td", { colSpan: COLUMN_COUNT, children: jsxRuntime.jsx("div", { className: styles$13.subPnrPanel, "data-test": "agent-gtr-sub-pnrs", children: request.pnrs.map((pnr) => (jsxRuntime.jsx(PnrButton, { label: pnr.recordLocator.toUpperCase(), tone: pnrTone(pnr), onClick: () => handleCopyPnr(pnr.recordLocator), dataTest: "agent-gtr-sub-pnr" }, pnr.id))) }) }) }))] }, request.id));
3299
- })] }, `account-${group.accountName}`)))] })] }) }), jsxRuntime.jsx("p", { className: styles$13.legend, children: "Types: A - Airline C - Car, H - Hotel" })] }));
3346
+ return (jsxRuntime.jsxs(React.Fragment, { children: [jsxRuntime.jsxs("tr", { className: styles$14.requestRow, "data-test": "agent-gtr-row", children: [jsxRuntime.jsx("td", { className: styles$14.colExpand, children: isMulti && (jsxRuntime.jsx("button", { type: "button", className: styles$14.expander, "aria-expanded": isExpanded, "aria-label": `${isExpanded ? 'Collapse' : 'Expand'} PNRs for ${request.name}`, onClick: () => toggleExpanded(request.id), "data-test": "agent-gtr-expand-row", children: isExpanded ? jsxRuntime.jsx(ChevronDownIcon$1, { size: 16 }) : jsxRuntime.jsx(ChevronRightIcon$1, { size: 16 }) })) }), jsxRuntime.jsx("td", { children: request.source === 'client' ? 'C' : 'A' }), jsxRuntime.jsx("td", { children: request.masterTripId ? (jsxRuntime.jsx("button", { type: "button", className: styles$14.iconButton, "aria-label": `View master trip ${request.masterTripId}`, title: `View Master Trip ${request.masterTripId}`, onClick: () => onViewMasterTrip?.(request.masterTripId), children: jsxRuntime.jsx(SearchIcon$1, { size: 16 }) })) : (jsxRuntime.jsx("span", { className: styles$14.muted, children: "\u2014" })) }), jsxRuntime.jsx("td", { children: jsxRuntime.jsx("button", { type: "button", className: [styles$14.idLink, request.notes ? styles$14.hasNotes : ''].filter(Boolean).join(' '), title: request.notes || undefined, onClick: () => onOpenRequest?.(request.id), "data-test": "agent-gtr-open-request", children: request.id }) }), jsxRuntime.jsx("td", { className: startSoon ? styles$14.startSoon : '', children: formatShortDate$1(request.startDate) }), jsxRuntime.jsx("td", { children: truncate(request.name) }), jsxRuntime.jsx("td", { children: truncate(request.sport) }), jsxRuntime.jsx("td", { children: isMulti ? 'Multi' : request.carrier || '' }), jsxRuntime.jsx("td", { children: isMulti ? 'Multi' : request.routing }), jsxRuntime.jsx("td", { className: styles$14.colDate, children: jsxRuntime.jsx(Datepicker, { "aria-label": `Submitted date for request ${request.id}`, size: "sm", value: dateEdits[request.id]?.submittedDate ?? request.submittedDate ?? '', onChange: (event) => handleSubmittedDateChange(request.id, event.target.value), "data-test": "agent-gtr-submitted-date" }) }), jsxRuntime.jsx("td", { children: computeTravelTypeCodes(request).join(', ') }), jsxRuntime.jsx("td", { className: styles$14.colDate, children: jsxRuntime.jsx(Datepicker, { "aria-label": `Quote sent date for request ${request.id}`, size: "sm", value: dateEdits[request.id]?.quoteSentDate ?? request.quoteSentDate ?? '', onChange: (event) => handleQuoteSentDateChange(request.id, event.target.value), "data-test": "agent-gtr-quote-sent-date" }) }), DUE_FIELDS.map(({ field }) => (jsxRuntime.jsx("td", { children: jsxRuntime.jsx(DueStatusCell, { status: request[field], today: today, onToggle: onToggleDueStatus ? () => onToggleDueStatus(request.id, field) : undefined }) }, field))), jsxRuntime.jsx("td", { children: isMulti ? (jsxRuntime.jsx(PnrButton, { label: "Multi", tone: groupPnrTone(request.pnrs), onClick: () => toggleExpanded(request.id), dataTest: "agent-gtr-pnr-multi" })) : (jsxRuntime.jsx(PnrButton, { label: request.pnrs[0].recordLocator.toUpperCase(), tone: pnrTone(request.pnrs[0]), onClick: () => handleCopyPnr(request.pnrs[0].recordLocator), dataTest: "agent-gtr-pnr" })) }), jsxRuntime.jsx("td", { className: styles$14.colDelete, children: !isMulti && onDeleteRequest && (jsxRuntime.jsx("button", { type: "button", className: styles$14.deleteButton, "aria-label": `Delete request ${request.id}`, title: "Click to delete this trip", onClick: () => onDeleteRequest(request.id), "data-test": "agent-gtr-delete", children: jsxRuntime.jsx(TrashIcon$2, { size: 16 }) })) })] }), isMulti && isExpanded && (jsxRuntime.jsx("tr", { className: styles$14.subPnrRow, children: jsxRuntime.jsx("td", { colSpan: COLUMN_COUNT, children: jsxRuntime.jsx("div", { className: styles$14.subPnrPanel, "data-test": "agent-gtr-sub-pnrs", children: request.pnrs.map((pnr) => (jsxRuntime.jsx(PnrButton, { label: pnr.recordLocator.toUpperCase(), tone: pnrTone(pnr), onClick: () => handleCopyPnr(pnr.recordLocator), dataTest: "agent-gtr-sub-pnr" }, pnr.id))) }) }) }))] }, request.id));
3347
+ })] }, `account-${group.accountName}`)))] })] }) }), jsxRuntime.jsx("p", { className: styles$14.legend, children: "Types: A - Airline C - Car, H - Hotel" })] }));
3300
3348
  };
3301
3349
 
3302
- var styles$12 = {"sidenav":"Sidenav-module_sidenav__9DKVg","expanded":"Sidenav-module_expanded__TfkMs","collapsed":"Sidenav-module_collapsed__xyLkg","toggle":"Sidenav-module_toggle__JCoZu","logoContainer":"Sidenav-module_logoContainer__lLl0-","nav":"Sidenav-module_nav__ZwGrU","navItem":"Sidenav-module_navItem__HhFpj","active":"Sidenav-module_active__-oHUp","icon":"Sidenav-module_icon__7XJWf","label":"Sidenav-module_label__DJDBw","footer":"Sidenav-module_footer__EgrDk"};
3350
+ var styles$13 = {"sidenav":"Sidenav-module_sidenav__9DKVg","expanded":"Sidenav-module_expanded__TfkMs","collapsed":"Sidenav-module_collapsed__xyLkg","toggle":"Sidenav-module_toggle__JCoZu","logoContainer":"Sidenav-module_logoContainer__lLl0-","nav":"Sidenav-module_nav__ZwGrU","navItem":"Sidenav-module_navItem__HhFpj","active":"Sidenav-module_active__-oHUp","icon":"Sidenav-module_icon__7XJWf","label":"Sidenav-module_label__DJDBw","footer":"Sidenav-module_footer__EgrDk"};
3303
3351
 
3304
3352
  /**
3305
3353
  * Sidenav component for main navigation.
@@ -3308,8 +3356,8 @@ var styles$12 = {"sidenav":"Sidenav-module_sidenav__9DKVg","expanded":"Sidenav-m
3308
3356
  const Sidenav = ({ logo, logoCollapsed, items, activeKey, onItemClick, defaultExpanded = true, footer, className = '', ...props }) => {
3309
3357
  const [expanded, setExpanded] = React.useState(defaultExpanded);
3310
3358
  const classNames = [
3311
- styles$12.sidenav,
3312
- expanded ? styles$12.expanded : styles$12.collapsed,
3359
+ styles$13.sidenav,
3360
+ expanded ? styles$13.expanded : styles$13.collapsed,
3313
3361
  className,
3314
3362
  ]
3315
3363
  .filter(Boolean)
@@ -3322,20 +3370,20 @@ const Sidenav = ({ logo, logoCollapsed, items, activeKey, onItemClick, defaultEx
3322
3370
  onItemClick(item.key);
3323
3371
  }
3324
3372
  };
3325
- return (jsxRuntime.jsxs("aside", { className: classNames, ...props, children: [jsxRuntime.jsx("button", { className: styles$12.toggle, onClick: () => setExpanded(!expanded), "aria-label": expanded ? 'Collapse sidebar' : 'Expand sidebar', children: expanded ? (jsxRuntime.jsx(ChevronLeftIcon, { size: 16 })) : (jsxRuntime.jsx(ChevronRightIcon$1, { size: 16 })) }), jsxRuntime.jsx("div", { className: styles$12.logoContainer, children: expanded ? logo : logoCollapsed || logo }), jsxRuntime.jsx("nav", { className: styles$12.nav, children: items.map((item) => {
3373
+ return (jsxRuntime.jsxs("aside", { className: classNames, ...props, children: [jsxRuntime.jsx("button", { className: styles$13.toggle, onClick: () => setExpanded(!expanded), "aria-label": expanded ? 'Collapse sidebar' : 'Expand sidebar', children: expanded ? (jsxRuntime.jsx(ChevronLeftIcon, { size: 16 })) : (jsxRuntime.jsx(ChevronRightIcon$1, { size: 16 })) }), jsxRuntime.jsx("div", { className: styles$13.logoContainer, children: expanded ? logo : logoCollapsed || logo }), jsxRuntime.jsx("nav", { className: styles$13.nav, children: items.map((item) => {
3326
3374
  const isActive = item.key === activeKey;
3327
3375
  const itemClasses = [
3328
- styles$12.navItem,
3329
- isActive ? styles$12.active : '',
3376
+ styles$13.navItem,
3377
+ isActive ? styles$13.active : '',
3330
3378
  ]
3331
3379
  .filter(Boolean)
3332
3380
  .join(' ');
3333
- return (jsxRuntime.jsxs("button", { className: itemClasses, onClick: () => handleItemClick(item), "aria-current": isActive ? 'page' : undefined, title: !expanded ? item.label : undefined, children: [jsxRuntime.jsx("span", { className: styles$12.icon, children: item.icon }), expanded && jsxRuntime.jsx("span", { className: styles$12.label, children: item.label })] }, item.key));
3334
- }) }), footer && jsxRuntime.jsx("div", { className: styles$12.footer, children: footer })] }));
3381
+ return (jsxRuntime.jsxs("button", { className: itemClasses, onClick: () => handleItemClick(item), "aria-current": isActive ? 'page' : undefined, title: !expanded ? item.label : undefined, children: [jsxRuntime.jsx("span", { className: styles$13.icon, children: item.icon }), expanded && jsxRuntime.jsx("span", { className: styles$13.label, children: item.label })] }, item.key));
3382
+ }) }), footer && jsxRuntime.jsx("div", { className: styles$13.footer, children: footer })] }));
3335
3383
  };
3336
3384
  Sidenav.displayName = 'Sidenav';
3337
3385
 
3338
- var styles$11 = {"topbar":"Topbar-module_topbar__U9CDj","left":"Topbar-module_left__m4aap","accountWrapper":"Topbar-module_accountWrapper__5mjDZ","accountSelector":"Topbar-module_accountSelector__iqI--","open":"Topbar-module_open__2Xsp1","accountCode":"Topbar-module_accountCode__KMKWm","accountName":"Topbar-module_accountName__XZYjB","chevron":"Topbar-module_chevron__OSXcD","chevronOpen":"Topbar-module_chevronOpen__jVvEl","dropdown":"Topbar-module_dropdown__fA5Gw","dropdownSearch":"Topbar-module_dropdownSearch__9zqy3","searchIcon":"Topbar-module_searchIcon__sHGnK","searchInput":"Topbar-module_searchInput__1TSc3","dropdownList":"Topbar-module_dropdownList__P4q9b","dropdownItem":"Topbar-module_dropdownItem__w-eHf","selected":"Topbar-module_selected__MylKY","dropdownItemCode":"Topbar-module_dropdownItemCode__cUAn6","dropdownItemName":"Topbar-module_dropdownItemName__MYw3k","noResults":"Topbar-module_noResults__PkNfT","actions":"Topbar-module_actions__KtaiZ"};
3386
+ var styles$12 = {"topbar":"Topbar-module_topbar__U9CDj","left":"Topbar-module_left__m4aap","accountWrapper":"Topbar-module_accountWrapper__5mjDZ","accountSelector":"Topbar-module_accountSelector__iqI--","open":"Topbar-module_open__2Xsp1","accountCode":"Topbar-module_accountCode__KMKWm","accountName":"Topbar-module_accountName__XZYjB","chevron":"Topbar-module_chevron__OSXcD","chevronOpen":"Topbar-module_chevronOpen__jVvEl","dropdown":"Topbar-module_dropdown__fA5Gw","dropdownSearch":"Topbar-module_dropdownSearch__9zqy3","searchIcon":"Topbar-module_searchIcon__sHGnK","searchInput":"Topbar-module_searchInput__1TSc3","dropdownList":"Topbar-module_dropdownList__P4q9b","dropdownItem":"Topbar-module_dropdownItem__w-eHf","selected":"Topbar-module_selected__MylKY","dropdownItemCode":"Topbar-module_dropdownItemCode__cUAn6","dropdownItemName":"Topbar-module_dropdownItemName__MYw3k","noResults":"Topbar-module_noResults__PkNfT","actions":"Topbar-module_actions__KtaiZ"};
3339
3387
 
3340
3388
  /**
3341
3389
  * Topbar component for the main header.
@@ -3346,7 +3394,7 @@ const Topbar = ({ account, accounts, onAccountSelect, onAccountClick, actions, l
3346
3394
  const [searchQuery, setSearchQuery] = React.useState('');
3347
3395
  const dropdownRef = React.useRef(null);
3348
3396
  const searchInputRef = React.useRef(null);
3349
- const classNames = [styles$11.topbar, className].filter(Boolean).join(' ');
3397
+ const classNames = [styles$12.topbar, className].filter(Boolean).join(' ');
3350
3398
  // Close dropdown on outside click
3351
3399
  React.useEffect(() => {
3352
3400
  if (!isOpen)
@@ -3395,27 +3443,27 @@ const Topbar = ({ account, accounts, onAccountSelect, onAccountClick, actions, l
3395
3443
  const filteredAccounts = accounts?.filter(acc => acc.name.toLowerCase().includes(searchQuery.toLowerCase()) ||
3396
3444
  acc.code.toLowerCase().includes(searchQuery.toLowerCase())) || [];
3397
3445
  const hasDropdown = accounts && accounts.length > 0;
3398
- return (jsxRuntime.jsxs("header", { className: classNames, ...props, children: [jsxRuntime.jsxs("div", { className: styles$11.left, children: [leftContent, account && (jsxRuntime.jsxs("div", { className: styles$11.accountWrapper, ref: dropdownRef, children: [jsxRuntime.jsxs("button", { className: `${styles$11.accountSelector} ${isOpen ? styles$11.open : ''}`, onClick: handleToggle, "aria-expanded": isOpen, "aria-haspopup": hasDropdown ? 'listbox' : undefined, children: [jsxRuntime.jsx("span", { className: styles$11.accountCode, children: account.code }), jsxRuntime.jsx("span", { className: styles$11.accountName, children: account.name }), hasDropdown && (jsxRuntime.jsx(ChevronDownIcon$1, { size: 16, className: `${styles$11.chevron} ${isOpen ? styles$11.chevronOpen : ''}` }))] }), isOpen && hasDropdown && (jsxRuntime.jsxs("div", { className: styles$11.dropdown, role: "listbox", children: [jsxRuntime.jsxs("div", { className: styles$11.dropdownSearch, children: [jsxRuntime.jsxs("svg", { className: styles$11.searchIcon, width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [jsxRuntime.jsx("circle", { cx: "11", cy: "11", r: "8" }), jsxRuntime.jsx("line", { x1: "21", y1: "21", x2: "16.65", y2: "16.65" })] }), jsxRuntime.jsx("input", { ref: searchInputRef, type: "text", value: searchQuery, onChange: (e) => setSearchQuery(e.target.value), placeholder: "Search accounts...", className: styles$11.searchInput })] }), jsxRuntime.jsx("div", { className: styles$11.dropdownList, children: filteredAccounts.length > 0 ? (filteredAccounts.map((acc) => (jsxRuntime.jsxs("button", { className: `${styles$11.dropdownItem} ${acc.code === account.code ? styles$11.selected : ''}`, onClick: () => handleSelectAccount(acc), role: "option", "aria-selected": acc.code === account.code, children: [jsxRuntime.jsx("span", { className: styles$11.dropdownItemCode, children: acc.code }), jsxRuntime.jsx("span", { className: styles$11.dropdownItemName, children: acc.name })] }, acc.code)))) : (jsxRuntime.jsx("div", { className: styles$11.noResults, children: "No accounts found" })) })] }))] }))] }), actions && jsxRuntime.jsx("div", { className: styles$11.actions, children: actions })] }));
3446
+ return (jsxRuntime.jsxs("header", { className: classNames, ...props, children: [jsxRuntime.jsxs("div", { className: styles$12.left, children: [leftContent, account && (jsxRuntime.jsxs("div", { className: styles$12.accountWrapper, ref: dropdownRef, children: [jsxRuntime.jsxs("button", { className: `${styles$12.accountSelector} ${isOpen ? styles$12.open : ''}`, onClick: handleToggle, "aria-expanded": isOpen, "aria-haspopup": hasDropdown ? 'listbox' : undefined, children: [jsxRuntime.jsx("span", { className: styles$12.accountCode, children: account.code }), jsxRuntime.jsx("span", { className: styles$12.accountName, children: account.name }), hasDropdown && (jsxRuntime.jsx(ChevronDownIcon$1, { size: 16, className: `${styles$12.chevron} ${isOpen ? styles$12.chevronOpen : ''}` }))] }), isOpen && hasDropdown && (jsxRuntime.jsxs("div", { className: styles$12.dropdown, role: "listbox", children: [jsxRuntime.jsxs("div", { className: styles$12.dropdownSearch, children: [jsxRuntime.jsxs("svg", { className: styles$12.searchIcon, width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [jsxRuntime.jsx("circle", { cx: "11", cy: "11", r: "8" }), jsxRuntime.jsx("line", { x1: "21", y1: "21", x2: "16.65", y2: "16.65" })] }), jsxRuntime.jsx("input", { ref: searchInputRef, type: "text", value: searchQuery, onChange: (e) => setSearchQuery(e.target.value), placeholder: "Search accounts...", className: styles$12.searchInput })] }), jsxRuntime.jsx("div", { className: styles$12.dropdownList, children: filteredAccounts.length > 0 ? (filteredAccounts.map((acc) => (jsxRuntime.jsxs("button", { className: `${styles$12.dropdownItem} ${acc.code === account.code ? styles$12.selected : ''}`, onClick: () => handleSelectAccount(acc), role: "option", "aria-selected": acc.code === account.code, children: [jsxRuntime.jsx("span", { className: styles$12.dropdownItemCode, children: acc.code }), jsxRuntime.jsx("span", { className: styles$12.dropdownItemName, children: acc.name })] }, acc.code)))) : (jsxRuntime.jsx("div", { className: styles$12.noResults, children: "No accounts found" })) })] }))] }))] }), actions && jsxRuntime.jsx("div", { className: styles$12.actions, children: actions })] }));
3399
3447
  };
3400
3448
  Topbar.displayName = 'Topbar';
3401
3449
 
3402
- var styles$10 = {"appLayout":"AppLayout-module_appLayout__NFbZk","mainArea":"AppLayout-module_mainArea__t-6oq","content":"AppLayout-module_content__5kV7S"};
3450
+ var styles$11 = {"appLayout":"AppLayout-module_appLayout__NFbZk","mainArea":"AppLayout-module_mainArea__t-6oq","content":"AppLayout-module_content__5kV7S"};
3403
3451
 
3404
3452
  const AppLayout = ({ navItems = [], activeNavKey, logo, collapsedLogo, account, defaultExpanded = true, onNavItemClick, onAccountClick, children, navFooter, topbarActions, className, }) => {
3405
- return (jsxRuntime.jsxs("div", { className: `${styles$10.appLayout} ${className || ''}`, children: [jsxRuntime.jsx(Sidenav, { items: navItems, activeKey: activeNavKey, defaultExpanded: defaultExpanded, onItemClick: onNavItemClick, logo: logo, logoCollapsed: collapsedLogo, footer: navFooter }), jsxRuntime.jsxs("div", { className: styles$10.mainArea, children: [jsxRuntime.jsx(Topbar, { account: account, onAccountClick: onAccountClick, actions: topbarActions }), jsxRuntime.jsx("main", { className: styles$10.content, children: children })] })] }));
3453
+ return (jsxRuntime.jsxs("div", { className: `${styles$11.appLayout} ${className || ''}`, children: [jsxRuntime.jsx(Sidenav, { items: navItems, activeKey: activeNavKey, defaultExpanded: defaultExpanded, onItemClick: onNavItemClick, logo: logo, logoCollapsed: collapsedLogo, footer: navFooter }), jsxRuntime.jsxs("div", { className: styles$11.mainArea, children: [jsxRuntime.jsx(Topbar, { account: account, onAccountClick: onAccountClick, actions: topbarActions }), jsxRuntime.jsx("main", { className: styles$11.content, children: children })] })] }));
3406
3454
  };
3407
3455
 
3408
- var styles$$ = {"card":"Card-module_card__Ak6-W","default":"Card-module_default__e-M3H","bordered":"Card-module_bordered__pUL4k","elevated":"Card-module_elevated__8f-WS","interactive":"Card-module_interactive__6B4fH","padding-none":"Card-module_padding-none__c1qKN","padding-sm":"Card-module_padding-sm__Uejon","padding-md":"Card-module_padding-md__kR4F9","padding-lg":"Card-module_padding-lg__MleX9","header":"Card-module_header__NiVTV","headerContent":"Card-module_headerContent__LyJRB","title":"Card-module_title__3DN1v","subtitle":"Card-module_subtitle__gE5L-","actions":"Card-module_actions__gHmpq","body":"Card-module_body__BU4oo","footer":"Card-module_footer__zjjTd"};
3456
+ var styles$10 = {"card":"Card-module_card__Ak6-W","default":"Card-module_default__e-M3H","bordered":"Card-module_bordered__pUL4k","elevated":"Card-module_elevated__8f-WS","interactive":"Card-module_interactive__6B4fH","padding-none":"Card-module_padding-none__c1qKN","padding-sm":"Card-module_padding-sm__Uejon","padding-md":"Card-module_padding-md__kR4F9","padding-lg":"Card-module_padding-lg__MleX9","header":"Card-module_header__NiVTV","headerContent":"Card-module_headerContent__LyJRB","title":"Card-module_title__3DN1v","subtitle":"Card-module_subtitle__gE5L-","actions":"Card-module_actions__gHmpq","body":"Card-module_body__BU4oo","footer":"Card-module_footer__zjjTd"};
3409
3457
 
3410
3458
  /**
3411
3459
  * Card component for grouping related content.
3412
3460
  */
3413
3461
  const Card = React.forwardRef(({ variant = 'default', padding = 'md', interactive = false, className = '', children, ...props }, ref) => {
3414
3462
  const classNames = [
3415
- styles$$.card,
3416
- styles$$[variant],
3417
- styles$$[`padding-${padding}`],
3418
- interactive ? styles$$.interactive : '',
3463
+ styles$10.card,
3464
+ styles$10[variant],
3465
+ styles$10[`padding-${padding}`],
3466
+ interactive ? styles$10.interactive : '',
3419
3467
  className,
3420
3468
  ]
3421
3469
  .filter(Boolean)
@@ -3424,22 +3472,22 @@ const Card = React.forwardRef(({ variant = 'default', padding = 'md', interactiv
3424
3472
  });
3425
3473
  Card.displayName = 'Card';
3426
3474
  const CardHeader = ({ title, subtitle, actions, className = '', children, ...props }) => {
3427
- const classNames = [styles$$.header, className].filter(Boolean).join(' ');
3428
- return (jsxRuntime.jsxs("div", { className: classNames, ...props, children: [jsxRuntime.jsxs("div", { className: styles$$.headerContent, children: [title && jsxRuntime.jsx("h3", { className: styles$$.title, children: title }), subtitle && jsxRuntime.jsx("p", { className: styles$$.subtitle, children: subtitle }), children] }), actions && jsxRuntime.jsx("div", { className: styles$$.actions, children: actions })] }));
3475
+ const classNames = [styles$10.header, className].filter(Boolean).join(' ');
3476
+ return (jsxRuntime.jsxs("div", { className: classNames, ...props, children: [jsxRuntime.jsxs("div", { className: styles$10.headerContent, children: [title && jsxRuntime.jsx("h3", { className: styles$10.title, children: title }), subtitle && jsxRuntime.jsx("p", { className: styles$10.subtitle, children: subtitle }), children] }), actions && jsxRuntime.jsx("div", { className: styles$10.actions, children: actions })] }));
3429
3477
  };
3430
3478
  CardHeader.displayName = 'CardHeader';
3431
3479
  const CardBody = ({ className = '', children, ...props }) => {
3432
- const classNames = [styles$$.body, className].filter(Boolean).join(' ');
3480
+ const classNames = [styles$10.body, className].filter(Boolean).join(' ');
3433
3481
  return (jsxRuntime.jsx("div", { className: classNames, ...props, children: children }));
3434
3482
  };
3435
3483
  CardBody.displayName = 'CardBody';
3436
3484
  const CardFooter = ({ className = '', children, ...props }) => {
3437
- const classNames = [styles$$.footer, className].filter(Boolean).join(' ');
3485
+ const classNames = [styles$10.footer, className].filter(Boolean).join(' ');
3438
3486
  return (jsxRuntime.jsx("div", { className: classNames, ...props, children: children }));
3439
3487
  };
3440
3488
  CardFooter.displayName = 'CardFooter';
3441
3489
 
3442
- var styles$_ = {"email":"CharterSourcingEmailPreview-module_email__KlhIq","preheader":"CharterSourcingEmailPreview-module_preheader__04juv","visuallyHidden":"CharterSourcingEmailPreview-module_visuallyHidden__Qgs3N","layoutTable":"CharterSourcingEmailPreview-module_layoutTable__dEH4i","brandCell":"CharterSourcingEmailPreview-module_brandCell__xvKZF","bodyCell":"CharterSourcingEmailPreview-module_bodyCell__glIXA","heading":"CharterSourcingEmailPreview-module_heading__ClFhy","stackCell":"CharterSourcingEmailPreview-module_stackCell__ut6ko","footerCell":"CharterSourcingEmailPreview-module_footerCell__4PwiB"};
3490
+ var styles$$ = {"email":"CharterSourcingEmailPreview-module_email__KlhIq","preheader":"CharterSourcingEmailPreview-module_preheader__04juv","visuallyHidden":"CharterSourcingEmailPreview-module_visuallyHidden__Qgs3N","layoutTable":"CharterSourcingEmailPreview-module_layoutTable__dEH4i","brandCell":"CharterSourcingEmailPreview-module_brandCell__xvKZF","bodyCell":"CharterSourcingEmailPreview-module_bodyCell__glIXA","heading":"CharterSourcingEmailPreview-module_heading__ClFhy","stackCell":"CharterSourcingEmailPreview-module_stackCell__ut6ko","footerCell":"CharterSourcingEmailPreview-module_footerCell__4PwiB"};
3443
3491
 
3444
3492
  const VARIANT_CONTENT = {
3445
3493
  'admin-review': {
@@ -3776,11 +3824,11 @@ const CharterSourcingEmailPreview = (props) => {
3776
3824
  ['Return Date', quote.returnDate],
3777
3825
  ['Submitted By', quote.submittedBy],
3778
3826
  ];
3779
- return (jsxRuntime.jsxs("article", { className: [styles$_.email, styles$_[variant], className].filter(Boolean).join(' '), "aria-labelledby": headingId, "data-test": `charter-sourcing-email-${variant}`, children: [jsxRuntime.jsx("span", { className: styles$_.preheader, "aria-hidden": "true", "data-test": "charter-sourcing-email-preheader", children: content.preheader }), jsxRuntime.jsx("table", { role: "presentation", cellPadding: 0, cellSpacing: 0, border: 0, width: "600", className: styles$_.layoutTable, style: EMAIL_STYLE.layout, "data-test": "charter-sourcing-email-layout", children: jsxRuntime.jsxs("tbody", { children: [jsxRuntime.jsx("tr", { children: jsxRuntime.jsx("td", { className: styles$_.brandCell, style: EMAIL_STYLE.brandCell, children: jsxRuntime.jsx("header", { "data-test": "charter-sourcing-email-brand", children: jsxRuntime.jsx("table", { role: "presentation", cellPadding: 0, cellSpacing: 0, border: 0, width: "100%", children: jsxRuntime.jsx("tbody", { children: jsxRuntime.jsxs("tr", { children: [jsxRuntime.jsx("td", { width: "54", style: { padding: 0, verticalAlign: 'middle' }, children: jsxRuntime.jsx("table", { role: "presentation", cellPadding: 0, cellSpacing: 0, border: 0, width: "42", style: EMAIL_STYLE.brandMarkTable, children: jsxRuntime.jsx("tbody", { children: jsxRuntime.jsx("tr", { children: jsxRuntime.jsx("td", { style: EMAIL_STYLE.brandMarkCell, "aria-hidden": "true", children: jsxRuntime.jsx(PlaneIcon$3, { size: 22 }) }) }) }) }) }), jsxRuntime.jsxs("td", { style: EMAIL_STYLE.brandCopyCell, children: [jsxRuntime.jsx("strong", { style: EMAIL_STYLE.brandName, children: "STM" }), jsxRuntime.jsx("br", {}), jsxRuntime.jsx("span", { style: EMAIL_STYLE.brandProduct, children: "Charters" })] })] }) }) }) }) }) }), jsxRuntime.jsx("tr", { children: jsxRuntime.jsxs("td", { className: styles$_.bodyCell, style: EMAIL_STYLE.bodyCell, "data-test": "charter-sourcing-email-body", children: [jsxRuntime.jsx("table", { role: "presentation", cellPadding: 0, cellSpacing: 0, border: 0, width: "48", style: { ...EMAIL_STYLE.statusTable, backgroundColor: theme.statusBackground }, children: jsxRuntime.jsx("tbody", { children: jsxRuntime.jsx("tr", { children: jsxRuntime.jsx("td", { style: { ...EMAIL_STYLE.statusCell, color: theme.accent }, "aria-hidden": "true", children: jsxRuntime.jsx(StatusIcon, { size: 24 }) }) }) }) }), jsxRuntime.jsx("p", { style: { ...EMAIL_STYLE.eyebrow, color: theme.accent }, "data-test": "charter-sourcing-email-status", children: content.eyebrow }), jsxRuntime.jsx("h1", { id: headingId, className: styles$_.heading, style: EMAIL_STYLE.heading, "data-test": "charter-sourcing-email-heading", children: content.heading }), jsxRuntime.jsx("p", { style: EMAIL_STYLE.greeting, children: "Hello," }), jsxRuntime.jsx("p", { style: EMAIL_STYLE.opening, children: content.opening }), jsxRuntime.jsxs("section", { style: EMAIL_STYLE.summary, "aria-labelledby": summaryHeadingId, children: [jsxRuntime.jsx("table", { role: "presentation", cellPadding: 0, cellSpacing: 0, border: 0, width: "100%", style: EMAIL_STYLE.routeTable, "data-test": "charter-sourcing-email-route", children: jsxRuntime.jsx("tbody", { children: jsxRuntime.jsxs("tr", { children: [jsxRuntime.jsx("td", { className: styles$_.stackCell, style: EMAIL_STYLE.routeLabel, children: "Trip route" }), jsxRuntime.jsx("td", { className: styles$_.stackCell, style: EMAIL_STYLE.routeValue, children: present(route) })] }) }) }), jsxRuntime.jsx("h2", { id: summaryHeadingId, className: styles$_.visuallyHidden, children: "Quote details" }), jsxRuntime.jsx("table", { cellPadding: 0, cellSpacing: 0, border: 0, width: "100%", style: EMAIL_STYLE.detailTable, "aria-labelledby": summaryHeadingId, "data-test": "charter-sourcing-email-summary", children: jsxRuntime.jsxs("tbody", { children: [detailFields.map(([label, value]) => (jsxRuntime.jsxs("tr", { "data-test": "charter-sourcing-email-summary-field", children: [jsxRuntime.jsx("th", { scope: "row", style: EMAIL_STYLE.detailLabel, children: label }), jsxRuntime.jsx("td", { style: EMAIL_STYLE.detailValue, children: present(value) })] }, label))), quote.totalCost !== undefined && (jsxRuntime.jsxs("tr", { "data-test": "charter-sourcing-email-total", children: [jsxRuntime.jsx("th", { scope: "row", style: { ...EMAIL_STYLE.detailLabel, ...EMAIL_STYLE.totalLabel }, children: "Total Cost" }), jsxRuntime.jsx("td", { style: { ...EMAIL_STYLE.detailValue, ...EMAIL_STYLE.totalValue }, children: present(quote.totalCost) })] }))] }) })] }), variant === 'submitter-updated' && (jsxRuntime.jsxs("section", { "data-test": "charter-sourcing-email-changes", children: [jsxRuntime.jsx("h2", { style: EMAIL_STYLE.changesHeading, children: "What changed" }), jsxRuntime.jsxs("table", { cellPadding: 0, cellSpacing: 0, border: 0, width: "100%", style: EMAIL_STYLE.changesTable, children: [jsxRuntime.jsx("caption", { className: styles$_.visuallyHidden, children: "Fields changed by the Charter Sourcing administrator" }), jsxRuntime.jsx("thead", { children: jsxRuntime.jsxs("tr", { children: [jsxRuntime.jsx("th", { scope: "col", style: { ...EMAIL_STYLE.changesHeader, width: '40%' }, children: "Field" }), jsxRuntime.jsx("th", { scope: "col", style: { ...EMAIL_STYLE.changesHeader, width: '30%' }, children: "Previous" }), jsxRuntime.jsx("th", { scope: "col", style: { ...EMAIL_STYLE.changesHeader, width: '30%' }, children: "Updated" })] }) }), jsxRuntime.jsx("tbody", { children: changes.map((change, index) => (jsxRuntime.jsxs("tr", { "data-test": "charter-sourcing-email-change", children: [jsxRuntime.jsx("th", { scope: "row", style: EMAIL_STYLE.changesRowHeader, children: change.label }), jsxRuntime.jsx("td", { style: { ...EMAIL_STYLE.changesValue, ...EMAIL_STYLE.previousValue }, children: present(change.previousValue) }), jsxRuntime.jsx("td", { style: { ...EMAIL_STYLE.changesValue, ...EMAIL_STYLE.updatedValue }, children: present(change.updatedValue) })] }, `${change.label}-${index}`))) })] })] })), jsxRuntime.jsx("table", { role: "presentation", cellPadding: 0, cellSpacing: 0, border: 0, width: "100%", style: EMAIL_STYLE.requestTable, children: jsxRuntime.jsx("tbody", { children: jsxRuntime.jsxs("tr", { children: [jsxRuntime.jsx("td", { className: styles$_.stackCell, style: EMAIL_STYLE.requestLabel, children: "Request ID" }), jsxRuntime.jsx("td", { className: styles$_.stackCell, style: EMAIL_STYLE.requestValue, "data-test": "charter-sourcing-email-request-id", children: present(quote.requestId) })] }) }) }), jsxRuntime.jsxs("p", { style: EMAIL_STYLE.signoff, children: ["Thanks,", jsxRuntime.jsx("br", {}), jsxRuntime.jsx("strong", { children: "STM Charters Team" })] }), testServerOriginalRecipient && (jsxRuntime.jsx("aside", { "data-test": "charter-sourcing-email-test-notice", children: jsxRuntime.jsx("table", { role: "presentation", cellPadding: 0, cellSpacing: 0, border: 0, width: "100%", style: EMAIL_STYLE.noticeTable, children: jsxRuntime.jsx("tbody", { children: jsxRuntime.jsx("tr", { children: jsxRuntime.jsxs("td", { style: EMAIL_STYLE.noticeCell, children: [jsxRuntime.jsx("strong", { children: "Test server delivery" }), jsxRuntime.jsx("br", {}), jsxRuntime.jsx("span", { children: "This message may not represent an actual charter quote." }), jsxRuntime.jsx("br", {}), jsxRuntime.jsxs("span", { children: ["Original recipient: ", testServerOriginalRecipient] })] }) }) }) }) }))] }) }), jsxRuntime.jsx("tr", { children: jsxRuntime.jsx("td", { className: styles$_.footerCell, style: EMAIL_STYLE.footerCell, children: jsxRuntime.jsxs("footer", { "data-test": "charter-sourcing-email-footer", children: [jsxRuntime.jsx("p", { style: EMAIL_STYLE.footerParagraph, children: "This transactional message was sent by STM Charters." }), jsxRuntime.jsx("p", { style: EMAIL_STYLE.footerParagraph, children: "Reply to contact the Charter Sourcing team." })] }) }) })] }) })] }));
3827
+ return (jsxRuntime.jsxs("article", { className: [styles$$.email, styles$$[variant], className].filter(Boolean).join(' '), "aria-labelledby": headingId, "data-test": `charter-sourcing-email-${variant}`, children: [jsxRuntime.jsx("span", { className: styles$$.preheader, "aria-hidden": "true", "data-test": "charter-sourcing-email-preheader", children: content.preheader }), jsxRuntime.jsx("table", { role: "presentation", cellPadding: 0, cellSpacing: 0, border: 0, width: "600", className: styles$$.layoutTable, style: EMAIL_STYLE.layout, "data-test": "charter-sourcing-email-layout", children: jsxRuntime.jsxs("tbody", { children: [jsxRuntime.jsx("tr", { children: jsxRuntime.jsx("td", { className: styles$$.brandCell, style: EMAIL_STYLE.brandCell, children: jsxRuntime.jsx("header", { "data-test": "charter-sourcing-email-brand", children: jsxRuntime.jsx("table", { role: "presentation", cellPadding: 0, cellSpacing: 0, border: 0, width: "100%", children: jsxRuntime.jsx("tbody", { children: jsxRuntime.jsxs("tr", { children: [jsxRuntime.jsx("td", { width: "54", style: { padding: 0, verticalAlign: 'middle' }, children: jsxRuntime.jsx("table", { role: "presentation", cellPadding: 0, cellSpacing: 0, border: 0, width: "42", style: EMAIL_STYLE.brandMarkTable, children: jsxRuntime.jsx("tbody", { children: jsxRuntime.jsx("tr", { children: jsxRuntime.jsx("td", { style: EMAIL_STYLE.brandMarkCell, "aria-hidden": "true", children: jsxRuntime.jsx(PlaneIcon$3, { size: 22 }) }) }) }) }) }), jsxRuntime.jsxs("td", { style: EMAIL_STYLE.brandCopyCell, children: [jsxRuntime.jsx("strong", { style: EMAIL_STYLE.brandName, children: "STM" }), jsxRuntime.jsx("br", {}), jsxRuntime.jsx("span", { style: EMAIL_STYLE.brandProduct, children: "Charters" })] })] }) }) }) }) }) }), jsxRuntime.jsx("tr", { children: jsxRuntime.jsxs("td", { className: styles$$.bodyCell, style: EMAIL_STYLE.bodyCell, "data-test": "charter-sourcing-email-body", children: [jsxRuntime.jsx("table", { role: "presentation", cellPadding: 0, cellSpacing: 0, border: 0, width: "48", style: { ...EMAIL_STYLE.statusTable, backgroundColor: theme.statusBackground }, children: jsxRuntime.jsx("tbody", { children: jsxRuntime.jsx("tr", { children: jsxRuntime.jsx("td", { style: { ...EMAIL_STYLE.statusCell, color: theme.accent }, "aria-hidden": "true", children: jsxRuntime.jsx(StatusIcon, { size: 24 }) }) }) }) }), jsxRuntime.jsx("p", { style: { ...EMAIL_STYLE.eyebrow, color: theme.accent }, "data-test": "charter-sourcing-email-status", children: content.eyebrow }), jsxRuntime.jsx("h1", { id: headingId, className: styles$$.heading, style: EMAIL_STYLE.heading, "data-test": "charter-sourcing-email-heading", children: content.heading }), jsxRuntime.jsx("p", { style: EMAIL_STYLE.greeting, children: "Hello," }), jsxRuntime.jsx("p", { style: EMAIL_STYLE.opening, children: content.opening }), jsxRuntime.jsxs("section", { style: EMAIL_STYLE.summary, "aria-labelledby": summaryHeadingId, children: [jsxRuntime.jsx("table", { role: "presentation", cellPadding: 0, cellSpacing: 0, border: 0, width: "100%", style: EMAIL_STYLE.routeTable, "data-test": "charter-sourcing-email-route", children: jsxRuntime.jsx("tbody", { children: jsxRuntime.jsxs("tr", { children: [jsxRuntime.jsx("td", { className: styles$$.stackCell, style: EMAIL_STYLE.routeLabel, children: "Trip route" }), jsxRuntime.jsx("td", { className: styles$$.stackCell, style: EMAIL_STYLE.routeValue, children: present(route) })] }) }) }), jsxRuntime.jsx("h2", { id: summaryHeadingId, className: styles$$.visuallyHidden, children: "Quote details" }), jsxRuntime.jsx("table", { cellPadding: 0, cellSpacing: 0, border: 0, width: "100%", style: EMAIL_STYLE.detailTable, "aria-labelledby": summaryHeadingId, "data-test": "charter-sourcing-email-summary", children: jsxRuntime.jsxs("tbody", { children: [detailFields.map(([label, value]) => (jsxRuntime.jsxs("tr", { "data-test": "charter-sourcing-email-summary-field", children: [jsxRuntime.jsx("th", { scope: "row", style: EMAIL_STYLE.detailLabel, children: label }), jsxRuntime.jsx("td", { style: EMAIL_STYLE.detailValue, children: present(value) })] }, label))), quote.totalCost !== undefined && (jsxRuntime.jsxs("tr", { "data-test": "charter-sourcing-email-total", children: [jsxRuntime.jsx("th", { scope: "row", style: { ...EMAIL_STYLE.detailLabel, ...EMAIL_STYLE.totalLabel }, children: "Total Cost" }), jsxRuntime.jsx("td", { style: { ...EMAIL_STYLE.detailValue, ...EMAIL_STYLE.totalValue }, children: present(quote.totalCost) })] }))] }) })] }), variant === 'submitter-updated' && (jsxRuntime.jsxs("section", { "data-test": "charter-sourcing-email-changes", children: [jsxRuntime.jsx("h2", { style: EMAIL_STYLE.changesHeading, children: "What changed" }), jsxRuntime.jsxs("table", { cellPadding: 0, cellSpacing: 0, border: 0, width: "100%", style: EMAIL_STYLE.changesTable, children: [jsxRuntime.jsx("caption", { className: styles$$.visuallyHidden, children: "Fields changed by the Charter Sourcing administrator" }), jsxRuntime.jsx("thead", { children: jsxRuntime.jsxs("tr", { children: [jsxRuntime.jsx("th", { scope: "col", style: { ...EMAIL_STYLE.changesHeader, width: '40%' }, children: "Field" }), jsxRuntime.jsx("th", { scope: "col", style: { ...EMAIL_STYLE.changesHeader, width: '30%' }, children: "Previous" }), jsxRuntime.jsx("th", { scope: "col", style: { ...EMAIL_STYLE.changesHeader, width: '30%' }, children: "Updated" })] }) }), jsxRuntime.jsx("tbody", { children: changes.map((change, index) => (jsxRuntime.jsxs("tr", { "data-test": "charter-sourcing-email-change", children: [jsxRuntime.jsx("th", { scope: "row", style: EMAIL_STYLE.changesRowHeader, children: change.label }), jsxRuntime.jsx("td", { style: { ...EMAIL_STYLE.changesValue, ...EMAIL_STYLE.previousValue }, children: present(change.previousValue) }), jsxRuntime.jsx("td", { style: { ...EMAIL_STYLE.changesValue, ...EMAIL_STYLE.updatedValue }, children: present(change.updatedValue) })] }, `${change.label}-${index}`))) })] })] })), jsxRuntime.jsx("table", { role: "presentation", cellPadding: 0, cellSpacing: 0, border: 0, width: "100%", style: EMAIL_STYLE.requestTable, children: jsxRuntime.jsx("tbody", { children: jsxRuntime.jsxs("tr", { children: [jsxRuntime.jsx("td", { className: styles$$.stackCell, style: EMAIL_STYLE.requestLabel, children: "Request ID" }), jsxRuntime.jsx("td", { className: styles$$.stackCell, style: EMAIL_STYLE.requestValue, "data-test": "charter-sourcing-email-request-id", children: present(quote.requestId) })] }) }) }), jsxRuntime.jsxs("p", { style: EMAIL_STYLE.signoff, children: ["Thanks,", jsxRuntime.jsx("br", {}), jsxRuntime.jsx("strong", { children: "STM Charters Team" })] }), testServerOriginalRecipient && (jsxRuntime.jsx("aside", { "data-test": "charter-sourcing-email-test-notice", children: jsxRuntime.jsx("table", { role: "presentation", cellPadding: 0, cellSpacing: 0, border: 0, width: "100%", style: EMAIL_STYLE.noticeTable, children: jsxRuntime.jsx("tbody", { children: jsxRuntime.jsx("tr", { children: jsxRuntime.jsxs("td", { style: EMAIL_STYLE.noticeCell, children: [jsxRuntime.jsx("strong", { children: "Test server delivery" }), jsxRuntime.jsx("br", {}), jsxRuntime.jsx("span", { children: "This message may not represent an actual charter quote." }), jsxRuntime.jsx("br", {}), jsxRuntime.jsxs("span", { children: ["Original recipient: ", testServerOriginalRecipient] })] }) }) }) }) }))] }) }), jsxRuntime.jsx("tr", { children: jsxRuntime.jsx("td", { className: styles$$.footerCell, style: EMAIL_STYLE.footerCell, children: jsxRuntime.jsxs("footer", { "data-test": "charter-sourcing-email-footer", children: [jsxRuntime.jsx("p", { style: EMAIL_STYLE.footerParagraph, children: "This transactional message was sent by STM Charters." }), jsxRuntime.jsx("p", { style: EMAIL_STYLE.footerParagraph, children: "Reply to contact the Charter Sourcing team." })] }) }) })] }) })] }));
3780
3828
  };
3781
3829
  CharterSourcingEmailPreview.displayName = 'CharterSourcingEmailPreview';
3782
3830
 
3783
- var styles$Z = {"container":"ContactList-module_container__1kjze","alert":"ContactList-module_alert__KC0tz","card":"ContactList-module_card__TOyp2","header":"ContactList-module_header__QysLx","titleRow":"ContactList-module_titleRow__tUDMS","title":"ContactList-module_title__R-IOd","tooltip":"ContactList-module_tooltip__DDMka","list":"ContactList-module_list__6tjo-","contactItem":"ContactList-module_contactItem__4SoW-","contactInfo":"ContactList-module_contactInfo__6cQpi","contactName":"ContactList-module_contactName__z748K","badge":"ContactList-module_badge__USFpb","badgeSecondary":"ContactList-module_badgeSecondary__OSwqF","contactRole":"ContactList-module_contactRole__6kfuQ","contactDetails":"ContactList-module_contactDetails__ihY0M","contactLink":"ContactList-module_contactLink__sWGp9","contactPhone":"ContactList-module_contactPhone__dUn6z","contactActions":"ContactList-module_contactActions__6WT-z","actionButton":"ContactList-module_actionButton__aPnGZ","actionButtonDanger":"ContactList-module_actionButtonDanger__yRBz0","empty":"ContactList-module_empty__bRTDB","footer":"ContactList-module_footer__18gB-","addButton":"ContactList-module_addButton__STUhp"};
3831
+ var styles$_ = {"container":"ContactList-module_container__1kjze","alert":"ContactList-module_alert__KC0tz","card":"ContactList-module_card__TOyp2","header":"ContactList-module_header__QysLx","titleRow":"ContactList-module_titleRow__tUDMS","title":"ContactList-module_title__R-IOd","tooltip":"ContactList-module_tooltip__DDMka","list":"ContactList-module_list__6tjo-","contactItem":"ContactList-module_contactItem__4SoW-","contactInfo":"ContactList-module_contactInfo__6cQpi","contactName":"ContactList-module_contactName__z748K","badge":"ContactList-module_badge__USFpb","badgeSecondary":"ContactList-module_badgeSecondary__OSwqF","contactRole":"ContactList-module_contactRole__6kfuQ","contactDetails":"ContactList-module_contactDetails__ihY0M","contactLink":"ContactList-module_contactLink__sWGp9","contactPhone":"ContactList-module_contactPhone__dUn6z","contactActions":"ContactList-module_contactActions__6WT-z","actionButton":"ContactList-module_actionButton__aPnGZ","actionButtonDanger":"ContactList-module_actionButtonDanger__yRBz0","empty":"ContactList-module_empty__bRTDB","footer":"ContactList-module_footer__18gB-","addButton":"ContactList-module_addButton__STUhp"};
3784
3832
 
3785
3833
  const InfoIcon = () => (jsxRuntime.jsxs("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10" }), jsxRuntime.jsx("line", { x1: "12", y1: "16", x2: "12", y2: "12" }), jsxRuntime.jsx("line", { x1: "12", y1: "8", x2: "12.01", y2: "8" })] }));
3786
3834
  const EditIcon$1 = () => (jsxRuntime.jsxs("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [jsxRuntime.jsx("path", { d: "M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7" }), jsxRuntime.jsx("path", { d: "M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z" })] }));
@@ -3791,18 +3839,18 @@ const PlusIcon$1 = () => (jsxRuntime.jsxs("svg", { width: "16", height: "16", vi
3791
3839
  */
3792
3840
  const ContactList = ({ title = 'Contacts', tooltip, contacts, onEdit, onRemove, onAdd, showAdd = true, addLabel = 'Add Contact', alert, className = '', }) => {
3793
3841
  const listClasses = [
3794
- styles$Z.container,
3842
+ styles$_.container,
3795
3843
  className,
3796
3844
  ].filter(Boolean).join(' ');
3797
- return (jsxRuntime.jsxs("div", { className: listClasses, children: [alert && (jsxRuntime.jsx("div", { className: styles$Z.alert, children: alert })), jsxRuntime.jsxs("div", { className: styles$Z.card, children: [jsxRuntime.jsx("div", { className: styles$Z.header, children: jsxRuntime.jsxs("div", { className: styles$Z.titleRow, children: [jsxRuntime.jsx("h3", { className: styles$Z.title, children: title }), tooltip && (jsxRuntime.jsx("span", { className: styles$Z.tooltip, children: jsxRuntime.jsx(InfoIcon, {}) }))] }) }), jsxRuntime.jsxs("div", { className: styles$Z.list, children: [contacts.map((contact) => (jsxRuntime.jsxs("div", { className: styles$Z.contactItem, children: [jsxRuntime.jsxs("div", { className: styles$Z.contactInfo, children: [jsxRuntime.jsxs("div", { className: styles$Z.contactName, children: [contact.name, contact.isPrimary && (jsxRuntime.jsx("span", { className: styles$Z.badge, children: "Primary" })), contact.isSecondary && (jsxRuntime.jsx("span", { className: `${styles$Z.badge} ${styles$Z.badgeSecondary}`, children: "Secondary" }))] }), contact.role && (jsxRuntime.jsx("div", { className: styles$Z.contactRole, children: contact.role })), jsxRuntime.jsxs("div", { className: styles$Z.contactDetails, children: [contact.email && (jsxRuntime.jsx("a", { href: `mailto:${contact.email}`, className: styles$Z.contactLink, children: contact.email })), contact.phone && (jsxRuntime.jsx("span", { className: styles$Z.contactPhone, children: contact.phone }))] })] }), jsxRuntime.jsxs("div", { className: styles$Z.contactActions, children: [onEdit && (jsxRuntime.jsx("button", { type: "button", className: styles$Z.actionButton, onClick: () => onEdit(contact), "aria-label": "Edit contact", children: jsxRuntime.jsx(EditIcon$1, {}) })), onRemove && (jsxRuntime.jsx("button", { type: "button", className: `${styles$Z.actionButton} ${styles$Z.actionButtonDanger}`, onClick: () => onRemove(contact), "aria-label": "Remove contact", children: jsxRuntime.jsx(TrashIcon$1, {}) }))] })] }, contact.id))), contacts.length === 0 && (jsxRuntime.jsx("div", { className: styles$Z.empty, children: "No contacts added" }))] }), showAdd && onAdd && (jsxRuntime.jsx("div", { className: styles$Z.footer, children: jsxRuntime.jsxs("button", { type: "button", className: styles$Z.addButton, onClick: onAdd, children: [jsxRuntime.jsx(PlusIcon$1, {}), addLabel] }) }))] })] }));
3845
+ return (jsxRuntime.jsxs("div", { className: listClasses, children: [alert && (jsxRuntime.jsx("div", { className: styles$_.alert, children: alert })), jsxRuntime.jsxs("div", { className: styles$_.card, children: [jsxRuntime.jsx("div", { className: styles$_.header, children: jsxRuntime.jsxs("div", { className: styles$_.titleRow, children: [jsxRuntime.jsx("h3", { className: styles$_.title, children: title }), tooltip && (jsxRuntime.jsx("span", { className: styles$_.tooltip, children: jsxRuntime.jsx(InfoIcon, {}) }))] }) }), jsxRuntime.jsxs("div", { className: styles$_.list, children: [contacts.map((contact) => (jsxRuntime.jsxs("div", { className: styles$_.contactItem, children: [jsxRuntime.jsxs("div", { className: styles$_.contactInfo, children: [jsxRuntime.jsxs("div", { className: styles$_.contactName, children: [contact.name, contact.isPrimary && (jsxRuntime.jsx("span", { className: styles$_.badge, children: "Primary" })), contact.isSecondary && (jsxRuntime.jsx("span", { className: `${styles$_.badge} ${styles$_.badgeSecondary}`, children: "Secondary" }))] }), contact.role && (jsxRuntime.jsx("div", { className: styles$_.contactRole, children: contact.role })), jsxRuntime.jsxs("div", { className: styles$_.contactDetails, children: [contact.email && (jsxRuntime.jsx("a", { href: `mailto:${contact.email}`, className: styles$_.contactLink, children: contact.email })), contact.phone && (jsxRuntime.jsx("span", { className: styles$_.contactPhone, children: contact.phone }))] })] }), jsxRuntime.jsxs("div", { className: styles$_.contactActions, children: [onEdit && (jsxRuntime.jsx("button", { type: "button", className: styles$_.actionButton, onClick: () => onEdit(contact), "aria-label": "Edit contact", children: jsxRuntime.jsx(EditIcon$1, {}) })), onRemove && (jsxRuntime.jsx("button", { type: "button", className: `${styles$_.actionButton} ${styles$_.actionButtonDanger}`, onClick: () => onRemove(contact), "aria-label": "Remove contact", children: jsxRuntime.jsx(TrashIcon$1, {}) }))] })] }, contact.id))), contacts.length === 0 && (jsxRuntime.jsx("div", { className: styles$_.empty, children: "No contacts added" }))] }), showAdd && onAdd && (jsxRuntime.jsx("div", { className: styles$_.footer, children: jsxRuntime.jsxs("button", { type: "button", className: styles$_.addButton, onClick: onAdd, children: [jsxRuntime.jsx(PlusIcon$1, {}), addLabel] }) }))] })] }));
3798
3846
  };
3799
3847
  ContactList.displayName = 'ContactList';
3800
3848
 
3801
- var styles$Y = {"container":"Drawer-module_container__hXuOY","backdrop":"Drawer-module_backdrop__MIipQ","fadeIn":"Drawer-module_fadeIn__QsuvQ","backdropOpen":"Drawer-module_backdropOpen__YpH--","drawer":"Drawer-module_drawer__EHbbs","right":"Drawer-module_right__x6P6Q","drawerOpen":"Drawer-module_drawerOpen__KTgFg","left":"Drawer-module_left__aVF9t","top":"Drawer-module_top__wuvhi","bottom":"Drawer-module_bottom__rt-VZ","sizeSm":"Drawer-module_sizeSm__LFrm3","sizeMd":"Drawer-module_sizeMd__A1QTQ","sizeLg":"Drawer-module_sizeLg__6laD8","sizeXl":"Drawer-module_sizeXl__FY9mZ","sizeFull":"Drawer-module_sizeFull__BGQ1q","header":"Drawer-module_header__MpR14","headerContent":"Drawer-module_headerContent__dFcLH","title":"Drawer-module_title__0AmOX","closeButton":"Drawer-module_closeButton__VuXsE","body":"Drawer-module_body__GLUGo","footer":"Drawer-module_footer__K5ekS"};
3849
+ var styles$Z = {"container":"Drawer-module_container__hXuOY","backdrop":"Drawer-module_backdrop__MIipQ","fadeIn":"Drawer-module_fadeIn__QsuvQ","backdropOpen":"Drawer-module_backdropOpen__YpH--","drawer":"Drawer-module_drawer__EHbbs","right":"Drawer-module_right__x6P6Q","drawerOpen":"Drawer-module_drawerOpen__KTgFg","left":"Drawer-module_left__aVF9t","top":"Drawer-module_top__wuvhi","bottom":"Drawer-module_bottom__rt-VZ","sizeSm":"Drawer-module_sizeSm__LFrm3","sizeMd":"Drawer-module_sizeMd__A1QTQ","sizeLg":"Drawer-module_sizeLg__6laD8","sizeXl":"Drawer-module_sizeXl__FY9mZ","sizeFull":"Drawer-module_sizeFull__BGQ1q","header":"Drawer-module_header__MpR14","headerContent":"Drawer-module_headerContent__dFcLH","title":"Drawer-module_title__0AmOX","closeButton":"Drawer-module_closeButton__VuXsE","body":"Drawer-module_body__GLUGo","footer":"Drawer-module_footer__K5ekS"};
3802
3850
 
3803
- const DrawerHeader = ({ title, children, showClose = true, onClose, className = '', }) => (jsxRuntime.jsxs("div", { className: `${styles$Y.header} ${className}`, children: [jsxRuntime.jsxs("div", { className: styles$Y.headerContent, children: [title && jsxRuntime.jsx("h2", { className: styles$Y.title, children: title }), children] }), showClose && (jsxRuntime.jsx("button", { type: "button", className: styles$Y.closeButton, onClick: onClose, "aria-label": "Close drawer", children: jsxRuntime.jsx("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) }) }))] }));
3804
- const DrawerBody = ({ children, className = '' }) => (jsxRuntime.jsx("div", { className: `${styles$Y.body} ${className}`, children: children }));
3805
- const DrawerFooter = ({ children, className = '' }) => (jsxRuntime.jsx("div", { className: `${styles$Y.footer} ${className}`, children: children }));
3851
+ const DrawerHeader = ({ title, children, showClose = true, onClose, className = '', }) => (jsxRuntime.jsxs("div", { className: `${styles$Z.header} ${className}`, children: [jsxRuntime.jsxs("div", { className: styles$Z.headerContent, children: [title && jsxRuntime.jsx("h2", { className: styles$Z.title, children: title }), children] }), showClose && (jsxRuntime.jsx("button", { type: "button", className: styles$Z.closeButton, onClick: onClose, "aria-label": "Close drawer", children: jsxRuntime.jsx("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) }) }))] }));
3852
+ const DrawerBody = ({ children, className = '' }) => (jsxRuntime.jsx("div", { className: `${styles$Z.body} ${className}`, children: children }));
3853
+ const DrawerFooter = ({ children, className = '' }) => (jsxRuntime.jsx("div", { className: `${styles$Z.footer} ${className}`, children: children }));
3806
3854
  const Drawer = ({ isOpen, onClose, position = 'right', size = 'md', children, closeOnBackdropClick = true, closeOnEscape = true, showBackdrop = true, className = '', }) => {
3807
3855
  const handleEscape = React.useCallback((e) => {
3808
3856
  if (closeOnEscape && e.key === 'Escape') {
@@ -3830,7 +3878,7 @@ const Drawer = ({ isOpen, onClose, position = 'right', size = 'md', children, cl
3830
3878
  const customSize = isNamed ? undefined : size;
3831
3879
  if (!isOpen)
3832
3880
  return null;
3833
- return (jsxRuntime.jsxs("div", { className: styles$Y.container, children: [showBackdrop && (jsxRuntime.jsx("div", { className: `${styles$Y.backdrop} ${isOpen ? styles$Y.backdropOpen : ''}`, onClick: handleBackdropClick })), jsxRuntime.jsx("div", { className: `${styles$Y.drawer} ${styles$Y[position]} ${namedSize ? styles$Y[`size${namedSize.charAt(0).toUpperCase()}${namedSize.slice(1)}`] : ''} ${isOpen ? styles$Y.drawerOpen : ''} ${className}`, style: customSize ? (position === 'left' || position === 'right' ? { width: customSize } : { height: customSize }) : undefined, role: "dialog", "aria-modal": "true", children: React.Children.map(children, (child) => {
3881
+ return (jsxRuntime.jsxs("div", { className: styles$Z.container, children: [showBackdrop && (jsxRuntime.jsx("div", { className: `${styles$Z.backdrop} ${isOpen ? styles$Z.backdropOpen : ''}`, onClick: handleBackdropClick })), jsxRuntime.jsx("div", { className: `${styles$Z.drawer} ${styles$Z[position]} ${namedSize ? styles$Z[`size${namedSize.charAt(0).toUpperCase()}${namedSize.slice(1)}`] : ''} ${isOpen ? styles$Z.drawerOpen : ''} ${className}`, style: customSize ? (position === 'left' || position === 'right' ? { width: customSize } : { height: customSize }) : undefined, role: "dialog", "aria-modal": "true", children: React.Children.map(children, (child) => {
3834
3882
  if (React.isValidElement(child) && child.type === DrawerHeader) {
3835
3883
  return React.cloneElement(child, {
3836
3884
  onClose,
@@ -3843,7 +3891,7 @@ Drawer.Header = DrawerHeader;
3843
3891
  Drawer.Body = DrawerBody;
3844
3892
  Drawer.Footer = DrawerFooter;
3845
3893
 
3846
- var styles$X = {"drawer":"DueDatesDrawer-module_drawer__TqC4Q","open":"DueDatesDrawer-module_open__Yblf3","body":"DueDatesDrawer-module_body__OwwF-","search":"DueDatesDrawer-module_search__g7-Rl","cards":"DueDatesDrawer-module_cards__bFG90","empty":"DueDatesDrawer-module_empty__K2ULN","card":"DueDatesDrawer-module_card__4Os-5","cardTitle":"DueDatesDrawer-module_cardTitle__fU-cP","status":"DueDatesDrawer-module_status__dXifz","completed":"DueDatesDrawer-module_completed__jWoYi","pastDue":"DueDatesDrawer-module_pastDue__TSikC","tags":"DueDatesDrawer-module_tags__8P87y","completion":"DueDatesDrawer-module_completion__mIrWm","readOnlyStatus":"DueDatesDrawer-module_readOnlyStatus__23fdg"};
3894
+ var styles$Y = {"drawer":"DueDatesDrawer-module_drawer__TqC4Q","open":"DueDatesDrawer-module_open__Yblf3","body":"DueDatesDrawer-module_body__OwwF-","search":"DueDatesDrawer-module_search__g7-Rl","cards":"DueDatesDrawer-module_cards__bFG90","empty":"DueDatesDrawer-module_empty__K2ULN","card":"DueDatesDrawer-module_card__4Os-5","cardTitle":"DueDatesDrawer-module_cardTitle__fU-cP","status":"DueDatesDrawer-module_status__dXifz","completed":"DueDatesDrawer-module_completed__jWoYi","pastDue":"DueDatesDrawer-module_pastDue__TSikC","tags":"DueDatesDrawer-module_tags__8P87y","completion":"DueDatesDrawer-module_completion__mIrWm","readOnlyStatus":"DueDatesDrawer-module_readOnlyStatus__23fdg"};
3847
3895
 
3848
3896
  const isTravelDueDateCompleted = (item) => item.status.trim().toLowerCase() === 'completed' || !!item.completeddatetime;
3849
3897
  const isTravelDueDateOverdue = (item) => !item.completeddatetime && !!item.pastdue;
@@ -3860,7 +3908,7 @@ const DueDateCard$1 = ({ item, onToggle, onTaskClick }) => {
3860
3908
  const completed = isTravelDueDateCompleted(item);
3861
3909
  const dueDate = parseLocalDate$1(item.duedate);
3862
3910
  const pastDue = !!dueDate && dueDate < new Date() && !completed;
3863
- return (jsxRuntime.jsxs("article", { className: styles$X.card, children: [jsxRuntime.jsxs("div", { className: styles$X.cardTitle, children: [onToggle ? (jsxRuntime.jsx("button", { type: "button", "aria-label": `${completed ? 'Reopen' : 'Complete'} ${item.tasktitle}`, className: [styles$X.status, completed ? styles$X.completed : pastDue ? styles$X.pastDue : ''].filter(Boolean).join(' '), onClick: () => onToggle(item), "data-test": `due-date-toggle-${item.taskid}`, children: completed ? jsxRuntime.jsx(CheckIcon$2, { size: 12 }) : null })) : (jsxRuntime.jsx("span", { "aria-label": `${completed ? 'Completed' : pastDue ? 'Past due' : 'Incomplete'}: ${item.tasktitle}`, className: [styles$X.status, styles$X.readOnlyStatus, completed ? styles$X.completed : pastDue ? styles$X.pastDue : ''].filter(Boolean).join(' '), "data-test": `due-date-status-${item.taskid}`, children: completed ? jsxRuntime.jsx(CheckIcon$2, { size: 12 }) : null })), jsxRuntime.jsx("h5", { children: item.tasktitle })] }), item.description && jsxRuntime.jsx("p", { children: item.description }), jsxRuntime.jsxs("div", { className: styles$X.tags, children: [jsxRuntime.jsx("span", { style: { backgroundColor: sportColor$1(item.sportCode) }, children: item.sportCode }), jsxRuntime.jsx("button", { type: "button", disabled: !item.masterTripGUID || !onTaskClick, onClick: () => item.masterTripGUID && onTaskClick?.(item.masterTripGUID), children: item.tripName })] }), completed && item.completeddatetime && jsxRuntime.jsxs("div", { className: styles$X.completion, children: [jsxRuntime.jsx(CheckIcon$2, { size: 14 }), jsxRuntime.jsxs("span", { children: [jsxRuntime.jsx("em", { children: "on" }), " ", formatDate$8(item.completeddatetime, { month: 'numeric', day: 'numeric', year: '2-digit' }), " ", jsxRuntime.jsx("em", { children: "by" }), " ", item.completedby] })] })] }));
3911
+ return (jsxRuntime.jsxs("article", { className: styles$Y.card, children: [jsxRuntime.jsxs("div", { className: styles$Y.cardTitle, children: [onToggle ? (jsxRuntime.jsx("button", { type: "button", "aria-label": `${completed ? 'Reopen' : 'Complete'} ${item.tasktitle}`, className: [styles$Y.status, completed ? styles$Y.completed : pastDue ? styles$Y.pastDue : ''].filter(Boolean).join(' '), onClick: () => onToggle(item), "data-test": `due-date-toggle-${item.taskid}`, children: completed ? jsxRuntime.jsx(CheckIcon$2, { size: 12 }) : null })) : (jsxRuntime.jsx("span", { "aria-label": `${completed ? 'Completed' : pastDue ? 'Past due' : 'Incomplete'}: ${item.tasktitle}`, className: [styles$Y.status, styles$Y.readOnlyStatus, completed ? styles$Y.completed : pastDue ? styles$Y.pastDue : ''].filter(Boolean).join(' '), "data-test": `due-date-status-${item.taskid}`, children: completed ? jsxRuntime.jsx(CheckIcon$2, { size: 12 }) : null })), jsxRuntime.jsx("h5", { children: item.tasktitle })] }), item.description && jsxRuntime.jsx("p", { children: item.description }), jsxRuntime.jsxs("div", { className: styles$Y.tags, children: [jsxRuntime.jsx("span", { style: { backgroundColor: sportColor$1(item.sportCode) }, children: item.sportCode }), jsxRuntime.jsx("button", { type: "button", disabled: !item.masterTripGUID || !onTaskClick, onClick: () => item.masterTripGUID && onTaskClick?.(item.masterTripGUID), children: item.tripName })] }), completed && item.completeddatetime && jsxRuntime.jsxs("div", { className: styles$Y.completion, children: [jsxRuntime.jsx(CheckIcon$2, { size: 14 }), jsxRuntime.jsxs("span", { children: [jsxRuntime.jsx("em", { children: "on" }), " ", formatDate$8(item.completeddatetime, { month: 'numeric', day: 'numeric', year: '2-digit' }), " ", jsxRuntime.jsx("em", { children: "by" }), " ", item.completedby] })] })] }));
3864
3912
  };
3865
3913
  /** Hub's searchable, status-aware due-dates drawer. */
3866
3914
  const DueDatesDrawer = ({ isOpen, dueDates, selectedDate, selectedTrip, overdueOnly, onClose, onToggle, onTaskClick, className = '' }) => {
@@ -3872,9 +3920,32 @@ const DueDatesDrawer = ({ isOpen, dueDates, selectedDate, selectedTrip, overdueO
3872
3920
  const matches = items.filter((item) => (!selectedTrip || item.masterTripGUID === String(selectedTrip)) && (!overdueOnly || isTravelDueDateOverdue(item)) && (!normalized || item.tasktitle.toLowerCase().includes(normalized) || item.sportCode.toLowerCase().includes(normalized) || item.description.toLowerCase().includes(normalized)));
3873
3921
  return matches.length ? [[date, matches]] : [];
3874
3922
  })), [dueDates, search, selectedDate, selectedTrip, overdueOnly]);
3875
- return (jsxRuntime.jsxs("aside", { className: [styles$X.drawer, isOpen ? styles$X.open : '', className].filter(Boolean).join(' '), "aria-hidden": !isOpen, "aria-label": "Due Dates", children: [jsxRuntime.jsxs("header", { children: [jsxRuntime.jsx("h3", { children: "Due Dates" }), jsxRuntime.jsx("button", { type: "button", "aria-label": "Close due dates", onClick: onClose, children: jsxRuntime.jsx(CloseIcon, { size: 24 }) })] }), jsxRuntime.jsxs("div", { className: styles$X.body, children: [jsxRuntime.jsxs("label", { className: styles$X.search, children: [jsxRuntime.jsx(SearchIcon$1, { size: 16 }), jsxRuntime.jsx("input", { type: "search", placeholder: "Search", value: search, onChange: (event) => setSearch(event.target.value) })] }), !Object.keys(filtered).length ? jsxRuntime.jsx("div", { className: styles$X.empty, children: "No due dates found." }) : Object.entries(filtered).map(([date, items]) => (jsxRuntime.jsxs("section", { children: [jsxRuntime.jsx("h4", { children: formatDate$8(date, { month: 'long', day: 'numeric', year: 'numeric' }) }), jsxRuntime.jsx("div", { className: styles$X.cards, children: items.map((item) => jsxRuntime.jsx(DueDateCard$1, { item: item, onToggle: onToggle, onTaskClick: onTaskClick }, `${date}-${item.taskid}`)) })] }, date)))] })] }));
3923
+ return (jsxRuntime.jsxs("aside", { className: [styles$Y.drawer, isOpen ? styles$Y.open : '', className].filter(Boolean).join(' '), "aria-hidden": !isOpen, "aria-label": "Due Dates", children: [jsxRuntime.jsxs("header", { children: [jsxRuntime.jsx("h3", { children: "Due Dates" }), jsxRuntime.jsx("button", { type: "button", "aria-label": "Close due dates", onClick: onClose, children: jsxRuntime.jsx(CloseIcon, { size: 24 }) })] }), jsxRuntime.jsxs("div", { className: styles$Y.body, children: [jsxRuntime.jsxs("label", { className: styles$Y.search, children: [jsxRuntime.jsx(SearchIcon$1, { size: 16 }), jsxRuntime.jsx("input", { type: "search", placeholder: "Search", value: search, onChange: (event) => setSearch(event.target.value) })] }), !Object.keys(filtered).length ? jsxRuntime.jsx("div", { className: styles$Y.empty, children: "No due dates found." }) : Object.entries(filtered).map(([date, items]) => (jsxRuntime.jsxs("section", { children: [jsxRuntime.jsx("h4", { children: formatDate$8(date, { month: 'long', day: 'numeric', year: 'numeric' }) }), jsxRuntime.jsx("div", { className: styles$Y.cards, children: items.map((item) => jsxRuntime.jsx(DueDateCard$1, { item: item, onToggle: onToggle, onTaskClick: onTaskClick }, `${date}-${item.taskid}`)) })] }, date)))] })] }));
3876
3924
  };
3877
3925
 
3926
+ var styles$X = {"header":"GridHeaderRow-module_header__HaY4B","grid":"GridHeaderRow-module_grid__BvZkZ","heading":"GridHeaderRow-module_heading__fa7PW"};
3927
+
3928
+ /**
3929
+ * A grid heading strip on its own, without a table underneath it.
3930
+ *
3931
+ * GridTable renders its own headings and is the right answer whenever the
3932
+ * headings belong to the rows below them. This is for the cases where they do
3933
+ * not: two header strips side by side above one table, or a band that spans
3934
+ * several columns stacked over the real headings. Both need a heading row that
3935
+ * is not tied to a row set, which GridTable cannot express.
3936
+ *
3937
+ * Headings are plain text here, never sort controls — there are no rows to
3938
+ * sort. `sortable` on a column is ignored rather than rendering a button that
3939
+ * does nothing.
3940
+ *
3941
+ * Hidden below 768px, matching GridTable: at that width each row becomes a card
3942
+ * carrying its own labels, so a detached heading strip would caption nothing.
3943
+ */
3944
+ function GridHeaderRow({ columns, gridTemplateColumns, above, below, className = '', style, }) {
3945
+ return (jsxRuntime.jsxs("div", { className: `${styles$X.header} ${className}`, style: style, "data-testid": "grid-header-row", children: [above, jsxRuntime.jsx("div", { className: styles$X.grid, style: { gridTemplateColumns }, role: "row", children: columns.map((column, i) => (jsxRuntime.jsxs("div", { role: "columnheader", className: `${styles$X.heading} ${column.labelClassName ?? ''}`, children: [column.icon, column.label, column.labelAs?.({ name: column.name })] }, column.name ?? i))) }), below] }));
3946
+ }
3947
+ GridHeaderRow.displayName = 'GridHeaderRow';
3948
+
3878
3949
  var styles$W = {"table":"GridTable-module_table__eAyUR","grid":"GridTable-module_grid__Fas2-","header":"GridTable-module_header__Xlk1G","heading":"GridTable-module_heading__eQ0tp","sortable":"GridTable-module_sortable__3b0WI","headingInner":"GridTable-module_headingInner__mrWVH","headingIcon":"GridTable-module_headingIcon__0ezsg","sortIcon":"GridTable-module_sortIcon__pT9NY","body":"GridTable-module_body__rnNv7","row":"GridTable-module_row__5oYit","bordered":"GridTable-module_bordered__ONBuk","cellWrap":"GridTable-module_cellWrap__ioPRA","cell":"GridTable-module_cell__iciaC","value":"GridTable-module_value__qBeVT","stackedLabel":"GridTable-module_stackedLabel__snZdZ","empty":"GridTable-module_empty__sgW67","footer":"GridTable-module_footer__D-9Z4","totalCell":"GridTable-module_totalCell__zJPdZ","totalValue":"GridTable-module_totalValue__rqXX3"};
3879
3950
 
3880
3951
  const ChevronUp = () => (jsxRuntime.jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", "aria-hidden": "true", children: jsxRuntime.jsx("polyline", { points: "18 15 12 9 6 15" }) }));
@@ -15511,6 +15582,7 @@ exports.ArrowUpRightIcon = ArrowUpRightIcon;
15511
15582
  exports.Avatar = Avatar;
15512
15583
  exports.AvatarGroup = AvatarGroup;
15513
15584
  exports.BID_TYPE_HEADINGS = BID_TYPE_HEADINGS;
15585
+ exports.BackLink = BackLink;
15514
15586
  exports.Badge = Badge;
15515
15587
  exports.BuildingIcon = BuildingIcon;
15516
15588
  exports.BusIcon = BusIcon$2;
@@ -15576,6 +15648,7 @@ exports.FormField = FormField;
15576
15648
  exports.FormRow = FormRow;
15577
15649
  exports.FormSection = FormSection;
15578
15650
  exports.FormStack = FormStack;
15651
+ exports.GridHeaderRow = GridHeaderRow;
15579
15652
  exports.GridIcon = GridIcon;
15580
15653
  exports.GridTable = GridTable;
15581
15654
  exports.GroundSegment = GroundSegment;
@@ -15652,6 +15725,7 @@ exports.RequestFormFooter = RequestFormFooter;
15652
15725
  exports.RequestFormHeader = RequestFormHeader;
15653
15726
  exports.RequestFormLayout = RequestFormLayout;
15654
15727
  exports.RequestSummary = RequestSummary$1;
15728
+ exports.ResultCount = ResultCount;
15655
15729
  exports.RosterProgramNumbersPage = RosterProgramNumbersPage;
15656
15730
  exports.RosterReportsPage = RosterReportsPage;
15657
15731
  exports.RosterToolbar = RosterToolbar;