@elliemae/ds-pills 2.3.0-alpha.9 → 2.3.0-next.11

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 (217) hide show
  1. package/cjs/components/Pill.js +53 -0
  2. package/cjs/components/PillButton.js +56 -0
  3. package/cjs/components/PillGroup.js +87 -0
  4. package/cjs/components/index.js +17 -0
  5. package/cjs/components/styled.js +85 -0
  6. package/cjs/components/types/DropdownPill.js +86 -0
  7. package/cjs/components/types/InputPill.js +74 -0
  8. package/cjs/components/types/LabelPill.js +46 -0
  9. package/cjs/components/types/ReadOnlyPill.js +50 -0
  10. package/cjs/components/types/RemovablePill.js +85 -0
  11. package/cjs/components/types/ValuePill.js +54 -0
  12. package/cjs/components/types/index.js +19 -0
  13. package/cjs/deprecated/DropdownPill.js +113 -0
  14. package/cjs/deprecated/InputPill.js +84 -0
  15. package/cjs/deprecated/LabeledDropdownPills.js +106 -0
  16. package/cjs/deprecated/LabeledDropdownPillsTypes/LabeledDropdownCascadeMenuPill.js +134 -0
  17. package/cjs/deprecated/LabeledDropdownPillsTypes/LabeledDropdownMultiPill.js +153 -0
  18. package/cjs/deprecated/LabeledDropdownPillsTypes/LabeledDropdownSinglePill.js +162 -0
  19. package/cjs/deprecated/LabeledDropdownPillsTypes/utils.js +20 -0
  20. package/cjs/deprecated/LabeledPills.js +62 -0
  21. package/cjs/deprecated/OverflowPill.js +73 -0
  22. package/cjs/deprecated/Pill.js +88 -0
  23. package/cjs/deprecated/PillGroup.js +72 -0
  24. package/cjs/deprecated/ReadOnlyPill.js +101 -0
  25. package/cjs/deprecated/RemovablePill.js +74 -0
  26. package/cjs/deprecated/index.js +33 -0
  27. package/cjs/index.d.js +2 -0
  28. package/cjs/index.js +43 -0
  29. package/cjs/props.js +70 -0
  30. package/cjs/utils.js +28 -0
  31. package/esm/components/Pill.js +44 -0
  32. package/esm/components/PillButton.js +46 -0
  33. package/esm/components/PillGroup.js +75 -0
  34. package/esm/components/index.js +3 -0
  35. package/esm/components/styled.js +67 -0
  36. package/esm/components/types/DropdownPill.js +76 -0
  37. package/esm/components/types/InputPill.js +65 -0
  38. package/esm/components/types/LabelPill.js +37 -0
  39. package/esm/components/types/ReadOnlyPill.js +41 -0
  40. package/esm/components/types/RemovablePill.js +76 -0
  41. package/esm/components/types/ValuePill.js +45 -0
  42. package/esm/components/types/index.js +6 -0
  43. package/esm/deprecated/DropdownPill.js +100 -0
  44. package/esm/deprecated/InputPill.js +74 -0
  45. package/esm/deprecated/LabeledDropdownPills.js +95 -0
  46. package/esm/deprecated/LabeledDropdownPillsTypes/LabeledDropdownCascadeMenuPill.js +126 -0
  47. package/esm/deprecated/LabeledDropdownPillsTypes/LabeledDropdownMultiPill.js +145 -0
  48. package/esm/deprecated/LabeledDropdownPillsTypes/LabeledDropdownSinglePill.js +154 -0
  49. package/esm/deprecated/LabeledDropdownPillsTypes/utils.js +16 -0
  50. package/esm/deprecated/LabeledPills.js +53 -0
  51. package/esm/deprecated/OverflowPill.js +62 -0
  52. package/esm/deprecated/Pill.js +76 -0
  53. package/esm/deprecated/PillGroup.js +60 -0
  54. package/esm/deprecated/ReadOnlyPill.js +90 -0
  55. package/esm/deprecated/RemovablePill.js +64 -0
  56. package/esm/deprecated/index.js +8 -0
  57. package/esm/index.d.js +1 -0
  58. package/esm/index.js +11 -0
  59. package/esm/props.js +61 -0
  60. package/esm/utils.js +24 -0
  61. package/package.json +86 -88
  62. package/{dist/types → types}/components/Pill.d.ts +0 -0
  63. package/{dist/types → types}/components/PillButton.d.ts +0 -0
  64. package/{dist/types → types}/components/PillGroup.d.ts +2 -6
  65. package/{dist/types → types}/components/index.d.ts +0 -0
  66. package/types/components/styled.d.ts +20 -0
  67. package/{dist/types → types}/components/types/DropdownPill.d.ts +0 -0
  68. package/{dist/types → types}/components/types/InputPill.d.ts +0 -0
  69. package/{dist/types → types}/components/types/LabelPill.d.ts +0 -0
  70. package/{dist/types → types}/components/types/ReadOnlyPill.d.ts +0 -0
  71. package/{dist/types → types}/components/types/RemovablePill.d.ts +0 -0
  72. package/{dist/types → types}/components/types/ValuePill.d.ts +0 -0
  73. package/{dist/types → types}/components/types/index.d.ts +0 -0
  74. package/{dist/types → types}/deprecated/DropdownPill.d.ts +0 -0
  75. package/{dist/types → types}/deprecated/InputPill.d.ts +0 -0
  76. package/{dist/types → types}/deprecated/LabeledDropdownPills.d.ts +1 -1
  77. package/{dist/types → types}/deprecated/LabeledDropdownPillsTypes/LabeledDropdownCascadeMenuPill.d.ts +1 -3
  78. package/{dist/types → types}/deprecated/LabeledDropdownPillsTypes/LabeledDropdownMultiPill.d.ts +1 -3
  79. package/{dist/types → types}/deprecated/LabeledDropdownPillsTypes/LabeledDropdownSinglePill.d.ts +0 -1
  80. package/{dist/types → types}/deprecated/LabeledDropdownPillsTypes/utils.d.ts +0 -0
  81. package/{dist/types → types}/deprecated/LabeledPills.d.ts +0 -0
  82. package/{dist/types → types}/deprecated/OverflowPill.d.ts +0 -0
  83. package/{dist/types → types}/deprecated/Pill.d.ts +0 -0
  84. package/{dist/types → types}/deprecated/PillGroup.d.ts +0 -0
  85. package/{dist/types → types}/deprecated/ReadOnlyPill.d.ts +0 -0
  86. package/{dist/types → types}/deprecated/RemovablePill.d.ts +0 -0
  87. package/{dist/types → types}/deprecated/index.d.ts +0 -0
  88. package/{dist/types → types}/index.d.ts +0 -0
  89. package/{dist/types → types}/props.d.ts +1 -0
  90. package/{dist/types → types}/tests/DSPill.test.d.ts +0 -0
  91. package/{dist/types → types}/tests/DSPillGroup.test.d.ts +0 -0
  92. package/{dist/types → types}/tests/events/DSPill.events.keyboard.test.d.ts +0 -0
  93. package/{dist/types → types}/tests/events/DSPill.events.test.d.ts +0 -0
  94. package/{dist/types → types}/tests/events/DSPillGroup.events.keyboard.test.d.ts +0 -0
  95. package/{dist/types → types}/tests/events/DSPillGroup.events.test.d.ts +0 -0
  96. package/{dist/types → types}/utils.d.ts +0 -0
  97. package/dist/cjs/components/Pill.js +0 -60
  98. package/dist/cjs/components/Pill.js.map +0 -7
  99. package/dist/cjs/components/PillButton.js +0 -58
  100. package/dist/cjs/components/PillButton.js.map +0 -7
  101. package/dist/cjs/components/PillGroup.js +0 -72
  102. package/dist/cjs/components/PillGroup.js.map +0 -7
  103. package/dist/cjs/components/index.js +0 -30
  104. package/dist/cjs/components/index.js.map +0 -7
  105. package/dist/cjs/components/styled.js +0 -235
  106. package/dist/cjs/components/styled.js.map +0 -7
  107. package/dist/cjs/components/types/DropdownPill.js +0 -88
  108. package/dist/cjs/components/types/DropdownPill.js.map +0 -7
  109. package/dist/cjs/components/types/InputPill.js +0 -84
  110. package/dist/cjs/components/types/InputPill.js.map +0 -7
  111. package/dist/cjs/components/types/LabelPill.js +0 -52
  112. package/dist/cjs/components/types/LabelPill.js.map +0 -7
  113. package/dist/cjs/components/types/ReadOnlyPill.js +0 -55
  114. package/dist/cjs/components/types/ReadOnlyPill.js.map +0 -7
  115. package/dist/cjs/components/types/RemovablePill.js +0 -79
  116. package/dist/cjs/components/types/RemovablePill.js.map +0 -7
  117. package/dist/cjs/components/types/ValuePill.js +0 -59
  118. package/dist/cjs/components/types/ValuePill.js.map +0 -7
  119. package/dist/cjs/components/types/index.js +0 -33
  120. package/dist/cjs/components/types/index.js.map +0 -7
  121. package/dist/cjs/deprecated/DropdownPill.js +0 -92
  122. package/dist/cjs/deprecated/DropdownPill.js.map +0 -7
  123. package/dist/cjs/deprecated/InputPill.js +0 -82
  124. package/dist/cjs/deprecated/InputPill.js.map +0 -7
  125. package/dist/cjs/deprecated/LabeledDropdownPills.js +0 -102
  126. package/dist/cjs/deprecated/LabeledDropdownPills.js.map +0 -7
  127. package/dist/cjs/deprecated/LabeledDropdownPillsTypes/LabeledDropdownCascadeMenuPill.js +0 -131
  128. package/dist/cjs/deprecated/LabeledDropdownPillsTypes/LabeledDropdownCascadeMenuPill.js.map +0 -7
  129. package/dist/cjs/deprecated/LabeledDropdownPillsTypes/LabeledDropdownMultiPill.js +0 -145
  130. package/dist/cjs/deprecated/LabeledDropdownPillsTypes/LabeledDropdownMultiPill.js.map +0 -7
  131. package/dist/cjs/deprecated/LabeledDropdownPillsTypes/LabeledDropdownSinglePill.js +0 -154
  132. package/dist/cjs/deprecated/LabeledDropdownPillsTypes/LabeledDropdownSinglePill.js.map +0 -7
  133. package/dist/cjs/deprecated/LabeledDropdownPillsTypes/utils.js +0 -44
  134. package/dist/cjs/deprecated/LabeledDropdownPillsTypes/utils.js.map +0 -7
  135. package/dist/cjs/deprecated/LabeledPills.js +0 -75
  136. package/dist/cjs/deprecated/LabeledPills.js.map +0 -7
  137. package/dist/cjs/deprecated/OverflowPill.js +0 -79
  138. package/dist/cjs/deprecated/OverflowPill.js.map +0 -7
  139. package/dist/cjs/deprecated/Pill.js +0 -73
  140. package/dist/cjs/deprecated/Pill.js.map +0 -7
  141. package/dist/cjs/deprecated/PillGroup.js +0 -72
  142. package/dist/cjs/deprecated/PillGroup.js.map +0 -7
  143. package/dist/cjs/deprecated/ReadOnlyPill.js +0 -100
  144. package/dist/cjs/deprecated/ReadOnlyPill.js.map +0 -7
  145. package/dist/cjs/deprecated/RemovablePill.js +0 -78
  146. package/dist/cjs/deprecated/RemovablePill.js.map +0 -7
  147. package/dist/cjs/deprecated/index.js +0 -43
  148. package/dist/cjs/deprecated/index.js.map +0 -7
  149. package/dist/cjs/index.d.js +0 -27
  150. package/dist/cjs/index.d.js.map +0 -7
  151. package/dist/cjs/index.js +0 -37
  152. package/dist/cjs/index.js.map +0 -7
  153. package/dist/cjs/props.js +0 -95
  154. package/dist/cjs/props.js.map +0 -7
  155. package/dist/cjs/utils.js +0 -46
  156. package/dist/cjs/utils.js.map +0 -7
  157. package/dist/esm/components/Pill.js +0 -31
  158. package/dist/esm/components/Pill.js.map +0 -7
  159. package/dist/esm/components/PillButton.js +0 -29
  160. package/dist/esm/components/PillButton.js.map +0 -7
  161. package/dist/esm/components/PillGroup.js +0 -43
  162. package/dist/esm/components/PillGroup.js.map +0 -7
  163. package/dist/esm/components/index.js +0 -5
  164. package/dist/esm/components/index.js.map +0 -7
  165. package/dist/esm/components/styled.js +0 -206
  166. package/dist/esm/components/styled.js.map +0 -7
  167. package/dist/esm/components/types/DropdownPill.js +0 -59
  168. package/dist/esm/components/types/DropdownPill.js.map +0 -7
  169. package/dist/esm/components/types/InputPill.js +0 -55
  170. package/dist/esm/components/types/InputPill.js.map +0 -7
  171. package/dist/esm/components/types/LabelPill.js +0 -23
  172. package/dist/esm/components/types/LabelPill.js.map +0 -7
  173. package/dist/esm/components/types/ReadOnlyPill.js +0 -26
  174. package/dist/esm/components/types/ReadOnlyPill.js.map +0 -7
  175. package/dist/esm/components/types/RemovablePill.js +0 -50
  176. package/dist/esm/components/types/RemovablePill.js.map +0 -7
  177. package/dist/esm/components/types/ValuePill.js +0 -30
  178. package/dist/esm/components/types/ValuePill.js.map +0 -7
  179. package/dist/esm/components/types/index.js +0 -8
  180. package/dist/esm/components/types/index.js.map +0 -7
  181. package/dist/esm/deprecated/DropdownPill.js +0 -63
  182. package/dist/esm/deprecated/DropdownPill.js.map +0 -7
  183. package/dist/esm/deprecated/InputPill.js +0 -53
  184. package/dist/esm/deprecated/InputPill.js.map +0 -7
  185. package/dist/esm/deprecated/LabeledDropdownPills.js +0 -73
  186. package/dist/esm/deprecated/LabeledDropdownPills.js.map +0 -7
  187. package/dist/esm/deprecated/LabeledDropdownPillsTypes/LabeledDropdownCascadeMenuPill.js +0 -102
  188. package/dist/esm/deprecated/LabeledDropdownPillsTypes/LabeledDropdownCascadeMenuPill.js.map +0 -7
  189. package/dist/esm/deprecated/LabeledDropdownPillsTypes/LabeledDropdownMultiPill.js +0 -116
  190. package/dist/esm/deprecated/LabeledDropdownPillsTypes/LabeledDropdownMultiPill.js.map +0 -7
  191. package/dist/esm/deprecated/LabeledDropdownPillsTypes/LabeledDropdownSinglePill.js +0 -125
  192. package/dist/esm/deprecated/LabeledDropdownPillsTypes/LabeledDropdownSinglePill.js.map +0 -7
  193. package/dist/esm/deprecated/LabeledDropdownPillsTypes/utils.js +0 -15
  194. package/dist/esm/deprecated/LabeledDropdownPillsTypes/utils.js.map +0 -7
  195. package/dist/esm/deprecated/LabeledPills.js +0 -46
  196. package/dist/esm/deprecated/LabeledPills.js.map +0 -7
  197. package/dist/esm/deprecated/OverflowPill.js +0 -50
  198. package/dist/esm/deprecated/OverflowPill.js.map +0 -7
  199. package/dist/esm/deprecated/Pill.js +0 -44
  200. package/dist/esm/deprecated/Pill.js.map +0 -7
  201. package/dist/esm/deprecated/PillGroup.js +0 -43
  202. package/dist/esm/deprecated/PillGroup.js.map +0 -7
  203. package/dist/esm/deprecated/ReadOnlyPill.js +0 -71
  204. package/dist/esm/deprecated/ReadOnlyPill.js.map +0 -7
  205. package/dist/esm/deprecated/RemovablePill.js +0 -49
  206. package/dist/esm/deprecated/RemovablePill.js.map +0 -7
  207. package/dist/esm/deprecated/index.js +0 -14
  208. package/dist/esm/deprecated/index.js.map +0 -7
  209. package/dist/esm/index.d.js +0 -2
  210. package/dist/esm/index.d.js.map +0 -7
  211. package/dist/esm/index.js +0 -8
  212. package/dist/esm/index.js.map +0 -7
  213. package/dist/esm/props.js +0 -66
  214. package/dist/esm/props.js.map +0 -7
  215. package/dist/esm/utils.js +0 -17
  216. package/dist/esm/utils.js.map +0 -7
  217. package/dist/types/components/styled.d.ts +0 -24
@@ -0,0 +1,76 @@
1
+ import _jsx from '@babel/runtime/helpers/esm/jsx';
2
+ import React, { useContext, useMemo, useCallback } from 'react';
3
+ import { uid } from 'uid';
4
+ import { CloseXsmall } from '@elliemae/ds-icons';
5
+ import { SimpleTruncatedTooltipText } from '@elliemae/ds-truncated-tooltip-text';
6
+ import { StyledRemovablePillWrapper } from '../styled.js';
7
+ import { DSPillGroupV2Context } from '../PillGroup.js';
8
+ import { DSPillButton } from '../PillButton.js';
9
+
10
+ const RemovablePill = /*#__PURE__*/React.memo(_ref => {
11
+ let {
12
+ label,
13
+ size,
14
+ labelTruncated,
15
+ onRemove,
16
+ innerRef,
17
+ ariaLabel,
18
+ tabIndex
19
+ } = _ref;
20
+ const {
21
+ onKeyboardRemove,
22
+ onKeyboardNavigation
23
+ } = useContext(DSPillGroupV2Context);
24
+ const pillUid = useMemo(() => "ds-pill-".concat(uid()), []);
25
+ const TextComponent = labelTruncated ? _ref2 => {
26
+ let {
27
+ children
28
+ } = _ref2;
29
+ return /*#__PURE__*/_jsx(SimpleTruncatedTooltipText, {
30
+ value: children
31
+ });
32
+ } : React.Fragment;
33
+ const onKeyDown = useCallback(e => {
34
+ if (['Enter', 'Space'].includes(e.code)) {
35
+ e.preventDefault();
36
+ if (onKeyboardRemove) onKeyboardRemove(pillUid);
37
+ onRemove(e);
38
+ }
39
+
40
+ if (e.code === 'ArrowLeft') {
41
+ e.preventDefault();
42
+ if (onKeyboardNavigation) onKeyboardNavigation(pillUid, -1, e);
43
+ }
44
+
45
+ if (e.code === 'ArrowRight') {
46
+ e.preventDefault();
47
+ if (onKeyboardNavigation) onKeyboardNavigation(pillUid, 1, e);
48
+ }
49
+ }, [onKeyboardRemove, onRemove, onKeyboardNavigation, pillUid]);
50
+ return /*#__PURE__*/_jsx(StyledRemovablePillWrapper, {
51
+ size: size,
52
+ cols: ['auto', '24px'],
53
+ gutter: "2px",
54
+ alignItems: "center",
55
+ justifyItems: "center",
56
+ className: "ds-pill-wrapper ds-pill-wrapper-removable",
57
+ "data-testid": "ds-pill-wrapper",
58
+ "aria-label": ariaLabel || label
59
+ }, void 0, /*#__PURE__*/_jsx(TextComponent, {}, void 0, label), /*#__PURE__*/_jsx(DSPillButton, {
60
+ className: "ds-pill-focus-point",
61
+ id: pillUid,
62
+ "data-testid": "ds-pill-close-icon",
63
+ innerRef: innerRef,
64
+ onClick: onRemove,
65
+ onKeyDown: onKeyDown,
66
+ "aria-label": "Remove ".concat(label),
67
+ type: "right",
68
+ tabIndex: tabIndex
69
+ }, void 0, /*#__PURE__*/_jsx(CloseXsmall, {
70
+ width: size === 's' ? 18 : 22.65,
71
+ height: size === 's' ? 18 : 22.65,
72
+ color: ['brand-primary', '700']
73
+ })));
74
+ });
75
+
76
+ export { RemovablePill };
@@ -0,0 +1,45 @@
1
+ import _jsx from '@babel/runtime/helpers/esm/jsx';
2
+ import 'core-js/modules/esnext.async-iterator.filter.js';
3
+ import 'core-js/modules/esnext.iterator.constructor.js';
4
+ import 'core-js/modules/esnext.iterator.filter.js';
5
+ import React from 'react';
6
+ import { DSTooltipV2 } from '@elliemae/ds-tooltip';
7
+ import { SimpleTruncatedTooltipText } from '@elliemae/ds-truncated-tooltip-text';
8
+ import { StyledValuePillWrapper, StyledSpanWithTooltip } from '../styled.js';
9
+
10
+ const ValuePill = /*#__PURE__*/React.memo(_ref => {
11
+ let {
12
+ label,
13
+ size,
14
+ labelTruncated,
15
+ tooltipValue,
16
+ iconLeft,
17
+ ariaLabel
18
+ } = _ref;
19
+ const TextComponent = labelTruncated ? _ref2 => {
20
+ let {
21
+ children
22
+ } = _ref2;
23
+ return /*#__PURE__*/_jsx(SimpleTruncatedTooltipText, {
24
+ value: children
25
+ });
26
+ } : React.Fragment;
27
+ return /*#__PURE__*/_jsx(StyledValuePillWrapper, {
28
+ size: size,
29
+ alignItems: "center",
30
+ className: "ds-pill-wrapper ds-pill-wrapper-value",
31
+ "data-testid": "ds-pill-wrapper",
32
+ "aria-label": ariaLabel || label,
33
+ cols: [iconLeft && 'min-content', 'auto'].filter(notFalse => notFalse),
34
+ gutter: "xxxs",
35
+ hasIcon: iconLeft !== null
36
+ }, void 0, iconLeft, tooltipValue !== '' ? /*#__PURE__*/_jsx(DSTooltipV2, {
37
+ title: tooltipValue,
38
+ triggerComponent: /*#__PURE__*/_jsx(StyledSpanWithTooltip, {
39
+ className: "ds-pill-tooltip-value",
40
+ tabIndex: 0
41
+ }, void 0, label)
42
+ }) : /*#__PURE__*/_jsx(TextComponent, {}, void 0, label));
43
+ });
44
+
45
+ export { ValuePill };
@@ -0,0 +1,6 @@
1
+ export { DropdownPill } from './DropdownPill.js';
2
+ export { InputPill } from './InputPill.js';
3
+ export { LabelPill } from './LabelPill.js';
4
+ export { ReadOnlyPill } from './ReadOnlyPill.js';
5
+ export { RemovablePill } from './RemovablePill.js';
6
+ export { ValuePill } from './ValuePill.js';
@@ -0,0 +1,100 @@
1
+ import _jsx from '@babel/runtime/helpers/esm/jsx';
2
+ import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
3
+ import _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';
4
+ import 'core-js/modules/web.dom-collections.iterator.js';
5
+ import 'core-js/modules/esnext.async-iterator.filter.js';
6
+ import 'core-js/modules/esnext.iterator.constructor.js';
7
+ import 'core-js/modules/esnext.iterator.filter.js';
8
+ import 'core-js/modules/esnext.async-iterator.for-each.js';
9
+ import 'core-js/modules/esnext.iterator.for-each.js';
10
+ import { useRef, useState } from 'react';
11
+ import { PropTypes, describe } from 'react-desc';
12
+ import DSDropdownMenu from '@elliemae/ds-dropdownmenu';
13
+ import { ChevronDown } from '@elliemae/ds-icons';
14
+ import useFocusGroupItem from '@elliemae/ds-shared/FocusGroup/useFocusGroupItem';
15
+ import { Pill } from './Pill.js';
16
+ import { jsx } from 'react/jsx-runtime';
17
+
18
+ var _ChevronDown;
19
+
20
+ const _excluded = ["containerProps", "label", "variant", "tabIndex", "closeMenuOnItemSelection", "maxWidth", "minWidth"];
21
+
22
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
23
+
24
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
25
+
26
+ function DropdownPill(_ref) {
27
+ let {
28
+ containerProps = {},
29
+ label = '',
30
+ variant,
31
+ tabIndex = -1,
32
+ closeMenuOnItemSelection = false,
33
+ maxWidth,
34
+ minWidth
35
+ } = _ref,
36
+ dropdownProps = _objectWithoutProperties(_ref, _excluded);
37
+
38
+ const ref = useRef(null);
39
+ const [chevronEl, chevronRef] = useState();
40
+ const {
41
+ focusFirst
42
+ } = useFocusGroupItem(ref);
43
+ return /*#__PURE__*/jsx(DSDropdownMenu, _objectSpread(_objectSpread({}, dropdownProps), {}, {
44
+ closeMenuOnItemSelection: closeMenuOnItemSelection,
45
+ maxWidth: maxWidth,
46
+ hideIfNotVisible: true,
47
+ menuProps: {
48
+ className: 'dropdown-pill-menu',
49
+ zIndex: 100
50
+ },
51
+ minWidth: minWidth,
52
+ onClose: focusFirst,
53
+ referenceNode: chevronEl,
54
+ triggerComponent: /*#__PURE__*/_jsx(Pill, {
55
+ "data-testid": "dropdown-pill",
56
+ className: "dropdown-pill",
57
+ containerProps: _objectSpread({
58
+ role: 'listbox'
59
+ }, containerProps),
60
+ innerRef: ref,
61
+ label: label,
62
+ rightAddon: /*#__PURE__*/jsx("div", {
63
+ ref: chevronRef,
64
+ children: _ChevronDown || (_ChevronDown = /*#__PURE__*/_jsx(ChevronDown, {
65
+ className: "dropdown-pill-chevron-down",
66
+ "data-testid": "dropdown-pill-button"
67
+ }))
68
+ }),
69
+ tabIndex: tabIndex,
70
+ variant: variant
71
+ })
72
+ }));
73
+ }
74
+
75
+ const props = {
76
+ /** props injected to component wrapper */
77
+ containerProps: PropTypes.object.description('props injected to component wrapper'),
78
+
79
+ /** labeled pill text label */
80
+ label: PropTypes.string.isRequired.description('pill text label'),
81
+
82
+ /** pill variant */
83
+ variant: PropTypes.oneOf(['value', 'title']).description('pill variant'),
84
+
85
+ /** html focus border */
86
+ tabIndex: PropTypes.number.description('html focus order'),
87
+
88
+ /** close menu on item selection */
89
+ closeMenuOnItemSelection: PropTypes.bool.description('close menu on item selection'),
90
+
91
+ /** pill max width */
92
+ maxWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).description('pill max width'),
93
+
94
+ /** pill min width */
95
+ minWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).description('pill min width')
96
+ };
97
+ const DSDropdownPillWithSchema = describe(DropdownPill);
98
+ DSDropdownPillWithSchema.propTypes = props;
99
+
100
+ export { DSDropdownPillWithSchema, DropdownPill };
@@ -0,0 +1,74 @@
1
+ import 'core-js/modules/esnext.async-iterator.filter.js';
2
+ import 'core-js/modules/esnext.iterator.constructor.js';
3
+ import 'core-js/modules/esnext.iterator.filter.js';
4
+ import 'core-js/modules/esnext.async-iterator.for-each.js';
5
+ import 'core-js/modules/esnext.iterator.for-each.js';
6
+ import _jsx from '@babel/runtime/helpers/esm/jsx';
7
+ import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
8
+ import _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';
9
+ import 'react';
10
+ import { CloseXsmall } from '@elliemae/ds-icons';
11
+ import { aggregatedClasses } from '@elliemae/ds-classnames';
12
+ import { DSInput, DSInputMask } from '@elliemae/ds-form';
13
+ import { Pill } from './Pill.js';
14
+ import { jsx } from 'react/jsx-runtime';
15
+
16
+ const _excluded = ["containerProps", "placeholder", "onChange", "onRemove", "value", "type"];
17
+
18
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
19
+
20
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
21
+ const StyledInputPill = aggregatedClasses(Pill)('input-pill', null, _ref => {
22
+ let {
23
+ value
24
+ } = _ref;
25
+ return {
26
+ value
27
+ };
28
+ });
29
+ function InputPill(_ref2) {
30
+ let {
31
+ containerProps = {},
32
+ placeholder = 'Enter Value',
33
+ onChange = () => {},
34
+ onRemove,
35
+ value,
36
+ type
37
+ } = _ref2,
38
+ otherProps = _objectWithoutProperties(_ref2, _excluded);
39
+
40
+ let TypeOfInput = DSInput; // TODO: implement the DSTimeInput, see how because it returns a moment()
41
+ // TODO: implement the DSDateInput
42
+
43
+ switch (type) {
44
+ case 'inputText':
45
+ TypeOfInput = DSInput;
46
+ break;
47
+
48
+ case 'inputMask':
49
+ TypeOfInput = DSInputMask;
50
+ break;
51
+ }
52
+
53
+ return /*#__PURE__*/_jsx(StyledInputPill, {
54
+ className: "input-pill",
55
+ classProps: {
56
+ value
57
+ },
58
+ containerProps: containerProps,
59
+ label: /*#__PURE__*/jsx(TypeOfInput, _objectSpread({
60
+ "data-testid": "input-pill",
61
+ onChange: onChange,
62
+ placeholder: placeholder,
63
+ value: value
64
+ }, otherProps)),
65
+ rightAddon: value && /*#__PURE__*/_jsx(CloseXsmall, {
66
+ className: "remove-pill-button",
67
+ "data-testid": "remove-pill-button",
68
+ onClick: onRemove
69
+ }),
70
+ tabIndex: -1
71
+ });
72
+ }
73
+
74
+ export { InputPill };
@@ -0,0 +1,95 @@
1
+ import 'core-js/modules/esnext.async-iterator.filter.js';
2
+ import 'core-js/modules/esnext.iterator.constructor.js';
3
+ import 'core-js/modules/esnext.iterator.filter.js';
4
+ import 'core-js/modules/esnext.async-iterator.for-each.js';
5
+ import 'core-js/modules/esnext.iterator.for-each.js';
6
+ import _jsx from '@babel/runtime/helpers/esm/jsx';
7
+ import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
8
+ import _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';
9
+ import 'react';
10
+ import { PropTypes, describe } from 'react-desc';
11
+ import { PillGroup } from './PillGroup.js';
12
+ import LabeledDropdownSinglePill from './LabeledDropdownPillsTypes/LabeledDropdownSinglePill.js';
13
+ import LabeledDropdownMultiPills from './LabeledDropdownPillsTypes/LabeledDropdownMultiPill.js';
14
+ import LabeledDropdownCascadeMenuPill from './LabeledDropdownPillsTypes/LabeledDropdownCascadeMenuPill.js';
15
+ import { jsx } from 'react/jsx-runtime';
16
+
17
+ const _excluded = ["label", "value", "type", "onFocusNextGroup", "onFocusPreviousGroup", "onFocusGroupSet", "maxWidth", "minWidth", "fixed"];
18
+
19
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
20
+
21
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
22
+ const DropdownPills = {
23
+ single: LabeledDropdownSinglePill,
24
+ multi: LabeledDropdownMultiPills,
25
+ cascaded: LabeledDropdownCascadeMenuPill
26
+ };
27
+
28
+ const createDropdownPill = type => DropdownPills[type] || DropdownPills.single;
29
+
30
+ function LabeledDropdownPills(_ref) {
31
+ let {
32
+ label = '',
33
+ value,
34
+ type,
35
+ onFocusNextGroup,
36
+ onFocusPreviousGroup,
37
+ onFocusGroupSet,
38
+ maxWidth,
39
+ minWidth,
40
+ fixed
41
+ } = _ref,
42
+ menuProps = _objectWithoutProperties(_ref, _excluded);
43
+
44
+ const Component = createDropdownPill(type);
45
+ return /*#__PURE__*/_jsx(PillGroup, {
46
+ onFocusGroupSet: onFocusGroupSet,
47
+ onFocusNextGroup: onFocusNextGroup,
48
+ onFocusPreviousGroup: onFocusPreviousGroup
49
+ }, void 0, /*#__PURE__*/jsx(Component, _objectSpread(_objectSpread({}, menuProps), {}, {
50
+ label: label,
51
+ maxWidth: maxWidth,
52
+ minWidth: minWidth,
53
+ value: value,
54
+ fixed: fixed
55
+ })));
56
+ }
57
+
58
+ const props = {
59
+ /** pill type */
60
+ type: PropTypes.oneOf(['single', 'multi', 'cascaded']).description('pill type'),
61
+
62
+ /** focus next group callback */
63
+ onFocusNextGroup: PropTypes.func.description('focus next group callback'),
64
+
65
+ /** focus prev group callback */
66
+ onFocusPreviousGroup: PropTypes.func.description('focus prev group callback'),
67
+
68
+ /** focus group set callback */
69
+ onFocusGroupSet: PropTypes.func.description('focus group set callback'),
70
+
71
+ /** pill max width */
72
+ maxWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).description('pill max width'),
73
+
74
+ /** pill min width */
75
+ minWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).description('pill min width'),
76
+
77
+ /** fixed pill */
78
+ fixed: PropTypes.bool.description('fixed pill'),
79
+
80
+ /** pill label text */
81
+ label: PropTypes.string.isRequired.description('pill label text'),
82
+
83
+ /** pill value */
84
+ value: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.shape({
85
+ id: PropTypes.string,
86
+ label: PropTypes.string
87
+ })), PropTypes.shape({
88
+ id: PropTypes.string,
89
+ label: PropTypes.string
90
+ })]).description('pill value')
91
+ };
92
+ const DSLabeledDropdownPillsWithSchema = describe(LabeledDropdownPills);
93
+ DSLabeledDropdownPillsWithSchema.propTypes = props;
94
+
95
+ export { DSLabeledDropdownPillsWithSchema, LabeledDropdownPills };
@@ -0,0 +1,126 @@
1
+ import 'core-js/modules/esnext.async-iterator.for-each.js';
2
+ import 'core-js/modules/esnext.iterator.for-each.js';
3
+ import _jsx from '@babel/runtime/helpers/esm/jsx';
4
+ import _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';
5
+ import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
6
+ import 'core-js/modules/esnext.async-iterator.map.js';
7
+ import 'core-js/modules/esnext.iterator.map.js';
8
+ import 'core-js/modules/web.dom-collections.iterator.js';
9
+ import 'core-js/modules/esnext.async-iterator.filter.js';
10
+ import 'core-js/modules/esnext.iterator.constructor.js';
11
+ import 'core-js/modules/esnext.iterator.filter.js';
12
+ import { createElement } from 'react';
13
+ import { isFunction, addOrRemove } from '@elliemae/ds-utilities';
14
+ import { PillGroup } from '../PillGroup.js';
15
+ import { RemovablePill } from '../RemovablePill.js';
16
+ import { DropdownPill } from '../DropdownPill.js';
17
+ import { jsx } from 'react/jsx-runtime';
18
+
19
+ const _excluded = ["label", "options", "value", "onChange", "onRemove", "value", "placeholder", "onFocusNextGroup", "onFocusPreviousGroup", "onFocusGroupSet", "maxWidth", "minWidth"];
20
+
21
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
22
+
23
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
24
+
25
+ function renderMenuItems(options, factory) {
26
+ return options.map((option, index) => {
27
+ const ItemComponent = factory('radio');
28
+
29
+ if (option.type === 'submenu') {
30
+ const SubmenuComponent = factory('submenu');
31
+ const ChildComponent = factory('selection-group');
32
+ return /*#__PURE__*/createElement(SubmenuComponent, _objectSpread(_objectSpread({}, option), {}, {
33
+ key: option.id,
34
+ item: option
35
+ }), /*#__PURE__*/jsx(ChildComponent, _objectSpread(_objectSpread({}, option), {}, {
36
+ id: option.id,
37
+ item: option,
38
+ items: option.items,
39
+ itemValueAccessor: item => item,
40
+ multi: true
41
+ })));
42
+ }
43
+
44
+ return /*#__PURE__*/createElement(ItemComponent, _objectSpread(_objectSpread({}, option), {}, {
45
+ key: option.id || index,
46
+ item: option
47
+ }));
48
+ });
49
+ }
50
+
51
+ const getSubmenuOptionLabelById = (options, id) => {
52
+ const index = options.findIndex(option => option.id === id);
53
+ return index ? options[index].label : '';
54
+ };
55
+
56
+ function LabeledDropdownCascadeMenuPill(_ref) {
57
+ let {
58
+ label,
59
+ options,
60
+ value: optionValue,
61
+ onChange,
62
+ onRemove,
63
+ value: selection = {},
64
+ placeholder = '---',
65
+ onFocusNextGroup,
66
+ onFocusPreviousGroup,
67
+ onFocusGroupSet,
68
+ maxWidth,
69
+ minWidth
70
+ } = _ref,
71
+ menuProps = _objectWithoutProperties(_ref, _excluded);
72
+
73
+ const selectionId = Object.keys(selection)[0];
74
+ const selectionValues = selection[selectionId] || '';
75
+ const dropdownLabel = Array.isArray(selectionValues) ? getSubmenuOptionLabelById(options, selectionId) : selectionValues;
76
+
77
+ const handleSelectChange = _ref2 => {
78
+ let {
79
+ item,
80
+ group
81
+ } = _ref2;
82
+
83
+ if (isFunction(onChange)) {
84
+ const nextSelection = group ? {
85
+ [group.id]: addOrRemove([...(selection[group.id] || [])], item, o => o.id)
86
+ } : {
87
+ [item.id]: item.label
88
+ };
89
+ onChange(nextSelection);
90
+ }
91
+ };
92
+
93
+ const removeOption = option => {
94
+ if (isFunction(onChange)) {
95
+ const nextSelection = {
96
+ [selectionId]: selectionValues.filter(val => option.id !== val.id)
97
+ };
98
+ onChange(nextSelection);
99
+ }
100
+
101
+ onRemove(option);
102
+ };
103
+
104
+ return /*#__PURE__*/_jsx(PillGroup, {
105
+ onFocusGroupSet: onFocusGroupSet,
106
+ onFocusNextGroup: onFocusNextGroup,
107
+ onFocusPreviousGroup: onFocusPreviousGroup
108
+ }, void 0, /*#__PURE__*/jsx(DropdownPill, _objectSpread(_objectSpread({}, menuProps), {}, {
109
+ itemsRenderer: renderMenuItems,
110
+ label: dropdownLabel || placeholder,
111
+ maxWidth: maxWidth,
112
+ minWidth: minWidth,
113
+ onSelectChange: handleSelectChange,
114
+ options: options,
115
+ selection: {
116
+ [selectionId]: Array.isArray(selectionValues) ? selectionValues.map(v => v.id) : selectionValues
117
+ },
118
+ singleGroupSelection: true,
119
+ variant: "title"
120
+ })), Array.isArray(selectionValues) && selectionValues.map(option => /*#__PURE__*/_jsx(RemovablePill, {
121
+ label: option.label,
122
+ onRemove: () => removeOption(option)
123
+ }, option.id)));
124
+ }
125
+
126
+ export { LabeledDropdownCascadeMenuPill as default };
@@ -0,0 +1,145 @@
1
+ import _jsx from '@babel/runtime/helpers/esm/jsx';
2
+ import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
3
+ import _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';
4
+ import 'core-js/modules/web.dom-collections.iterator.js';
5
+ import 'core-js/modules/esnext.async-iterator.filter.js';
6
+ import 'core-js/modules/esnext.iterator.constructor.js';
7
+ import 'core-js/modules/esnext.iterator.filter.js';
8
+ import 'core-js/modules/esnext.async-iterator.map.js';
9
+ import 'core-js/modules/esnext.iterator.map.js';
10
+ import 'core-js/modules/esnext.async-iterator.for-each.js';
11
+ import 'core-js/modules/esnext.iterator.for-each.js';
12
+ import { useState, useEffect, useCallback } from 'react';
13
+ import { find } from 'lodash';
14
+ import { isFunction, addOrRemove } from '@elliemae/ds-utilities';
15
+ import { RemovablePill } from '../RemovablePill.js';
16
+ import { Pill } from '../Pill.js';
17
+ import { OverflowPill } from '../OverflowPill.js';
18
+ import { DropdownPill } from '../DropdownPill.js';
19
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
20
+
21
+ const _excluded = ["label", "options", "value", "onSelect", "onRemove", "onChange", "maxWidth", "minWidth"];
22
+
23
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
24
+
25
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
26
+ function LabeledDropdownMultiPills(_ref) {
27
+ let {
28
+ label,
29
+ options = [],
30
+ value = [],
31
+ onSelect = () => null,
32
+ onRemove = () => null,
33
+ onChange,
34
+ // if this is defined, then it's calculating the next result onSelect or onRemove
35
+ maxWidth,
36
+ minWidth
37
+ } = _ref,
38
+ menuProps = _objectWithoutProperties(_ref, _excluded);
39
+
40
+ const [totalDefaultOptions, setTotalDefaultOptions] = useState(0);
41
+ const [selectedOptions, setSelectedOptions] = useState(value);
42
+ const [allOptions, setAllOptions] = useState(options);
43
+ const [overflowOptions, setOverflowOptions] = useState([]);
44
+ const overflowQuantity = 3;
45
+ useEffect(() => setSelectedOptions(value), [value]);
46
+ useEffect(() => {
47
+ const newOptions = allOptions.filter(option => option.fixedItem);
48
+
49
+ if (newOptions.length > 0) {
50
+ setSelectedOptions(newOptions);
51
+ }
52
+
53
+ setTotalDefaultOptions(newOptions.length);
54
+ }, []);
55
+ useEffect(() => {
56
+ if (totalDefaultOptions) {
57
+ const newOptions = allOptions.map(opt => {
58
+ if (selectedOptions.length <= totalDefaultOptions && find(selectedOptions, {
59
+ id: opt.id
60
+ })) {
61
+ return _objectSpread(_objectSpread({}, opt), {}, {
62
+ fixedItem: true
63
+ });
64
+ }
65
+
66
+ return _objectSpread(_objectSpread({}, opt), {}, {
67
+ fixedItem: false
68
+ });
69
+ });
70
+ setAllOptions(newOptions);
71
+ }
72
+ }, [onSelect, onRemove, selectedOptions]);
73
+ useEffect(() => {
74
+ if (selectedOptions.length > overflowQuantity) {
75
+ const overflow = selectedOptions.filter((val, index) => index >= overflowQuantity);
76
+ setOverflowOptions(overflow);
77
+ }
78
+ }, [selectedOptions]);
79
+ const selectOption = useCallback(option => {
80
+ if (!option.fixedItem) {
81
+ if (isFunction(onChange)) {
82
+ const nextValue = addOrRemove(selectedOptions, option, item => item.id);
83
+ setSelectedOptions(nextValue);
84
+ onChange(nextValue);
85
+ }
86
+
87
+ onSelect(option);
88
+ }
89
+ }, [selectedOptions]);
90
+ const removeOption = useCallback(option => {
91
+ if (!option.fixedItem || selectedOptions.length > totalDefaultOptions) {
92
+ if (isFunction(onChange)) {
93
+ const nextValue = selectedOptions.filter(val => option.id !== val.id);
94
+ setSelectedOptions(nextValue);
95
+ onChange(nextValue);
96
+ }
97
+
98
+ onRemove(option);
99
+ }
100
+ }, [selectedOptions]);
101
+
102
+ const typeOfPill = () => {
103
+ if (selectedOptions.length > totalDefaultOptions) {
104
+ return RemovablePill;
105
+ }
106
+
107
+ return Pill;
108
+ };
109
+
110
+ return /*#__PURE__*/jsxs(Fragment, {
111
+ children: [/*#__PURE__*/jsx(DropdownPill, _objectSpread(_objectSpread({}, menuProps), {}, {
112
+ focusOnOpen: false,
113
+ label: label,
114
+ maxWidth: maxWidth,
115
+ minWidth: minWidth,
116
+ onSelectMenuItem: selectOption,
117
+ options: [_objectSpread(_objectSpread({}, menuProps), {}, {
118
+ type: 'SelectionGroup',
119
+ id: 'multi-selection-views',
120
+ multi: true,
121
+ items: allOptions
122
+ })],
123
+ selection: {
124
+ 'multi-selection-views': selectedOptions ? selectedOptions.map(o => o.id) : ''
125
+ },
126
+ variant: "title"
127
+ })), selectedOptions && selectedOptions.map((option, index) => {
128
+ const TypeOfPill = typeOfPill();
129
+
130
+ if (index < overflowQuantity) {
131
+ return /*#__PURE__*/_jsx(TypeOfPill, {
132
+ label: option.label,
133
+ onRemove: () => removeOption(option)
134
+ }, option.id);
135
+ }
136
+
137
+ return null;
138
+ }), selectedOptions && selectedOptions.length > overflowQuantity && /*#__PURE__*/_jsx(OverflowPill, {
139
+ label: "+ ".concat(selectedOptions.length - overflowQuantity),
140
+ options: overflowOptions
141
+ })]
142
+ });
143
+ }
144
+
145
+ export { LabeledDropdownMultiPills as default };