@tedi-design-system/react 17.1.0-rc.8 → 17.1.0-rc.9

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 (67) hide show
  1. package/_virtual/index.es13.js +2 -2
  2. package/_virtual/index.es14.js +2 -2
  3. package/bundle-stats.html +1 -1
  4. package/external/hoist-non-react-statics/external/react-is/cjs/react-is.development.cjs.js +1 -1
  5. package/external/hoist-non-react-statics/external/react-is/cjs/react-is.development.es.js +1 -1
  6. package/external/hoist-non-react-statics/external/react-is/cjs/react-is.production.min.cjs.js +1 -1
  7. package/external/hoist-non-react-statics/external/react-is/cjs/react-is.production.min.es.js +1 -1
  8. package/external/hoist-non-react-statics/external/react-is/index.cjs.js +1 -1
  9. package/external/hoist-non-react-statics/external/react-is/index.es.js +1 -1
  10. package/external/prop-types/external/react-is/cjs/react-is.development.cjs.js +1 -1
  11. package/external/prop-types/external/react-is/cjs/react-is.development.es.js +1 -1
  12. package/external/prop-types/external/react-is/cjs/react-is.production.min.cjs.js +1 -1
  13. package/external/prop-types/external/react-is/cjs/react-is.production.min.es.js +1 -1
  14. package/external/prop-types/external/react-is/index.cjs.js +1 -1
  15. package/external/prop-types/external/react-is/index.es.js +1 -1
  16. package/external/react-is/index.cjs.js +1 -1
  17. package/external/react-is/index.es.js +1 -1
  18. package/external/toposort/index.cjs.js +1 -1
  19. package/external/toposort/index.es.js +1 -1
  20. package/index.css +1 -1
  21. package/package.json +1 -1
  22. package/src/tedi/components/form/input-group/components/input/input.es.js +8 -8
  23. package/src/tedi/components/form/input-group/components/prefix/prefix.es.js +10 -10
  24. package/src/tedi/components/form/input-group/components/suffix/suffix.es.js +6 -6
  25. package/src/tedi/components/form/input-group/input-group.es.js +13 -13
  26. package/src/tedi/components/form/select/components/select-bulk-helpers.cjs.js +1 -0
  27. package/src/tedi/components/form/select/components/select-bulk-helpers.d.ts +55 -0
  28. package/src/tedi/components/form/select/components/select-bulk-helpers.es.js +34 -0
  29. package/src/tedi/components/form/select/components/select-group-bulk-context.cjs.js +1 -0
  30. package/src/tedi/components/form/select/components/select-group-bulk-context.d.ts +18 -0
  31. package/src/tedi/components/form/select/components/select-group-bulk-context.es.js +6 -0
  32. package/src/tedi/components/form/select/components/select-group-heading.cjs.js +1 -1
  33. package/src/tedi/components/form/select/components/select-group-heading.d.ts +4 -1
  34. package/src/tedi/components/form/select/components/select-group-heading.es.js +43 -8
  35. package/src/tedi/components/form/select/components/select-group.cjs.js +1 -1
  36. package/src/tedi/components/form/select/components/select-group.d.ts +4 -1
  37. package/src/tedi/components/form/select/components/select-group.es.js +18 -6
  38. package/src/tedi/components/form/select/components/select-menu-list.cjs.js +1 -1
  39. package/src/tedi/components/form/select/components/select-menu-list.d.ts +9 -1
  40. package/src/tedi/components/form/select/components/select-menu-list.es.js +22 -8
  41. package/src/tedi/components/form/select/components/select-multi-option.cjs.js +1 -1
  42. package/src/tedi/components/form/select/components/select-multi-option.es.js +40 -18
  43. package/src/tedi/components/form/select/components/select-multi-value.cjs.js +1 -1
  44. package/src/tedi/components/form/select/components/select-multi-value.d.ts +12 -1
  45. package/src/tedi/components/form/select/components/select-multi-value.es.js +42 -8
  46. package/src/tedi/components/form/select/components/select-single-option.cjs.js +1 -1
  47. package/src/tedi/components/form/select/components/select-single-option.es.js +5 -4
  48. package/src/tedi/components/form/select/components/select-single-value.cjs.js +1 -0
  49. package/src/tedi/components/form/select/components/select-single-value.d.ts +3 -0
  50. package/src/tedi/components/form/select/components/select-single-value.es.js +9 -0
  51. package/src/tedi/components/form/select/components/select-tags-context.cjs.js +1 -0
  52. package/src/tedi/components/form/select/components/select-tags-context.d.ts +11 -0
  53. package/src/tedi/components/form/select/components/select-tags-context.es.js +9 -0
  54. package/src/tedi/components/form/select/components/select-value-container.cjs.js +1 -1
  55. package/src/tedi/components/form/select/components/select-value-container.d.ts +12 -2
  56. package/src/tedi/components/form/select/components/select-value-container.es.js +76 -13
  57. package/src/tedi/components/form/select/select.cjs.js +1 -1
  58. package/src/tedi/components/form/select/select.d.ts +258 -0
  59. package/src/tedi/components/form/select/select.es.js +265 -175
  60. package/src/tedi/components/form/select/select.module.scss.cjs.js +1 -1
  61. package/src/tedi/components/form/select/select.module.scss.es.js +14 -5
  62. package/src/tedi/components/tags/tag/tag.cjs.js +1 -1
  63. package/src/tedi/components/tags/tag/tag.d.ts +8 -0
  64. package/src/tedi/components/tags/tag/tag.es.js +14 -13
  65. package/src/tedi/providers/label-provider/labels-map.cjs.js +1 -1
  66. package/src/tedi/providers/label-provider/labels-map.d.ts +7 -0
  67. package/src/tedi/providers/label-provider/labels-map.es.js +9 -2
@@ -1,167 +1,257 @@
1
- import { jsx as l, jsxs as w } from "react/jsx-runtime";
2
- import Oe from "../../../../../external/classnames/index.es.js";
3
- import c, { forwardRef as ve } from "react";
4
- import Ce from "../../../../../external/react-select/dist/react-select.esm.es.js";
5
- import Le from "../../../../../external/react-select/async/dist/react-select-async.esm.es.js";
6
- import { FeedbackText as he } from "../feedback-text/feedback-text.es.js";
7
- import { FormLabel as ye } from "../form-label/form-label.es.js";
8
- import { useOptionalInputGroup as Ne } from "../input-group/input-group.es.js";
9
- import { SelectClearIndicator as Ve } from "./components/select-clear-indicator.es.js";
10
- import { SelectControl as Re } from "./components/select-control.es.js";
11
- import { SelectDropDownIndicator as we } from "./components/select-dropdown-indicator.es.js";
12
- import { SelectGroup as _e } from "./components/select-group.es.js";
13
- import { SelectGroupHeading as $e } from "./components/select-group-heading.es.js";
14
- import { SelectIndicatorsContainer as xe } from "./components/select-indicators-container.es.js";
15
- import { SelectInput as He } from "./components/select-input.es.js";
16
- import { SelectLoadingIndicator as Pe } from "./components/select-loading-indicator.es.js";
17
- import { SelectMenu as Te } from "./components/select-menu.es.js";
18
- import { SelectMenuList as De } from "./components/select-menu-list.es.js";
19
- import { SelectMenuPortal as Fe } from "./components/select-menu-portal.es.js";
20
- import { SelectMultiValue as je } from "./components/select-multi-value.es.js";
21
- import { SelectMultiValueRemove as ke } from "./components/select-multi-value-remove.es.js";
22
- import { SelectOption as Ee } from "./components/select-option.es.js";
23
- import { SelectValueContainer as Be } from "./components/select-value-container.es.js";
24
- import o from "./select.module.scss.es.js";
25
- import { useLabels as Ge } from "../../../providers/label-provider/use-labels.es.js";
26
- const qe = ve(
27
- (g, _) => {
28
- var R;
1
+ import { jsx as C, jsxs as q } from "react/jsx-runtime";
2
+ import W from "../../../../../external/classnames/index.es.js";
3
+ import r, { forwardRef as Je } from "react";
4
+ import Qe from "../../../../../external/react-select/dist/react-select.esm.es.js";
5
+ import Ye from "../../../../../external/react-select/async/dist/react-select-async.esm.es.js";
6
+ import { FeedbackText as Ze } from "../feedback-text/feedback-text.es.js";
7
+ import { FormLabel as et } from "../form-label/form-label.es.js";
8
+ import { useOptionalInputGroup as tt } from "../input-group/input-group.es.js";
9
+ import ot from "../input-group/input-group.module.scss.es.js";
10
+ import { SELECT_ALL_VALUE as v, GROUP_OPTION_PREFIX as lt, areAllSelected as X, getEnabledOptions as J, isGroupSentinel as Q } from "./components/select-bulk-helpers.es.js";
11
+ import { SelectClearIndicator as nt } from "./components/select-clear-indicator.es.js";
12
+ import { SelectControl as st } from "./components/select-control.es.js";
13
+ import { SelectDropDownIndicator as rt } from "./components/select-dropdown-indicator.es.js";
14
+ import { SelectGroup as at } from "./components/select-group.es.js";
15
+ import { SelectGroupHeading as it } from "./components/select-group-heading.es.js";
16
+ import { SelectIndicatorsContainer as ut } from "./components/select-indicators-container.es.js";
17
+ import { SelectInput as ct } from "./components/select-input.es.js";
18
+ import { SelectLoadingIndicator as dt } from "./components/select-loading-indicator.es.js";
19
+ import { SelectMenu as pt } from "./components/select-menu.es.js";
20
+ import { SelectMenuList as mt } from "./components/select-menu-list.es.js";
21
+ import { SelectMenuPortal as ft } from "./components/select-menu-portal.es.js";
22
+ import { SelectMultiValue as gt } from "./components/select-multi-value.es.js";
23
+ import { SelectMultiValueRemove as bt } from "./components/select-multi-value-remove.es.js";
24
+ import { SelectOption as St } from "./components/select-option.es.js";
25
+ import { SelectSingleValue as vt } from "./components/select-single-value.es.js";
26
+ import { SelectValueContainer as yt } from "./components/select-value-container.es.js";
27
+ import p from "./select.module.scss.es.js";
28
+ import { useLabels as Mt } from "../../../providers/label-provider/use-labels.es.js";
29
+ const ht = Je(
30
+ (k, Y) => {
31
+ var z;
29
32
  const {
30
- options: $,
31
- defaultOptions: x,
32
- id: S,
33
- name: H,
34
- iconName: P = "arrow_drop_down",
35
- label: T,
36
- required: b,
33
+ options: u,
34
+ defaultOptions: Z,
35
+ id: _,
36
+ name: ee,
37
+ iconName: te = "arrow_drop_down",
38
+ label: oe,
39
+ required: R,
37
40
  value: D,
38
- defaultValue: F,
39
- tagsDirection: M = "row",
40
- onChange: d,
41
- onInputChange: j,
42
- inputValue: k,
43
- loadOptions: E,
44
- isLoading: B,
45
- openMenuOnFocus: G = !1,
46
- openMenuOnClick: q = !0,
47
- tabSelectsValue: z = !1,
48
- disabled: I = !1,
49
- className: O,
50
- hideLabel: A = !1,
51
- helper: t,
52
- placeholder: W,
53
- invalid: J,
54
- valid: K,
55
- size: m,
56
- async: Q = !1,
57
- renderOption: U,
58
- renderMessageListFooter: v,
59
- noOptionsMessage: X,
60
- loadingMessage: Y,
61
- multiple: u = !1,
62
- closeMenuOnSelect: Z = !u,
63
- blurInputOnSelect: C = !1,
64
- autoFocus: ee = !1,
65
- isClearable: te = !0,
66
- isClearIndicatorVisible: oe = !1,
67
- isSearchable: L = !0,
68
- menuIsOpen: ae,
69
- onMenuClose: ne,
70
- onMenuOpen: re,
71
- onBlur: se,
72
- inputIsHidden: ie,
73
- isTagRemovable: h = !1,
74
- optionGroupHeadingText: le = { modifiers: "small", color: "tertiary" },
75
- cacheOptions: ce = !0,
76
- showRadioButtons: de = !1,
77
- renderWithoutLabel: me,
78
- tooltip: ue,
79
- classNames: y
80
- } = g, a = (R = Ne) == null ? void 0 : R(), pe = c.useId(), fe = a == null ? void 0 : a.hasExternalLabel, p = g.id ?? (a == null ? void 0 : a.inputId) ?? pe, N = t ? (t == null ? void 0 : t.id) ?? `${p}-helper` : void 0, r = c.useRef(null), { getLabel: V } = Ge();
81
- c.useImperativeHandle(
82
- _,
83
- () => r.current
41
+ defaultValue: N,
42
+ tagsDirection: L = "stack",
43
+ onChange: V,
44
+ onInputChange: le,
45
+ inputValue: ne,
46
+ loadOptions: se,
47
+ isLoading: re,
48
+ openMenuOnFocus: ae = !1,
49
+ openMenuOnClick: ie = !0,
50
+ tabSelectsValue: ue = !1,
51
+ disabled: F = !1,
52
+ className: ce,
53
+ hideLabel: de = !1,
54
+ helper: a,
55
+ placeholder: pe,
56
+ invalid: me,
57
+ valid: fe,
58
+ size: w,
59
+ async: ge = !1,
60
+ renderOption: be,
61
+ renderMessageListFooter: x,
62
+ noOptionsMessage: Se,
63
+ loadingMessage: ve,
64
+ multiple: y = !1,
65
+ showSelectAll: G = !1,
66
+ selectableGroups: P = !1,
67
+ dropdownType: ye = "menu",
68
+ renderValue: Me,
69
+ closeMenuOnSelect: he = !y,
70
+ blurInputOnSelect: T = !1,
71
+ autoFocus: Ie = !1,
72
+ isClearable: Oe = !0,
73
+ isClearIndicatorVisible: Ce = !1,
74
+ isSearchable: $ = !0,
75
+ menuIsOpen: Le,
76
+ onMenuClose: Ve,
77
+ onMenuOpen: we,
78
+ onBlur: Ae,
79
+ inputIsHidden: ke,
80
+ isTagRemovable: _e = !1,
81
+ backspaceRemovesValue: Re = !1,
82
+ optionGroupHeadingText: De = { modifiers: "small", color: "tertiary" },
83
+ cacheOptions: Ne = !0,
84
+ showRadioButtons: Fe = !1,
85
+ renderWithoutLabel: xe,
86
+ tooltip: Ge,
87
+ classNames: E
88
+ } = k, m = (z = tt) == null ? void 0 : z(), Pe = r.useId(), Te = m == null ? void 0 : m.hasExternalLabel, A = k.id ?? (m == null ? void 0 : m.inputId) ?? Pe, H = a ? (a == null ? void 0 : a.id) ?? `${A}-helper` : void 0, h = r.useRef(null), { getLabel: I } = Mt();
89
+ r.useImperativeHandle(
90
+ Y,
91
+ () => h.current
84
92
  );
85
- const ge = (n) => {
86
- d == null || d(n), !C && r.current && setTimeout(() => {
87
- var s, i;
88
- return (i = (s = r.current) == null ? void 0 : s.inputRef) == null ? void 0 : i.focus();
93
+ const g = !!G && y, [$e, Ee] = r.useState(N ?? null), j = D !== void 0, f = j ? D : $e, c = r.useMemo(() => Array.isArray(f) ? f : f ? [f] : [], [f]), O = r.useMemo(
94
+ () => ({ value: v, label: I("select.select-all") }),
95
+ [I]
96
+ ), b = !!P && !!y, { groupFlattenedOptions: K, groupSentinelMap: M } = r.useMemo(() => {
97
+ const t = /* @__PURE__ */ new Map();
98
+ if (!b || !u || u.length === 0)
99
+ return { groupFlattenedOptions: null, groupSentinelMap: t };
100
+ if (!u.some((e) => e && Array.isArray(e.options))) return { groupFlattenedOptions: null, groupSentinelMap: t };
101
+ const l = [], i = /* @__PURE__ */ new Map();
102
+ for (const e of u)
103
+ if (e && Array.isArray(e.options)) {
104
+ const o = e, n = `${lt}${o.label ?? ""}`, d = o.options.filter((S) => !S.isDisabled);
105
+ i.set(n, { enabled: d }), l.push({ value: n, label: o.label ?? "" });
106
+ for (const S of o.options)
107
+ l.push({
108
+ ...S,
109
+ customData: { ...S.customData ?? {}, __tediInGroup: !0 }
110
+ });
111
+ } else
112
+ l.push(e);
113
+ return { groupFlattenedOptions: l, groupSentinelMap: i };
114
+ }, [u, b]), He = r.useMemo(() => {
115
+ let t = K ?? u;
116
+ return g && t && t.length > 0 && (t = [O, ...t]), t;
117
+ }, [u, K, g, O]), je = r.useMemo(() => {
118
+ const t = [];
119
+ if (b && M.size > 0)
120
+ for (const [s, l] of M)
121
+ l.enabled.length > 0 && X(c, l.enabled) && t.push({ value: s, label: "" });
122
+ if (g) {
123
+ const s = J(u ?? []);
124
+ s.length > 0 && X(c, s) && t.push(O);
125
+ }
126
+ return t.length === 0 ? f : [...c, ...t];
127
+ }, [
128
+ f,
129
+ c,
130
+ u,
131
+ b,
132
+ M,
133
+ g,
134
+ O
135
+ ]), Ke = (t, s) => {
136
+ let l = t;
137
+ const i = s.option;
138
+ if (b && i && M.has(i.value)) {
139
+ const e = M.get(i.value).enabled;
140
+ if (s.action === "select-option") {
141
+ const o = [...c];
142
+ for (const n of e)
143
+ o.some((d) => d.value === n.value) || o.push(n);
144
+ l = o;
145
+ } else s.action === "deselect-option" && (l = c.filter((o) => !e.some((n) => n.value === o.value)));
146
+ } else if (g) {
147
+ const e = J(u ?? []), o = (i == null ? void 0 : i.value) === v;
148
+ o && s.action === "select-option" ? l = [...c.filter(
149
+ (d) => d.value !== v && !e.some((S) => S.value === d.value)
150
+ ), ...e] : o && s.action === "deselect-option" && (l = c.filter(
151
+ (n) => n.value !== v && !e.some((d) => d.value === n.value)
152
+ ));
153
+ }
154
+ Array.isArray(l) && (l = l.filter((e) => e.value !== v && !Q(e))), j || Ee(l), V == null || V(l), !T && h.current && setTimeout(() => {
155
+ var e, o;
156
+ return (o = (e = h.current) == null ? void 0 : e.inputRef) == null ? void 0 : o.focus();
89
157
  }, 0);
90
- }, Se = c.useCallback(
91
- (n) => /* @__PURE__ */ l(De, { ...n, renderMessageListFooter: v }),
92
- [v]
93
- ), be = () => {
94
- const n = {
95
- ClearIndicator: (e) => Ve({ isClearIndicatorVisible: oe, ...e }),
96
- DropdownIndicator: () => we({ iconName: P }),
158
+ }, Ue = r.useCallback(
159
+ (t, s) => t.data.value === v || Q(t.data) || !s ? !0 : String(t.label).toLowerCase().includes(s.toLowerCase()),
160
+ []
161
+ ), [U, B] = r.useState(!1), Be = (t) => {
162
+ (t.key === "ArrowUp" || t.key === "ArrowDown" || t.key === "Home" || t.key === "End" || t.key === "PageUp" || t.key === "PageDown" || t.key === "Tab") && (U || B(!0));
163
+ }, ze = r.useCallback(() => {
164
+ B((t) => t && !1);
165
+ }, []), qe = r.useCallback(
166
+ (t) => /* @__PURE__ */ C(mt, { ...t, renderMessageListFooter: x }),
167
+ [x]
168
+ ), We = () => {
169
+ const t = {
170
+ ClearIndicator: (e) => nt({ isClearIndicatorVisible: Ce, ...e }),
171
+ DropdownIndicator: () => rt({ iconName: te }),
97
172
  IndicatorSeparator: () => null,
98
- MenuPortal: Fe,
99
- Menu: Te,
100
- MenuList: Se,
101
- Option: (e) => Ee({ renderOption: U, multiple: u, showRadioButtons: de, ...e }),
102
- Control: (e) => Re({ ...e, className: O }),
103
- Input: He,
104
- MultiValue: (e) => je({ isTagRemovable: h, ...e }),
105
- MultiValueRemove: ke,
106
- Group: _e,
107
- GroupHeading: (e) => $e({ optionGroupHeadingText: le, ...e }),
108
- IndicatorsContainer: xe,
109
- ValueContainer: Be,
110
- LoadingIndicator: Pe
111
- }, s = Q ? Le : Ce, i = () => V("select.no-options"), Ie = () => V("select.loading");
112
- return /* @__PURE__ */ l(
173
+ MenuPortal: ft,
174
+ Menu: pt,
175
+ MenuList: qe,
176
+ Option: (e) => St({ renderOption: be, multiple: y, showRadioButtons: Fe, ...e }),
177
+ Control: st,
178
+ Input: ct,
179
+ MultiValue: (e) => gt({ isTagRemovable: _e, ...e }),
180
+ MultiValueRemove: bt,
181
+ SingleValue: vt,
182
+ Group: at,
183
+ GroupHeading: (e) => it({ optionGroupHeadingText: De, ...e }),
184
+ IndicatorsContainer: ut,
185
+ ValueContainer: yt,
186
+ LoadingIndicator: dt
187
+ }, s = ge ? Ye : Qe, l = () => I("select.no-options"), i = () => I("select.loading");
188
+ return /* @__PURE__ */ C(
113
189
  s,
114
190
  {
115
- id: p,
116
- "aria-describedby": N,
117
- autoFocus: ee,
118
- ref: r,
119
- instanceId: S,
191
+ tagsDirection: L,
192
+ showSelectAll: G,
193
+ selectableGroups: P,
194
+ dropdownType: ye,
195
+ renderValue: Me,
196
+ keyboardMode: U,
197
+ exitKeyboardMode: ze,
198
+ onKeyDown: Be,
199
+ id: A,
200
+ "aria-describedby": H,
201
+ autoFocus: Ie,
202
+ ref: h,
203
+ instanceId: _,
120
204
  className: "tedi-select__wrapper",
121
- name: H,
122
- options: $,
123
- defaultOptions: x,
124
- value: D,
125
- defaultValue: F,
126
- cacheOptions: ce,
127
- onChange: ge,
128
- onInputChange: j,
129
- onBlur: se,
130
- inputValue: k,
131
- inputId: `${S}-input`,
132
- loadOptions: E,
133
- isLoading: B,
134
- noOptionsMessage: X || i,
135
- loadingMessage: Y || Ie,
205
+ name: ee,
206
+ options: He,
207
+ defaultOptions: Z,
208
+ value: je,
209
+ defaultValue: N,
210
+ cacheOptions: Ne,
211
+ onChange: Ke,
212
+ filterOption: g || b ? Ue : void 0,
213
+ onInputChange: le,
214
+ onBlur: Ae,
215
+ inputValue: ne,
216
+ inputId: `${_}-input`,
217
+ loadOptions: se,
218
+ isLoading: re,
219
+ noOptionsMessage: Se || l,
220
+ loadingMessage: ve || i,
136
221
  classNamePrefix: "select",
137
- components: n,
138
- isDisabled: I,
139
- isSearchable: L,
140
- menuIsOpen: ae,
141
- openMenuOnFocus: G,
142
- openMenuOnClick: q,
143
- tabSelectsValue: z,
144
- onMenuClose: ne,
145
- onMenuOpen: re,
146
- placeholder: W || "",
147
- isClearable: te,
148
- backspaceRemovesValue: h,
222
+ components: t,
223
+ isDisabled: F,
224
+ isSearchable: $,
225
+ menuIsOpen: Le,
226
+ openMenuOnFocus: ae,
227
+ openMenuOnClick: ie,
228
+ tabSelectsValue: ue,
229
+ onMenuClose: Ve,
230
+ onMenuOpen: we,
231
+ placeholder: pe || "",
232
+ isClearable: Oe,
233
+ backspaceRemovesValue: Re,
149
234
  menuShouldScrollIntoView: !0,
150
- isMulti: u,
235
+ isMulti: y,
151
236
  hideSelectedOptions: !1,
152
- closeMenuOnSelect: Z,
153
- blurInputOnSelect: C,
237
+ closeMenuOnSelect: he,
238
+ blurInputOnSelect: T,
154
239
  menuPlacement: "auto",
155
- inputIsHidden: ie,
156
- required: b,
240
+ inputIsHidden: ke,
241
+ required: R,
157
242
  menuPortalTarget: document.body,
158
243
  menuPosition: "absolute",
159
- classNames: y ? Object.fromEntries(
160
- Object.entries(y).map(([e, f]) => [
161
- e,
162
- typeof f == "string" ? () => f : f
163
- ])
164
- ) : void 0,
244
+ classNames: (() => {
245
+ const e = {};
246
+ if (E)
247
+ for (const [o, n] of Object.entries(E))
248
+ e[o] = typeof n == "string" ? () => n : n;
249
+ if (m) {
250
+ const o = e.control;
251
+ e.control = (n) => W(o == null ? void 0 : o(n), ot["tedi-input-group__input"]);
252
+ }
253
+ return Object.keys(e).length > 0 ? e : void 0;
254
+ })(),
165
255
  theme: (e) => ({
166
256
  ...e,
167
257
  colors: {
@@ -179,38 +269,38 @@ const qe = ve(
179
269
  }
180
270
  }
181
271
  );
182
- }, Me = Oe(
183
- o["tedi-select"],
184
- O,
185
- { [o["tedi-select--invalid"]]: J || (t == null ? void 0 : t.type) === "error" },
186
- { [o["tedi-select--valid"]]: K || (t == null ? void 0 : t.type) === "valid" },
187
- { [o[`tedi-select--${m}`]]: m },
188
- { [o[`tedi-select--tags-${M}`]]: M },
189
- { [o["tedi-select--searchable"]]: L },
190
- { [o["tedi-select--disabled"]]: I }
272
+ }, Xe = W(
273
+ p["tedi-select"],
274
+ ce,
275
+ { [p["tedi-select--invalid"]]: me || (a == null ? void 0 : a.type) === "error" },
276
+ { [p["tedi-select--valid"]]: fe || (a == null ? void 0 : a.type) === "valid" },
277
+ { [p[`tedi-select--${w}`]]: w },
278
+ { [p[`tedi-select--tags-${L}`]]: L },
279
+ { [p["tedi-select--searchable"]]: $ },
280
+ { [p["tedi-select--disabled"]]: F }
191
281
  );
192
- return /* @__PURE__ */ w("div", { "data-name": "select", className: Me, children: [
193
- /* @__PURE__ */ w("div", { className: o["tedi-select__inner"], children: [
194
- !fe && /* @__PURE__ */ l(
195
- ye,
282
+ return /* @__PURE__ */ q("div", { "data-name": "select", className: Xe, children: [
283
+ /* @__PURE__ */ q("div", { className: p["tedi-select__inner"], children: [
284
+ !Te && /* @__PURE__ */ C(
285
+ et,
196
286
  {
197
- id: `${p}-input`,
198
- label: T,
199
- required: b,
200
- hideLabel: A,
201
- size: m,
202
- renderWithoutLabel: me,
203
- tooltip: ue
287
+ id: `${A}-input`,
288
+ label: oe,
289
+ required: R,
290
+ hideLabel: de,
291
+ size: w,
292
+ renderWithoutLabel: xe,
293
+ tooltip: Ge
204
294
  }
205
295
  ),
206
- be()
296
+ We()
207
297
  ] }),
208
- t && /* @__PURE__ */ l(he, { ...t, id: N })
298
+ a && /* @__PURE__ */ C(Ze, { ...a, id: H })
209
299
  ] });
210
300
  }
211
301
  );
212
- qe.displayName = "Select";
302
+ ht.displayName = "Select";
213
303
  export {
214
- qe as Select,
215
- qe as default
304
+ ht as Select,
305
+ ht as default
216
306
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e={"tedi-select__control":"tedi-select__control-dbce8bb7","tedi-select__value-container":"tedi-select__value-container-253d079a","tedi-select__indicators-container":"tedi-select__indicators-container-0fc8fa2a","tedi-select__input":"tedi-select__input-5525b622","tedi-select--invalid":"tedi-select--invalid-3901c89c","tedi-select__control--focused":"tedi-select__control--focused-0e632efe","tedi-select--valid":"tedi-select--valid-969c0297","tedi-select__arrow":"tedi-select__arrow-94b5ef4a","tedi-select__loading-indicator":"tedi-select__loading-indicator-a35a63ca","tedi-select--disabled":"tedi-select--disabled-2d4b8ddd","tedi-select__menu-portal":"tedi-select__menu-portal-d5349f37","tedi-select__menu":"tedi-select__menu-bf54b75b","tedi-select__menu-list":"tedi-select__menu-list-0aa06e24","tedi-select__menu-list-inner":"tedi-select__menu-list-inner-471e5cf8","tedi-select__menu-list-footer":"tedi-select__menu-list-footer-eb1d3bbc","tedi-select__option":"tedi-select__option-6f811381","tedi-select__option--disabled":"tedi-select__option--disabled-d3aff112","tedi-select__option--focused":"tedi-select__option--focused-1d972ff1","tedi-select__option--selected":"tedi-select__option--selected-a93e5fb0","tedi-select--small":"tedi-select--small-2659608b","tedi-select__multi-value-item":"tedi-select__multi-value-item-b8ec59ae","tedi-select__checkbox":"tedi-select__checkbox-e4f94b67","tedi-select":"tedi-select-8b014852","tedi-select__group":"tedi-select__group-b275e954","tedi-select__group-heading":"tedi-select__group-heading-02b3d9bc","tedi-select__multi-value-clear":"tedi-select__multi-value-clear-d231f7de","tedi-select--tags-row":"tedi-select--tags-row-c9f33e4b","tedi-select--searchable":"tedi-select--searchable-d56eb325","tedi-select--tags-stack":"tedi-select--tags-stack-ddb929a9","tedi-select__separator":"tedi-select__separator-b1045f3f"};exports.default=e;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e={"tedi-select__control":"tedi-select__control-dbce8bb7","tedi-select__value-container":"tedi-select__value-container-253d079a","tedi-select__indicators-container":"tedi-select__indicators-container-0fc8fa2a","tedi-select__input":"tedi-select__input-5525b622","tedi-select":"tedi-select-8b014852","tedi-select--disabled":"tedi-select--disabled-2d4b8ddd","tedi-select--invalid":"tedi-select--invalid-3901c89c","tedi-select--valid":"tedi-select--valid-969c0297","tedi-select__control--focused":"tedi-select__control--focused-0e632efe","tedi-select__arrow":"tedi-select__arrow-94b5ef4a","tedi-select__loading-indicator":"tedi-select__loading-indicator-a35a63ca","tedi-select__dropdown-indicator":"tedi-select__dropdown-indicator-5a948baa","tedi-select__clear-indicator":"tedi-select__clear-indicator-68b60b12","tedi-select__menu-portal":"tedi-select__menu-portal-d5349f37","tedi-select__menu":"tedi-select__menu-bf54b75b","tedi-select__menu-list--grid":"tedi-select__menu-list--grid-393f3232","tedi-select__menu-list":"tedi-select__menu-list-0aa06e24","tedi-select__menu-list-inner":"tedi-select__menu-list-inner-471e5cf8","tedi-select__menu-list-footer":"tedi-select__menu-list-footer-eb1d3bbc","tedi-select__option":"tedi-select__option-6f811381","tedi-select__option--disabled":"tedi-select__option--disabled-d3aff112","tedi-select__option--focused":"tedi-select__option--focused-1d972ff1","tedi-select__option--selected":"tedi-select__option--selected-a93e5fb0","tedi-select--small":"tedi-select--small-2659608b","tedi-select__multi-value-item":"tedi-select__multi-value-item-b8ec59ae","tedi-select__checkbox":"tedi-select__checkbox-e4f94b67","tedi-select__group":"tedi-select__group-b275e954","tedi-select__group-heading":"tedi-select__group-heading-02b3d9bc","tedi-select__group-heading--selectable":"tedi-select__group-heading--selectable-c84cd617","tedi-select__option--indented":"tedi-select__option--indented-bf4a1661","tedi-select__multi-value-clear":"tedi-select__multi-value-clear-d231f7de","tedi-select--tags-row":"tedi-select--tags-row-c9f33e4b","tedi-select__overflow-tag":"tedi-select__overflow-tag-c0391df2","tedi-select__menu-list--keyboard":"tedi-select__menu-list--keyboard-3d066942","tedi-select__select-all":"tedi-select__select-all-12c3e7f1","tedi-select__group-heading-toggle":"tedi-select__group-heading-toggle-34296a63","tedi-select--tags-stack":"tedi-select--tags-stack-ddb929a9","tedi-select__separator":"tedi-select__separator-b1045f3f","tedi-select--searchable":"tedi-select--searchable-d56eb325"};exports.default=e;
@@ -3,14 +3,18 @@ const e = {
3
3
  "tedi-select__value-container": "tedi-select__value-container-253d079a",
4
4
  "tedi-select__indicators-container": "tedi-select__indicators-container-0fc8fa2a",
5
5
  "tedi-select__input": "tedi-select__input-5525b622",
6
+ "tedi-select": "tedi-select-8b014852",
7
+ "tedi-select--disabled": "tedi-select--disabled-2d4b8ddd",
6
8
  "tedi-select--invalid": "tedi-select--invalid-3901c89c",
7
- "tedi-select__control--focused": "tedi-select__control--focused-0e632efe",
8
9
  "tedi-select--valid": "tedi-select--valid-969c0297",
10
+ "tedi-select__control--focused": "tedi-select__control--focused-0e632efe",
9
11
  "tedi-select__arrow": "tedi-select__arrow-94b5ef4a",
10
12
  "tedi-select__loading-indicator": "tedi-select__loading-indicator-a35a63ca",
11
- "tedi-select--disabled": "tedi-select--disabled-2d4b8ddd",
13
+ "tedi-select__dropdown-indicator": "tedi-select__dropdown-indicator-5a948baa",
14
+ "tedi-select__clear-indicator": "tedi-select__clear-indicator-68b60b12",
12
15
  "tedi-select__menu-portal": "tedi-select__menu-portal-d5349f37",
13
16
  "tedi-select__menu": "tedi-select__menu-bf54b75b",
17
+ "tedi-select__menu-list--grid": "tedi-select__menu-list--grid-393f3232",
14
18
  "tedi-select__menu-list": "tedi-select__menu-list-0aa06e24",
15
19
  "tedi-select__menu-list-inner": "tedi-select__menu-list-inner-471e5cf8",
16
20
  "tedi-select__menu-list-footer": "tedi-select__menu-list-footer-eb1d3bbc",
@@ -21,14 +25,19 @@ const e = {
21
25
  "tedi-select--small": "tedi-select--small-2659608b",
22
26
  "tedi-select__multi-value-item": "tedi-select__multi-value-item-b8ec59ae",
23
27
  "tedi-select__checkbox": "tedi-select__checkbox-e4f94b67",
24
- "tedi-select": "tedi-select-8b014852",
25
28
  "tedi-select__group": "tedi-select__group-b275e954",
26
29
  "tedi-select__group-heading": "tedi-select__group-heading-02b3d9bc",
30
+ "tedi-select__group-heading--selectable": "tedi-select__group-heading--selectable-c84cd617",
31
+ "tedi-select__option--indented": "tedi-select__option--indented-bf4a1661",
27
32
  "tedi-select__multi-value-clear": "tedi-select__multi-value-clear-d231f7de",
28
33
  "tedi-select--tags-row": "tedi-select--tags-row-c9f33e4b",
29
- "tedi-select--searchable": "tedi-select--searchable-d56eb325",
34
+ "tedi-select__overflow-tag": "tedi-select__overflow-tag-c0391df2",
35
+ "tedi-select__menu-list--keyboard": "tedi-select__menu-list--keyboard-3d066942",
36
+ "tedi-select__select-all": "tedi-select__select-all-12c3e7f1",
37
+ "tedi-select__group-heading-toggle": "tedi-select__group-heading-toggle-34296a63",
30
38
  "tedi-select--tags-stack": "tedi-select--tags-stack-ddb929a9",
31
- "tedi-select__separator": "tedi-select__separator-b1045f3f"
39
+ "tedi-select__separator": "tedi-select__separator-b1045f3f",
40
+ "tedi-select--searchable": "tedi-select--searchable-d56eb325"
32
41
  };
33
42
  export {
34
43
  e as default
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),u=require("../../../../../external/classnames/index.cjs.js"),g=require("../../base/icon/icon.cjs.js"),p=require("../../buttons/closing-button/closing-button.cjs.js"),f=require("../../loaders/spinner/spinner.cjs.js"),e=require("./tag.module.scss.cjs.js"),_=require("../../../helpers/hooks/use-breakpoint-props.cjs.js"),m=s=>{const{getCurrentBreakpointProps:o}=_.useBreakpointProps(s.defaultServerBreakpoint),{children:n,className:l,onClose:a,isLoading:r=!1,color:i="primary",...c}=o(s),d=u.default(e.default["tedi-tag"],i&&e.default[`tedi-tag--color-${i}`],a&&!r&&e.default["tedi-tag__close"],l);return t.jsxs("div",{className:d,role:"status","aria-live":r?"polite":void 0,...c,children:[i==="danger"&&t.jsx("div",{className:e.default["tedi-tag__icon-wrapper"],children:t.jsx(g.Icon,{name:"info",color:"danger",size:16,className:e.default["tedi-tag__icon--error"]})}),t.jsx("div",{className:e.default["tedi-tag__content"],children:n}),r&&!a&&t.jsx("div",{className:e.default["tedi-tag__icon-wrapper"],children:t.jsx(f.Spinner,{className:e.default["tedi-tag__loader"]})}),!r&&a&&t.jsx(p.ClosingButton,{iconSize:18,onClick:a})]})};exports.Tag=m;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),g=require("../../../../../external/classnames/index.cjs.js"),p=require("../../base/icon/icon.cjs.js"),f=require("../../buttons/closing-button/closing-button.cjs.js"),_=require("../../loaders/spinner/spinner.cjs.js"),e=require("./tag.module.scss.cjs.js"),m=require("../../../helpers/hooks/use-breakpoint-props.cjs.js"),j=s=>{const{getCurrentBreakpointProps:i}=m.useBreakpointProps(s.defaultServerBreakpoint),{children:n,className:l,onClose:r,closeButtonProps:c,isLoading:a=!1,color:o="primary",...d}=i(s),u=g.default(e.default["tedi-tag"],o&&e.default[`tedi-tag--color-${o}`],r&&!a&&e.default["tedi-tag__close"],l);return t.jsxs("div",{className:u,role:"status","aria-live":a?"polite":void 0,...d,children:[o==="danger"&&t.jsx("div",{className:e.default["tedi-tag__icon-wrapper"],children:t.jsx(p.Icon,{name:"info",color:"danger",size:16,className:e.default["tedi-tag__icon--error"]})}),t.jsx("div",{className:e.default["tedi-tag__content"],children:n}),a&&!r&&t.jsx("div",{className:e.default["tedi-tag__icon-wrapper"],children:t.jsx(_.Spinner,{className:e.default["tedi-tag__loader"]})}),!a&&r&&t.jsx(f.ClosingButton,{iconSize:18,...c,onClick:r})]})};exports.Tag=j;
@@ -1,5 +1,6 @@
1
1
  import { MouseEventHandler } from 'react';
2
2
  import { BreakpointSupport } from '../../../helpers';
3
+ import { ClosingButtonProps } from '../../buttons/closing-button/closing-button';
3
4
  type TagColor = 'primary' | 'secondary' | 'danger';
4
5
  type TagBreakpointProps = {
5
6
  /**
@@ -24,6 +25,13 @@ export interface TagProps extends BreakpointSupport<TagBreakpointProps> {
24
25
  * If provided, a close button will be rendered inside the Tag.
25
26
  */
26
27
  onClose?: MouseEventHandler<HTMLButtonElement>;
28
+ /**
29
+ * Extra props forwarded to the inner close button (when `onClose` is set).
30
+ * Lets consumers wire up keyboard handlers, tab focus, or event isolation
31
+ * without reaching past the Tag API. `onClick` and `iconSize` are owned by
32
+ * Tag and can't be overridden here.
33
+ */
34
+ closeButtonProps?: Omit<ClosingButtonProps, 'onClick' | 'iconSize'>;
27
35
  /**
28
36
  * Determines whether the Tag is in a loading state
29
37
  * @default false
@@ -1,29 +1,30 @@
1
- import { jsxs as d, jsx as o } from "react/jsx-runtime";
2
- import p from "../../../../../external/classnames/index.es.js";
3
- import { Icon as g } from "../../base/icon/icon.es.js";
4
- import { ClosingButton as _ } from "../../buttons/closing-button/closing-button.es.js";
5
- import { Spinner as f } from "../../loaders/spinner/spinner.es.js";
1
+ import { jsxs as p, jsx as o } from "react/jsx-runtime";
2
+ import g from "../../../../../external/classnames/index.es.js";
3
+ import { Icon as _ } from "../../base/icon/icon.es.js";
4
+ import { ClosingButton as f } from "../../buttons/closing-button/closing-button.es.js";
5
+ import { Spinner as N } from "../../loaders/spinner/spinner.es.js";
6
6
  import e from "./tag.module.scss.es.js";
7
- import { useBreakpointProps as N } from "../../../helpers/hooks/use-breakpoint-props.es.js";
7
+ import { useBreakpointProps as u } from "../../../helpers/hooks/use-breakpoint-props.es.js";
8
8
  const S = (a) => {
9
- const { getCurrentBreakpointProps: s } = N(a.defaultServerBreakpoint), {
9
+ const { getCurrentBreakpointProps: s } = u(a.defaultServerBreakpoint), {
10
10
  children: n,
11
11
  className: c,
12
12
  onClose: r,
13
+ closeButtonProps: l,
13
14
  isLoading: t = !1,
14
15
  color: i = "primary",
15
- ...l
16
- } = s(a), m = p(
16
+ ...m
17
+ } = s(a), d = g(
17
18
  e["tedi-tag"],
18
19
  i && e[`tedi-tag--color-${i}`],
19
20
  r && !t && e["tedi-tag__close"],
20
21
  c
21
22
  );
22
- return /* @__PURE__ */ d("div", { className: m, role: "status", "aria-live": t ? "polite" : void 0, ...l, children: [
23
- i === "danger" && /* @__PURE__ */ o("div", { className: e["tedi-tag__icon-wrapper"], children: /* @__PURE__ */ o(g, { name: "info", color: "danger", size: 16, className: e["tedi-tag__icon--error"] }) }),
23
+ return /* @__PURE__ */ p("div", { className: d, role: "status", "aria-live": t ? "polite" : void 0, ...m, children: [
24
+ i === "danger" && /* @__PURE__ */ o("div", { className: e["tedi-tag__icon-wrapper"], children: /* @__PURE__ */ o(_, { name: "info", color: "danger", size: 16, className: e["tedi-tag__icon--error"] }) }),
24
25
  /* @__PURE__ */ o("div", { className: e["tedi-tag__content"], children: n }),
25
- t && !r && /* @__PURE__ */ o("div", { className: e["tedi-tag__icon-wrapper"], children: /* @__PURE__ */ o(f, { className: e["tedi-tag__loader"] }) }),
26
- !t && r && /* @__PURE__ */ o(_, { iconSize: 18, onClick: r })
26
+ t && !r && /* @__PURE__ */ o("div", { className: e["tedi-tag__icon-wrapper"], children: /* @__PURE__ */ o(N, { className: e["tedi-tag__loader"] }) }),
27
+ !t && r && /* @__PURE__ */ o(f, { iconSize: 18, ...l, onClick: r })
27
28
  ] });
28
29
  };
29
30
  export {