@underlayerdev/ui 0.9.0 → 0.9.2

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": "@underlayerdev/ui",
3
- "version": "0.9.0",
3
+ "version": "0.9.2",
4
4
  "peerDependencies": {
5
5
  "@angular/cdk": "^22.0.0",
6
6
  "@angular/common": "^22.0.0",
@@ -22,7 +22,8 @@
22
22
  "default": "./fesm2022/underlayerdev-ui.mjs"
23
23
  },
24
24
  "./design-tokens/*": "./design-tokens/*",
25
- "./breakpoints/*": "./breakpoints/*"
25
+ "./breakpoints/*": "./breakpoints/*",
26
+ "./containers/*": "./containers/*"
26
27
  },
27
28
  "type": "module"
28
29
  }
@@ -1538,6 +1538,16 @@ declare class SearchInputComponent implements FormValueControl<string> {
1538
1538
  readonly suggestionsLabel: _angular_core.InputSignal<string | null>;
1539
1539
  /** Shown once the query is non-empty — e.g. live search results. The consumer computes/fetches these as `value` changes (via `[(value)]`/`valueChange`). */
1540
1540
  readonly results: _angular_core.InputSignal<SearchSuggestion[]>;
1541
+ /**
1542
+ * Overrides `results` once the query is non-empty, projecting arbitrary
1543
+ * content (e.g. rich cards with images/prices) instead of the built-in
1544
+ * plain-text rows. `suggestions` (shown while the query is empty) are
1545
+ * unaffected and keep rendering as plain `SearchSuggestion` rows regardless.
1546
+ * When set, arrow-key/Enter option-highlighting is skipped — Enter always
1547
+ * falls through to `searchSubmit` since the projected content owns its own
1548
+ * selection interaction.
1549
+ */
1550
+ readonly resultsTemplate: _angular_core.InputSignal<TemplateRef<unknown> | null>;
1541
1551
  readonly invalid: _angular_core.InputSignal<boolean>;
1542
1552
  readonly errors: _angular_core.InputSignal<readonly WithOptionalFieldTree<ValidationError>[]>;
1543
1553
  readonly value: _angular_core.ModelSignal<string>;
@@ -1562,6 +1572,7 @@ declare class SearchInputComponent implements FormValueControl<string> {
1562
1572
  protected readonly hasQuery: _angular_core.Signal<boolean>;
1563
1573
  protected readonly activeList: _angular_core.Signal<SearchSuggestion[]>;
1564
1574
  protected readonly activeListLabel: _angular_core.Signal<string | null>;
1575
+ protected readonly hasCustomResults: _angular_core.Signal<boolean>;
1565
1576
  protected readonly shouldShowPanel: _angular_core.Signal<boolean>;
1566
1577
  protected readonly optionId: (index: number) => string;
1567
1578
  protected readonly activeDescendantId: _angular_core.Signal<string | undefined>;
@@ -1576,7 +1587,7 @@ declare class SearchInputComponent implements FormValueControl<string> {
1576
1587
  selectSuggestion(suggestion: SearchSuggestion): void;
1577
1588
  private submitSearch;
1578
1589
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SearchInputComponent, never>;
1579
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SearchInputComponent, "ul-search-input", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "errorText": { "alias": "errorText"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "backLabel": { "alias": "backLabel"; "required": false; "isSignal": true; }; "clearLabel": { "alias": "clearLabel"; "required": false; "isSignal": true; }; "suggestions": { "alias": "suggestions"; "required": false; "isSignal": true; }; "suggestionsLabel": { "alias": "suggestionsLabel"; "required": false; "isSignal": true; }; "results": { "alias": "results"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "suggestionSelected": "suggestionSelected"; "searchSubmit": "searchSubmit"; }, never, never, true, never>;
1590
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SearchInputComponent, "ul-search-input", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "errorText": { "alias": "errorText"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "backLabel": { "alias": "backLabel"; "required": false; "isSignal": true; }; "clearLabel": { "alias": "clearLabel"; "required": false; "isSignal": true; }; "suggestions": { "alias": "suggestions"; "required": false; "isSignal": true; }; "suggestionsLabel": { "alias": "suggestionsLabel"; "required": false; "isSignal": true; }; "results": { "alias": "results"; "required": false; "isSignal": true; }; "resultsTemplate": { "alias": "resultsTemplate"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "suggestionSelected": "suggestionSelected"; "searchSubmit": "searchSubmit"; }, never, never, true, never>;
1580
1591
  }
1581
1592
 
1582
1593
  interface SearchSelectOption {