@chayns-components/core 5.0.0-beta.4 → 5.0.0-beta.40

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 (142) hide show
  1. package/lib/components/accordion/Accordion.d.ts +51 -6
  2. package/lib/components/accordion/Accordion.js +86 -165
  3. package/lib/components/accordion/Accordion.js.map +1 -1
  4. package/lib/components/accordion/Accordion.styles.d.ts +7 -0
  5. package/lib/components/accordion/Accordion.styles.js +81 -0
  6. package/lib/components/accordion/Accordion.styles.js.map +1 -0
  7. package/lib/components/accordion/accordion-body/AccordionBody.d.ts +1 -2
  8. package/lib/components/accordion/accordion-body/AccordionBody.js +12 -18
  9. package/lib/components/accordion/accordion-body/AccordionBody.js.map +1 -1
  10. package/lib/components/accordion/accordion-body/AccordionBody.styles.d.ts +1 -0
  11. package/lib/components/accordion/accordion-body/AccordionBody.styles.js +14 -0
  12. package/lib/components/accordion/accordion-body/AccordionBody.styles.js.map +1 -0
  13. package/lib/components/accordion/accordion-content/AccordionContent.d.ts +6 -3
  14. package/lib/components/accordion/accordion-content/AccordionContent.js +15 -22
  15. package/lib/components/accordion/accordion-content/AccordionContent.js.map +1 -1
  16. package/lib/components/accordion/accordion-content/AccordionContent.styles.d.ts +5 -0
  17. package/lib/components/accordion/accordion-content/AccordionContent.styles.js +24 -0
  18. package/lib/components/accordion/accordion-content/AccordionContent.styles.js.map +1 -0
  19. package/lib/components/accordion/accordion-group/AccordionGroup.d.ts +26 -0
  20. package/lib/components/accordion/accordion-group/AccordionGroup.js +57 -0
  21. package/lib/components/accordion/accordion-group/AccordionGroup.js.map +1 -0
  22. package/lib/components/accordion/accordion-head/AccordionHead.d.ts +9 -3
  23. package/lib/components/accordion/accordion-head/AccordionHead.js +94 -126
  24. package/lib/components/accordion/accordion-head/AccordionHead.js.map +1 -1
  25. package/lib/components/accordion/accordion-head/AccordionHead.styles.d.ts +19 -0
  26. package/lib/components/accordion/accordion-head/AccordionHead.styles.js +158 -0
  27. package/lib/components/accordion/accordion-head/AccordionHead.styles.js.map +1 -0
  28. package/lib/components/accordion/accordion-intro/AccordionIntro.d.ts +9 -0
  29. package/lib/components/accordion/accordion-intro/AccordionIntro.js +21 -0
  30. package/lib/components/accordion/accordion-intro/AccordionIntro.js.map +1 -0
  31. package/lib/components/accordion/accordion-intro/AccordionIntro.styles.d.ts +1 -0
  32. package/lib/components/accordion/accordion-intro/AccordionIntro.styles.js +13 -0
  33. package/lib/components/accordion/accordion-intro/AccordionIntro.styles.js.map +1 -0
  34. package/lib/components/accordion/utils.d.ts +11 -0
  35. package/lib/components/accordion/utils.js +36 -0
  36. package/lib/components/accordion/utils.js.map +1 -0
  37. package/lib/components/badge/Badge.d.ts +9 -1
  38. package/lib/components/badge/Badge.js +14 -26
  39. package/lib/components/badge/Badge.js.map +1 -1
  40. package/lib/components/badge/Badge.styles.d.ts +4 -0
  41. package/lib/components/badge/Badge.styles.js +32 -0
  42. package/lib/components/badge/Badge.styles.js.map +1 -0
  43. package/lib/components/button/Button.d.ts +2 -2
  44. package/lib/components/button/Button.js +15 -44
  45. package/lib/components/button/Button.js.map +1 -1
  46. package/lib/components/button/Button.styles.d.ts +7 -0
  47. package/lib/components/button/Button.styles.js +60 -0
  48. package/lib/components/button/Button.styles.js.map +1 -0
  49. package/lib/components/checkbox/Checkbox.d.ts +25 -0
  50. package/lib/components/checkbox/Checkbox.js +44 -0
  51. package/lib/components/checkbox/Checkbox.js.map +1 -0
  52. package/lib/components/checkbox/Checkbox.styles.d.ts +6 -0
  53. package/lib/components/checkbox/Checkbox.styles.js +125 -0
  54. package/lib/components/checkbox/Checkbox.styles.js.map +1 -0
  55. package/lib/components/color-scheme-provider/ColorSchemeProvider.d.ts +6 -0
  56. package/lib/components/color-scheme-provider/ColorSchemeProvider.js +38 -78
  57. package/lib/components/color-scheme-provider/ColorSchemeProvider.js.map +1 -1
  58. package/lib/components/context-menu/ContextMenu.d.ts +51 -0
  59. package/lib/components/context-menu/ContextMenu.js +154 -0
  60. package/lib/components/context-menu/ContextMenu.js.map +1 -0
  61. package/lib/components/context-menu/ContextMenu.styles.d.ts +1 -0
  62. package/lib/components/context-menu/ContextMenu.styles.js +13 -0
  63. package/lib/components/context-menu/ContextMenu.styles.js.map +1 -0
  64. package/lib/components/context-menu/constants/alignment.d.ts +8 -0
  65. package/lib/components/context-menu/constants/alignment.js +17 -0
  66. package/lib/components/context-menu/constants/alignment.js.map +1 -0
  67. package/lib/components/context-menu/context-menu-content/ContextMenuContent.d.ts +10 -0
  68. package/lib/components/context-menu/context-menu-content/ContextMenuContent.js +78 -0
  69. package/lib/components/context-menu/context-menu-content/ContextMenuContent.js.map +1 -0
  70. package/lib/components/context-menu/context-menu-content/ContextMenuContent.styles.d.ts +11 -0
  71. package/lib/components/context-menu/context-menu-content/ContextMenuContent.styles.js +117 -0
  72. package/lib/components/context-menu/context-menu-content/ContextMenuContent.styles.js.map +1 -0
  73. package/lib/components/grid-image/GridImage.d.ts +19 -0
  74. package/lib/components/grid-image/GridImage.js +46 -0
  75. package/lib/components/grid-image/GridImage.js.map +1 -0
  76. package/lib/components/grid-image/GridImage.styles.d.ts +21 -0
  77. package/lib/components/grid-image/GridImage.styles.js +105 -0
  78. package/lib/components/grid-image/GridImage.styles.js.map +1 -0
  79. package/lib/components/icon/Icon.d.ts +11 -3
  80. package/lib/components/icon/Icon.js +36 -80
  81. package/lib/components/icon/Icon.js.map +1 -1
  82. package/lib/components/icon/Icon.styles.d.ts +15 -0
  83. package/lib/components/icon/Icon.styles.js +76 -0
  84. package/lib/components/icon/Icon.styles.js.map +1 -0
  85. package/lib/components/icon/utils.d.ts +1 -0
  86. package/lib/components/icon/utils.js +13 -0
  87. package/lib/components/icon/utils.js.map +1 -0
  88. package/lib/components/input/Input.d.ts +33 -0
  89. package/lib/components/input/Input.js +72 -0
  90. package/lib/components/input/Input.js.map +1 -0
  91. package/lib/components/input/Input.styles.d.ts +6 -0
  92. package/lib/components/input/Input.styles.js +58 -0
  93. package/lib/components/input/Input.styles.js.map +1 -0
  94. package/lib/components/list/List.d.ts +18 -0
  95. package/lib/components/list/List.js +54 -0
  96. package/lib/components/list/List.js.map +1 -0
  97. package/lib/components/list/list-item/ListItem.d.ts +67 -0
  98. package/lib/components/list/list-item/ListItem.js +90 -0
  99. package/lib/components/list/list-item/ListItem.js.map +1 -0
  100. package/lib/components/list/list-item/ListItem.styles.d.ts +6 -0
  101. package/lib/components/list/list-item/ListItem.styles.js +56 -0
  102. package/lib/components/list/list-item/ListItem.styles.js.map +1 -0
  103. package/lib/components/list/list-item/list-item-body/ListItemBody.d.ts +3 -0
  104. package/lib/components/list/list-item/list-item-body/ListItemBody.js +36 -0
  105. package/lib/components/list/list-item/list-item-body/ListItemBody.js.map +1 -0
  106. package/lib/components/list/list-item/list-item-body/ListItemBody.styles.d.ts +1 -0
  107. package/lib/components/list/list-item/list-item-body/ListItemBody.styles.js +14 -0
  108. package/lib/components/list/list-item/list-item-body/ListItemBody.styles.js.map +1 -0
  109. package/lib/components/list/list-item/list-item-content/ListItemContent.d.ts +3 -0
  110. package/lib/components/list/list-item/list-item-content/ListItemContent.js +21 -0
  111. package/lib/components/list/list-item/list-item-content/ListItemContent.js.map +1 -0
  112. package/lib/components/list/list-item/list-item-content/ListItemContent.styles.d.ts +1 -0
  113. package/lib/components/list/list-item/list-item-content/ListItemContent.styles.js +19 -0
  114. package/lib/components/list/list-item/list-item-content/ListItemContent.styles.js.map +1 -0
  115. package/lib/components/list/list-item/list-item-head/ListItemHead.d.ts +18 -0
  116. package/lib/components/list/list-item/list-item-head/ListItemHead.js +100 -0
  117. package/lib/components/list/list-item/list-item-head/ListItemHead.js.map +1 -0
  118. package/lib/components/list/list-item/list-item-head/ListItemHead.styles.d.ts +20 -0
  119. package/lib/components/list/list-item/list-item-head/ListItemHead.styles.js +110 -0
  120. package/lib/components/list/list-item/list-item-head/ListItemHead.styles.js.map +1 -0
  121. package/lib/components/list/list-item/list-item-head/list-item-icon/ListItemIcon.d.ts +6 -0
  122. package/lib/components/list/list-item/list-item-head/list-item-icon/ListItemIcon.js +23 -0
  123. package/lib/components/list/list-item/list-item-head/list-item-icon/ListItemIcon.js.map +1 -0
  124. package/lib/components/list/list-item/list-item-head/list-item-icon/ListItemIcon.styles.d.ts +1 -0
  125. package/lib/components/list/list-item/list-item-head/list-item-icon/ListItemIcon.styles.js +32 -0
  126. package/lib/components/list/list-item/list-item-head/list-item-icon/ListItemIcon.styles.js.map +1 -0
  127. package/lib/components/list/list-item/list-item-head/list-item-image/ListItemImage.d.ts +7 -0
  128. package/lib/components/list/list-item/list-item-head/list-item-image/ListItemImage.js +44 -0
  129. package/lib/components/list/list-item/list-item-head/list-item-image/ListItemImage.js.map +1 -0
  130. package/lib/components/list/list-item/list-item-head/list-item-image/ListItemImage.styles.d.ts +10 -0
  131. package/lib/components/list/list-item/list-item-head/list-item-image/ListItemImage.styles.js +52 -0
  132. package/lib/components/list/list-item/list-item-head/list-item-image/ListItemImage.styles.js.map +1 -0
  133. package/lib/hooks/uuid.d.ts +1 -0
  134. package/lib/hooks/uuid.js +14 -0
  135. package/lib/hooks/uuid.js.map +1 -0
  136. package/lib/index.d.ts +10 -0
  137. package/lib/index.js +75 -11
  138. package/lib/index.js.map +1 -1
  139. package/lib/types/chayns.d.ts +56 -0
  140. package/lib/types/chayns.js +14 -0
  141. package/lib/types/chayns.js.map +1 -0
  142. package/package.json +64 -62
@@ -1,100 +1,64 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
-
5
3
  Object.defineProperty(exports, "__esModule", {
6
4
  value: true
7
5
  });
8
6
  exports.default = void 0;
9
-
10
7
  var _clsx = _interopRequireDefault(require("clsx"));
11
-
12
8
  var _react = _interopRequireDefault(require("react"));
13
-
14
- var _styledComponents = _interopRequireWildcard(require("styled-components"));
15
-
16
- var _templateObject, _templateObject2, _templateObject3;
17
-
18
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
-
20
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
21
-
9
+ var _Icon = require("./Icon.styles");
10
+ var _utils = require("./utils");
22
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
-
24
- function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
25
-
26
- var StyledIconWrapper = _styledComponents.default.span(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n cursor: ", ";\n display: inline-flex;\n height: ", ";\n opacity: ", ";\n position: relative;\n transition: opacity 0.3s ease;\n width: ", ";\n"])), function (_ref) {
27
- var isDisabled = _ref.isDisabled,
28
- onClick = _ref.onClick;
29
- return typeof onClick === 'function' && !isDisabled ? 'pointer' : 'default';
30
- }, function (_ref2) {
31
- var size = _ref2.size;
32
- return "".concat(size, "px");
33
- }, function (_ref3) {
34
- var isDisabled = _ref3.isDisabled;
35
- return isDisabled ? 0.5 : 1;
36
- }, function (_ref4) {
37
- var size = _ref4.size;
38
- return "".concat(size, "px");
39
- });
40
-
41
- var StyledIcon = _styledComponents.default.i(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n color: ", ";\n display: ", ";\n font-size: ", ";\n\n ", "\n"])), function (_ref5) {
42
- var color = _ref5.color,
43
- theme = _ref5.theme;
44
- return color || theme['headline'];
45
- }, function (_ref6) {
46
- var isStacked = _ref6.isStacked;
47
- return isStacked ? undefined : 'inline-flex';
48
- }, function (_ref7) {
49
- var fontSize = _ref7.fontSize;
50
- return "".concat(fontSize, "px");
51
- }, function (_ref8) {
52
- var fontSize = _ref8.fontSize,
53
- size = _ref8.size;
54
- return fontSize !== size && (0, _styledComponents.css)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n top: 50%;\n transform: translateY(-50%);\n "])));
55
- });
56
-
57
- var Icon = function Icon(_ref9) {
58
- var className = _ref9.className,
59
- color = _ref9.color,
60
- icons = _ref9.icons,
61
- isDisabled = _ref9.isDisabled,
62
- onClick = _ref9.onClick,
63
- _ref9$size = _ref9.size,
64
- size = _ref9$size === void 0 ? 15 : _ref9$size,
65
- shouldStopPropagation = _ref9.shouldStopPropagation;
66
-
67
- var handleClick = function handleClick(event) {
12
+ const Icon = _ref => {
13
+ let {
14
+ className,
15
+ color,
16
+ icons,
17
+ isDisabled,
18
+ onClick,
19
+ onDoubleClick,
20
+ onMouseDown,
21
+ size = 15,
22
+ shouldStopPropagation
23
+ } = _ref;
24
+ const handleClick = event => {
68
25
  if (shouldStopPropagation) {
69
26
  event.stopPropagation();
70
27
  }
71
-
72
28
  if (typeof onClick === 'function') {
73
29
  onClick(event);
74
30
  }
75
31
  };
76
-
77
- var maxStackSizeFactor = 1;
78
- icons.forEach(function (icon) {
79
- var stackSizeFactor = getStackSizeFactor(icon);
80
-
32
+ const handleDoubleClick = event => {
33
+ if (shouldStopPropagation) {
34
+ event.stopPropagation();
35
+ }
36
+ if (typeof onDoubleClick === 'function') {
37
+ onDoubleClick(event);
38
+ }
39
+ };
40
+ let maxStackSizeFactor = 1;
41
+ icons.forEach(icon => {
42
+ const stackSizeFactor = (0, _utils.getStackSizeFactor)(icon);
81
43
  if (stackSizeFactor && stackSizeFactor > maxStackSizeFactor) {
82
44
  maxStackSizeFactor = stackSizeFactor;
83
45
  }
84
46
  });
85
- var shouldUseStackedIcon = icons.length > 1;
86
- var wrapperClasses = (0, _clsx.default)('beta-chayns-icon', shouldUseStackedIcon ? 'fa-stack' : '', className);
87
- return /*#__PURE__*/_react.default.createElement(StyledIconWrapper, {
47
+ const shouldUseStackedIcon = icons.length > 1;
48
+ const wrapperClasses = (0, _clsx.default)('beta-chayns-icon', shouldUseStackedIcon ? 'fa-stack' : '', className);
49
+ return /*#__PURE__*/_react.default.createElement(_Icon.StyledIconWrapper, {
88
50
  className: wrapperClasses,
89
51
  isDisabled: isDisabled,
90
- onClick: handleClick,
52
+ onClick: typeof onClick === 'function' ? handleClick : undefined,
53
+ onDoubleClick: typeof onDoubleClick === 'function' ? handleDoubleClick : undefined,
54
+ onMouseDown: onMouseDown,
91
55
  size: size
92
- }, icons.map(function (icon) {
93
- var stackSizeFactor = getStackSizeFactor(icon);
94
- var iconClasses = (0, _clsx.default)(icon, className, {
56
+ }, icons.map(icon => {
57
+ const stackSizeFactor = (0, _utils.getStackSizeFactor)(icon);
58
+ const iconClasses = (0, _clsx.default)(icon, className, {
95
59
  'fa-stack-1x': shouldUseStackedIcon && stackSizeFactor === undefined
96
60
  });
97
- return /*#__PURE__*/_react.default.createElement(StyledIcon, {
61
+ return /*#__PURE__*/_react.default.createElement(_Icon.StyledIcon, {
98
62
  className: iconClasses,
99
63
  color: icon.includes('fa-inverse') ? 'white' : color,
100
64
  fontSize: (stackSizeFactor || 1) / maxStackSizeFactor * size,
@@ -104,15 +68,7 @@ var Icon = function Icon(_ref9) {
104
68
  });
105
69
  }));
106
70
  };
107
-
108
71
  Icon.displayName = 'Icon';
109
72
  var _default = Icon;
110
73
  exports.default = _default;
111
-
112
- var getStackSizeFactor = function getStackSizeFactor(icon) {
113
- var _icon$match;
114
-
115
- var sizeFactorString = (_icon$match = icon.match(/fa-stack-([\d])x/)) === null || _icon$match === void 0 ? void 0 : _icon$match[1];
116
- return typeof sizeFactorString === 'string' ? parseInt(sizeFactorString, 10) : undefined;
117
- };
118
74
  //# sourceMappingURL=Icon.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/icon/Icon.tsx"],"names":["StyledIconWrapper","styled","span","isDisabled","onClick","size","StyledIcon","i","color","theme","isStacked","undefined","fontSize","css","Icon","className","icons","shouldStopPropagation","handleClick","event","stopPropagation","maxStackSizeFactor","forEach","icon","stackSizeFactor","getStackSizeFactor","shouldUseStackedIcon","length","wrapperClasses","map","iconClasses","includes","displayName","sizeFactorString","match","parseInt"],"mappings":"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","sourcesContent":["import clsx from 'clsx';\nimport React, { FC, MouseEventHandler } from 'react';\nimport styled, { css } from 'styled-components';\nimport type { Omit } from 'framer-motion/types/types';\n\ntype IconProps = {\n /**\n * Additional class names for the root element\n */\n className?: string;\n /**\n * The color of the icon\n */\n color?: string;\n /**\n * The FontAwesome or tobit icons to render. Multiple icons are stacked.\n */\n icons: [string, ...string[]];\n /**\n * Disables the icon so that it cannot be clicked anymore\n */\n isDisabled?: boolean;\n /**\n * Function to be executed when the icon is clicked\n */\n onClick?: MouseEventHandler<HTMLSpanElement>;\n /**\n * Size of the icon in pixel\n */\n size?: number;\n /**\n * Stops event propagation on click\n */\n shouldStopPropagation?: boolean;\n};\n\ntype StyledIconWrapperProps = Omit<IconProps, 'icons'>;\n\ntype StyledIconProps = Omit<IconProps, 'icons'> & {\n fontSize: number;\n isStacked?: boolean;\n};\n\nconst StyledIconWrapper = styled.span<StyledIconWrapperProps>`\n cursor: ${({ isDisabled, onClick }) =>\n typeof onClick === 'function' && !isDisabled ? 'pointer' : 'default'};\n display: inline-flex;\n height: ${({ size }) => `${size}px`};\n opacity: ${({ isDisabled }) => (isDisabled ? 0.5 : 1)};\n position: relative;\n transition: opacity 0.3s ease;\n width: ${({ size }) => `${size}px`};\n`;\n\nconst StyledIcon = styled.i<StyledIconProps>`\n color: ${({ color, theme }) => color || theme['headline']};\n display: ${({ isStacked }) => (isStacked ? undefined : 'inline-flex')};\n font-size: ${({ fontSize }) => `${fontSize}px`};\n\n ${({ fontSize, size }) =>\n fontSize !== size &&\n css`\n top: 50%;\n transform: translateY(-50%);\n `}\n`;\n\nconst Icon: FC<IconProps> = ({\n className,\n color,\n icons,\n isDisabled,\n onClick,\n size = 15,\n shouldStopPropagation,\n}) => {\n const handleClick: MouseEventHandler<HTMLElement | HTMLSpanElement> = (event) => {\n if (shouldStopPropagation) {\n event.stopPropagation();\n }\n\n if (typeof onClick === 'function') {\n onClick(event);\n }\n };\n\n let maxStackSizeFactor = 1;\n\n icons.forEach((icon) => {\n const stackSizeFactor = getStackSizeFactor(icon);\n\n if (stackSizeFactor && stackSizeFactor > maxStackSizeFactor) {\n maxStackSizeFactor = stackSizeFactor;\n }\n });\n\n const shouldUseStackedIcon = icons.length > 1;\n\n const wrapperClasses = clsx(\n 'beta-chayns-icon',\n shouldUseStackedIcon ? 'fa-stack' : '',\n className\n );\n\n return (\n <StyledIconWrapper\n className={wrapperClasses}\n isDisabled={isDisabled}\n onClick={handleClick}\n size={size}\n >\n {icons.map((icon) => {\n const stackSizeFactor = getStackSizeFactor(icon);\n\n const iconClasses = clsx(icon, className, {\n 'fa-stack-1x': shouldUseStackedIcon && stackSizeFactor === undefined,\n });\n\n return (\n <StyledIcon\n className={iconClasses}\n color={icon.includes('fa-inverse') ? 'white' : color}\n fontSize={((stackSizeFactor || 1) / maxStackSizeFactor) * size}\n isStacked={shouldUseStackedIcon}\n key={icon}\n size={size}\n />\n );\n })}\n </StyledIconWrapper>\n );\n};\n\nIcon.displayName = 'Icon';\n\nexport default Icon;\n\nconst getStackSizeFactor = (icon: string) => {\n const sizeFactorString = icon.match(/fa-stack-([\\d])x/)?.[1];\n\n return typeof sizeFactorString === 'string' ? parseInt(sizeFactorString, 10) : undefined;\n};\n"],"file":"Icon.js"}
1
+ {"version":3,"file":"Icon.js","names":["Icon","className","color","icons","isDisabled","onClick","onDoubleClick","onMouseDown","size","shouldStopPropagation","handleClick","event","stopPropagation","handleDoubleClick","maxStackSizeFactor","forEach","icon","stackSizeFactor","getStackSizeFactor","shouldUseStackedIcon","length","wrapperClasses","clsx","undefined","map","iconClasses","includes","displayName"],"sources":["../../../src/components/icon/Icon.tsx"],"sourcesContent":["import clsx from 'clsx';\nimport React, { FC, MouseEventHandler } from 'react';\nimport { StyledIcon, StyledIconWrapper } from './Icon.styles';\nimport { getStackSizeFactor } from './utils';\n\nexport type IconProps = {\n /**\n * Additional class names for the root element\n */\n className?: string;\n /**\n * The color of the icon\n */\n color?: string;\n /**\n * The FontAwesome or tobit icons to render. Multiple icons are stacked.\n */\n icons: string[];\n /**\n * Disables the icon so that it cannot be clicked anymore\n */\n isDisabled?: boolean;\n /**\n * Function to be executed when the icon was clicked\n */\n onClick?: MouseEventHandler<HTMLSpanElement>;\n /**\n * Function to be executed when the icon was double-clicked\n */\n onDoubleClick?: MouseEventHandler<HTMLSpanElement>;\n /**\n * Function to be executed when a mouse button is pressed on the icon\n */\n onMouseDown?: MouseEventHandler<HTMLSpanElement>;\n /**\n * Size of the icon in pixel\n */\n size?: number;\n /**\n * Stops event propagation on click\n */\n shouldStopPropagation?: boolean;\n};\n\nconst Icon: FC<IconProps> = ({\n className,\n color,\n icons,\n isDisabled,\n onClick,\n onDoubleClick,\n onMouseDown,\n size = 15,\n shouldStopPropagation,\n}) => {\n const handleClick: MouseEventHandler<HTMLSpanElement> = (event) => {\n if (shouldStopPropagation) {\n event.stopPropagation();\n }\n\n if (typeof onClick === 'function') {\n onClick(event);\n }\n };\n\n const handleDoubleClick: MouseEventHandler<HTMLSpanElement> = (event) => {\n if (shouldStopPropagation) {\n event.stopPropagation();\n }\n\n if (typeof onDoubleClick === 'function') {\n onDoubleClick(event);\n }\n };\n\n let maxStackSizeFactor = 1;\n\n icons.forEach((icon) => {\n const stackSizeFactor = getStackSizeFactor(icon);\n\n if (stackSizeFactor && stackSizeFactor > maxStackSizeFactor) {\n maxStackSizeFactor = stackSizeFactor;\n }\n });\n\n const shouldUseStackedIcon = icons.length > 1;\n\n const wrapperClasses = clsx(\n 'beta-chayns-icon',\n shouldUseStackedIcon ? 'fa-stack' : '',\n className\n );\n\n return (\n <StyledIconWrapper\n className={wrapperClasses}\n isDisabled={isDisabled}\n onClick={typeof onClick === 'function' ? handleClick : undefined}\n onDoubleClick={typeof onDoubleClick === 'function' ? handleDoubleClick : undefined}\n onMouseDown={onMouseDown}\n size={size}\n >\n {icons.map((icon) => {\n const stackSizeFactor = getStackSizeFactor(icon);\n\n const iconClasses = clsx(icon, className, {\n 'fa-stack-1x': shouldUseStackedIcon && stackSizeFactor === undefined,\n });\n\n return (\n <StyledIcon\n className={iconClasses}\n color={icon.includes('fa-inverse') ? 'white' : color}\n fontSize={((stackSizeFactor || 1) / maxStackSizeFactor) * size}\n isStacked={shouldUseStackedIcon}\n key={icon}\n size={size}\n />\n );\n })}\n </StyledIconWrapper>\n );\n};\n\nIcon.displayName = 'Icon';\n\nexport default Icon;\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AAA6C;AAyC7C,MAAMA,IAAmB,GAAG,QAUtB;EAAA,IAVuB;IACzBC,SAAS;IACTC,KAAK;IACLC,KAAK;IACLC,UAAU;IACVC,OAAO;IACPC,aAAa;IACbC,WAAW;IACXC,IAAI,GAAG,EAAE;IACTC;EACJ,CAAC;EACG,MAAMC,WAA+C,GAAIC,KAAK,IAAK;IAC/D,IAAIF,qBAAqB,EAAE;MACvBE,KAAK,CAACC,eAAe,EAAE;IAC3B;IAEA,IAAI,OAAOP,OAAO,KAAK,UAAU,EAAE;MAC/BA,OAAO,CAACM,KAAK,CAAC;IAClB;EACJ,CAAC;EAED,MAAME,iBAAqD,GAAIF,KAAK,IAAK;IACrE,IAAIF,qBAAqB,EAAE;MACvBE,KAAK,CAACC,eAAe,EAAE;IAC3B;IAEA,IAAI,OAAON,aAAa,KAAK,UAAU,EAAE;MACrCA,aAAa,CAACK,KAAK,CAAC;IACxB;EACJ,CAAC;EAED,IAAIG,kBAAkB,GAAG,CAAC;EAE1BX,KAAK,CAACY,OAAO,CAAEC,IAAI,IAAK;IACpB,MAAMC,eAAe,GAAG,IAAAC,yBAAkB,EAACF,IAAI,CAAC;IAEhD,IAAIC,eAAe,IAAIA,eAAe,GAAGH,kBAAkB,EAAE;MACzDA,kBAAkB,GAAGG,eAAe;IACxC;EACJ,CAAC,CAAC;EAEF,MAAME,oBAAoB,GAAGhB,KAAK,CAACiB,MAAM,GAAG,CAAC;EAE7C,MAAMC,cAAc,GAAG,IAAAC,aAAI,EACvB,kBAAkB,EAClBH,oBAAoB,GAAG,UAAU,GAAG,EAAE,EACtClB,SAAS,CACZ;EAED,oBACI,6BAAC,uBAAiB;IACd,SAAS,EAAEoB,cAAe;IAC1B,UAAU,EAAEjB,UAAW;IACvB,OAAO,EAAE,OAAOC,OAAO,KAAK,UAAU,GAAGK,WAAW,GAAGa,SAAU;IACjE,aAAa,EAAE,OAAOjB,aAAa,KAAK,UAAU,GAAGO,iBAAiB,GAAGU,SAAU;IACnF,WAAW,EAAEhB,WAAY;IACzB,IAAI,EAAEC;EAAK,GAEVL,KAAK,CAACqB,GAAG,CAAER,IAAI,IAAK;IACjB,MAAMC,eAAe,GAAG,IAAAC,yBAAkB,EAACF,IAAI,CAAC;IAEhD,MAAMS,WAAW,GAAG,IAAAH,aAAI,EAACN,IAAI,EAAEf,SAAS,EAAE;MACtC,aAAa,EAAEkB,oBAAoB,IAAIF,eAAe,KAAKM;IAC/D,CAAC,CAAC;IAEF,oBACI,6BAAC,gBAAU;MACP,SAAS,EAAEE,WAAY;MACvB,KAAK,EAAET,IAAI,CAACU,QAAQ,CAAC,YAAY,CAAC,GAAG,OAAO,GAAGxB,KAAM;MACrD,QAAQ,EAAG,CAACe,eAAe,IAAI,CAAC,IAAIH,kBAAkB,GAAIN,IAAK;MAC/D,SAAS,EAAEW,oBAAqB;MAChC,GAAG,EAAEH,IAAK;MACV,IAAI,EAAER;IAAK,EACb;EAEV,CAAC,CAAC,CACc;AAE5B,CAAC;AAEDR,IAAI,CAAC2B,WAAW,GAAG,MAAM;AAAC,eAEX3B,IAAI;AAAA"}
@@ -0,0 +1,15 @@
1
+ import type { MouseEventHandler } from 'react';
2
+ import type { IconProps } from './Icon';
3
+ declare type StyledIconWrapperProps = {
4
+ isDisabled?: boolean;
5
+ onClick?: MouseEventHandler<HTMLSpanElement>;
6
+ size: number;
7
+ };
8
+ export declare const StyledIconWrapper: import("styled-components").StyledComponent<"span", any, StyledIconWrapperProps, never>;
9
+ export declare const StyledIcon: import("styled-components").StyledComponent<"i", any, Omit<IconProps, "icons"> & {
10
+ fontSize: number;
11
+ isStacked?: boolean | undefined;
12
+ } & {
13
+ theme: import("../color-scheme-provider/ColorSchemeProvider").Theme;
14
+ }, never>;
15
+ export {};
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.StyledIconWrapper = exports.StyledIcon = void 0;
7
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
8
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
9
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
10
+ const StyledIconWrapper = _styledComponents.default.span`
11
+ align-items: center;
12
+ cursor: ${_ref => {
13
+ let {
14
+ isDisabled,
15
+ onClick
16
+ } = _ref;
17
+ return typeof onClick === 'function' && !isDisabled ? 'pointer' : 'inherit';
18
+ }};
19
+ display: inline-flex;
20
+ height: ${_ref2 => {
21
+ let {
22
+ size
23
+ } = _ref2;
24
+ return `${size}px`;
25
+ }};
26
+ justify-content: center;
27
+ opacity: ${_ref3 => {
28
+ let {
29
+ isDisabled
30
+ } = _ref3;
31
+ return isDisabled ? 0.5 : 1;
32
+ }};
33
+ position: relative;
34
+ transition: opacity 0.3s ease;
35
+ width: ${_ref4 => {
36
+ let {
37
+ size
38
+ } = _ref4;
39
+ return `${size}px`;
40
+ }};
41
+ `;
42
+ exports.StyledIconWrapper = StyledIconWrapper;
43
+ const StyledIcon = _styledComponents.default.i`
44
+ color: ${_ref5 => {
45
+ let {
46
+ color,
47
+ theme
48
+ } = _ref5;
49
+ return color || theme.headline;
50
+ }};
51
+ display: ${_ref6 => {
52
+ let {
53
+ isStacked
54
+ } = _ref6;
55
+ return isStacked ? undefined : 'inline-flex';
56
+ }};
57
+ font-size: ${_ref7 => {
58
+ let {
59
+ fontSize
60
+ } = _ref7;
61
+ return `${fontSize}px`;
62
+ }};
63
+
64
+ ${_ref8 => {
65
+ let {
66
+ fontSize,
67
+ size
68
+ } = _ref8;
69
+ return fontSize !== size && (0, _styledComponents.css)`
70
+ top: 50%;
71
+ transform: translateY(-50%);
72
+ `;
73
+ }}
74
+ `;
75
+ exports.StyledIcon = StyledIcon;
76
+ //# sourceMappingURL=Icon.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Icon.styles.js","names":["StyledIconWrapper","styled","span","isDisabled","onClick","size","StyledIcon","i","color","theme","headline","isStacked","undefined","fontSize","css"],"sources":["../../../src/components/icon/Icon.styles.ts"],"sourcesContent":["import type { MouseEventHandler } from 'react';\nimport styled, { css } from 'styled-components';\nimport type { IconProps } from './Icon';\nimport type { WithTheme } from '../color-scheme-provider/ColorSchemeProvider';\n\ntype StyledIconWrapperProps = {\n isDisabled?: boolean;\n onClick?: MouseEventHandler<HTMLSpanElement>;\n size: number;\n};\n\nexport const StyledIconWrapper = styled.span<StyledIconWrapperProps>`\n align-items: center;\n cursor: ${({ isDisabled, onClick }) =>\n typeof onClick === 'function' && !isDisabled ? 'pointer' : 'inherit'};\n display: inline-flex;\n height: ${({ size }) => `${size}px`};\n justify-content: center;\n opacity: ${({ isDisabled }) => (isDisabled ? 0.5 : 1)};\n position: relative;\n transition: opacity 0.3s ease;\n width: ${({ size }) => `${size}px`};\n`;\n\ntype StyledIconProps = Omit<IconProps, 'icons'> &\n WithTheme<{\n fontSize: number;\n isStacked?: boolean;\n }>;\n\nexport const StyledIcon = styled.i<StyledIconProps>`\n color: ${({ color, theme }: StyledIconProps) => color || theme.headline};\n display: ${({ isStacked }) => (isStacked ? undefined : 'inline-flex')};\n font-size: ${({ fontSize }) => `${fontSize}px`};\n\n ${({ fontSize, size }) =>\n fontSize !== size &&\n css`\n top: 50%;\n transform: translateY(-50%);\n `}\n`;\n"],"mappings":";;;;;;AACA;AAAgD;AAAA;AAUzC,MAAMA,iBAAiB,GAAGC,yBAAM,CAACC,IAA6B;AACrE;AACA,cAAc;EAAA,IAAC;IAAEC,UAAU;IAAEC;EAAQ,CAAC;EAAA,OAC9B,OAAOA,OAAO,KAAK,UAAU,IAAI,CAACD,UAAU,GAAG,SAAS,GAAG,SAAS;AAAA,CAAC;AAC7E;AACA,cAAc;EAAA,IAAC;IAAEE;EAAK,CAAC;EAAA,OAAM,GAAEA,IAAK,IAAG;AAAA,CAAC;AACxC;AACA,eAAe;EAAA,IAAC;IAAEF;EAAW,CAAC;EAAA,OAAMA,UAAU,GAAG,GAAG,GAAG,CAAC;AAAA,CAAE;AAC1D;AACA;AACA,aAAa;EAAA,IAAC;IAAEE;EAAK,CAAC;EAAA,OAAM,GAAEA,IAAK,IAAG;AAAA,CAAC;AACvC,CAAC;AAAC;AAQK,MAAMC,UAAU,GAAGL,yBAAM,CAACM,CAAmB;AACpD,aAAa;EAAA,IAAC;IAAEC,KAAK;IAAEC;EAAuB,CAAC;EAAA,OAAKD,KAAK,IAAIC,KAAK,CAACC,QAAQ;AAAA,CAAC;AAC5E,eAAe;EAAA,IAAC;IAAEC;EAAU,CAAC;EAAA,OAAMA,SAAS,GAAGC,SAAS,GAAG,aAAa;AAAA,CAAE;AAC1E,iBAAiB;EAAA,IAAC;IAAEC;EAAS,CAAC;EAAA,OAAM,GAAEA,QAAS,IAAG;AAAA,CAAC;AACnD;AACA,MAAM;EAAA,IAAC;IAAEA,QAAQ;IAAER;EAAK,CAAC;EAAA,OACjBQ,QAAQ,KAAKR,IAAI,IACjB,IAAAS,qBAAG,CAAC;AACZ;AACA;AACA,SAAS;AAAA,CAAC;AACV,CAAC;AAAC"}
@@ -0,0 +1 @@
1
+ export declare const getStackSizeFactor: (icon: string) => number | undefined;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getStackSizeFactor = void 0;
7
+ const getStackSizeFactor = icon => {
8
+ var _icon$match;
9
+ const sizeFactorString = (_icon$match = icon.match(/fa-stack-([\d])x/)) === null || _icon$match === void 0 ? void 0 : _icon$match[1];
10
+ return typeof sizeFactorString === 'string' ? parseInt(sizeFactorString, 10) : undefined;
11
+ };
12
+ exports.getStackSizeFactor = getStackSizeFactor;
13
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","names":["getStackSizeFactor","icon","sizeFactorString","match","parseInt","undefined"],"sources":["../../../src/components/icon/utils.ts"],"sourcesContent":["export const getStackSizeFactor = (icon: string) => {\n const sizeFactorString = icon.match(/fa-stack-([\\d])x/)?.[1];\n\n return typeof sizeFactorString === 'string' ? parseInt(sizeFactorString, 10) : undefined;\n};\n"],"mappings":";;;;;;AAAO,MAAMA,kBAAkB,GAAIC,IAAY,IAAK;EAAA;EAChD,MAAMC,gBAAgB,kBAAGD,IAAI,CAACE,KAAK,CAAC,kBAAkB,CAAC,gDAA9B,YAAiC,CAAC,CAAC;EAE5D,OAAO,OAAOD,gBAAgB,KAAK,QAAQ,GAAGE,QAAQ,CAACF,gBAAgB,EAAE,EAAE,CAAC,GAAGG,SAAS;AAC5F,CAAC;AAAC"}
@@ -0,0 +1,33 @@
1
+ import { ChangeEventHandler, FC, FocusEventHandler, HTMLInputTypeAttribute, KeyboardEventHandler } from 'react';
2
+ export declare type InputProps = {
3
+ /**
4
+ * Function that is executed when the input field loses focus
5
+ */
6
+ onBlur?: FocusEventHandler<HTMLInputElement>;
7
+ /**
8
+ * Function that is executed when the text of the input changes
9
+ */
10
+ onChange?: ChangeEventHandler<HTMLInputElement>;
11
+ /**
12
+ * Function that is executed when the input field is focused
13
+ */
14
+ onFocus?: FocusEventHandler<HTMLInputElement>;
15
+ /**
16
+ * Function that is executed when a letter is pressed
17
+ */
18
+ onKeyDown?: KeyboardEventHandler<HTMLInputElement>;
19
+ /**
20
+ * Placeholder for the input field
21
+ */
22
+ placeholder?: string;
23
+ /**
24
+ * Input type set for input element (e.g. 'text', 'number' or 'password')
25
+ */
26
+ type?: HTMLInputTypeAttribute;
27
+ /**
28
+ * Value if the input field should be controlled
29
+ */
30
+ value?: string;
31
+ };
32
+ declare const Input: FC<InputProps>;
33
+ export default Input;
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _Input = require("./Input.styles");
9
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
10
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
11
+ const Input = _ref => {
12
+ let {
13
+ onBlur,
14
+ onChange,
15
+ onFocus,
16
+ onKeyDown,
17
+ placeholder,
18
+ type = 'text',
19
+ value
20
+ } = _ref;
21
+ const [hasValue, setHasValue] = (0, _react.useState)(typeof value === 'string' && value !== '');
22
+ const handleInputFieldChange = (0, _react.useCallback)(event => {
23
+ setHasValue(event.target.value !== '');
24
+ if (typeof onChange === 'function') {
25
+ onChange(event);
26
+ }
27
+ }, [onChange]);
28
+ (0, _react.useEffect)(() => {
29
+ if (typeof value === 'string') {
30
+ setHasValue(value !== '');
31
+ }
32
+ }, [value]);
33
+ const labelPosition = (0, _react.useMemo)(() => {
34
+ if (hasValue) {
35
+ return {
36
+ bottom: -8,
37
+ right: -6
38
+ };
39
+ }
40
+ return {
41
+ left: 0,
42
+ top: 0
43
+ };
44
+ }, [hasValue]);
45
+ return /*#__PURE__*/_react.default.createElement(_Input.StyledInput, {
46
+ className: "beta-chayns-input"
47
+ }, /*#__PURE__*/_react.default.createElement(_Input.StyledInputContent, null, /*#__PURE__*/_react.default.createElement(_Input.StyledInputField, {
48
+ onBlur: onBlur,
49
+ onChange: handleInputFieldChange,
50
+ onFocus: onFocus,
51
+ onKeyDown: onKeyDown,
52
+ value: value,
53
+ type: type
54
+ }), /*#__PURE__*/_react.default.createElement(_Input.StyledMotionInputLabel, {
55
+ animate: {
56
+ scale: hasValue ? 0.6 : 1
57
+ },
58
+ layout: true,
59
+ style: {
60
+ ...labelPosition,
61
+ originX: 1,
62
+ originY: 1
63
+ },
64
+ transition: {
65
+ type: 'tween'
66
+ }
67
+ }, placeholder)));
68
+ };
69
+ Input.displayName = 'Input';
70
+ var _default = Input;
71
+ exports.default = _default;
72
+ //# sourceMappingURL=Input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Input.js","names":["Input","onBlur","onChange","onFocus","onKeyDown","placeholder","type","value","hasValue","setHasValue","useState","handleInputFieldChange","useCallback","event","target","useEffect","labelPosition","useMemo","bottom","right","left","top","scale","originX","originY","displayName"],"sources":["../../../src/components/input/Input.tsx"],"sourcesContent":["import React, {\n ChangeEvent,\n ChangeEventHandler,\n FC,\n FocusEventHandler,\n HTMLInputTypeAttribute,\n KeyboardEventHandler,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from 'react';\nimport {\n StyledInput,\n StyledInputContent,\n StyledInputField,\n StyledMotionInputLabel,\n} from './Input.styles';\n\nexport type InputProps = {\n /**\n * Function that is executed when the input field loses focus\n */\n onBlur?: FocusEventHandler<HTMLInputElement>;\n /**\n * Function that is executed when the text of the input changes\n */\n onChange?: ChangeEventHandler<HTMLInputElement>;\n /**\n * Function that is executed when the input field is focused\n */\n onFocus?: FocusEventHandler<HTMLInputElement>;\n /**\n * Function that is executed when a letter is pressed\n */\n onKeyDown?: KeyboardEventHandler<HTMLInputElement>;\n /**\n * Placeholder for the input field\n */\n placeholder?: string;\n /**\n * Input type set for input element (e.g. 'text', 'number' or 'password')\n */\n type?: HTMLInputTypeAttribute;\n /**\n * Value if the input field should be controlled\n */\n value?: string;\n};\n\nconst Input: FC<InputProps> = ({\n onBlur,\n onChange,\n onFocus,\n onKeyDown,\n placeholder,\n type = 'text',\n value,\n}) => {\n const [hasValue, setHasValue] = useState(typeof value === 'string' && value !== '');\n\n const handleInputFieldChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n setHasValue(event.target.value !== '');\n\n if (typeof onChange === 'function') {\n onChange(event);\n }\n },\n [onChange]\n );\n\n useEffect(() => {\n if (typeof value === 'string') {\n setHasValue(value !== '');\n }\n }, [value]);\n\n const labelPosition = useMemo(() => {\n if (hasValue) {\n return { bottom: -8, right: -6 };\n }\n\n return { left: 0, top: 0 };\n }, [hasValue]);\n\n return (\n <StyledInput className=\"beta-chayns-input\">\n <StyledInputContent>\n <StyledInputField\n onBlur={onBlur}\n onChange={handleInputFieldChange}\n onFocus={onFocus}\n onKeyDown={onKeyDown}\n value={value}\n type={type}\n />\n <StyledMotionInputLabel\n animate={{ scale: hasValue ? 0.6 : 1 }}\n layout\n style={{ ...labelPosition, originX: 1, originY: 1 }}\n transition={{ type: 'tween' }}\n >\n {placeholder}\n </StyledMotionInputLabel>\n </StyledInputContent>\n </StyledInput>\n );\n};\n\nInput.displayName = 'Input';\n\nexport default Input;\n"],"mappings":";;;;;;AAAA;AAYA;AAKwB;AAAA;AAiCxB,MAAMA,KAAqB,GAAG,QAQxB;EAAA,IARyB;IAC3BC,MAAM;IACNC,QAAQ;IACRC,OAAO;IACPC,SAAS;IACTC,WAAW;IACXC,IAAI,GAAG,MAAM;IACbC;EACJ,CAAC;EACG,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAG,IAAAC,eAAQ,EAAC,OAAOH,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,EAAE,CAAC;EAEnF,MAAMI,sBAAsB,GAAG,IAAAC,kBAAW,EACrCC,KAAoC,IAAK;IACtCJ,WAAW,CAACI,KAAK,CAACC,MAAM,CAACP,KAAK,KAAK,EAAE,CAAC;IAEtC,IAAI,OAAOL,QAAQ,KAAK,UAAU,EAAE;MAChCA,QAAQ,CAACW,KAAK,CAAC;IACnB;EACJ,CAAC,EACD,CAACX,QAAQ,CAAC,CACb;EAED,IAAAa,gBAAS,EAAC,MAAM;IACZ,IAAI,OAAOR,KAAK,KAAK,QAAQ,EAAE;MAC3BE,WAAW,CAACF,KAAK,KAAK,EAAE,CAAC;IAC7B;EACJ,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;EAEX,MAAMS,aAAa,GAAG,IAAAC,cAAO,EAAC,MAAM;IAChC,IAAIT,QAAQ,EAAE;MACV,OAAO;QAAEU,MAAM,EAAE,CAAC,CAAC;QAAEC,KAAK,EAAE,CAAC;MAAE,CAAC;IACpC;IAEA,OAAO;MAAEC,IAAI,EAAE,CAAC;MAAEC,GAAG,EAAE;IAAE,CAAC;EAC9B,CAAC,EAAE,CAACb,QAAQ,CAAC,CAAC;EAEd,oBACI,6BAAC,kBAAW;IAAC,SAAS,EAAC;EAAmB,gBACtC,6BAAC,yBAAkB,qBACf,6BAAC,uBAAgB;IACb,MAAM,EAAEP,MAAO;IACf,QAAQ,EAAEU,sBAAuB;IACjC,OAAO,EAAER,OAAQ;IACjB,SAAS,EAAEC,SAAU;IACrB,KAAK,EAAEG,KAAM;IACb,IAAI,EAAED;EAAK,EACb,eACF,6BAAC,6BAAsB;IACnB,OAAO,EAAE;MAAEgB,KAAK,EAAEd,QAAQ,GAAG,GAAG,GAAG;IAAE,CAAE;IACvC,MAAM;IACN,KAAK,EAAE;MAAE,GAAGQ,aAAa;MAAEO,OAAO,EAAE,CAAC;MAAEC,OAAO,EAAE;IAAE,CAAE;IACpD,UAAU,EAAE;MAAElB,IAAI,EAAE;IAAQ;EAAE,GAE7BD,WAAW,CACS,CACR,CACX;AAEtB,CAAC;AAEDL,KAAK,CAACyB,WAAW,GAAG,OAAO;AAAC,eAEbzB,KAAK;AAAA"}
@@ -0,0 +1,6 @@
1
+ export declare const StyledInput: import("styled-components").StyledComponent<"div", any, {
2
+ theme: import("../color-scheme-provider/ColorSchemeProvider").Theme;
3
+ }, never>;
4
+ export declare const StyledInputContent: import("styled-components").StyledComponent<"div", any, {}, never>;
5
+ export declare const StyledInputField: import("styled-components").StyledComponent<"input", any, {}, never>;
6
+ export declare const StyledMotionInputLabel: import("styled-components").StyledComponent<import("framer-motion").ForwardRefComponent<HTMLLabelElement, import("framer-motion").HTMLMotionProps<"label">>, any, {}, never>;
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.StyledMotionInputLabel = exports.StyledInputField = exports.StyledInputContent = exports.StyledInput = void 0;
7
+ var _framerMotion = require("framer-motion");
8
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ const StyledInput = _styledComponents.default.div`
11
+ align-items: center;
12
+ background-color: ${_ref => {
13
+ let {
14
+ theme
15
+ } = _ref;
16
+ return theme['100'];
17
+ }};
18
+ border: 1px solid rgba(160, 160, 160, 0.3);
19
+ border-radius: 3px;
20
+ color: ${_ref2 => {
21
+ let {
22
+ theme
23
+ } = _ref2;
24
+ return theme['006'];
25
+ }};
26
+ display: flex;
27
+ justify-content: space-between;
28
+ min-height: 42px;
29
+ padding: 8px 10px;
30
+ `;
31
+ exports.StyledInput = StyledInput;
32
+ const StyledInputContent = _styledComponents.default.div`
33
+ display: flex;
34
+ flex: 1 1 auto;
35
+ flex-direction: column;
36
+ position: relative;
37
+ `;
38
+ exports.StyledInputContent = StyledInputContent;
39
+ const StyledInputField = _styledComponents.default.input`
40
+ background: none;
41
+ border: none;
42
+ color: ${_ref3 => {
43
+ let {
44
+ theme
45
+ } = _ref3;
46
+ return theme.text;
47
+ }};
48
+ padding: 0;
49
+ `;
50
+ exports.StyledInputField = StyledInputField;
51
+ const StyledMotionInputLabel = (0, _styledComponents.default)(_framerMotion.motion.label)`
52
+ line-height: 1.15;
53
+ pointer-events: none;
54
+ position: absolute;
55
+ user-select: none;
56
+ `;
57
+ exports.StyledMotionInputLabel = StyledMotionInputLabel;
58
+ //# sourceMappingURL=Input.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Input.styles.js","names":["StyledInput","styled","div","theme","StyledInputContent","StyledInputField","input","text","StyledMotionInputLabel","motion","label"],"sources":["../../../src/components/input/Input.styles.ts"],"sourcesContent":["import { motion } from 'framer-motion';\nimport styled from 'styled-components';\nimport type { WithTheme } from '../color-scheme-provider/ColorSchemeProvider';\n\ntype StyledInputProps = WithTheme<unknown>;\n\nexport const StyledInput = styled.div<StyledInputProps>`\n align-items: center;\n background-color: ${({ theme }: StyledInputProps) => theme['100']};\n border: 1px solid rgba(160, 160, 160, 0.3);\n border-radius: 3px;\n color: ${({ theme }: StyledInputProps) => theme['006']};\n display: flex;\n justify-content: space-between;\n min-height: 42px;\n padding: 8px 10px;\n`;\n\nexport const StyledInputContent = styled.div`\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n position: relative;\n`;\n\nexport const StyledInputField = styled.input`\n background: none;\n border: none;\n color: ${({ theme }: StyledInputProps) => theme.text};\n padding: 0;\n`;\n\nexport const StyledMotionInputLabel = styled(motion.label)`\n line-height: 1.15;\n pointer-events: none;\n position: absolute;\n user-select: none;\n`;\n"],"mappings":";;;;;;AAAA;AACA;AAAuC;AAKhC,MAAMA,WAAW,GAAGC,yBAAM,CAACC,GAAsB;AACxD;AACA,wBAAwB;EAAA,IAAC;IAAEC;EAAwB,CAAC;EAAA,OAAKA,KAAK,CAAC,KAAK,CAAC;AAAA,CAAC;AACtE;AACA;AACA,aAAa;EAAA,IAAC;IAAEA;EAAwB,CAAC;EAAA,OAAKA,KAAK,CAAC,KAAK,CAAC;AAAA,CAAC;AAC3D;AACA;AACA;AACA;AACA,CAAC;AAAC;AAEK,MAAMC,kBAAkB,GAAGH,yBAAM,CAACC,GAAI;AAC7C;AACA;AACA;AACA;AACA,CAAC;AAAC;AAEK,MAAMG,gBAAgB,GAAGJ,yBAAM,CAACK,KAAM;AAC7C;AACA;AACA,aAAa;EAAA,IAAC;IAAEH;EAAwB,CAAC;EAAA,OAAKA,KAAK,CAACI,IAAI;AAAA,CAAC;AACzD;AACA,CAAC;AAAC;AAEK,MAAMC,sBAAsB,GAAG,IAAAP,yBAAM,EAACQ,oBAAM,CAACC,KAAK,CAAE;AAC3D;AACA;AACA;AACA;AACA,CAAC;AAAC"}
@@ -0,0 +1,18 @@
1
+ import React, { FC, ReactNode } from 'react';
2
+ interface IListContext {
3
+ incrementExpandableItemCount: () => () => void;
4
+ isAnyItemExpandable: boolean;
5
+ openItemUuid: string | undefined;
6
+ updateOpenItemUuid: (uuid: string, options?: {
7
+ shouldOnlyOpen?: boolean;
8
+ }) => void;
9
+ }
10
+ export declare const ListContext: React.Context<IListContext>;
11
+ declare type ListProps = {
12
+ /**
13
+ * The items of the list
14
+ */
15
+ children: ReactNode;
16
+ };
17
+ declare const List: FC<ListProps>;
18
+ export default List;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.ListContext = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
9
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
10
+ const ListContext = /*#__PURE__*/_react.default.createContext({
11
+ incrementExpandableItemCount: () => () => {},
12
+ isAnyItemExpandable: false,
13
+ openItemUuid: undefined,
14
+ updateOpenItemUuid: () => {}
15
+ });
16
+ exports.ListContext = ListContext;
17
+ ListContext.displayName = 'ListContext';
18
+ const List = _ref => {
19
+ let {
20
+ children
21
+ } = _ref;
22
+ const [openItemUuid, setOpenItemUuid] = (0, _react.useState)(undefined);
23
+ const [expandableItemCount, setExpandableItemCount] = (0, _react.useState)(0);
24
+ const updateOpenItemUuid = (0, _react.useCallback)(function (uuid) {
25
+ let {
26
+ shouldOnlyOpen
27
+ } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
28
+ setOpenItemUuid(currentOpenItemUuid => {
29
+ if (currentOpenItemUuid === uuid && shouldOnlyOpen !== true) {
30
+ return undefined;
31
+ }
32
+ return uuid;
33
+ });
34
+ }, [setOpenItemUuid]);
35
+ const incrementExpandableItemCount = (0, _react.useCallback)(() => {
36
+ setExpandableItemCount(count => count + 1);
37
+ return () => {
38
+ setExpandableItemCount(count => count - 1);
39
+ };
40
+ }, [setExpandableItemCount]);
41
+ const providerValue = (0, _react.useMemo)(() => ({
42
+ isAnyItemExpandable: expandableItemCount > 0,
43
+ updateOpenItemUuid,
44
+ openItemUuid,
45
+ incrementExpandableItemCount
46
+ }), [expandableItemCount, incrementExpandableItemCount, openItemUuid, updateOpenItemUuid]);
47
+ return /*#__PURE__*/_react.default.createElement(ListContext.Provider, {
48
+ value: providerValue
49
+ }, children);
50
+ };
51
+ List.displayName = 'List';
52
+ var _default = List;
53
+ exports.default = _default;
54
+ //# sourceMappingURL=List.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"List.js","names":["ListContext","React","createContext","incrementExpandableItemCount","isAnyItemExpandable","openItemUuid","undefined","updateOpenItemUuid","displayName","List","children","setOpenItemUuid","useState","expandableItemCount","setExpandableItemCount","useCallback","uuid","shouldOnlyOpen","currentOpenItemUuid","count","providerValue","useMemo"],"sources":["../../../src/components/list/List.tsx"],"sourcesContent":["import React, { FC, ReactNode, useCallback, useMemo, useState } from 'react';\n\ninterface IListContext {\n incrementExpandableItemCount: () => () => void;\n isAnyItemExpandable: boolean;\n openItemUuid: string | undefined;\n updateOpenItemUuid: (uuid: string, options?: { shouldOnlyOpen?: boolean }) => void;\n}\n\nexport const ListContext = React.createContext<IListContext>({\n incrementExpandableItemCount: () => () => {},\n isAnyItemExpandable: false,\n openItemUuid: undefined,\n updateOpenItemUuid: () => {},\n});\n\nListContext.displayName = 'ListContext';\n\ntype ListProps = {\n /**\n * The items of the list\n */\n children: ReactNode;\n};\n\nconst List: FC<ListProps> = ({ children }) => {\n const [openItemUuid, setOpenItemUuid] = useState<IListContext['openItemUuid']>(undefined);\n const [expandableItemCount, setExpandableItemCount] = useState<number>(0);\n\n const updateOpenItemUuid = useCallback<IListContext['updateOpenItemUuid']>(\n (uuid, { shouldOnlyOpen } = {}) => {\n setOpenItemUuid((currentOpenItemUuid) => {\n if (currentOpenItemUuid === uuid && shouldOnlyOpen !== true) {\n return undefined;\n }\n\n return uuid;\n });\n },\n [setOpenItemUuid]\n );\n\n const incrementExpandableItemCount = useCallback(() => {\n setExpandableItemCount((count) => count + 1);\n\n return () => {\n setExpandableItemCount((count) => count - 1);\n };\n }, [setExpandableItemCount]);\n\n const providerValue = useMemo<IListContext>(\n () => ({\n isAnyItemExpandable: expandableItemCount > 0,\n updateOpenItemUuid,\n openItemUuid,\n incrementExpandableItemCount,\n }),\n [expandableItemCount, incrementExpandableItemCount, openItemUuid, updateOpenItemUuid]\n );\n\n return <ListContext.Provider value={providerValue}>{children}</ListContext.Provider>;\n};\n\nList.displayName = 'List';\n\nexport default List;\n"],"mappings":";;;;;;AAAA;AAA6E;AAAA;AAStE,MAAMA,WAAW,gBAAGC,cAAK,CAACC,aAAa,CAAe;EACzDC,4BAA4B,EAAE,MAAM,MAAM,CAAC,CAAC;EAC5CC,mBAAmB,EAAE,KAAK;EAC1BC,YAAY,EAAEC,SAAS;EACvBC,kBAAkB,EAAE,MAAM,CAAC;AAC/B,CAAC,CAAC;AAAC;AAEHP,WAAW,CAACQ,WAAW,GAAG,aAAa;AASvC,MAAMC,IAAmB,GAAG,QAAkB;EAAA,IAAjB;IAAEC;EAAS,CAAC;EACrC,MAAM,CAACL,YAAY,EAAEM,eAAe,CAAC,GAAG,IAAAC,eAAQ,EAA+BN,SAAS,CAAC;EACzF,MAAM,CAACO,mBAAmB,EAAEC,sBAAsB,CAAC,GAAG,IAAAF,eAAQ,EAAS,CAAC,CAAC;EAEzE,MAAML,kBAAkB,GAAG,IAAAQ,kBAAW,EAClC,UAACC,IAAI,EAA8B;IAAA,IAA5B;MAAEC;IAAe,CAAC,uEAAG,CAAC,CAAC;IAC1BN,eAAe,CAAEO,mBAAmB,IAAK;MACrC,IAAIA,mBAAmB,KAAKF,IAAI,IAAIC,cAAc,KAAK,IAAI,EAAE;QACzD,OAAOX,SAAS;MACpB;MAEA,OAAOU,IAAI;IACf,CAAC,CAAC;EACN,CAAC,EACD,CAACL,eAAe,CAAC,CACpB;EAED,MAAMR,4BAA4B,GAAG,IAAAY,kBAAW,EAAC,MAAM;IACnDD,sBAAsB,CAAEK,KAAK,IAAKA,KAAK,GAAG,CAAC,CAAC;IAE5C,OAAO,MAAM;MACTL,sBAAsB,CAAEK,KAAK,IAAKA,KAAK,GAAG,CAAC,CAAC;IAChD,CAAC;EACL,CAAC,EAAE,CAACL,sBAAsB,CAAC,CAAC;EAE5B,MAAMM,aAAa,GAAG,IAAAC,cAAO,EACzB,OAAO;IACHjB,mBAAmB,EAAES,mBAAmB,GAAG,CAAC;IAC5CN,kBAAkB;IAClBF,YAAY;IACZF;EACJ,CAAC,CAAC,EACF,CAACU,mBAAmB,EAAEV,4BAA4B,EAAEE,YAAY,EAAEE,kBAAkB,CAAC,CACxF;EAED,oBAAO,6BAAC,WAAW,CAAC,QAAQ;IAAC,KAAK,EAAEa;EAAc,GAAEV,QAAQ,CAAwB;AACxF,CAAC;AAEDD,IAAI,CAACD,WAAW,GAAG,MAAM;AAAC,eAEXC,IAAI;AAAA"}