@lumx/core 4.11.0-next.5 → 4.11.0-next.6

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.
@@ -5020,6 +5020,22 @@ table {
5020
5020
  }
5021
5021
  .lumx-combobox-popover__scroll {
5022
5022
  overflow-y: auto;
5023
+ scroll-snap-type: y proximity;
5024
+ }
5025
+ @media (prefers-reduced-motion: no-preference) {
5026
+ .lumx-combobox-popover__scroll {
5027
+ scroll-behavior: smooth;
5028
+ }
5029
+ }
5030
+ .lumx-combobox-popover__scroll::before {
5031
+ content: "";
5032
+ display: block;
5033
+ scroll-snap-align: start;
5034
+ }
5035
+ .lumx-combobox-popover__scroll::after {
5036
+ content: "";
5037
+ display: block;
5038
+ scroll-snap-align: end;
5023
5039
  }
5024
5040
 
5025
5041
  .lumx-combobox-popover:empty, .lumx-combobox-popover:not(:has(.lumx-combobox-option)):not(:has(.lumx-combobox-state)):not(:has(.lumx-combobox-option-skeleton)),
@@ -17,6 +17,11 @@ export interface ComboboxInputProps extends HasClassName, HasTheme {
17
17
  toggleButtonProps?: Record<string, any>;
18
18
  /** Toggle callback for the chevron button. */
19
19
  handleToggle?(): void;
20
+ /**
21
+ * Controls how the combobox filters options as the user types.
22
+ * When `'off'`, the input is rendered as `readOnly`.
23
+ */
24
+ filter?: 'auto' | 'manual' | 'off';
20
25
  }
21
26
  /**
22
27
  * Injected framework-specific components for ComboboxInput rendering.
@@ -2,14 +2,22 @@ import type { ComboboxCallbacks, ComboboxHandle } from './types';
2
2
  /** Options for configuring the input-mode combobox controller. */
3
3
  export interface SetupComboboxInputOptions extends ComboboxCallbacks {
4
4
  /**
5
- * When true (default), the combobox automatically filters options as the user types.
6
- * Each registered `Combobox.Option` receives filter state updates and hides itself
7
- * when it does not match the current input value.
5
+ * Controls how the combobox filters options as the user types.
8
6
  *
9
- * Set to false when you want to handle filtering yourself (e.g. async search,
10
- * consumer-side pre-filtering). Options will not be registered for auto-filtering.
7
+ * - `'auto'` (default) Options are automatically filtered client-side.
8
+ * - `'manual'` Filtering is the consumer's responsibility.
9
+ * - `'off'` — Like `'manual'`, and `openOnFocus` defaults to `true`.
10
+ * The core template renders the input as `readOnly`.
11
11
  */
12
- autoFilter?: boolean;
12
+ filter?: 'auto' | 'manual' | 'off';
13
+ /**
14
+ * When true, the combobox opens automatically when the input receives focus.
15
+ * When false (default, unless `filter` is `'off'`), the combobox only opens
16
+ * on click, typing, or keyboard navigation.
17
+ *
18
+ * @default false (true when filter is 'off')
19
+ */
20
+ openOnFocus?: boolean;
13
21
  }
14
22
  /**
15
23
  * Set up a combobox with an input trigger (autocomplete/filter pattern).
package/lumx.css CHANGED
@@ -5701,6 +5701,22 @@ table {
5701
5701
  }
5702
5702
  .lumx-combobox-popover__scroll {
5703
5703
  overflow-y: auto;
5704
+ scroll-snap-type: y proximity;
5705
+ }
5706
+ @media (prefers-reduced-motion: no-preference) {
5707
+ .lumx-combobox-popover__scroll {
5708
+ scroll-behavior: smooth;
5709
+ }
5710
+ }
5711
+ .lumx-combobox-popover__scroll::before {
5712
+ content: "";
5713
+ display: block;
5714
+ scroll-snap-align: start;
5715
+ }
5716
+ .lumx-combobox-popover__scroll::after {
5717
+ content: "";
5718
+ display: block;
5719
+ scroll-snap-align: end;
5704
5720
  }
5705
5721
 
5706
5722
  .lumx-combobox-popover:empty, .lumx-combobox-popover:not(:has(.lumx-combobox-option)):not(:has(.lumx-combobox-state)):not(:has(.lumx-combobox-option-skeleton)),
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  },
8
8
  "dependencies": {
9
9
  "@floating-ui/dom": "^1.7.5",
10
- "@lumx/icons": "^4.11.0-next.5",
10
+ "@lumx/icons": "^4.11.0-next.6",
11
11
  "classnames": "^2.3.2",
12
12
  "focus-visible": "^5.0.2",
13
13
  "lodash": "4.18.1",
@@ -69,7 +69,7 @@
69
69
  "update-version-changelog": "yarn version-changelog ../../CHANGELOG.md"
70
70
  },
71
71
  "sideEffects": false,
72
- "version": "4.11.0-next.5",
72
+ "version": "4.11.0-next.6",
73
73
  "devDependencies": {
74
74
  "@rollup/plugin-typescript": "^12.3.0",
75
75
  "@testing-library/dom": "^10.4.1",
@@ -18,6 +18,21 @@
18
18
 
19
19
  &__scroll {
20
20
  overflow-y: auto;
21
+ scroll-snap-type: y proximity;
22
+ @media (prefers-reduced-motion: no-preference) {
23
+ scroll-behavior: smooth;
24
+ }
25
+
26
+ &::before {
27
+ content: '';
28
+ display: block;
29
+ scroll-snap-align: start;
30
+ }
31
+ &::after {
32
+ content: '';
33
+ display: block;
34
+ scroll-snap-align: end;
35
+ }
21
36
  }
22
37
  }
23
38