kaafil-react-uikit 0.9.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/CHANGELOG.md +88 -0
  2. package/dist/admin/index.cjs +458 -360
  3. package/dist/admin/index.cjs.map +1 -1
  4. package/dist/admin/index.d.cts +112 -14
  5. package/dist/admin/index.d.ts +112 -14
  6. package/dist/admin/index.js +117 -19
  7. package/dist/admin/index.js.map +1 -1
  8. package/dist/{chunk-TJGE4ZSX.js → chunk-2HGOHUFU.js} +3 -3
  9. package/dist/{chunk-TJGE4ZSX.js.map → chunk-2HGOHUFU.js.map} +1 -1
  10. package/dist/{chunk-FO5VJJUO.cjs → chunk-AJEZMD64.cjs} +12 -12
  11. package/dist/{chunk-FO5VJJUO.cjs.map → chunk-AJEZMD64.cjs.map} +1 -1
  12. package/dist/{chunk-TYBIAPPT.cjs → chunk-APE4R2GB.cjs} +86 -86
  13. package/dist/chunk-APE4R2GB.cjs.map +1 -0
  14. package/dist/{chunk-ELJPQSXY.cjs → chunk-BKDKXM3L.cjs} +11 -11
  15. package/dist/{chunk-ELJPQSXY.cjs.map → chunk-BKDKXM3L.cjs.map} +1 -1
  16. package/dist/{chunk-2WPNGUX5.cjs → chunk-E6SI2S3L.cjs} +17 -17
  17. package/dist/{chunk-2WPNGUX5.cjs.map → chunk-E6SI2S3L.cjs.map} +1 -1
  18. package/dist/{chunk-GOSSRXBN.js → chunk-IDKRXLMY.js} +3 -3
  19. package/dist/{chunk-GOSSRXBN.js.map → chunk-IDKRXLMY.js.map} +1 -1
  20. package/dist/{chunk-PFTWPEVV.cjs → chunk-LYCN2BOH.cjs} +4 -4
  21. package/dist/{chunk-PFTWPEVV.cjs.map → chunk-LYCN2BOH.cjs.map} +1 -1
  22. package/dist/{chunk-SO4F5LTH.js → chunk-OXCVTVBY.js} +5 -5
  23. package/dist/{chunk-SO4F5LTH.js.map → chunk-OXCVTVBY.js.map} +1 -1
  24. package/dist/{chunk-SMGXVEN3.cjs → chunk-P5HF55MO.cjs} +6 -6
  25. package/dist/chunk-P5HF55MO.cjs.map +1 -0
  26. package/dist/chunk-PHVQIIOI.cjs +12 -0
  27. package/dist/{chunk-PG7HNBTO.cjs.map → chunk-PHVQIIOI.cjs.map} +1 -1
  28. package/dist/{chunk-FSSB6J3X.js → chunk-U2443I5Q.js} +6 -6
  29. package/dist/chunk-U2443I5Q.js.map +1 -0
  30. package/dist/{chunk-6PQWLUBA.js → chunk-UMLJEBQV.js} +5 -5
  31. package/dist/{chunk-6PQWLUBA.js.map → chunk-UMLJEBQV.js.map} +1 -1
  32. package/dist/{chunk-CCK3WPMF.js → chunk-VAUGZOY6.js} +3 -3
  33. package/dist/{chunk-CCK3WPMF.js.map → chunk-VAUGZOY6.js.map} +1 -1
  34. package/dist/{chunk-TESIDLJ6.js → chunk-WMBFBZ7Q.js} +6 -6
  35. package/dist/chunk-WMBFBZ7Q.js.map +1 -0
  36. package/dist/{chunk-IAXVUR7H.cjs → chunk-X5EFVCYF.cjs} +55 -55
  37. package/dist/{chunk-IAXVUR7H.cjs.map → chunk-X5EFVCYF.cjs.map} +1 -1
  38. package/dist/{chunk-YWMDBY43.js → chunk-ZVADVALQ.js} +5 -5
  39. package/dist/{chunk-YWMDBY43.js.map → chunk-ZVADVALQ.js.map} +1 -1
  40. package/dist/core/index.cjs +107 -107
  41. package/dist/core/index.js +10 -10
  42. package/dist/manager/index.cjs +375 -263
  43. package/dist/manager/index.cjs.map +1 -1
  44. package/dist/manager/index.d.cts +136 -17
  45. package/dist/manager/index.d.ts +136 -17
  46. package/dist/manager/index.js +142 -30
  47. package/dist/manager/index.js.map +1 -1
  48. package/dist/offline/index.cjs +12 -1
  49. package/dist/offline/index.cjs.map +1 -1
  50. package/dist/offline/index.d.cts +51 -3
  51. package/dist/offline/index.d.ts +51 -3
  52. package/dist/offline/index.js +12 -1
  53. package/dist/offline/index.js.map +1 -1
  54. package/dist/traveller/index.cjs +35 -35
  55. package/dist/traveller/index.js +5 -5
  56. package/package.json +1 -1
  57. package/dist/chunk-FSSB6J3X.js.map +0 -1
  58. package/dist/chunk-PG7HNBTO.cjs +0 -12
  59. package/dist/chunk-SMGXVEN3.cjs.map +0 -1
  60. package/dist/chunk-TESIDLJ6.js.map +0 -1
  61. package/dist/chunk-TYBIAPPT.cjs.map +0 -1
@@ -120,7 +120,14 @@ interface AgencySettingsScreenProps {
120
120
  readonly style?: KaafilTokenOverrides;
121
121
  }
122
122
 
123
- declare function AgencySettingsScreen({ title, subtitle, components, style, }: AgencySettingsScreenProps): ReactNode;
123
+ /**
124
+ * The session gate. `SessionShell` renders its children throughout the async
125
+ * open window with `SessionContext` populated but no client yet, so any
126
+ * client-backed hook below throws until the credential resolves. The split is
127
+ * not optional: Rules of Hooks forbid returning early before the inner hooks
128
+ * in one component.
129
+ */
130
+ declare function AgencySettingsScreen(props: AgencySettingsScreenProps): ReactNode;
124
131
 
125
132
  /** A locally-edited draft of one item — the same shape `items[]` needs to
126
133
  * become on save (`PatchChecklistTemplateRequest`'s item shape: `key`,
@@ -491,7 +498,14 @@ interface TripBookingsSectionProps {
491
498
  readonly style?: KaafilTokenOverrides;
492
499
  }
493
500
 
494
- declare function TripBookingsSection({ tripRef, onOpenDocuments, style, }: TripBookingsSectionProps): ReactNode;
501
+ /**
502
+ * The session gate. `SessionShell` renders its children throughout the async
503
+ * open window with `SessionContext` populated but no client yet, so any
504
+ * client-backed hook below throws until the credential resolves. The split is
505
+ * not optional: Rules of Hooks forbid returning early before the inner hooks
506
+ * in one component.
507
+ */
508
+ declare function TripBookingsSection(props: TripBookingsSectionProps): ReactNode;
495
509
 
496
510
  interface ChecklistItemRowProps {
497
511
  readonly item: ChecklistItemLiveRow;
@@ -545,7 +559,14 @@ interface TripChecklistSectionProps {
545
559
  readonly style?: KaafilTokenOverrides;
546
560
  }
547
561
 
548
- declare function TripChecklistSection({ tripRef, readOnly, initialPhase, onItemToggled, components, style, }: TripChecklistSectionProps): ReactNode;
562
+ /**
563
+ * The session gate. `SessionShell` renders its children throughout the async
564
+ * open window with `SessionContext` populated but no client yet, so any
565
+ * client-backed hook below throws until the credential resolves. The split is
566
+ * not optional: Rules of Hooks forbid returning early before the inner hooks
567
+ * in one component.
568
+ */
569
+ declare function TripChecklistSection(props: TripChecklistSectionProps): ReactNode;
549
570
 
550
571
  /** `Trip.eventType`, derived off the row so it cannot drift from the wire. */
551
572
  type TripEventType = AgencyTripRow['eventType'];
@@ -600,7 +621,14 @@ interface TripDocumentsSectionProps {
600
621
  readonly style?: KaafilTokenOverrides;
601
622
  }
602
623
 
603
- declare function TripDocumentsSection({ tripRef, style }: TripDocumentsSectionProps): ReactNode;
624
+ /**
625
+ * The session gate. `SessionShell` renders its children throughout the async
626
+ * open window with `SessionContext` populated but no client yet, so any
627
+ * client-backed hook below throws until the credential resolves. The split is
628
+ * not optional: Rules of Hooks forbid returning early before the inner hooks
629
+ * in one component.
630
+ */
631
+ declare function TripDocumentsSection(props: TripDocumentsSectionProps): ReactNode;
604
632
 
605
633
  /** An expense that is not a tombstone. A VOID is not a tombstone — the row
606
634
  * stays live with `voidedAt` set. */
@@ -622,7 +650,14 @@ interface TripExpensesSectionProps {
622
650
  readonly style?: KaafilTokenOverrides;
623
651
  }
624
652
 
625
- declare function TripExpensesSection({ tripRef, style }: TripExpensesSectionProps): ReactNode;
653
+ /**
654
+ * The session gate. `SessionShell` renders its children throughout the async
655
+ * open window with `SessionContext` populated but no client yet, so any
656
+ * client-backed hook below throws until the credential resolves. The split is
657
+ * not optional: Rules of Hooks forbid returning early before the inner hooks
658
+ * in one component.
659
+ */
660
+ declare function TripExpensesSection(props: TripExpensesSectionProps): ReactNode;
626
661
 
627
662
  type FloatMovementType = FloatMovementRow['type'];
628
663
  type FloatDirection = FloatMovementRow['direction'];
@@ -634,7 +669,14 @@ interface TripFloatSectionProps {
634
669
  readonly style?: KaafilTokenOverrides;
635
670
  }
636
671
 
637
- declare function TripFloatSection({ tripRef, style }: TripFloatSectionProps): ReactNode;
672
+ /**
673
+ * The session gate. `SessionShell` renders its children throughout the async
674
+ * open window with `SessionContext` populated but no client yet, so any
675
+ * client-backed hook below throws until the credential resolves. The split is
676
+ * not optional: Rules of Hooks forbid returning early before the inner hooks
677
+ * in one component.
678
+ */
679
+ declare function TripFloatSection(props: TripFloatSectionProps): ReactNode;
638
680
 
639
681
  interface FormRowProps {
640
682
  readonly form: TripFormRow;
@@ -669,7 +711,14 @@ interface TripFormsSectionProps {
669
711
  readonly style?: KaafilTokenOverrides;
670
712
  }
671
713
 
672
- declare function TripFormsSection({ tripRef, readOnly, components, style, }: TripFormsSectionProps): ReactNode;
714
+ /**
715
+ * The session gate. `SessionShell` renders its children throughout the async
716
+ * open window with `SessionContext` populated but no client yet, so any
717
+ * client-backed hook below throws until the credential resolves. The split is
718
+ * not optional: Rules of Hooks forbid returning early before the inner hooks
719
+ * in one component.
720
+ */
721
+ declare function TripFormsSection(props: TripFormsSectionProps): ReactNode;
673
722
 
674
723
  type ItineraryViewMode = 'days' | 'timeline';
675
724
  interface TripItinerarySectionProps {
@@ -689,7 +738,14 @@ interface ItineraryDayGroup {
689
738
  readonly items: readonly ItineraryItemRow[];
690
739
  }
691
740
 
692
- declare function TripItinerarySection({ tripRef, onOpenVendor, style, }: TripItinerarySectionProps): ReactNode;
741
+ /**
742
+ * The session gate. `SessionShell` renders its children throughout the async
743
+ * open window with `SessionContext` populated but no client yet, so any
744
+ * client-backed hook below throws until the credential resolves. The split is
745
+ * not optional: Rules of Hooks forbid returning early before the inner hooks
746
+ * in one component.
747
+ */
748
+ declare function TripItinerarySection(props: TripItinerarySectionProps): ReactNode;
693
749
 
694
750
  /** How the body is arranged. The reference's own two modes. */
695
751
  type ManifestGroupBy = 'booking_group' | 'none';
@@ -771,7 +827,14 @@ interface TripPaymentsSectionProps {
771
827
  readonly style?: KaafilTokenOverrides;
772
828
  }
773
829
 
774
- declare function TripPaymentsSection({ tripRef, balance, style, }: TripPaymentsSectionProps): ReactNode;
830
+ /**
831
+ * The session gate. `SessionShell` renders its children throughout the async
832
+ * open window with `SessionContext` populated but no client yet, so any
833
+ * client-backed hook below throws until the credential resolves. The split is
834
+ * not optional: Rules of Hooks forbid returning early before the inner hooks
835
+ * in one component.
836
+ */
837
+ declare function TripPaymentsSection(props: TripPaymentsSectionProps): ReactNode;
775
838
 
776
839
  /** A stop that is not a tombstone. */
777
840
  type PickupStopLiveRow = Exclude<PickupStopDeltaRow, {
@@ -804,7 +867,14 @@ interface TripPickupsSectionProps {
804
867
  readonly style?: KaafilTokenOverrides;
805
868
  }
806
869
 
807
- declare function TripPickupsSection({ tripRef, timeZone, tripStartIso, style, }: TripPickupsSectionProps): ReactNode;
870
+ /**
871
+ * The session gate. `SessionShell` renders its children throughout the async
872
+ * open window with `SessionContext` populated but no client yet, so any
873
+ * client-backed hook below throws until the credential resolves. The split is
874
+ * not optional: Rules of Hooks forbid returning early before the inner hooks
875
+ * in one component.
876
+ */
877
+ declare function TripPickupsSection(props: TripPickupsSectionProps): ReactNode;
808
878
 
809
879
  /** A room that is not a tombstone. */
810
880
  type RoomingRoomLiveRow = Exclude<RoomingRoomDeltaRow, {
@@ -847,7 +917,14 @@ interface TripRoomingSectionProps {
847
917
  readonly style?: KaafilTokenOverrides;
848
918
  }
849
919
 
850
- declare function TripRoomingSection({ tripRef, timeZone, tripStartIso, tripEndIso, style, }: TripRoomingSectionProps): ReactNode;
920
+ /**
921
+ * The session gate. `SessionShell` renders its children throughout the async
922
+ * open window with `SessionContext` populated but no client yet, so any
923
+ * client-backed hook below throws until the credential resolves. The split is
924
+ * not optional: Rules of Hooks forbid returning early before the inner hooks
925
+ * in one component.
926
+ */
927
+ declare function TripRoomingSection(props: TripRoomingSectionProps): ReactNode;
851
928
 
852
929
  type VendorCategory = TripVendorRow['category'];
853
930
  /** Where one supplier is used on this trip. A count is `undefined`, never 0,
@@ -871,7 +948,14 @@ interface TripSuppliersSectionProps {
871
948
  readonly style?: KaafilTokenOverrides;
872
949
  }
873
950
 
874
- declare function TripSuppliersSection({ tripRef, style }: TripSuppliersSectionProps): ReactNode;
951
+ /**
952
+ * The session gate. `SessionShell` renders its children throughout the async
953
+ * open window with `SessionContext` populated but no client yet, so any
954
+ * client-backed hook below throws until the credential resolves. The split is
955
+ * not optional: Rules of Hooks forbid returning early before the inner hooks
956
+ * in one component.
957
+ */
958
+ declare function TripSuppliersSection(props: TripSuppliersSectionProps): ReactNode;
875
959
 
876
960
  /** A vehicle that is not a tombstone. */
877
961
  type SeatingVehicleLiveRow = Exclude<SeatingVehicleDeltaRow, {
@@ -901,7 +985,14 @@ interface TripVehiclesSectionProps {
901
985
  readonly style?: KaafilTokenOverrides;
902
986
  }
903
987
 
904
- declare function TripVehiclesSection({ tripRef, durationDays, style, }: TripVehiclesSectionProps): ReactNode;
988
+ /**
989
+ * The session gate. `SessionShell` renders its children throughout the async
990
+ * open window with `SessionContext` populated but no client yet, so any
991
+ * client-backed hook below throws until the credential resolves. The split is
992
+ * not optional: Rules of Hooks forbid returning early before the inner hooks
993
+ * in one component.
994
+ */
995
+ declare function TripVehiclesSection(props: TripVehiclesSectionProps): ReactNode;
905
996
 
906
997
  /** Every panel this surface can show. Ordered by `TAB_ORDER` in
907
998
  * `internal/tripTabRegistry.tsx`, never by this union's declaration order. */
@@ -956,7 +1047,14 @@ interface TripKpiCell {
956
1047
  readonly tone?: 'pos' | 'warn' | 'mute';
957
1048
  }
958
1049
 
959
- declare function TripWorkspace({ tripRef, initialTab, onBack, onOpenTravellerProfile, panels, components, style, }: TripWorkspaceProps): ReactNode;
1050
+ /**
1051
+ * The session gate. `SessionShell` renders its children throughout the async
1052
+ * open window with `SessionContext` populated but no client yet, so any
1053
+ * client-backed hook below throws until the credential resolves. The split is
1054
+ * not optional: Rules of Hooks forbid returning early before the inner hooks
1055
+ * in one component.
1056
+ */
1057
+ declare function TripWorkspace(props: TripWorkspaceProps): ReactNode;
960
1058
 
961
1059
  /** A registry key (hard rule #8), never an inline SVG passed per-item —
962
1060
  * `AdminShell` owns its own icon set, matching `ManagerShell`'s own fixed
@@ -120,7 +120,14 @@ interface AgencySettingsScreenProps {
120
120
  readonly style?: KaafilTokenOverrides;
121
121
  }
122
122
 
123
- declare function AgencySettingsScreen({ title, subtitle, components, style, }: AgencySettingsScreenProps): ReactNode;
123
+ /**
124
+ * The session gate. `SessionShell` renders its children throughout the async
125
+ * open window with `SessionContext` populated but no client yet, so any
126
+ * client-backed hook below throws until the credential resolves. The split is
127
+ * not optional: Rules of Hooks forbid returning early before the inner hooks
128
+ * in one component.
129
+ */
130
+ declare function AgencySettingsScreen(props: AgencySettingsScreenProps): ReactNode;
124
131
 
125
132
  /** A locally-edited draft of one item — the same shape `items[]` needs to
126
133
  * become on save (`PatchChecklistTemplateRequest`'s item shape: `key`,
@@ -491,7 +498,14 @@ interface TripBookingsSectionProps {
491
498
  readonly style?: KaafilTokenOverrides;
492
499
  }
493
500
 
494
- declare function TripBookingsSection({ tripRef, onOpenDocuments, style, }: TripBookingsSectionProps): ReactNode;
501
+ /**
502
+ * The session gate. `SessionShell` renders its children throughout the async
503
+ * open window with `SessionContext` populated but no client yet, so any
504
+ * client-backed hook below throws until the credential resolves. The split is
505
+ * not optional: Rules of Hooks forbid returning early before the inner hooks
506
+ * in one component.
507
+ */
508
+ declare function TripBookingsSection(props: TripBookingsSectionProps): ReactNode;
495
509
 
496
510
  interface ChecklistItemRowProps {
497
511
  readonly item: ChecklistItemLiveRow;
@@ -545,7 +559,14 @@ interface TripChecklistSectionProps {
545
559
  readonly style?: KaafilTokenOverrides;
546
560
  }
547
561
 
548
- declare function TripChecklistSection({ tripRef, readOnly, initialPhase, onItemToggled, components, style, }: TripChecklistSectionProps): ReactNode;
562
+ /**
563
+ * The session gate. `SessionShell` renders its children throughout the async
564
+ * open window with `SessionContext` populated but no client yet, so any
565
+ * client-backed hook below throws until the credential resolves. The split is
566
+ * not optional: Rules of Hooks forbid returning early before the inner hooks
567
+ * in one component.
568
+ */
569
+ declare function TripChecklistSection(props: TripChecklistSectionProps): ReactNode;
549
570
 
550
571
  /** `Trip.eventType`, derived off the row so it cannot drift from the wire. */
551
572
  type TripEventType = AgencyTripRow['eventType'];
@@ -600,7 +621,14 @@ interface TripDocumentsSectionProps {
600
621
  readonly style?: KaafilTokenOverrides;
601
622
  }
602
623
 
603
- declare function TripDocumentsSection({ tripRef, style }: TripDocumentsSectionProps): ReactNode;
624
+ /**
625
+ * The session gate. `SessionShell` renders its children throughout the async
626
+ * open window with `SessionContext` populated but no client yet, so any
627
+ * client-backed hook below throws until the credential resolves. The split is
628
+ * not optional: Rules of Hooks forbid returning early before the inner hooks
629
+ * in one component.
630
+ */
631
+ declare function TripDocumentsSection(props: TripDocumentsSectionProps): ReactNode;
604
632
 
605
633
  /** An expense that is not a tombstone. A VOID is not a tombstone — the row
606
634
  * stays live with `voidedAt` set. */
@@ -622,7 +650,14 @@ interface TripExpensesSectionProps {
622
650
  readonly style?: KaafilTokenOverrides;
623
651
  }
624
652
 
625
- declare function TripExpensesSection({ tripRef, style }: TripExpensesSectionProps): ReactNode;
653
+ /**
654
+ * The session gate. `SessionShell` renders its children throughout the async
655
+ * open window with `SessionContext` populated but no client yet, so any
656
+ * client-backed hook below throws until the credential resolves. The split is
657
+ * not optional: Rules of Hooks forbid returning early before the inner hooks
658
+ * in one component.
659
+ */
660
+ declare function TripExpensesSection(props: TripExpensesSectionProps): ReactNode;
626
661
 
627
662
  type FloatMovementType = FloatMovementRow['type'];
628
663
  type FloatDirection = FloatMovementRow['direction'];
@@ -634,7 +669,14 @@ interface TripFloatSectionProps {
634
669
  readonly style?: KaafilTokenOverrides;
635
670
  }
636
671
 
637
- declare function TripFloatSection({ tripRef, style }: TripFloatSectionProps): ReactNode;
672
+ /**
673
+ * The session gate. `SessionShell` renders its children throughout the async
674
+ * open window with `SessionContext` populated but no client yet, so any
675
+ * client-backed hook below throws until the credential resolves. The split is
676
+ * not optional: Rules of Hooks forbid returning early before the inner hooks
677
+ * in one component.
678
+ */
679
+ declare function TripFloatSection(props: TripFloatSectionProps): ReactNode;
638
680
 
639
681
  interface FormRowProps {
640
682
  readonly form: TripFormRow;
@@ -669,7 +711,14 @@ interface TripFormsSectionProps {
669
711
  readonly style?: KaafilTokenOverrides;
670
712
  }
671
713
 
672
- declare function TripFormsSection({ tripRef, readOnly, components, style, }: TripFormsSectionProps): ReactNode;
714
+ /**
715
+ * The session gate. `SessionShell` renders its children throughout the async
716
+ * open window with `SessionContext` populated but no client yet, so any
717
+ * client-backed hook below throws until the credential resolves. The split is
718
+ * not optional: Rules of Hooks forbid returning early before the inner hooks
719
+ * in one component.
720
+ */
721
+ declare function TripFormsSection(props: TripFormsSectionProps): ReactNode;
673
722
 
674
723
  type ItineraryViewMode = 'days' | 'timeline';
675
724
  interface TripItinerarySectionProps {
@@ -689,7 +738,14 @@ interface ItineraryDayGroup {
689
738
  readonly items: readonly ItineraryItemRow[];
690
739
  }
691
740
 
692
- declare function TripItinerarySection({ tripRef, onOpenVendor, style, }: TripItinerarySectionProps): ReactNode;
741
+ /**
742
+ * The session gate. `SessionShell` renders its children throughout the async
743
+ * open window with `SessionContext` populated but no client yet, so any
744
+ * client-backed hook below throws until the credential resolves. The split is
745
+ * not optional: Rules of Hooks forbid returning early before the inner hooks
746
+ * in one component.
747
+ */
748
+ declare function TripItinerarySection(props: TripItinerarySectionProps): ReactNode;
693
749
 
694
750
  /** How the body is arranged. The reference's own two modes. */
695
751
  type ManifestGroupBy = 'booking_group' | 'none';
@@ -771,7 +827,14 @@ interface TripPaymentsSectionProps {
771
827
  readonly style?: KaafilTokenOverrides;
772
828
  }
773
829
 
774
- declare function TripPaymentsSection({ tripRef, balance, style, }: TripPaymentsSectionProps): ReactNode;
830
+ /**
831
+ * The session gate. `SessionShell` renders its children throughout the async
832
+ * open window with `SessionContext` populated but no client yet, so any
833
+ * client-backed hook below throws until the credential resolves. The split is
834
+ * not optional: Rules of Hooks forbid returning early before the inner hooks
835
+ * in one component.
836
+ */
837
+ declare function TripPaymentsSection(props: TripPaymentsSectionProps): ReactNode;
775
838
 
776
839
  /** A stop that is not a tombstone. */
777
840
  type PickupStopLiveRow = Exclude<PickupStopDeltaRow, {
@@ -804,7 +867,14 @@ interface TripPickupsSectionProps {
804
867
  readonly style?: KaafilTokenOverrides;
805
868
  }
806
869
 
807
- declare function TripPickupsSection({ tripRef, timeZone, tripStartIso, style, }: TripPickupsSectionProps): ReactNode;
870
+ /**
871
+ * The session gate. `SessionShell` renders its children throughout the async
872
+ * open window with `SessionContext` populated but no client yet, so any
873
+ * client-backed hook below throws until the credential resolves. The split is
874
+ * not optional: Rules of Hooks forbid returning early before the inner hooks
875
+ * in one component.
876
+ */
877
+ declare function TripPickupsSection(props: TripPickupsSectionProps): ReactNode;
808
878
 
809
879
  /** A room that is not a tombstone. */
810
880
  type RoomingRoomLiveRow = Exclude<RoomingRoomDeltaRow, {
@@ -847,7 +917,14 @@ interface TripRoomingSectionProps {
847
917
  readonly style?: KaafilTokenOverrides;
848
918
  }
849
919
 
850
- declare function TripRoomingSection({ tripRef, timeZone, tripStartIso, tripEndIso, style, }: TripRoomingSectionProps): ReactNode;
920
+ /**
921
+ * The session gate. `SessionShell` renders its children throughout the async
922
+ * open window with `SessionContext` populated but no client yet, so any
923
+ * client-backed hook below throws until the credential resolves. The split is
924
+ * not optional: Rules of Hooks forbid returning early before the inner hooks
925
+ * in one component.
926
+ */
927
+ declare function TripRoomingSection(props: TripRoomingSectionProps): ReactNode;
851
928
 
852
929
  type VendorCategory = TripVendorRow['category'];
853
930
  /** Where one supplier is used on this trip. A count is `undefined`, never 0,
@@ -871,7 +948,14 @@ interface TripSuppliersSectionProps {
871
948
  readonly style?: KaafilTokenOverrides;
872
949
  }
873
950
 
874
- declare function TripSuppliersSection({ tripRef, style }: TripSuppliersSectionProps): ReactNode;
951
+ /**
952
+ * The session gate. `SessionShell` renders its children throughout the async
953
+ * open window with `SessionContext` populated but no client yet, so any
954
+ * client-backed hook below throws until the credential resolves. The split is
955
+ * not optional: Rules of Hooks forbid returning early before the inner hooks
956
+ * in one component.
957
+ */
958
+ declare function TripSuppliersSection(props: TripSuppliersSectionProps): ReactNode;
875
959
 
876
960
  /** A vehicle that is not a tombstone. */
877
961
  type SeatingVehicleLiveRow = Exclude<SeatingVehicleDeltaRow, {
@@ -901,7 +985,14 @@ interface TripVehiclesSectionProps {
901
985
  readonly style?: KaafilTokenOverrides;
902
986
  }
903
987
 
904
- declare function TripVehiclesSection({ tripRef, durationDays, style, }: TripVehiclesSectionProps): ReactNode;
988
+ /**
989
+ * The session gate. `SessionShell` renders its children throughout the async
990
+ * open window with `SessionContext` populated but no client yet, so any
991
+ * client-backed hook below throws until the credential resolves. The split is
992
+ * not optional: Rules of Hooks forbid returning early before the inner hooks
993
+ * in one component.
994
+ */
995
+ declare function TripVehiclesSection(props: TripVehiclesSectionProps): ReactNode;
905
996
 
906
997
  /** Every panel this surface can show. Ordered by `TAB_ORDER` in
907
998
  * `internal/tripTabRegistry.tsx`, never by this union's declaration order. */
@@ -956,7 +1047,14 @@ interface TripKpiCell {
956
1047
  readonly tone?: 'pos' | 'warn' | 'mute';
957
1048
  }
958
1049
 
959
- declare function TripWorkspace({ tripRef, initialTab, onBack, onOpenTravellerProfile, panels, components, style, }: TripWorkspaceProps): ReactNode;
1050
+ /**
1051
+ * The session gate. `SessionShell` renders its children throughout the async
1052
+ * open window with `SessionContext` populated but no client yet, so any
1053
+ * client-backed hook below throws until the credential resolves. The split is
1054
+ * not optional: Rules of Hooks forbid returning early before the inner hooks
1055
+ * in one component.
1056
+ */
1057
+ declare function TripWorkspace(props: TripWorkspaceProps): ReactNode;
960
1058
 
961
1059
  /** A registry key (hard rule #8), never an inline SVG passed per-item —
962
1060
  * `AdminShell` owns its own icon set, matching `ManagerShell`'s own fixed
@@ -1,8 +1,8 @@
1
- import { useAgencySettings, useAgencyChecklistTemplates, useAgencyForms, useAgencyManagerProfile, useAgencyJourneyTriggers, useBookings, useDirectories, useCapabilityStatuses, useAgencyTrip, useAgencyAdminMe, useTravellerFormResponses, useBuildShareUrl, familySafeSections, useShareLinks, usePaginatedList, useAgencyTrips, useAgencyTripManifest, resolveBlockerDeepLink } from '../chunk-SO4F5LTH.js';
2
- import { useChecklists, useFiles, useExpenses, useVendors, useFloat, useManagers, useForms, useItinerary, useCollections, useParties, usePickups, useRooming, useSeating, classifyError, useTravellerProfile, roomingHeuristicSeverity, useManagerToday, useCloseout, parseRoomingTone, TONE_FAMILIES, SHADES_PER_FAMILY, FALLBACK_GLYPH } from '../chunk-FSSB6J3X.js';
3
- import '../chunk-CCK3WPMF.js';
4
- export { BootErrorScreen, LockedTripScreen, NotFoundScreen, OfflineFallbackScreen, PlanLockedScreen, SessionExpiredScreen } from '../chunk-GOSSRXBN.js';
5
- import { createRegistry, useKaafilChrome, tokenStyle, useSession, useKaafilClient, isDevelopment } from '../chunk-TESIDLJ6.js';
1
+ import { useAgencySettings, useAgencyChecklistTemplates, useAgencyForms, useAgencyManagerProfile, useAgencyJourneyTriggers, useBookings, useDirectories, useCapabilityStatuses, useAgencyTrip, useAgencyAdminMe, useTravellerFormResponses, useBuildShareUrl, familySafeSections, useShareLinks, usePaginatedList, useAgencyTrips, useAgencyTripManifest, resolveBlockerDeepLink } from '../chunk-OXCVTVBY.js';
2
+ import { useChecklists, useFiles, useExpenses, useVendors, useFloat, useManagers, useForms, useItinerary, useCollections, useParties, usePickups, useRooming, useSeating, classifyError, useTravellerProfile, roomingHeuristicSeverity, useManagerToday, useCloseout, parseRoomingTone, TONE_FAMILIES, SHADES_PER_FAMILY, FALLBACK_GLYPH } from '../chunk-U2443I5Q.js';
3
+ import '../chunk-VAUGZOY6.js';
4
+ export { BootErrorScreen, LockedTripScreen, NotFoundScreen, OfflineFallbackScreen, PlanLockedScreen, SessionExpiredScreen } from '../chunk-IDKRXLMY.js';
5
+ import { createRegistry, useSession, useKaafilChrome, tokenStyle, useKaafilClient, isDevelopment } from '../chunk-WMBFBZ7Q.js';
6
6
  import { useState, useEffect, useCallback, useMemo, useId, useRef, Children } from 'react';
7
7
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
8
8
 
@@ -997,7 +997,14 @@ function orderSectionsByCustomized(sections, isCustomized) {
997
997
  ...sections.filter((section) => !isCustomized(section))
998
998
  ];
999
999
  }
1000
- function AgencySettingsScreen({
1000
+ function AgencySettingsScreen(props) {
1001
+ const session = useSession();
1002
+ if (session.status !== "authenticated") {
1003
+ return null;
1004
+ }
1005
+ return /* @__PURE__ */ jsx(ReadyAgencySettingsScreen, { ...props });
1006
+ }
1007
+ function ReadyAgencySettingsScreen({
1001
1008
  title,
1002
1009
  subtitle,
1003
1010
  components,
@@ -7657,7 +7664,14 @@ function voucherCount(row) {
7657
7664
  return row.voucherFileKeys?.length ?? 0;
7658
7665
  }
7659
7666
  var DAY = { day: "numeric", month: "short", year: "numeric" };
7660
- function TripBookingsSection({
7667
+ function TripBookingsSection(props) {
7668
+ const session = useSession();
7669
+ if (session.status !== "authenticated") {
7670
+ return null;
7671
+ }
7672
+ return /* @__PURE__ */ jsx(ReadyTripBookingsSection, { ...props });
7673
+ }
7674
+ function ReadyTripBookingsSection({
7661
7675
  tripRef,
7662
7676
  onOpenDocuments,
7663
7677
  style
@@ -8459,7 +8473,14 @@ function codeOf(error) {
8459
8473
  const classification = error !== null && typeof error === "object" && "classification" in error ? error.classification : void 0;
8460
8474
  return classification?.code ?? "unknown";
8461
8475
  }
8462
- function TripChecklistSection({
8476
+ function TripChecklistSection(props) {
8477
+ const session = useSession();
8478
+ if (session.status !== "authenticated") {
8479
+ return null;
8480
+ }
8481
+ return /* @__PURE__ */ jsx(ReadyTripChecklistSection, { ...props });
8482
+ }
8483
+ function ReadyTripChecklistSection({
8463
8484
  tripRef,
8464
8485
  readOnly = false,
8465
8486
  initialPhase,
@@ -10036,7 +10057,14 @@ function UploadDialog({
10036
10057
  }
10037
10058
  );
10038
10059
  }
10039
- function TripDocumentsSection({ tripRef, style }) {
10060
+ function TripDocumentsSection(props) {
10061
+ const session = useSession();
10062
+ if (session.status !== "authenticated") {
10063
+ return null;
10064
+ }
10065
+ return /* @__PURE__ */ jsx(ReadyTripDocumentsSection, { ...props });
10066
+ }
10067
+ function ReadyTripDocumentsSection({ tripRef, style }) {
10040
10068
  const { t } = useKaafilChrome();
10041
10069
  const files = useFiles({ tripRef });
10042
10070
  const expenses = useExpenses(tripRef);
@@ -10888,7 +10916,14 @@ function isCloseoutLocked2(error) {
10888
10916
  const classification = error.classification;
10889
10917
  return classification?.status === 423 || classification?.code === "TRIP_CLOSED_OUT";
10890
10918
  }
10891
- function TripExpensesSection({ tripRef, style }) {
10919
+ function TripExpensesSection(props) {
10920
+ const session = useSession();
10921
+ if (session.status !== "authenticated") {
10922
+ return null;
10923
+ }
10924
+ return /* @__PURE__ */ jsx(ReadyTripExpensesSection, { ...props });
10925
+ }
10926
+ function ReadyTripExpensesSection({ tripRef, style }) {
10892
10927
  const { t } = useKaafilChrome();
10893
10928
  const expenses = useExpenses(tripRef);
10894
10929
  const vendors = useVendors(tripRef, "");
@@ -11718,7 +11753,14 @@ function refusedBalanceOf(error) {
11718
11753
  const details = error.details;
11719
11754
  return details?.currentBalanceMinor;
11720
11755
  }
11721
- function TripFloatSection({ tripRef, style }) {
11756
+ function TripFloatSection(props) {
11757
+ const session = useSession();
11758
+ if (session.status !== "authenticated") {
11759
+ return null;
11760
+ }
11761
+ return /* @__PURE__ */ jsx(ReadyTripFloatSection, { ...props });
11762
+ }
11763
+ function ReadyTripFloatSection({ tripRef, style }) {
11722
11764
  const { t } = useKaafilChrome();
11723
11765
  const float = useFloat(tripRef);
11724
11766
  const managers = useManagers(tripRef);
@@ -12444,7 +12486,14 @@ function codeOf4(error) {
12444
12486
  const classification = error !== null && typeof error === "object" && "classification" in error ? error.classification : void 0;
12445
12487
  return classification?.code ?? "unknown";
12446
12488
  }
12447
- function TripFormsSection({
12489
+ function TripFormsSection(props) {
12490
+ const session = useSession();
12491
+ if (session.status !== "authenticated") {
12492
+ return null;
12493
+ }
12494
+ return /* @__PURE__ */ jsx(ReadyTripFormsSection, { ...props });
12495
+ }
12496
+ function ReadyTripFormsSection({
12448
12497
  tripRef,
12449
12498
  readOnly = false,
12450
12499
  components,
@@ -13843,7 +13892,14 @@ function codeOf5(error) {
13843
13892
  const classification = error !== null && typeof error === "object" && "classification" in error ? error.classification : void 0;
13844
13893
  return classification?.code ?? "unknown";
13845
13894
  }
13846
- function TripItinerarySection({
13895
+ function TripItinerarySection(props) {
13896
+ const session = useSession();
13897
+ if (session.status !== "authenticated") {
13898
+ return null;
13899
+ }
13900
+ return /* @__PURE__ */ jsx(ReadyTripItinerarySection, { ...props });
13901
+ }
13902
+ function ReadyTripItinerarySection({
13847
13903
  tripRef,
13848
13904
  onOpenVendor,
13849
13905
  style
@@ -16801,7 +16857,14 @@ function isCloseoutLocked4(error) {
16801
16857
  const classification = error.classification;
16802
16858
  return classification?.status === 423 || classification?.code === "TRIP_CLOSED_OUT";
16803
16859
  }
16804
- function TripPaymentsSection({
16860
+ function TripPaymentsSection(props) {
16861
+ const session = useSession();
16862
+ if (session.status !== "authenticated") {
16863
+ return null;
16864
+ }
16865
+ return /* @__PURE__ */ jsx(ReadyTripPaymentsSection, { ...props });
16866
+ }
16867
+ function ReadyTripPaymentsSection({
16805
16868
  tripRef,
16806
16869
  balance,
16807
16870
  style
@@ -17932,7 +17995,14 @@ function codeOf7(error) {
17932
17995
  const classification = error !== null && typeof error === "object" && "classification" in error ? error.classification : void 0;
17933
17996
  return classification?.code ?? "unknown";
17934
17997
  }
17935
- function TripPickupsSection({
17998
+ function TripPickupsSection(props) {
17999
+ const session = useSession();
18000
+ if (session.status !== "authenticated") {
18001
+ return null;
18002
+ }
18003
+ return /* @__PURE__ */ jsx(ReadyTripPickupsSection, { ...props });
18004
+ }
18005
+ function ReadyTripPickupsSection({
17936
18006
  tripRef,
17937
18007
  timeZone,
17938
18008
  tripStartIso,
@@ -19407,7 +19477,14 @@ function codeOf8(error) {
19407
19477
  const classification = error !== null && typeof error === "object" && "classification" in error ? error.classification : void 0;
19408
19478
  return classification?.code ?? "unknown";
19409
19479
  }
19410
- function TripRoomingSection({
19480
+ function TripRoomingSection(props) {
19481
+ const session = useSession();
19482
+ if (session.status !== "authenticated") {
19483
+ return null;
19484
+ }
19485
+ return /* @__PURE__ */ jsx(ReadyTripRoomingSection, { ...props });
19486
+ }
19487
+ function ReadyTripRoomingSection({
19411
19488
  tripRef,
19412
19489
  timeZone,
19413
19490
  tripStartIso,
@@ -20323,7 +20400,14 @@ function serverBlockOf(error) {
20323
20400
  if (details?.rule !== "vendor.deleteBlockedByReferences") return void 0;
20324
20401
  return { vehicles: details.vehicleCount ?? 0, expenses: details.expenseCount ?? 0 };
20325
20402
  }
20326
- function TripSuppliersSection({ tripRef, style }) {
20403
+ function TripSuppliersSection(props) {
20404
+ const session = useSession();
20405
+ if (session.status !== "authenticated") {
20406
+ return null;
20407
+ }
20408
+ return /* @__PURE__ */ jsx(ReadyTripSuppliersSection, { ...props });
20409
+ }
20410
+ function ReadyTripSuppliersSection({ tripRef, style }) {
20327
20411
  const { t } = useKaafilChrome();
20328
20412
  const vendors = useVendors(tripRef, "");
20329
20413
  const seating = useSeating(tripRef);
@@ -21847,7 +21931,14 @@ function codeOf10(error) {
21847
21931
  const classification = error !== null && typeof error === "object" && "classification" in error ? error.classification : void 0;
21848
21932
  return classification?.code ?? "unknown";
21849
21933
  }
21850
- function TripVehiclesSection({
21934
+ function TripVehiclesSection(props) {
21935
+ const session = useSession();
21936
+ if (session.status !== "authenticated") {
21937
+ return null;
21938
+ }
21939
+ return /* @__PURE__ */ jsx(ReadyTripVehiclesSection, { ...props });
21940
+ }
21941
+ function ReadyTripVehiclesSection({
21851
21942
  tripRef,
21852
21943
  durationDays,
21853
21944
  style
@@ -23250,7 +23341,14 @@ function TripWorkspaceHead({ trip, onBack, style }) {
23250
23341
  ] })
23251
23342
  ] }) });
23252
23343
  }
23253
- function TripWorkspace({
23344
+ function TripWorkspace(props) {
23345
+ const session = useSession();
23346
+ if (session.status !== "authenticated") {
23347
+ return /* @__PURE__ */ jsx(TripWorkspaceSkeleton, {});
23348
+ }
23349
+ return /* @__PURE__ */ jsx(ReadyTripWorkspace, { ...props });
23350
+ }
23351
+ function ReadyTripWorkspace({
23254
23352
  tripRef,
23255
23353
  initialTab,
23256
23354
  onBack,