@sinequa/galactik 2.1.1 → 2.2.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.
@@ -1,7 +1,7 @@
1
1
  import * as i0 from "@angular/core";
2
2
  import { ApplicationRef, ChangeDetectionStrategy, Component, DestroyRef, Directive, ElementRef, EnvironmentInjector, HostAttributeToken, InjectionToken, Injector, Service, TemplateRef, afterNextRender, afterRenderEffect, booleanAttribute, computed, contentChild, contentChildren, createComponent, effect, forwardRef, inject, input, linkedSignal, makeEnvironmentProviders, model, numberAttribute, output, provideAppInitializer, resource, signal, untracked, viewChild } from "@angular/core";
3
3
  import { cn } from "cn";
4
- import { arrow, autoUpdate, computePosition, flip, offset, shift, size } from "@floating-ui/dom";
4
+ import { arrow, autoUpdate, computePosition, flip, hide, offset, shift, size } from "@floating-ui/dom";
5
5
  import { DOCUMENT, NgTemplateOutlet } from "@angular/common";
6
6
  import { cva } from "class-variance-authority";
7
7
  import * as i1$5 from "@angular/aria/menu";
@@ -8809,13 +8809,15 @@ function injectPopover(options) {
8809
8809
  padding: 8,
8810
8810
  apply: ({ availableHeight }) => {
8811
8811
  el.style.setProperty("--popover-available-height", `${availableHeight}px`);
8812
+ if (options.matchTriggerWidth()) el.style.width = `${triggerEl.offsetWidth}px`;
8812
8813
  }
8813
- })
8814
+ }),
8815
+ ...options.hideWhenTriggerHidden?.() ? [hide({ strategy: "referenceHidden" })] : []
8814
8816
  ]
8815
- }).then(({ x, y }) => {
8817
+ }).then(({ x, y, middlewareData }) => {
8816
8818
  el.style.left = `${x}px`;
8817
8819
  el.style.top = `${y}px`;
8818
- el.style.visibility = "";
8820
+ el.style.visibility = middlewareData.hide?.referenceHidden ? "hidden" : "";
8819
8821
  width.set(options.matchTriggerWidth() ? triggerEl.offsetWidth : void 0);
8820
8822
  });
8821
8823
  }
@@ -8831,6 +8833,7 @@ function injectPopover(options) {
8831
8833
  } else {
8832
8834
  cleanupAutoUpdate?.();
8833
8835
  cleanupAutoUpdate = null;
8836
+ el.style.visibility = "hidden";
8834
8837
  }
8835
8838
  });
8836
8839
  destroyRef.onDestroy(() => cleanupAutoUpdate?.());
@@ -8881,6 +8884,10 @@ var PopoverDirective = class PopoverDirective {
8881
8884
  ...ngDevMode ? { debugName: "matchTriggerWidth" } : /* istanbul ignore next */ {},
8882
8885
  transform: booleanAttribute
8883
8886
  });
8887
+ hideWhenTriggerHidden = input(false, {
8888
+ ...ngDevMode ? { debugName: "hideWhenTriggerHidden" } : /* istanbul ignore next */ {},
8889
+ transform: booleanAttribute
8890
+ });
8884
8891
  elementRef = inject(ElementRef);
8885
8892
  _isDropdown = inject(new HostAttributeToken("dropdown"), { optional: true }) !== null;
8886
8893
  _config = computed(() => ({
@@ -8892,7 +8899,8 @@ var PopoverDirective = class PopoverDirective {
8892
8899
  offset: this.offset,
8893
8900
  config: this._config,
8894
8901
  lockPosition: this.lockPosition,
8895
- matchTriggerWidth: this.matchTriggerWidth
8902
+ matchTriggerWidth: this.matchTriggerWidth,
8903
+ hideWhenTriggerHidden: this.hideWhenTriggerHidden
8896
8904
  });
8897
8905
  width = this._p.width;
8898
8906
  state = this._p.state;
@@ -8961,6 +8969,13 @@ var PopoverDirective = class PopoverDirective {
8961
8969
  isSignal: true,
8962
8970
  isRequired: false,
8963
8971
  transformFunction: null
8972
+ },
8973
+ hideWhenTriggerHidden: {
8974
+ classPropertyName: "hideWhenTriggerHidden",
8975
+ publicName: "hideWhenTriggerHidden",
8976
+ isSignal: true,
8977
+ isRequired: false,
8978
+ transformFunction: null
8964
8979
  }
8965
8980
  },
8966
8981
  host: {
@@ -9039,6 +9054,14 @@ i0.ɵɵngDeclareClassMetadata({
9039
9054
  alias: "matchTriggerWidth",
9040
9055
  required: false
9041
9056
  }]
9057
+ }],
9058
+ hideWhenTriggerHidden: [{
9059
+ type: i0.Input,
9060
+ args: [{
9061
+ isSignal: true,
9062
+ alias: "hideWhenTriggerHidden",
9063
+ required: false
9064
+ }]
9042
9065
  }]
9043
9066
  }
9044
9067
  });
@@ -9051,6 +9074,7 @@ function injectFloatingPanel(options) {
9051
9074
  const topLayer = resolve(options.topLayer);
9052
9075
  const matchAnchorWidth = resolve(options.matchAnchorWidth);
9053
9076
  const allowFlip = options.flip === void 0 ? true : resolve(options.flip);
9077
+ const hideWhenAnchorHidden = resolve(options.hideWhenAnchorHidden);
9054
9078
  const arrowElement = options.arrow?.();
9055
9079
  panel.style.visibility = "hidden";
9056
9080
  if (!matchAnchorWidth && sized.has(panel)) {
@@ -9074,17 +9098,21 @@ function injectFloatingPanel(options) {
9074
9098
  element: arrowElement,
9075
9099
  padding: 6
9076
9100
  })] : [],
9077
- ...matchAnchorWidth ? [size({ apply: ({ rects, elements }) => {
9078
- elements.floating.style.width = `${rects.reference.width}px`;
9079
- sized.add(elements.floating);
9080
- } })] : []
9101
+ ...matchAnchorWidth || options.maxHeightVariable ? [size({ apply: ({ rects, elements, availableHeight }) => {
9102
+ if (matchAnchorWidth) {
9103
+ elements.floating.style.width = `${rects.reference.width}px`;
9104
+ sized.add(elements.floating);
9105
+ }
9106
+ if (options.maxHeightVariable) elements.floating.style.setProperty(options.maxHeightVariable, `${Math.max(0, availableHeight)}px`);
9107
+ } })] : [],
9108
+ ...hideWhenAnchorHidden ? [hide({ strategy: "referenceHidden" })] : []
9081
9109
  ]
9082
9110
  }).then(({ x, y, placement: placed, middlewareData }) => {
9083
9111
  panel.style.left = `${x}px`;
9084
9112
  panel.style.top = `${y}px`;
9085
9113
  if (arrowElement) placeArrow(panel, arrowElement, placed, middlewareData.arrow);
9086
9114
  if (options.anchorWidthVariable) panel.style.setProperty(options.anchorWidthVariable, `${anchor.offsetWidth}px`);
9087
- panel.style.visibility = "";
9115
+ panel.style.visibility = middlewareData.hide?.referenceHidden ? "hidden" : "";
9088
9116
  options.afterPosition?.(anchor, panel);
9089
9117
  });
9090
9118
  });
@@ -11835,12 +11863,6 @@ i0.ɵɵngDeclareClassMetadata({
11835
11863
  }]
11836
11864
  }
11837
11865
  });
11838
- function fixStaleComboboxRelay(combobox) {
11839
- afterRenderEffect(() => {
11840
- const instance = combobox();
11841
- if (!instance.expanded()) instance._pattern.keyboardEventRelay.set(void 0);
11842
- });
11843
- }
11844
11866
  const INPUT_CONTROL_CLASS = "input-control";
11845
11867
  const INPUT_ICON_LEFT_CLASS = "input-icon-left";
11846
11868
  const INPUT_ICON_RIGHT_CLASS = "input-icon-right";
@@ -12477,7 +12499,6 @@ var AutocompleteComponent = class AutocompleteComponent {
12477
12499
  }, ...ngDevMode ? [{ debugName: "suggestions" }] : /* istanbul ignore next */ []);
12478
12500
  open = signal(false, ...ngDevMode ? [{ debugName: "open" }] : /* istanbul ignore next */ []);
12479
12501
  constructor() {
12480
- fixStaleComboboxRelay(() => this.combobox());
12481
12502
  effect((onCleanup) => {
12482
12503
  const query = this.query();
12483
12504
  if (query === untracked(this.settledQuery)) return;
@@ -16046,9 +16067,11 @@ i0.ɵɵngDeclareClassMetadata({
16046
16067
  }] }
16047
16068
  });
16048
16069
  const switchRootVariants = cva([
16049
- "relative inline-flex h-11 w-11 cursor-pointer items-center justify-center select-none",
16070
+ "relative inline-flex min-h-(--switch-hitbox) cursor-pointer items-center gap-2 select-none [--switch-hitbox:2.75rem]",
16050
16071
  "has-disabled:cursor-not-allowed",
16051
16072
  "[&_.switch-input]:absolute [&_.switch-input]:-m-px [&_.switch-input]:h-px [&_.switch-input]:w-px [&_.switch-input]:overflow-hidden [&_.switch-input]:border-0 [&_.switch-input]:p-0 [&_.switch-input]:whitespace-nowrap [&_.switch-input]:[clip:rect(0,0,0,0)]",
16073
+ "[&_.switch-hitbox]:relative [&_.switch-hitbox]:inline-flex [&_.switch-hitbox]:h-(--switch-hitbox) [&_.switch-hitbox]:w-(--switch-hitbox) [&_.switch-hitbox]:shrink-0 [&_.switch-hitbox]:items-center [&_.switch-hitbox]:justify-center",
16074
+ "[&_.switch-label]:min-w-0 [&_.switch-label:empty]:hidden",
16052
16075
  "[&_.switch-track]:relative [&_.switch-track]:inline-flex [&_.switch-track]:shrink-0 [&_.switch-track]:rounded-full",
16053
16076
  "[&_.switch-track]:border [&_.switch-track]:border-solid [&_.switch-track]:border-(--stroke-primary-base) [&_.switch-track]:bg-(--bg-neutral-white)",
16054
16077
  "[&_.switch-track]:transition-[background,border-color] [&_.switch-track]:duration-120 [&_.switch-track]:ease-[ease] motion-reduce:[&_.switch-track]:transition-none",
@@ -16100,8 +16123,12 @@ var SwitchComponent = class SwitchComponent {
16100
16123
  ...ngDevMode ? { debugName: "presentational" } : /* istanbul ignore next */ {},
16101
16124
  transform: booleanAttribute
16102
16125
  });
16126
+ compact = input(false, {
16127
+ ...ngDevMode ? { debugName: "compact" } : /* istanbul ignore next */ {},
16128
+ transform: booleanAttribute
16129
+ });
16103
16130
  tabIndex = input(void 0, ...ngDevMode ? [{ debugName: "tabIndex" }] : /* istanbul ignore next */ []);
16104
- variants = computed(() => cn(switchRootVariants({ size: this.size() }), this.presentational() && "pointer-events-none", this.class()), ...ngDevMode ? [{ debugName: "variants" }] : /* istanbul ignore next */ []);
16131
+ variants = computed(() => cn(switchRootVariants({ size: this.size() }), this.presentational() && "pointer-events-none", (this.compact() || this.presentational()) && "[--switch-hitbox:auto]", this.class()), ...ngDevMode ? [{ debugName: "variants" }] : /* istanbul ignore next */ []);
16105
16132
  onCheckedChange(event) {
16106
16133
  const input = event.target;
16107
16134
  this.checked.set(input.checked);
@@ -16170,6 +16197,13 @@ var SwitchComponent = class SwitchComponent {
16170
16197
  isRequired: false,
16171
16198
  transformFunction: null
16172
16199
  },
16200
+ compact: {
16201
+ classPropertyName: "compact",
16202
+ publicName: "compact",
16203
+ isSignal: true,
16204
+ isRequired: false,
16205
+ transformFunction: null
16206
+ },
16173
16207
  tabIndex: {
16174
16208
  classPropertyName: "tabIndex",
16175
16209
  publicName: "tabIndex",
@@ -16196,12 +16230,15 @@ var SwitchComponent = class SwitchComponent {
16196
16230
  [attr.inert]="presentational() ? '' : null"
16197
16231
  (change)="onCheckedChange($event)"
16198
16232
  >
16199
- <span class="switch-track">
16200
- <span class="switch-thumb">
16201
- <XMarkIcon class="switch-thumb-icon switch-thumb-icon-off"/>
16202
- <CheckIcon class="switch-thumb-icon switch-thumb-icon-on"/>
16233
+ <span class="switch-hitbox">
16234
+ <span class="switch-track">
16235
+ <span class="switch-thumb">
16236
+ <XMarkIcon class="switch-thumb-icon switch-thumb-icon-off"/>
16237
+ <CheckIcon class="switch-thumb-icon switch-thumb-icon-on"/>
16238
+ </span>
16203
16239
  </span>
16204
16240
  </span>
16241
+ <span class="switch-label"><ng-content /></span>
16205
16242
  </label>
16206
16243
  `,
16207
16244
  isInline: true,
@@ -16215,7 +16252,8 @@ var SwitchComponent = class SwitchComponent {
16215
16252
  type: CheckIcon,
16216
16253
  selector: "check, check-icon, Check, CheckIcon",
16217
16254
  inputs: ["class"]
16218
- }]
16255
+ }],
16256
+ changeDetection: i0.ChangeDetectionStrategy.OnPush
16219
16257
  });
16220
16258
  };
16221
16259
  i0.ɵɵngDeclareClassMetadata({
@@ -16229,6 +16267,7 @@ i0.ɵɵngDeclareClassMetadata({
16229
16267
  selector: "switch, Switch",
16230
16268
  imports: [XMarkIcon, CheckIcon],
16231
16269
  standalone: true,
16270
+ changeDetection: ChangeDetectionStrategy.OnPush,
16232
16271
  template: `
16233
16272
  <label [class]="variants()" [attr.aria-hidden]="presentational() ? 'true' : null">
16234
16273
  <input
@@ -16244,12 +16283,15 @@ i0.ɵɵngDeclareClassMetadata({
16244
16283
  [attr.inert]="presentational() ? '' : null"
16245
16284
  (change)="onCheckedChange($event)"
16246
16285
  >
16247
- <span class="switch-track">
16248
- <span class="switch-thumb">
16249
- <XMarkIcon class="switch-thumb-icon switch-thumb-icon-off"/>
16250
- <CheckIcon class="switch-thumb-icon switch-thumb-icon-on"/>
16286
+ <span class="switch-hitbox">
16287
+ <span class="switch-track">
16288
+ <span class="switch-thumb">
16289
+ <XMarkIcon class="switch-thumb-icon switch-thumb-icon-off"/>
16290
+ <CheckIcon class="switch-thumb-icon switch-thumb-icon-on"/>
16291
+ </span>
16251
16292
  </span>
16252
16293
  </span>
16294
+ <span class="switch-label"><ng-content /></span>
16253
16295
  </label>
16254
16296
  `,
16255
16297
  host: { class: "contents" }
@@ -16315,6 +16357,14 @@ i0.ɵɵngDeclareClassMetadata({
16315
16357
  required: false
16316
16358
  }]
16317
16359
  }],
16360
+ compact: [{
16361
+ type: i0.Input,
16362
+ args: [{
16363
+ isSignal: true,
16364
+ alias: "compact",
16365
+ required: false
16366
+ }]
16367
+ }],
16318
16368
  tabIndex: [{
16319
16369
  type: i0.Input,
16320
16370
  args: [{
@@ -19854,10 +19904,57 @@ i0.ɵɵngDeclareClassMetadata({
19854
19904
  }]
19855
19905
  }
19856
19906
  });
19857
- var SearchInputComponent = class SearchInputComponent {
19907
+ const SEARCH_INPUT_IMPORTS = [
19908
+ SearchIcon,
19909
+ ButtonComponent,
19910
+ InputComponent,
19911
+ InputControlDirective,
19912
+ InputIconLeftDirective,
19913
+ InputIconRightDirective,
19914
+ XMarkIcon,
19915
+ TooltipDirective
19916
+ ];
19917
+ const BEFORE_CONTROL$1 = `
19918
+ <input-group [size]="size()" [textSize]="textSize()" [class]="cn('group/search', class())">
19919
+ <span input-icon-left>
19920
+ <SearchIcon [class]="searchIconClass()" />
19921
+ </span>`;
19922
+ const CONTROL_ATTRIBUTES$1 = `
19923
+ input-control
19924
+ #search
19925
+ type="search"
19926
+ spellcheck="false"
19927
+ autocapitalize="off"
19928
+ autocomplete="off"
19929
+ autocorrect="off"
19930
+ [disabled]="disabled()"
19931
+ [placeholder]="placeholder()"
19932
+ [attr.aria-label]="ariaLabel()"
19933
+ [attr.aria-keyshortcuts]="hotkey()"`;
19934
+ const AFTER_CONTROL$1 = `
19935
+ <button
19936
+ input-icon-right
19937
+ variant="tertiary"
19938
+ scheme="neutral"
19939
+ [iconOnly]="true"
19940
+ [size]="buttonSize()"
19941
+ type="button"
19942
+ [class]="value()
19943
+ ? 'rotate-90 opacity-100 transition-[rotate,opacity] duration-500'
19944
+ : 'rotate-0 opacity-0 pointer-events-none transition-[rotate,opacity] duration-500'"
19945
+ [tabindex]="value() ? 0 : -1"
19946
+ [attr.aria-label]="clearLabel()"
19947
+ [tooltip]="clearLabel()"
19948
+ (keydown.enter)="clearSearch($event)"
19949
+ (click)="clearSearch($event)">
19950
+ <XMarkIcon [class]="iconClass()" />
19951
+ <span class="sr-only">{{ clearLabel() }}</span>
19952
+ </button>
19953
+ <ng-content />
19954
+ </input-group>`;
19955
+ var SearchInputBase = class SearchInputBase {
19858
19956
  cn = cn;
19859
19957
  searchInput = viewChild.required("search", ...ngDevMode ? [{ debugName: "searchInput" }] : /* istanbul ignore next */ []);
19860
- combobox = viewChild.required(Combobox, ...ngDevMode ? [{ debugName: "combobox" }] : /* istanbul ignore next */ []);
19861
19958
  value = model("", ...ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []);
19862
19959
  placeholder = input("Search...", ...ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []);
19863
19960
  disabled = input(false, {
@@ -19877,9 +19974,6 @@ var SearchInputComponent = class SearchInputComponent {
19877
19974
  buttonSize = computed(() => this.size() === "sm" || this.smallText() ? "xs" : "sm", ...ngDevMode ? [{ debugName: "buttonSize" }] : /* istanbul ignore next */ []);
19878
19975
  iconClass = computed(() => this.smallText() ? "size-3" : "", ...ngDevMode ? [{ debugName: "iconClass" }] : /* istanbul ignore next */ []);
19879
19976
  searchIconClass = computed(() => cn("rotate-0 transition-[rotate] duration-500 group-focus-within/search:rotate-90", this.iconClass()), ...ngDevMode ? [{ debugName: "searchIconClass" }] : /* istanbul ignore next */ []);
19880
- constructor() {
19881
- fixStaleComboboxRelay(() => this.combobox());
19882
- }
19883
19977
  clearSearch(e) {
19884
19978
  e.stopImmediatePropagation();
19885
19979
  this.value.set("");
@@ -19888,16 +19982,15 @@ var SearchInputComponent = class SearchInputComponent {
19888
19982
  minVersion: "12.0.0",
19889
19983
  version: "22.2.1",
19890
19984
  ngImport: i0,
19891
- type: SearchInputComponent,
19985
+ type: SearchInputBase,
19892
19986
  deps: [],
19893
- target: i0.ɵɵFactoryTarget.Component
19987
+ target: i0.ɵɵFactoryTarget.Directive
19894
19988
  });
19895
- static ɵcmp = i0.ɵɵngDeclareComponent({
19989
+ static ɵdir = i0.ɵɵngDeclareDirective({
19896
19990
  minVersion: "17.2.0",
19897
19991
  version: "22.2.1",
19898
- type: SearchInputComponent,
19992
+ type: SearchInputBase,
19899
19993
  isStandalone: true,
19900
- selector: "SearchInput, search-input, searchinput",
19901
19994
  inputs: {
19902
19995
  value: {
19903
19996
  classPropertyName: "value",
@@ -19971,54 +20064,119 @@ var SearchInputComponent = class SearchInputComponent {
19971
20064
  predicate: ["search"],
19972
20065
  descendants: true,
19973
20066
  isSignal: true
20067
+ }],
20068
+ ngImport: i0
20069
+ });
20070
+ };
20071
+ i0.ɵɵngDeclareClassMetadata({
20072
+ minVersion: "12.0.0",
20073
+ version: "22.2.1",
20074
+ ngImport: i0,
20075
+ type: SearchInputBase,
20076
+ decorators: [{
20077
+ type: Directive,
20078
+ args: [{ host: { "[class]": "cn(disabled() && 'pointer-events-none opacity-50')" } }]
20079
+ }],
20080
+ propDecorators: {
20081
+ searchInput: [{
20082
+ type: i0.ViewChild,
20083
+ args: ["search", { isSignal: true }]
20084
+ }],
20085
+ value: [{
20086
+ type: i0.Input,
20087
+ args: [{
20088
+ isSignal: true,
20089
+ alias: "value",
20090
+ required: false
20091
+ }]
19974
20092
  }, {
19975
- propertyName: "combobox",
19976
- first: true,
19977
- predicate: Combobox,
19978
- descendants: true,
19979
- isSignal: true
20093
+ type: i0.Output,
20094
+ args: ["valueChange"]
20095
+ }],
20096
+ placeholder: [{
20097
+ type: i0.Input,
20098
+ args: [{
20099
+ isSignal: true,
20100
+ alias: "placeholder",
20101
+ required: false
20102
+ }]
20103
+ }],
20104
+ disabled: [{
20105
+ type: i0.Input,
20106
+ args: [{
20107
+ isSignal: true,
20108
+ alias: "disabled",
20109
+ required: false
20110
+ }]
20111
+ }],
20112
+ ariaLabel: [{
20113
+ type: i0.Input,
20114
+ args: [{
20115
+ isSignal: true,
20116
+ alias: "aria-label",
20117
+ required: false
20118
+ }]
20119
+ }],
20120
+ hotkey: [{
20121
+ type: i0.Input,
20122
+ args: [{
20123
+ isSignal: true,
20124
+ alias: "hotkey",
20125
+ required: false
20126
+ }]
20127
+ }],
20128
+ clearLabel: [{
20129
+ type: i0.Input,
20130
+ args: [{
20131
+ isSignal: true,
20132
+ alias: "clearLabel",
20133
+ required: false
20134
+ }]
20135
+ }],
20136
+ class: [{
20137
+ type: i0.Input,
20138
+ args: [{
20139
+ isSignal: true,
20140
+ alias: "class",
20141
+ required: false
20142
+ }]
20143
+ }],
20144
+ size: [{
20145
+ type: i0.Input,
20146
+ args: [{
20147
+ isSignal: true,
20148
+ alias: "size",
20149
+ required: false
20150
+ }]
19980
20151
  }],
20152
+ textSize: [{
20153
+ type: i0.Input,
20154
+ args: [{
20155
+ isSignal: true,
20156
+ alias: "textSize",
20157
+ required: false
20158
+ }]
20159
+ }]
20160
+ }
20161
+ });
20162
+ var SearchInputComponent = class SearchInputComponent extends SearchInputBase {
20163
+ static ɵfac = i0.ɵɵngDeclareFactory({
20164
+ minVersion: "12.0.0",
20165
+ version: "22.2.1",
19981
20166
  ngImport: i0,
19982
- template: `
19983
- <input-group [size]="size()" [textSize]="textSize()" [class]="cn('group/search', class())">
19984
- <span input-icon-left>
19985
- <SearchIcon [class]="searchIconClass()" />
19986
- </span>
19987
- <input
19988
- input-control
19989
- #search
19990
- ngCombobox
19991
- type="search"
19992
- spellcheck="false"
19993
- autocapitalize="off"
19994
- autocomplete="off"
19995
- autocorrect="off"
19996
- [disabled]="disabled()"
19997
- [placeholder]="placeholder()"
19998
- [(value)]="value"
19999
- [attr.aria-label]="ariaLabel()"
20000
- [attr.aria-keyshortcuts]="hotkey()" />
20001
- <button
20002
- input-icon-right
20003
- variant="tertiary"
20004
- scheme="neutral"
20005
- [iconOnly]="true"
20006
- [size]="buttonSize()"
20007
- type="button"
20008
- [class]="value()
20009
- ? 'rotate-90 opacity-100 transition-[rotate,opacity] duration-500'
20010
- : 'rotate-0 opacity-0 pointer-events-none transition-[rotate,opacity] duration-500'"
20011
- [tabindex]="value() ? 0 : -1"
20012
- [attr.aria-label]="clearLabel()"
20013
- [tooltip]="clearLabel()"
20014
- (keydown.enter)="clearSearch($event)"
20015
- (click)="clearSearch($event)">
20016
- <XMarkIcon [class]="iconClass()" />
20017
- <span class="sr-only">{{ clearLabel() }}</span>
20018
- </button>
20019
- <ng-content />
20020
- </input-group>
20021
- `,
20167
+ type: SearchInputComponent,
20168
+ deps: null,
20169
+ target: i0.ɵɵFactoryTarget.Component
20170
+ });
20171
+ static ɵcmp = i0.ɵɵngDeclareComponent({
20172
+ minVersion: "14.0.0",
20173
+ version: "22.2.1",
20174
+ type: SearchInputComponent,
20175
+ isStandalone: true,
20176
+ selector: "SearchInput:not([suggestions]), search-input:not([suggestions]), searchinput:not([suggestions])",
20177
+ usesInheritance: true,
20178
+ ngImport: i0,
20179
+ template: "\n <input-group [size]=\"size()\" [textSize]=\"textSize()\" [class]=\"cn('group/search', class())\">\n <span input-icon-left>\n <SearchIcon [class]=\"searchIconClass()\" />\n </span>\n <input \n input-control\n #search\n type=\"search\"\n spellcheck=\"false\"\n autocapitalize=\"off\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n [disabled]=\"disabled()\"\n [placeholder]=\"placeholder()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-keyshortcuts]=\"hotkey()\"\n [value]=\"value()\"\n (input)=\"value.set($any($event.target).value)\" />\n <button\n input-icon-right\n variant=\"tertiary\"\n scheme=\"neutral\"\n [iconOnly]=\"true\"\n [size]=\"buttonSize()\"\n type=\"button\"\n [class]=\"value()\n ? 'rotate-90 opacity-100 transition-[rotate,opacity] duration-500'\n : 'rotate-0 opacity-0 pointer-events-none transition-[rotate,opacity] duration-500'\"\n [tabindex]=\"value() ? 0 : -1\"\n [attr.aria-label]=\"clearLabel()\"\n [tooltip]=\"clearLabel()\"\n (keydown.enter)=\"clearSearch($event)\"\n (click)=\"clearSearch($event)\">\n <XMarkIcon [class]=\"iconClass()\" />\n <span class=\"sr-only\">{{ clearLabel() }}</span>\n </button>\n <ng-content />\n </input-group>\n ",
20022
20180
  isInline: true,
20023
20181
  dependencies: [
20024
20182
  {
@@ -20039,23 +20197,6 @@ var SearchInputComponent = class SearchInputComponent {
20039
20197
  "size"
20040
20198
  ]
20041
20199
  },
20042
- {
20043
- kind: "directive",
20044
- type: Combobox,
20045
- selector: "[ngCombobox]",
20046
- inputs: [
20047
- "disabled",
20048
- "readonly",
20049
- "softDisabled",
20050
- "alwaysExpanded",
20051
- "tabindex",
20052
- "expanded",
20053
- "value",
20054
- "inlineSuggestion"
20055
- ],
20056
- outputs: ["expandedChange", "valueChange"],
20057
- exportAs: ["ngCombobox"]
20058
- },
20059
20200
  {
20060
20201
  kind: "directive",
20061
20202
  type: InputComponent,
@@ -20131,373 +20272,43 @@ i0.ɵɵngDeclareClassMetadata({
20131
20272
  decorators: [{
20132
20273
  type: Component,
20133
20274
  args: [{
20134
- selector: "SearchInput, search-input, searchinput",
20275
+ selector: "SearchInput:not([suggestions]), search-input:not([suggestions]), searchinput:not([suggestions])",
20135
20276
  standalone: true,
20136
- imports: [
20137
- SearchIcon,
20138
- ButtonComponent,
20139
- Combobox,
20140
- InputComponent,
20141
- InputControlDirective,
20142
- InputIconLeftDirective,
20143
- InputIconRightDirective,
20144
- XMarkIcon,
20145
- TooltipDirective
20146
- ],
20147
- template: `
20148
- <input-group [size]="size()" [textSize]="textSize()" [class]="cn('group/search', class())">
20149
- <span input-icon-left>
20150
- <SearchIcon [class]="searchIconClass()" />
20151
- </span>
20152
- <input
20153
- input-control
20154
- #search
20155
- ngCombobox
20156
- type="search"
20157
- spellcheck="false"
20158
- autocapitalize="off"
20159
- autocomplete="off"
20160
- autocorrect="off"
20161
- [disabled]="disabled()"
20162
- [placeholder]="placeholder()"
20163
- [(value)]="value"
20164
- [attr.aria-label]="ariaLabel()"
20165
- [attr.aria-keyshortcuts]="hotkey()" />
20166
- <button
20167
- input-icon-right
20168
- variant="tertiary"
20169
- scheme="neutral"
20170
- [iconOnly]="true"
20171
- [size]="buttonSize()"
20172
- type="button"
20173
- [class]="value()
20174
- ? 'rotate-90 opacity-100 transition-[rotate,opacity] duration-500'
20175
- : 'rotate-0 opacity-0 pointer-events-none transition-[rotate,opacity] duration-500'"
20176
- [tabindex]="value() ? 0 : -1"
20177
- [attr.aria-label]="clearLabel()"
20178
- [tooltip]="clearLabel()"
20179
- (keydown.enter)="clearSearch($event)"
20180
- (click)="clearSearch($event)">
20181
- <XMarkIcon [class]="iconClass()" />
20182
- <span class="sr-only">{{ clearLabel() }}</span>
20183
- </button>
20184
- <ng-content />
20185
- </input-group>
20186
- `,
20187
- host: { "[class]": "cn(disabled() && 'pointer-events-none opacity-50')" }
20188
- }]
20189
- }],
20190
- ctorParameters: () => [],
20191
- propDecorators: {
20192
- searchInput: [{
20193
- type: i0.ViewChild,
20194
- args: ["search", { isSignal: true }]
20195
- }],
20196
- combobox: [{
20197
- type: i0.ViewChild,
20198
- args: [i0.forwardRef(() => Combobox), { isSignal: true }]
20199
- }],
20200
- value: [{
20201
- type: i0.Input,
20202
- args: [{
20203
- isSignal: true,
20204
- alias: "value",
20205
- required: false
20206
- }]
20207
- }, {
20208
- type: i0.Output,
20209
- args: ["valueChange"]
20210
- }],
20211
- placeholder: [{
20212
- type: i0.Input,
20213
- args: [{
20214
- isSignal: true,
20215
- alias: "placeholder",
20216
- required: false
20217
- }]
20218
- }],
20219
- disabled: [{
20220
- type: i0.Input,
20221
- args: [{
20222
- isSignal: true,
20223
- alias: "disabled",
20224
- required: false
20225
- }]
20226
- }],
20227
- ariaLabel: [{
20228
- type: i0.Input,
20229
- args: [{
20230
- isSignal: true,
20231
- alias: "aria-label",
20232
- required: false
20233
- }]
20234
- }],
20235
- hotkey: [{
20236
- type: i0.Input,
20237
- args: [{
20238
- isSignal: true,
20239
- alias: "hotkey",
20240
- required: false
20241
- }]
20242
- }],
20243
- clearLabel: [{
20244
- type: i0.Input,
20245
- args: [{
20246
- isSignal: true,
20247
- alias: "clearLabel",
20248
- required: false
20249
- }]
20250
- }],
20251
- class: [{
20252
- type: i0.Input,
20253
- args: [{
20254
- isSignal: true,
20255
- alias: "class",
20256
- required: false
20257
- }]
20258
- }],
20259
- size: [{
20260
- type: i0.Input,
20261
- args: [{
20262
- isSignal: true,
20263
- alias: "size",
20264
- required: false
20265
- }]
20266
- }],
20267
- textSize: [{
20268
- type: i0.Input,
20269
- args: [{
20270
- isSignal: true,
20271
- alias: "textSize",
20272
- required: false
20273
- }]
20277
+ imports: SEARCH_INPUT_IMPORTS,
20278
+ template: `${BEFORE_CONTROL$1}
20279
+ <input ${CONTROL_ATTRIBUTES$1}
20280
+ [value]="value()"
20281
+ (input)="value.set($any($event.target).value)" />${AFTER_CONTROL$1}
20282
+ `
20274
20283
  }]
20275
- }
20276
- });
20277
- const SB_ICON_CLASS = "sb-icon";
20278
- const SB_INPUT_CLASS = "sb-input";
20279
- const searchBarVariants = cva([
20280
- "box-border inline-flex cursor-text items-center bg-(--bg-neutral-white)",
20281
- "rounded-(--radius-rounded) border border-solid border-(--stroke-primary-muted)",
20282
- "transition-[border-color,background] duration-120 ease-[ease] motion-reduce:transition-none",
20283
- "hover:not-has-focus:not-has-disabled:bg-(--bg-primary-lighter)",
20284
- "hover:not-has-focus:not-has-disabled:border-(--stroke-primary-hovered)",
20285
- "has-focus:not-has-disabled:border-(--stroke-primary-pressed)",
20286
- "has-[:focus-visible]:outline-2 has-[:focus-visible]:outline-offset-2 has-[:focus-visible]:outline-(--stroke-focus) has-[:focus-visible]:outline-solid",
20287
- "has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:border-(--stroke-neutral-disabled) has-disabled:bg-(--bg-neutral-base)",
20288
- "[&_.sb-icon]:inline-flex [&_.sb-icon]:shrink-0 [&_.sb-icon]:items-center [&_.sb-icon]:justify-center [&_.sb-icon]:leading-none [&_.sb-icon]:text-(--font-primary-muted)",
20289
- "has-disabled:[&_.sb-icon]:text-(--font-neutral-muted)",
20290
- "[&_.sb-input]:min-w-0 [&_.sb-input]:flex-1 [&_.sb-input]:border-0 [&_.sb-input]:bg-transparent [&_.sb-input]:outline-none",
20291
- "[&_.sb-input]:p-0 [&_.sb-input]:font-[family-name:var(--family-base),sans-serif] [&_.sb-input]:leading-[1.4] [&_.sb-input]:text-(--font-neutral-black)",
20292
- "[&_.sb-input]:placeholder:text-(--font-primary-muted)",
20293
- "has-disabled:[&_.sb-input]:text-(--font-neutral-muted)"
20294
- ], {
20295
- variants: { size: {
20296
- small: "h-6 gap-(--spacing-xs) px-(--spacing-xs) [&_.sb-icon]:text-(length:--icon-xs) [&_.sb-input]:text-(length:--size-xs)",
20297
- medium: "h-9 gap-(--spacing-xs) px-(--spacing-md) [&_.sb-icon]:text-(length:--icon-sm) [&_.sb-input]:text-(length:--size-base)",
20298
- large: "h-(--row-height-lg) gap-(--spacing-2xs) px-(--spacing-md) [&_.sb-icon]:text-base [&_.sb-input]:text-(length:--size-lg)"
20299
- } },
20300
- defaultVariants: { size: "large" }
20284
+ }]
20301
20285
  });
20302
- var SearchBarComponent = class SearchBarComponent {
20303
- cn = cn;
20304
- searchBarVariants = searchBarVariants;
20305
- searchNativeReset = INPUT_SEARCH_NATIVE_RESET;
20306
- searchInput = viewChild.required("search", ...ngDevMode ? [{ debugName: "searchInput" }] : /* istanbul ignore next */ []);
20286
+ var SearchInputSuggestionsComponent = class SearchInputSuggestionsComponent extends SearchInputBase {
20307
20287
  combobox = viewChild.required(Combobox, ...ngDevMode ? [{ debugName: "combobox" }] : /* istanbul ignore next */ []);
20308
- value = model("", ...ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []);
20309
- search = output();
20310
- placeholder = input("Search...", ...ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []);
20311
- ariaLabel = input(...ngDevMode ? [void 0, { debugName: "ariaLabel" }] : /* istanbul ignore next */ []);
20312
- clearLabel = input("Clear search", ...ngDevMode ? [{ debugName: "clearLabel" }] : /* istanbul ignore next */ []);
20313
- sendLabel = input("Send", ...ngDevMode ? [{ debugName: "sendLabel" }] : /* istanbul ignore next */ []);
20314
- disabled = input(false, {
20315
- ...ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {},
20316
- transform: booleanAttribute
20317
- });
20318
- hotkey = input(...ngDevMode ? [void 0, { debugName: "hotkey" }] : /* istanbul ignore next */ []);
20319
- size = input("large", ...ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []);
20320
- class = input(...ngDevMode ? [void 0, { debugName: "class" }] : /* istanbul ignore next */ []);
20321
- buttonSize = computed(() => this.size() === "small" ? "xs" : "sm", ...ngDevMode ? [{ debugName: "buttonSize" }] : /* istanbul ignore next */ []);
20322
- iconClass = computed(() => cn("shrink-0", this.size() === "small" ? "size-3" : ""), ...ngDevMode ? [{ debugName: "iconClass" }] : /* istanbul ignore next */ []);
20323
- searchIconClass = computed(() => cn("rotate-0 transition-[rotate] duration-500 group-focus-within/search:rotate-90", this.iconClass()), ...ngDevMode ? [{ debugName: "searchIconClass" }] : /* istanbul ignore next */ []);
20324
- constructor() {
20325
- afterRenderEffect(() => {
20326
- const combobox = this.combobox();
20327
- if (!combobox.expanded()) combobox._pattern.keyboardEventRelay.set(void 0);
20328
- });
20329
- }
20330
- clearSearch(e) {
20331
- e.stopImmediatePropagation();
20332
- this.value.set("");
20333
- }
20334
- emitSearch(e) {
20335
- e.stopImmediatePropagation();
20336
- this.search.emit(this.value());
20337
- }
20338
20288
  static ɵfac = i0.ɵɵngDeclareFactory({
20339
20289
  minVersion: "12.0.0",
20340
20290
  version: "22.2.1",
20341
20291
  ngImport: i0,
20342
- type: SearchBarComponent,
20343
- deps: [],
20292
+ type: SearchInputSuggestionsComponent,
20293
+ deps: null,
20344
20294
  target: i0.ɵɵFactoryTarget.Component
20345
20295
  });
20346
20296
  static ɵcmp = i0.ɵɵngDeclareComponent({
20347
20297
  minVersion: "17.2.0",
20348
20298
  version: "22.2.1",
20349
- type: SearchBarComponent,
20299
+ type: SearchInputSuggestionsComponent,
20350
20300
  isStandalone: true,
20351
- selector: "SearchBar, search-bar, searchbar",
20352
- inputs: {
20353
- value: {
20354
- classPropertyName: "value",
20355
- publicName: "value",
20356
- isSignal: true,
20357
- isRequired: false,
20358
- transformFunction: null
20359
- },
20360
- placeholder: {
20361
- classPropertyName: "placeholder",
20362
- publicName: "placeholder",
20363
- isSignal: true,
20364
- isRequired: false,
20365
- transformFunction: null
20366
- },
20367
- ariaLabel: {
20368
- classPropertyName: "ariaLabel",
20369
- publicName: "ariaLabel",
20370
- isSignal: true,
20371
- isRequired: false,
20372
- transformFunction: null
20373
- },
20374
- clearLabel: {
20375
- classPropertyName: "clearLabel",
20376
- publicName: "clearLabel",
20377
- isSignal: true,
20378
- isRequired: false,
20379
- transformFunction: null
20380
- },
20381
- sendLabel: {
20382
- classPropertyName: "sendLabel",
20383
- publicName: "sendLabel",
20384
- isSignal: true,
20385
- isRequired: false,
20386
- transformFunction: null
20387
- },
20388
- disabled: {
20389
- classPropertyName: "disabled",
20390
- publicName: "disabled",
20391
- isSignal: true,
20392
- isRequired: false,
20393
- transformFunction: null
20394
- },
20395
- hotkey: {
20396
- classPropertyName: "hotkey",
20397
- publicName: "hotkey",
20398
- isSignal: true,
20399
- isRequired: false,
20400
- transformFunction: null
20401
- },
20402
- size: {
20403
- classPropertyName: "size",
20404
- publicName: "size",
20405
- isSignal: true,
20406
- isRequired: false,
20407
- transformFunction: null
20408
- },
20409
- class: {
20410
- classPropertyName: "class",
20411
- publicName: "class",
20412
- isSignal: true,
20413
- isRequired: false,
20414
- transformFunction: null
20415
- }
20416
- },
20417
- outputs: {
20418
- value: "valueChange",
20419
- search: "search"
20420
- },
20421
- host: { properties: { "class": "cn('group/search', searchBarVariants({ size: size(), class: class() }))" } },
20301
+ selector: "SearchInput[suggestions], search-input[suggestions], searchinput[suggestions]",
20422
20302
  viewQueries: [{
20423
- propertyName: "searchInput",
20424
- first: true,
20425
- predicate: ["search"],
20426
- descendants: true,
20427
- isSignal: true
20428
- }, {
20429
20303
  propertyName: "combobox",
20430
20304
  first: true,
20431
20305
  predicate: Combobox,
20432
20306
  descendants: true,
20433
20307
  isSignal: true
20434
20308
  }],
20309
+ usesInheritance: true,
20435
20310
  ngImport: i0,
20436
- template: `
20437
- <span class="sb-icon">
20438
- <SearchIcon [class]="searchIconClass()" />
20439
- </span>
20440
- <input
20441
- class="sb-input"
20442
- [class]="searchNativeReset"
20443
- #search
20444
- ngCombobox
20445
- type="search"
20446
- spellcheck="false"
20447
- autocapitalize="off"
20448
- autocomplete="off"
20449
- autocorrect="off"
20450
- [disabled]="disabled()"
20451
- [placeholder]="placeholder()"
20452
- [(value)]="value"
20453
- [attr.aria-label]="ariaLabel()"
20454
- [attr.aria-keyshortcuts]="hotkey()" />
20455
- <button
20456
- variant="tertiary"
20457
- scheme="neutral"
20458
- [iconOnly]="true"
20459
- [size]="buttonSize()"
20460
- type="button"
20461
- [disabled]="disabled()"
20462
- [class]="value()
20463
- ? 'rotate-90 opacity-100 transition-[rotate,opacity] duration-500'
20464
- : 'rotate-0 opacity-0 pointer-events-none transition-[rotate,opacity] duration-500'"
20465
- [tabindex]="value() && !disabled() ? 0 : -1"
20466
- [attr.aria-label]="clearLabel()"
20467
- [tooltip]="clearLabel()"
20468
- (keydown.enter)="clearSearch($event)"
20469
- (click)="clearSearch($event)">
20470
- <XMarkIcon [class]="iconClass()" aria-hidden="true" />
20471
- <span class="sr-only">{{ clearLabel() }}</span>
20472
- </button>
20473
- <!-- Actions applicatives (favori, filtre rapide…) : le slot par défaut est ici, entre « clear »
20474
- et « send », parce que c'est la place naturelle d'une action liée à la requête. Ce qui doit
20475
- rester APRÈS le bouton d'envoi porte slot="trailing" (voir plus bas). -->
20476
- <ng-content />
20477
- <button
20478
- variant="tertiary"
20479
- scheme="neutral"
20480
- [iconOnly]="true"
20481
- [size]="buttonSize()"
20482
- type="button"
20483
- [disabled]="disabled()"
20484
- [class]="value()
20485
- ? 'opacity-100 transition-opacity duration-300'
20486
- : 'opacity-0 pointer-events-none transition-opacity duration-300'"
20487
- [tabindex]="value() && !disabled() ? 0 : -1"
20488
- [attr.aria-label]="sendLabel()"
20489
- [tooltip]="sendLabel()"
20490
- (keydown.enter)="emitSearch($event)"
20491
- (click)="emitSearch($event)">
20492
- <SendHorizontalIcon [class]="iconClass()" aria-hidden="true" />
20493
- <span class="sr-only">{{ sendLabel() }}</span>
20494
- </button>
20495
- <!-- Zone de fin de pilule, après le bouton d'envoi (CTA du type « Ask AI »…).
20496
- ⚠️ Le contenu d'un bloc @if ne peut pas atteindre ce slot : la projection ne teste que les
20497
- enfants directs de l'hôte, et le nœud d'un @if ne porte aucun attribut — il retombe donc
20498
- dans le slot par défaut. Envelopper alors le bloc dans un <ng-container slot="trailing">. -->
20499
- <ng-content select="[slot='trailing']" />
20500
- `,
20311
+ template: "\n <input-group [size]=\"size()\" [textSize]=\"textSize()\" [class]=\"cn('group/search', class())\">\n <span input-icon-left>\n <SearchIcon [class]=\"searchIconClass()\" />\n </span>\n <input\n ngCombobox \n input-control\n #search\n type=\"search\"\n spellcheck=\"false\"\n autocapitalize=\"off\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n [disabled]=\"disabled()\"\n [placeholder]=\"placeholder()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-keyshortcuts]=\"hotkey()\"\n [(value)]=\"value\" />\n <button\n input-icon-right\n variant=\"tertiary\"\n scheme=\"neutral\"\n [iconOnly]=\"true\"\n [size]=\"buttonSize()\"\n type=\"button\"\n [class]=\"value()\n ? 'rotate-90 opacity-100 transition-[rotate,opacity] duration-500'\n : 'rotate-0 opacity-0 pointer-events-none transition-[rotate,opacity] duration-500'\"\n [tabindex]=\"value() ? 0 : -1\"\n [attr.aria-label]=\"clearLabel()\"\n [tooltip]=\"clearLabel()\"\n (keydown.enter)=\"clearSearch($event)\"\n (click)=\"clearSearch($event)\">\n <XMarkIcon [class]=\"iconClass()\" />\n <span class=\"sr-only\">{{ clearLabel() }}</span>\n </button>\n <ng-content />\n </input-group>\n ",
20501
20312
  isInline: true,
20502
20313
  dependencies: [
20503
20314
  {
@@ -20506,29 +20317,6 @@ var SearchBarComponent = class SearchBarComponent {
20506
20317
  selector: "search, search-icon, Search, SearchIcon",
20507
20318
  inputs: ["class"]
20508
20319
  },
20509
- {
20510
- kind: "component",
20511
- type: SendHorizontalIcon,
20512
- selector: "send-horizontal, send-horizontal-icon, SendHorizontal, SendHorizontalIcon",
20513
- inputs: ["class"]
20514
- },
20515
- {
20516
- kind: "directive",
20517
- type: Combobox,
20518
- selector: "[ngCombobox]",
20519
- inputs: [
20520
- "disabled",
20521
- "readonly",
20522
- "softDisabled",
20523
- "alwaysExpanded",
20524
- "tabindex",
20525
- "expanded",
20526
- "value",
20527
- "inlineSuggestion"
20528
- ],
20529
- outputs: ["expandedChange", "valueChange"],
20530
- exportAs: ["ngCombobox"]
20531
- },
20532
20320
  {
20533
20321
  kind: "directive",
20534
20322
  type: ButtonComponent,
@@ -20541,6 +20329,38 @@ var SearchBarComponent = class SearchBarComponent {
20541
20329
  "size"
20542
20330
  ]
20543
20331
  },
20332
+ {
20333
+ kind: "directive",
20334
+ type: InputComponent,
20335
+ selector: "input-group, inputgroup, InputGroup",
20336
+ inputs: [
20337
+ "class",
20338
+ "size",
20339
+ "scheme",
20340
+ "filled",
20341
+ "numbers",
20342
+ "autoHeight",
20343
+ "textSize"
20344
+ ]
20345
+ },
20346
+ {
20347
+ kind: "directive",
20348
+ type: InputControlDirective,
20349
+ selector: "input[input-control], input[inputControl]",
20350
+ inputs: ["class"]
20351
+ },
20352
+ {
20353
+ kind: "directive",
20354
+ type: InputIconLeftDirective,
20355
+ selector: "[input-icon-left], [inputIconLeft]",
20356
+ inputs: ["class"]
20357
+ },
20358
+ {
20359
+ kind: "directive",
20360
+ type: InputIconRightDirective,
20361
+ selector: "[input-icon-right], [inputIconRight]",
20362
+ inputs: ["class"]
20363
+ },
20544
20364
  {
20545
20365
  kind: "component",
20546
20366
  type: XMarkIcon,
@@ -20572,6 +20392,23 @@ var SearchBarComponent = class SearchBarComponent {
20572
20392
  "tooltip-offset"
20573
20393
  ],
20574
20394
  exportAs: ["tooltip"]
20395
+ },
20396
+ {
20397
+ kind: "directive",
20398
+ type: Combobox,
20399
+ selector: "[ngCombobox]",
20400
+ inputs: [
20401
+ "disabled",
20402
+ "readonly",
20403
+ "softDisabled",
20404
+ "alwaysExpanded",
20405
+ "tabindex",
20406
+ "expanded",
20407
+ "value",
20408
+ "inlineSuggestion"
20409
+ ],
20410
+ outputs: ["expandedChange", "valueChange"],
20411
+ exportAs: ["ngCombobox"]
20575
20412
  }
20576
20413
  ]
20577
20414
  });
@@ -20580,29 +20417,65 @@ i0.ɵɵngDeclareClassMetadata({
20580
20417
  minVersion: "12.0.0",
20581
20418
  version: "22.2.1",
20582
20419
  ngImport: i0,
20583
- type: SearchBarComponent,
20420
+ type: SearchInputSuggestionsComponent,
20584
20421
  decorators: [{
20585
20422
  type: Component,
20586
20423
  args: [{
20587
- selector: "SearchBar, search-bar, searchbar",
20424
+ selector: "SearchInput[suggestions], search-input[suggestions], searchinput[suggestions]",
20588
20425
  standalone: true,
20589
- imports: [
20590
- SearchIcon,
20591
- SendHorizontalIcon,
20592
- Combobox,
20593
- ButtonComponent,
20594
- XMarkIcon,
20595
- TooltipDirective
20596
- ],
20597
- template: `
20426
+ imports: [...SEARCH_INPUT_IMPORTS, Combobox],
20427
+ template: `${BEFORE_CONTROL$1}
20428
+ <input
20429
+ ngCombobox ${CONTROL_ATTRIBUTES$1}
20430
+ [(value)]="value" />${AFTER_CONTROL$1}
20431
+ `
20432
+ }]
20433
+ }],
20434
+ propDecorators: { combobox: [{
20435
+ type: i0.ViewChild,
20436
+ args: [i0.forwardRef(() => Combobox), { isSignal: true }]
20437
+ }] }
20438
+ });
20439
+ const SB_ICON_CLASS = "sb-icon";
20440
+ const SB_INPUT_CLASS = "sb-input";
20441
+ const searchBarVariants = cva([
20442
+ "box-border inline-flex cursor-text items-center bg-(--bg-neutral-white)",
20443
+ "rounded-(--radius-rounded) border border-solid border-(--stroke-primary-muted)",
20444
+ "transition-[border-color,background] duration-120 ease-[ease] motion-reduce:transition-none",
20445
+ "hover:not-has-focus:not-has-disabled:bg-(--bg-primary-lighter)",
20446
+ "hover:not-has-focus:not-has-disabled:border-(--stroke-primary-hovered)",
20447
+ "has-focus:not-has-disabled:border-(--stroke-primary-pressed)",
20448
+ "has-[:focus-visible]:outline-2 has-[:focus-visible]:outline-offset-2 has-[:focus-visible]:outline-(--stroke-focus) has-[:focus-visible]:outline-solid",
20449
+ "has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:border-(--stroke-neutral-disabled) has-disabled:bg-(--bg-neutral-base)",
20450
+ "[&_.sb-icon]:inline-flex [&_.sb-icon]:shrink-0 [&_.sb-icon]:items-center [&_.sb-icon]:justify-center [&_.sb-icon]:leading-none [&_.sb-icon]:text-(--font-primary-muted)",
20451
+ "has-disabled:[&_.sb-icon]:text-(--font-neutral-muted)",
20452
+ "[&_.sb-input]:min-w-0 [&_.sb-input]:flex-1 [&_.sb-input]:border-0 [&_.sb-input]:bg-transparent [&_.sb-input]:outline-none",
20453
+ "[&_.sb-input]:p-0 [&_.sb-input]:font-[family-name:var(--family-base),sans-serif] [&_.sb-input]:leading-[1.4] [&_.sb-input]:text-(--font-neutral-black)",
20454
+ "[&_.sb-input]:placeholder:text-(--font-primary-muted)",
20455
+ "has-disabled:[&_.sb-input]:text-(--font-neutral-muted)"
20456
+ ], {
20457
+ variants: { size: {
20458
+ small: "h-6 gap-(--spacing-xs) px-(--spacing-xs) [&_.sb-icon]:text-(length:--icon-xs) [&_.sb-input]:text-(length:--size-xs)",
20459
+ medium: "h-9 gap-(--spacing-xs) px-(--spacing-md) [&_.sb-icon]:text-(length:--icon-sm) [&_.sb-input]:text-(length:--size-base)",
20460
+ large: "h-(--row-height-lg) gap-(--spacing-2xs) px-(--spacing-md) [&_.sb-icon]:text-base [&_.sb-input]:text-(length:--size-lg)"
20461
+ } },
20462
+ defaultVariants: { size: "large" }
20463
+ });
20464
+ const SEARCH_BAR_IMPORTS = [
20465
+ SearchIcon,
20466
+ SendHorizontalIcon,
20467
+ ButtonComponent,
20468
+ XMarkIcon,
20469
+ TooltipDirective
20470
+ ];
20471
+ const BEFORE_CONTROL = `
20598
20472
  <span class="sb-icon">
20599
20473
  <SearchIcon [class]="searchIconClass()" />
20600
- </span>
20601
- <input
20474
+ </span>`;
20475
+ const CONTROL_ATTRIBUTES = `
20602
20476
  class="sb-input"
20603
20477
  [class]="searchNativeReset"
20604
20478
  #search
20605
- ngCombobox
20606
20479
  type="search"
20607
20480
  spellcheck="false"
20608
20481
  autocapitalize="off"
@@ -20610,9 +20483,9 @@ i0.ɵɵngDeclareClassMetadata({
20610
20483
  autocorrect="off"
20611
20484
  [disabled]="disabled()"
20612
20485
  [placeholder]="placeholder()"
20613
- [(value)]="value"
20614
20486
  [attr.aria-label]="ariaLabel()"
20615
- [attr.aria-keyshortcuts]="hotkey()" />
20487
+ [attr.aria-keyshortcuts]="hotkey()"`;
20488
+ const AFTER_CONTROL = `
20616
20489
  <button
20617
20490
  variant="tertiary"
20618
20491
  scheme="neutral"
@@ -20658,20 +20531,146 @@ i0.ɵɵngDeclareClassMetadata({
20658
20531
  enfants directs de l'hôte, et le nœud d'un @if ne porte aucun attribut — il retombe donc
20659
20532
  dans le slot par défaut. Envelopper alors le bloc dans un <ng-container slot="trailing">. -->
20660
20533
  <ng-content select="[slot='trailing']" />
20661
- `,
20662
- host: { "[class]": "cn('group/search', searchBarVariants({ size: size(), class: class() }))" }
20663
- }]
20534
+ `;
20535
+ var SearchBarBase = class SearchBarBase {
20536
+ cn = cn;
20537
+ searchBarVariants = searchBarVariants;
20538
+ searchNativeReset = INPUT_SEARCH_NATIVE_RESET;
20539
+ searchInput = viewChild.required("search", ...ngDevMode ? [{ debugName: "searchInput" }] : /* istanbul ignore next */ []);
20540
+ value = model("", ...ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []);
20541
+ search = output();
20542
+ placeholder = input("Search...", ...ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []);
20543
+ ariaLabel = input(void 0, {
20544
+ ...ngDevMode ? { debugName: "ariaLabel" } : /* istanbul ignore next */ {},
20545
+ alias: "aria-label"
20546
+ });
20547
+ clearLabel = input("Clear search", ...ngDevMode ? [{ debugName: "clearLabel" }] : /* istanbul ignore next */ []);
20548
+ sendLabel = input("Send", ...ngDevMode ? [{ debugName: "sendLabel" }] : /* istanbul ignore next */ []);
20549
+ disabled = input(false, {
20550
+ ...ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {},
20551
+ transform: booleanAttribute
20552
+ });
20553
+ hotkey = input(...ngDevMode ? [void 0, { debugName: "hotkey" }] : /* istanbul ignore next */ []);
20554
+ size = input("large", ...ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []);
20555
+ class = input(...ngDevMode ? [void 0, { debugName: "class" }] : /* istanbul ignore next */ []);
20556
+ buttonSize = computed(() => this.size() === "small" ? "xs" : "sm", ...ngDevMode ? [{ debugName: "buttonSize" }] : /* istanbul ignore next */ []);
20557
+ iconClass = computed(() => cn("shrink-0", this.size() === "small" ? "size-3" : ""), ...ngDevMode ? [{ debugName: "iconClass" }] : /* istanbul ignore next */ []);
20558
+ searchIconClass = computed(() => cn("rotate-0 transition-[rotate] duration-500 group-focus-within/search:rotate-90", this.iconClass()), ...ngDevMode ? [{ debugName: "searchIconClass" }] : /* istanbul ignore next */ []);
20559
+ clearSearch(e) {
20560
+ e.stopImmediatePropagation();
20561
+ this.value.set("");
20562
+ }
20563
+ emitSearch(e) {
20564
+ e.stopImmediatePropagation();
20565
+ this.search.emit(this.value());
20566
+ }
20567
+ static ɵfac = i0.ɵɵngDeclareFactory({
20568
+ minVersion: "12.0.0",
20569
+ version: "22.2.1",
20570
+ ngImport: i0,
20571
+ type: SearchBarBase,
20572
+ deps: [],
20573
+ target: i0.ɵɵFactoryTarget.Directive
20574
+ });
20575
+ static ɵdir = i0.ɵɵngDeclareDirective({
20576
+ minVersion: "17.2.0",
20577
+ version: "22.2.1",
20578
+ type: SearchBarBase,
20579
+ isStandalone: true,
20580
+ inputs: {
20581
+ value: {
20582
+ classPropertyName: "value",
20583
+ publicName: "value",
20584
+ isSignal: true,
20585
+ isRequired: false,
20586
+ transformFunction: null
20587
+ },
20588
+ placeholder: {
20589
+ classPropertyName: "placeholder",
20590
+ publicName: "placeholder",
20591
+ isSignal: true,
20592
+ isRequired: false,
20593
+ transformFunction: null
20594
+ },
20595
+ ariaLabel: {
20596
+ classPropertyName: "ariaLabel",
20597
+ publicName: "aria-label",
20598
+ isSignal: true,
20599
+ isRequired: false,
20600
+ transformFunction: null
20601
+ },
20602
+ clearLabel: {
20603
+ classPropertyName: "clearLabel",
20604
+ publicName: "clearLabel",
20605
+ isSignal: true,
20606
+ isRequired: false,
20607
+ transformFunction: null
20608
+ },
20609
+ sendLabel: {
20610
+ classPropertyName: "sendLabel",
20611
+ publicName: "sendLabel",
20612
+ isSignal: true,
20613
+ isRequired: false,
20614
+ transformFunction: null
20615
+ },
20616
+ disabled: {
20617
+ classPropertyName: "disabled",
20618
+ publicName: "disabled",
20619
+ isSignal: true,
20620
+ isRequired: false,
20621
+ transformFunction: null
20622
+ },
20623
+ hotkey: {
20624
+ classPropertyName: "hotkey",
20625
+ publicName: "hotkey",
20626
+ isSignal: true,
20627
+ isRequired: false,
20628
+ transformFunction: null
20629
+ },
20630
+ size: {
20631
+ classPropertyName: "size",
20632
+ publicName: "size",
20633
+ isSignal: true,
20634
+ isRequired: false,
20635
+ transformFunction: null
20636
+ },
20637
+ class: {
20638
+ classPropertyName: "class",
20639
+ publicName: "class",
20640
+ isSignal: true,
20641
+ isRequired: false,
20642
+ transformFunction: null
20643
+ }
20644
+ },
20645
+ outputs: {
20646
+ value: "valueChange",
20647
+ search: "search"
20648
+ },
20649
+ host: { properties: { "class": "cn('group/search', searchBarVariants({ size: size(), class: class() }))" } },
20650
+ viewQueries: [{
20651
+ propertyName: "searchInput",
20652
+ first: true,
20653
+ predicate: ["search"],
20654
+ descendants: true,
20655
+ isSignal: true
20656
+ }],
20657
+ ngImport: i0
20658
+ });
20659
+ };
20660
+ i0.ɵɵngDeclareClassMetadata({
20661
+ minVersion: "12.0.0",
20662
+ version: "22.2.1",
20663
+ ngImport: i0,
20664
+ type: SearchBarBase,
20665
+ decorators: [{
20666
+ type: Directive,
20667
+ args: [{ host: { "[class]": "cn('group/search', searchBarVariants({ size: size(), class: class() }))" } }]
20664
20668
  }],
20665
- ctorParameters: () => [],
20666
20669
  propDecorators: {
20667
20670
  searchInput: [{
20668
20671
  type: i0.ViewChild,
20669
20672
  args: ["search", { isSignal: true }]
20670
20673
  }],
20671
- combobox: [{
20672
- type: i0.ViewChild,
20673
- args: [i0.forwardRef(() => Combobox), { isSignal: true }]
20674
- }],
20675
20674
  value: [{
20676
20675
  type: i0.Input,
20677
20676
  args: [{
@@ -20699,7 +20698,7 @@ i0.ɵɵngDeclareClassMetadata({
20699
20698
  type: i0.Input,
20700
20699
  args: [{
20701
20700
  isSignal: true,
20702
- alias: "ariaLabel",
20701
+ alias: "aria-label",
20703
20702
  required: false
20704
20703
  }]
20705
20704
  }],
@@ -20753,6 +20752,229 @@ i0.ɵɵngDeclareClassMetadata({
20753
20752
  }]
20754
20753
  }
20755
20754
  });
20755
+ var SearchBarComponent = class SearchBarComponent extends SearchBarBase {
20756
+ static ɵfac = i0.ɵɵngDeclareFactory({
20757
+ minVersion: "12.0.0",
20758
+ version: "22.2.1",
20759
+ ngImport: i0,
20760
+ type: SearchBarComponent,
20761
+ deps: null,
20762
+ target: i0.ɵɵFactoryTarget.Component
20763
+ });
20764
+ static ɵcmp = i0.ɵɵngDeclareComponent({
20765
+ minVersion: "14.0.0",
20766
+ version: "22.2.1",
20767
+ type: SearchBarComponent,
20768
+ isStandalone: true,
20769
+ selector: "SearchBar:not([suggestions]), search-bar:not([suggestions]), searchbar:not([suggestions])",
20770
+ usesInheritance: true,
20771
+ ngImport: i0,
20772
+ template: "\n <span class=\"sb-icon\">\n <SearchIcon [class]=\"searchIconClass()\" />\n </span>\n <input \n class=\"sb-input\"\n [class]=\"searchNativeReset\"\n #search\n type=\"search\"\n spellcheck=\"false\"\n autocapitalize=\"off\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n [disabled]=\"disabled()\"\n [placeholder]=\"placeholder()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-keyshortcuts]=\"hotkey()\"\n [value]=\"value()\"\n (input)=\"value.set($any($event.target).value)\" />\n <button\n variant=\"tertiary\"\n scheme=\"neutral\"\n [iconOnly]=\"true\"\n [size]=\"buttonSize()\"\n type=\"button\"\n [disabled]=\"disabled()\"\n [class]=\"value()\n ? 'rotate-90 opacity-100 transition-[rotate,opacity] duration-500'\n : 'rotate-0 opacity-0 pointer-events-none transition-[rotate,opacity] duration-500'\"\n [tabindex]=\"value() && !disabled() ? 0 : -1\"\n [attr.aria-label]=\"clearLabel()\"\n [tooltip]=\"clearLabel()\"\n (keydown.enter)=\"clearSearch($event)\"\n (click)=\"clearSearch($event)\">\n <XMarkIcon [class]=\"iconClass()\" aria-hidden=\"true\" />\n <span class=\"sr-only\">{{ clearLabel() }}</span>\n </button>\n <!-- Actions applicatives (favori, filtre rapide…) : le slot par défaut est ici, entre « clear »\n et « send », parce que c'est la place naturelle d'une action liée à la requête. Ce qui doit\n rester APRÈS le bouton d'envoi porte slot=\"trailing\" (voir plus bas). -->\n <ng-content />\n <button\n variant=\"tertiary\"\n scheme=\"neutral\"\n [iconOnly]=\"true\"\n [size]=\"buttonSize()\"\n type=\"button\"\n [disabled]=\"disabled()\"\n [class]=\"value()\n ? 'opacity-100 transition-opacity duration-300'\n : 'opacity-0 pointer-events-none transition-opacity duration-300'\"\n [tabindex]=\"value() && !disabled() ? 0 : -1\"\n [attr.aria-label]=\"sendLabel()\"\n [tooltip]=\"sendLabel()\"\n (keydown.enter)=\"emitSearch($event)\"\n (click)=\"emitSearch($event)\">\n <SendHorizontalIcon [class]=\"iconClass()\" aria-hidden=\"true\" />\n <span class=\"sr-only\">{{ sendLabel() }}</span>\n </button>\n <!-- Zone de fin de pilule, après le bouton d'envoi (CTA du type « Ask AI »…).\n ⚠️ Le contenu d'un bloc @if ne peut pas atteindre ce slot : la projection ne teste que les\n enfants directs de l'hôte, et le nœud d'un @if ne porte aucun attribut — il retombe donc\n dans le slot par défaut. Envelopper alors le bloc dans un <ng-container slot=\"trailing\">. -->\n <ng-content select=\"[slot='trailing']\" />\n",
20773
+ isInline: true,
20774
+ dependencies: [
20775
+ {
20776
+ kind: "component",
20777
+ type: SearchIcon,
20778
+ selector: "search, search-icon, Search, SearchIcon",
20779
+ inputs: ["class"]
20780
+ },
20781
+ {
20782
+ kind: "component",
20783
+ type: SendHorizontalIcon,
20784
+ selector: "send-horizontal, send-horizontal-icon, SendHorizontal, SendHorizontalIcon",
20785
+ inputs: ["class"]
20786
+ },
20787
+ {
20788
+ kind: "directive",
20789
+ type: ButtonComponent,
20790
+ selector: "button",
20791
+ inputs: [
20792
+ "class",
20793
+ "variant",
20794
+ "scheme",
20795
+ "iconOnly",
20796
+ "size"
20797
+ ]
20798
+ },
20799
+ {
20800
+ kind: "component",
20801
+ type: XMarkIcon,
20802
+ selector: "x-mark, x-mark-icon, XMark, XMarkIcon",
20803
+ inputs: ["class"]
20804
+ },
20805
+ {
20806
+ kind: "directive",
20807
+ type: TooltipDirective,
20808
+ selector: "[tooltip]",
20809
+ inputs: [
20810
+ "tooltip",
20811
+ "tooltipPosition",
20812
+ "tooltipEvent",
20813
+ "showDelay",
20814
+ "hideDelay",
20815
+ "life",
20816
+ "tooltipOffset",
20817
+ "autoHide",
20818
+ "hideOnEscape",
20819
+ "escape",
20820
+ "tooltipDisabled",
20821
+ "tooltipArrow",
20822
+ "tooltipStyleClass",
20823
+ "tooltipOptions",
20824
+ "tooltip-position",
20825
+ "tooltip-delay",
20826
+ "tooltip-duration",
20827
+ "tooltip-offset"
20828
+ ],
20829
+ exportAs: ["tooltip"]
20830
+ }
20831
+ ]
20832
+ });
20833
+ };
20834
+ i0.ɵɵngDeclareClassMetadata({
20835
+ minVersion: "12.0.0",
20836
+ version: "22.2.1",
20837
+ ngImport: i0,
20838
+ type: SearchBarComponent,
20839
+ decorators: [{
20840
+ type: Component,
20841
+ args: [{
20842
+ selector: "SearchBar:not([suggestions]), search-bar:not([suggestions]), searchbar:not([suggestions])",
20843
+ standalone: true,
20844
+ imports: SEARCH_BAR_IMPORTS,
20845
+ template: `${BEFORE_CONTROL}
20846
+ <input ${CONTROL_ATTRIBUTES}
20847
+ [value]="value()"
20848
+ (input)="value.set($any($event.target).value)" />${AFTER_CONTROL}`
20849
+ }]
20850
+ }]
20851
+ });
20852
+ var SearchBarSuggestionsComponent = class SearchBarSuggestionsComponent extends SearchBarBase {
20853
+ combobox = viewChild.required(Combobox, ...ngDevMode ? [{ debugName: "combobox" }] : /* istanbul ignore next */ []);
20854
+ static ɵfac = i0.ɵɵngDeclareFactory({
20855
+ minVersion: "12.0.0",
20856
+ version: "22.2.1",
20857
+ ngImport: i0,
20858
+ type: SearchBarSuggestionsComponent,
20859
+ deps: null,
20860
+ target: i0.ɵɵFactoryTarget.Component
20861
+ });
20862
+ static ɵcmp = i0.ɵɵngDeclareComponent({
20863
+ minVersion: "17.2.0",
20864
+ version: "22.2.1",
20865
+ type: SearchBarSuggestionsComponent,
20866
+ isStandalone: true,
20867
+ selector: "SearchBar[suggestions], search-bar[suggestions], searchbar[suggestions]",
20868
+ viewQueries: [{
20869
+ propertyName: "combobox",
20870
+ first: true,
20871
+ predicate: Combobox,
20872
+ descendants: true,
20873
+ isSignal: true
20874
+ }],
20875
+ usesInheritance: true,
20876
+ ngImport: i0,
20877
+ template: "\n <span class=\"sb-icon\">\n <SearchIcon [class]=\"searchIconClass()\" />\n </span>\n <input\n ngCombobox \n class=\"sb-input\"\n [class]=\"searchNativeReset\"\n #search\n type=\"search\"\n spellcheck=\"false\"\n autocapitalize=\"off\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n [disabled]=\"disabled()\"\n [placeholder]=\"placeholder()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-keyshortcuts]=\"hotkey()\"\n [(value)]=\"value\" />\n <button\n variant=\"tertiary\"\n scheme=\"neutral\"\n [iconOnly]=\"true\"\n [size]=\"buttonSize()\"\n type=\"button\"\n [disabled]=\"disabled()\"\n [class]=\"value()\n ? 'rotate-90 opacity-100 transition-[rotate,opacity] duration-500'\n : 'rotate-0 opacity-0 pointer-events-none transition-[rotate,opacity] duration-500'\"\n [tabindex]=\"value() && !disabled() ? 0 : -1\"\n [attr.aria-label]=\"clearLabel()\"\n [tooltip]=\"clearLabel()\"\n (keydown.enter)=\"clearSearch($event)\"\n (click)=\"clearSearch($event)\">\n <XMarkIcon [class]=\"iconClass()\" aria-hidden=\"true\" />\n <span class=\"sr-only\">{{ clearLabel() }}</span>\n </button>\n <!-- Actions applicatives (favori, filtre rapide…) : le slot par défaut est ici, entre « clear »\n et « send », parce que c'est la place naturelle d'une action liée à la requête. Ce qui doit\n rester APRÈS le bouton d'envoi porte slot=\"trailing\" (voir plus bas). -->\n <ng-content />\n <button\n variant=\"tertiary\"\n scheme=\"neutral\"\n [iconOnly]=\"true\"\n [size]=\"buttonSize()\"\n type=\"button\"\n [disabled]=\"disabled()\"\n [class]=\"value()\n ? 'opacity-100 transition-opacity duration-300'\n : 'opacity-0 pointer-events-none transition-opacity duration-300'\"\n [tabindex]=\"value() && !disabled() ? 0 : -1\"\n [attr.aria-label]=\"sendLabel()\"\n [tooltip]=\"sendLabel()\"\n (keydown.enter)=\"emitSearch($event)\"\n (click)=\"emitSearch($event)\">\n <SendHorizontalIcon [class]=\"iconClass()\" aria-hidden=\"true\" />\n <span class=\"sr-only\">{{ sendLabel() }}</span>\n </button>\n <!-- Zone de fin de pilule, après le bouton d'envoi (CTA du type « Ask AI »…).\n ⚠️ Le contenu d'un bloc @if ne peut pas atteindre ce slot : la projection ne teste que les\n enfants directs de l'hôte, et le nœud d'un @if ne porte aucun attribut — il retombe donc\n dans le slot par défaut. Envelopper alors le bloc dans un <ng-container slot=\"trailing\">. -->\n <ng-content select=\"[slot='trailing']\" />\n",
20878
+ isInline: true,
20879
+ dependencies: [
20880
+ {
20881
+ kind: "component",
20882
+ type: SearchIcon,
20883
+ selector: "search, search-icon, Search, SearchIcon",
20884
+ inputs: ["class"]
20885
+ },
20886
+ {
20887
+ kind: "component",
20888
+ type: SendHorizontalIcon,
20889
+ selector: "send-horizontal, send-horizontal-icon, SendHorizontal, SendHorizontalIcon",
20890
+ inputs: ["class"]
20891
+ },
20892
+ {
20893
+ kind: "directive",
20894
+ type: ButtonComponent,
20895
+ selector: "button",
20896
+ inputs: [
20897
+ "class",
20898
+ "variant",
20899
+ "scheme",
20900
+ "iconOnly",
20901
+ "size"
20902
+ ]
20903
+ },
20904
+ {
20905
+ kind: "component",
20906
+ type: XMarkIcon,
20907
+ selector: "x-mark, x-mark-icon, XMark, XMarkIcon",
20908
+ inputs: ["class"]
20909
+ },
20910
+ {
20911
+ kind: "directive",
20912
+ type: TooltipDirective,
20913
+ selector: "[tooltip]",
20914
+ inputs: [
20915
+ "tooltip",
20916
+ "tooltipPosition",
20917
+ "tooltipEvent",
20918
+ "showDelay",
20919
+ "hideDelay",
20920
+ "life",
20921
+ "tooltipOffset",
20922
+ "autoHide",
20923
+ "hideOnEscape",
20924
+ "escape",
20925
+ "tooltipDisabled",
20926
+ "tooltipArrow",
20927
+ "tooltipStyleClass",
20928
+ "tooltipOptions",
20929
+ "tooltip-position",
20930
+ "tooltip-delay",
20931
+ "tooltip-duration",
20932
+ "tooltip-offset"
20933
+ ],
20934
+ exportAs: ["tooltip"]
20935
+ },
20936
+ {
20937
+ kind: "directive",
20938
+ type: Combobox,
20939
+ selector: "[ngCombobox]",
20940
+ inputs: [
20941
+ "disabled",
20942
+ "readonly",
20943
+ "softDisabled",
20944
+ "alwaysExpanded",
20945
+ "tabindex",
20946
+ "expanded",
20947
+ "value",
20948
+ "inlineSuggestion"
20949
+ ],
20950
+ outputs: ["expandedChange", "valueChange"],
20951
+ exportAs: ["ngCombobox"]
20952
+ }
20953
+ ]
20954
+ });
20955
+ };
20956
+ i0.ɵɵngDeclareClassMetadata({
20957
+ minVersion: "12.0.0",
20958
+ version: "22.2.1",
20959
+ ngImport: i0,
20960
+ type: SearchBarSuggestionsComponent,
20961
+ decorators: [{
20962
+ type: Component,
20963
+ args: [{
20964
+ selector: "SearchBar[suggestions], search-bar[suggestions], searchbar[suggestions]",
20965
+ standalone: true,
20966
+ imports: [...SEARCH_BAR_IMPORTS, Combobox],
20967
+ template: `${BEFORE_CONTROL}
20968
+ <input
20969
+ ngCombobox ${CONTROL_ATTRIBUTES}
20970
+ [(value)]="value" />${AFTER_CONTROL}`
20971
+ }]
20972
+ }],
20973
+ propDecorators: { combobox: [{
20974
+ type: i0.ViewChild,
20975
+ args: [i0.forwardRef(() => Combobox), { isSignal: true }]
20976
+ }] }
20977
+ });
20756
20978
  const DIALOG_REF = new InjectionToken("DIALOG_REF");
20757
20979
  const MODAL_LABEL = new InjectionToken("MODAL_LABEL");
20758
20980
  const MODAL_CLASS = "modal";
@@ -23933,6 +24155,6 @@ function normalize(sizes) {
23933
24155
  if (total <= 0) return sizes.map(() => 100 / sizes.length);
23934
24156
  return sizes.map((size) => size / total * 100);
23935
24157
  }
23936
- export { AUTOCOMPLETE_TAGS_CLASS, AUTOCOMPLETE_TRIGGER_CLASS, ArrowDownIcon, ArrowDownIconComponent, ArrowDownZaIcon, ArrowDownZaIconComponent, ArrowLeftIcon, ArrowLeftIconComponent, ArrowRightFromBracketIcon, ArrowRightFromBracketIconComponent, ArrowRightIcon, ArrowRightIconComponent, ArrowUpAzIcon, ArrowUpAzIconComponent, ArrowUpIcon, ArrowUpIconComponent, ArrowUpRightFromSquareIcon, ArrowUpRightFromSquareIconComponent, ArrowsMaximizeIcon, ArrowsMaximizeIconComponent, AutocompleteComponent, AvatarComponent, AvatarFallbackComponent, AvatarImageComponent, AwardIcon, AwardIconComponent, BadgeComponent, BarsIcon, BarsIconComponent, BellIcon, BellIconComponent, BookmarkIcon, BookmarkIconComponent, BreakpointObserverService, BuildingIcon, BuildingIconComponent, BulletComponent, ButtonComponent, CALL_REF, CalendarClockIcon, CalendarClockIconComponent, CalendarDayIcon, CalendarDayIconComponent, CallRef, ChatPlusIcon, ChatPlusIconComponent, CheckIcon, CheckIconComponent, CheckboxComponent, ChevronDownIcon, ChevronDownIconComponent, ChevronLeftIcon, ChevronLeftIconComponent, ChevronRightIcon, ChevronRightIconComponent, ChevronUpIcon, ChevronUpIconComponent, ChevronsLeftIcon, ChevronsLeftIconComponent, ChevronsRightIcon, ChevronsRightIconComponent, CircleCheckIcon, CircleCheckIconComponent, CircleXIcon, CircleXIconComponent, ClipboardIcon, ClipboardIconComponent, ClockIcon, ClockIconComponent, CogIcon, CogIconComponent, CommentIcon, CommentIconComponent, CommentsIcon, CommentsIconComponent, DIALOG_REF, DebugIcon, DebugIconComponent, DesktopIcon, DesktopIconComponent, DialogBodyComponent, DialogComponent, DialogContentComponent, DialogDescriptionComponent, DialogFooterComponent, DialogHeaderComponent, DialogService, DialogTitleComponent, DownloadIcon, DownloadIconComponent, PopoverDirective as DropdownDirective, PopoverDirective, EditIcon, EditIconComponent, EllipsisIcon, EllipsisIconComponent, EllipsisVerticalIcon, EllipsisVerticalIconComponent, EnvelopeIcon, EnvelopeIconComponent, ExternalLinkIcon, ExternalLinkIconComponent, EyeIcon, EyeIconComponent, EyeSlashIcon, EyeSlashIconComponent, FileHTMLIcon, FileHTMLIconComponent, FileIcon, FileIconComponent, FileMagnifyingGlassIcon, FileMagnifyingGlassIconComponent, FileOutputIcon, FileOutputIconComponent, FileSearchIcon, FileSearchIconComponent, FileSpreadsheetIcon, FileSpreadsheetIconComponent, FileTextIcon, FileTextIconComponent, FilesIcon, FilesIconComponent, FilterIcon, FilterIconComponent, FilterXIcon, FilterXIconComponent, FlagEnglishIcon, FlagEnglishIconComponent, FlagFrenchIcon, FlagFrenchIconComponent, FlagGermanIcon, FlagGermanIconComponent, FlashlightIcon, FlashlightIconComponent, FolderIcon, FolderIconComponent, FolderOpenIcon, FolderOpenIconComponent, FrownIcon, FrownIconComponent, GearIcon, GearIconComponent, GitForkIcon, GitForkIconComponent, GlobeIcon, GlobeIconComponent, GridIcon, GridIconComponent, HighlighterIcon, HighlighterIconComponent, HistoryIcon, HistoryIconComponent, HomeIcon, HomeIconComponent, HouseIcon, HouseIconComponent, ImageIcon, ImageIconComponent, InboxIcon, InboxIconComponent, InfoCircleIcon, InfoCircleIconComponent, InputComponent, InputControlDirective, InputCounterComponent, InputIconLeftDirective, InputIconRightDirective, KbdComponent, KbdGroupComponent, KeyIcon, KeyIconComponent, KeyboardIcon, KeyboardIconComponent, LINK_LABEL_CLASS, LIST_ITEM_AVATAR_CLASS, LIST_ITEM_CHEVRON_RIGHT_CLASS, LIST_ITEM_EXPANDER_BUTTON_CLASS, LIST_ITEM_EXPANDER_CLASS, LIST_ITEM_ICON_CLASS, LIST_ITEM_ICON_RIGHT_CLASS, LIST_ITEM_LEFT_CLASS, LIST_ITEM_SUBTEXT_CLASS, LIST_ITEM_TEXT_BLOCK_CLASS, LIST_ITEM_TEXT_CLASS, LIST_REF, LanguageIcon, LanguageIconComponent, LightbulbIcon, LightbulbIconComponent, LightbulbSlashIcon, LightbulbSlashIconComponent, LinkComponent, LinkIcon, LinkIconComponent, LinkIconLeftDirective, LinkIconRightDirective, ListComponent, ListFilterIcon, ListFilterIconComponent, ListIcon, ListIconComponent, ListItemActionComponent, ListItemAvatarDirective, ListItemChevronComponent, ListItemComponent, ListItemExpanderComponent, ListItemIconDirective, ListItemLeftDirective, ListItemTextComponent, ListboxActivateOnHover, LoadingCircleIcon, LoadingCircleIconComponent, MODAL_BODY_CLASS, MODAL_BODY_TEXT_CLASS, MODAL_CLASS, MODAL_CLOSE_CLASS, MODAL_FOOTER_CLASS, MODAL_HEADER_CLASS, MODAL_HEADER_LEFT_CLASS, MODAL_LABEL, MODAL_TITLE_CLASS, MODAL_TITLE_WRAP_CLASS, MagnifyingGlassIcon, MagnifyingGlassIconComponent, MagnifyingGlassMinusIcon, MagnifyingGlassMinusIconComponent, MagnifyingGlassPlusIcon, MagnifyingGlassPlusIconComponent, MapPinIcon, MapPinIconComponent, MenuComponent, MenuContentComponent, MenuItemComponent, MenuTriggerDirective, MinusIcon, MinusIconComponent, MoonIcon, MoonIconComponent, NewChatIcon, NewChatIconComponent, PaletteIcon, PaletteIconComponent, PanelLeftIcon, PanelLeftIconComponent, PanelRightIcon, PanelRightIconComponent, PaperclipIcon, PaperclipIconComponent, PenToSquareIcon, PenToSquareIconComponent, PlusIcon, PlusIconComponent, PresentationIcon, PresentationIconComponent, QuestionCircleIcon, QuestionCircleIconComponent, QuestionIcon, QuestionIconComponent, RESIZABLE_PANEL_CLASS, RESIZABLE_PANEL_GROUP, RadioComponent, RefreshIcon, RefreshIconComponent, ResizableHandleComponent, ResizablePanelComponent, ResizablePanelGroupComponent, RobotIcon, RobotIconComponent, RotateIcon, RotateIconComponent, RowFeedComponent, RowGridComponent, SB_ICON_CLASS, SB_INPUT_CLASS, SELECT_CHEVRON_CLASS, SELECT_EMPTY_CLASS, SELECT_HINT_CLASS, SELECT_LABEL_CLASS, SELECT_MENU_CLASS, SELECT_OPTION_BODY_CLASS, SELECT_OPTION_CHECK_CLASS, SELECT_OPTION_CLASS, SELECT_OPTION_LABEL_CLASS, SELECT_OPTION_LEADING_ICON_CLASS, SELECT_OPTION_SUBLABEL_CLASS, SELECT_PLACEHOLDER_CLASS, SELECT_REF, SELECT_TRIGGER_CLASS, SELECT_TRIGGER_ICON_CLASS, SELECT_TRIGGER_LABEL_CLASS, SHEET_BODY_CLASS, SHEET_CLASS, SHEET_CLOSE_CLASS, SHEET_FOOTER_CLASS, SHEET_HEADER_CLASS, SHEET_HEADER_LEFT_CLASS, SHEET_TITLE_WRAP_CLASS, SIDEBAR_CLASS, SIDEBAR_CONTENT_CLASS, SIDEBAR_FOOTER_CLASS, SIDEBAR_GROUP_CLASS, SIDEBAR_GROUP_LABEL_CLASS, SIDEBAR_HEADER_CLASS, SIDEBAR_INSET_CLASS, SIDEBAR_ITEM_CLASS, SIDEBAR_ITEM_LABEL_CLASS, SIDEBAR_REF, SaveIcon, SaveIconComponent, SearchBarComponent, SearchIcon, SearchIconComponent, SearchInputComponent, SelectComponent, SelectLabelDirective, SelectTriggerDirective, SendHorizontalIcon, SendHorizontalIconComponent, SendIcon, SendIconComponent, SheetBodyComponent, SheetComponent, SheetFooterComponent, SheetHeaderComponent, SidebarComponent, SidebarContentDirective, SidebarFooterDirective, SidebarGroupDirective, SidebarGroupLabelDirective, SidebarHeaderDirective, SidebarInsetDirective, SidebarItemDirective, SidebarItemLabelDirective, SidebarTriggerDirective, SlashIcon, SlashIconComponent, SlidersIcon, SlidersIconComponent, SparklesIcon, SparklesIconComponent, SpinnerIcon, SpinnerIconComponent, SquareCheckBigIcon, SquareCheckBigIconComponent, SquareCheckIcon, SquareCheckIconComponent, SquareIcon, SquareIconComponent, SquareMinusIcon, SquareMinusIconComponent, SquarePenIcon, SquarePenIconComponent, StarIcon, StarIconComponent, SubMenuComponent, SunBrightIcon, SunBrightIconComponent, SwitchComponent, SyncIcon, SyncIconComponent, TEXTAREA_CONTROL_CLASS, TEXTAREA_COUNTER_CLASS, TEXTAREA_LINE_HEIGHT, TOGGLE_GROUP, TOGGLE_ICON_CLASS, TOGGLE_LABEL_CLASS, TOOLTIP_CLASS, TREE_ITEM_EXPANDER_CLASS, TabComponent, TabListComponent, TabPanelComponent, TabsComponent, TagComponent, TagIcon, TagIconComponent, TagInputComponent, TagRemoveComponent, TagsIcon, TagsIconComponent, TextareaComponent, TextareaControlDirective, TextareaCounterComponent, ThumbsDownIcon, ThumbsDownIconComponent, ThumbsUpIcon, ThumbsUpIconComponent, ToggleComponent, ToggleGroupComponent, ToggleItemComponent, ToggleLeftIcon, ToggleLeftIconComponent, ToggleRightIcon, ToggleRightIconComponent, TooltipComponent, TooltipContentDirective, TooltipDirective, TrashCanIcon, TrashCanIconComponent, TrashIcon, TrashIconComponent, TreeComponent, TreeItemComponent, TreeItemExpanderComponent, TreeItemGroupComponent, TriangleAlertIcon, TriangleAlertIconComponent, TypeIcon, TypeIconComponent, UndoIcon, UndoIconComponent, UploadIcon, UploadIconComponent, UserIcon, UserIconComponent, UserRoundIcon, UserRoundIconComponent, UserSecretIcon, UserSecretIconComponent, VideoIcon, VideoIconComponent, XMarkIcon, XMarkIconComponent, createCallable, fixStaleComboboxRelay, getListDepthStyle, injectCallRef, injectFloatingPanel, linkIconVariants, listItemVariants, menuContentVariants, menuItemVariants, menuPanelVariants, menuSeparatorVariants, modalVariants, provideCallable, resizableGroupVariants, resizableHandleVariants, searchBarVariants, selectChevronVariants, selectMenuVariants, selectOptionVariants, selectTriggerVariants, selectWrapVariants, sheetVariants, sidebarInsetVariants, sidebarVariants, textareaWrapVariants, toggleGroupVariants, toggleVariants, tooltipVariants, treeItemVariants };
24158
+ export { AUTOCOMPLETE_TAGS_CLASS, AUTOCOMPLETE_TRIGGER_CLASS, ArrowDownIcon, ArrowDownIconComponent, ArrowDownZaIcon, ArrowDownZaIconComponent, ArrowLeftIcon, ArrowLeftIconComponent, ArrowRightFromBracketIcon, ArrowRightFromBracketIconComponent, ArrowRightIcon, ArrowRightIconComponent, ArrowUpAzIcon, ArrowUpAzIconComponent, ArrowUpIcon, ArrowUpIconComponent, ArrowUpRightFromSquareIcon, ArrowUpRightFromSquareIconComponent, ArrowsMaximizeIcon, ArrowsMaximizeIconComponent, AutocompleteComponent, AvatarComponent, AvatarFallbackComponent, AvatarImageComponent, AwardIcon, AwardIconComponent, BadgeComponent, BarsIcon, BarsIconComponent, BellIcon, BellIconComponent, BookmarkIcon, BookmarkIconComponent, BreakpointObserverService, BuildingIcon, BuildingIconComponent, BulletComponent, ButtonComponent, CALL_REF, CalendarClockIcon, CalendarClockIconComponent, CalendarDayIcon, CalendarDayIconComponent, CallRef, ChatPlusIcon, ChatPlusIconComponent, CheckIcon, CheckIconComponent, CheckboxComponent, ChevronDownIcon, ChevronDownIconComponent, ChevronLeftIcon, ChevronLeftIconComponent, ChevronRightIcon, ChevronRightIconComponent, ChevronUpIcon, ChevronUpIconComponent, ChevronsLeftIcon, ChevronsLeftIconComponent, ChevronsRightIcon, ChevronsRightIconComponent, CircleCheckIcon, CircleCheckIconComponent, CircleXIcon, CircleXIconComponent, ClipboardIcon, ClipboardIconComponent, ClockIcon, ClockIconComponent, CogIcon, CogIconComponent, CommentIcon, CommentIconComponent, CommentsIcon, CommentsIconComponent, DIALOG_REF, DebugIcon, DebugIconComponent, DesktopIcon, DesktopIconComponent, DialogBodyComponent, DialogComponent, DialogContentComponent, DialogDescriptionComponent, DialogFooterComponent, DialogHeaderComponent, DialogService, DialogTitleComponent, DownloadIcon, DownloadIconComponent, PopoverDirective as DropdownDirective, PopoverDirective, EditIcon, EditIconComponent, EllipsisIcon, EllipsisIconComponent, EllipsisVerticalIcon, EllipsisVerticalIconComponent, EnvelopeIcon, EnvelopeIconComponent, ExternalLinkIcon, ExternalLinkIconComponent, EyeIcon, EyeIconComponent, EyeSlashIcon, EyeSlashIconComponent, FileHTMLIcon, FileHTMLIconComponent, FileIcon, FileIconComponent, FileMagnifyingGlassIcon, FileMagnifyingGlassIconComponent, FileOutputIcon, FileOutputIconComponent, FileSearchIcon, FileSearchIconComponent, FileSpreadsheetIcon, FileSpreadsheetIconComponent, FileTextIcon, FileTextIconComponent, FilesIcon, FilesIconComponent, FilterIcon, FilterIconComponent, FilterXIcon, FilterXIconComponent, FlagEnglishIcon, FlagEnglishIconComponent, FlagFrenchIcon, FlagFrenchIconComponent, FlagGermanIcon, FlagGermanIconComponent, FlashlightIcon, FlashlightIconComponent, FolderIcon, FolderIconComponent, FolderOpenIcon, FolderOpenIconComponent, FrownIcon, FrownIconComponent, GearIcon, GearIconComponent, GitForkIcon, GitForkIconComponent, GlobeIcon, GlobeIconComponent, GridIcon, GridIconComponent, HighlighterIcon, HighlighterIconComponent, HistoryIcon, HistoryIconComponent, HomeIcon, HomeIconComponent, HouseIcon, HouseIconComponent, ImageIcon, ImageIconComponent, InboxIcon, InboxIconComponent, InfoCircleIcon, InfoCircleIconComponent, InputComponent, InputControlDirective, InputCounterComponent, InputIconLeftDirective, InputIconRightDirective, KbdComponent, KbdGroupComponent, KeyIcon, KeyIconComponent, KeyboardIcon, KeyboardIconComponent, LINK_LABEL_CLASS, LIST_ITEM_AVATAR_CLASS, LIST_ITEM_CHEVRON_RIGHT_CLASS, LIST_ITEM_EXPANDER_BUTTON_CLASS, LIST_ITEM_EXPANDER_CLASS, LIST_ITEM_ICON_CLASS, LIST_ITEM_ICON_RIGHT_CLASS, LIST_ITEM_LEFT_CLASS, LIST_ITEM_SUBTEXT_CLASS, LIST_ITEM_TEXT_BLOCK_CLASS, LIST_ITEM_TEXT_CLASS, LIST_REF, LanguageIcon, LanguageIconComponent, LightbulbIcon, LightbulbIconComponent, LightbulbSlashIcon, LightbulbSlashIconComponent, LinkComponent, LinkIcon, LinkIconComponent, LinkIconLeftDirective, LinkIconRightDirective, ListComponent, ListFilterIcon, ListFilterIconComponent, ListIcon, ListIconComponent, ListItemActionComponent, ListItemAvatarDirective, ListItemChevronComponent, ListItemComponent, ListItemExpanderComponent, ListItemIconDirective, ListItemLeftDirective, ListItemTextComponent, ListboxActivateOnHover, LoadingCircleIcon, LoadingCircleIconComponent, MODAL_BODY_CLASS, MODAL_BODY_TEXT_CLASS, MODAL_CLASS, MODAL_CLOSE_CLASS, MODAL_FOOTER_CLASS, MODAL_HEADER_CLASS, MODAL_HEADER_LEFT_CLASS, MODAL_LABEL, MODAL_TITLE_CLASS, MODAL_TITLE_WRAP_CLASS, MagnifyingGlassIcon, MagnifyingGlassIconComponent, MagnifyingGlassMinusIcon, MagnifyingGlassMinusIconComponent, MagnifyingGlassPlusIcon, MagnifyingGlassPlusIconComponent, MapPinIcon, MapPinIconComponent, MenuComponent, MenuContentComponent, MenuItemComponent, MenuTriggerDirective, MinusIcon, MinusIconComponent, MoonIcon, MoonIconComponent, NewChatIcon, NewChatIconComponent, PaletteIcon, PaletteIconComponent, PanelLeftIcon, PanelLeftIconComponent, PanelRightIcon, PanelRightIconComponent, PaperclipIcon, PaperclipIconComponent, PenToSquareIcon, PenToSquareIconComponent, PlusIcon, PlusIconComponent, PresentationIcon, PresentationIconComponent, QuestionCircleIcon, QuestionCircleIconComponent, QuestionIcon, QuestionIconComponent, RESIZABLE_PANEL_CLASS, RESIZABLE_PANEL_GROUP, RadioComponent, RefreshIcon, RefreshIconComponent, ResizableHandleComponent, ResizablePanelComponent, ResizablePanelGroupComponent, RobotIcon, RobotIconComponent, RotateIcon, RotateIconComponent, RowFeedComponent, RowGridComponent, SB_ICON_CLASS, SB_INPUT_CLASS, SELECT_CHEVRON_CLASS, SELECT_EMPTY_CLASS, SELECT_HINT_CLASS, SELECT_LABEL_CLASS, SELECT_MENU_CLASS, SELECT_OPTION_BODY_CLASS, SELECT_OPTION_CHECK_CLASS, SELECT_OPTION_CLASS, SELECT_OPTION_LABEL_CLASS, SELECT_OPTION_LEADING_ICON_CLASS, SELECT_OPTION_SUBLABEL_CLASS, SELECT_PLACEHOLDER_CLASS, SELECT_REF, SELECT_TRIGGER_CLASS, SELECT_TRIGGER_ICON_CLASS, SELECT_TRIGGER_LABEL_CLASS, SHEET_BODY_CLASS, SHEET_CLASS, SHEET_CLOSE_CLASS, SHEET_FOOTER_CLASS, SHEET_HEADER_CLASS, SHEET_HEADER_LEFT_CLASS, SHEET_TITLE_WRAP_CLASS, SIDEBAR_CLASS, SIDEBAR_CONTENT_CLASS, SIDEBAR_FOOTER_CLASS, SIDEBAR_GROUP_CLASS, SIDEBAR_GROUP_LABEL_CLASS, SIDEBAR_HEADER_CLASS, SIDEBAR_INSET_CLASS, SIDEBAR_ITEM_CLASS, SIDEBAR_ITEM_LABEL_CLASS, SIDEBAR_REF, SaveIcon, SaveIconComponent, SearchBarComponent, SearchBarSuggestionsComponent, SearchIcon, SearchIconComponent, SearchInputComponent, SearchInputSuggestionsComponent, SelectComponent, SelectLabelDirective, SelectTriggerDirective, SendHorizontalIcon, SendHorizontalIconComponent, SendIcon, SendIconComponent, SheetBodyComponent, SheetComponent, SheetFooterComponent, SheetHeaderComponent, SidebarComponent, SidebarContentDirective, SidebarFooterDirective, SidebarGroupDirective, SidebarGroupLabelDirective, SidebarHeaderDirective, SidebarInsetDirective, SidebarItemDirective, SidebarItemLabelDirective, SidebarTriggerDirective, SlashIcon, SlashIconComponent, SlidersIcon, SlidersIconComponent, SparklesIcon, SparklesIconComponent, SpinnerIcon, SpinnerIconComponent, SquareCheckBigIcon, SquareCheckBigIconComponent, SquareCheckIcon, SquareCheckIconComponent, SquareIcon, SquareIconComponent, SquareMinusIcon, SquareMinusIconComponent, SquarePenIcon, SquarePenIconComponent, StarIcon, StarIconComponent, SubMenuComponent, SunBrightIcon, SunBrightIconComponent, SwitchComponent, SyncIcon, SyncIconComponent, TEXTAREA_CONTROL_CLASS, TEXTAREA_COUNTER_CLASS, TEXTAREA_LINE_HEIGHT, TOGGLE_GROUP, TOGGLE_ICON_CLASS, TOGGLE_LABEL_CLASS, TOOLTIP_CLASS, TREE_ITEM_EXPANDER_CLASS, TabComponent, TabListComponent, TabPanelComponent, TabsComponent, TagComponent, TagIcon, TagIconComponent, TagInputComponent, TagRemoveComponent, TagsIcon, TagsIconComponent, TextareaComponent, TextareaControlDirective, TextareaCounterComponent, ThumbsDownIcon, ThumbsDownIconComponent, ThumbsUpIcon, ThumbsUpIconComponent, ToggleComponent, ToggleGroupComponent, ToggleItemComponent, ToggleLeftIcon, ToggleLeftIconComponent, ToggleRightIcon, ToggleRightIconComponent, TooltipComponent, TooltipContentDirective, TooltipDirective, TrashCanIcon, TrashCanIconComponent, TrashIcon, TrashIconComponent, TreeComponent, TreeItemComponent, TreeItemExpanderComponent, TreeItemGroupComponent, TriangleAlertIcon, TriangleAlertIconComponent, TypeIcon, TypeIconComponent, UndoIcon, UndoIconComponent, UploadIcon, UploadIconComponent, UserIcon, UserIconComponent, UserRoundIcon, UserRoundIconComponent, UserSecretIcon, UserSecretIconComponent, VideoIcon, VideoIconComponent, XMarkIcon, XMarkIconComponent, createCallable, getListDepthStyle, injectCallRef, injectFloatingPanel, linkIconVariants, listItemVariants, menuContentVariants, menuItemVariants, menuPanelVariants, menuSeparatorVariants, modalVariants, provideCallable, resizableGroupVariants, resizableHandleVariants, searchBarVariants, selectChevronVariants, selectMenuVariants, selectOptionVariants, selectTriggerVariants, selectWrapVariants, sheetVariants, sidebarInsetVariants, sidebarVariants, textareaWrapVariants, toggleGroupVariants, toggleVariants, tooltipVariants, treeItemVariants };
23937
24159
 
23938
24160
  //# sourceMappingURL=sinequa-galactik.mjs.map