@onewelcome/react-lib-components 6.1.0 → 6.3.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 (201) hide show
  1. package/dist/cjs/Form/Fieldset/Fieldset.cjs.js +1 -1
  2. package/dist/cjs/Form/Fieldset/Fieldset.cjs.js.map +1 -1
  3. package/dist/cjs/Form/Select/MultiSelect/MultiOption.cjs.js +2 -0
  4. package/dist/cjs/Form/Select/MultiSelect/MultiOption.cjs.js.map +1 -0
  5. package/dist/cjs/Form/Select/MultiSelect/MultiSelect.cjs.js +2 -0
  6. package/dist/cjs/Form/Select/MultiSelect/MultiSelect.cjs.js.map +1 -0
  7. package/dist/cjs/Form/Select/MultiSelect/MultiSelect.module.cjs.js +2 -0
  8. package/dist/cjs/Form/Select/MultiSelect/MultiSelect.module.cjs.js.map +1 -0
  9. package/dist/cjs/Form/Select/MultiSelect/SelectButton.cjs.js +2 -0
  10. package/dist/cjs/Form/Select/MultiSelect/SelectButton.cjs.js.map +1 -0
  11. package/dist/cjs/Form/Select/MultiSelect/SelectButton.module.cjs.js +2 -0
  12. package/dist/cjs/Form/Select/MultiSelect/SelectButton.module.cjs.js.map +1 -0
  13. package/dist/cjs/Form/Select/MultiSelect/SelectedOptions.cjs.js +2 -0
  14. package/dist/cjs/Form/Select/MultiSelect/SelectedOptions.cjs.js.map +1 -0
  15. package/dist/cjs/Form/Select/MultiSelect/SelectedOptions.module.cjs.js +2 -0
  16. package/dist/cjs/Form/Select/MultiSelect/SelectedOptions.module.cjs.js.map +1 -0
  17. package/dist/cjs/Form/Select/SelectService.cjs.js +1 -1
  18. package/dist/cjs/Form/Select/SelectService.cjs.js.map +1 -1
  19. package/dist/cjs/Form/Select/SingleSelect/Option.cjs.js.map +1 -0
  20. package/dist/cjs/Form/Select/SingleSelect/Select.cjs.js +2 -0
  21. package/dist/cjs/Form/Select/SingleSelect/Select.cjs.js.map +1 -0
  22. package/dist/cjs/Form/Select/SingleSelect/Select.module.cjs.js +2 -0
  23. package/dist/cjs/Form/Select/useAddNewBtn.cjs.js +2 -0
  24. package/dist/cjs/Form/Select/useAddNewBtn.cjs.js.map +1 -0
  25. package/dist/cjs/Form/Select/useAddNewBtn.module.cjs.js +2 -0
  26. package/dist/cjs/Form/Select/useAddNewBtn.module.cjs.js.map +1 -0
  27. package/dist/cjs/Form/Select/useSearch.cjs.js +2 -0
  28. package/dist/cjs/Form/Select/useSearch.cjs.js.map +1 -0
  29. package/dist/cjs/Form/Wrapper/InputWrapper/InputWrapper.module.cjs.js +1 -1
  30. package/dist/cjs/Form/Wrapper/SelectWrapper/SelectWrapper.cjs.js +1 -1
  31. package/dist/cjs/Form/Wrapper/SelectWrapper/SelectWrapper.cjs.js.map +1 -1
  32. package/dist/cjs/Form/Wrapper/SelectWrapper/SelectWrapper.module.cjs.js +1 -1
  33. package/dist/cjs/Form/Wrapper/Wrapper/Wrapper.module.cjs.js +1 -1
  34. package/dist/cjs/Icon/Icon.cjs.js +1 -1
  35. package/dist/cjs/Icon/Icon.cjs.js.map +1 -1
  36. package/dist/cjs/Icon/Icon.module.cjs.js +1 -1
  37. package/dist/cjs/Notifications/Dialog/Dialog.cjs.js +1 -1
  38. package/dist/cjs/Notifications/Dialog/Dialog.cjs.js.map +1 -1
  39. package/dist/cjs/Notifications/Dialog/DialogTitle/DialogTitle.cjs.js +1 -1
  40. package/dist/cjs/Notifications/Dialog/DialogTitle/DialogTitle.cjs.js.map +1 -1
  41. package/dist/cjs/Notifications/Dialog/DialogTitle/DialogTitle.module.cjs.js +1 -1
  42. package/dist/cjs/Pagination/Pagination.cjs.js +1 -1
  43. package/dist/cjs/Pagination/Pagination.cjs.js.map +1 -1
  44. package/dist/cjs/Tag/RemoveButton.cjs.js +2 -0
  45. package/dist/cjs/Tag/RemoveButton.cjs.js.map +1 -0
  46. package/dist/cjs/Tag/RemoveButton.module.cjs.js +2 -0
  47. package/dist/cjs/Tag/RemoveButton.module.cjs.js.map +1 -0
  48. package/dist/cjs/Tag/Tag.cjs.js +1 -1
  49. package/dist/cjs/Tag/Tag.cjs.js.map +1 -1
  50. package/dist/cjs/Tag/Tag.module.cjs.js +1 -1
  51. package/dist/cjs/src/components/Form/Select/MultiSelect/MultiOption.d.ts +6 -0
  52. package/dist/cjs/src/components/Form/Select/MultiSelect/MultiSelect.d.ts +3 -0
  53. package/dist/cjs/src/components/Form/Select/MultiSelect/SelectButton.d.ts +4 -0
  54. package/dist/cjs/src/components/Form/Select/MultiSelect/SelectedOptions.d.ts +11 -0
  55. package/dist/cjs/src/components/Form/Select/Select.interfaces.d.ts +44 -0
  56. package/dist/cjs/src/components/Form/Select/SelectService.d.ts +6 -2
  57. package/dist/cjs/src/components/Form/Select/SingleSelect/Select.d.ts +3 -0
  58. package/dist/cjs/src/components/Form/Select/{Select.test.d.ts → SingleSelect/Select.test.d.ts} +4 -4
  59. package/dist/cjs/src/components/Form/Select/useAddNewBtn.d.ts +12 -0
  60. package/dist/cjs/src/components/Form/Select/useSearch.d.ts +29 -0
  61. package/dist/cjs/src/components/Form/Wrapper/MultiSelectWrapper/MultiSelectWrapper.d.ts +16 -0
  62. package/dist/cjs/src/components/Form/Wrapper/SelectWrapper/SelectWrapper.d.ts +2 -2
  63. package/dist/cjs/src/components/Icon/Icon.d.ts +1 -0
  64. package/dist/cjs/src/components/Notifications/Dialog/DialogTitle/DialogTitle.d.ts +1 -0
  65. package/dist/cjs/src/components/Tag/RemoveButton.d.ts +7 -0
  66. package/dist/cjs/src/components/Tag/Tag.d.ts +3 -0
  67. package/dist/cjs/src/index.cjs.js +1 -1
  68. package/dist/cjs/src/index.d.ts +7 -4
  69. package/dist/esm/Form/Fieldset/Fieldset.esm.js +1 -1
  70. package/dist/esm/Form/Fieldset/Fieldset.esm.js.map +1 -1
  71. package/dist/esm/Form/Select/MultiSelect/MultiOption.esm.js +2 -0
  72. package/dist/esm/Form/Select/MultiSelect/MultiOption.esm.js.map +1 -0
  73. package/dist/esm/Form/Select/MultiSelect/MultiSelect.esm.js +2 -0
  74. package/dist/esm/Form/Select/MultiSelect/MultiSelect.esm.js.map +1 -0
  75. package/dist/esm/Form/Select/MultiSelect/MultiSelect.module.esm.js +2 -0
  76. package/dist/esm/Form/Select/MultiSelect/MultiSelect.module.esm.js.map +1 -0
  77. package/dist/esm/Form/Select/MultiSelect/SelectButton.esm.js +2 -0
  78. package/dist/esm/Form/Select/MultiSelect/SelectButton.esm.js.map +1 -0
  79. package/dist/esm/Form/Select/MultiSelect/SelectButton.module.esm.js +2 -0
  80. package/dist/esm/Form/Select/MultiSelect/SelectButton.module.esm.js.map +1 -0
  81. package/dist/esm/Form/Select/MultiSelect/SelectedOptions.esm.js +2 -0
  82. package/dist/esm/Form/Select/MultiSelect/SelectedOptions.esm.js.map +1 -0
  83. package/dist/esm/Form/Select/MultiSelect/SelectedOptions.module.esm.js +2 -0
  84. package/dist/esm/Form/Select/MultiSelect/SelectedOptions.module.esm.js.map +1 -0
  85. package/dist/esm/Form/Select/SelectService.esm.js +1 -1
  86. package/dist/esm/Form/Select/SelectService.esm.js.map +1 -1
  87. package/dist/esm/Form/Select/SingleSelect/Option.esm.js.map +1 -0
  88. package/dist/esm/Form/Select/SingleSelect/Select.esm.js +2 -0
  89. package/dist/esm/Form/Select/SingleSelect/Select.esm.js.map +1 -0
  90. package/dist/esm/Form/Select/SingleSelect/Select.module.esm.js +2 -0
  91. package/dist/esm/Form/Select/useAddNewBtn.esm.js +2 -0
  92. package/dist/esm/Form/Select/useAddNewBtn.esm.js.map +1 -0
  93. package/dist/esm/Form/Select/useAddNewBtn.module.esm.js +2 -0
  94. package/dist/esm/Form/Select/useAddNewBtn.module.esm.js.map +1 -0
  95. package/dist/esm/Form/Select/useSearch.esm.js +2 -0
  96. package/dist/esm/Form/Select/useSearch.esm.js.map +1 -0
  97. package/dist/esm/Form/Wrapper/InputWrapper/InputWrapper.module.esm.js +1 -1
  98. package/dist/esm/Form/Wrapper/SelectWrapper/SelectWrapper.esm.js +1 -1
  99. package/dist/esm/Form/Wrapper/SelectWrapper/SelectWrapper.esm.js.map +1 -1
  100. package/dist/esm/Form/Wrapper/SelectWrapper/SelectWrapper.module.esm.js +1 -1
  101. package/dist/esm/Form/Wrapper/Wrapper/Wrapper.module.esm.js +1 -1
  102. package/dist/esm/Icon/Icon.esm.js +1 -1
  103. package/dist/esm/Icon/Icon.esm.js.map +1 -1
  104. package/dist/esm/Icon/Icon.module.esm.js +1 -1
  105. package/dist/esm/Notifications/Dialog/Dialog.esm.js +1 -1
  106. package/dist/esm/Notifications/Dialog/Dialog.esm.js.map +1 -1
  107. package/dist/esm/Notifications/Dialog/DialogTitle/DialogTitle.esm.js +1 -1
  108. package/dist/esm/Notifications/Dialog/DialogTitle/DialogTitle.esm.js.map +1 -1
  109. package/dist/esm/Notifications/Dialog/DialogTitle/DialogTitle.module.esm.js +1 -1
  110. package/dist/esm/Pagination/Pagination.esm.js +1 -1
  111. package/dist/esm/Pagination/Pagination.esm.js.map +1 -1
  112. package/dist/esm/Tag/RemoveButton.esm.js +2 -0
  113. package/dist/esm/Tag/RemoveButton.esm.js.map +1 -0
  114. package/dist/esm/Tag/RemoveButton.module.esm.js +2 -0
  115. package/dist/esm/Tag/RemoveButton.module.esm.js.map +1 -0
  116. package/dist/esm/Tag/Tag.esm.js +1 -1
  117. package/dist/esm/Tag/Tag.esm.js.map +1 -1
  118. package/dist/esm/Tag/Tag.module.esm.js +1 -1
  119. package/dist/esm/src/components/Form/Select/MultiSelect/MultiOption.d.ts +6 -0
  120. package/dist/esm/src/components/Form/Select/MultiSelect/MultiSelect.d.ts +3 -0
  121. package/dist/esm/src/components/Form/Select/MultiSelect/MultiSelect.test.d.ts +1 -0
  122. package/dist/esm/src/components/Form/Select/MultiSelect/SelectButton.d.ts +4 -0
  123. package/dist/esm/src/components/Form/Select/MultiSelect/SelectedOptions.d.ts +11 -0
  124. package/dist/esm/src/components/Form/Select/Select.interfaces.d.ts +44 -0
  125. package/dist/esm/src/components/Form/Select/SelectService.d.ts +6 -2
  126. package/dist/esm/src/components/Form/Select/SingleSelect/Option.test.d.ts +1 -0
  127. package/dist/esm/src/components/Form/Select/SingleSelect/Select.d.ts +3 -0
  128. package/dist/esm/src/components/Form/Select/{Select.test.d.ts → SingleSelect/Select.test.d.ts} +4 -4
  129. package/dist/esm/src/components/Form/Select/SingleSelect/SelectKeyboardNavigation.test.d.ts +1 -0
  130. package/dist/esm/src/components/Form/Select/useAddNewBtn.d.ts +12 -0
  131. package/dist/esm/src/components/Form/Select/useSearch.d.ts +29 -0
  132. package/dist/esm/src/components/Form/Wrapper/MultiSelectWrapper/MultiSelectWrapper.d.ts +16 -0
  133. package/dist/esm/src/components/Form/Wrapper/MultiSelectWrapper/MultiSelectWrapper.test.d.ts +1 -0
  134. package/dist/esm/src/components/Form/Wrapper/SelectWrapper/SelectWrapper.d.ts +2 -2
  135. package/dist/esm/src/components/Icon/Icon.d.ts +1 -0
  136. package/dist/esm/src/components/Notifications/Dialog/DialogTitle/DialogTitle.d.ts +1 -0
  137. package/dist/esm/src/components/Tag/RemoveButton.d.ts +7 -0
  138. package/dist/esm/src/components/Tag/Tag.d.ts +3 -0
  139. package/dist/esm/src/index.d.ts +7 -4
  140. package/dist/esm/src/index.esm.js +1 -1
  141. package/package.json +33 -33
  142. package/src/components/Form/Fieldset/Fieldset.tsx +3 -1
  143. package/src/components/Form/Select/MultiSelect/MultiOption.tsx +31 -0
  144. package/src/components/Form/Select/MultiSelect/MultiSelect.module.scss +244 -0
  145. package/src/components/Form/Select/MultiSelect/MultiSelect.tsx +363 -0
  146. package/src/{.scope.ts → components/Form/Select/MultiSelect/SelectButton.module.scss} +12 -2
  147. package/src/components/Form/Select/MultiSelect/SelectButton.tsx +37 -0
  148. package/src/components/Form/Select/MultiSelect/SelectedOptions.module.scss +31 -0
  149. package/src/components/Form/Select/MultiSelect/SelectedOptions.tsx +67 -0
  150. package/src/components/Form/Select/Select.interfaces.ts +48 -0
  151. package/src/components/Form/Select/SelectService.ts +23 -6
  152. package/src/components/Form/Select/{Select.module.scss → SingleSelect/Select.module.scss} +2 -36
  153. package/src/components/Form/Select/{Select.tsx → SingleSelect/Select.tsx} +45 -127
  154. package/src/components/Form/Select/useAddNewBtn.module.scss +51 -0
  155. package/src/components/Form/Select/useAddNewBtn.tsx +54 -0
  156. package/src/components/Form/Select/useSearch.tsx +124 -0
  157. package/src/components/Form/Wrapper/InputWrapper/InputWrapper.module.scss +0 -10
  158. package/src/components/Form/Wrapper/MultiSelectWrapper/MultiSelectWrapper.module.scss +27 -0
  159. package/src/components/Form/Wrapper/MultiSelectWrapper/MultiSelectWrapper.tsx +84 -0
  160. package/src/components/Form/Wrapper/SelectWrapper/SelectWrapper.module.scss +0 -4
  161. package/src/components/Form/Wrapper/SelectWrapper/SelectWrapper.tsx +3 -2
  162. package/src/components/Form/Wrapper/Wrapper/Wrapper.module.scss +0 -6
  163. package/src/components/Icon/Icon.module.scss +5 -0
  164. package/src/components/Icon/Icon.tsx +1 -0
  165. package/src/components/Notifications/Dialog/Dialog.tsx +7 -4
  166. package/src/components/Notifications/Dialog/DialogTitle/DialogTitle.module.scss +18 -1
  167. package/src/components/Notifications/Dialog/DialogTitle/DialogTitle.tsx +33 -20
  168. package/src/components/Pagination/Pagination.tsx +2 -2
  169. package/src/components/Tag/RemoveButton.module.scss +41 -0
  170. package/src/components/Tag/RemoveButton.tsx +52 -0
  171. package/src/components/Tag/Tag.module.scss +23 -2
  172. package/src/components/Tag/Tag.tsx +21 -11
  173. package/src/font/icomoon.eot +0 -0
  174. package/src/font/icomoon.svg +1 -0
  175. package/src/font/icomoon.ttf +0 -0
  176. package/src/font/icomoon.woff +0 -0
  177. package/src/font/selection.json +1 -1
  178. package/src/index.ts +11 -4
  179. package/dist/cjs/Form/Select/Option.cjs.js.map +0 -1
  180. package/dist/cjs/Form/Select/Select.cjs.js +0 -2
  181. package/dist/cjs/Form/Select/Select.cjs.js.map +0 -1
  182. package/dist/cjs/Form/Select/Select.module.cjs.js +0 -2
  183. package/dist/cjs/src/components/Form/Select/Select.d.ts +0 -43
  184. package/dist/esm/Form/Select/Option.esm.js.map +0 -1
  185. package/dist/esm/Form/Select/Select.esm.js +0 -2
  186. package/dist/esm/Form/Select/Select.esm.js.map +0 -1
  187. package/dist/esm/Form/Select/Select.module.esm.js +0 -2
  188. package/dist/esm/src/components/Form/Select/Select.d.ts +0 -43
  189. /package/dist/cjs/{src/.scope.d.ts → .scope.d.ts} +0 -0
  190. /package/dist/cjs/Form/Select/{Option.cjs.js → SingleSelect/Option.cjs.js} +0 -0
  191. /package/dist/cjs/Form/Select/{Select.module.cjs.js.map → SingleSelect/Select.module.cjs.js.map} +0 -0
  192. /package/dist/cjs/src/components/Form/Select/{Option.test.d.ts → MultiSelect/MultiSelect.test.d.ts} +0 -0
  193. /package/dist/cjs/src/components/Form/Select/{Option.d.ts → SingleSelect/Option.d.ts} +0 -0
  194. /package/dist/{esm/src/components/Form/Select → cjs/src/components/Form/Select/SingleSelect}/Option.test.d.ts +0 -0
  195. /package/dist/cjs/src/components/Form/Select/{SelectKeyboardNavigation.test.d.ts → SingleSelect/SelectKeyboardNavigation.test.d.ts} +0 -0
  196. /package/dist/{esm/src/components/Form/Select/SelectKeyboardNavigation.test.d.ts → cjs/src/components/Form/Wrapper/MultiSelectWrapper/MultiSelectWrapper.test.d.ts} +0 -0
  197. /package/dist/esm/{src/.scope.d.ts → .scope.d.ts} +0 -0
  198. /package/dist/esm/Form/Select/{Option.esm.js → SingleSelect/Option.esm.js} +0 -0
  199. /package/dist/esm/Form/Select/{Select.module.esm.js.map → SingleSelect/Select.module.esm.js.map} +0 -0
  200. /package/dist/esm/src/components/Form/Select/{Option.d.ts → SingleSelect/Option.d.ts} +0 -0
  201. /package/src/components/Form/Select/{Option.tsx → SingleSelect/Option.tsx} +0 -0
@@ -56,7 +56,6 @@ const DialogComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (
56
56
  secondaryAction,
57
57
  cancelAction,
58
58
  zIndex,
59
- disableEscapeKeyDown = true,
60
59
  titleIcon,
61
60
  caption,
62
61
  ...rest
@@ -97,12 +96,16 @@ const DialogComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (
97
96
  className={classes["dialog"]}
98
97
  containerProps={{ className: classes["container"] }}
99
98
  open={open}
100
- disableBackdrop
101
99
  onClose={onClose}
102
100
  zIndex={zIndex}
103
- disableEscapeKeyDown={disableEscapeKeyDown}
104
101
  >
105
- <DialogTitle titleIcon={titleIcon} caption={caption} id={labelId(dialogId)} title={title} />
102
+ <DialogTitle
103
+ titleIcon={titleIcon}
104
+ caption={caption}
105
+ id={labelId(dialogId)}
106
+ title={title}
107
+ onClose={onClose}
108
+ />
106
109
  <BaseModalContent
107
110
  id={descriptionId(dialogId)}
108
111
  className={classes["content"]}
@@ -17,7 +17,20 @@
17
17
  .header {
18
18
  margin: 1rem 1.5rem;
19
19
  display: flex;
20
- align-items: flex-start;
20
+ align-items: center;
21
+ justify-content: space-between;
22
+ }
23
+
24
+ .headline {
25
+ display: flex;
26
+
27
+ &.with-caption {
28
+ align-items: flex-start;
29
+ }
30
+
31
+ &.no-caption {
32
+ align-items: center;
33
+ }
21
34
  }
22
35
 
23
36
  .title {
@@ -32,3 +45,7 @@
32
45
  .caption {
33
46
  color: var(--color-blue-grey500);
34
47
  }
48
+
49
+ .close-button {
50
+ flex-shrink: 0;
51
+ }
@@ -18,41 +18,54 @@ import React, { ForwardRefRenderFunction, ComponentPropsWithRef } from "react";
18
18
  import { Typography } from "../../../Typography/Typography";
19
19
  import classes from "./DialogTitle.module.scss";
20
20
  import { Icon, Icons } from "../../../Icon/Icon";
21
+ import { IconButton } from "../../../Button/IconButton";
21
22
 
22
23
  export interface Props extends ComponentPropsWithRef<"div"> {
23
24
  id: string;
24
25
  title: string;
25
26
  titleIcon?: React.ReactNode;
26
27
  caption?: string;
28
+ onClose?: (event: React.MouseEvent<HTMLButtonElement>) => void;
27
29
  }
28
30
 
29
31
  const DialogTitleComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (
30
- { id, title, titleIcon, caption, ...rest }: Props,
32
+ { id, title, titleIcon, caption, onClose, ...rest }: Props,
31
33
  ref
32
34
  ) => {
33
35
  return (
34
36
  <div {...rest} ref={ref} className={classes["header"]}>
35
- {titleIcon && (
36
- <div className={classes["title-icon"]}>
37
- {typeof titleIcon === "boolean" ? <Icon icon={Icons.InfoCircle} /> : titleIcon}
38
- </div>
39
- )}
40
- <div className={classes["title-wrapper"]}>
41
- <Typography
42
- id={id}
43
- className={classes["title"]}
44
- spacing={titleIcon && { marginLeft: 2 }}
45
- tag="h1"
46
- variant="h4"
47
- >
48
- {title}
49
- </Typography>
50
- {caption && (
51
- <Typography className={classes["caption"]} spacing={{ marginLeft: 2 }} variant="sub-text">
52
- {caption}
53
- </Typography>
37
+ <div
38
+ className={`${classes["headline"]} ${caption ? classes["with-caption"] : classes["no-caption"]}`}
39
+ >
40
+ {titleIcon && (
41
+ <div className={classes["title-icon"]}>
42
+ {typeof titleIcon === "boolean" ? <Icon icon={Icons.InfoCircle} /> : titleIcon}
43
+ </div>
54
44
  )}
45
+ <div className={classes["title-wrapper"]}>
46
+ <Typography
47
+ id={id}
48
+ className={classes["title"]}
49
+ spacing={titleIcon && { marginLeft: 2 }}
50
+ tag="h1"
51
+ variant="h4"
52
+ >
53
+ {title}
54
+ </Typography>
55
+ {caption && (
56
+ <Typography
57
+ className={classes["caption"]}
58
+ spacing={{ marginLeft: 2 }}
59
+ variant="sub-text"
60
+ >
61
+ {caption}
62
+ </Typography>
63
+ )}
64
+ </div>
55
65
  </div>
66
+ <IconButton onClick={onClose} className={classes["close-button"]} title="close modal">
67
+ <Icon icon={Icons.Times} />
68
+ </IconButton>
56
69
  </div>
57
70
  );
58
71
  };
@@ -25,8 +25,8 @@ import classes from "./Pagination.module.scss";
25
25
  import readyclasses from "../../readyclasses.module.scss";
26
26
  import { IconButton } from "../Button/IconButton";
27
27
  import { Icons, Icon } from "../Icon/Icon";
28
- import { Select } from "../Form/Select/Select";
29
- import { Option } from "../Form/Select/Option";
28
+ import { Select } from "../Form/Select/SingleSelect/Select";
29
+ import { Option } from "../Form/Select/SingleSelect/Option";
30
30
  import { Label } from "../Form/Label/Label";
31
31
 
32
32
  export type PaginationTranslations = {
@@ -0,0 +1,41 @@
1
+ /*!
2
+ * Copyright 2022 OneWelcome B.V.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ @use "../../mixins.module.scss";
18
+
19
+ .remove {
20
+ width: 1.25rem;
21
+ height: 1.25rem;
22
+ background: none;
23
+ border: none;
24
+ padding: 0;
25
+ margin-right: -0.375rem;
26
+
27
+ &:hover {
28
+ border-radius: 0.125rem;
29
+ background-color: var(--color-black10);
30
+ }
31
+
32
+ &:active {
33
+ background-color: var(--color-blue-grey400);
34
+ }
35
+
36
+ @include mixins.focusVisibleOutline($outlineOffset: 0);
37
+
38
+ .icon {
39
+ font-size: 0.625rem;
40
+ }
41
+ }
@@ -0,0 +1,52 @@
1
+ /*
2
+ * Copyright 2022 OneWelcome B.V.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import React, { ForwardRefRenderFunction, HTMLAttributes, forwardRef } from "react";
18
+ import { Icon, Icons } from "../Icon/Icon";
19
+
20
+ import readyclasses from "../../readyclasses.module.scss";
21
+ import classes from "./RemoveButton.module.scss";
22
+
23
+ export interface Props extends HTMLAttributes<HTMLButtonElement> {
24
+ removeLabel?: string;
25
+ label?: string;
26
+ onRemove?: (e: React.MouseEvent<HTMLButtonElement>) => void;
27
+ }
28
+
29
+ const RemoveButtonComponent: ForwardRefRenderFunction<HTMLButtonElement, Props> = (
30
+ { removeLabel = "Remove", label, onRemove, ...rest }: Props,
31
+ ref
32
+ ) => {
33
+ return (
34
+ onRemove && (
35
+ <button
36
+ {...rest}
37
+ ref={ref}
38
+ className={`${classes["remove"]} ${rest.className ?? ""}`}
39
+ title=""
40
+ onClick={onRemove}
41
+ >
42
+ <Icon icon={Icons.Times} className={classes["icon"]} />
43
+ <span className={readyclasses["sr-only"]}>
44
+ {removeLabel}
45
+ {label ? " " + label : ""}
46
+ </span>
47
+ </button>
48
+ )
49
+ );
50
+ };
51
+
52
+ export const RemoveButton = forwardRef(RemoveButtonComponent);
@@ -1,8 +1,25 @@
1
+ /*!
2
+ * Copyright 2022 OneWelcome B.V.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
1
17
  $tagFontSize: 0.75rem;
2
18
 
3
19
  .tag {
4
20
  font-size: $tagFontSize;
5
- padding: 0.375rem 0.7rem;
21
+ padding: 0.25rem 0.75rem;
22
+ border: none;
6
23
  border-radius: 3.125rem;
7
24
  display: inline-flex;
8
25
  align-items: center;
@@ -16,8 +33,12 @@ $tagFontSize: 0.75rem;
16
33
  background-color: var(--color-blue-grey100);
17
34
  }
18
35
 
36
+ &.sharp {
37
+ border-radius: 0.125rem;
38
+ }
39
+
19
40
  .label {
20
- line-height: $tagFontSize;
41
+ line-height: 2;
21
42
  font-size: inherit;
22
43
  color: inherit;
23
44
  }
@@ -18,6 +18,7 @@ import React, { ForwardRefRenderFunction, HTMLAttributes, forwardRef } from "rea
18
18
  import { Icon, Icons } from "../Icon/Icon";
19
19
  import classes from "./Tag.module.scss";
20
20
  import { Typography } from "../Typography/Typography";
21
+ import { RemoveButton, Props as RemoveButtonProps } from "./RemoveButton";
21
22
 
22
23
  export interface Props extends HTMLAttributes<HTMLDivElement> {
23
24
  variant?: "enabled" | "disabled";
@@ -25,10 +26,21 @@ export interface Props extends HTMLAttributes<HTMLDivElement> {
25
26
  backgroundColor?: string;
26
27
  color?: string;
27
28
  children?: string;
29
+ shape?: "rounded" | "sharp";
30
+ removeButton?: RemoveButtonProps;
28
31
  }
29
32
 
30
33
  const TagComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (
31
- { children, variant, icon, backgroundColor, color, ...rest }: Props,
34
+ {
35
+ children,
36
+ variant,
37
+ icon,
38
+ backgroundColor,
39
+ color,
40
+ shape = "rounded",
41
+ removeButton = {},
42
+ ...rest
43
+ }: Props,
32
44
  ref
33
45
  ) => {
34
46
  const determineIcon = () => {
@@ -43,25 +55,23 @@ const TagComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (
43
55
  }
44
56
  };
45
57
 
46
- const determineClassName = () => {
47
- if (variant === "enabled") {
48
- return classes["tag-enabled"];
49
- } else if (variant === "disabled") {
50
- return classes["tag-disabled"];
51
- }
52
- };
58
+ const tagClasses = [classes["tag"]];
59
+ variant === "enabled" && tagClasses.push(classes["tag-enabled"]);
60
+ variant === "disabled" && tagClasses.push(classes["tag-disabled"]);
61
+ shape === "sharp" && tagClasses.push(classes["sharp"]);
53
62
 
54
63
  return (
55
64
  <div
56
- ref={ref}
57
- className={`${determineClassName()} ${classes["tag"]} ${rest.className ?? ""}`}
58
- style={{ backgroundColor, color }}
59
65
  {...rest}
66
+ ref={ref as any}
67
+ className={`${tagClasses.join(" ")} ${rest.className ?? ""}`}
68
+ style={{ backgroundColor, color }}
60
69
  >
61
70
  {determineIcon()}
62
71
  <Typography spacing={{ marginBottom: 0 }} variant="body" className={classes["label"]}>
63
72
  {children}
64
73
  </Typography>
74
+ <RemoveButton {...removeButton} label={children} />
65
75
  </div>
66
76
  );
67
77
  };
Binary file
@@ -79,5 +79,6 @@
79
79
  <glyph unicode="&#xe945;" glyph-name="upload" d="M933.648 598.588h-240.942v361.412h-361.412v-361.412h-240.942l421.648-421.648 421.648 421.648zM451.764 478.116v361.412h120.47v-361.412h70.475l-130.711-130.711-130.711 130.711h70.475zM90.352 56.47h843.294v-120.47h-843.294v120.47z" />
80
80
  <glyph unicode="&#xe946;" glyph-name="reply" d="M98.011 739.109l366.202-157.014-366.689 48.762 0.488 108.251zM463.726 313.905l-366.202-157.014v108.251l366.202 48.762zM0.488 886.857l-0.488-341.334 731.429-97.523-731.429-97.523 0.488-341.334 1023.512 438.857-1023.512 438.857z" />
81
81
  <glyph unicode="&#xe947;" glyph-name="save" d="M796.445 959.998h-682.667c-63.147 0-113.777-51.2-113.777-113.777v-796.444c0-62.577 50.631-113.777 113.777-113.777h796.444c62.577 0 113.777 51.2 113.777 113.777v682.667l-227.556 227.556zM910.224 49.775h-796.444v796.444h635.449l160.996-160.996v-635.449zM512.001 447.998c-94.436 0-170.667-76.231-170.667-170.667s76.231-170.667 170.667-170.667c94.436 0 170.667 76.231 170.667 170.667s-76.231 170.667-170.667 170.667zM170.668 789.331h512v-227.556h-512v227.556z" />
82
+ <glyph unicode="&#xe948;" glyph-name="warning-filled" d="M0 5.818h1024l-511.999 884.364-511.999-884.364zM558.545 145.454h-93.091v93.091h93.091v-93.091zM558.545 331.636h-93.091v186.182h93.091v-186.182z" />
82
83
  <glyph unicode="&#xe9d1;" glyph-name="eye-blocked" d="M945.942 945.942c-18.746 18.744-49.136 18.744-67.882 0l-202.164-202.164c-51.938 15.754-106.948 24.222-163.896 24.222-223.318 0-416.882-130.042-512-320 41.122-82.124 100.648-153.040 173.022-207.096l-158.962-158.962c-18.746-18.746-18.746-49.136 0-67.882 9.372-9.374 21.656-14.060 33.94-14.060s24.568 4.686 33.942 14.058l864 864c18.744 18.746 18.744 49.138 0 67.884zM416 640c42.24 0 78.082-27.294 90.92-65.196l-121.724-121.724c-37.902 12.838-65.196 48.68-65.196 90.92 0 53.020 42.98 96 96 96zM110.116 448c38.292 60.524 89.274 111.924 149.434 150.296 3.918 2.5 7.876 4.922 11.862 7.3-9.962-27.328-15.412-56.822-15.412-87.596 0-54.89 17.286-105.738 46.7-147.418l-60.924-60.924c-52.446 36.842-97.202 83.882-131.66 138.342zM768 518c0 27.166-4.256 53.334-12.102 77.898l-321.808-321.808c24.568-7.842 50.742-12.090 77.91-12.090 141.382 0 256 114.618 256 256zM830.026 670.026l-69.362-69.362c1.264-0.786 2.53-1.568 3.786-2.368 60.162-38.374 111.142-89.774 149.434-150.296-38.292-60.522-89.274-111.922-149.436-150.296-75.594-48.218-162.89-73.704-252.448-73.704-38.664 0-76.902 4.76-113.962 14.040l-76.894-76.894c59.718-21.462 123.95-33.146 190.856-33.146 223.31 0 416.876 130.042 512 320-45.022 89.916-112.118 166.396-193.974 222.026z" />
83
84
  </font></defs></svg>
Binary file
Binary file