@camunda/design-system 0.42.0 → 0.43.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.
- package/dist/carbon-compat/date-picker.d.ts +18 -0
- package/dist/carbon-compat/date-picker.d.ts.map +1 -1
- package/dist/carbon-compat/date-picker.js +24 -13
- package/dist/carbon-compat/date-picker.js.map +1 -1
- package/dist/carbon-compat/filterable-multi-select.d.ts +6 -1
- package/dist/carbon-compat/filterable-multi-select.d.ts.map +1 -1
- package/dist/carbon-compat/filterable-multi-select.js +19 -5
- package/dist/carbon-compat/filterable-multi-select.js.map +1 -1
- package/dist/carbon-compat/link.d.ts.map +1 -1
- package/dist/carbon-compat/link.js +5 -1
- package/dist/carbon-compat/link.js.map +1 -1
- package/dist/carbon-compat/multi-select.d.ts +6 -1
- package/dist/carbon-compat/multi-select.d.ts.map +1 -1
- package/dist/carbon-compat/multi-select.js +19 -5
- package/dist/carbon-compat/multi-select.js.map +1 -1
- package/package.json +1 -1
|
@@ -23,6 +23,24 @@ type CarbonDatePickerProps = {
|
|
|
23
23
|
locale?: string;
|
|
24
24
|
className?: string;
|
|
25
25
|
children?: React.ReactNode;
|
|
26
|
+
/**
|
|
27
|
+
* Range mode only, no Carbon equivalent. Overrides the label composed from
|
|
28
|
+
* the two `DatePickerInput` `labelText`s. Carbon shows one label per field,
|
|
29
|
+
* which composes poorly when those labels are relational ("From" + "To" →
|
|
30
|
+
* "From to To"); set a single label for the one DS control instead.
|
|
31
|
+
*
|
|
32
|
+
* A plain string, like the `labelText`s it replaces: the value becomes the
|
|
33
|
+
* trigger's accessible name, and a node that renders to nothing would leave
|
|
34
|
+
* the control unnamed. The children are still read for `id`, `placeholder`
|
|
35
|
+
* and `disabled`.
|
|
36
|
+
*/
|
|
37
|
+
rangeLabel?: string;
|
|
38
|
+
/**
|
|
39
|
+
* Range mode only, no Carbon equivalent. Word joining the two composed
|
|
40
|
+
* `labelText`s. Defaults to the English "to" — set it to keep a localized
|
|
41
|
+
* label from mixing languages.
|
|
42
|
+
*/
|
|
43
|
+
rangeLabelSeparator?: string;
|
|
26
44
|
allowInput?: boolean;
|
|
27
45
|
closeOnSelect?: boolean;
|
|
28
46
|
short?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-picker.d.ts","sourceRoot":"","sources":["../../carbon-compat/date-picker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA+E/B,KAAK,0BAA0B,GAAG;IAChC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,cAAc,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IAC1C,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IACjD,QAAQ,CAAC,EAAE,CACT,aAAa,EAAE,IAAI,EAAE,EACrB,OAAO,EAAE,MAAM,EAEf,QAAQ,CAAC,EAAE,SAAS,KACjB,IAAI,CAAC;IACV,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"date-picker.d.ts","sourceRoot":"","sources":["../../carbon-compat/date-picker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA+E/B,KAAK,0BAA0B,GAAG;IAChC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,cAAc,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IAC1C,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IACjD,QAAQ,CAAC,EAAE,CACT,aAAa,EAAE,IAAI,EAAE,EACrB,OAAO,EAAE,MAAM,EAEf,QAAQ,CAAC,EAAE,SAAS,KACjB,IAAI,CAAC;IACV,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;;;;;;;;;OAUG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAmDF,iBAAS,UAAU,CAAC,KAAK,EAAE,qBAAqB,qBA0L/C;AAED;;;;GAIG;AACH,iBAAS,eAAe,CAAC,MAAM,EAAE,0BAA0B,QAE1D;kBAFQ,eAAe;;;AAKxB,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC;AACvC,YAAY,EACV,qBAAqB,IAAI,eAAe,EACxC,0BAA0B,IAAI,oBAAoB,GACnD,CAAC"}
|
|
@@ -3,7 +3,7 @@ import * as React from "react";
|
|
|
3
3
|
import { format as formatDate, parse as parseDate } from "date-fns";
|
|
4
4
|
import { DatePicker as DsDatePicker } from "../src/components/ui/date-picker.js";
|
|
5
5
|
import { DateRangePicker as DsDateRangePicker } from "../src/components/ui/date-range-picker.js";
|
|
6
|
-
import {
|
|
6
|
+
import { Text } from "../src/components/ui/typography.js";
|
|
7
7
|
import { warnDroppedProps } from "../src/lib/utils.js";
|
|
8
8
|
/**
|
|
9
9
|
* carbon-compat DatePicker — REMAPs Carbon's flatpickr-based compound API
|
|
@@ -95,15 +95,21 @@ function findAllInputProps(children) {
|
|
|
95
95
|
walk(children);
|
|
96
96
|
return found;
|
|
97
97
|
}
|
|
98
|
-
function composeRangeLabel(startLabel, endLabel) {
|
|
98
|
+
function composeRangeLabel(startLabel, endLabel, separator) {
|
|
99
99
|
const start = typeof startLabel === "string" ? startLabel : undefined;
|
|
100
100
|
const end = typeof endLabel === "string" ? endLabel : undefined;
|
|
101
|
+
// filter+join rather than interpolation so an empty separator doesn't leave a
|
|
102
|
+
// double space between the two labels.
|
|
101
103
|
if (start && end)
|
|
102
|
-
return
|
|
104
|
+
return [start, separator, end].filter(Boolean).join(" ");
|
|
103
105
|
return start ?? end;
|
|
104
106
|
}
|
|
105
107
|
function DatePicker(props) {
|
|
106
|
-
|
|
108
|
+
// Stable fallback id so a rendered label is always wired to the control:
|
|
109
|
+
// Carbon takes the id from `DatePickerInput`, but `rangeLabel` consumers have
|
|
110
|
+
// no reason to pass children at all.
|
|
111
|
+
const reactId = React.useId();
|
|
112
|
+
const { datePickerType = "single", dateFormat, value, defaultValue, onChange, minDate, maxDate, disabled, className, children, rangeLabel, rangeLabelSeparator = "to", allowInput, closeOnSelect, short, light, appendTo, inline, readOnly, locale, } = props;
|
|
107
113
|
warnDroppedProps("DatePicker", {
|
|
108
114
|
allowInput,
|
|
109
115
|
closeOnSelect,
|
|
@@ -133,24 +139,29 @@ function DatePicker(props) {
|
|
|
133
139
|
const dateStr = dates.map((d) => formatDate(d, fnsFormat)).join(" to ");
|
|
134
140
|
onChange(dates, dateStr, undefined);
|
|
135
141
|
};
|
|
136
|
-
//
|
|
137
|
-
//
|
|
138
|
-
//
|
|
139
|
-
const composedLabel =
|
|
140
|
-
|
|
142
|
+
// Range mode renders one control but Carbon supplies two labelTexts, so
|
|
143
|
+
// compose them into a single accessible name rather than dropping one or
|
|
144
|
+
// arbitrarily picking one. `rangeLabel` replaces the composition outright.
|
|
145
|
+
const composedLabel = rangeLabel ??
|
|
146
|
+
composeRangeLabel(startInput.labelText, endInput.labelText, rangeLabelSeparator);
|
|
147
|
+
const labelId = `${startInput.id ?? reactId}-label`;
|
|
141
148
|
const hasLabel = composedLabel != null && composedLabel !== "";
|
|
142
149
|
const rangePicker = (_jsx(DsDateRangePicker, { value: rangeValue, defaultValue: rangeDefault, onChange: handleRangeChange, format: fnsFormat, disabled: disabled || startInput.disabled || endInput.disabled, id: startInput.id, placeholder: startInput.placeholder,
|
|
143
150
|
// Real fromDate/toDate validation — unlike single-mode's inert
|
|
144
151
|
// data-carbon-compat-* placeholders below, DateRangePicker forwards
|
|
145
152
|
// these straight to Calendar's `disabled` matcher.
|
|
146
|
-
fromDate: min, toDate: max, "aria-labelledby": hasLabel
|
|
153
|
+
fromDate: min, toDate: max, "aria-labelledby": hasLabel ? labelId : undefined, className: className }));
|
|
147
154
|
if (!hasLabel)
|
|
148
155
|
return rangePicker;
|
|
149
|
-
return (_jsxs("div", { className: "
|
|
156
|
+
return (_jsxs("div", { className: "flex flex-col gap-1", children: [_jsx(Text, { as: "label", id: labelId, htmlFor: startInput.id, variant: "label-md-strong", children: composedLabel }), rangePicker] }));
|
|
150
157
|
}
|
|
151
158
|
if (allInputs.length > 1 && process.env.NODE_ENV !== "production") {
|
|
152
159
|
console.warn(`[carbon-compat/DatePicker] Found ${allInputs.length} <DatePickerInput> children under datePickerType='${datePickerType}' — only the first is used. Use datePickerType='range' for two-input usage.`);
|
|
153
160
|
}
|
|
161
|
+
if ((rangeLabel !== undefined || rangeLabelSeparator !== "to") &&
|
|
162
|
+
process.env.NODE_ENV !== "production") {
|
|
163
|
+
console.warn(`[carbon-compat/DatePicker] \`rangeLabel\`/\`rangeLabelSeparator\` only apply to datePickerType='range' — ignored for '${datePickerType}'. Use the <DatePickerInput> \`labelText\` instead.`);
|
|
164
|
+
}
|
|
154
165
|
const inputProps = allInputs[0] ?? {};
|
|
155
166
|
const firstValue = Array.isArray(value) ? value[0] : value;
|
|
156
167
|
const firstDefault = Array.isArray(defaultValue)
|
|
@@ -166,7 +177,7 @@ function DatePicker(props) {
|
|
|
166
177
|
};
|
|
167
178
|
// Carbon's <DatePickerInput> rendered the input chrome including a visible
|
|
168
179
|
// <label>. The DS-native <DatePicker> is just a button trigger, so we
|
|
169
|
-
// render a
|
|
180
|
+
// render a label above it to preserve the labelText. Falls through to
|
|
170
181
|
// aria-labelledby when a label is rendered, or aria-label as a fallback
|
|
171
182
|
// for ReactNode labelText.
|
|
172
183
|
const labelId = inputProps.id ? `${inputProps.id}-label` : undefined;
|
|
@@ -179,7 +190,7 @@ function DatePicker(props) {
|
|
|
179
190
|
: undefined, className: className, "data-carbon-compat-mindate": min ? formatDate(min, fnsFormat) : undefined, "data-carbon-compat-maxdate": max ? formatDate(max, fnsFormat) : undefined }));
|
|
180
191
|
if (!hasLabel)
|
|
181
192
|
return picker;
|
|
182
|
-
return (_jsxs("div", { className: "
|
|
193
|
+
return (_jsxs("div", { className: "flex flex-col gap-1", children: [_jsx(Text, { as: "label", id: labelId, htmlFor: inputProps.id, variant: "label-md-strong", children: inputProps.labelText }), picker] }));
|
|
183
194
|
}
|
|
184
195
|
/**
|
|
185
196
|
* Marker component. In Carbon this rendered the input chrome; in the DS path
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-picker.js","sourceRoot":"","sources":["../../carbon-compat/date-picker.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,UAAU,CAAC;AAGpE,OAAO,EAAE,UAAU,IAAI,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,eAAe,IAAI,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC9F,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"date-picker.js","sourceRoot":"","sources":["../../carbon-compat/date-picker.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,UAAU,CAAC;AAGpE,OAAO,EAAE,UAAU,IAAI,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,eAAe,IAAI,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC9F,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,iEAAiE;AACjE,MAAM,qBAAqB,GAA2B;IACpD,OAAO,EAAE,YAAY;IACrB,OAAO,EAAE,YAAY;IACrB,OAAO,EAAE,YAAY;IACrB,OAAO,EAAE,YAAY;CACtB,CAAC;AAEF,SAAS,eAAe,CAAC,SAA6B;IACpD,IAAI,CAAC,SAAS;QAAE,OAAO,YAAY,CAAC;IACpC,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAChD,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;QAC1C,OAAO,CAAC,IAAI,CACV,yDAAyD,SAAS,oGAAoG,CACvK,CAAC;IACJ,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,eAAe,CACtB,GAAqC,EACrC,MAAc;IAEd,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IAChD,IAAI,GAAG,YAAY,IAAI;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;IACvE,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IAC1D,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;AACtD,CAAC;AAED,SAAS,gBAAgB,CACvB,GAAkD,EAClD,MAAc;IAEd,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACrE,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC9C,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;AACtD,CAAC;AA4DD;;;;;;;GAOG;AACH,SAAS,iBAAiB,CACxB,QAAyB;IAEzB,MAAM,KAAK,GAAiC,EAAE,CAAC;IAE/C,SAAS,IAAI,CAAC,IAAqB;QACjC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;YACrC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;gBAAE,OAAO;YACzC,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAClC,IAAI,CACD,KAAK,CAAC,KAAoD,EAAE,QAAQ,CACtE,CAAC;gBACF,OAAO;YACT,CAAC;YACD,IACE,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU;gBAC/B,KAAK,CAAC,IAAiC,CAAC,WAAW;oBAClD,iBAAiB,EACnB,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAA+B,CAAC,CAAC;YAChE,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,CAAC;IACf,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,iBAAiB,CACxB,UAA2B,EAC3B,QAAyB,EACzB,SAAiB;IAEjB,MAAM,KAAK,GAAG,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IACtE,MAAM,GAAG,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAChE,8EAA8E;IAC9E,uCAAuC;IACvC,IAAI,KAAK,IAAI,GAAG;QAAE,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3E,OAAO,KAAK,IAAI,GAAG,CAAC;AACtB,CAAC;AAED,SAAS,UAAU,CAAC,KAA4B;IAC9C,yEAAyE;IACzE,8EAA8E;IAC9E,qCAAqC;IACrC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAC9B,MAAM,EACJ,cAAc,GAAG,QAAQ,EACzB,UAAU,EACV,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,OAAO,EACP,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,UAAU,EACV,mBAAmB,GAAG,IAAI,EAC1B,UAAU,EACV,aAAa,EACb,KAAK,EACL,KAAK,EACL,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,MAAM,GACP,GAAG,KAAK,CAAC;IAEV,gBAAgB,CAAC,YAAY,EAAE;QAC7B,UAAU;QACV,aAAa;QACb,KAAK;QACL,KAAK;QACL,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,MAAM;KACP,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAE9C,MAAM,GAAG,GAAG,eAAe,CACzB,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,YAAY,IAAI;QACpD,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,SAAS,EACb,SAAS,CACV,CAAC;IACF,MAAM,GAAG,GAAG,eAAe,CACzB,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,YAAY,IAAI;QACpD,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,SAAS,EACb,SAAS,CACV,CAAC;IAEF,IAAI,cAAc,KAAK,OAAO,EAAE,CAAC;QAC/B,MAAM,CAAC,UAAU,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,CAAC,GAAG,SAAS,CAAC;QAEnD,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACtD,MAAM,YAAY,GAAG,gBAAgB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAE/D,MAAM,iBAAiB,GAAG,CAAC,KAA4B,EAAE,EAAE;YACzD,IAAI,CAAC,QAAQ;gBAAE,OAAO;YACtB,MAAM,KAAK,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,CAC3C,CAAC,CAAC,EAAa,EAAE,CAAC,CAAC,IAAI,IAAI,CAC5B,CAAC;YACF,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACxE,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QACtC,CAAC,CAAC;QAEF,wEAAwE;QACxE,yEAAyE;QACzE,2EAA2E;QAC3E,MAAM,aAAa,GACjB,UAAU;YACV,iBAAiB,CACf,UAAU,CAAC,SAAS,EACpB,QAAQ,CAAC,SAAS,EAClB,mBAAmB,CACpB,CAAC;QACJ,MAAM,OAAO,GAAG,GAAG,UAAU,CAAC,EAAE,IAAI,OAAO,QAAQ,CAAC;QACpD,MAAM,QAAQ,GAAG,aAAa,IAAI,IAAI,IAAI,aAAa,KAAK,EAAE,CAAC;QAE/D,MAAM,WAAW,GAAG,CAClB,KAAC,iBAAiB,IAChB,KAAK,EAAE,UAAU,EACjB,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,iBAAiB,EAC3B,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,QAAQ,IAAI,UAAU,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,EAC9D,EAAE,EAAE,UAAU,CAAC,EAAE,EACjB,WAAW,EAAE,UAAU,CAAC,WAAW;YACnC,+DAA+D;YAC/D,oEAAoE;YACpE,mDAAmD;YACnD,QAAQ,EAAE,GAAG,EACb,MAAM,EAAE,GAAG,qBACM,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAC/C,SAAS,EAAE,SAAS,GACpB,CACH,CAAC;QAEF,IAAI,CAAC,QAAQ;YAAE,OAAO,WAAW,CAAC;QAElC,OAAO,CACL,eAAK,SAAS,EAAC,qBAAqB,aAClC,KAAC,IAAI,IAAC,EAAE,EAAC,OAAO,EAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,EAAC,iBAAiB,YAC5E,aAAa,GACT,EACN,WAAW,IACR,CACP,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;QAClE,OAAO,CAAC,IAAI,CACV,oCAAoC,SAAS,CAAC,MAAM,qDAAqD,cAAc,6EAA6E,CACrM,CAAC;IACJ,CAAC;IAED,IACE,CAAC,UAAU,KAAK,SAAS,IAAI,mBAAmB,KAAK,IAAI,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EACrC,CAAC;QACD,OAAO,CAAC,IAAI,CACV,yHAAyH,cAAc,qDAAqD,CAC7L,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAEtC,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC3D,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;QAC9C,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;QACjB,CAAC,CAAC,YAAY,CAAC;IAEjB,MAAM,WAAW,GAAG,eAAe,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAC3D,MAAM,aAAa,GAAG,eAAe,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IAE/D,MAAM,YAAY,GAAG,CAAC,IAAsB,EAAE,EAAE;QAC9C,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACnD,CAAC,CAAC;IAEF,2EAA2E;IAC3E,sEAAsE;IACtE,sEAAsE;IACtE,wEAAwE;IACxE,2BAA2B;IAC3B,MAAM,OAAO,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,IAAI,IAAI,IAAI,UAAU,CAAC,SAAS,KAAK,EAAE,CAAC;IAE7E,wEAAwE;IACxE,wEAAwE;IACxE,4DAA4D;IAC5D,MAAM,MAAM,GAAG,CACb,KAAC,YAAY,IACX,KAAK,EAAE,WAAW,EAClB,YAAY,EAAE,aAAa,EAC3B,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,QAAQ,IAAI,UAAU,CAAC,QAAQ,EACzC,EAAE,EAAE,UAAU,CAAC,EAAE,EACjB,WAAW,EAAE,UAAU,CAAC,WAAW,qBAClB,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,gBAExD,CAAC,QAAQ,IAAI,OAAO,UAAU,CAAC,SAAS,KAAK,QAAQ;YACnD,CAAC,CAAC,UAAU,CAAC,SAAS;YACtB,CAAC,CAAC,SAAS,EAEf,SAAS,EAAE,SAAS,gCACQ,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,gCAC5C,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,GACxE,CACH,CAAC;IAEF,IAAI,CAAC,QAAQ;QAAE,OAAO,MAAM,CAAC;IAE7B,OAAO,CACL,eAAK,SAAS,EAAC,qBAAqB,aAClC,KAAC,IAAI,IAAC,EAAE,EAAC,OAAO,EAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,EAAC,iBAAiB,YAC5E,UAAU,CAAC,SAAS,GAChB,EACN,MAAM,IACH,CACP,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,MAAkC;IACzD,OAAO,IAAI,CAAC;AACd,CAAC;AACD,eAAe,CAAC,WAAW,GAAG,iBAAiB,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -5,6 +5,11 @@ export interface FilterableMultiSelectProps<ItemType = AnyItem> {
|
|
|
5
5
|
items: ItemType[];
|
|
6
6
|
itemToString?: (item: ItemType | null) => string;
|
|
7
7
|
initialSelectedItems?: ItemType[];
|
|
8
|
+
/**
|
|
9
|
+
* Controlled selection, as in Carbon. Mutually exclusive with
|
|
10
|
+
* `initialSelectedItems`: when set, the consumer owns the value and it wins.
|
|
11
|
+
*/
|
|
12
|
+
selectedItems?: ItemType[];
|
|
8
13
|
onChange?: (data: {
|
|
9
14
|
selectedItems: ItemType[];
|
|
10
15
|
}) => void;
|
|
@@ -34,6 +39,6 @@ export interface FilterableMultiSelectProps<ItemType = AnyItem> {
|
|
|
34
39
|
ariaLabel?: string;
|
|
35
40
|
[key: string]: unknown;
|
|
36
41
|
}
|
|
37
|
-
declare function FilterableMultiSelect<ItemType extends AnyItem>({ id, items, itemToString, initialSelectedItems, onChange, titleText, label, disabled, invalid: _invalid, invalidText: _invalidText, warn: _warn, warnText: _warnText, helperText: _helperText, light: _light, size: _size, direction: _direction, sortItems: _sortItems, compareItems: _compareItems, locale: _locale, filterItems: _filterItems, downshiftProps: _downshiftProps, type: _type, selectionFeedback: _selectionFeedback, useTitleInItem: _useTitleInItem, translateWithId: _translateWithId, autoAlign: _autoAlign, className: _className, "aria-label": _ariaLabel, ariaLabel: _ariaLabelLegacy, ...rest }: FilterableMultiSelectProps<ItemType>): React.JSX.Element;
|
|
42
|
+
declare function FilterableMultiSelect<ItemType extends AnyItem>({ id, items, itemToString, initialSelectedItems, selectedItems, onChange, titleText, label, disabled, invalid: _invalid, invalidText: _invalidText, warn: _warn, warnText: _warnText, helperText: _helperText, light: _light, size: _size, direction: _direction, sortItems: _sortItems, compareItems: _compareItems, locale: _locale, filterItems: _filterItems, downshiftProps: _downshiftProps, type: _type, selectionFeedback: _selectionFeedback, useTitleInItem: _useTitleInItem, translateWithId: _translateWithId, autoAlign: _autoAlign, className: _className, "aria-label": _ariaLabel, ariaLabel: _ariaLabelLegacy, ...rest }: FilterableMultiSelectProps<ItemType>): React.JSX.Element;
|
|
38
43
|
export { FilterableMultiSelect };
|
|
39
44
|
//# sourceMappingURL=filterable-multi-select.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filterable-multi-select.d.ts","sourceRoot":"","sources":["../../carbon-compat/filterable-multi-select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,KAAK,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAIvC,MAAM,WAAW,0BAA0B,CAAC,QAAQ,GAAG,OAAO;IAC5D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,KAAK,MAAM,CAAC;IACjD,oBAAoB,CAAC,EAAE,QAAQ,EAAE,CAAC;IAClC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,aAAa,EAAE,QAAQ,EAAE,CAAA;KAAE,KAAK,IAAI,CAAC;IACzD,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAWD,iBAAS,qBAAqB,CAAC,QAAQ,SAAS,OAAO,EAAE,EACvD,EAAE,EACF,KAAK,EACL,YAAY,EACZ,oBAAoB,EACpB,QAAQ,EACR,SAAS,EACT,KAAK,EACL,QAAQ,EACR,OAAO,EAAE,QAAQ,EACjB,WAAW,EAAE,YAAY,EACzB,IAAI,EAAE,KAAK,EACX,QAAQ,EAAE,SAAS,EACnB,UAAU,EAAE,WAAW,EACvB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,KAAK,EACX,SAAS,EAAE,UAAU,EACrB,SAAS,EAAE,UAAU,EACrB,YAAY,EAAE,aAAa,EAC3B,MAAM,EAAE,OAAO,EACf,WAAW,EAAE,YAAY,EACzB,cAAc,EAAE,eAAe,EAC/B,IAAI,EAAE,KAAK,EACX,iBAAiB,EAAE,kBAAkB,EACrC,cAAc,EAAE,eAAe,EAC/B,eAAe,EAAE,gBAAgB,EACjC,SAAS,EAAE,UAAU,EACrB,SAAS,EAAE,UAAU,EACrB,YAAY,EAAE,UAAU,EACxB,SAAS,EAAE,gBAAgB,EAC3B,GAAG,IAAI,EACR,EAAE,0BAA0B,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"filterable-multi-select.d.ts","sourceRoot":"","sources":["../../carbon-compat/filterable-multi-select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,KAAK,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAIvC,MAAM,WAAW,0BAA0B,CAAC,QAAQ,GAAG,OAAO;IAC5D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,KAAK,MAAM,CAAC;IACjD,oBAAoB,CAAC,EAAE,QAAQ,EAAE,CAAC;IAClC;;;OAGG;IACH,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,aAAa,EAAE,QAAQ,EAAE,CAAA;KAAE,KAAK,IAAI,CAAC;IACzD,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAWD,iBAAS,qBAAqB,CAAC,QAAQ,SAAS,OAAO,EAAE,EACvD,EAAE,EACF,KAAK,EACL,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,QAAQ,EACR,SAAS,EACT,KAAK,EACL,QAAQ,EACR,OAAO,EAAE,QAAQ,EACjB,WAAW,EAAE,YAAY,EACzB,IAAI,EAAE,KAAK,EACX,QAAQ,EAAE,SAAS,EACnB,UAAU,EAAE,WAAW,EACvB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,KAAK,EACX,SAAS,EAAE,UAAU,EACrB,SAAS,EAAE,UAAU,EACrB,YAAY,EAAE,aAAa,EAC3B,MAAM,EAAE,OAAO,EACf,WAAW,EAAE,YAAY,EACzB,cAAc,EAAE,eAAe,EAC/B,IAAI,EAAE,KAAK,EACX,iBAAiB,EAAE,kBAAkB,EACrC,cAAc,EAAE,eAAe,EAC/B,eAAe,EAAE,gBAAgB,EACjC,SAAS,EAAE,UAAU,EACrB,SAAS,EAAE,UAAU,EACrB,YAAY,EAAE,UAAU,EACxB,SAAS,EAAE,gBAAgB,EAC3B,GAAG,IAAI,EACR,EAAE,0BAA0B,CAAC,QAAQ,CAAC,qBAkFtC;AAED,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
|
|
@@ -14,7 +14,7 @@ function defaultItemToString(item) {
|
|
|
14
14
|
}
|
|
15
15
|
// @deprecated — transitional adapter. Replace with DS MultiSelect when migrating off Carbon.
|
|
16
16
|
// REMAP: FilterableMultiSelect → DS MultiSelect (searchable=true by default)
|
|
17
|
-
function FilterableMultiSelect({ id, items, itemToString, initialSelectedItems, onChange, titleText, label, disabled, invalid: _invalid, invalidText: _invalidText, warn: _warn, warnText: _warnText, helperText: _helperText, light: _light, size: _size, direction: _direction, sortItems: _sortItems, compareItems: _compareItems, locale: _locale, filterItems: _filterItems, downshiftProps: _downshiftProps, type: _type, selectionFeedback: _selectionFeedback, useTitleInItem: _useTitleInItem, translateWithId: _translateWithId, autoAlign: _autoAlign, className: _className, "aria-label": _ariaLabel, ariaLabel: _ariaLabelLegacy, ...rest }) {
|
|
17
|
+
function FilterableMultiSelect({ id, items, itemToString, initialSelectedItems, selectedItems, onChange, titleText, label, disabled, invalid: _invalid, invalidText: _invalidText, warn: _warn, warnText: _warnText, helperText: _helperText, light: _light, size: _size, direction: _direction, sortItems: _sortItems, compareItems: _compareItems, locale: _locale, filterItems: _filterItems, downshiftProps: _downshiftProps, type: _type, selectionFeedback: _selectionFeedback, useTitleInItem: _useTitleInItem, translateWithId: _translateWithId, autoAlign: _autoAlign, className: _className, "aria-label": _ariaLabel, ariaLabel: _ariaLabelLegacy, ...rest }) {
|
|
18
18
|
warnDroppedProps("FilterableMultiSelect", {
|
|
19
19
|
invalid: _invalid,
|
|
20
20
|
invalidText: _invalidText,
|
|
@@ -34,6 +34,11 @@ function FilterableMultiSelect({ id, items, itemToString, initialSelectedItems,
|
|
|
34
34
|
useTitleInItem: _useTitleInItem,
|
|
35
35
|
...rest,
|
|
36
36
|
});
|
|
37
|
+
if (selectedItems !== undefined &&
|
|
38
|
+
initialSelectedItems !== undefined &&
|
|
39
|
+
process.env.NODE_ENV !== "production") {
|
|
40
|
+
console.warn("[carbon-compat/FilterableMultiSelect] `selectedItems` and `initialSelectedItems` are mutually exclusive — `selectedItems` wins and the control stays controlled.");
|
|
41
|
+
}
|
|
37
42
|
const toString = itemToString ??
|
|
38
43
|
defaultItemToString;
|
|
39
44
|
const dsOptions = items.map((item) => ({
|
|
@@ -41,15 +46,24 @@ function FilterableMultiSelect({ id, items, itemToString, initialSelectedItems,
|
|
|
41
46
|
label: toString(item),
|
|
42
47
|
}));
|
|
43
48
|
const defaultValue = initialSelectedItems?.map((item) => toString(item));
|
|
49
|
+
// Controlled when `selectedItems` is supplied; `undefined` leaves the DS
|
|
50
|
+
// control uncontrolled so `defaultValue` keeps driving it.
|
|
51
|
+
const value = selectedItems?.map((item) => toString(item));
|
|
52
|
+
// A selected item need not be in `items` — `items` can be async, paginated or
|
|
53
|
+
// server-filtered. Resolve against the current selection too, so interacting
|
|
54
|
+
// with the control doesn't drop the entries it can't find and hand the
|
|
55
|
+
// consumer back a truncated selection to write into its state.
|
|
56
|
+
const selectionPool = selectedItems ?? initialSelectedItems ?? [];
|
|
44
57
|
function handleValueChange(values) {
|
|
45
58
|
if (!onChange)
|
|
46
59
|
return;
|
|
47
|
-
const
|
|
48
|
-
.map((v) => items.find((item) => toString(item) === v)
|
|
60
|
+
const next = values
|
|
61
|
+
.map((v) => items.find((item) => toString(item) === v) ??
|
|
62
|
+
selectionPool.find((item) => toString(item) === v))
|
|
49
63
|
.filter((item) => item !== undefined);
|
|
50
|
-
onChange({ selectedItems });
|
|
64
|
+
onChange({ selectedItems: next });
|
|
51
65
|
}
|
|
52
|
-
return (_jsxs("div", { className: "flex flex-col gap-1", children: [titleText !== undefined ? (_jsx(Text, { as: "label", htmlFor: id, variant: "label-md-strong", children: titleText })) : null, _jsx(MultiSelect, { id: id, options: dsOptions, defaultValue: defaultValue, onValueChange: handleValueChange, placeholder: label, disabled: disabled, searchable: true })] }));
|
|
66
|
+
return (_jsxs("div", { className: "flex flex-col gap-1", children: [titleText !== undefined ? (_jsx(Text, { as: "label", htmlFor: id, variant: "label-md-strong", children: titleText })) : null, _jsx(MultiSelect, { id: id, options: dsOptions, value: value, defaultValue: defaultValue, onValueChange: handleValueChange, placeholder: label, disabled: disabled, searchable: true })] }));
|
|
53
67
|
}
|
|
54
68
|
export { FilterableMultiSelect };
|
|
55
69
|
//# sourceMappingURL=filterable-multi-select.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filterable-multi-select.js","sourceRoot":"","sources":["../../carbon-compat/filterable-multi-select.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"filterable-multi-select.js","sourceRoot":"","sources":["../../carbon-compat/filterable-multi-select.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../carbon-compat/link.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,IAAI,eAAe,EAAE,MAAM,eAAe,CAAC;AAMlE,MAAM,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;AAQ7C;;;;;;;;;;;;;GAaG;AACH,iBAAS,IAAI,CAAC,EACZ,IAAW,EACX,QAAQ,EACR,MAAM,EACN,UAAU,EACV,SAAS,EACT,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,SAAS,+
|
|
1
|
+
{"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../carbon-compat/link.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,IAAI,eAAe,EAAE,MAAM,eAAe,CAAC;AAMlE,MAAM,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;AAQ7C;;;;;;;;;;;;;GAaG;AACH,iBAAS,IAAI,CAAC,EACZ,IAAW,EACX,QAAQ,EACR,MAAM,EACN,UAAU,EACV,SAAS,EACT,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,SAAS,+BAqBX;AAED,OAAO,EAAE,IAAI,EAAE,CAAC"}
|
|
@@ -21,7 +21,11 @@ const SIZE_CLASS = {
|
|
|
21
21
|
*/
|
|
22
22
|
function Link({ size = "md", disabled, inline, renderIcon, className, children, ...rest }) {
|
|
23
23
|
warnDroppedProps("Link", { inline });
|
|
24
|
-
return (_jsxs("a", { "data-slot": "carbon-compat-link", "aria-disabled": disabled || undefined, className: cn(
|
|
24
|
+
return (_jsxs("a", { "data-slot": "carbon-compat-link", "aria-disabled": disabled || undefined, className: cn(
|
|
25
|
+
// The ring (rather than the browser default outline) is what makes the focus state legible
|
|
26
|
+
// in a Carbon-styled host, where a global `:focus { outline: … var(--cds-focus) }` would
|
|
27
|
+
// otherwise paint Carbon's blue over an otherwise DS-styled link.
|
|
28
|
+
"inline-flex items-center gap-1 rounded-sm text-info-action-default underline-offset-2 hover:underline focus-visible:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", SIZE_CLASS[size], disabled && "pointer-events-none opacity-50", className), ...rest, children: [renderIcon && renderIconNode(renderIcon), children] }));
|
|
25
29
|
}
|
|
26
30
|
export { Link };
|
|
27
31
|
//# sourceMappingURL=link.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link.js","sourceRoot":"","sources":["../../carbon-compat/link.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAMxE,MAAM,UAAU,GAAuC;IACrD,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,WAAW;CAChB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,SAAS,IAAI,CAAC,EACZ,IAAI,GAAG,IAAI,EACX,QAAQ,EACR,MAAM,EACN,UAAU,EACV,SAAS,EACT,QAAQ,EACR,GAAG,IAAI,EACG;IACV,gBAAgB,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACrC,OAAO,CACL,0BACY,oBAAoB,mBACf,QAAQ,IAAI,SAAS,EACpC,SAAS,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"link.js","sourceRoot":"","sources":["../../carbon-compat/link.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAMxE,MAAM,UAAU,GAAuC;IACrD,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,WAAW;CAChB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,SAAS,IAAI,CAAC,EACZ,IAAI,GAAG,IAAI,EACX,QAAQ,EACR,MAAM,EACN,UAAU,EACV,SAAS,EACT,QAAQ,EACR,GAAG,IAAI,EACG;IACV,gBAAgB,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACrC,OAAO,CACL,0BACY,oBAAoB,mBACf,QAAQ,IAAI,SAAS,EACpC,SAAS,EAAE,EAAE;QACX,2FAA2F;QAC3F,yFAAyF;QACzF,kEAAkE;QAClE,uMAAuM,EACvM,UAAU,CAAC,IAAI,CAAC,EAChB,QAAQ,IAAI,gCAAgC,EAC5C,SAAS,CACV,KACG,IAAI,aAEP,UAAU,IAAI,cAAc,CAAC,UAAU,CAAC,EACxC,QAAQ,IACP,CACL,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,IAAI,EAAE,CAAC"}
|
|
@@ -5,6 +5,11 @@ export interface MultiSelectProps<ItemType extends AnyItem = AnyItem> {
|
|
|
5
5
|
items: ItemType[];
|
|
6
6
|
itemToString?: (item: ItemType | null) => string;
|
|
7
7
|
initialSelectedItems?: ItemType[];
|
|
8
|
+
/**
|
|
9
|
+
* Controlled selection, as in Carbon. Mutually exclusive with
|
|
10
|
+
* `initialSelectedItems`: when set, the consumer owns the value and it wins.
|
|
11
|
+
*/
|
|
12
|
+
selectedItems?: ItemType[];
|
|
8
13
|
onChange?: (data: {
|
|
9
14
|
selectedItems: ItemType[];
|
|
10
15
|
}) => void;
|
|
@@ -33,6 +38,6 @@ export interface MultiSelectProps<ItemType extends AnyItem = AnyItem> {
|
|
|
33
38
|
ariaLabel?: string;
|
|
34
39
|
[key: string]: unknown;
|
|
35
40
|
}
|
|
36
|
-
declare function MultiSelect<ItemType extends AnyItem>({ id, items, itemToString, initialSelectedItems, onChange, titleText, label, disabled, invalid: _invalid, invalidText: _invalidText, warn: _warn, warnText: _warnText, helperText: _helperText, light: _light, size: _size, direction: _direction, sortItems: _sortItems, compareItems: _compareItems, locale: _locale, downshiftProps: _downshiftProps, type: _type, selectionFeedback: _selectionFeedback, useTitleInItem: _useTitleInItem, translateWithId: _translateWithId, autoAlign: _autoAlign, className: _className, "aria-label": _ariaLabel, ariaLabel: _ariaLabelLegacy, ...rest }: MultiSelectProps<ItemType>): React.JSX.Element;
|
|
41
|
+
declare function MultiSelect<ItemType extends AnyItem>({ id, items, itemToString, initialSelectedItems, selectedItems, onChange, titleText, label, disabled, invalid: _invalid, invalidText: _invalidText, warn: _warn, warnText: _warnText, helperText: _helperText, light: _light, size: _size, direction: _direction, sortItems: _sortItems, compareItems: _compareItems, locale: _locale, downshiftProps: _downshiftProps, type: _type, selectionFeedback: _selectionFeedback, useTitleInItem: _useTitleInItem, translateWithId: _translateWithId, autoAlign: _autoAlign, className: _className, "aria-label": _ariaLabel, ariaLabel: _ariaLabelLegacy, ...rest }: MultiSelectProps<ItemType>): React.JSX.Element;
|
|
37
42
|
export { MultiSelect };
|
|
38
43
|
//# sourceMappingURL=multi-select.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-select.d.ts","sourceRoot":"","sources":["../../carbon-compat/multi-select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,KAAK,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAGhD,MAAM,WAAW,gBAAgB,CAAC,QAAQ,SAAS,OAAO,GAAG,OAAO;IAClE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,KAAK,MAAM,CAAC;IACjD,oBAAoB,CAAC,EAAE,QAAQ,EAAE,CAAC;IAClC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,aAAa,EAAE,QAAQ,EAAE,CAAA;KAAE,KAAK,IAAI,CAAC;IACzD,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAWD,iBAAS,WAAW,CAAC,QAAQ,SAAS,OAAO,EAAE,EAC7C,EAAE,EACF,KAAK,EACL,YAAY,EACZ,oBAAoB,EACpB,QAAQ,EACR,SAAS,EACT,KAAK,EACL,QAAQ,EACR,OAAO,EAAE,QAAQ,EACjB,WAAW,EAAE,YAAY,EACzB,IAAI,EAAE,KAAK,EACX,QAAQ,EAAE,SAAS,EACnB,UAAU,EAAE,WAAW,EACvB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,KAAK,EACX,SAAS,EAAE,UAAU,EACrB,SAAS,EAAE,UAAU,EACrB,YAAY,EAAE,aAAa,EAC3B,MAAM,EAAE,OAAO,EACf,cAAc,EAAE,eAAe,EAC/B,IAAI,EAAE,KAAK,EACX,iBAAiB,EAAE,kBAAkB,EACrC,cAAc,EAAE,eAAe,EAC/B,eAAe,EAAE,gBAAgB,EACjC,SAAS,EAAE,UAAU,EACrB,SAAS,EAAE,UAAU,EACrB,YAAY,EAAE,UAAU,EACxB,SAAS,EAAE,gBAAgB,EAC3B,GAAG,IAAI,EACR,EAAE,gBAAgB,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"multi-select.d.ts","sourceRoot":"","sources":["../../carbon-compat/multi-select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,KAAK,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAGhD,MAAM,WAAW,gBAAgB,CAAC,QAAQ,SAAS,OAAO,GAAG,OAAO;IAClE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,KAAK,MAAM,CAAC;IACjD,oBAAoB,CAAC,EAAE,QAAQ,EAAE,CAAC;IAClC;;;OAGG;IACH,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,aAAa,EAAE,QAAQ,EAAE,CAAA;KAAE,KAAK,IAAI,CAAC;IACzD,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAWD,iBAAS,WAAW,CAAC,QAAQ,SAAS,OAAO,EAAE,EAC7C,EAAE,EACF,KAAK,EACL,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,QAAQ,EACR,SAAS,EACT,KAAK,EACL,QAAQ,EACR,OAAO,EAAE,QAAQ,EACjB,WAAW,EAAE,YAAY,EACzB,IAAI,EAAE,KAAK,EACX,QAAQ,EAAE,SAAS,EACnB,UAAU,EAAE,WAAW,EACvB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,KAAK,EACX,SAAS,EAAE,UAAU,EACrB,SAAS,EAAE,UAAU,EACrB,YAAY,EAAE,aAAa,EAC3B,MAAM,EAAE,OAAO,EACf,cAAc,EAAE,eAAe,EAC/B,IAAI,EAAE,KAAK,EACX,iBAAiB,EAAE,kBAAkB,EACrC,cAAc,EAAE,eAAe,EAC/B,eAAe,EAAE,gBAAgB,EACjC,SAAS,EAAE,UAAU,EACrB,SAAS,EAAE,UAAU,EACrB,YAAY,EAAE,UAAU,EACxB,SAAS,EAAE,gBAAgB,EAC3B,GAAG,IAAI,EACR,EAAE,gBAAgB,CAAC,QAAQ,CAAC,qBAiF5B;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -14,7 +14,7 @@ function defaultItemToString(item) {
|
|
|
14
14
|
}
|
|
15
15
|
// @deprecated — transitional adapter. Replace with DS MultiSelect when migrating off Carbon.
|
|
16
16
|
// REMAP: Carbon MultiSelect → DS MultiSelect (searchable=false to match Carbon's non-filterable behavior)
|
|
17
|
-
function MultiSelect({ id, items, itemToString, initialSelectedItems, onChange, titleText, label, disabled, invalid: _invalid, invalidText: _invalidText, warn: _warn, warnText: _warnText, helperText: _helperText, light: _light, size: _size, direction: _direction, sortItems: _sortItems, compareItems: _compareItems, locale: _locale, downshiftProps: _downshiftProps, type: _type, selectionFeedback: _selectionFeedback, useTitleInItem: _useTitleInItem, translateWithId: _translateWithId, autoAlign: _autoAlign, className: _className, "aria-label": _ariaLabel, ariaLabel: _ariaLabelLegacy, ...rest }) {
|
|
17
|
+
function MultiSelect({ id, items, itemToString, initialSelectedItems, selectedItems, onChange, titleText, label, disabled, invalid: _invalid, invalidText: _invalidText, warn: _warn, warnText: _warnText, helperText: _helperText, light: _light, size: _size, direction: _direction, sortItems: _sortItems, compareItems: _compareItems, locale: _locale, downshiftProps: _downshiftProps, type: _type, selectionFeedback: _selectionFeedback, useTitleInItem: _useTitleInItem, translateWithId: _translateWithId, autoAlign: _autoAlign, className: _className, "aria-label": _ariaLabel, ariaLabel: _ariaLabelLegacy, ...rest }) {
|
|
18
18
|
warnDroppedProps("MultiSelect", {
|
|
19
19
|
invalid: _invalid,
|
|
20
20
|
invalidText: _invalidText,
|
|
@@ -33,6 +33,11 @@ function MultiSelect({ id, items, itemToString, initialSelectedItems, onChange,
|
|
|
33
33
|
useTitleInItem: _useTitleInItem,
|
|
34
34
|
...rest,
|
|
35
35
|
});
|
|
36
|
+
if (selectedItems !== undefined &&
|
|
37
|
+
initialSelectedItems !== undefined &&
|
|
38
|
+
process.env.NODE_ENV !== "production") {
|
|
39
|
+
console.warn("[carbon-compat/MultiSelect] `selectedItems` and `initialSelectedItems` are mutually exclusive — `selectedItems` wins and the control stays controlled.");
|
|
40
|
+
}
|
|
36
41
|
const toString = itemToString ??
|
|
37
42
|
defaultItemToString;
|
|
38
43
|
const dsOptions = items.map((item) => ({
|
|
@@ -40,15 +45,24 @@ function MultiSelect({ id, items, itemToString, initialSelectedItems, onChange,
|
|
|
40
45
|
label: toString(item),
|
|
41
46
|
}));
|
|
42
47
|
const defaultValue = initialSelectedItems?.map((item) => toString(item));
|
|
48
|
+
// Controlled when `selectedItems` is supplied; `undefined` leaves the DS
|
|
49
|
+
// control uncontrolled so `defaultValue` keeps driving it.
|
|
50
|
+
const value = selectedItems?.map((item) => toString(item));
|
|
51
|
+
// A selected item need not be in `items` — `items` can be async, paginated or
|
|
52
|
+
// server-filtered. Resolve against the current selection too, so interacting
|
|
53
|
+
// with the control doesn't drop the entries it can't find and hand the
|
|
54
|
+
// consumer back a truncated selection to write into its state.
|
|
55
|
+
const selectionPool = selectedItems ?? initialSelectedItems ?? [];
|
|
43
56
|
function handleValueChange(values) {
|
|
44
57
|
if (!onChange)
|
|
45
58
|
return;
|
|
46
|
-
const
|
|
47
|
-
.map((v) => items.find((item) => toString(item) === v)
|
|
59
|
+
const next = values
|
|
60
|
+
.map((v) => items.find((item) => toString(item) === v) ??
|
|
61
|
+
selectionPool.find((item) => toString(item) === v))
|
|
48
62
|
.filter((item) => item !== undefined);
|
|
49
|
-
onChange({ selectedItems });
|
|
63
|
+
onChange({ selectedItems: next });
|
|
50
64
|
}
|
|
51
|
-
return (_jsxs("div", { className: "flex flex-col gap-1", children: [titleText !== undefined ? (_jsx(Text, { as: "label", htmlFor: id, variant: "label-md-strong", children: titleText })) : null, _jsx(DSMultiSelect, { id: id, options: dsOptions, defaultValue: defaultValue, onValueChange: handleValueChange, placeholder: label, disabled: disabled, searchable: false })] }));
|
|
65
|
+
return (_jsxs("div", { className: "flex flex-col gap-1", children: [titleText !== undefined ? (_jsx(Text, { as: "label", htmlFor: id, variant: "label-md-strong", children: titleText })) : null, _jsx(DSMultiSelect, { id: id, options: dsOptions, value: value, defaultValue: defaultValue, onValueChange: handleValueChange, placeholder: label, disabled: disabled, searchable: false })] }));
|
|
52
66
|
}
|
|
53
67
|
export { MultiSelect };
|
|
54
68
|
//# sourceMappingURL=multi-select.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-select.js","sourceRoot":"","sources":["../../carbon-compat/multi-select.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,WAAW,IAAI,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"multi-select.js","sourceRoot":"","sources":["../../carbon-compat/multi-select.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camunda/design-system",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.43.0",
|
|
4
4
|
"description": "Camunda's AI-first design system. shadcn + Tailwind components, design tokens aligned to Camunda's identity, and AI tooling for component authoring + migration.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|