@ornikar/kitt-universal 2.1.1 → 2.5.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 (60) hide show
  1. package/dist/definitions/Button/Button.d.ts +6 -3
  2. package/dist/definitions/Button/Button.d.ts.map +1 -1
  3. package/dist/definitions/Button/{ButtonContainer.d.ts → ButtonPressable.d.ts} +3 -3
  4. package/dist/definitions/Button/{ButtonContainer.d.ts.map → ButtonPressable.d.ts.map} +1 -1
  5. package/dist/definitions/Emoji/Emoji.d.ts +8 -0
  6. package/dist/definitions/Emoji/Emoji.d.ts.map +1 -0
  7. package/dist/definitions/ExternalLink/ExternalLink.d.ts +18 -0
  8. package/dist/definitions/ExternalLink/ExternalLink.d.ts.map +1 -0
  9. package/dist/definitions/ExternalLink/ExternalLink.web.d.ts +4 -0
  10. package/dist/definitions/ExternalLink/ExternalLink.web.d.ts.map +1 -0
  11. package/dist/definitions/ExternalLink/ExternalLinkOpenLinkBehavior.d.ts +24 -0
  12. package/dist/definitions/ExternalLink/ExternalLinkOpenLinkBehavior.d.ts.map +1 -0
  13. package/dist/definitions/Tag/Tag.d.ts +6 -3
  14. package/dist/definitions/Tag/Tag.d.ts.map +1 -1
  15. package/dist/definitions/index.d.ts +9 -1
  16. package/dist/definitions/index.d.ts.map +1 -1
  17. package/dist/definitions/primitives/PrimitiveImage.d.ts +13 -0
  18. package/dist/definitions/primitives/PrimitiveImage.d.ts.map +1 -0
  19. package/dist/definitions/primitives/PrimitiveImage.web.d.ts +4 -0
  20. package/dist/definitions/primitives/PrimitiveImage.web.d.ts.map +1 -0
  21. package/dist/definitions/primitives/PrimitiveLink.d.ts +3 -1
  22. package/dist/definitions/primitives/PrimitiveLink.d.ts.map +1 -1
  23. package/dist/definitions/primitives/PrimitiveLink.web.d.ts +1 -1
  24. package/dist/definitions/primitives/PrimitiveLink.web.d.ts.map +1 -1
  25. package/dist/definitions/primitives/PrimitivePressable.d.ts +3 -0
  26. package/dist/definitions/primitives/PrimitivePressable.d.ts.map +1 -1
  27. package/dist/definitions/primitives/PrimitivePressable.web.d.ts.map +1 -1
  28. package/dist/definitions/primitives/PrimitiveScrollView.d.ts +1 -0
  29. package/dist/definitions/primitives/PrimitiveScrollView.d.ts.map +1 -1
  30. package/dist/definitions/primitives/PrimitiveView.d.ts +3 -0
  31. package/dist/definitions/primitives/PrimitiveView.d.ts.map +1 -1
  32. package/dist/definitions/primitives/PrimitiveView.web.d.ts +6 -2
  33. package/dist/definitions/primitives/PrimitiveView.web.d.ts.map +1 -1
  34. package/dist/definitions/story-components/StoryDecorator.d.ts +3 -3
  35. package/dist/definitions/story-components/StoryDecorator.d.ts.map +1 -1
  36. package/dist/definitions/themes/default.d.ts +30 -3
  37. package/dist/definitions/themes/default.d.ts.map +1 -1
  38. package/dist/definitions/themes/late-ocean/tagLateOceanTheme.d.ts +30 -3
  39. package/dist/definitions/themes/late-ocean/tagLateOceanTheme.d.ts.map +1 -1
  40. package/dist/definitions/typography/Typography.d.ts +3 -3
  41. package/dist/definitions/typography/Typography.d.ts.map +1 -1
  42. package/dist/definitions/typography/TypographyEmoji.d.ts +8 -0
  43. package/dist/definitions/typography/TypographyEmoji.d.ts.map +1 -0
  44. package/dist/definitions/typography/TypographyLink.d.ts +7 -4
  45. package/dist/definitions/typography/TypographyLink.d.ts.map +1 -1
  46. package/dist/definitions/utils/storybook/decorators/SafeAreaProviderDecorator.d.ts.map +1 -1
  47. package/dist/index-browser-all.es.android.js +329 -151
  48. package/dist/index-browser-all.es.android.js.map +1 -1
  49. package/dist/index-browser-all.es.ios.js +329 -151
  50. package/dist/index-browser-all.es.ios.js.map +1 -1
  51. package/dist/index-browser-all.es.js +279 -96
  52. package/dist/index-browser-all.es.js.map +1 -1
  53. package/dist/index-browser-all.es.web.js +387 -167
  54. package/dist/index-browser-all.es.web.js.map +1 -1
  55. package/dist/index-node-14.17.cjs.js +250 -66
  56. package/dist/index-node-14.17.cjs.js.map +1 -1
  57. package/dist/tsbuildinfo +1 -1
  58. package/package.json +5 -2
  59. package/dist/definitions/Button/useButton.d.ts +0 -6
  60. package/dist/definitions/Button/useButton.d.ts.map +0 -1
@@ -2,11 +2,12 @@ import _extends from '@babel/runtime/helpers/extends';
2
2
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
3
3
  import { UserIcon, EyeIcon, EyeOffIcon, LoaderIcon, XIcon, InfoIcon, AlertTriangleIcon, CheckIcon, AlertCircleIcon } from '@ornikar/kitt-icons';
4
4
  export * from '@ornikar/kitt-icons';
5
- import React, { createContext, forwardRef, useContext, useState, Fragment, useMemo } from 'react';
5
+ import React, { createContext, forwardRef, useContext, useState, useMemo, Fragment } from 'react';
6
6
  import { Image, TextInput, useWindowDimensions, TouchableOpacity, StyleSheet, Modal as Modal$1 } from 'react-native';
7
7
  export { useWindowDimensions as useWindowSize } from 'react-native';
8
8
  import styled, { css, keyframes, useTheme, ThemeProvider } from 'styled-components';
9
9
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
10
+ import { parse } from 'twemoji-parser';
10
11
  import { useSafeAreaInsets, SafeAreaProvider } from 'react-native-safe-area-context';
11
12
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
12
13
  import { makeDecorator } from '@storybook/addons';
@@ -19,7 +20,7 @@ var mapAccessibilityRoleToAriaRole = {
19
20
  paragraph: 'paragraph'
20
21
  };
21
22
  var PrimitiveTextAncestorContext = /*#__PURE__*/createContext(false);
22
- var PrimitiveTextWithClassName$1 = /*#__PURE__*/forwardRef(function (_ref, ref) {
23
+ var PrimitiveTextWithClassName = /*#__PURE__*/forwardRef(function (_ref, ref) {
23
24
  var children = _ref.children,
24
25
  className = _ref.className,
25
26
  accessibilityRole = _ref.accessibilityRole,
@@ -50,7 +51,7 @@ var PrimitiveTextWithClassName$1 = /*#__PURE__*/forwardRef(function (_ref, ref)
50
51
  }, element);
51
52
  });
52
53
  var textResetMixin = /*#__PURE__*/css(["", " display:inline;white-space:pre-wrap;word-wrap:break-word;color:inherit;font:inherit;"], resetMixin);
53
- var PrimitiveText = /*#__PURE__*/styled(PrimitiveTextWithClassName$1).withConfig({
54
+ var PrimitiveText = /*#__PURE__*/styled(PrimitiveTextWithClassName).withConfig({
54
55
  displayName: "PrimitiveTextweb__PrimitiveText",
55
56
  componentId: "kitt-universal__sc-8bfguf-0"
56
57
  })(["", " ", ";", ""], textResetMixin, function (_ref2) {
@@ -86,23 +87,53 @@ function createPressKeyUpHandler(onPress) {
86
87
  };
87
88
  }
88
89
 
90
+ var resetPrimitiveViewMixin = /*#__PURE__*/css(["", " align-items:stretch;flex-basis:auto;flex-direction:column;flex-shrink:0;min-height:0;min-width:0;position:'relative';z-index:0;"], resetMixin);
89
91
  var StyledDiv = /*#__PURE__*/styled('div').withConfig({
90
92
  displayName: "PrimitiveViewweb__StyledDiv",
91
93
  componentId: "kitt-universal__sc-1t2oiuz-0"
92
- })(["", " align-items:stretch;display:", ";flex-basis:auto;flex-direction:column;flex-shrink:0;min-height:0;min-width:0;position:'relative';z-index:0;"], resetMixin, function (_ref) {
94
+ })(["", " display:", ";"], resetPrimitiveViewMixin, function (_ref) {
93
95
  var hasTextAncestor = _ref.hasTextAncestor;
94
96
  return hasTextAncestor ? 'inline-flex' : 'flex';
95
97
  });
96
- var PrimitiveView = /*#__PURE__*/forwardRef(function (_ref2, ref) {
97
- var children = _ref2.children,
98
- className = _ref2.className,
99
- style = _ref2.style,
100
- accessibilityRole = _ref2.accessibilityRole,
101
- nativeID = _ref2.nativeID,
102
- testID = _ref2.testID,
103
- tabIndex = _ref2.tabIndex,
104
- onPress = _ref2.onPress;
98
+ var StyledAnchor = /*#__PURE__*/styled('a').withConfig({
99
+ displayName: "PrimitiveViewweb__StyledAnchor",
100
+ componentId: "kitt-universal__sc-1t2oiuz-1"
101
+ })(["", " display:", ";text-decoration:none;"], resetPrimitiveViewMixin, function (_ref2) {
102
+ var hasTextAncestor = _ref2.hasTextAncestor;
103
+ return hasTextAncestor ? 'inline-flex' : 'flex';
104
+ });
105
+ var PrimitiveView = /*#__PURE__*/forwardRef(function (_ref3, ref) {
106
+ var children = _ref3.children,
107
+ className = _ref3.className,
108
+ style = _ref3.style,
109
+ accessibilityRole = _ref3.accessibilityRole,
110
+ accessibilityLabel = _ref3.accessibilityLabel,
111
+ nativeID = _ref3.nativeID,
112
+ testID = _ref3.testID,
113
+ tabIndex = _ref3.tabIndex,
114
+ href = _ref3.href,
115
+ hrefAttrs = _ref3.hrefAttrs,
116
+ onPress = _ref3.onPress;
105
117
  var hasTextAncestor = React.useContext(PrimitiveTextAncestorContext);
118
+
119
+ if (href != null) {
120
+ return /*#__PURE__*/React.createElement(StyledAnchor, _extends({
121
+ ref: ref,
122
+ hasTextAncestor: hasTextAncestor,
123
+ id: nativeID,
124
+ className: className,
125
+ style: style,
126
+ "data-testid": testID,
127
+ role: accessibilityRole,
128
+ "aria-label": accessibilityLabel,
129
+ tabIndex: tabIndex,
130
+ href: href
131
+ }, hrefAttrs, {
132
+ onClick: createPressClickHandler(onPress),
133
+ onKeyUp: createPressKeyUpHandler(onPress)
134
+ }), children);
135
+ }
136
+
106
137
  return /*#__PURE__*/React.createElement(StyledDiv, {
107
138
  ref: ref,
108
139
  hasTextAncestor: hasTextAncestor,
@@ -111,6 +142,7 @@ var PrimitiveView = /*#__PURE__*/forwardRef(function (_ref2, ref) {
111
142
  style: style,
112
143
  "data-testid": testID,
113
144
  role: accessibilityRole,
145
+ "aria-label": accessibilityLabel,
114
146
  tabIndex: tabIndex,
115
147
  onClick: createPressClickHandler(onPress),
116
148
  onKeyUp: createPressKeyUpHandler(onPress)
@@ -157,7 +189,7 @@ function Icon(_ref5) {
157
189
  }, spin ? /*#__PURE__*/React.createElement(SpinningIcon, null, clonedIcon) : clonedIcon);
158
190
  }
159
191
 
160
- var _excluded$a = ["accessibilityRole", "base", "variant", "color"];
192
+ var _excluded$b = ["accessibilityRole", "base", "variant", "color"];
161
193
  var TypographyTypeContext = /*#__PURE__*/createContext(undefined);
162
194
  var TypographyColorContext = /*#__PURE__*/createContext('black');
163
195
  function useTypographyColor() {
@@ -196,7 +228,7 @@ function Typography(_ref3) {
196
228
  base = _ref3.base,
197
229
  variant = _ref3.variant,
198
230
  color = _ref3.color,
199
- otherProps = _objectWithoutProperties(_ref3, _excluded$a);
231
+ otherProps = _objectWithoutProperties(_ref3, _excluded$b);
200
232
 
201
233
  var typeInContext = useContext(TypographyTypeContext);
202
234
  var isHeader = isTypographyHeader(base, typeInContext);
@@ -275,7 +307,7 @@ Typography.h4 = createHeading(4, 'header4');
275
307
 
276
308
  Typography.h5 = createHeading(5, 'header5');
277
309
 
278
- var _excluded$9 = ["size"];
310
+ var _excluded$a = ["size"];
279
311
 
280
312
  var getFirstCharacter = function (string) {
281
313
  return string ? string[0] : '';
@@ -342,7 +374,7 @@ function AvatarContent(_ref5) {
342
374
  function Avatar(_ref6) {
343
375
  var _ref6$size = _ref6.size,
344
376
  size = _ref6$size === void 0 ? 40 : _ref6$size,
345
- rest = _objectWithoutProperties(_ref6, _excluded$9);
377
+ rest = _objectWithoutProperties(_ref6, _excluded$a);
346
378
 
347
379
  return /*#__PURE__*/React.createElement(StyledAvatarView, _extends({}, rest, {
348
380
  size: size
@@ -351,98 +383,7 @@ function Avatar(_ref6) {
351
383
  })));
352
384
  }
353
385
 
354
- var getTabIndex = function (_ref) {
355
- var focusable = _ref.focusable,
356
- disabled = _ref.disabled;
357
- if (disabled) return -1;
358
- if (focusable === false) return -1;
359
- return 0;
360
- };
361
-
362
- var handlePressPreventDefault = function (e) {
363
- e.preventDefault();
364
- };
365
-
366
- var PrimitivePressableWithClassName = /*#__PURE__*/forwardRef(function (_ref2, ref) {
367
- var disabled = _ref2.disabled,
368
- focusable = _ref2.focusable,
369
- children = _ref2.children,
370
- className = _ref2.className,
371
- accessibilityRole = _ref2.accessibilityRole,
372
- nativeID = _ref2.nativeID,
373
- testID = _ref2.testID,
374
- onPress = _ref2.onPress;
375
- return /*#__PURE__*/React.createElement(PrimitiveView, {
376
- ref: ref,
377
- nativeID: nativeID,
378
- testID: testID,
379
- className: className,
380
- "aria-disabled": !!disabled,
381
- accessibilityRole: accessibilityRole
382
- /* https://necolas.github.io/react-native-web/docs/accessibility/#keyboard-focus */
383
- ,
384
- tabIndex: getTabIndex({
385
- focusable: focusable,
386
- disabled: disabled
387
- }),
388
- onPress: disabled ? handlePressPreventDefault : onPress
389
- }, children);
390
- });
391
- var PrimitivePressable = /*#__PURE__*/styled(PrimitivePressableWithClassName).withConfig({
392
- displayName: "PrimitivePressableweb__PrimitivePressable",
393
- componentId: "kitt-universal__sc-1pzco2e-0"
394
- })(["cursor:", ";touch-action:", ";"], function (_ref3) {
395
- var disabled = _ref3.disabled;
396
- return disabled ? 'not-allowed' : 'pointer';
397
- }, function (_ref4) {
398
- var disabled = _ref4.disabled;
399
- return disabled ? 'none' : 'manipulation';
400
- });
401
-
402
- var ButtonContainer = /*#__PURE__*/styled(PrimitivePressable).withConfig({
403
- displayName: "ButtonContainer",
404
- componentId: "kitt-universal__sc-ofbpwm-0"
405
- })(["min-width:", ";max-width:", ";width:", ";min-height:", ";background-color:", ";padding:", ";flex-direction:row;align-self:flex-start;border-radius:", ";border-color:", ";border-width:", ";"], function (_ref) {
406
- var theme = _ref.theme;
407
- return theme.kitt.button.minWidth;
408
- }, function (_ref2) {
409
- var theme = _ref2.theme,
410
- stretch = _ref2.stretch;
411
- return stretch ? 'auto' : theme.kitt.button.maxWidth;
412
- }, function (_ref3) {
413
- var stretch = _ref3.stretch;
414
- return stretch ? '100%' : 'auto';
415
- }, function (_ref4) {
416
- var theme = _ref4.theme;
417
- return theme.kitt.button.minHeight;
418
- }, function (_ref5) {
419
- var theme = _ref5.theme,
420
- isPressed = _ref5.isPressed,
421
- disabled = _ref5.disabled,
422
- type = _ref5.type;
423
-
424
- if (disabled) {
425
- return theme.kitt.button[type].disabledBackgroundColor;
426
- }
427
-
428
- return isPressed ? theme.kitt.button[type].pressedBackgroundColor : theme.kitt.button[type].backgroundColor;
429
- }, function (_ref6) {
430
- var theme = _ref6.theme;
431
- return theme.kitt.button.contentPadding["default"];
432
- }, function (_ref7) {
433
- var theme = _ref7.theme;
434
- return theme.kitt.button.borderRadius;
435
- }, function (_ref8) {
436
- var theme = _ref8.theme,
437
- disabled = _ref8.disabled,
438
- type = _ref8.type;
439
- return disabled ? theme.kitt.button[type].disabledBorderColor : 'transparent';
440
- }, function (_ref9) {
441
- var theme = _ref9.theme;
442
- return theme.kitt.button.borderWidth;
443
- });
444
-
445
- var _excluded$8 = ["color"],
386
+ var _excluded$9 = ["color"],
446
387
  _excluded2$2 = ["color"];
447
388
 
448
389
  function TypographyIconInheritColor(props) {
@@ -455,7 +396,7 @@ function TypographyIconInheritColor(props) {
455
396
 
456
397
  function TypographyIconSpecifiedColor(_ref) {
457
398
  var color = _ref.color,
458
- otherProps = _objectWithoutProperties(_ref, _excluded$8);
399
+ otherProps = _objectWithoutProperties(_ref, _excluded$9);
459
400
 
460
401
  var theme = /*#__PURE__*/useTheme();
461
402
  return /*#__PURE__*/React.createElement(Icon, _extends({}, otherProps, {
@@ -588,23 +529,103 @@ function ButtonContent(_ref4) {
588
529
  })) : null);
589
530
  }
590
531
 
591
- var useButton = function () {
592
- var _useState = useState(false),
593
- _useState2 = _slicedToArray(_useState, 2),
594
- isPressed = _useState2[0],
595
- setIsPressed = _useState2[1];
532
+ var getTabIndex = function (_ref) {
533
+ var focusable = _ref.focusable,
534
+ disabled = _ref.disabled;
535
+ if (disabled) return -1;
536
+ if (focusable === false) return -1;
537
+ return 0;
538
+ };
596
539
 
597
- return {
598
- isPressed: isPressed,
599
- handleButtonPressIn: function handleButtonPressIn() {
600
- return setIsPressed(true);
601
- },
602
- handleButtonPressOut: function handleButtonPressOut() {
603
- return setIsPressed(false);
604
- }
605
- };
540
+ var handlePressPreventDefault = function (e) {
541
+ e.preventDefault();
606
542
  };
607
543
 
544
+ var PrimitivePressableWithClassName = /*#__PURE__*/forwardRef(function (_ref2, ref) {
545
+ var disabled = _ref2.disabled,
546
+ focusable = _ref2.focusable,
547
+ children = _ref2.children,
548
+ className = _ref2.className,
549
+ accessibilityRole = _ref2.accessibilityRole,
550
+ accessibilityLabel = _ref2.accessibilityLabel,
551
+ nativeID = _ref2.nativeID,
552
+ testID = _ref2.testID,
553
+ href = _ref2.href,
554
+ hrefAttrs = _ref2.hrefAttrs,
555
+ onPress = _ref2.onPress;
556
+ return /*#__PURE__*/React.createElement(PrimitiveView, {
557
+ ref: ref,
558
+ nativeID: nativeID,
559
+ testID: testID,
560
+ className: className,
561
+ href: href,
562
+ hrefAttrs: hrefAttrs,
563
+ accessibilityRole: accessibilityRole,
564
+ accessibilityLabel: accessibilityLabel,
565
+ "aria-disabled": !!disabled
566
+ /* https://necolas.github.io/react-native-web/docs/accessibility/#keyboard-focus */
567
+ ,
568
+ tabIndex: getTabIndex({
569
+ focusable: focusable,
570
+ disabled: disabled
571
+ }),
572
+ onPress: disabled ? handlePressPreventDefault : onPress
573
+ }, children);
574
+ });
575
+ var PrimitivePressable = /*#__PURE__*/styled(PrimitivePressableWithClassName).withConfig({
576
+ displayName: "PrimitivePressableweb__PrimitivePressable",
577
+ componentId: "kitt-universal__sc-1pzco2e-0"
578
+ })(["cursor:", ";touch-action:", ";"], function (_ref3) {
579
+ var disabled = _ref3.disabled;
580
+ return disabled ? 'not-allowed' : 'pointer';
581
+ }, function (_ref4) {
582
+ var disabled = _ref4.disabled;
583
+ return disabled ? 'none' : 'manipulation';
584
+ });
585
+
586
+ var ButtonPressable = /*#__PURE__*/styled(PrimitivePressable).withConfig({
587
+ displayName: "ButtonPressable",
588
+ componentId: "kitt-universal__sc-7ckel6-0"
589
+ })(["min-width:", ";max-width:", ";width:", ";min-height:", ";background-color:", ";padding:", ";flex-direction:row;align-self:flex-start;border-radius:", ";border-color:", ";border-width:", ";"], function (_ref) {
590
+ var theme = _ref.theme;
591
+ return theme.kitt.button.minWidth;
592
+ }, function (_ref2) {
593
+ var theme = _ref2.theme,
594
+ stretch = _ref2.stretch;
595
+ return stretch ? 'auto' : theme.kitt.button.maxWidth;
596
+ }, function (_ref3) {
597
+ var stretch = _ref3.stretch;
598
+ return stretch ? '100%' : 'auto';
599
+ }, function (_ref4) {
600
+ var theme = _ref4.theme;
601
+ return theme.kitt.button.minHeight;
602
+ }, function (_ref5) {
603
+ var theme = _ref5.theme,
604
+ isPressed = _ref5.isPressed,
605
+ disabled = _ref5.disabled,
606
+ type = _ref5.type;
607
+
608
+ if (disabled) {
609
+ return theme.kitt.button[type].disabledBackgroundColor;
610
+ }
611
+
612
+ return isPressed ? theme.kitt.button[type].pressedBackgroundColor : theme.kitt.button[type].backgroundColor;
613
+ }, function (_ref6) {
614
+ var theme = _ref6.theme;
615
+ return theme.kitt.button.contentPadding["default"];
616
+ }, function (_ref7) {
617
+ var theme = _ref7.theme;
618
+ return theme.kitt.button.borderRadius;
619
+ }, function (_ref8) {
620
+ var theme = _ref8.theme,
621
+ disabled = _ref8.disabled,
622
+ type = _ref8.type;
623
+ return disabled ? theme.kitt.button[type].disabledBorderColor : 'transparent';
624
+ }, function (_ref9) {
625
+ var theme = _ref9.theme;
626
+ return theme.kitt.button.borderWidth;
627
+ });
628
+
608
629
  function Button(_ref) {
609
630
  var children = _ref.children,
610
631
  _ref$type = _ref.type,
@@ -615,29 +636,37 @@ function Button(_ref) {
615
636
  iconSpin = _ref.iconSpin,
616
637
  stretch = _ref.stretch,
617
638
  disabled = _ref.disabled,
618
- onPress = _ref.onPress,
619
- testID = _ref.testID;
639
+ testID = _ref.testID,
640
+ href = _ref.href,
641
+ hrefAttrs = _ref.hrefAttrs,
642
+ onPress = _ref.onPress;
620
643
 
621
- var _useButton = useButton(),
622
- isPressed = _useButton.isPressed,
623
- handleButtonPressIn = _useButton.handleButtonPressIn,
624
- handleButtonPressOut = _useButton.handleButtonPressOut;
644
+ var _useState = useState(false),
645
+ _useState2 = _slicedToArray(_useState, 2),
646
+ isPressed = _useState2[0],
647
+ setIsPressed = _useState2[1];
625
648
 
626
649
  var sharedProps = {
627
650
  type: type,
628
651
  stretch: stretch,
629
652
  disabled: disabled
630
653
  };
631
- return /*#__PURE__*/React.createElement(ButtonContainer // eslint-disable-next-line unicorn/expiring-todo-comments
654
+ return /*#__PURE__*/React.createElement(ButtonPressable // eslint-disable-next-line unicorn/expiring-todo-comments
632
655
  // TODO: When designs are defined, update with the proper onPress styles to mimic TouchableHighlight
633
656
  // underlayColor={globalTheme.button[type].pressedBackgroundColor}
634
657
  , _extends({}, sharedProps, {
635
658
  isPressed: isPressed,
636
659
  accessibilityRole: "button",
637
660
  testID: testID,
661
+ href: href,
662
+ hrefAttrs: hrefAttrs,
638
663
  onPress: onPress,
639
- onPressIn: handleButtonPressIn,
640
- onPressOut: handleButtonPressOut
664
+ onPressIn: function handleButtonPressIn() {
665
+ return setIsPressed(true);
666
+ },
667
+ onPressOut: function handleButtonPressOut() {
668
+ return setIsPressed(false);
669
+ }
641
670
  }), /*#__PURE__*/React.createElement(ButtonContent, _extends({}, sharedProps, {
642
671
  icon: icon,
643
672
  iconPosition: iconPosition,
@@ -674,6 +703,83 @@ function Card(_ref6) {
674
703
  }, children);
675
704
  }
676
705
 
706
+ var StyledImage = /*#__PURE__*/styled('img').withConfig({
707
+ displayName: "PrimitiveImageweb__StyledImage",
708
+ componentId: "kitt-universal__sc-1iw8ewp-0"
709
+ })(["box-sizing:border-box;display:inline-flex;"]);
710
+ function PrimitiveImage(_ref) {
711
+ var source = _ref.source,
712
+ className = _ref.className,
713
+ accessibilityLabel = _ref.accessibilityLabel;
714
+ return /*#__PURE__*/React.createElement(StyledImage, {
715
+ draggable: false,
716
+ className: className,
717
+ src: source.uri,
718
+ alt: accessibilityLabel
719
+ });
720
+ }
721
+
722
+ var StyledEmoji = /*#__PURE__*/styled(PrimitiveImage).withConfig({
723
+ displayName: "Emoji__StyledEmoji",
724
+ componentId: "kitt-universal__sc-ggl6wj-0"
725
+ })(["width:", "px;height:", "px;"], function (_ref) {
726
+ var size = _ref.size;
727
+ return size;
728
+ }, function (_ref2) {
729
+ var size = _ref2.size;
730
+ return size;
731
+ });
732
+ function Emoji(_ref3) {
733
+ var emoji = _ref3.emoji,
734
+ size = _ref3.size,
735
+ style = _ref3.style,
736
+ className = _ref3.className;
737
+
738
+ var _useMemo = useMemo(function () {
739
+ return parse(emoji, {
740
+ // on native plaforms, you can't display svg as Image
741
+ assetType: 'svg'
742
+ });
743
+ }, [emoji]),
744
+ _useMemo2 = _slicedToArray(_useMemo, 1),
745
+ emojiData = _useMemo2[0];
746
+
747
+ if (!emojiData) return null;
748
+ return /*#__PURE__*/React.createElement(StyledEmoji, {
749
+ size: size,
750
+ accessibilityLabel: emojiData.text,
751
+ source: {
752
+ uri: emojiData.url
753
+ },
754
+ style: style,
755
+ className: className
756
+ });
757
+ }
758
+
759
+ var defaultOpenLinkBehavior = {
760
+ "native": 'openInModal',
761
+ web: 'targetBlank'
762
+ };
763
+
764
+ var _excluded$8 = ["as", "href", "openLinkBehavior", "onPress"];
765
+ function ExternalLink(_ref) {
766
+ var Component = _ref.as,
767
+ href = _ref.href,
768
+ _ref$openLinkBehavior = _ref.openLinkBehavior,
769
+ openLinkBehavior = _ref$openLinkBehavior === void 0 ? defaultOpenLinkBehavior : _ref$openLinkBehavior,
770
+ onPress = _ref.onPress,
771
+ rest = _objectWithoutProperties(_ref, _excluded$8);
772
+
773
+ return /*#__PURE__*/React.createElement(Component, _extends({}, rest, {
774
+ href: href,
775
+ hrefAttrs: (openLinkBehavior === null || openLinkBehavior === void 0 ? void 0 : openLinkBehavior.web) === 'targetSelf' ? undefined : {
776
+ target: '_blank',
777
+ rel: 'noopener noreferrer'
778
+ },
779
+ onPress: onPress
780
+ }));
781
+ }
782
+
677
783
  var getColorFromState = function (state) {
678
784
  switch (state) {
679
785
  case 'invalid':
@@ -1630,11 +1736,12 @@ function Overlay(_ref2) {
1630
1736
  }, /*#__PURE__*/React.createElement(PrimitiveView, null));
1631
1737
  }
1632
1738
 
1633
- var _excluded$3 = ["contentContainerStyle", "children"];
1739
+ var _excluded$3 = ["contentContainerStyle", "children", "bounces"];
1634
1740
  var PrimitiveScrollView = /*#__PURE__*/forwardRef(function (_ref, ref) {
1635
1741
  var contentContainerStyle = _ref.contentContainerStyle,
1636
- children = _ref.children,
1637
- props = _objectWithoutProperties(_ref, _excluded$3);
1742
+ children = _ref.children;
1743
+ _ref.bounces;
1744
+ var props = _objectWithoutProperties(_ref, _excluded$3);
1638
1745
 
1639
1746
  return /*#__PURE__*/React.createElement(PrimitiveView, _extends({
1640
1747
  ref: ref
@@ -1785,18 +1892,24 @@ function Notification(_ref) {
1785
1892
  }, children);
1786
1893
  }
1787
1894
 
1788
- var PrimitiveTextWithClassName = /*#__PURE__*/forwardRef(function (_ref, ref) {
1895
+ var PrimitiveLinkWithClassName = /*#__PURE__*/forwardRef(function (_ref, ref) {
1789
1896
  var children = _ref.children,
1790
1897
  className = _ref.className,
1898
+ href = _ref.href,
1899
+ hrefAttrs = _ref.hrefAttrs,
1791
1900
  onPress = _ref.onPress;
1792
- // https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/master/docs/rules/anchor-is-valid.md
1793
- // if (href) {
1794
- // return (
1795
- // <a ref={ref} href={href} className={className}>
1796
- // {children}
1797
- // </a>
1798
- // );
1799
- // }
1901
+
1902
+ if (href != null) {
1903
+ return /*#__PURE__*/React.createElement("a", _extends({
1904
+ ref: ref,
1905
+ href: href
1906
+ }, hrefAttrs, {
1907
+ className: className,
1908
+ onClick: createPressClickHandler(onPress),
1909
+ onKeyUp: createPressKeyUpHandler(onPress)
1910
+ }), children);
1911
+ }
1912
+
1800
1913
  return /*#__PURE__*/React.createElement("span", {
1801
1914
  ref: ref,
1802
1915
  role: "button",
@@ -1806,12 +1919,12 @@ var PrimitiveTextWithClassName = /*#__PURE__*/forwardRef(function (_ref, ref) {
1806
1919
  onKeyUp: createPressKeyUpHandler(onPress)
1807
1920
  }, children);
1808
1921
  });
1809
- var PrimitiveLink = /*#__PURE__*/styled(PrimitiveTextWithClassName).withConfig({
1922
+ var PrimitiveLink = /*#__PURE__*/styled(PrimitiveLinkWithClassName).withConfig({
1810
1923
  displayName: "PrimitiveLinkweb__PrimitiveLink",
1811
1924
  componentId: "kitt-universal__sc-24w4og-0"
1812
- })(["", " background-color:transparent;color:inherit;font:inherit;list-style:none;text-align:inherit;text-decoration:none;", ";", ";"], textResetMixin, function (_ref2) {
1925
+ })(["", " background-color:transparent;color:inherit;font:inherit !important;list-style:none;text-align:inherit;text-decoration:none;", ";", ";"], textResetMixin, function (_ref2) {
1813
1926
  var selectable = _ref2.selectable;
1814
- return selectable == null ? undefined : "user-select: ".concat(selectable ? 'none' : 'text');
1927
+ return selectable == null ? undefined : "user-select: ".concat(selectable ? 'text' : 'none');
1815
1928
  }, function (_ref3) {
1816
1929
  var onPress = _ref3.onPress;
1817
1930
  return onPress ? 'cursor: pointer;' : undefined;
@@ -2127,26 +2240,63 @@ var StoryGrid = {
2127
2240
  var Container = /*#__PURE__*/styled(PrimitiveView).withConfig({
2128
2241
  displayName: "Tag__Container",
2129
2242
  componentId: "kitt-universal__sc-19jmowi-0"
2130
- })(["background-color:", ";padding:", ";border-radius:", ";align-self:flex-start;"], function (_ref) {
2243
+ })(["background-color:", ";border-width:", ";border-color:", ";padding:", ";border-radius:", ";align-self:flex-start;"], function (_ref) {
2131
2244
  var theme = _ref.theme,
2132
- type = _ref.type;
2133
- return theme.kitt.tag[type].backgroundColor;
2245
+ type = _ref.type,
2246
+ variant = _ref.variant;
2247
+ return theme.kitt.tag[type][variant].backgroundColor;
2134
2248
  }, function (_ref2) {
2135
- var theme = _ref2.theme;
2136
- return theme.kitt.tag.padding;
2249
+ var theme = _ref2.theme,
2250
+ type = _ref2.type,
2251
+ variant = _ref2.variant;
2252
+ return theme.kitt.tag[type][variant].borderWidth;
2137
2253
  }, function (_ref3) {
2138
- var theme = _ref3.theme;
2254
+ var theme = _ref3.theme,
2255
+ type = _ref3.type,
2256
+ variant = _ref3.variant;
2257
+ return theme.kitt.tag[type][variant].borderColor;
2258
+ }, function (_ref4) {
2259
+ var theme = _ref4.theme;
2260
+ return theme.kitt.tag.padding;
2261
+ }, function (_ref5) {
2262
+ var theme = _ref5.theme;
2139
2263
  return theme.kitt.tag.borderRadius;
2140
2264
  });
2141
- function Tag(_ref4) {
2142
- var label = _ref4.label,
2143
- _ref4$type = _ref4.type,
2144
- type = _ref4$type === void 0 ? 'default' : _ref4$type;
2265
+ var getLabelColor = function (type, variant) {
2266
+ switch (type) {
2267
+ case 'danger':
2268
+ {
2269
+ return variant === 'outline' ? 'danger' : 'black';
2270
+ }
2271
+
2272
+ case 'primary':
2273
+ {
2274
+ return 'primary';
2275
+ }
2276
+
2277
+ case 'default':
2278
+ {
2279
+ return 'black';
2280
+ }
2281
+
2282
+ default:
2283
+ {
2284
+ return 'black';
2285
+ }
2286
+ }
2287
+ };
2288
+ function Tag(_ref6) {
2289
+ var label = _ref6.label,
2290
+ _ref6$type = _ref6.type,
2291
+ type = _ref6$type === void 0 ? 'default' : _ref6$type,
2292
+ _ref6$variant = _ref6.variant,
2293
+ variant = _ref6$variant === void 0 ? 'fill' : _ref6$variant;
2145
2294
  return /*#__PURE__*/React.createElement(Container, {
2146
- type: type
2295
+ type: type,
2296
+ variant: variant
2147
2297
  }, /*#__PURE__*/React.createElement(Typography.Text, {
2148
2298
  base: "body-xsmall",
2149
- color: type === 'primary' ? 'primary-light' : undefined
2299
+ color: getLabelColor(type, variant)
2150
2300
  }, label));
2151
2301
  }
2152
2302
 
@@ -2201,9 +2351,9 @@ var buttonLateOceanTheme = {
2201
2351
  disabledBorderColor: lateOceanColorPalette.black100
2202
2352
  },
2203
2353
  secondary: {
2204
- backgroundColor: lateOceanColorPalette.black50,
2354
+ backgroundColor: 'rgba(0, 0, 0, 0.05)',
2205
2355
  disabledBackgroundColor: lateOceanColorPalette.black50,
2206
- pressedBackgroundColor: lateOceanColorPalette.black100,
2356
+ pressedBackgroundColor: 'rgba(0, 0, 0, 0.1)',
2207
2357
  disabledBorderColor: lateOceanColorPalette.black100
2208
2358
  },
2209
2359
  subtle: {
@@ -2404,13 +2554,40 @@ var tagLateOceanTheme = {
2404
2554
  borderRadius: '10px',
2405
2555
  padding: '2px 12px',
2406
2556
  primary: {
2407
- backgroundColor: lateOceanColorPalette.moonPurpleLight1
2557
+ fill: {
2558
+ backgroundColor: lateOceanColorPalette.moonPurpleLight1,
2559
+ borderWidth: '0',
2560
+ borderColor: lateOceanColorPalette.transparent
2561
+ },
2562
+ outline: {
2563
+ backgroundColor: lateOceanColorPalette.transparent,
2564
+ borderWidth: '1px',
2565
+ borderColor: lateOceanColorPalette.lateOcean
2566
+ }
2408
2567
  },
2409
2568
  "default": {
2410
- backgroundColor: lateOceanColorPalette.black50
2569
+ fill: {
2570
+ backgroundColor: lateOceanColorPalette.black50,
2571
+ borderWidth: '0',
2572
+ borderColor: lateOceanColorPalette.transparent
2573
+ },
2574
+ outline: {
2575
+ backgroundColor: lateOceanColorPalette.transparent,
2576
+ borderWidth: '1px',
2577
+ borderColor: lateOceanColorPalette.black1000
2578
+ }
2411
2579
  },
2412
2580
  danger: {
2413
- backgroundColor: lateOceanColorPalette.warmEmbrace
2581
+ fill: {
2582
+ backgroundColor: lateOceanColorPalette.warmEmbrace,
2583
+ borderWidth: '0',
2584
+ borderColor: lateOceanColorPalette.transparent
2585
+ },
2586
+ outline: {
2587
+ backgroundColor: lateOceanColorPalette.transparent,
2588
+ borderWidth: '1px',
2589
+ borderColor: colorsLateOceanTheme.danger
2590
+ }
2414
2591
  }
2415
2592
  };
2416
2593
 
@@ -2538,7 +2715,46 @@ function Tooltip(_ref) {
2538
2715
  return /*#__PURE__*/React.createElement(PrimitiveView, null, children);
2539
2716
  }
2540
2717
 
2541
- var _excluded$1 = ["children", "disabled", "noUnderline", "onPress"];
2718
+ var isBody = function (value) {
2719
+ return ['body-large', 'body-medium', 'body', 'body-small', 'body-xsmall'].includes(value);
2720
+ };
2721
+
2722
+ function getDimensions(base, theme) {
2723
+ if (isBody(base)) {
2724
+ return theme.kitt.typography.types.bodies.configs[base];
2725
+ }
2726
+
2727
+ return theme.kitt.typography.types.headers.configs[base];
2728
+ }
2729
+
2730
+ var StyledTypographyEmoji = /*#__PURE__*/styled(Emoji).withConfig({
2731
+ displayName: "TypographyEmoji__StyledTypographyEmoji",
2732
+ componentId: "kitt-universal__sc-1if5guu-0"
2733
+ })(["align-self:center;", ""], function (_ref) {
2734
+ var size = _ref.size;
2735
+
2736
+ /* Style Twemoji: https://github.com/twitter/twemoji#inline-styles */
2737
+ return "\n margin: 0 ".concat(size / 20, "px 0 ").concat(size / 10, "px;\n transform: translateY(").concat(size / 10 * 2, "px);\n ");
2738
+ });
2739
+ function TypographyEmoji(_ref2) {
2740
+ var emoji = _ref2.emoji,
2741
+ _ref2$base = _ref2.base,
2742
+ base = _ref2$base === void 0 ? 'body' : _ref2$base;
2743
+ var theme = /*#__PURE__*/useTheme();
2744
+ var dimensions = getDimensions(base, theme);
2745
+ var fontSize = dimensions.baseAndSmall.fontSize;
2746
+
2747
+ if ((process.env.NODE_ENV !== "production")) {
2748
+ if (!fontSize.endsWith('px')) throw new Error("Unexpected font-size value: ".concat(fontSize));
2749
+ }
2750
+
2751
+ return /*#__PURE__*/React.createElement(StyledTypographyEmoji, {
2752
+ size: parseInt(fontSize.slice(0, -2), 10),
2753
+ emoji: emoji
2754
+ });
2755
+ }
2756
+
2757
+ var _excluded$1 = ["children", "disabled", "noUnderline", "href", "hrefAttrs", "onPress"];
2542
2758
  var StyledLink = /*#__PURE__*/styled(PrimitiveLink).withConfig({
2543
2759
  shouldForwardProp: function shouldForwardProp(prop) {
2544
2760
  return !['disabled', 'noUnderline'].includes(prop);
@@ -2559,6 +2775,8 @@ function TypographyLink(_ref3) {
2559
2775
  var children = _ref3.children,
2560
2776
  disabled = _ref3.disabled,
2561
2777
  noUnderline = _ref3.noUnderline,
2778
+ href = _ref3.href,
2779
+ hrefAttrs = _ref3.hrefAttrs,
2562
2780
  onPress = _ref3.onPress,
2563
2781
  otherProps = _objectWithoutProperties(_ref3, _excluded$1);
2564
2782
 
@@ -2567,6 +2785,8 @@ function TypographyLink(_ref3) {
2567
2785
  }), /*#__PURE__*/React.createElement(StyledLink, {
2568
2786
  disabled: disabled,
2569
2787
  noUnderline: noUnderline,
2788
+ href: href,
2789
+ hrefAttrs: hrefAttrs,
2570
2790
  accessibilityRole: "link",
2571
2791
  onPress: disabled ? undefined : onPress
2572
2792
  }, children));
@@ -2675,5 +2895,5 @@ function MatchWindowSize(_ref) {
2675
2895
  return /*#__PURE__*/React.createElement(React.Fragment, null, children);
2676
2896
  }
2677
2897
 
2678
- export { Avatar, Button, Card, Flex, FullScreenModal, Icon, IconButton, InputFeedback, InputField, InputText, KittBreakpoints, KittBreakpointsMax, KittThemeDecorator, Label, LargeLoader, ListItem, Loader, MatchWindowSize, Message, Modal, Notification, PrimitiveLink, PrimitivePressable, PrimitiveScrollView, PrimitiveText, PrimitiveView, Radio, SafeAreaProviderDecorator, DeprecatedSection as Section, Story, StoryBlock, StoryContainer, StoryDecorator, StoryGrid, StorySection, StoryTitle, Tag, TextArea, Tooltip, Typography, TypographyIcon, TypographyLink, createWindowSizeHelper, matchWindowSize, styledTextInputMixin, theme, useKittTheme, useMatchWindowSize, useStoryBlockColor };
2898
+ export { Avatar, Button, Card, Emoji, ExternalLink, Flex, FullScreenModal, Icon, IconButton, InputFeedback, InputField, InputText, KittBreakpoints, KittBreakpointsMax, KittThemeDecorator, KittThemeProvider, Label, LargeLoader, ListItem, Loader, MatchWindowSize, Message, Modal, Notification, PrimitiveImage, PrimitiveLink, PrimitivePressable, PrimitiveScrollView, PrimitiveText, PrimitiveView, Radio, SafeAreaProviderDecorator, DeprecatedSection as Section, Story, StoryBlock, StoryContainer, StoryDecorator, StoryGrid, StorySection, StoryTitle, Tag, TextArea, Tooltip, Typography, TypographyEmoji, TypographyIcon, TypographyLink, createWindowSizeHelper, matchWindowSize, styledTextInputMixin, theme, useKittTheme, useMatchWindowSize, useStoryBlockColor };
2679
2899
  //# sourceMappingURL=index-browser-all.es.web.js.map