@acorex/components 22.0.0-next.9 → 22.1.0-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/combo-box/README.md +31 -0
  2. package/fesm2022/acorex-components-action-sheet.mjs +1 -0
  3. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
  4. package/fesm2022/acorex-components-button.mjs +2 -2
  5. package/fesm2022/acorex-components-button.mjs.map +1 -1
  6. package/fesm2022/acorex-components-calendar.mjs +10 -12
  7. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  8. package/fesm2022/acorex-components-combo-box.mjs +460 -0
  9. package/fesm2022/acorex-components-combo-box.mjs.map +1 -0
  10. package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-DCcRJYfF.mjs +50 -0
  11. package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-DCcRJYfF.mjs.map +1 -0
  12. package/fesm2022/{acorex-components-conversation-open-composer-picker-for-files-Hh5Oyp3p.mjs → acorex-components-conversation-open-composer-picker-for-files-BuNEjswI.mjs} +2 -2
  13. package/fesm2022/{acorex-components-conversation-open-composer-picker-for-files-Hh5Oyp3p.mjs.map → acorex-components-conversation-open-composer-picker-for-files-BuNEjswI.mjs.map} +1 -1
  14. package/fesm2022/acorex-components-conversation.mjs +2034 -7467
  15. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  16. package/fesm2022/acorex-components-data-table.mjs +135 -45
  17. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  18. package/fesm2022/acorex-components-datetime-box.mjs +14 -16
  19. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
  20. package/fesm2022/acorex-components-datetime-input.mjs +61 -32
  21. package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
  22. package/fesm2022/acorex-components-decorators.mjs +19 -3
  23. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  24. package/fesm2022/acorex-components-dialog.mjs +7 -4
  25. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  26. package/fesm2022/acorex-components-drawer.mjs +2 -2
  27. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  28. package/fesm2022/acorex-components-dropdown.mjs +4 -4
  29. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  30. package/fesm2022/acorex-components-fab.mjs +2 -2
  31. package/fesm2022/acorex-components-fab.mjs.map +1 -1
  32. package/fesm2022/acorex-components-file-viewer.mjs +27 -27
  33. package/fesm2022/acorex-components-file-viewer.mjs.map +1 -1
  34. package/fesm2022/acorex-components-grid-layout-builder.mjs +238 -36
  35. package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
  36. package/fesm2022/acorex-components-list.mjs +2 -2
  37. package/fesm2022/acorex-components-list.mjs.map +1 -1
  38. package/fesm2022/acorex-components-lookup.mjs +1839 -0
  39. package/fesm2022/acorex-components-lookup.mjs.map +1 -0
  40. package/fesm2022/acorex-components-map.mjs +2 -2
  41. package/fesm2022/acorex-components-map.mjs.map +1 -1
  42. package/fesm2022/acorex-components-menu.mjs +231 -74
  43. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  44. package/fesm2022/acorex-components-notification.mjs +9 -2
  45. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  46. package/fesm2022/acorex-components-number-box.mjs +30 -29
  47. package/fesm2022/acorex-components-number-box.mjs.map +1 -1
  48. package/fesm2022/acorex-components-password-box.mjs +1 -1
  49. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  50. package/fesm2022/acorex-components-popover.mjs +7 -6
  51. package/fesm2022/acorex-components-popover.mjs.map +1 -1
  52. package/fesm2022/acorex-components-popup.mjs +4 -2
  53. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  54. package/fesm2022/acorex-components-scheduler.mjs +12 -22
  55. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  56. package/fesm2022/acorex-components-select-box.mjs +15 -4
  57. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  58. package/fesm2022/acorex-components-tag-box.mjs +2 -2
  59. package/fesm2022/acorex-components-tag-box.mjs.map +1 -1
  60. package/fesm2022/acorex-components-text-area.mjs +2 -2
  61. package/fesm2022/acorex-components-text-area.mjs.map +1 -1
  62. package/fesm2022/acorex-components-toast.mjs +9 -2
  63. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  64. package/fesm2022/acorex-components-tooltip.mjs +2 -2
  65. package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
  66. package/lookup/README.md +52 -0
  67. package/package.json +11 -3
  68. package/select-box/README.md +5 -0
  69. package/types/acorex-components-action-sheet.d.ts +9 -1
  70. package/types/acorex-components-combo-box.d.ts +204 -0
  71. package/types/acorex-components-conversation.d.ts +317 -94
  72. package/types/acorex-components-data-table.d.ts +35 -3
  73. package/types/acorex-components-datetime-box.d.ts +2 -0
  74. package/types/acorex-components-datetime-input.d.ts +24 -5
  75. package/types/acorex-components-decorators.d.ts +1 -0
  76. package/types/acorex-components-dialog.d.ts +9 -0
  77. package/types/acorex-components-grid-layout-builder.d.ts +34 -2
  78. package/types/acorex-components-lookup.d.ts +624 -0
  79. package/types/acorex-components-menu.d.ts +28 -4
  80. package/types/acorex-components-notification.d.ts +11 -1
  81. package/types/acorex-components-number-box.d.ts +3 -1
  82. package/types/acorex-components-popover.d.ts +4 -1
  83. package/types/acorex-components-popup.d.ts +9 -1
  84. package/types/acorex-components-scheduler.d.ts +2 -4
  85. package/types/acorex-components-select-box.d.ts +8 -2
  86. package/types/acorex-components-toast.d.ts +10 -1
  87. package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-CNHiM1Sp.mjs +0 -106
  88. package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-CNHiM1Sp.mjs.map +0 -1
@@ -138,6 +138,8 @@ declare class AXContextMenuComponent extends NXComponent {
138
138
  /** @ignore */
139
139
  private createBackdrop;
140
140
  /** @ignore */
141
+ private resolveContextMenuTarget;
142
+ /** @ignore */
141
143
  private removeBackdrop;
142
144
  private createEventListeners;
143
145
  /** @ignore */
@@ -175,8 +177,16 @@ declare class AXMenuItemComponent extends NXComponent implements OnDestroy {
175
177
  private unsuscriber;
176
178
  private renderer;
177
179
  private injector;
180
+ private document;
178
181
  private zIndexService;
179
182
  private zToken;
183
+ private submenuPortalParent;
184
+ private submenuPortalNextSibling;
185
+ /** Survives submenu portaling when the DOM parent chain is broken. */
186
+ private linkedParent;
187
+ private mouseLeaveTimeout;
188
+ private submenuUnlistenEnter;
189
+ private submenuUnlistenLeave;
180
190
  protected arrowIcon: _angular_core.Signal<string>;
181
191
  onClick: _angular_core.OutputEmitterRef<AXMenuItemClickEvent>;
182
192
  name: _angular_core.InputSignal<string>;
@@ -186,8 +196,8 @@ declare class AXMenuItemComponent extends NXComponent implements OnDestroy {
186
196
  constructor();
187
197
  private getText;
188
198
  /**
189
- * Resolves the parent menu item. Items rendered via recursive `ngTemplateOutlet` do not
190
- * receive a DI parent, so we fall back to the DOM tree after reparenting.
199
+ * Resolves the parent menu item. Prefers an explicit link (survives submenu portaling),
200
+ * then DI, then the DOM tree.
191
201
  */
192
202
  getParentMenuItem(): AXMenuItemComponent | null;
193
203
  /**
@@ -204,10 +214,20 @@ declare class AXMenuItemComponent extends NXComponent implements OnDestroy {
204
214
  private schedulePositionCalculation;
205
215
  /**
206
216
  * Calculate the position of the submenu to avoid it going out of the viewport.
217
+ * Tall panels are height-clamped; the panel is portaled so parent overflow cannot clip it.
207
218
  */
208
219
  private calculatePosition;
209
220
  /** Measures submenu size using the same flex layout as the rendered menu. */
210
221
  private measureSubmenuRect;
222
+ /** Moves the submenu under the context-menu backdrop (or body) to escape ancestor overflow. */
223
+ private portalSubmenu;
224
+ private restoreSubmenuPortal;
225
+ /** Keep this item open while the pointer is over its portaled submenu panel. */
226
+ private bindSubmenuPointerListeners;
227
+ private unbindSubmenuPointerListeners;
228
+ /** Links direct children so parent resolution still works after the panel is portaled. */
229
+ private linkChildItems;
230
+ private getInstanceFromElement;
211
231
  /**
212
232
  * Moves nested `ax-menu-item` nodes rendered by recursive `ngTemplateOutlet` templates
213
233
  * into the submenu slot. Angular content queries do not traverse those embedded views.
@@ -225,10 +245,14 @@ declare class AXMenuItemComponent extends NXComponent implements OnDestroy {
225
245
  private clampVerticalPosition;
226
246
  handleClick(e: MouseEvent): void;
227
247
  handleMouseEnter(event: MouseEvent): void;
228
- private mouseLeaveTimeout;
229
248
  handleMouseLeave(event: MouseEvent): void;
230
- /** True when the pointer moved into this item's submenu panel or a nested open submenu. */
249
+ private handlePointerLeave;
250
+ private scheduleClose;
251
+ private clearCloseTimeout;
252
+ private clearAncestorCloseTimeouts;
253
+ /** True when the pointer is still inside this item's submenu tree (including portaled panels). */
231
254
  private containsSubmenuPointer;
255
+ private isSelfOrAncestorOf;
232
256
  ngOnDestroy(): void;
233
257
  /** @ignore */
234
258
  get __hostClass(): string[];
@@ -1,7 +1,7 @@
1
1
  import { AXStyleColorType, AXStyleLookType, AXLocation, MXBaseComponent } from '@acorex/cdk/common';
2
2
  import { AXOverlayRef } from '@acorex/cdk/overlay';
3
3
  import * as _angular_core from '@angular/core';
4
- import { TemplateRef, Type, OnInit, InjectionToken } from '@angular/core';
4
+ import { TemplateRef, Type, ElementRef, OnInit, InjectionToken } from '@angular/core';
5
5
 
6
6
  type AXNotificationContentType = string | TemplateRef<unknown> | Type<unknown>;
7
7
  interface AXNotificationButtonItem {
@@ -26,6 +26,14 @@ interface AXNotificationOptions {
26
26
  timeOut?: number;
27
27
  timeOutProgress?: boolean;
28
28
  pauseOnHover?: boolean;
29
+ /**
30
+ * Element used to resolve inherited visual context for overlays rendered
31
+ * outside the originating DOM subtree.
32
+ *
33
+ * This affects Appearance, Light/Dark theme, Contrast, Size, and supported
34
+ * Density context. It does not affect overlay positioning.
35
+ */
36
+ contextElement?: HTMLElement | ElementRef<HTMLElement>;
29
37
  }
30
38
  interface AXNotificationData {
31
39
  buttons?: AXNotificationButtonItem[];
@@ -50,6 +58,7 @@ interface AXNotificationInternalRef {
50
58
  id: string;
51
59
  overlayRef: AXOverlayRef<unknown>;
52
60
  config: AXNotificationData;
61
+ contextElement?: HTMLElement | ElementRef<HTMLElement>;
53
62
  close: () => void;
54
63
  }
55
64
 
@@ -124,6 +133,7 @@ declare class AXNotificationService {
124
133
  private notificationCounterRef;
125
134
  private moreNotificationsColor;
126
135
  private moreNotificationsLocation;
136
+ private moreNotificationsContextElement;
127
137
  private reserveCounter;
128
138
  show(config: AXNotificationOptions): AXNotificationRef;
129
139
  private displayNotification;
@@ -27,6 +27,7 @@ declare class AXNumberBoxComponent extends AXNumberBoxComponent_base {
27
27
  changeOnScroll: _angular_core.InputSignal<boolean>;
28
28
  step: _angular_core.InputSignal<number>;
29
29
  protected mode: _angular_core.WritableSignal<"digits" | "thousandsSeparator" | "decimal">;
30
+ protected decimalPlaces: _angular_core.Signal<number>;
30
31
  private input;
31
32
  protected stringValue: _angular_core.WritableSignal<string>;
32
33
  private translationService;
@@ -37,11 +38,12 @@ declare class AXNumberBoxComponent extends AXNumberBoxComponent_base {
37
38
  result: boolean;
38
39
  message?: undefined;
39
40
  }>;
40
- protected internalValueChanged(value: number | undefined): void;
41
+ protected internalValueChanged(value: number | undefined | null): void;
41
42
  private plusValue;
42
43
  private minusValue;
43
44
  private getNumericValue;
44
45
  private getSteppedValue;
46
+ private formatDisplayValue;
45
47
  private clampToRange;
46
48
  private getFractionDigits;
47
49
  protected handleOnKeydownEvent(e: KeyboardEvent): void;
@@ -1,6 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { OnDestroy, ElementRef, ComponentRef, TemplateRef, EventEmitter } from '@angular/core';
3
3
  import { MXBaseComponent, AXPlacementType, AXEvent } from '@acorex/cdk/common';
4
+ import { AXOverlayVisualContextScope } from '@acorex/cdk/overlay';
4
5
  import { AXComponentType } from '@acorex/core/components';
5
6
  import * as i1 from '@angular/common';
6
7
 
@@ -39,6 +40,8 @@ declare class AXPopoverComponent extends MXBaseComponent implements OnDestroy {
39
40
  private _disabled;
40
41
  readonly width: i0.InputSignal<string>;
41
42
  readonly disablePanelClass: i0.InputSignal<boolean>;
43
+ /** Propagate theme/size only — floating dropdown panels opt out of appearance/contrast. */
44
+ readonly visualContextScope: i0.InputSignal<AXOverlayVisualContextScope>;
42
45
  private translateService;
43
46
  /**
44
47
  * Gets or sets whether the popover is disabled.
@@ -240,7 +243,7 @@ declare class AXPopoverComponent extends MXBaseComponent implements OnDestroy {
240
243
  /** @ignore */
241
244
  ngOnDestroy(): void;
242
245
  static ɵfac: i0.ɵɵFactoryDeclaration<AXPopoverComponent, never>;
243
- static ɵcmp: i0.ɵɵComponentDeclaration<AXPopoverComponent, "ax-popover", never, { "width": { "alias": "width"; "required": false; "isSignal": true; }; "disablePanelClass": { "alias": "disablePanelClass"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; }; "offsetX": { "alias": "offsetX"; "required": false; }; "offsetY": { "alias": "offsetY"; "required": false; }; "target": { "alias": "target"; "required": false; }; "placement": { "alias": "placement"; "required": false; }; "content": { "alias": "content"; "required": false; }; "openOn": { "alias": "openOn"; "required": false; }; "closeOn": { "alias": "closeOn"; "required": false; }; "hasBackdrop": { "alias": "hasBackdrop"; "required": false; }; "openAfter": { "alias": "openAfter"; "required": false; }; "closeAfter": { "alias": "closeAfter"; "required": false; }; "closeOnScroll": { "alias": "closeOnScroll"; "required": false; }; "backdropClass": { "alias": "backdropClass"; "required": false; }; "panelClass": { "alias": "panelClass"; "required": false; }; "adaptivityEnabled": { "alias": "adaptivityEnabled"; "required": false; }; }, { "onOpened": "onOpened"; "onClosed": "onClosed"; }, never, ["*"], true, never>;
246
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXPopoverComponent, "ax-popover", never, { "width": { "alias": "width"; "required": false; "isSignal": true; }; "disablePanelClass": { "alias": "disablePanelClass"; "required": false; "isSignal": true; }; "visualContextScope": { "alias": "visualContextScope"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; }; "offsetX": { "alias": "offsetX"; "required": false; }; "offsetY": { "alias": "offsetY"; "required": false; }; "target": { "alias": "target"; "required": false; }; "placement": { "alias": "placement"; "required": false; }; "content": { "alias": "content"; "required": false; }; "openOn": { "alias": "openOn"; "required": false; }; "closeOn": { "alias": "closeOn"; "required": false; }; "hasBackdrop": { "alias": "hasBackdrop"; "required": false; }; "openAfter": { "alias": "openAfter"; "required": false; }; "closeAfter": { "alias": "closeAfter"; "required": false; }; "closeOnScroll": { "alias": "closeOnScroll"; "required": false; }; "backdropClass": { "alias": "backdropClass"; "required": false; }; "panelClass": { "alias": "panelClass"; "required": false; }; "adaptivityEnabled": { "alias": "adaptivityEnabled"; "required": false; }; }, { "onOpened": "onOpened"; "onClosed": "onClosed"; }, never, ["*"], true, never>;
244
247
  }
245
248
 
246
249
  declare class AXPopoverModule {
@@ -1,5 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { TemplateRef, ViewContainerRef, StaticProvider, OnInit, OnDestroy } from '@angular/core';
2
+ import { TemplateRef, ViewContainerRef, StaticProvider, ElementRef, OnInit, OnDestroy } from '@angular/core';
3
3
  import * as i2 from '@acorex/cdk/common';
4
4
  import { NXComponent, MXBaseComponent, AXComponentClosedPromise } from '@acorex/cdk/common';
5
5
  import { AXComponentType, AXComponentInputs } from '@acorex/core/components';
@@ -55,6 +55,14 @@ interface AXPopupConfig {
55
55
  * extra content inputs that depend on the ref.
56
56
  */
57
57
  _bindContentInputs?: (ref: AXPopupRef) => Record<string, unknown>;
58
+ /**
59
+ * Element used to resolve inherited visual context for overlays rendered
60
+ * outside the originating DOM subtree.
61
+ *
62
+ * This affects Appearance, Light/Dark theme, Contrast, Size, and supported
63
+ * Density context. It does not affect overlay positioning.
64
+ */
65
+ contextElement?: HTMLElement | ElementRef<HTMLElement>;
58
66
  }
59
67
  interface AXPopupData {
60
68
  title: string;
@@ -115,7 +115,6 @@ declare class AXSchedulerComponent extends NXComponent implements OnInit {
115
115
  private translationService;
116
116
  private eventService;
117
117
  private translationRevision;
118
- private viewModeSelectbox;
119
118
  private calendarPopover;
120
119
  private _calendarDayCellTemplate;
121
120
  private _calendarMonthCellTemplate;
@@ -133,8 +132,8 @@ declare class AXSchedulerComponent extends NXComponent implements OnInit {
133
132
  appointments: _angular_core.Signal<AXSchedulerAppointment[]>;
134
133
  protected readonly rtl: _angular_core.Signal<boolean>;
135
134
  protected isFullScreen: _angular_core.WritableSignal<boolean>;
136
- protected viewsDataSource: _angular_core.WritableSignal<{
137
- id: string;
135
+ protected viewsDataSource: _angular_core.Signal<{
136
+ id: AXSchedulerView;
138
137
  text: string;
139
138
  }[]>;
140
139
  private prevDate;
@@ -186,7 +185,6 @@ declare class AXSchedulerComponent extends NXComponent implements OnInit {
186
185
  */
187
186
  private getWeekReanchorDate;
188
187
  private syncCurrentDateAfterLocaleChange;
189
- private fillDataSource;
190
188
  private getGridDateRange;
191
189
  currentDateText: _angular_core.Signal<string>;
192
190
  calendarDepth: _angular_core.Signal<"day" | "month" | "year">;
@@ -22,8 +22,10 @@ import * as i11 from '@acorex/components/text-box';
22
22
 
23
23
  declare const AXSelectBoxComponent_base: polytype.Polytype.ClusteredConstructor<[typeof MXDropdownBoxBaseComponent, typeof MXSelectionValueComponent, typeof MXLookComponent]>;
24
24
  /**
25
- * The Button is a component which detects user interaction and triggers a corresponding event
26
- * @category
25
+ * @deprecated Use `combo-box` when your data is a simple array. Use `lookup` when you need advanced features and `AXDataSource` support.
26
+ * This component is deprecated and no longer supported.
27
+ *
28
+ * @category Components
27
29
  */
28
30
  declare class AXSelectBoxComponent extends AXSelectBoxComponent_base implements OnDestroy {
29
31
  #private;
@@ -189,6 +191,10 @@ declare class AXSelectBoxComponent extends AXSelectBoxComponent_base implements
189
191
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXSelectBoxComponent, "ax-select-box", never, { "disabled": { "alias": "disabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "minValue": { "alias": "minValue"; "required": false; }; "maxValue": { "alias": "maxValue"; "required": false; }; "value": { "alias": "value"; "required": false; }; "state": { "alias": "state"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "type": { "alias": "type"; "required": false; }; "look": { "alias": "look"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "valueField": { "alias": "valueField"; "required": false; }; "textField": { "alias": "textField"; "required": false; }; "disabledField": { "alias": "disabledField"; "required": false; }; "textTemplate": { "alias": "textTemplate"; "required": false; }; "selectedItems": { "alias": "selectedItems"; "required": false; }; "isItemTruncated": { "alias": "isItemTruncated"; "required": false; "isSignal": true; }; "showItemTooltip": { "alias": "showItemTooltip"; "required": false; "isSignal": true; }; "itemHeight": { "alias": "itemHeight"; "required": false; "isSignal": true; }; "maxVisibleItems": { "alias": "maxVisibleItems"; "required": false; "isSignal": true; }; "dataSource": { "alias": "dataSource"; "required": false; }; "minRecordsForSearch": { "alias": "minRecordsForSearch"; "required": false; }; "caption": { "alias": "caption"; "required": false; }; "itemTemplate": { "alias": "itemTemplate"; "required": false; }; "selectedTemplate": { "alias": "selectedTemplate"; "required": false; }; "emptyTemplate": { "alias": "emptyTemplate"; "required": false; }; "loadingTemplate": { "alias": "loadingTemplate"; "required": false; }; "dropdownWidth": { "alias": "dropdownWidth"; "required": false; "isSignal": true; }; "searchBoxAutoFocus": { "alias": "searchBoxAutoFocus"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "stateChange": "stateChange"; "onValueChanged": "onValueChanged"; "onBlur": "onBlur"; "onFocus": "onFocus"; "readonlyChange": "readonlyChange"; "disabledChange": "disabledChange"; "onOpened": "onOpened"; "onClosed": "onClosed"; "onItemSelected": "onItemSelected"; "onItemClick": "onItemClick"; }, ["searchBox"], ["ax-prefix", "ax-clear-button", "ax-suffix", "ax-search-box", "ax-footer", "ax-validation-rule"], true, never>;
190
192
  }
191
193
 
194
+ /**
195
+ * @deprecated Use `combo-box` when your data is a simple array. Use `lookup` when you need advanced features and `AXDataSource` support.
196
+ * This module is deprecated and no longer supported.
197
+ */
192
198
  declare class AXSelectBoxModule {
193
199
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXSelectBoxModule, never>;
194
200
  static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXSelectBoxModule, never, [typeof i1.CommonModule, typeof i2.AXCommonModule, typeof i3.FormsModule, typeof i4.AXCheckBoxModule, typeof i5.AXBadgeModule, typeof i6.AXDecoratorModule, typeof i7.AXTranslationModule, typeof i8.AXPopoverModule, typeof i9.AXLoadingModule, typeof i10.A11yModule, typeof i11.AXTextBoxModule, typeof i12.AXDropdownModule, typeof i13.AXListModule, typeof AXSelectBoxComponent], [typeof AXSelectBoxComponent]>;
@@ -1,7 +1,7 @@
1
1
  import { AXLocation, AXStyleColorType, AXStyleLookType, MXBaseComponent } from '@acorex/cdk/common';
2
2
  import { AXOverlayRef } from '@acorex/cdk/overlay';
3
3
  import * as i0 from '@angular/core';
4
- import { OnInit, InjectionToken } from '@angular/core';
4
+ import { ElementRef, OnInit, InjectionToken } from '@angular/core';
5
5
  import * as i2 from '@acorex/components/button';
6
6
  import { AXButtonItem } from '@acorex/components/button';
7
7
  import * as i1 from '@angular/common';
@@ -20,6 +20,14 @@ interface AXToastDisplayConfig {
20
20
  timeOut?: number;
21
21
  timeOutProgress?: boolean;
22
22
  pauseOnHover?: boolean;
23
+ /**
24
+ * Element used to resolve inherited visual context for overlays rendered
25
+ * outside the originating DOM subtree.
26
+ *
27
+ * This affects Appearance, Light/Dark theme, Contrast, Size, and supported
28
+ * Density context. It does not affect overlay positioning.
29
+ */
30
+ contextElement?: HTMLElement | ElementRef<HTMLElement>;
23
31
  }
24
32
  interface AXToastData {
25
33
  icon?: string;
@@ -45,6 +53,7 @@ interface AXToastInternalRef {
45
53
  id: string;
46
54
  overlayRef: AXOverlayRef<unknown>;
47
55
  config: AXToastData;
56
+ contextElement?: HTMLElement | ElementRef<HTMLElement>;
48
57
  close: () => void;
49
58
  }
50
59
 
@@ -1,106 +0,0 @@
1
- import { AXComponentCloseEvent, AXClosableComponent } from '@acorex/cdk/common';
2
- import { AXTranslationService } from '@acorex/core/translation';
3
- import * as i0 from '@angular/core';
4
- import { inject, input, computed, EventEmitter, Component } from '@angular/core';
5
-
6
- class AXConversationComposerActionChoiceDialogComponent {
7
- constructor() {
8
- this.translation = inject(AXTranslationService);
9
- this.actions = input.required(/* @ts-ignore */
10
- ...(ngDevMode ? [{ debugName: "actions" }] : /* istanbul ignore next */ []));
11
- this.fileCount = input(1, /* @ts-ignore */
12
- ...(ngDevMode ? [{ debugName: "fileCount" }] : /* istanbul ignore next */ []));
13
- this.composerActionRegistry = input.required(/* @ts-ignore */
14
- ...(ngDevMode ? [{ debugName: "composerActionRegistry" }] : /* istanbul ignore next */ []));
15
- this.__popup__ = input(/* @ts-ignore */
16
- ...(ngDevMode ? [undefined, { debugName: "__popup__" }] : /* istanbul ignore next */ []));
17
- this.hintText = computed(() => {
18
- const count = this.fileCount();
19
- if (count === 1) {
20
- return this.translation.translateSync('@acorex:chat.dialog.choose-send-option.hint-single');
21
- }
22
- return this.translation.translateSync('@acorex:chat.dialog.choose-send-option.hint-multiple', {
23
- params: { count },
24
- });
25
- }, /* @ts-ignore */
26
- ...(ngDevMode ? [{ debugName: "hintText" }] : /* istanbul ignore next */ []));
27
- this.onClosed = new EventEmitter();
28
- }
29
- getActionLabel(action) {
30
- return this.composerActionRegistry().getActionLabel(action);
31
- }
32
- getActionTooltip(action) {
33
- return this.composerActionRegistry().getActionTooltip(action);
34
- }
35
- choose(action) {
36
- const event = new AXComponentCloseEvent();
37
- event.component = this;
38
- event.data = action;
39
- this.onClosed.emit(event);
40
- }
41
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXConversationComposerActionChoiceDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
42
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXConversationComposerActionChoiceDialogComponent, isStandalone: true, selector: "ax-conversation-composer-action-choice-dialog", inputs: { actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: true, transformFunction: null }, fileCount: { classPropertyName: "fileCount", publicName: "fileCount", isSignal: true, isRequired: false, transformFunction: null }, composerActionRegistry: { classPropertyName: "composerActionRegistry", publicName: "composerActionRegistry", isSignal: true, isRequired: true, transformFunction: null }, __popup__: { classPropertyName: "__popup__", publicName: "__popup__", isSignal: true, isRequired: false, transformFunction: null } }, providers: [{ provide: AXClosableComponent, useExisting: AXConversationComposerActionChoiceDialogComponent }], ngImport: i0, template: `
43
- <div class="composer-action-choice" role="dialog" aria-modal="true">
44
- <p class="composer-action-choice__hint">{{ hintText() }}</p>
45
- <ul class="composer-action-choice__list" role="listbox">
46
- @for (action of actions(); track action.id) {
47
- <li role="presentation">
48
- <button
49
- type="button"
50
- class="composer-action-choice__option"
51
- role="option"
52
- (click)="choose(action)"
53
- [attr.aria-label]="getActionLabel(action)"
54
- >
55
- <span class="composer-action-choice__icon" aria-hidden="true">
56
- <i [class]="action.icon"></i>
57
- </span>
58
- <span class="composer-action-choice__text">
59
- <span class="composer-action-choice__title">{{ getActionLabel(action) }}</span>
60
- @if (getActionTooltip(action); as tip) {
61
- <span class="composer-action-choice__subtitle">{{ tip }}</span>
62
- }
63
- </span>
64
- <i class="fa-light fa-chevron-right composer-action-choice__chevron" aria-hidden="true"></i>
65
- </button>
66
- </li>
67
- }
68
- </ul>
69
- </div>
70
- `, isInline: true, styles: [":host{display:block}.composer-action-choice{display:flex;flex-direction:column;gap:.75rem;padding:.5rem;min-width:16rem}.composer-action-choice__hint{margin:0;font-size:.8125rem;line-height:1.45;color:rgba(var(--ax-sys-color-on-surface),.7)}.composer-action-choice__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.composer-action-choice__option{display:flex;align-items:center;gap:.75rem;width:100%;padding:.625rem .75rem;border:1px solid rgb(var(--ax-sys-color-border-light-surface));border-radius:var(--ax-sys-border-radius, .5rem);background:rgb(var(--ax-sys-color-surface));cursor:pointer;text-align:start;transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease}.composer-action-choice__option:hover,.composer-action-choice__option:focus-visible{border-color:rgb(var(--ax-sys-color-primary-500));background:rgba(var(--ax-sys-color-primary-500),.06);outline:none;box-shadow:0 0 0 1px rgba(var(--ax-sys-color-primary-500),.25)}.composer-action-choice__icon{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;flex-shrink:0;border-radius:var(--ax-sys-border-radius, .375rem);background:rgba(var(--ax-sys-color-primary-500),.1);color:rgb(var(--ax-sys-color-primary-600));font-size:1.125rem}.composer-action-choice__text{flex:1;min-width:0;display:flex;flex-direction:column;gap:.125rem}.composer-action-choice__title{font-size:.875rem;font-weight:600;color:rgb(var(--ax-sys-color-on-surface))}.composer-action-choice__subtitle{font-size:.75rem;color:rgba(var(--ax-sys-color-on-surface),.6);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.composer-action-choice__chevron{flex-shrink:0;font-size:.75rem;color:rgba(var(--ax-sys-color-on-surface),.45)}\n"] }); }
71
- }
72
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXConversationComposerActionChoiceDialogComponent, decorators: [{
73
- type: Component,
74
- args: [{ selector: 'ax-conversation-composer-action-choice-dialog', template: `
75
- <div class="composer-action-choice" role="dialog" aria-modal="true">
76
- <p class="composer-action-choice__hint">{{ hintText() }}</p>
77
- <ul class="composer-action-choice__list" role="listbox">
78
- @for (action of actions(); track action.id) {
79
- <li role="presentation">
80
- <button
81
- type="button"
82
- class="composer-action-choice__option"
83
- role="option"
84
- (click)="choose(action)"
85
- [attr.aria-label]="getActionLabel(action)"
86
- >
87
- <span class="composer-action-choice__icon" aria-hidden="true">
88
- <i [class]="action.icon"></i>
89
- </span>
90
- <span class="composer-action-choice__text">
91
- <span class="composer-action-choice__title">{{ getActionLabel(action) }}</span>
92
- @if (getActionTooltip(action); as tip) {
93
- <span class="composer-action-choice__subtitle">{{ tip }}</span>
94
- }
95
- </span>
96
- <i class="fa-light fa-chevron-right composer-action-choice__chevron" aria-hidden="true"></i>
97
- </button>
98
- </li>
99
- }
100
- </ul>
101
- </div>
102
- `, providers: [{ provide: AXClosableComponent, useExisting: AXConversationComposerActionChoiceDialogComponent }], styles: [":host{display:block}.composer-action-choice{display:flex;flex-direction:column;gap:.75rem;padding:.5rem;min-width:16rem}.composer-action-choice__hint{margin:0;font-size:.8125rem;line-height:1.45;color:rgba(var(--ax-sys-color-on-surface),.7)}.composer-action-choice__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.composer-action-choice__option{display:flex;align-items:center;gap:.75rem;width:100%;padding:.625rem .75rem;border:1px solid rgb(var(--ax-sys-color-border-light-surface));border-radius:var(--ax-sys-border-radius, .5rem);background:rgb(var(--ax-sys-color-surface));cursor:pointer;text-align:start;transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease}.composer-action-choice__option:hover,.composer-action-choice__option:focus-visible{border-color:rgb(var(--ax-sys-color-primary-500));background:rgba(var(--ax-sys-color-primary-500),.06);outline:none;box-shadow:0 0 0 1px rgba(var(--ax-sys-color-primary-500),.25)}.composer-action-choice__icon{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;flex-shrink:0;border-radius:var(--ax-sys-border-radius, .375rem);background:rgba(var(--ax-sys-color-primary-500),.1);color:rgb(var(--ax-sys-color-primary-600));font-size:1.125rem}.composer-action-choice__text{flex:1;min-width:0;display:flex;flex-direction:column;gap:.125rem}.composer-action-choice__title{font-size:.875rem;font-weight:600;color:rgb(var(--ax-sys-color-on-surface))}.composer-action-choice__subtitle{font-size:.75rem;color:rgba(var(--ax-sys-color-on-surface),.6);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.composer-action-choice__chevron{flex-shrink:0;font-size:.75rem;color:rgba(var(--ax-sys-color-on-surface),.45)}\n"] }]
103
- }], propDecorators: { actions: [{ type: i0.Input, args: [{ isSignal: true, alias: "actions", required: true }] }], fileCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "fileCount", required: false }] }], composerActionRegistry: [{ type: i0.Input, args: [{ isSignal: true, alias: "composerActionRegistry", required: true }] }], __popup__: [{ type: i0.Input, args: [{ isSignal: true, alias: "__popup__", required: false }] }] } });
104
-
105
- export { AXConversationComposerActionChoiceDialogComponent };
106
- //# sourceMappingURL=acorex-components-conversation-composer-action-choice-dialog.component-CNHiM1Sp.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"acorex-components-conversation-composer-action-choice-dialog.component-CNHiM1Sp.mjs","sources":["../../../../packages/components/conversation/src/lib/components/message-list/composer-action-choice-dialog.component.ts"],"sourcesContent":["import { AXClosableComponent, AXComponentCloseEvent } from '@acorex/cdk/common';\nimport type { AXPopupRef } from '@acorex/components/popup';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { Component, EventEmitter, computed, inject, input } from '@angular/core';\nimport type {\n AXConversationComposerAction,\n AXConversationComposerActionRegistry,\n} from '../../registries/composer-action.registry';\n\n@Component({\n selector: 'ax-conversation-composer-action-choice-dialog',\n\n template: `\n <div class=\"composer-action-choice\" role=\"dialog\" aria-modal=\"true\">\n <p class=\"composer-action-choice__hint\">{{ hintText() }}</p>\n <ul class=\"composer-action-choice__list\" role=\"listbox\">\n @for (action of actions(); track action.id) {\n <li role=\"presentation\">\n <button\n type=\"button\"\n class=\"composer-action-choice__option\"\n role=\"option\"\n (click)=\"choose(action)\"\n [attr.aria-label]=\"getActionLabel(action)\"\n >\n <span class=\"composer-action-choice__icon\" aria-hidden=\"true\">\n <i [class]=\"action.icon\"></i>\n </span>\n <span class=\"composer-action-choice__text\">\n <span class=\"composer-action-choice__title\">{{ getActionLabel(action) }}</span>\n @if (getActionTooltip(action); as tip) {\n <span class=\"composer-action-choice__subtitle\">{{ tip }}</span>\n }\n </span>\n <i class=\"fa-light fa-chevron-right composer-action-choice__chevron\" aria-hidden=\"true\"></i>\n </button>\n </li>\n }\n </ul>\n </div>\n `,\n styles: [\n `\n :host {\n display: block;\n }\n\n .composer-action-choice {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n padding: 0.5rem;\n min-width: 16rem;\n }\n\n .composer-action-choice__hint {\n margin: 0;\n font-size: 0.8125rem;\n line-height: 1.45;\n color: rgba(var(--ax-sys-color-on-surface), 0.7);\n }\n\n .composer-action-choice__list {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n }\n\n .composer-action-choice__option {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n width: 100%;\n padding: 0.625rem 0.75rem;\n border: 1px solid rgb(var(--ax-sys-color-border-light-surface));\n border-radius: var(--ax-sys-border-radius, 0.5rem);\n background: rgb(var(--ax-sys-color-surface));\n cursor: pointer;\n text-align: start;\n transition:\n border-color 0.15s ease,\n background-color 0.15s ease,\n box-shadow 0.15s ease;\n }\n\n .composer-action-choice__option:hover,\n .composer-action-choice__option:focus-visible {\n border-color: rgb(var(--ax-sys-color-primary-500));\n background: rgba(var(--ax-sys-color-primary-500), 0.06);\n outline: none;\n box-shadow: 0 0 0 1px rgba(var(--ax-sys-color-primary-500), 0.25);\n }\n\n .composer-action-choice__icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 2.5rem;\n height: 2.5rem;\n flex-shrink: 0;\n border-radius: var(--ax-sys-border-radius, 0.375rem);\n background: rgba(var(--ax-sys-color-primary-500), 0.1);\n color: rgb(var(--ax-sys-color-primary-600));\n font-size: 1.125rem;\n }\n\n .composer-action-choice__text {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 0.125rem;\n }\n\n .composer-action-choice__title {\n font-size: 0.875rem;\n font-weight: 600;\n color: rgb(var(--ax-sys-color-on-surface));\n }\n\n .composer-action-choice__subtitle {\n font-size: 0.75rem;\n color: rgba(var(--ax-sys-color-on-surface), 0.6);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .composer-action-choice__chevron {\n flex-shrink: 0;\n font-size: 0.75rem;\n color: rgba(var(--ax-sys-color-on-surface), 0.45);\n }\n `,\n ],\n providers: [{ provide: AXClosableComponent, useExisting: AXConversationComposerActionChoiceDialogComponent }],\n})\nexport class AXConversationComposerActionChoiceDialogComponent {\n private readonly translation = inject(AXTranslationService);\n\n readonly actions = input.required<AXConversationComposerAction[]>();\n readonly fileCount = input(1);\n readonly composerActionRegistry = input.required<AXConversationComposerActionRegistry>();\n readonly __popup__ = input<AXPopupRef | undefined>();\n\n readonly hintText = computed(() => {\n const count = this.fileCount();\n if (count === 1) {\n return this.translation.translateSync('@acorex:chat.dialog.choose-send-option.hint-single');\n }\n return this.translation.translateSync('@acorex:chat.dialog.choose-send-option.hint-multiple', {\n params: { count },\n });\n });\n\n readonly onClosed = new EventEmitter<AXComponentCloseEvent>();\n\n getActionLabel(action: AXConversationComposerAction): string {\n return this.composerActionRegistry().getActionLabel(action);\n }\n\n getActionTooltip(action: AXConversationComposerAction): string | undefined {\n return this.composerActionRegistry().getActionTooltip(action);\n }\n\n choose(action: AXConversationComposerAction): void {\n const event = new AXComponentCloseEvent();\n event.component = this;\n event.data = action;\n this.onClosed.emit(event);\n }\n}\n"],"names":[],"mappings":"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"}