@ornikar/kitt-universal 9.1.3 → 9.3.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.
Files changed (63) hide show
  1. package/dist/definitions/ModalBehaviour/ModalBehaviour.d.ts +18 -0
  2. package/dist/definitions/ModalBehaviour/ModalBehaviour.d.ts.map +1 -0
  3. package/dist/definitions/ModalBehaviour/ModalBehaviourPortal.d.ts +7 -0
  4. package/dist/definitions/ModalBehaviour/ModalBehaviourPortal.d.ts.map +1 -0
  5. package/dist/definitions/ModalBehaviour/ModalBehaviourPortal.web.d.ts +4 -0
  6. package/dist/definitions/ModalBehaviour/ModalBehaviourPortal.web.d.ts.map +1 -0
  7. package/dist/definitions/ModalBehaviour/OnCloseContext.d.ts +11 -0
  8. package/dist/definitions/ModalBehaviour/OnCloseContext.d.ts.map +1 -0
  9. package/dist/definitions/NavigationModal/Body.d.ts +9 -0
  10. package/dist/definitions/NavigationModal/Body.d.ts.map +1 -0
  11. package/dist/definitions/NavigationModal/ContentPadding.d.ts +7 -0
  12. package/dist/definitions/NavigationModal/ContentPadding.d.ts.map +1 -0
  13. package/dist/definitions/NavigationModal/Footer.d.ts +11 -0
  14. package/dist/definitions/NavigationModal/Footer.d.ts.map +1 -0
  15. package/dist/definitions/NavigationModal/Header.d.ts +31 -0
  16. package/dist/definitions/NavigationModal/Header.d.ts.map +1 -0
  17. package/dist/definitions/NavigationModal/NavigationModal.d.ts +17 -0
  18. package/dist/definitions/NavigationModal/NavigationModal.d.ts.map +1 -0
  19. package/dist/definitions/NavigationModal/NavigationModalContainer.d.ts +8 -0
  20. package/dist/definitions/NavigationModal/NavigationModalContainer.d.ts.map +1 -0
  21. package/dist/definitions/index.d.ts +6 -0
  22. package/dist/definitions/index.d.ts.map +1 -1
  23. package/dist/definitions/native-base/KittNativeBaseProvider.d.ts +3498 -3556
  24. package/dist/definitions/native-base/KittNativeBaseProvider.d.ts.map +1 -1
  25. package/dist/definitions/native-base/acceptable-native-base-props.d.ts +9 -0
  26. package/dist/definitions/native-base/acceptable-native-base-props.d.ts.map +1 -0
  27. package/dist/definitions/native-base/layout.d.ts +23 -0
  28. package/dist/definitions/native-base/layout.d.ts.map +1 -0
  29. package/dist/definitions/native-base/primitives.d.ts +21 -0
  30. package/dist/definitions/native-base/primitives.d.ts.map +1 -0
  31. package/dist/definitions/themes/default.d.ts +1 -0
  32. package/dist/definitions/themes/default.d.ts.map +1 -1
  33. package/dist/definitions/themes/late-ocean/navigationModal.d.ts +6 -0
  34. package/dist/definitions/themes/late-ocean/navigationModal.d.ts.map +1 -0
  35. package/dist/definitions/typography/Typography.d.ts.map +1 -1
  36. package/dist/index-browser-all.es.android.js +378 -70
  37. package/dist/index-browser-all.es.android.js.map +1 -1
  38. package/dist/index-browser-all.es.ios.js +378 -70
  39. package/dist/index-browser-all.es.ios.js.map +1 -1
  40. package/dist/index-browser-all.es.js +378 -70
  41. package/dist/index-browser-all.es.js.map +1 -1
  42. package/dist/index-browser-all.es.web.js +457 -126
  43. package/dist/index-browser-all.es.web.js.map +1 -1
  44. package/dist/index-node-14.17.cjs.js +337 -19
  45. package/dist/index-node-14.17.cjs.js.map +1 -1
  46. package/dist/index-node-14.17.cjs.web.css +1 -0
  47. package/dist/index-node-14.17.cjs.web.js +349 -19
  48. package/dist/index-node-14.17.cjs.web.js.map +1 -1
  49. package/dist/linaria-themes-browser-all.es.android.js +7 -1
  50. package/dist/linaria-themes-browser-all.es.android.js.map +1 -1
  51. package/dist/linaria-themes-browser-all.es.ios.js +7 -1
  52. package/dist/linaria-themes-browser-all.es.ios.js.map +1 -1
  53. package/dist/linaria-themes-browser-all.es.js +7 -1
  54. package/dist/linaria-themes-browser-all.es.js.map +1 -1
  55. package/dist/linaria-themes-browser-all.es.web.js +7 -1
  56. package/dist/linaria-themes-browser-all.es.web.js.map +1 -1
  57. package/dist/linaria-themes-node-14.17.cjs.js +7 -1
  58. package/dist/linaria-themes-node-14.17.cjs.js.map +1 -1
  59. package/dist/linaria-themes-node-14.17.cjs.web.js +7 -1
  60. package/dist/linaria-themes-node-14.17.cjs.web.js.map +1 -1
  61. package/dist/styles.css +1 -0
  62. package/dist/tsbuildinfo +1 -1
  63. package/package.json +6 -3
@@ -181,6 +181,14 @@ function Typography({
181
181
  base: baseOrDefaultToBody
182
182
  });
183
183
 
184
+ if (process.env.NODE_ENV !== 'production') {
185
+ Object.entries(type).forEach(([key, value]) => {
186
+ if (value && isTypeHeader(value) !== isHeader) {
187
+ throw new Error(`Invalid value for "${key}": "${value}" is ${isHeader ? 'not' : ''} an header. Don't mix headers and bodies.`);
188
+ }
189
+ });
190
+ }
191
+
184
192
  const text = /*#__PURE__*/jsxRuntime.jsx(nativeBase.Text, {
185
193
  accessibilityRole: accessibilityRole || undefined,
186
194
  fontSize: fontSizeForNativeBase,
@@ -867,15 +875,15 @@ function ExternalAppLink({
867
875
  const canOpen = await reactNative.Linking.canOpenURL(href);
868
876
 
869
877
  if (canOpen) {
870
- reactNative.Linking.openURL(href).catch(err => {
871
- console.error(`An error occurred while opening ${href}`, err);
872
- onOpenAppError?.(`An error occurred while opening ${href}`);
873
- });
874
-
875
878
  if (onPress) {
876
879
  onPress(e);
877
880
  if (e?.defaultPrevented) return;
878
881
  }
882
+
883
+ reactNative.Linking.openURL(href).catch(err => {
884
+ console.error(`An error occurred while opening ${href}`, err);
885
+ onOpenAppError?.(`An error occurred while opening ${href}`);
886
+ });
879
887
  } else {
880
888
  onOpenAppError?.(`Cannot open url: ${href}`);
881
889
  }
@@ -1425,6 +1433,11 @@ const listItem = {
1425
1433
  innerMargin: 8
1426
1434
  };
1427
1435
 
1436
+ const navigationModal = {
1437
+ height: 56,
1438
+ padding: 16
1439
+ };
1440
+
1428
1441
  const pageLoader = {
1429
1442
  size: 60,
1430
1443
  strokeWidth: 3,
@@ -1570,7 +1583,8 @@ const theme = {
1570
1583
  skeleton,
1571
1584
  tag,
1572
1585
  tooltip,
1573
- typography
1586
+ typography,
1587
+ navigationModal
1574
1588
  };
1575
1589
 
1576
1590
  function matchWindowSize({
@@ -2239,7 +2253,7 @@ function IconButton({
2239
2253
  });
2240
2254
  }
2241
2255
 
2242
- const OnCloseContext = /*#__PURE__*/React.createContext(() => {});
2256
+ const OnCloseContext$1 = /*#__PURE__*/React.createContext(() => {});
2243
2257
 
2244
2258
  const HeaderView = /*#__PURE__*/styled__default.View.withConfig({
2245
2259
  displayName: "Header__HeaderView",
@@ -2273,7 +2287,7 @@ function ModalHeader({
2273
2287
  right,
2274
2288
  children
2275
2289
  }) {
2276
- const onClose = React.useContext(OnCloseContext);
2290
+ const onClose = React.useContext(OnCloseContext$1);
2277
2291
  const isIconLeft = !!left;
2278
2292
  return /*#__PURE__*/jsxRuntime.jsxs(HeaderView, {
2279
2293
  children: [isIconLeft && /*#__PURE__*/jsxRuntime.jsx(LeftIconView, {
@@ -2313,7 +2327,7 @@ function Modal({
2313
2327
  onEntered,
2314
2328
  onExited
2315
2329
  }) {
2316
- return /*#__PURE__*/jsxRuntime.jsx(OnCloseContext.Provider, {
2330
+ return /*#__PURE__*/jsxRuntime.jsx(OnCloseContext$1.Provider, {
2317
2331
  value: onClose,
2318
2332
  children: /*#__PURE__*/jsxRuntime.jsx(reactNative.Modal, {
2319
2333
  transparent: true,
@@ -2878,7 +2892,7 @@ function TextArea({ ...props
2878
2892
  });
2879
2893
  }
2880
2894
 
2881
- const Body = /*#__PURE__*/styled__default.View.withConfig({
2895
+ const Body$1 = /*#__PURE__*/styled__default.View.withConfig({
2882
2896
  displayName: "Body",
2883
2897
  componentId: "kitt-universal__sc-1ofncfn-0"
2884
2898
  })(["", " background-color:", ";flex:1;"], ({
@@ -2893,7 +2907,7 @@ const Body = /*#__PURE__*/styled__default.View.withConfig({
2893
2907
  function FullScreenModalBody({
2894
2908
  children
2895
2909
  }) {
2896
- return /*#__PURE__*/jsxRuntime.jsx(Body, {
2910
+ return /*#__PURE__*/jsxRuntime.jsx(Body$1, {
2897
2911
  children: children
2898
2912
  });
2899
2913
  }
@@ -2918,7 +2932,7 @@ function getHeaderHorizontalMediumPadding(spacing) {
2918
2932
  return spacing * 6;
2919
2933
  }
2920
2934
 
2921
- const Header = /*#__PURE__*/styled__default.View.withConfig({
2935
+ const Header$1 = /*#__PURE__*/styled__default.View.withConfig({
2922
2936
  displayName: "Header",
2923
2937
  componentId: "kitt-universal__sc-dfmxi1-1"
2924
2938
  })(["", ";border-bottom-color:", ";border-bottom-width:1px;flex-direction:row;align-items:center;"], ({
@@ -2995,7 +3009,7 @@ function FullScreenModalHeader({
2995
3009
  setRightWidth(event.nativeEvent.layout.width);
2996
3010
  };
2997
3011
 
2998
- return /*#__PURE__*/jsxRuntime.jsxs(Header, {
3012
+ return /*#__PURE__*/jsxRuntime.jsxs(Header$1, {
2999
3013
  insetTop: reactNative.Platform.OS === 'ios' ? undefined : top,
3000
3014
  children: [left ? /*#__PURE__*/jsxRuntime.jsx(SideContainer, {
3001
3015
  onLayout: e => handleLayoutChange(e, 'left'),
@@ -3360,6 +3374,69 @@ function Message({
3360
3374
  });
3361
3375
  }
3362
3376
 
3377
+ function ModalBehaviourPortal({
3378
+ children
3379
+ }) {
3380
+ // eslint-disable-next-line react/jsx-no-useless-fragment
3381
+ return /*#__PURE__*/jsxRuntime.jsx(jsxRuntime.Fragment, {
3382
+ children: children
3383
+ });
3384
+ }
3385
+
3386
+ const OnCloseContext = /*#__PURE__*/React.createContext(() => {});
3387
+ function OnCloseProvider({
3388
+ children,
3389
+ onClose
3390
+ }) {
3391
+ return /*#__PURE__*/jsxRuntime.jsx(OnCloseContext.Provider, {
3392
+ value: onClose,
3393
+ children: children
3394
+ });
3395
+ }
3396
+ function useOnCloseModalBehaviour() {
3397
+ const onClose = React.useContext(OnCloseContext);
3398
+ return onClose;
3399
+ }
3400
+
3401
+ function CloseButton({
3402
+ children,
3403
+ onPress
3404
+ }) {
3405
+ const onCloseContextCallback = useOnCloseModalBehaviour();
3406
+ return /*#__PURE__*/React.cloneElement(children, {
3407
+ onPress: () => {
3408
+ if (onPress) onPress();
3409
+ onCloseContextCallback();
3410
+ }
3411
+ });
3412
+ }
3413
+
3414
+ const ModalBehaviourContainer = /*#__PURE__*/styled__default(reactNative.View).withConfig({
3415
+ displayName: "ModalBehaviour__ModalBehaviourContainer",
3416
+ componentId: "kitt-universal__sc-tj3606-0"
3417
+ })(["", ""], () => {
3418
+ if (reactNative.Platform.OS !== 'web') return undefined;
3419
+ return styled.css(["position:fixed;top:0;left:0;width:100%;"]);
3420
+ });
3421
+ function ModalBehaviour({
3422
+ children,
3423
+ visible,
3424
+ style,
3425
+ onClose
3426
+ }) {
3427
+ return /*#__PURE__*/jsxRuntime.jsx(OnCloseProvider, {
3428
+ onClose: onClose,
3429
+ children: /*#__PURE__*/jsxRuntime.jsx(ModalBehaviourPortal, {
3430
+ visible: visible,
3431
+ children: visible ? /*#__PURE__*/jsxRuntime.jsx(ModalBehaviourContainer, {
3432
+ style: style,
3433
+ children: children
3434
+ }) : null
3435
+ })
3436
+ });
3437
+ }
3438
+ ModalBehaviour.CloseButton = CloseButton;
3439
+
3363
3440
  const createKittSpaces = spacing => {
3364
3441
  const sizes = {};
3365
3442
 
@@ -3368,12 +3445,15 @@ const createKittSpaces = spacing => {
3368
3445
  }
3369
3446
 
3370
3447
  return sizes;
3371
- }; // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/explicit-function-return-type -- let typescript infer types
3448
+ }; // reset native-base to be able to set size / space as a number
3449
+ // https://docs.nativebase.io/next/default-theme#h2-size
3372
3450
 
3373
3451
 
3452
+ const overridenNativeBaseSizeandSpaceScale = Object.fromEntries([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 16, 20, 24, 32, 40, 48, 56, 64, 72, 80, 96, 0.5, 1.5, 2.5, 3.5].map(value => [value, value])); // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/explicit-function-return-type -- let typescript infer types
3453
+
3374
3454
  const createKittNativeBaseCustomTheme = theme => {
3375
3455
  const spaces = createKittSpaces(theme.spacing);
3376
- return nativeBase.extendTheme({
3456
+ const extendedTheme = nativeBase.extendTheme({
3377
3457
  colors: {
3378
3458
  kitt: { ...theme.colors,
3379
3459
  typography: theme.typography.colors
@@ -3383,11 +3463,11 @@ const createKittNativeBaseCustomTheme = theme => {
3383
3463
  'kitt.borderRadius': theme.card.borderRadius
3384
3464
  },
3385
3465
  sizes: { ...spaces,
3386
- // reset native-base to be able to set size as number
3387
- // https://docs.nativebase.io/next/default-theme#h2-size
3388
- ...Object.fromEntries([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 16, 20, 24, 32, 40, 48, 56, 64, 78, 80, 96, 0.5, 1.5, 2.5, 3.5].map(value => [value, value]))
3466
+ ...overridenNativeBaseSizeandSpaceScale
3467
+ },
3468
+ space: { ...spaces,
3469
+ ...overridenNativeBaseSizeandSpaceScale
3389
3470
  },
3390
- space: spaces,
3391
3471
  breakpoints: {
3392
3472
  // kitt breakpoints
3393
3473
  base: KittBreakpoints.BASE,
@@ -3483,6 +3563,9 @@ const createKittNativeBaseCustomTheme = theme => {
3483
3563
  }
3484
3564
  }
3485
3565
  });
3566
+ return { ...extendedTheme,
3567
+ space: extendedTheme.space
3568
+ };
3486
3569
  };
3487
3570
  function KittNativeBaseProvider({
3488
3571
  theme,
@@ -3498,6 +3581,233 @@ function KittNativeBaseProvider({
3498
3581
  });
3499
3582
  }
3500
3583
 
3584
+ const Stack = nativeBase.Stack;
3585
+ const VStack = nativeBase.VStack;
3586
+ const HStack = nativeBase.HStack;
3587
+
3588
+ const View = nativeBase.View;
3589
+ const ScrollView = nativeBase.ScrollView;
3590
+ const Pressable = nativeBase.Pressable;
3591
+
3592
+ const ViewWithPadding = /*#__PURE__*/styled__default(reactNative.View).withConfig({
3593
+ displayName: "ContentPadding__ViewWithPadding",
3594
+ componentId: "kitt-universal__sc-1rprqcv-0"
3595
+ })(["padding:", ";"], ({
3596
+ theme
3597
+ }) => `0 ${theme.kitt.navigationModal.padding}px`);
3598
+ function ContentPadding({
3599
+ children,
3600
+ ...props
3601
+ }) {
3602
+ return /*#__PURE__*/jsxRuntime.jsx(ViewWithPadding, { ...props,
3603
+ children: children
3604
+ });
3605
+ }
3606
+
3607
+ const StyledViewWithPadding = /*#__PURE__*/styled__default(ContentPadding).withConfig({
3608
+ displayName: "Body__StyledViewWithPadding",
3609
+ componentId: "kitt-universal__sc-oc39vn-0"
3610
+ })(["padding-top:", "px;padding-bottom:", "px;"], ({
3611
+ theme
3612
+ }) => theme.kitt.spacing * 6, ({
3613
+ theme,
3614
+ $insetBottom
3615
+ }) => Math.max(theme.kitt.spacing * 4, $insetBottom));
3616
+ function Body({
3617
+ children,
3618
+ shouldHandleBottomNotch,
3619
+ style,
3620
+ ...props
3621
+ }) {
3622
+ const {
3623
+ bottom
3624
+ } = reactNativeSafeAreaContext.useSafeAreaInsets();
3625
+ const insetBottom = shouldHandleBottomNotch ? bottom : 0;
3626
+ return /*#__PURE__*/jsxRuntime.jsx(StyledViewWithPadding, { ...props,
3627
+ $insetBottom: insetBottom,
3628
+ style: style,
3629
+ children: children
3630
+ });
3631
+ }
3632
+
3633
+ const FooterContainer = /*#__PURE__*/styled__default(ContentPadding).withConfig({
3634
+ displayName: "Footer__FooterContainer",
3635
+ componentId: "kitt-universal__sc-1yjprfg-0"
3636
+ })(["padding-top:", "px;padding-bottom:", "px;", ";"], ({
3637
+ theme
3638
+ }) => theme.kitt.spacing * 3, ({
3639
+ theme,
3640
+ $insetBottom
3641
+ }) => Math.max(theme.kitt.spacing * 3, $insetBottom), ({
3642
+ $hasSeparator
3643
+ }) => {
3644
+ if (!$hasSeparator) return undefined;
3645
+ return styled.css(["border-top-width:1px;border-top-color:", ";"], ({
3646
+ theme
3647
+ }) => theme.kitt.colors.separator);
3648
+ });
3649
+ function Footer({
3650
+ shouldHandleBottomNotch = true,
3651
+ hasSeparator = true,
3652
+ children,
3653
+ style
3654
+ }) {
3655
+ const {
3656
+ bottom
3657
+ } = reactNativeSafeAreaContext.useSafeAreaInsets();
3658
+ const insetBottom = shouldHandleBottomNotch ? bottom : 0;
3659
+ return /*#__PURE__*/jsxRuntime.jsx(FooterContainer, {
3660
+ $insetBottom: insetBottom,
3661
+ $hasSeparator: hasSeparator,
3662
+ style: style,
3663
+ children: children
3664
+ });
3665
+ }
3666
+
3667
+ const HeaderContainer = /*#__PURE__*/styled__default(ContentPadding).withConfig({
3668
+ displayName: "Header__HeaderContainer",
3669
+ componentId: "kitt-universal__sc-1g7sbq-0"
3670
+ })(["height:", "px;width:100%;justify-content:center;background-color:", ";padding-right:", "px;padding-left:", "px;", ";"], ({
3671
+ theme
3672
+ }) => theme.kitt.navigationModal.height, ({
3673
+ theme,
3674
+ $isTransparent
3675
+ }) => {
3676
+ if ($isTransparent) return 'transparent';
3677
+ return theme.kitt.colors.uiBackgroundLight;
3678
+ }, ({
3679
+ theme,
3680
+ $hasRight
3681
+ }) => $hasRight ? theme.kitt.spacing * 2 : theme.kitt.navigationModal.padding, ({
3682
+ theme,
3683
+ $hasLeft
3684
+ }) => $hasLeft ? theme.kitt.spacing * 2 : theme.kitt.navigationModal.padding, ({
3685
+ $hasSeparator
3686
+ }) => {
3687
+ if (!$hasSeparator) return undefined;
3688
+ return styled.css(["border-bottom-width:1px;border-bottom-color:", ";"], ({
3689
+ theme
3690
+ }) => theme.kitt.colors.separator);
3691
+ });
3692
+ const Row = /*#__PURE__*/styled__default(reactNative.View).withConfig({
3693
+ displayName: "Header__Row",
3694
+ componentId: "kitt-universal__sc-1g7sbq-1"
3695
+ })(["flex-direction:row;justify-content:", ";align-items:center;"], ({
3696
+ $hasContent,
3697
+ $hasLeft
3698
+ }) => !$hasContent && !$hasLeft ? 'flex-end' : 'space-between');
3699
+ const ButtonContainer = /*#__PURE__*/styled__default.View.withConfig({
3700
+ displayName: "Header__ButtonContainer",
3701
+ componentId: "kitt-universal__sc-1g7sbq-2"
3702
+ })(["width:", "px;"], ({
3703
+ theme
3704
+ }) => theme.kitt.iconButton.width);
3705
+ const ChildrenComponent = /*#__PURE__*/styled__default(reactNative.View).withConfig({
3706
+ displayName: "Header__ChildrenComponent",
3707
+ componentId: "kitt-universal__sc-1g7sbq-3"
3708
+ })(["flex:1;align-items:center;", ";"], ({
3709
+ theme,
3710
+ $hasLeft,
3711
+ $hasRight
3712
+ }) => {
3713
+ const paddingHorizontal = theme.kitt.spacing * 2;
3714
+ return styled.css(["padding-right:", "px;padding-left:", "px;"], $hasRight ? paddingHorizontal : 0, $hasLeft ? paddingHorizontal : 0);
3715
+ });
3716
+ const HeaderTitle = /*#__PURE__*/styled__default(Typography.Text).withConfig({
3717
+ displayName: "Header__HeaderTitle",
3718
+ componentId: "kitt-universal__sc-1g7sbq-4"
3719
+ })(["flex:1;text-align:", ";", ";"], ({
3720
+ $hasLeft,
3721
+ $hasRight
3722
+ }) => {
3723
+ if (!$hasLeft && $hasRight) return 'left';
3724
+ return 'center';
3725
+ }, ({
3726
+ theme,
3727
+ $hasLeft,
3728
+ $hasRight
3729
+ }) => {
3730
+ const paddingHorizontal = theme.kitt.spacing * 2;
3731
+ return styled.css(["padding-right:", "px;padding-left:", "px;"], $hasRight ? paddingHorizontal : 0, $hasLeft ? paddingHorizontal : 0);
3732
+ });
3733
+ function Header({
3734
+ hasSeparator = true,
3735
+ isTransparent,
3736
+ title,
3737
+ children,
3738
+ right,
3739
+ left,
3740
+ style
3741
+ }) {
3742
+ const sharedProps = {
3743
+ $hasLeft: Boolean(left),
3744
+ $hasRight: Boolean(right)
3745
+ };
3746
+ return /*#__PURE__*/jsxRuntime.jsx(HeaderContainer, {
3747
+ $isTransparent: isTransparent,
3748
+ $hasSeparator: hasSeparator,
3749
+ $hasLeft: Boolean(left),
3750
+ $hasRight: Boolean(right),
3751
+ style: style,
3752
+ children: /*#__PURE__*/jsxRuntime.jsxs(Row, {
3753
+ $hasContent: Boolean(title || children),
3754
+ ...sharedProps,
3755
+ children: [left ? /*#__PURE__*/jsxRuntime.jsx(ButtonContainer, {
3756
+ children: left
3757
+ }) : null, title ? /*#__PURE__*/jsxRuntime.jsx(HeaderTitle, { ...sharedProps,
3758
+ variant: "bold",
3759
+ children: title
3760
+ }) : null, children ? /*#__PURE__*/jsxRuntime.jsx(ChildrenComponent, { ...sharedProps,
3761
+ children: children
3762
+ }) : null, right || left ? /*#__PURE__*/jsxRuntime.jsx(ButtonContainer, {
3763
+ children: right
3764
+ }) : null]
3765
+ })
3766
+ });
3767
+ }
3768
+
3769
+ const NavigationModalContainer = /*#__PURE__*/styled__default(reactNative.View).withConfig({
3770
+ displayName: "NavigationModalContainer",
3771
+ componentId: "kitt-universal__sc-n0bwvk-0"
3772
+ })(["position:relative;background-color:", ";flex:1;", ""], ({
3773
+ theme,
3774
+ $backgroundColor
3775
+ }) => $backgroundColor || theme.kitt.colors.uiBackgroundLight, () => {
3776
+ if (reactNative.Platform.OS !== 'web') return undefined;
3777
+ return styled.css(["min-height:100vh;"]);
3778
+ });
3779
+
3780
+ const ContainerWithoutHeader = /*#__PURE__*/styled__default(reactNative.View).withConfig({
3781
+ displayName: "NavigationModal__ContainerWithoutHeader",
3782
+ componentId: "kitt-universal__sc-ls8t24-0"
3783
+ })(["justify-content:space-between;flex:1;"]);
3784
+ function NavigationModal({
3785
+ body,
3786
+ header,
3787
+ footer,
3788
+ backgroundColor
3789
+ }) {
3790
+ return /*#__PURE__*/jsxRuntime.jsxs(NavigationModalContainer, {
3791
+ $backgroundColor: backgroundColor,
3792
+ children: [header ? /*#__PURE__*/jsxRuntime.jsx(reactNative.View, {
3793
+ children: header
3794
+ }) : null, /*#__PURE__*/jsxRuntime.jsxs(ContainerWithoutHeader, {
3795
+ children: [/*#__PURE__*/jsxRuntime.jsx(reactNative.ScrollView, {
3796
+ bounces: false,
3797
+ contentContainerStyle: {
3798
+ flexGrow: 1,
3799
+ position: 'relative'
3800
+ },
3801
+ children: body
3802
+ }), footer || null]
3803
+ })]
3804
+ });
3805
+ }
3806
+ NavigationModal.Header = Header;
3807
+ NavigationModal.Footer = Footer;
3808
+ NavigationModal.Body = Body;
3809
+ NavigationModal.Padding = ContentPadding;
3810
+
3501
3811
  function Notification({
3502
3812
  type,
3503
3813
  children,
@@ -4799,6 +5109,7 @@ exports.ExternalAppLink = ExternalAppLink;
4799
5109
  exports.ExternalLink = ExternalLink;
4800
5110
  exports.Flex = Flex;
4801
5111
  exports.FullScreenModal = FullScreenModal;
5112
+ exports.HStack = HStack;
4802
5113
  exports.Icon = Icon;
4803
5114
  exports.IconButton = IconButton;
4804
5115
  exports.InputEmail = InputEmail;
@@ -4821,14 +5132,19 @@ exports.LoaderIcon = LoaderIcon;
4821
5132
  exports.MatchWindowSize = MatchWindowSize;
4822
5133
  exports.Message = Message;
4823
5134
  exports.Modal = Modal;
5135
+ exports.ModalBehaviour = ModalBehaviour;
5136
+ exports.NavigationModal = NavigationModal;
4824
5137
  exports.Notification = Notification;
4825
5138
  exports.Overlay = Overlay;
4826
5139
  exports.PageLoader = PageLoader;
4827
5140
  exports.Picker = Picker;
5141
+ exports.Pressable = Pressable;
4828
5142
  exports.Radio = Radio;
5143
+ exports.ScrollView = ScrollView;
4829
5144
  exports.Section = DeprecatedSection;
4830
5145
  exports.Skeleton = Skeleton;
4831
5146
  exports.SpinningIcon = SpinningIcon;
5147
+ exports.Stack = Stack;
4832
5148
  exports.Story = Story;
4833
5149
  exports.StoryBlock = StoryBlock;
4834
5150
  exports.StoryContainer = StoryContainer;
@@ -4845,6 +5161,8 @@ exports.Typography = Typography;
4845
5161
  exports.TypographyEmoji = TypographyEmoji;
4846
5162
  exports.TypographyIcon = TypographyIcon;
4847
5163
  exports.TypographyLink = TypographyLink;
5164
+ exports.VStack = VStack;
5165
+ exports.View = View;
4848
5166
  exports.createWindowSizeHelper = createWindowSizeHelper;
4849
5167
  exports.hex2rgba = hex2rgba;
4850
5168
  exports.matchWindowSize = matchWindowSize;