@gravionlabs/helix-ui 22.2.2 → 22.2.3

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gravionlabs/helix-ui",
3
- "version": "22.2.2",
3
+ "version": "22.2.3",
4
4
  "description": "Helix UI: vanilla Angular components on the Helix design tokens — plain CSS, no runtime styling engine.",
5
5
  "license": "MIT",
6
6
  "keywords": [
package/styles.css CHANGED
@@ -5983,6 +5983,39 @@
5983
5983
  transition: none;
5984
5984
  }
5985
5985
  }
5986
+ /* the filter field above the list (same look as the multi-select one) */
5987
+ .hx-select-header {
5988
+ display: flex;
5989
+ align-items: center;
5990
+ padding: var(--h-multiselect-list-header-padding);
5991
+ }
5992
+
5993
+ .hx-select-filter {
5994
+ box-sizing: border-box;
5995
+ flex: 1 1 auto;
5996
+ min-width: 0;
5997
+ padding: var(--h-inputtext-padding-y) var(--h-inputtext-padding-x);
5998
+ border: 1px solid var(--h-inputtext-border-color);
5999
+ border-radius: var(--h-inputtext-border-radius);
6000
+ background: var(--h-inputtext-background);
6001
+ color: var(--h-inputtext-color);
6002
+ font: inherit;
6003
+ outline: 0 none;
6004
+ }
6005
+
6006
+ .hx-select-filter:focus {
6007
+ border-color: var(--h-inputtext-focus-border-color);
6008
+ }
6009
+
6010
+ /* the results count, for screen readers only */
6011
+ .hx-select-sr-only {
6012
+ position: absolute;
6013
+ width: 1px;
6014
+ height: 1px;
6015
+ overflow: hidden;
6016
+ clip-path: inset(50%);
6017
+ white-space: nowrap;
6018
+ }
5986
6019
 
5987
6020
  /* skeleton */
5988
6021
  /*
@@ -4325,6 +4325,13 @@ export declare class HxSelect<V = unknown> implements ControlValueAccessor, Form
4325
4325
  readonly optionDisabled: import("@angular/core").InputSignal<Accessor<never, boolean>>;
4326
4326
  readonly placeholder: import("@angular/core").InputSignal<string>;
4327
4327
  readonly emptyMessage: import("@angular/core").InputSignal<string>;
4328
+ /** A search field above the list that narrows the options (case-insensitive "contains"). */
4329
+ readonly filter: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
4330
+ readonly filterPlaceholder: import("@angular/core").InputSignal<string>;
4331
+ /** What the filter matches: a property name or accessor of an option; default the label. */
4332
+ readonly filterBy: import("@angular/core").InputSignal<Accessor<never, string> | undefined>;
4333
+ /** Shown when the filter matches nothing. */
4334
+ readonly emptyFilterMessage: import("@angular/core").InputSignal<string>;
4328
4335
  readonly size: import("@angular/core").InputSignal<HxSelectSize>;
4329
4336
  readonly variant: import("@angular/core").InputSignal<HxSelectVariant>;
4330
4337
  readonly fluid: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
@@ -4346,8 +4353,12 @@ export declare class HxSelect<V = unknown> implements ControlValueAccessor, Form
4346
4353
  protected readonly positions: ConnectedPosition[];
4347
4354
  private readonly trigger;
4348
4355
  private readonly listbox;
4356
+ private readonly filterField;
4357
+ protected readonly query: import("@angular/core").WritableSignal<string>;
4349
4358
  protected readonly isDisabled: import("@angular/core").Signal<boolean>;
4350
4359
  protected readonly items: import("@angular/core").Signal<HxSelectItem<unknown>[]>;
4360
+ protected readonly visibleItems: import("@angular/core").Signal<HxSelectItem<unknown>[]>;
4361
+ protected readonly resultsLabel: import("@angular/core").Signal<string>;
4351
4362
  protected readonly selected: import("@angular/core").Signal<HxSelectItem<unknown> | undefined>;
4352
4363
  protected readonly canClear: import("@angular/core").Signal<boolean>;
4353
4364
  protected readonly selectedValues: import("@angular/core").Signal<unknown[]>;
@@ -4361,6 +4372,7 @@ export declare class HxSelect<V = unknown> implements ControlValueAccessor, Form
4361
4372
  protected show(): void;
4362
4373
  protected close(refocus?: boolean): void;
4363
4374
  protected onAttach(): void;
4375
+ protected onFilterKeydown(event: KeyboardEvent): void;
4364
4376
  protected onTriggerKeydown(event: KeyboardEvent): void;
4365
4377
  protected onOverlayKeydown(event: KeyboardEvent): void;
4366
4378
  protected onOutsideClick(event: MouseEvent): void;
@@ -4399,6 +4411,26 @@ export declare class HxSelect<V = unknown> implements ControlValueAccessor, Form
4399
4411
  "required": false;
4400
4412
  "isSignal": true;
4401
4413
  };
4414
+ "filter": {
4415
+ "alias": "filter";
4416
+ "required": false;
4417
+ "isSignal": true;
4418
+ };
4419
+ "filterPlaceholder": {
4420
+ "alias": "filterPlaceholder";
4421
+ "required": false;
4422
+ "isSignal": true;
4423
+ };
4424
+ "filterBy": {
4425
+ "alias": "filterBy";
4426
+ "required": false;
4427
+ "isSignal": true;
4428
+ };
4429
+ "emptyFilterMessage": {
4430
+ "alias": "emptyFilterMessage";
4431
+ "required": false;
4432
+ "isSignal": true;
4433
+ };
4402
4434
  "size": {
4403
4435
  "alias": "size";
4404
4436
  "required": false;