@ornikar/kitt-universal 4.5.2 → 5.0.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 (36) hide show
  1. package/dist/definitions/Button/AnimatedButtonPressable.web.d.ts +3 -4
  2. package/dist/definitions/Button/AnimatedButtonPressable.web.d.ts.map +1 -1
  3. package/dist/definitions/Button/Button.d.ts +1 -1
  4. package/dist/definitions/Button/Button.d.ts.map +1 -1
  5. package/dist/definitions/forms/Checkbox/Checkbox.d.ts +4 -4
  6. package/dist/definitions/forms/Checkbox/Checkbox.d.ts.map +1 -1
  7. package/dist/definitions/forms/DatePicker/DatePicker.android.d.ts +4 -0
  8. package/dist/definitions/forms/DatePicker/DatePicker.android.d.ts.map +1 -0
  9. package/dist/definitions/forms/DatePicker/DatePicker.d.ts +2 -28
  10. package/dist/definitions/forms/DatePicker/DatePicker.d.ts.map +1 -1
  11. package/dist/definitions/forms/DatePicker/DatePicker.web.d.ts +4 -0
  12. package/dist/definitions/forms/DatePicker/DatePicker.web.d.ts.map +1 -0
  13. package/dist/definitions/forms/DatePicker/DatePickerInputs.d.ts +9 -0
  14. package/dist/definitions/forms/DatePicker/DatePickerInputs.d.ts.map +1 -0
  15. package/dist/definitions/forms/DatePicker/types.d.ts +34 -0
  16. package/dist/definitions/forms/DatePicker/types.d.ts.map +1 -0
  17. package/dist/definitions/index.d.ts +1 -1
  18. package/dist/definitions/index.d.ts.map +1 -1
  19. package/dist/index-browser-all.es.android.js +639 -740
  20. package/dist/index-browser-all.es.android.js.map +1 -1
  21. package/dist/index-browser-all.es.css +2 -2
  22. package/dist/index-browser-all.es.ios.js +155 -145
  23. package/dist/index-browser-all.es.ios.js.map +1 -1
  24. package/dist/index-browser-all.es.js +157 -147
  25. package/dist/index-browser-all.es.js.map +1 -1
  26. package/dist/index-browser-all.es.web.js +538 -676
  27. package/dist/index-browser-all.es.web.js.map +1 -1
  28. package/dist/index-node-14.17.cjs.css +2 -2
  29. package/dist/index-node-14.17.cjs.js +106 -100
  30. package/dist/index-node-14.17.cjs.js.map +1 -1
  31. package/dist/index-node-14.17.cjs.web.css +7 -7
  32. package/dist/index-node-14.17.cjs.web.js +463 -579
  33. package/dist/index-node-14.17.cjs.web.js.map +1 -1
  34. package/dist/styles.css +7 -7
  35. package/dist/tsbuildinfo +1 -1
  36. package/package.json +4 -4
@@ -9,8 +9,6 @@ const react = require('react');
9
9
  const react$1 = require('@linaria/react');
10
10
  const jsxRuntime = require('react/jsx-runtime');
11
11
  const twemojiParser = require('twemoji-parser');
12
- const reactIntl = require('react-intl');
13
- const DateTimePicker = require('@react-native-community/datetimepicker');
14
12
  const reactNativeSafeAreaContext = require('react-native-safe-area-context');
15
13
  const reactDom = require('@floating-ui/react-dom');
16
14
  const addons = require('@storybook/addons');
@@ -18,7 +16,6 @@ const addons = require('@storybook/addons');
18
16
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e['default'] : e; }
19
17
 
20
18
  const styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
21
- const DateTimePicker__default = /*#__PURE__*/_interopDefaultLegacy(DateTimePicker);
22
19
 
23
20
  // type $Without<T, K extends keyof any> = T extends any ? Pick<T, Exclude<keyof T, K>> : never;
24
21
  // type $DeepPartial<T> = { [P in keyof T]?: $DeepPartial<T[P]> };
@@ -44,7 +41,7 @@ function withTheme(WrappedComponent) {
44
41
 
45
42
  const StyledSpinningIconContainer = withTheme( /*#__PURE__*/react$1.styled("div")({
46
43
  name: "StyledSpinningIconContainer",
47
- class: "ssn8o83"
44
+ class: "kitt-u_StyledSpinningIconContainer_ssn8o83"
48
45
  }));
49
46
  function SpinningIcon({
50
47
  children
@@ -399,7 +396,7 @@ function isSubtle(type) {
399
396
 
400
397
  const AnimatedButtonPressableContainer = withTheme( /*#__PURE__*/react$1.styled("div")({
401
398
  name: "AnimatedButtonPressableContainer",
402
- class: "a1vkj3mh",
399
+ class: "kitt-u_AnimatedButtonPressableContainer_a1vkj3mh",
403
400
  vars: {
404
401
  "a1vkj3mh-0": [({
405
402
  $isStretch
@@ -1482,7 +1479,7 @@ function Checkbox({
1482
1479
  onChange,
1483
1480
  onBlur,
1484
1481
  onFocus,
1485
- value,
1482
+ checked,
1486
1483
  hitSlop = 40,
1487
1484
  id,
1488
1485
  children
@@ -1491,19 +1488,19 @@ function Checkbox({
1491
1488
  return /*#__PURE__*/jsxRuntime.jsxs(CheckboxAndLabelPressableWrapper, {
1492
1489
  accessibilityRole: "checkbox",
1493
1490
  accessibilityState: {
1494
- checked: value
1491
+ checked
1495
1492
  },
1496
1493
  hitSlop: hitSlop,
1497
1494
  onPress: e => {
1498
1495
  if (onFocus) onFocus(e);
1499
- if (onChange) onChange(e);
1496
+ if (onChange) onChange(!checked, e);
1500
1497
  if (onBlur) onBlur(e);
1501
1498
  },
1502
1499
  children: [/*#__PURE__*/jsxRuntime.jsx(CheckboxContainer, {
1503
- $isChecked: value,
1500
+ $isChecked: checked,
1504
1501
  $hasLabel: !!children,
1505
1502
  testID: id,
1506
- children: value ? /*#__PURE__*/jsxRuntime.jsx(Icon, {
1503
+ children: checked ? /*#__PURE__*/jsxRuntime.jsx(Icon, {
1507
1504
  align: "center",
1508
1505
  color: theme.kitt.forms.checkbox.markColor,
1509
1506
  size: theme.kitt.forms.checkbox.iconSize,
@@ -1532,446 +1529,54 @@ const styledTextInputMixin = /*#__PURE__*/styled.css(["background-color:", ";bor
1532
1529
  }) => theme.kitt.forms.input.borderWidth, ({
1533
1530
  theme
1534
1531
  }) => theme.kitt.forms.input.borderRadius, ({
1535
- theme,
1536
- $state
1537
- }) => theme.kitt.forms.input.states[$state].borderColor, ({
1538
- theme
1539
- }) => {
1540
- const typeConfigKey = getTypographyTypeConfigKey(theme);
1541
- return `${theme.kitt.typography.types.bodies.configs.body[typeConfigKey].fontSize}px`;
1542
- }, ({
1543
- theme,
1544
- $state
1545
- }) => theme.kitt.typography.colors[theme.kitt.forms.input.states[$state].color], ({
1546
- theme
1547
- }) => theme.kitt.typography.types.bodies.fontFamily.regular);
1548
-
1549
- const StyledTypographyText = /*#__PURE__*/styled__default(Typography.Text).withConfig({
1550
- displayName: "DatePickerInputPart__StyledTypographyText",
1551
- componentId: "kitt-universal__sc-11fmlmi-0"
1552
- })(["text-align:center;"]);
1553
- const ViewInput = /*#__PURE__*/styled__default(BabelPluginStyledComponentsReactNative.View).withConfig({
1554
- displayName: "DatePickerInputPart__ViewInput",
1555
- componentId: "kitt-universal__sc-11fmlmi-1"
1556
- })(["", " padding:", ";min-height:", "px;min-width:", ";"], styledTextInputMixin, ({
1557
- theme
1558
- }) => theme.kitt.forms.input.padding.default, ({
1559
- theme
1560
- }) => theme.kitt.forms.input.minHeight, ({
1561
- theme,
1562
- $partName
1563
- }) => {
1564
- if (!$partName) {
1565
- return undefined;
1566
- }
1567
-
1568
- return `${theme.kitt.forms.datePicker[$partName].minWidth}px`;
1569
- });
1570
- function DatePickerInputPart({
1571
- $state,
1572
- placeholder,
1573
- value,
1574
- partName,
1575
- disabled
1576
- }) {
1577
- return /*#__PURE__*/jsxRuntime.jsx(ViewInput, {
1578
- $state: $state,
1579
- $partName: partName,
1580
- children: placeholder || value ? /*#__PURE__*/jsxRuntime.jsx(StyledTypographyText, {
1581
- color: !value || disabled ? 'black-light' : undefined,
1582
- children: value || placeholder
1583
- }) : null
1584
- });
1585
- }
1586
-
1587
- // Don't use styled.Pressable here - babel-plugin-styled-components-react-native-web only supports tagged templates
1588
- const OverlayPressable = /*#__PURE__*/styled__default(BabelPluginStyledComponentsReactNative.Pressable).withConfig({
1589
- displayName: "Overlay__OverlayPressable",
1590
- componentId: "kitt-universal__sc-1cz1gbr-0"
1591
- })(({
1592
- theme
1593
- }) => ({ ...BabelPluginStyledComponentsReactNative.StyleSheet.absoluteFillObject,
1594
- backgroundColor: theme.kitt.colors.overlay.dark
1595
- }));
1596
- function Overlay({
1597
- onPress
1598
- }) {
1599
- return /*#__PURE__*/jsxRuntime.jsx(OverlayPressable, {
1600
- accessibilityRole: "none",
1601
- onPress: onPress,
1602
- children: /*#__PURE__*/jsxRuntime.jsx(BabelPluginStyledComponentsReactNative.View, {})
1603
- });
1604
- }
1605
-
1606
- const BodyView = /*#__PURE__*/styled__default(BabelPluginStyledComponentsReactNative.View).withConfig({
1607
- displayName: "Body__BodyView",
1608
- componentId: "kitt-universal__sc-17fwpo4-0"
1609
- })(["padding:", "px ", "px;"], ({
1610
- theme
1611
- }) => theme.kitt.spacing * 6, ({
1612
- theme
1613
- }) => theme.kitt.spacing * 4);
1614
- function ModalBody({
1615
- children
1616
- }) {
1617
- return /*#__PURE__*/jsxRuntime.jsx(BabelPluginStyledComponentsReactNative.ScrollView, {
1618
- children: /*#__PURE__*/jsxRuntime.jsx(BodyView, {
1619
- children: children
1620
- })
1621
- });
1622
- }
1623
-
1624
- const FooterView = /*#__PURE__*/styled__default(BabelPluginStyledComponentsReactNative.View).withConfig({
1625
- displayName: "Footer__FooterView",
1626
- componentId: "kitt-universal__sc-1ujq2dc-0"
1627
- })(["flex:0 0 auto;padding:", "px;border-top-width:1px;border-top-color:", ";"], ({
1628
- theme
1629
- }) => theme.kitt.spacing * 4, ({
1630
- theme
1631
- }) => theme.kitt.colors.separator);
1632
- function ModalFooter({
1633
- children
1634
- }) {
1635
- return /*#__PURE__*/jsxRuntime.jsx(FooterView, {
1636
- children: children
1637
- });
1638
- }
1639
-
1640
- function StyleWebWrapper({
1641
- as,
1642
- children,
1643
- ...props
1644
- }) {
1645
- // as or default to div. If as is undefined, T is div but typescript is not sure
1646
- return /*#__PURE__*/jsxRuntime.jsx(as || 'div', { ...props,
1647
- children: children
1648
- });
1649
- }
1650
-
1651
- const PressableIconButtonWebWrapper = withTheme( /*#__PURE__*/react$1.styled("div")({
1652
- name: "PressableIconButtonWebWrapper",
1653
- class: "p1nlccvg",
1654
- vars: {
1655
- "p1nlccvg-0": [({
1656
- theme,
1657
- $isDisabled
1658
- }) => $isDisabled ? 1 : theme.kitt.iconButton.scale.base.hover],
1659
- "p1nlccvg-2": [({
1660
- theme,
1661
- $isDisabled
1662
- }) => $isDisabled ? 1 : theme.kitt.iconButton.scale.medium.hover],
1663
- "p1nlccvg-3": [({
1664
- theme,
1665
- $isDisabled
1666
- }) => $isDisabled ? 1 : theme.kitt.iconButton.scale.base.active],
1667
- "p1nlccvg-4": [({
1668
- theme,
1669
- $isWhite,
1670
- $isDisabled
1671
- }) => {
1672
- if ($isDisabled) return theme.kitt.iconButton.disabled.backgroundColor;
1673
- const {
1674
- white,
1675
- default: defaultIconButton
1676
- } = theme.kitt.iconButton;
1677
- if ($isWhite) return white.pressedBackgroundColor;
1678
- return defaultIconButton.pressedBackgroundColor;
1679
- }]
1680
- }
1681
- }));
1682
- const StyledPressableIconButton = /*#__PURE__*/styled__default(BabelPluginStyledComponentsReactNative.Pressable).withConfig({
1683
- displayName: "PressableIconButton__StyledPressableIconButton",
1684
- componentId: "kitt-universal__sc-1m6jo3s-0"
1685
- })(["border-radius:", "px;width:", "px;height:", "px;align-items:center;justify-content:center;position:relative;background-color:transparent;", ";"], ({
1686
- theme
1687
- }) => theme.kitt.iconButton.borderRadius, ({
1688
- theme
1689
- }) => theme.kitt.iconButton.width, ({
1690
- theme
1691
- }) => theme.kitt.iconButton.height, ({
1692
- theme,
1693
- disabled
1694
- }) => {
1695
- const {
1696
- iconButton
1697
- } = theme.kitt;
1698
- const {
1699
- transition
1700
- } = iconButton;
1701
-
1702
- if (disabled) {
1703
- return `
1704
- background-color: ${iconButton.disabled.backgroundColor};
1705
- `;
1706
- }
1707
-
1708
- return `
1709
- transition: ${transition.property} ${transition.duration} ${transition.timingFunction};
1710
- `;
1711
- });
1712
- function PressableIconButton({
1713
- color,
1714
- disabled,
1715
- ...props
1716
- }) {
1717
- return /*#__PURE__*/jsxRuntime.jsx(StyleWebWrapper, {
1718
- as: PressableIconButtonWebWrapper,
1719
- $isWhite: color === 'white',
1720
- $isDisabled: Boolean(disabled),
1721
- children: /*#__PURE__*/jsxRuntime.jsx(StyledPressableIconButton, { ...props,
1722
- disabled: disabled
1723
- })
1724
- });
1725
- }
1726
-
1727
- function PressableAnimatedContainer({
1728
- children,
1729
- color,
1730
- disabled,
1731
- onPress
1732
- }) {
1733
- return /*#__PURE__*/jsxRuntime.jsx(PressableIconButton, {
1734
- accessibilityRole: "button",
1735
- color: color,
1736
- disabled: disabled,
1737
- onPress: onPress,
1738
- children: children
1739
- });
1740
- }
1741
-
1742
- const IconButtonContentBorder = /*#__PURE__*/styled__default(BabelPluginStyledComponentsReactNative.View).withConfig({
1743
- displayName: "IconButton__IconButtonContentBorder",
1744
- componentId: "kitt-universal__sc-swelbf-0"
1745
- })(["border:", ";border-color:", ";width:", "px;height:", "px;align-items:center;justify-content:center;border-radius:", "px;"], ({
1746
- theme
1747
- }) => `${theme.kitt.iconButton.borderWidth}px solid`, ({
1748
- theme,
1749
- disabled
1750
- }) => disabled ? theme.kitt.iconButton.disabled.borderColor : theme.kitt.iconButton.borderColor, ({
1751
- theme
1752
- }) => theme.kitt.iconButton.width - theme.kitt.iconButton.borderWidth, ({
1753
- theme
1754
- }) => theme.kitt.iconButton.height - theme.kitt.iconButton.borderWidth, ({
1755
- theme
1756
- }) => theme.kitt.iconButton.borderRadius);
1757
-
1758
- function IconButtonContent({
1759
- disabled,
1760
- color,
1761
- icon
1762
- }) {
1763
- return /*#__PURE__*/jsxRuntime.jsx(IconButtonContentBorder, {
1764
- disabled: disabled,
1765
- children: /*#__PURE__*/jsxRuntime.jsx(TypographyIcon, {
1766
- color: disabled ? 'black-light' : color,
1767
- icon: icon
1768
- })
1769
- });
1770
- }
1771
-
1772
- function IconButton({
1773
- icon,
1774
- color,
1775
- disabled,
1776
- testID,
1777
- accessibilityLabel,
1778
- accessibilityRole,
1779
- onPress
1780
- }) {
1781
- return /*#__PURE__*/jsxRuntime.jsx(PressableAnimatedContainer, {
1782
- color: color,
1783
- disabled: disabled,
1784
- testID: testID,
1785
- accessibilityLabel: accessibilityLabel,
1786
- accessibilityRole: accessibilityRole,
1787
- onPress: onPress,
1788
- children: /*#__PURE__*/jsxRuntime.jsx(IconButtonContent, {
1789
- disabled: disabled,
1790
- color: color,
1791
- icon: icon
1792
- })
1793
- });
1794
- }
1795
-
1796
- const OnCloseContext = /*#__PURE__*/react.createContext(() => {});
1797
-
1798
- const HeaderView = /*#__PURE__*/styled__default(BabelPluginStyledComponentsReactNative.View).withConfig({
1799
- displayName: "Header__HeaderView",
1800
- componentId: "kitt-universal__sc-1iwabch-0"
1801
- })(["position:relative;padding:", "px;display:flex;flex:0 0 auto;flex-direction:row;justify-content:space-between;align-items:center;border-bottom-width:1px;border-bottom-color:", ";min-height:57px;"], ({
1802
- theme
1803
- }) => theme.kitt.spacing * 2, ({
1804
- theme
1805
- }) => theme.kitt.colors.separator);
1806
- const LeftIconView = /*#__PURE__*/styled__default(BabelPluginStyledComponentsReactNative.View).withConfig({
1807
- displayName: "Header__LeftIconView",
1808
- componentId: "kitt-universal__sc-1iwabch-1"
1809
- })(["align-self:flex-start;margin-right:", "px;"], ({
1810
- theme
1811
- }) => theme.kitt.spacing * 2);
1812
- const RightIconView = /*#__PURE__*/styled__default(BabelPluginStyledComponentsReactNative.View).withConfig({
1813
- displayName: "Header__RightIconView",
1814
- componentId: "kitt-universal__sc-1iwabch-2"
1815
- })(["align-self:flex-start;margin-left:", "px;"], ({
1816
- theme
1817
- }) => theme.kitt.spacing * 2);
1818
- const TitleView = /*#__PURE__*/styled__default(BabelPluginStyledComponentsReactNative.View).withConfig({
1819
- displayName: "Header__TitleView",
1820
- componentId: "kitt-universal__sc-1iwabch-3"
1821
- })(["padding-left:", "px;flex-shrink:1;"], ({
1822
- theme,
1823
- isIconLeft
1824
- }) => isIconLeft ? 0 : theme.kitt.spacing * 2);
1825
- function ModalHeader({
1826
- left,
1827
- right,
1828
- children
1829
- }) {
1830
- const onClose = react.useContext(OnCloseContext);
1831
- const isIconLeft = !!left;
1832
- return /*#__PURE__*/jsxRuntime.jsxs(HeaderView, {
1833
- children: [isIconLeft && /*#__PURE__*/jsxRuntime.jsx(LeftIconView, {
1834
- children: left
1835
- }), /*#__PURE__*/jsxRuntime.jsx(TitleView, {
1836
- isIconLeft: isIconLeft,
1837
- children: children
1838
- }), right !== undefined ? right : /*#__PURE__*/jsxRuntime.jsx(RightIconView, {
1839
- children: /*#__PURE__*/jsxRuntime.jsx(IconButton, {
1840
- icon: /*#__PURE__*/jsxRuntime.jsx(kittIcons.XIcon, {}),
1841
- onPress: onClose
1842
- })
1843
- })]
1844
- });
1845
- }
1846
-
1847
- const ModalView = /*#__PURE__*/styled__default(BabelPluginStyledComponentsReactNative.View).withConfig({
1848
- displayName: "Modal__ModalView",
1849
- componentId: "kitt-universal__sc-1xy2w5u-0"
1850
- })(["top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:", "px ", "px;"], ({
1851
- theme
1852
- }) => theme.kitt.spacing * 20, ({
1853
- theme
1854
- }) => theme.kitt.spacing * 4);
1855
- const ContentView$1 = /*#__PURE__*/styled__default(BabelPluginStyledComponentsReactNative.View).withConfig({
1856
- displayName: "Modal__ContentView",
1857
- componentId: "kitt-universal__sc-1xy2w5u-1"
1858
- })(["position:relative;display:flex;flex-direction:column;max-height:100%;max-width:540px;height:auto;width:100%;border-radius:", "px;background-color:", ";"], ({
1859
- theme
1860
- }) => theme.kitt.card.borderRadius, ({
1861
- theme
1862
- }) => theme.kitt.colors.uiBackgroundLight);
1863
- function Modal({
1864
- visible,
1865
- children,
1866
- onClose,
1867
- onEntered,
1868
- onExited
1869
- }) {
1870
- return /*#__PURE__*/jsxRuntime.jsx(OnCloseContext.Provider, {
1871
- value: onClose,
1872
- children: /*#__PURE__*/jsxRuntime.jsx(BabelPluginStyledComponentsReactNative.Modal, {
1873
- transparent: true,
1874
- animationType: "fade",
1875
- visible: visible,
1876
- onShow: onEntered,
1877
- onDismiss: onExited,
1878
- onRequestClose: onClose,
1879
- children: /*#__PURE__*/jsxRuntime.jsxs(ModalView, {
1880
- children: [/*#__PURE__*/jsxRuntime.jsx(Overlay, {
1881
- onPress: onClose
1882
- }), /*#__PURE__*/jsxRuntime.jsx(ContentView$1, {
1883
- children: children
1884
- })]
1885
- })
1886
- })
1887
- });
1888
- }
1889
- Modal.Header = ModalHeader;
1890
- Modal.Body = ModalBody;
1891
- Modal.Footer = ModalFooter;
1892
-
1893
- function getDatePickerDisplayMode() {
1894
- return 'default';
1895
- }
1896
-
1897
- function PlatformDateTimePicker({
1898
- value,
1899
- defaultDate = new Date(),
1900
- maximumDate,
1901
- minimuDate,
1902
- testID,
1903
- onChange
1904
- }) {
1905
- const displayMode = getDatePickerDisplayMode();
1906
- const iosProps = {};
1907
- return /*#__PURE__*/jsxRuntime.jsx(DateTimePicker__default, {
1908
- is24Hour: true,
1909
- testID: testID,
1910
- value: value || defaultDate,
1911
- mode: "date",
1912
- maximumDate: maximumDate,
1913
- minimumDate: minimuDate,
1914
- display: displayMode,
1915
- ...iosProps,
1916
- onChange: (_event, date) => onChange(date)
1917
- });
1918
- }
1532
+ theme,
1533
+ $state
1534
+ }) => theme.kitt.forms.input.states[$state].borderColor, ({
1535
+ theme
1536
+ }) => {
1537
+ const typeConfigKey = getTypographyTypeConfigKey(theme);
1538
+ return `${theme.kitt.typography.types.bodies.configs.body[typeConfigKey].fontSize}px`;
1539
+ }, ({
1540
+ theme,
1541
+ $state
1542
+ }) => theme.kitt.typography.colors[theme.kitt.forms.input.states[$state].color], ({
1543
+ theme
1544
+ }) => theme.kitt.typography.types.bodies.fontFamily.regular);
1919
1545
 
1920
- function ModalTitle({
1921
- children
1922
- }) {
1923
- return /*#__PURE__*/jsxRuntime.jsx(Modal.Header, {
1924
- children: /*#__PURE__*/jsxRuntime.jsx(Typography.Text, {
1925
- base: "body",
1926
- variant: "bold",
1927
- children: children
1928
- })
1929
- });
1930
- }
1546
+ const StyledTypographyText = /*#__PURE__*/styled__default(Typography.Text).withConfig({
1547
+ displayName: "DatePickerInputPart__StyledTypographyText",
1548
+ componentId: "kitt-universal__sc-11fmlmi-0"
1549
+ })(["text-align:center;"]);
1550
+ const ViewInput = /*#__PURE__*/styled__default(BabelPluginStyledComponentsReactNative.View).withConfig({
1551
+ displayName: "DatePickerInputPart__ViewInput",
1552
+ componentId: "kitt-universal__sc-11fmlmi-1"
1553
+ })(["", " padding:", ";min-height:", "px;min-width:", ";"], styledTextInputMixin, ({
1554
+ theme
1555
+ }) => theme.kitt.forms.input.padding.default, ({
1556
+ theme
1557
+ }) => theme.kitt.forms.input.minHeight, ({
1558
+ theme,
1559
+ $partName
1560
+ }) => {
1561
+ if (!$partName) {
1562
+ return undefined;
1563
+ }
1931
1564
 
1932
- function ModalPlatformDateTimePicker({
1933
- title,
1934
- isVisible,
1565
+ return `${theme.kitt.forms.datePicker[$partName].minWidth}px`;
1566
+ });
1567
+ function DatePickerInputPart({
1568
+ $state,
1569
+ placeholder,
1935
1570
  value,
1936
- validateButtonLabel,
1937
- onClose,
1938
- onChange,
1939
- ...props
1571
+ partName,
1572
+ disabled
1940
1573
  }) {
1941
- const [currentValue, setCurrentValue] = react.useState(value); // Prevent unsynced value between the modal and its parent state
1942
-
1943
- return /*#__PURE__*/jsxRuntime.jsx(Modal, {
1944
- visible: Boolean(isVisible),
1945
- onClose: () => {
1946
- setCurrentValue(value);
1947
- onClose();
1948
- },
1949
- children: isVisible ? /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
1950
- children: [title ? /*#__PURE__*/jsxRuntime.jsx(ModalTitle, {
1951
- children: title
1952
- }) : null, /*#__PURE__*/jsxRuntime.jsx(Modal.Body, {
1953
- children: /*#__PURE__*/jsxRuntime.jsx(PlatformDateTimePicker, { ...props,
1954
- value: currentValue,
1955
- onChange: newDate => {
1956
- setCurrentValue(prev => {
1957
- return newDate || prev;
1958
- });
1959
- }
1960
- })
1961
- }), /*#__PURE__*/jsxRuntime.jsx(Modal.Footer, {
1962
- children: /*#__PURE__*/jsxRuntime.jsx(Button, {
1963
- stretch: true,
1964
- type: "primary",
1965
- onPress: () => {
1966
- onChange(currentValue);
1967
- },
1968
- children: validateButtonLabel ? /*#__PURE__*/jsxRuntime.jsx(BabelPluginStyledComponentsReactNative.Text, {
1969
- children: validateButtonLabel
1970
- }) : /*#__PURE__*/jsxRuntime.jsx(reactIntl.FormattedMessage, {
1971
- id: "kitt-universal.ModalDateTimePicker.confirm"
1972
- })
1973
- })
1974
- })]
1574
+ return /*#__PURE__*/jsxRuntime.jsx(ViewInput, {
1575
+ $state: $state,
1576
+ $partName: partName,
1577
+ children: placeholder || value ? /*#__PURE__*/jsxRuntime.jsx(StyledTypographyText, {
1578
+ color: !value || disabled ? 'black-light' : undefined,
1579
+ children: value || placeholder
1975
1580
  }) : null
1976
1581
  });
1977
1582
  }
@@ -1981,8 +1586,8 @@ function prefixWithZero(value) {
1981
1586
  }
1982
1587
 
1983
1588
  const PartContainer = /*#__PURE__*/styled__default(BabelPluginStyledComponentsReactNative.View).withConfig({
1984
- displayName: "DatePicker__PartContainer",
1985
- componentId: "kitt-universal__sc-ebllsn-0"
1589
+ displayName: "DatePickerInputs__PartContainer",
1590
+ componentId: "kitt-universal__sc-j9hin5-0"
1986
1591
  })(["margin-right:", ";", ";"], ({
1987
1592
  theme,
1988
1593
  $isLast
@@ -1990,8 +1595,8 @@ const PartContainer = /*#__PURE__*/styled__default(BabelPluginStyledComponentsRe
1990
1595
  $isStretch
1991
1596
  }) => $isStretch ? styled.css(["flex:0.33;flex-grow:1;"]) : undefined);
1992
1597
  const DatePickerPressable = /*#__PURE__*/styled__default(BabelPluginStyledComponentsReactNative.Pressable).withConfig({
1993
- displayName: "DatePicker__DatePickerPressable",
1994
- componentId: "kitt-universal__sc-ebllsn-1"
1598
+ displayName: "DatePickerInputs__DatePickerPressable",
1599
+ componentId: "kitt-universal__sc-j9hin5-1"
1995
1600
  })(["display:flex;flex-direction:row;", ";"], ({
1996
1601
  $isStretch
1997
1602
  }) => {
@@ -2001,103 +1606,76 @@ const DatePickerPressable = /*#__PURE__*/styled__default(BabelPluginStyledCompon
2001
1606
 
2002
1607
  return styled.css(["align-self:baseline;"]);
2003
1608
  });
2004
- function DatePicker({
2005
- value,
2006
- id,
2007
- disabled,
2008
- placeholder,
1609
+ function DatePickerInputs({
2009
1610
  state,
2010
1611
  internalForceState,
2011
- testID,
1612
+ isFocused,
1613
+ disabled,
2012
1614
  stretch,
2013
- pickerDefaultDate,
2014
- pickerUITestID,
2015
- pickerUITitle,
2016
- pickerUIValidateButtonLabel,
2017
- onChange,
2018
- onFocus,
2019
- onBlur
1615
+ id,
1616
+ testID,
1617
+ handleModalOpen,
1618
+ currentValue,
1619
+ placeholder
2020
1620
  }) {
2021
- const [isPickerUIVisible, setIsPickerUIVisible] = react.useState(false);
2022
- const [isFocused, setIsFocused] = react.useState(false);
2023
- const [currentValue, setCurrentValue] = react.useState(value);
2024
-
2025
- const handleModalClose = () => {
2026
- if (onBlur) onBlur();
2027
- setIsPickerUIVisible(false);
2028
- setIsFocused(false);
2029
- };
2030
-
2031
- const handleChange = newDate => {
2032
- setCurrentValue(newDate);
2033
- onChange(newDate);
2034
- handleModalClose();
2035
- };
2036
-
2037
1621
  const currentState = internalForceState || getInputUIState({
2038
1622
  isFocused,
2039
1623
  isDisabled: Boolean(disabled),
2040
1624
  formState: state
2041
1625
  });
2042
- const sharedPickerProps = {
2043
- testID: pickerUITestID,
2044
- value: currentValue,
2045
- onChange: handleChange
2046
- };
2047
1626
  const sharedPartProps = {
2048
1627
  disabled,
2049
- $state: currentState,
2050
- defaultDate: pickerDefaultDate
1628
+ $state: currentState
2051
1629
  };
2052
- return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
2053
- children: [/*#__PURE__*/jsxRuntime.jsxs(DatePickerPressable, {
1630
+ return /*#__PURE__*/jsxRuntime.jsxs(DatePickerPressable, {
1631
+ $isStretch: stretch,
1632
+ nativeID: id,
1633
+ disabled: disabled,
1634
+ testID: testID,
1635
+ onPress: handleModalOpen,
1636
+ children: [/*#__PURE__*/jsxRuntime.jsx(PartContainer, {
2054
1637
  $isStretch: stretch,
2055
- nativeID: id,
2056
- disabled: disabled,
2057
- testID: testID,
2058
- onPress: () => {
2059
- if (onFocus) onFocus();
2060
- setIsPickerUIVisible(true);
2061
- setIsFocused(true);
2062
- },
2063
- children: [/*#__PURE__*/jsxRuntime.jsx(PartContainer, {
2064
- $isStretch: stretch,
2065
- children: /*#__PURE__*/jsxRuntime.jsx(DatePickerInputPart, { ...sharedPartProps,
2066
- partName: "day",
2067
- value: currentValue ? prefixWithZero(currentValue.getDate()) : undefined,
2068
- placeholder: placeholder?.day
2069
- })
2070
- }), /*#__PURE__*/jsxRuntime.jsx(PartContainer, {
2071
- $isStretch: stretch,
2072
- children: /*#__PURE__*/jsxRuntime.jsx(DatePickerInputPart, { ...sharedPartProps,
2073
- partName: "month",
2074
- value: currentValue ? prefixWithZero(currentValue.getMonth() + 1) : undefined,
2075
- placeholder: placeholder?.month
2076
- })
2077
- }), /*#__PURE__*/jsxRuntime.jsx(PartContainer, {
2078
- $isLast: true,
2079
- $isStretch: stretch,
2080
- children: /*#__PURE__*/jsxRuntime.jsx(DatePickerInputPart, { ...sharedPartProps,
2081
- partName: "year",
2082
- value: currentValue ? currentValue.getFullYear() : undefined,
2083
- placeholder: placeholder?.year
2084
- })
2085
- })]
2086
- }), /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
2087
- children: [null, /*#__PURE__*/jsxRuntime.jsx(ModalPlatformDateTimePicker, { ...sharedPickerProps,
2088
- isVisible: isPickerUIVisible,
2089
- title: pickerUITitle,
2090
- validateButtonLabel: pickerUIValidateButtonLabel,
2091
- onClose: handleModalClose,
2092
- onChange: handleChange
2093
- })]
1638
+ children: /*#__PURE__*/jsxRuntime.jsx(DatePickerInputPart, { ...sharedPartProps,
1639
+ partName: "day",
1640
+ value: currentValue ? prefixWithZero(currentValue.getDate()) : undefined,
1641
+ placeholder: placeholder?.day
1642
+ })
1643
+ }), /*#__PURE__*/jsxRuntime.jsx(PartContainer, {
1644
+ $isStretch: stretch,
1645
+ children: /*#__PURE__*/jsxRuntime.jsx(DatePickerInputPart, { ...sharedPartProps,
1646
+ partName: "month",
1647
+ value: currentValue ? prefixWithZero(currentValue.getMonth() + 1) : undefined,
1648
+ placeholder: placeholder?.month
1649
+ })
1650
+ }), /*#__PURE__*/jsxRuntime.jsx(PartContainer, {
1651
+ $isLast: true,
1652
+ $isStretch: stretch,
1653
+ children: /*#__PURE__*/jsxRuntime.jsx(DatePickerInputPart, { ...sharedPartProps,
1654
+ partName: "year",
1655
+ value: currentValue ? currentValue.getFullYear() : undefined,
1656
+ placeholder: placeholder?.year
1657
+ })
2094
1658
  })]
2095
1659
  });
2096
1660
  }
2097
1661
 
1662
+ // This is not yet implemented
1663
+ // We still display the inputs for chromatic
1664
+ function DatePicker({
1665
+ value,
1666
+ ...props
1667
+ }) {
1668
+ return /*#__PURE__*/jsxRuntime.jsx(DatePickerInputs, {
1669
+ handleModalOpen: () => {},
1670
+ currentValue: value,
1671
+ isFocused: false,
1672
+ ...props
1673
+ });
1674
+ }
1675
+
2098
1676
  const InputTextContainer = withTheme( /*#__PURE__*/react$1.styled("div")({
2099
1677
  name: "InputTextContainer",
2100
- class: "i1encr9g",
1678
+ class: "kitt-u_InputTextContainer_i1encr9g",
2101
1679
  vars: {
2102
1680
  "i1encr9g-0": [({
2103
1681
  $isDisabled
@@ -2597,63 +2175,219 @@ const HeaderContent = /*#__PURE__*/styled__default(BabelPluginStyledComponentsRe
2597
2175
  });
2598
2176
  function FullScreenModalHeader({
2599
2177
  children,
2600
- right,
2601
- left
2178
+ right,
2179
+ left
2180
+ }) {
2181
+ const {
2182
+ top
2183
+ } = reactNativeSafeAreaContext.useSafeAreaInsets();
2184
+ const dimensions = BabelPluginStyledComponentsReactNative.useWindowDimensions();
2185
+ const [leftWidth, setLeftWidth] = react.useState(0);
2186
+ const [rightWidth, setRightWidth] = react.useState(0);
2187
+
2188
+ const handleLayoutChange = (event, side) => {
2189
+ // Prevents react to nullify event on rerenders
2190
+ event.persist();
2191
+
2192
+ if (side === 'left') {
2193
+ setLeftWidth(event.nativeEvent.layout.width);
2194
+ return;
2195
+ }
2196
+
2197
+ setRightWidth(event.nativeEvent.layout.width);
2198
+ };
2199
+
2200
+ return /*#__PURE__*/jsxRuntime.jsxs(Header, {
2201
+ insetTop: top,
2202
+ children: [left ? /*#__PURE__*/jsxRuntime.jsx(SideContainer, {
2203
+ onLayout: e => handleLayoutChange(e, 'left'),
2204
+ children: left
2205
+ }) : null, /*#__PURE__*/jsxRuntime.jsx(HeaderContent, {
2206
+ windowWidth: dimensions.width,
2207
+ leftWidth: leftWidth,
2208
+ rightWidth: rightWidth,
2209
+ children: children
2210
+ }), right ? /*#__PURE__*/jsxRuntime.jsx(SideContainer, {
2211
+ side: "right",
2212
+ onLayout: e => handleLayoutChange(e, 'right'),
2213
+ children: right
2214
+ }) : null]
2215
+ });
2216
+ }
2217
+
2218
+ const Container$1 = /*#__PURE__*/styled__default(BabelPluginStyledComponentsReactNative.View).withConfig({
2219
+ displayName: "FullScreenModal__Container",
2220
+ componentId: "kitt-universal__sc-11qpbe3-0"
2221
+ })(["flex:1;background-color:", ";"], ({
2222
+ theme
2223
+ }) => theme.kitt.colors.uiBackground);
2224
+ function FullScreenModal({
2225
+ children
2226
+ }) {
2227
+ return /*#__PURE__*/jsxRuntime.jsx(Container$1, {
2228
+ children: children
2229
+ });
2230
+ }
2231
+ FullScreenModal.Header = FullScreenModalHeader;
2232
+ FullScreenModal.Body = FullScreenModalBody;
2233
+
2234
+ function StyleWebWrapper({
2235
+ as,
2236
+ children,
2237
+ ...props
2238
+ }) {
2239
+ // as or default to div. If as is undefined, T is div but typescript is not sure
2240
+ return /*#__PURE__*/jsxRuntime.jsx(as || 'div', { ...props,
2241
+ children: children
2242
+ });
2243
+ }
2244
+
2245
+ const PressableIconButtonWebWrapper = withTheme( /*#__PURE__*/react$1.styled("div")({
2246
+ name: "PressableIconButtonWebWrapper",
2247
+ class: "kitt-u_PressableIconButtonWebWrapper_p1nlccvg",
2248
+ vars: {
2249
+ "p1nlccvg-0": [({
2250
+ theme,
2251
+ $isDisabled
2252
+ }) => $isDisabled ? 1 : theme.kitt.iconButton.scale.base.hover],
2253
+ "p1nlccvg-2": [({
2254
+ theme,
2255
+ $isDisabled
2256
+ }) => $isDisabled ? 1 : theme.kitt.iconButton.scale.medium.hover],
2257
+ "p1nlccvg-3": [({
2258
+ theme,
2259
+ $isDisabled
2260
+ }) => $isDisabled ? 1 : theme.kitt.iconButton.scale.base.active],
2261
+ "p1nlccvg-4": [({
2262
+ theme,
2263
+ $isWhite,
2264
+ $isDisabled
2265
+ }) => {
2266
+ if ($isDisabled) return theme.kitt.iconButton.disabled.backgroundColor;
2267
+ const {
2268
+ white,
2269
+ default: defaultIconButton
2270
+ } = theme.kitt.iconButton;
2271
+ if ($isWhite) return white.pressedBackgroundColor;
2272
+ return defaultIconButton.pressedBackgroundColor;
2273
+ }]
2274
+ }
2275
+ }));
2276
+ const StyledPressableIconButton = /*#__PURE__*/styled__default(BabelPluginStyledComponentsReactNative.Pressable).withConfig({
2277
+ displayName: "PressableIconButton__StyledPressableIconButton",
2278
+ componentId: "kitt-universal__sc-1m6jo3s-0"
2279
+ })(["border-radius:", "px;width:", "px;height:", "px;align-items:center;justify-content:center;position:relative;background-color:transparent;", ";"], ({
2280
+ theme
2281
+ }) => theme.kitt.iconButton.borderRadius, ({
2282
+ theme
2283
+ }) => theme.kitt.iconButton.width, ({
2284
+ theme
2285
+ }) => theme.kitt.iconButton.height, ({
2286
+ theme,
2287
+ disabled
2288
+ }) => {
2289
+ const {
2290
+ iconButton
2291
+ } = theme.kitt;
2292
+ const {
2293
+ transition
2294
+ } = iconButton;
2295
+
2296
+ if (disabled) {
2297
+ return `
2298
+ background-color: ${iconButton.disabled.backgroundColor};
2299
+ `;
2300
+ }
2301
+
2302
+ return `
2303
+ transition: ${transition.property} ${transition.duration} ${transition.timingFunction};
2304
+ `;
2305
+ });
2306
+ function PressableIconButton({
2307
+ color,
2308
+ disabled,
2309
+ ...props
2310
+ }) {
2311
+ return /*#__PURE__*/jsxRuntime.jsx(StyleWebWrapper, {
2312
+ as: PressableIconButtonWebWrapper,
2313
+ $isWhite: color === 'white',
2314
+ $isDisabled: Boolean(disabled),
2315
+ children: /*#__PURE__*/jsxRuntime.jsx(StyledPressableIconButton, { ...props,
2316
+ disabled: disabled
2317
+ })
2318
+ });
2319
+ }
2320
+
2321
+ function PressableAnimatedContainer({
2322
+ children,
2323
+ color,
2324
+ disabled,
2325
+ onPress
2602
2326
  }) {
2603
- const {
2604
- top
2605
- } = reactNativeSafeAreaContext.useSafeAreaInsets();
2606
- const dimensions = BabelPluginStyledComponentsReactNative.useWindowDimensions();
2607
- const [leftWidth, setLeftWidth] = react.useState(0);
2608
- const [rightWidth, setRightWidth] = react.useState(0);
2609
-
2610
- const handleLayoutChange = (event, side) => {
2611
- // Prevents react to nullify event on rerenders
2612
- event.persist();
2613
-
2614
- if (side === 'left') {
2615
- setLeftWidth(event.nativeEvent.layout.width);
2616
- return;
2617
- }
2327
+ return /*#__PURE__*/jsxRuntime.jsx(PressableIconButton, {
2328
+ accessibilityRole: "button",
2329
+ color: color,
2330
+ disabled: disabled,
2331
+ onPress: onPress,
2332
+ children: children
2333
+ });
2334
+ }
2618
2335
 
2619
- setRightWidth(event.nativeEvent.layout.width);
2620
- };
2336
+ const IconButtonContentBorder = /*#__PURE__*/styled__default(BabelPluginStyledComponentsReactNative.View).withConfig({
2337
+ displayName: "IconButton__IconButtonContentBorder",
2338
+ componentId: "kitt-universal__sc-swelbf-0"
2339
+ })(["border:", ";border-color:", ";width:", "px;height:", "px;align-items:center;justify-content:center;border-radius:", "px;"], ({
2340
+ theme
2341
+ }) => `${theme.kitt.iconButton.borderWidth}px solid`, ({
2342
+ theme,
2343
+ disabled
2344
+ }) => disabled ? theme.kitt.iconButton.disabled.borderColor : theme.kitt.iconButton.borderColor, ({
2345
+ theme
2346
+ }) => theme.kitt.iconButton.width - theme.kitt.iconButton.borderWidth, ({
2347
+ theme
2348
+ }) => theme.kitt.iconButton.height - theme.kitt.iconButton.borderWidth, ({
2349
+ theme
2350
+ }) => theme.kitt.iconButton.borderRadius);
2621
2351
 
2622
- return /*#__PURE__*/jsxRuntime.jsxs(Header, {
2623
- insetTop: top,
2624
- children: [left ? /*#__PURE__*/jsxRuntime.jsx(SideContainer, {
2625
- onLayout: e => handleLayoutChange(e, 'left'),
2626
- children: left
2627
- }) : null, /*#__PURE__*/jsxRuntime.jsx(HeaderContent, {
2628
- windowWidth: dimensions.width,
2629
- leftWidth: leftWidth,
2630
- rightWidth: rightWidth,
2631
- children: children
2632
- }), right ? /*#__PURE__*/jsxRuntime.jsx(SideContainer, {
2633
- side: "right",
2634
- onLayout: e => handleLayoutChange(e, 'right'),
2635
- children: right
2636
- }) : null]
2352
+ function IconButtonContent({
2353
+ disabled,
2354
+ color,
2355
+ icon
2356
+ }) {
2357
+ return /*#__PURE__*/jsxRuntime.jsx(IconButtonContentBorder, {
2358
+ disabled: disabled,
2359
+ children: /*#__PURE__*/jsxRuntime.jsx(TypographyIcon, {
2360
+ color: disabled ? 'black-light' : color,
2361
+ icon: icon
2362
+ })
2637
2363
  });
2638
2364
  }
2639
2365
 
2640
- const Container$1 = /*#__PURE__*/styled__default(BabelPluginStyledComponentsReactNative.View).withConfig({
2641
- displayName: "FullScreenModal__Container",
2642
- componentId: "kitt-universal__sc-11qpbe3-0"
2643
- })(["flex:1;background-color:", ";"], ({
2644
- theme
2645
- }) => theme.kitt.colors.uiBackground);
2646
- function FullScreenModal({
2647
- children
2366
+ function IconButton({
2367
+ icon,
2368
+ color,
2369
+ disabled,
2370
+ testID,
2371
+ accessibilityLabel,
2372
+ accessibilityRole,
2373
+ onPress
2648
2374
  }) {
2649
- return /*#__PURE__*/jsxRuntime.jsx(Container$1, {
2650
- children: children
2375
+ return /*#__PURE__*/jsxRuntime.jsx(PressableAnimatedContainer, {
2376
+ color: color,
2377
+ disabled: disabled,
2378
+ testID: testID,
2379
+ accessibilityLabel: accessibilityLabel,
2380
+ accessibilityRole: accessibilityRole,
2381
+ onPress: onPress,
2382
+ children: /*#__PURE__*/jsxRuntime.jsx(IconButtonContent, {
2383
+ disabled: disabled,
2384
+ color: color,
2385
+ icon: icon
2386
+ })
2651
2387
  });
2652
2388
  }
2653
- FullScreenModal.Header = FullScreenModalHeader;
2654
- FullScreenModal.Body = FullScreenModalBody;
2655
2389
 
2656
- const ContentView = /*#__PURE__*/styled__default(BabelPluginStyledComponentsReactNative.View).withConfig({
2390
+ const ContentView$1 = /*#__PURE__*/styled__default(BabelPluginStyledComponentsReactNative.View).withConfig({
2657
2391
  displayName: "ListItemContent__ContentView",
2658
2392
  componentId: "kitt-universal__sc-57q0u9-0"
2659
2393
  })(["flex:1 0 0%;align-self:center;"]);
@@ -2661,7 +2395,7 @@ function ListItemContent({
2661
2395
  children,
2662
2396
  ...rest
2663
2397
  }) {
2664
- return /*#__PURE__*/jsxRuntime.jsx(ContentView, { ...rest,
2398
+ return /*#__PURE__*/jsxRuntime.jsx(ContentView$1, { ...rest,
2665
2399
  children: children
2666
2400
  });
2667
2401
  }
@@ -2777,7 +2511,7 @@ ListItem.SideContainer = ListItemSideContainer;
2777
2511
 
2778
2512
  const LargeLoaderContainer = withTheme( /*#__PURE__*/react$1.styled("div")({
2779
2513
  name: "LargeLoaderContainer",
2780
- class: "l2im3sa",
2514
+ class: "kitt-u_LargeLoaderContainer_l2im3sa",
2781
2515
  vars: {
2782
2516
  "l2im3sa-0": [({
2783
2517
  theme
@@ -2984,6 +2718,156 @@ function Message({
2984
2718
  });
2985
2719
  }
2986
2720
 
2721
+ // Don't use styled.Pressable here - babel-plugin-styled-components-react-native-web only supports tagged templates
2722
+ const OverlayPressable = /*#__PURE__*/styled__default(BabelPluginStyledComponentsReactNative.Pressable).withConfig({
2723
+ displayName: "Overlay__OverlayPressable",
2724
+ componentId: "kitt-universal__sc-1cz1gbr-0"
2725
+ })(({
2726
+ theme
2727
+ }) => ({ ...BabelPluginStyledComponentsReactNative.StyleSheet.absoluteFillObject,
2728
+ backgroundColor: theme.kitt.colors.overlay.dark
2729
+ }));
2730
+ function Overlay({
2731
+ onPress
2732
+ }) {
2733
+ return /*#__PURE__*/jsxRuntime.jsx(OverlayPressable, {
2734
+ accessibilityRole: "none",
2735
+ onPress: onPress,
2736
+ children: /*#__PURE__*/jsxRuntime.jsx(BabelPluginStyledComponentsReactNative.View, {})
2737
+ });
2738
+ }
2739
+
2740
+ const BodyView = /*#__PURE__*/styled__default(BabelPluginStyledComponentsReactNative.View).withConfig({
2741
+ displayName: "Body__BodyView",
2742
+ componentId: "kitt-universal__sc-17fwpo4-0"
2743
+ })(["padding:", "px ", "px;"], ({
2744
+ theme
2745
+ }) => theme.kitt.spacing * 6, ({
2746
+ theme
2747
+ }) => theme.kitt.spacing * 4);
2748
+ function ModalBody({
2749
+ children
2750
+ }) {
2751
+ return /*#__PURE__*/jsxRuntime.jsx(BabelPluginStyledComponentsReactNative.ScrollView, {
2752
+ children: /*#__PURE__*/jsxRuntime.jsx(BodyView, {
2753
+ children: children
2754
+ })
2755
+ });
2756
+ }
2757
+
2758
+ const FooterView = /*#__PURE__*/styled__default(BabelPluginStyledComponentsReactNative.View).withConfig({
2759
+ displayName: "Footer__FooterView",
2760
+ componentId: "kitt-universal__sc-1ujq2dc-0"
2761
+ })(["flex:0 0 auto;padding:", "px;border-top-width:1px;border-top-color:", ";"], ({
2762
+ theme
2763
+ }) => theme.kitt.spacing * 4, ({
2764
+ theme
2765
+ }) => theme.kitt.colors.separator);
2766
+ function ModalFooter({
2767
+ children
2768
+ }) {
2769
+ return /*#__PURE__*/jsxRuntime.jsx(FooterView, {
2770
+ children: children
2771
+ });
2772
+ }
2773
+
2774
+ const OnCloseContext = /*#__PURE__*/react.createContext(() => {});
2775
+
2776
+ const HeaderView = /*#__PURE__*/styled__default(BabelPluginStyledComponentsReactNative.View).withConfig({
2777
+ displayName: "Header__HeaderView",
2778
+ componentId: "kitt-universal__sc-1iwabch-0"
2779
+ })(["position:relative;padding:", "px;display:flex;flex:0 0 auto;flex-direction:row;justify-content:space-between;align-items:center;border-bottom-width:1px;border-bottom-color:", ";min-height:57px;"], ({
2780
+ theme
2781
+ }) => theme.kitt.spacing * 2, ({
2782
+ theme
2783
+ }) => theme.kitt.colors.separator);
2784
+ const LeftIconView = /*#__PURE__*/styled__default(BabelPluginStyledComponentsReactNative.View).withConfig({
2785
+ displayName: "Header__LeftIconView",
2786
+ componentId: "kitt-universal__sc-1iwabch-1"
2787
+ })(["align-self:flex-start;margin-right:", "px;"], ({
2788
+ theme
2789
+ }) => theme.kitt.spacing * 2);
2790
+ const RightIconView = /*#__PURE__*/styled__default(BabelPluginStyledComponentsReactNative.View).withConfig({
2791
+ displayName: "Header__RightIconView",
2792
+ componentId: "kitt-universal__sc-1iwabch-2"
2793
+ })(["align-self:flex-start;margin-left:", "px;"], ({
2794
+ theme
2795
+ }) => theme.kitt.spacing * 2);
2796
+ const TitleView = /*#__PURE__*/styled__default(BabelPluginStyledComponentsReactNative.View).withConfig({
2797
+ displayName: "Header__TitleView",
2798
+ componentId: "kitt-universal__sc-1iwabch-3"
2799
+ })(["padding-left:", "px;flex-shrink:1;"], ({
2800
+ theme,
2801
+ isIconLeft
2802
+ }) => isIconLeft ? 0 : theme.kitt.spacing * 2);
2803
+ function ModalHeader({
2804
+ left,
2805
+ right,
2806
+ children
2807
+ }) {
2808
+ const onClose = react.useContext(OnCloseContext);
2809
+ const isIconLeft = !!left;
2810
+ return /*#__PURE__*/jsxRuntime.jsxs(HeaderView, {
2811
+ children: [isIconLeft && /*#__PURE__*/jsxRuntime.jsx(LeftIconView, {
2812
+ children: left
2813
+ }), /*#__PURE__*/jsxRuntime.jsx(TitleView, {
2814
+ isIconLeft: isIconLeft,
2815
+ children: children
2816
+ }), right !== undefined ? right : /*#__PURE__*/jsxRuntime.jsx(RightIconView, {
2817
+ children: /*#__PURE__*/jsxRuntime.jsx(IconButton, {
2818
+ icon: /*#__PURE__*/jsxRuntime.jsx(kittIcons.XIcon, {}),
2819
+ onPress: onClose
2820
+ })
2821
+ })]
2822
+ });
2823
+ }
2824
+
2825
+ const ModalView = /*#__PURE__*/styled__default(BabelPluginStyledComponentsReactNative.View).withConfig({
2826
+ displayName: "Modal__ModalView",
2827
+ componentId: "kitt-universal__sc-1xy2w5u-0"
2828
+ })(["top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:", "px ", "px;"], ({
2829
+ theme
2830
+ }) => theme.kitt.spacing * 20, ({
2831
+ theme
2832
+ }) => theme.kitt.spacing * 4);
2833
+ const ContentView = /*#__PURE__*/styled__default(BabelPluginStyledComponentsReactNative.View).withConfig({
2834
+ displayName: "Modal__ContentView",
2835
+ componentId: "kitt-universal__sc-1xy2w5u-1"
2836
+ })(["position:relative;display:flex;flex-direction:column;max-height:100%;max-width:540px;height:auto;width:100%;border-radius:", "px;background-color:", ";"], ({
2837
+ theme
2838
+ }) => theme.kitt.card.borderRadius, ({
2839
+ theme
2840
+ }) => theme.kitt.colors.uiBackgroundLight);
2841
+ function Modal({
2842
+ visible,
2843
+ children,
2844
+ onClose,
2845
+ onEntered,
2846
+ onExited
2847
+ }) {
2848
+ return /*#__PURE__*/jsxRuntime.jsx(OnCloseContext.Provider, {
2849
+ value: onClose,
2850
+ children: /*#__PURE__*/jsxRuntime.jsx(BabelPluginStyledComponentsReactNative.Modal, {
2851
+ transparent: true,
2852
+ animationType: "fade",
2853
+ visible: visible,
2854
+ onShow: onEntered,
2855
+ onDismiss: onExited,
2856
+ onRequestClose: onClose,
2857
+ children: /*#__PURE__*/jsxRuntime.jsxs(ModalView, {
2858
+ children: [/*#__PURE__*/jsxRuntime.jsx(Overlay, {
2859
+ onPress: onClose
2860
+ }), /*#__PURE__*/jsxRuntime.jsx(ContentView, {
2861
+ children: children
2862
+ })]
2863
+ })
2864
+ })
2865
+ });
2866
+ }
2867
+ Modal.Header = ModalHeader;
2868
+ Modal.Body = ModalBody;
2869
+ Modal.Footer = ModalFooter;
2870
+
2987
2871
  function Notification({
2988
2872
  type,
2989
2873
  children,
@@ -3010,7 +2894,7 @@ function Notification({
3010
2894
 
3011
2895
  const StyledSkeleton = withTheme( /*#__PURE__*/react$1.styled("div")({
3012
2896
  name: "StyledSkeleton",
3013
- class: "sc3upcl",
2897
+ class: "kitt-u_StyledSkeleton_sc3upcl",
3014
2898
  vars: {
3015
2899
  "sc3upcl-0": [({
3016
2900
  theme
@@ -3706,7 +3590,7 @@ function TypographyEmoji({
3706
3590
 
3707
3591
  const TypographyLinkWebWrapper = withTheme( /*#__PURE__*/react$1.styled("span")({
3708
3592
  name: "TypographyLinkWebWrapper",
3709
- class: "tcwz3nt",
3593
+ class: "kitt-u_TypographyLinkWebWrapper_tcwz3nt",
3710
3594
  vars: {
3711
3595
  "tcwz3nt-0": [({
3712
3596
  $hasNoUnderline