@arbor-education/design-system.components 0.9.0 → 0.10.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/.github/workflows/release.yml +1 -1
- package/CHANGELOG.md +10 -0
- package/dist/components/button/Button.d.ts.map +1 -1
- package/dist/components/button/Button.js +2 -2
- package/dist/components/button/Button.js.map +1 -1
- package/dist/components/combobox/Combobox.d.ts.map +1 -1
- package/dist/components/combobox/Combobox.js +2 -1
- package/dist/components/combobox/Combobox.js.map +1 -1
- package/dist/components/combobox/Combobox.test.js +98 -61
- package/dist/components/combobox/Combobox.test.js.map +1 -1
- package/dist/components/combobox/useComboboxPopoverBehavior.d.ts +3 -1
- package/dist/components/combobox/useComboboxPopoverBehavior.d.ts.map +1 -1
- package/dist/components/combobox/useComboboxPopoverBehavior.js +7 -6
- package/dist/components/combobox/useComboboxPopoverBehavior.js.map +1 -1
- package/dist/components/combobox/useComboboxState.d.ts.map +1 -1
- package/dist/components/combobox/useComboboxState.js +4 -1
- package/dist/components/combobox/useComboboxState.js.map +1 -1
- package/dist/components/datePicker/DatePicker.d.ts +4 -1
- package/dist/components/datePicker/DatePicker.d.ts.map +1 -1
- package/dist/components/datePicker/DatePicker.js +77 -37
- package/dist/components/datePicker/DatePicker.js.map +1 -1
- package/dist/components/datePicker/DatePicker.stories.d.ts +28 -3
- package/dist/components/datePicker/DatePicker.stories.d.ts.map +1 -1
- package/dist/components/datePicker/DatePicker.stories.js +62 -9
- package/dist/components/datePicker/DatePicker.stories.js.map +1 -1
- package/dist/components/datePicker/DatePicker.test.js +133 -66
- package/dist/components/datePicker/DatePicker.test.js.map +1 -1
- package/dist/components/datePicker/DatePickerCalendarHeader.d.ts +8 -0
- package/dist/components/datePicker/DatePickerCalendarHeader.d.ts.map +1 -0
- package/dist/components/datePicker/DatePickerCalendarHeader.js +36 -0
- package/dist/components/datePicker/DatePickerCalendarHeader.js.map +1 -0
- package/dist/components/datePicker/dateInputUtils.d.ts +25 -0
- package/dist/components/datePicker/dateInputUtils.d.ts.map +1 -0
- package/dist/components/datePicker/dateInputUtils.js +60 -0
- package/dist/components/datePicker/dateInputUtils.js.map +1 -0
- package/dist/components/datePicker/datePickerTestUtils.test-helpers.d.ts +2 -0
- package/dist/components/datePicker/datePickerTestUtils.test-helpers.d.ts.map +1 -0
- package/dist/components/datePicker/datePickerTestUtils.test-helpers.js +4 -0
- package/dist/components/datePicker/datePickerTestUtils.test-helpers.js.map +1 -0
- package/dist/components/dateTimePicker/DateTimePicker.d.ts +22 -0
- package/dist/components/dateTimePicker/DateTimePicker.d.ts.map +1 -0
- package/dist/components/dateTimePicker/DateTimePicker.js +132 -0
- package/dist/components/dateTimePicker/DateTimePicker.js.map +1 -0
- package/dist/components/dateTimePicker/DateTimePicker.stories.d.ts +77 -0
- package/dist/components/dateTimePicker/DateTimePicker.stories.d.ts.map +1 -0
- package/dist/components/dateTimePicker/DateTimePicker.stories.js +163 -0
- package/dist/components/dateTimePicker/DateTimePicker.stories.js.map +1 -0
- package/dist/components/dateTimePicker/DateTimePicker.test.d.ts +2 -0
- package/dist/components/dateTimePicker/DateTimePicker.test.d.ts.map +1 -0
- package/dist/components/dateTimePicker/DateTimePicker.test.js +235 -0
- package/dist/components/dateTimePicker/DateTimePicker.test.js.map +1 -0
- package/dist/components/formField/FormField.test.d.ts.map +1 -1
- package/dist/components/formField/FormField.test.js +5 -5
- package/dist/components/formField/FormField.test.js.map +1 -1
- package/dist/components/formField/inputs/selectDropdown/SelectDropdown.d.ts +1 -0
- package/dist/components/formField/inputs/selectDropdown/SelectDropdown.d.ts.map +1 -1
- package/dist/components/formField/inputs/selectDropdown/SelectDropdown.js +7 -3
- package/dist/components/formField/inputs/selectDropdown/SelectDropdown.js.map +1 -1
- package/dist/components/formField/inputs/selectDropdown/SelectDropdown.test.js +12 -0
- package/dist/components/formField/inputs/selectDropdown/SelectDropdown.test.js.map +1 -1
- package/dist/components/formField/inputs/text/TextInput.d.ts +4 -1
- package/dist/components/formField/inputs/text/TextInput.d.ts.map +1 -1
- package/dist/components/formField/inputs/text/TextInput.js +5 -4
- package/dist/components/formField/inputs/text/TextInput.js.map +1 -1
- package/dist/components/formField/inputs/text/TextInput.stories.d.ts +4 -1
- package/dist/components/formField/inputs/text/TextInput.stories.d.ts.map +1 -1
- package/dist/components/table/Table.d.ts.map +1 -1
- package/dist/components/table/Table.js +2 -0
- package/dist/components/table/Table.js.map +1 -1
- package/dist/components/table/Table.stories.d.ts +1 -0
- package/dist/components/table/Table.stories.d.ts.map +1 -1
- package/dist/components/table/Table.stories.js +37 -0
- package/dist/components/table/Table.stories.js.map +1 -1
- package/dist/components/table/cellRenderers/BooleanCellRenderer.d.ts +3 -0
- package/dist/components/table/cellRenderers/BooleanCellRenderer.d.ts.map +1 -0
- package/dist/components/table/cellRenderers/BooleanCellRenderer.js +15 -0
- package/dist/components/table/cellRenderers/BooleanCellRenderer.js.map +1 -0
- package/dist/components/table/cellRenderers/BooleanCellRenderer.test.d.ts +2 -0
- package/dist/components/table/cellRenderers/BooleanCellRenderer.test.d.ts.map +1 -0
- package/dist/components/table/cellRenderers/BooleanCellRenderer.test.js +31 -0
- package/dist/components/table/cellRenderers/BooleanCellRenderer.test.js.map +1 -0
- package/dist/index.css +258 -3
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/button/Button.tsx +2 -1
- package/src/components/combobox/Combobox.test.tsx +104 -61
- package/src/components/combobox/Combobox.tsx +3 -1
- package/src/components/combobox/useComboboxPopoverBehavior.ts +10 -5
- package/src/components/combobox/useComboboxState.ts +4 -1
- package/src/components/datePicker/DatePicker.stories.tsx +67 -9
- package/src/components/datePicker/DatePicker.test.tsx +157 -72
- package/src/components/datePicker/DatePicker.tsx +163 -69
- package/src/components/datePicker/DatePickerCalendarHeader.tsx +82 -0
- package/src/components/datePicker/date-field-hint.scss +152 -0
- package/src/components/datePicker/dateInputUtils.ts +117 -0
- package/src/components/datePicker/datePicker.scss +53 -29
- package/src/components/datePicker/datePickerTestUtils.test-helpers.ts +6 -0
- package/src/components/dateTimePicker/DateTimePicker.stories.tsx +202 -0
- package/src/components/dateTimePicker/DateTimePicker.test.tsx +295 -0
- package/src/components/dateTimePicker/DateTimePicker.tsx +293 -0
- package/src/components/dateTimePicker/dateTimePicker.scss +17 -0
- package/src/components/formField/FormField.test.tsx +5 -5
- package/src/components/formField/inputs/selectDropdown/SelectDropdown.test.tsx +28 -0
- package/src/components/formField/inputs/selectDropdown/SelectDropdown.tsx +8 -2
- package/src/components/formField/inputs/text/TextInput.tsx +6 -3
- package/src/components/table/Table.stories.tsx +48 -0
- package/src/components/table/Table.tsx +2 -0
- package/src/components/table/cellRenderers/BooleanCellRenderer.test.tsx +37 -0
- package/src/components/table/cellRenderers/BooleanCellRenderer.tsx +34 -0
- package/src/components/table/cellRenderers/booleanCellRenderer.scss +7 -0
- package/src/index.scss +2 -0
- package/src/index.ts +3 -0
|
@@ -99,7 +99,7 @@ jobs:
|
|
|
99
99
|
gh release create "${version}" \
|
|
100
100
|
--repo "arbor-education/design-system.components" \
|
|
101
101
|
--title "${version}" \
|
|
102
|
-
--notes "$
|
|
102
|
+
--notes "$changelog" \
|
|
103
103
|
"./release/design-system.components.tgz"
|
|
104
104
|
|
|
105
105
|
- name: Send Slack Success Message
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.10.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#157](https://github.com/arbor-education/design-system.components/pull/157) [`f8a5137`](https://github.com/arbor-education/design-system.components/commit/f8a5137f17b758a6a062fa8c96511fc1e93e6618) Thanks [@danielpeplow](https://github.com/danielpeplow)! - **DatePicker / DateTimePicker** — The date side of `DatePicker` is a normal `date` field now, so you don’t get that odd native “time” bit when you only care about the day. If you set a custom placeholder while the field is still empty, we treat it like a hint: we open the calendar and skip free typing so the fake placeholder and the browser UI don’t fight. Same idea for `DateTimePicker` when you’re in native mode.
|
|
8
|
+
|
|
9
|
+
**Combobox** — If you’re on the button-style dropdown with search inside the panel, filtering down to nothing no longer nukes the whole popover—you can keep typing or clear and try again. Choosing one value (e.g. a time from the list) closes the dropdown even when that combobox lives inside another popover.
|
|
10
|
+
|
|
11
|
+
- [#150](https://github.com/arbor-education/design-system.components/pull/150) [`7f49140`](https://github.com/arbor-education/design-system.components/commit/7f491402c72a29fc29f2ae1907f5487a71d5db70) Thanks [@angusmglfraser](https://github.com/angusmglfraser)! - MIS-69124 ✨ boolean cell renderer for tables
|
|
12
|
+
|
|
3
13
|
## 0.9.0
|
|
4
14
|
|
|
5
15
|
### Minor Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/components/button/Button.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAc,KAAK,oBAAoB,EAA0B,MAAM,OAAO,CAAC;AAC7F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAG7D,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,qBAAqB,GAAG,uBAAuB,GAAG,WAAW,GAAG,UAAU,CAAC;AAE9I,MAAM,MAAM,UAAU,GAAG,GAAG,GAAG,GAAG,CAAC;AAEnC,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,aAAa,CAAC,EAAE,QAAQ,CAAC;IACzB,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,YAAY,CAAC,EAAE,QAAQ,CAAC;IACxB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,GAAG,SAAS,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CACzF,GAAG,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAEtE,eAAO,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/components/button/Button.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAc,KAAK,oBAAoB,EAA0B,MAAM,OAAO,CAAC;AAC7F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAG7D,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,qBAAqB,GAAG,uBAAuB,GAAG,WAAW,GAAG,UAAU,CAAC;AAE9I,MAAM,MAAM,UAAU,GAAG,GAAG,GAAG,GAAG,CAAC;AAEnC,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,aAAa,CAAC,EAAE,QAAQ,CAAC;IACzB,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,YAAY,CAAC,EAAE,QAAQ,CAAC;IACxB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,GAAG,SAAS,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CACzF,GAAG,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAEtE,eAAO,MAAM,MAAM,6HAyCjB,CAAC"}
|
|
@@ -3,9 +3,9 @@ import classNames from 'classnames';
|
|
|
3
3
|
import React, { forwardRef } from 'react';
|
|
4
4
|
import { Icon } from '../icon/Icon';
|
|
5
5
|
export const Button = forwardRef((props, ref) => {
|
|
6
|
-
const { variant = 'primary', size = 'M', children, onClick, disabled = false, className = '', hasHorizontalPadding = true, iconRightName, iconRightScreenReaderText, iconLeftName, iconLeftScreenReaderText, borderless = false, ...rest } = props;
|
|
6
|
+
const { variant = 'primary', size = 'M', children, onClick, disabled = false, className = '', hasHorizontalPadding = true, iconRightName, iconRightScreenReaderText, iconLeftName, iconLeftScreenReaderText, borderless = false, error = false, ...rest } = props;
|
|
7
7
|
return (_jsxs("button", { className: classNames('ds-button', `ds-button--${variant}`, `ds-button--${size}`, {
|
|
8
|
-
'ds-button--error':
|
|
8
|
+
'ds-button--error': error,
|
|
9
9
|
'ds-button--no-horizontal-padding': !hasHorizontalPadding,
|
|
10
10
|
'ds-button--icon-only': !children && (iconRightName || iconLeftName),
|
|
11
11
|
'ds-button--borderless': borderless,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/components/button/Button.tsx"],"names":[],"mappings":";AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,EAAE,EAAE,UAAU,EAAqD,MAAM,OAAO,CAAC;AAE7F,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAsB5C,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,CAAoD,CAAC,KAAkB,EAAE,GAAG,EAAE,EAAE;IAC9G,MAAM,EACJ,OAAO,GAAG,SAAS,EACnB,IAAI,GAAG,GAAG,EACV,QAAQ,EACR,OAAO,EACP,QAAQ,GAAG,KAAK,EAChB,SAAS,GAAG,EAAE,EACd,oBAAoB,GAAG,IAAI,EAC3B,aAAa,EACb,yBAAyB,EACzB,YAAY,EACZ,wBAAwB,EACxB,UAAU,GAAG,KAAK,EAClB,GAAG,IAAI,EACR,GAAG,KAAK,CAAC;IAEV,OAAO,CACL,kBACE,SAAS,EAAE,UAAU,CAAC,WAAW,EAC/B,cAAc,OAAO,EAAE,EACvB,cAAc,IAAI,EAAE,EACpB;YACE,kBAAkB,EAAE,KAAK
|
|
1
|
+
{"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/components/button/Button.tsx"],"names":[],"mappings":";AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,EAAE,EAAE,UAAU,EAAqD,MAAM,OAAO,CAAC;AAE7F,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAsB5C,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,CAAoD,CAAC,KAAkB,EAAE,GAAG,EAAE,EAAE;IAC9G,MAAM,EACJ,OAAO,GAAG,SAAS,EACnB,IAAI,GAAG,GAAG,EACV,QAAQ,EACR,OAAO,EACP,QAAQ,GAAG,KAAK,EAChB,SAAS,GAAG,EAAE,EACd,oBAAoB,GAAG,IAAI,EAC3B,aAAa,EACb,yBAAyB,EACzB,YAAY,EACZ,wBAAwB,EACxB,UAAU,GAAG,KAAK,EAClB,KAAK,GAAG,KAAK,EACb,GAAG,IAAI,EACR,GAAG,KAAK,CAAC;IAEV,OAAO,CACL,kBACE,SAAS,EAAE,UAAU,CAAC,WAAW,EAC/B,cAAc,OAAO,EAAE,EACvB,cAAc,IAAI,EAAE,EACpB;YACE,kBAAkB,EAAE,KAAK;YACzB,kCAAkC,EAAE,CAAC,oBAAoB;YACzD,sBAAsB,EAAE,CAAC,QAAQ,IAAI,CAAC,aAAa,IAAI,YAAY,CAAC;YACpE,uBAAuB,EAAE,UAAU;SACpC,EACD,SAAS,CACV,EACD,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,GAAG,KACJ,IAAI,aAEP,YAAY,IAAI,KAAC,IAAI,IAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,gBAAgB,EAAE,wBAAwB,IAAI,YAAY,GAAI,EAClH,QAAQ,EACR,aAAa,IAAI,KAAC,IAAI,IAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,EAAE,gBAAgB,EAAE,yBAAyB,IAAI,aAAa,GAAI,IAChH,CACV,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Combobox.d.ts","sourceRoot":"","sources":["../../../src/components/combobox/Combobox.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAO7C,QAAA,MAAM,YAAY;YAAW,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO;;
|
|
1
|
+
{"version":3,"file":"Combobox.d.ts","sourceRoot":"","sources":["../../../src/components/combobox/Combobox.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAO7C,QAAA,MAAM,YAAY;YAAW,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO;;CA6Z7D,CAAC;AAIF,KAAK,gBAAgB,GAAG,OAAO,YAAY,GAAG;IAC5C,OAAO,EAAE,OAAO,eAAe,CAAC;IAChC,aAAa,EAAE,OAAO,qBAAqB,CAAC;IAC5C,OAAO,EAAE,OAAO,eAAe,CAAC;CACjC,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAmB,gBAAgB,CAAC"}
|
|
@@ -40,6 +40,7 @@ const ComboboxRoot = (props) => {
|
|
|
40
40
|
});
|
|
41
41
|
const chipKeyboardEnabled = selectedValueDisplay === 'tags';
|
|
42
42
|
const { selectedChipValues, selectedChipValuesSet, setSelectedChipValues, clearChipSelection, focusedChipIndex, setFocusedChipIndex, exitChipNav, } = useChipSelection(chipKeyboardEnabled ? selectedValues : []);
|
|
43
|
+
const renderSearchInputInListbox = triggerVariant === 'button';
|
|
43
44
|
const { shouldRenderPopoverContent, shouldShowPopover, showListboxLoading, handleInputChange, handleTriggerClick, handleInputFocus, handleInputBlur, handleChevronClick, handlePopoverInteractOutside, } = useComboboxPopoverBehavior({
|
|
44
45
|
inputRef,
|
|
45
46
|
triggerRef,
|
|
@@ -61,6 +62,7 @@ const ComboboxRoot = (props) => {
|
|
|
61
62
|
clearChipSelection,
|
|
62
63
|
exitChipNav,
|
|
63
64
|
triggerContainsInput: triggerVariant === 'input',
|
|
65
|
+
renderSearchInputInListbox,
|
|
64
66
|
});
|
|
65
67
|
const optionGroups = useMemo(() => buildOptionGroups(filteredOptions), [filteredOptions]);
|
|
66
68
|
const optionIndexMap = useMemo(() => {
|
|
@@ -152,7 +154,6 @@ const ComboboxRoot = (props) => {
|
|
|
152
154
|
const preventMouseDefault = useCallback((e) => {
|
|
153
155
|
e.preventDefault();
|
|
154
156
|
}, []);
|
|
155
|
-
const renderSearchInputInListbox = triggerVariant === 'button';
|
|
156
157
|
const handlePopoverOpenAutoFocus = useCallback((e) => {
|
|
157
158
|
e.preventDefault();
|
|
158
159
|
if (triggerVariant === 'button') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Combobox.js","sourceRoot":"","sources":["../../../src/components/combobox/Combobox.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Combobox.js","sourceRoot":"","sources":["../../../src/components/combobox/Combobox.tsx"],"names":[],"mappings":"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"}
|
|
@@ -113,6 +113,24 @@ describe('Combobox', () => {
|
|
|
113
113
|
await userEvent.click(search);
|
|
114
114
|
expect(search).toHaveFocus();
|
|
115
115
|
});
|
|
116
|
+
test('button trigger keeps popover with search input when filter matches nothing', async () => {
|
|
117
|
+
const user = userEvent.setup();
|
|
118
|
+
render(_jsx(Combobox, { options: people, triggerVariant: "button", placeholder: "Students" }));
|
|
119
|
+
await user.click(screen.getByRole('button', { name: 'Open suggestions' }));
|
|
120
|
+
const search = screen.getByRole('combobox');
|
|
121
|
+
await user.type(search, 'zzz');
|
|
122
|
+
expect(screen.getByRole('listbox')).toBeInTheDocument();
|
|
123
|
+
expect(screen.queryAllByRole('option')).toHaveLength(0);
|
|
124
|
+
await user.clear(search);
|
|
125
|
+
expect(within(screen.getByRole('listbox')).getAllByRole('option')).toHaveLength(people.length);
|
|
126
|
+
});
|
|
127
|
+
test('button trigger closes popover after single-select option click', async () => {
|
|
128
|
+
const user = userEvent.setup();
|
|
129
|
+
render(_jsx(Combobox, { options: people, triggerVariant: "button", placeholder: "Students" }));
|
|
130
|
+
await user.click(screen.getByRole('button', { name: 'Open suggestions' }));
|
|
131
|
+
await user.click(screen.getByText('Alice Johnson'));
|
|
132
|
+
expect(screen.queryByRole('listbox')).not.toBeInTheDocument();
|
|
133
|
+
});
|
|
116
134
|
test('button trigger single-select does not show selection count badge', () => {
|
|
117
135
|
render(_jsx(Combobox, { options: people, triggerVariant: "button", defaultValue: ['alice'] }));
|
|
118
136
|
expect(screen.queryByLabelText(/selected item/i)).not.toBeInTheDocument();
|
|
@@ -244,55 +262,61 @@ describe('Combobox', () => {
|
|
|
244
262
|
expect(onValueChange).toHaveBeenLastCalledWith(['alice', 'bob']);
|
|
245
263
|
});
|
|
246
264
|
test('Ctrl+A selects all chips when input is focused', async () => {
|
|
265
|
+
const user = userEvent.setup();
|
|
247
266
|
render(_jsx(Combobox, { options: people, multiple: true, defaultValue: ['alice', 'bob'] }));
|
|
248
267
|
const input = screen.getByRole('combobox');
|
|
249
|
-
|
|
250
|
-
await
|
|
268
|
+
await user.click(input);
|
|
269
|
+
await user.keyboard('{Control>}a{/Control}');
|
|
251
270
|
const selectedTags = document.querySelectorAll('.ds-tag--selected');
|
|
252
271
|
expect(selectedTags).toHaveLength(2);
|
|
253
272
|
});
|
|
254
273
|
test('Cmd+A selects all chips in single-select mode', async () => {
|
|
274
|
+
const user = userEvent.setup();
|
|
255
275
|
render(_jsx(Combobox, { options: people, defaultValue: ['alice'] }));
|
|
256
276
|
const input = screen.getByRole('combobox');
|
|
257
|
-
|
|
277
|
+
await user.click(input);
|
|
258
278
|
fireEvent.keyDown(input, { key: 'a', metaKey: true });
|
|
259
279
|
const selectedTags = document.querySelectorAll('.ds-tag--selected');
|
|
260
280
|
expect(selectedTags).toHaveLength(1);
|
|
261
281
|
});
|
|
262
282
|
test('Backspace clears all selected chips after select-all', async () => {
|
|
283
|
+
const user = userEvent.setup();
|
|
263
284
|
const onValueChange = vi.fn();
|
|
264
285
|
render(_jsx(Combobox, { options: people, multiple: true, defaultValue: ['alice', 'bob'], onValueChange: onValueChange }));
|
|
265
286
|
const input = screen.getByRole('combobox');
|
|
266
|
-
|
|
267
|
-
await
|
|
268
|
-
await
|
|
287
|
+
await user.click(input);
|
|
288
|
+
await user.keyboard('{Control>}a{/Control}');
|
|
289
|
+
await user.keyboard('{Backspace}');
|
|
269
290
|
expect(onValueChange).toHaveBeenLastCalledWith([]);
|
|
270
291
|
expect(document.querySelectorAll('.ds-tag--selected')).toHaveLength(0);
|
|
271
292
|
});
|
|
272
293
|
test('Delete clears all selected chips after select-all', async () => {
|
|
294
|
+
const user = userEvent.setup();
|
|
273
295
|
const onValueChange = vi.fn();
|
|
274
296
|
render(_jsx(Combobox, { options: people, multiple: true, defaultValue: ['alice', 'bob'], onValueChange: onValueChange }));
|
|
275
297
|
const input = screen.getByRole('combobox');
|
|
276
|
-
|
|
277
|
-
await
|
|
278
|
-
await
|
|
298
|
+
await user.click(input);
|
|
299
|
+
await user.keyboard('{Control>}a{/Control}');
|
|
300
|
+
await user.keyboard('{Delete}');
|
|
279
301
|
expect(onValueChange).toHaveBeenLastCalledWith([]);
|
|
280
302
|
expect(document.querySelectorAll('.ds-tag--selected')).toHaveLength(0);
|
|
281
303
|
});
|
|
282
304
|
test('typing after chip select-all clears selected chip styling', async () => {
|
|
305
|
+
const user = userEvent.setup();
|
|
283
306
|
render(_jsx(Combobox, { options: people, multiple: true, defaultValue: ['alice', 'bob'] }));
|
|
284
307
|
const input = screen.getByRole('combobox');
|
|
285
|
-
|
|
286
|
-
await
|
|
308
|
+
await user.click(input);
|
|
309
|
+
await user.keyboard('{Control>}a{/Control}');
|
|
287
310
|
expect(document.querySelectorAll('.ds-tag--selected')).toHaveLength(2);
|
|
288
|
-
await
|
|
311
|
+
await user.type(input, 'c');
|
|
289
312
|
expect(document.querySelectorAll('.ds-tag--selected')).toHaveLength(0);
|
|
290
313
|
});
|
|
291
314
|
test('Ctrl+A with no chips keeps native input behavior and does not crash', async () => {
|
|
315
|
+
const user = userEvent.setup();
|
|
292
316
|
render(_jsx(Combobox, { options: people }));
|
|
293
317
|
const input = screen.getByRole('combobox');
|
|
294
|
-
|
|
295
|
-
await
|
|
318
|
+
await user.click(input);
|
|
319
|
+
await user.keyboard('{Control>}a{/Control}');
|
|
296
320
|
expect(document.querySelectorAll('.ds-tag--selected')).toHaveLength(0);
|
|
297
321
|
});
|
|
298
322
|
test('removing a chip calls onValueChange without that value', async () => {
|
|
@@ -386,17 +410,19 @@ describe('Combobox', () => {
|
|
|
386
410
|
expect(screen.queryByRole('listbox')).not.toBeInTheDocument();
|
|
387
411
|
});
|
|
388
412
|
test('keyboard: ArrowDown opens the listbox', async () => {
|
|
413
|
+
const user = userEvent.setup();
|
|
389
414
|
render(_jsx(Combobox, { options: people }));
|
|
390
415
|
const input = screen.getByRole('combobox');
|
|
391
|
-
|
|
392
|
-
await
|
|
416
|
+
await user.click(input);
|
|
417
|
+
await user.keyboard('{ArrowDown}');
|
|
393
418
|
expect(screen.getByRole('listbox')).toBeInTheDocument();
|
|
394
419
|
});
|
|
395
420
|
test('keyboard: Alt+ArrowDown opens the listbox', async () => {
|
|
421
|
+
const user = userEvent.setup();
|
|
396
422
|
render(_jsx(Combobox, { options: people }));
|
|
397
423
|
const input = screen.getByRole('combobox');
|
|
398
|
-
|
|
399
|
-
await
|
|
424
|
+
await user.click(input);
|
|
425
|
+
await user.keyboard('{Alt>}{ArrowDown}{/Alt}');
|
|
400
426
|
expect(screen.getByRole('listbox')).toBeInTheDocument();
|
|
401
427
|
});
|
|
402
428
|
test('keyboard: ArrowDown/ArrowUp moves highlight', async () => {
|
|
@@ -427,11 +453,12 @@ describe('Combobox', () => {
|
|
|
427
453
|
expect(screen.queryByRole('listbox')).not.toBeInTheDocument();
|
|
428
454
|
});
|
|
429
455
|
test('keyboard: Backspace on empty input removes last chip', async () => {
|
|
456
|
+
const user = userEvent.setup();
|
|
430
457
|
const onValueChange = vi.fn();
|
|
431
458
|
render(_jsx(Combobox, { options: people, multiple: true, defaultValue: ['alice', 'bob'], onValueChange: onValueChange }));
|
|
432
459
|
const input = screen.getByRole('combobox');
|
|
433
|
-
|
|
434
|
-
await
|
|
460
|
+
await user.click(input);
|
|
461
|
+
await user.keyboard('{Backspace}');
|
|
435
462
|
expect(onValueChange).toHaveBeenCalledWith(['alice']);
|
|
436
463
|
});
|
|
437
464
|
test('allowCreate shows a create row when no exact match', async () => {
|
|
@@ -477,7 +504,7 @@ describe('Combobox', () => {
|
|
|
477
504
|
await userEvent.keyboard('{Enter}');
|
|
478
505
|
expect(onCreateNew).toHaveBeenCalledWith('Taylor');
|
|
479
506
|
expect(onValueChange).toHaveBeenCalledWith(['new-taylor']);
|
|
480
|
-
expect(screen.
|
|
507
|
+
expect(screen.queryByRole('listbox')).not.toBeInTheDocument();
|
|
481
508
|
});
|
|
482
509
|
test('allowCreate duplicate prevention selects existing option', async () => {
|
|
483
510
|
const onCreateNew = vi.fn();
|
|
@@ -700,97 +727,107 @@ describe('Combobox', () => {
|
|
|
700
727
|
});
|
|
701
728
|
});
|
|
702
729
|
describe('chip keyboard navigation', () => {
|
|
703
|
-
test('ArrowLeft at caret 0 focuses the last chip', () => {
|
|
730
|
+
test('ArrowLeft at caret 0 focuses the last chip', async () => {
|
|
731
|
+
const user = userEvent.setup();
|
|
704
732
|
render(_jsx(Combobox, { options: people, multiple: true, defaultValue: ['alice', 'bob'] }));
|
|
705
733
|
const input = screen.getByRole('combobox');
|
|
706
|
-
|
|
707
|
-
|
|
734
|
+
await user.click(input);
|
|
735
|
+
await user.keyboard('{ArrowLeft}');
|
|
708
736
|
const tags = document.querySelectorAll('.ds-tag');
|
|
709
737
|
expect(tags[1]).toHaveClass('ds-tag--selected');
|
|
710
738
|
expect(tags[0]).not.toHaveClass('ds-tag--selected');
|
|
711
739
|
});
|
|
712
|
-
test('ArrowLeft navigates through chips from right to left', () => {
|
|
740
|
+
test('ArrowLeft navigates through chips from right to left', async () => {
|
|
741
|
+
const user = userEvent.setup();
|
|
713
742
|
render(_jsx(Combobox, { options: people, multiple: true, defaultValue: ['alice', 'bob', 'charlie'] }));
|
|
714
743
|
const input = screen.getByRole('combobox');
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
744
|
+
await user.click(input);
|
|
745
|
+
await user.keyboard('{ArrowLeft}');
|
|
746
|
+
await user.keyboard('{ArrowLeft}');
|
|
718
747
|
const tags = document.querySelectorAll('.ds-tag');
|
|
719
748
|
expect(tags[1]).toHaveClass('ds-tag--selected');
|
|
720
749
|
expect(tags[2]).not.toHaveClass('ds-tag--selected');
|
|
721
750
|
});
|
|
722
|
-
test('ArrowLeft does not go past the first chip', () => {
|
|
751
|
+
test('ArrowLeft does not go past the first chip', async () => {
|
|
752
|
+
const user = userEvent.setup();
|
|
723
753
|
render(_jsx(Combobox, { options: people, multiple: true, defaultValue: ['alice', 'bob'] }));
|
|
724
754
|
const input = screen.getByRole('combobox');
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
755
|
+
await user.click(input);
|
|
756
|
+
await user.keyboard('{ArrowLeft}');
|
|
757
|
+
await user.keyboard('{ArrowLeft}');
|
|
758
|
+
await user.keyboard('{ArrowLeft}');
|
|
729
759
|
const tags = document.querySelectorAll('.ds-tag');
|
|
730
760
|
expect(tags[0]).toHaveClass('ds-tag--selected');
|
|
731
761
|
});
|
|
732
|
-
test('ArrowRight past the last chip returns focus to input (exits chip nav)', () => {
|
|
762
|
+
test('ArrowRight past the last chip returns focus to input (exits chip nav)', async () => {
|
|
763
|
+
const user = userEvent.setup();
|
|
733
764
|
render(_jsx(Combobox, { options: people, multiple: true, defaultValue: ['alice', 'bob'] }));
|
|
734
765
|
const input = screen.getByRole('combobox');
|
|
735
|
-
|
|
736
|
-
|
|
766
|
+
await user.click(input);
|
|
767
|
+
await user.keyboard('{ArrowLeft}');
|
|
737
768
|
expect(document.querySelectorAll('.ds-tag--selected')).toHaveLength(1);
|
|
738
|
-
|
|
769
|
+
await user.keyboard('{ArrowRight}');
|
|
739
770
|
expect(document.querySelectorAll('.ds-tag--selected')).toHaveLength(0);
|
|
740
771
|
});
|
|
741
|
-
test('Backspace on focused chip removes it', () => {
|
|
772
|
+
test('Backspace on focused chip removes it', async () => {
|
|
773
|
+
const user = userEvent.setup();
|
|
742
774
|
const onValueChange = vi.fn();
|
|
743
775
|
render(_jsx(Combobox, { options: people, multiple: true, defaultValue: ['alice', 'bob', 'charlie'], onValueChange: onValueChange }));
|
|
744
776
|
const input = screen.getByRole('combobox');
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
777
|
+
await user.click(input);
|
|
778
|
+
await user.keyboard('{ArrowLeft}');
|
|
779
|
+
await user.keyboard('{ArrowLeft}');
|
|
780
|
+
await user.keyboard('{Backspace}');
|
|
749
781
|
expect(onValueChange).toHaveBeenCalledWith(['alice', 'charlie']);
|
|
750
782
|
});
|
|
751
|
-
test('Delete on focused chip removes it', () => {
|
|
783
|
+
test('Delete on focused chip removes it', async () => {
|
|
784
|
+
const user = userEvent.setup();
|
|
752
785
|
const onValueChange = vi.fn();
|
|
753
786
|
render(_jsx(Combobox, { options: people, multiple: true, defaultValue: ['alice', 'bob'], onValueChange: onValueChange }));
|
|
754
787
|
const input = screen.getByRole('combobox');
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
788
|
+
await user.click(input);
|
|
789
|
+
await user.keyboard('{ArrowLeft}');
|
|
790
|
+
await user.keyboard('{ArrowLeft}');
|
|
791
|
+
await user.keyboard('{Delete}');
|
|
759
792
|
expect(onValueChange).toHaveBeenCalledWith(['bob']);
|
|
760
793
|
});
|
|
761
|
-
test('Backspace on first chip focuses next or exits', () => {
|
|
794
|
+
test('Backspace on first chip focuses next or exits', async () => {
|
|
795
|
+
const user = userEvent.setup();
|
|
762
796
|
const onValueChange = vi.fn();
|
|
763
797
|
render(_jsx(Combobox, { options: people, multiple: true, defaultValue: ['alice'], onValueChange: onValueChange }));
|
|
764
798
|
const input = screen.getByRole('combobox');
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
799
|
+
await user.click(input);
|
|
800
|
+
await user.keyboard('{ArrowLeft}');
|
|
801
|
+
await user.keyboard('{Backspace}');
|
|
768
802
|
expect(onValueChange).toHaveBeenCalledWith([]);
|
|
769
803
|
expect(document.querySelectorAll('.ds-tag--selected')).toHaveLength(0);
|
|
770
804
|
});
|
|
771
805
|
test('typing exits chip nav mode', async () => {
|
|
806
|
+
const user = userEvent.setup();
|
|
772
807
|
render(_jsx(Combobox, { options: people, multiple: true, defaultValue: ['alice', 'bob'] }));
|
|
773
808
|
const input = screen.getByRole('combobox');
|
|
774
|
-
|
|
775
|
-
|
|
809
|
+
await user.click(input);
|
|
810
|
+
await user.keyboard('{ArrowLeft}');
|
|
776
811
|
expect(document.querySelectorAll('.ds-tag--selected')).toHaveLength(1);
|
|
777
|
-
await
|
|
812
|
+
await user.type(input, 'c');
|
|
778
813
|
expect(document.querySelectorAll('.ds-tag--selected')).toHaveLength(0);
|
|
779
814
|
});
|
|
780
|
-
test('Escape exits chip nav mode', () => {
|
|
815
|
+
test('Escape exits chip nav mode', async () => {
|
|
816
|
+
const user = userEvent.setup();
|
|
781
817
|
render(_jsx(Combobox, { options: people, multiple: true, defaultValue: ['alice', 'bob'] }));
|
|
782
818
|
const input = screen.getByRole('combobox');
|
|
783
|
-
|
|
784
|
-
|
|
819
|
+
await user.click(input);
|
|
820
|
+
await user.keyboard('{ArrowLeft}');
|
|
785
821
|
expect(document.querySelectorAll('.ds-tag--selected')).toHaveLength(1);
|
|
786
|
-
|
|
822
|
+
await user.keyboard('{Escape}');
|
|
787
823
|
expect(document.querySelectorAll('.ds-tag--selected')).toHaveLength(0);
|
|
788
824
|
});
|
|
789
|
-
test('Cmd+A during chip nav enters bulk-select-all mode', () => {
|
|
825
|
+
test('Cmd+A during chip nav enters bulk-select-all mode', async () => {
|
|
826
|
+
const user = userEvent.setup();
|
|
790
827
|
render(_jsx(Combobox, { options: people, multiple: true, defaultValue: ['alice', 'bob'] }));
|
|
791
828
|
const input = screen.getByRole('combobox');
|
|
792
|
-
|
|
793
|
-
|
|
829
|
+
await user.click(input);
|
|
830
|
+
await user.keyboard('{ArrowLeft}');
|
|
794
831
|
expect(document.querySelectorAll('.ds-tag--selected')).toHaveLength(1);
|
|
795
832
|
fireEvent.keyDown(input, { key: 'a', metaKey: true });
|
|
796
833
|
expect(document.querySelectorAll('.ds-tag--selected')).toHaveLength(2);
|