@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.
Files changed (116) hide show
  1. package/.github/workflows/release.yml +1 -1
  2. package/CHANGELOG.md +10 -0
  3. package/dist/components/button/Button.d.ts.map +1 -1
  4. package/dist/components/button/Button.js +2 -2
  5. package/dist/components/button/Button.js.map +1 -1
  6. package/dist/components/combobox/Combobox.d.ts.map +1 -1
  7. package/dist/components/combobox/Combobox.js +2 -1
  8. package/dist/components/combobox/Combobox.js.map +1 -1
  9. package/dist/components/combobox/Combobox.test.js +98 -61
  10. package/dist/components/combobox/Combobox.test.js.map +1 -1
  11. package/dist/components/combobox/useComboboxPopoverBehavior.d.ts +3 -1
  12. package/dist/components/combobox/useComboboxPopoverBehavior.d.ts.map +1 -1
  13. package/dist/components/combobox/useComboboxPopoverBehavior.js +7 -6
  14. package/dist/components/combobox/useComboboxPopoverBehavior.js.map +1 -1
  15. package/dist/components/combobox/useComboboxState.d.ts.map +1 -1
  16. package/dist/components/combobox/useComboboxState.js +4 -1
  17. package/dist/components/combobox/useComboboxState.js.map +1 -1
  18. package/dist/components/datePicker/DatePicker.d.ts +4 -1
  19. package/dist/components/datePicker/DatePicker.d.ts.map +1 -1
  20. package/dist/components/datePicker/DatePicker.js +77 -37
  21. package/dist/components/datePicker/DatePicker.js.map +1 -1
  22. package/dist/components/datePicker/DatePicker.stories.d.ts +28 -3
  23. package/dist/components/datePicker/DatePicker.stories.d.ts.map +1 -1
  24. package/dist/components/datePicker/DatePicker.stories.js +62 -9
  25. package/dist/components/datePicker/DatePicker.stories.js.map +1 -1
  26. package/dist/components/datePicker/DatePicker.test.js +133 -66
  27. package/dist/components/datePicker/DatePicker.test.js.map +1 -1
  28. package/dist/components/datePicker/DatePickerCalendarHeader.d.ts +8 -0
  29. package/dist/components/datePicker/DatePickerCalendarHeader.d.ts.map +1 -0
  30. package/dist/components/datePicker/DatePickerCalendarHeader.js +36 -0
  31. package/dist/components/datePicker/DatePickerCalendarHeader.js.map +1 -0
  32. package/dist/components/datePicker/dateInputUtils.d.ts +25 -0
  33. package/dist/components/datePicker/dateInputUtils.d.ts.map +1 -0
  34. package/dist/components/datePicker/dateInputUtils.js +60 -0
  35. package/dist/components/datePicker/dateInputUtils.js.map +1 -0
  36. package/dist/components/datePicker/datePickerTestUtils.test-helpers.d.ts +2 -0
  37. package/dist/components/datePicker/datePickerTestUtils.test-helpers.d.ts.map +1 -0
  38. package/dist/components/datePicker/datePickerTestUtils.test-helpers.js +4 -0
  39. package/dist/components/datePicker/datePickerTestUtils.test-helpers.js.map +1 -0
  40. package/dist/components/dateTimePicker/DateTimePicker.d.ts +22 -0
  41. package/dist/components/dateTimePicker/DateTimePicker.d.ts.map +1 -0
  42. package/dist/components/dateTimePicker/DateTimePicker.js +132 -0
  43. package/dist/components/dateTimePicker/DateTimePicker.js.map +1 -0
  44. package/dist/components/dateTimePicker/DateTimePicker.stories.d.ts +77 -0
  45. package/dist/components/dateTimePicker/DateTimePicker.stories.d.ts.map +1 -0
  46. package/dist/components/dateTimePicker/DateTimePicker.stories.js +163 -0
  47. package/dist/components/dateTimePicker/DateTimePicker.stories.js.map +1 -0
  48. package/dist/components/dateTimePicker/DateTimePicker.test.d.ts +2 -0
  49. package/dist/components/dateTimePicker/DateTimePicker.test.d.ts.map +1 -0
  50. package/dist/components/dateTimePicker/DateTimePicker.test.js +235 -0
  51. package/dist/components/dateTimePicker/DateTimePicker.test.js.map +1 -0
  52. package/dist/components/formField/FormField.test.d.ts.map +1 -1
  53. package/dist/components/formField/FormField.test.js +5 -5
  54. package/dist/components/formField/FormField.test.js.map +1 -1
  55. package/dist/components/formField/inputs/selectDropdown/SelectDropdown.d.ts +1 -0
  56. package/dist/components/formField/inputs/selectDropdown/SelectDropdown.d.ts.map +1 -1
  57. package/dist/components/formField/inputs/selectDropdown/SelectDropdown.js +7 -3
  58. package/dist/components/formField/inputs/selectDropdown/SelectDropdown.js.map +1 -1
  59. package/dist/components/formField/inputs/selectDropdown/SelectDropdown.test.js +12 -0
  60. package/dist/components/formField/inputs/selectDropdown/SelectDropdown.test.js.map +1 -1
  61. package/dist/components/formField/inputs/text/TextInput.d.ts +4 -1
  62. package/dist/components/formField/inputs/text/TextInput.d.ts.map +1 -1
  63. package/dist/components/formField/inputs/text/TextInput.js +5 -4
  64. package/dist/components/formField/inputs/text/TextInput.js.map +1 -1
  65. package/dist/components/formField/inputs/text/TextInput.stories.d.ts +4 -1
  66. package/dist/components/formField/inputs/text/TextInput.stories.d.ts.map +1 -1
  67. package/dist/components/table/Table.d.ts.map +1 -1
  68. package/dist/components/table/Table.js +2 -0
  69. package/dist/components/table/Table.js.map +1 -1
  70. package/dist/components/table/Table.stories.d.ts +1 -0
  71. package/dist/components/table/Table.stories.d.ts.map +1 -1
  72. package/dist/components/table/Table.stories.js +37 -0
  73. package/dist/components/table/Table.stories.js.map +1 -1
  74. package/dist/components/table/cellRenderers/BooleanCellRenderer.d.ts +3 -0
  75. package/dist/components/table/cellRenderers/BooleanCellRenderer.d.ts.map +1 -0
  76. package/dist/components/table/cellRenderers/BooleanCellRenderer.js +15 -0
  77. package/dist/components/table/cellRenderers/BooleanCellRenderer.js.map +1 -0
  78. package/dist/components/table/cellRenderers/BooleanCellRenderer.test.d.ts +2 -0
  79. package/dist/components/table/cellRenderers/BooleanCellRenderer.test.d.ts.map +1 -0
  80. package/dist/components/table/cellRenderers/BooleanCellRenderer.test.js +31 -0
  81. package/dist/components/table/cellRenderers/BooleanCellRenderer.test.js.map +1 -0
  82. package/dist/index.css +258 -3
  83. package/dist/index.css.map +1 -1
  84. package/dist/index.d.ts +3 -0
  85. package/dist/index.d.ts.map +1 -1
  86. package/dist/index.js +2 -0
  87. package/dist/index.js.map +1 -1
  88. package/package.json +1 -1
  89. package/src/components/button/Button.tsx +2 -1
  90. package/src/components/combobox/Combobox.test.tsx +104 -61
  91. package/src/components/combobox/Combobox.tsx +3 -1
  92. package/src/components/combobox/useComboboxPopoverBehavior.ts +10 -5
  93. package/src/components/combobox/useComboboxState.ts +4 -1
  94. package/src/components/datePicker/DatePicker.stories.tsx +67 -9
  95. package/src/components/datePicker/DatePicker.test.tsx +157 -72
  96. package/src/components/datePicker/DatePicker.tsx +163 -69
  97. package/src/components/datePicker/DatePickerCalendarHeader.tsx +82 -0
  98. package/src/components/datePicker/date-field-hint.scss +152 -0
  99. package/src/components/datePicker/dateInputUtils.ts +117 -0
  100. package/src/components/datePicker/datePicker.scss +53 -29
  101. package/src/components/datePicker/datePickerTestUtils.test-helpers.ts +6 -0
  102. package/src/components/dateTimePicker/DateTimePicker.stories.tsx +202 -0
  103. package/src/components/dateTimePicker/DateTimePicker.test.tsx +295 -0
  104. package/src/components/dateTimePicker/DateTimePicker.tsx +293 -0
  105. package/src/components/dateTimePicker/dateTimePicker.scss +17 -0
  106. package/src/components/formField/FormField.test.tsx +5 -5
  107. package/src/components/formField/inputs/selectDropdown/SelectDropdown.test.tsx +28 -0
  108. package/src/components/formField/inputs/selectDropdown/SelectDropdown.tsx +8 -2
  109. package/src/components/formField/inputs/text/TextInput.tsx +6 -3
  110. package/src/components/table/Table.stories.tsx +48 -0
  111. package/src/components/table/Table.tsx +2 -0
  112. package/src/components/table/cellRenderers/BooleanCellRenderer.test.tsx +37 -0
  113. package/src/components/table/cellRenderers/BooleanCellRenderer.tsx +34 -0
  114. package/src/components/table/cellRenderers/booleanCellRenderer.scss +7 -0
  115. package/src/index.scss +2 -0
  116. 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 "${{ env.changelog }}" \
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,6HAwCjB,CAAC"}
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': props.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,CAAC,KAAK;YAC/B,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
+ {"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;;CA2Z7D,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"}
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
- input.focus();
250
- await userEvent.keyboard('{Control>}a{/Control}');
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
- input.focus();
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
- input.focus();
267
- await userEvent.keyboard('{Control>}a{/Control}');
268
- await userEvent.keyboard('{Backspace}');
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
- input.focus();
277
- await userEvent.keyboard('{Control>}a{/Control}');
278
- await userEvent.keyboard('{Delete}');
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
- input.focus();
286
- await userEvent.keyboard('{Control>}a{/Control}');
308
+ await user.click(input);
309
+ await user.keyboard('{Control>}a{/Control}');
287
310
  expect(document.querySelectorAll('.ds-tag--selected')).toHaveLength(2);
288
- await userEvent.type(input, 'c');
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
- input.focus();
295
- await userEvent.keyboard('{Control>}a{/Control}');
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
- input.focus();
392
- await userEvent.keyboard('{ArrowDown}');
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
- input.focus();
399
- await userEvent.keyboard('{Alt>}{ArrowDown}{/Alt}');
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
- input.focus();
434
- await userEvent.keyboard('{Backspace}');
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.getByRole('listbox')).toBeInTheDocument();
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
- input.focus();
707
- fireEvent.keyDown(input, { key: 'ArrowLeft' });
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
- input.focus();
716
- fireEvent.keyDown(input, { key: 'ArrowLeft' });
717
- fireEvent.keyDown(input, { key: 'ArrowLeft' });
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
- input.focus();
726
- fireEvent.keyDown(input, { key: 'ArrowLeft' });
727
- fireEvent.keyDown(input, { key: 'ArrowLeft' });
728
- fireEvent.keyDown(input, { key: 'ArrowLeft' });
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
- input.focus();
736
- fireEvent.keyDown(input, { key: 'ArrowLeft' });
766
+ await user.click(input);
767
+ await user.keyboard('{ArrowLeft}');
737
768
  expect(document.querySelectorAll('.ds-tag--selected')).toHaveLength(1);
738
- fireEvent.keyDown(input, { key: 'ArrowRight' });
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
- input.focus();
746
- fireEvent.keyDown(input, { key: 'ArrowLeft' });
747
- fireEvent.keyDown(input, { key: 'ArrowLeft' });
748
- fireEvent.keyDown(input, { key: 'Backspace' });
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
- input.focus();
756
- fireEvent.keyDown(input, { key: 'ArrowLeft' });
757
- fireEvent.keyDown(input, { key: 'ArrowLeft' });
758
- fireEvent.keyDown(input, { key: 'Delete' });
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
- input.focus();
766
- fireEvent.keyDown(input, { key: 'ArrowLeft' });
767
- fireEvent.keyDown(input, { key: 'Backspace' });
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
- input.focus();
775
- fireEvent.keyDown(input, { key: 'ArrowLeft' });
809
+ await user.click(input);
810
+ await user.keyboard('{ArrowLeft}');
776
811
  expect(document.querySelectorAll('.ds-tag--selected')).toHaveLength(1);
777
- await userEvent.type(input, 'c');
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
- input.focus();
784
- fireEvent.keyDown(input, { key: 'ArrowLeft' });
819
+ await user.click(input);
820
+ await user.keyboard('{ArrowLeft}');
785
821
  expect(document.querySelectorAll('.ds-tag--selected')).toHaveLength(1);
786
- fireEvent.keyDown(input, { key: 'Escape' });
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
- input.focus();
793
- fireEvent.keyDown(input, { key: 'ArrowLeft' });
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);