@cdevhub/ngx-tw 0.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.
- package/LICENSE +21 -0
- package/README.md +134 -0
- package/fesm2022/cdevhub-ngx-tw-accordion.mjs +108 -0
- package/fesm2022/cdevhub-ngx-tw-accordion.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-alert.mjs +240 -0
- package/fesm2022/cdevhub-ngx-tw-alert.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-avatar.mjs +287 -0
- package/fesm2022/cdevhub-ngx-tw-avatar.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-badge.mjs +332 -0
- package/fesm2022/cdevhub-ngx-tw-badge.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-breadcrumbs.mjs +452 -0
- package/fesm2022/cdevhub-ngx-tw-breadcrumbs.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-button.mjs +227 -0
- package/fesm2022/cdevhub-ngx-tw-button.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-calendar-luxon.mjs +417 -0
- package/fesm2022/cdevhub-ngx-tw-calendar-luxon.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-calendar-testing.mjs +232 -0
- package/fesm2022/cdevhub-ngx-tw-calendar-testing.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-calendar.mjs +4482 -0
- package/fesm2022/cdevhub-ngx-tw-calendar.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-card.mjs +157 -0
- package/fesm2022/cdevhub-ngx-tw-card.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-carousel.mjs +1454 -0
- package/fesm2022/cdevhub-ngx-tw-carousel.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-checkbox.mjs +593 -0
- package/fesm2022/cdevhub-ngx-tw-checkbox.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-code-block.mjs +228 -0
- package/fesm2022/cdevhub-ngx-tw-code-block.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-collapsible.mjs +510 -0
- package/fesm2022/cdevhub-ngx-tw-collapsible.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-combobox.mjs +1721 -0
- package/fesm2022/cdevhub-ngx-tw-combobox.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-command-palette.mjs +721 -0
- package/fesm2022/cdevhub-ngx-tw-command-palette.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-core.mjs +861 -0
- package/fesm2022/cdevhub-ngx-tw-core.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-date-picker.mjs +1558 -0
- package/fesm2022/cdevhub-ngx-tw-date-picker.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-date-range-picker.mjs +1833 -0
- package/fesm2022/cdevhub-ngx-tw-date-range-picker.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-dialog.mjs +693 -0
- package/fesm2022/cdevhub-ngx-tw-dialog.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-empty-state.mjs +331 -0
- package/fesm2022/cdevhub-ngx-tw-empty-state.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-flip-card.mjs +289 -0
- package/fesm2022/cdevhub-ngx-tw-flip-card.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-form-field.mjs +572 -0
- package/fesm2022/cdevhub-ngx-tw-form-field.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-icon-lucide.mjs +36 -0
- package/fesm2022/cdevhub-ngx-tw-icon-lucide.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-icon.mjs +278 -0
- package/fesm2022/cdevhub-ngx-tw-icon.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-input.mjs +355 -0
- package/fesm2022/cdevhub-ngx-tw-input.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-item.mjs +241 -0
- package/fesm2022/cdevhub-ngx-tw-item.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-menu.mjs +433 -0
- package/fesm2022/cdevhub-ngx-tw-menu.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-paginator.mjs +691 -0
- package/fesm2022/cdevhub-ngx-tw-paginator.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-popover.mjs +678 -0
- package/fesm2022/cdevhub-ngx-tw-popover.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-progress-bar.mjs +335 -0
- package/fesm2022/cdevhub-ngx-tw-progress-bar.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-radio.mjs +708 -0
- package/fesm2022/cdevhub-ngx-tw-radio.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-segmented-control.mjs +319 -0
- package/fesm2022/cdevhub-ngx-tw-segmented-control.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-select.mjs +1722 -0
- package/fesm2022/cdevhub-ngx-tw-select.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-separator.mjs +115 -0
- package/fesm2022/cdevhub-ngx-tw-separator.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-sheet.mjs +768 -0
- package/fesm2022/cdevhub-ngx-tw-sheet.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-skeleton.mjs +149 -0
- package/fesm2022/cdevhub-ngx-tw-skeleton.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-slider.mjs +1147 -0
- package/fesm2022/cdevhub-ngx-tw-slider.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-sort.mjs +346 -0
- package/fesm2022/cdevhub-ngx-tw-sort.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-spinner.mjs +186 -0
- package/fesm2022/cdevhub-ngx-tw-spinner.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-split.mjs +1082 -0
- package/fesm2022/cdevhub-ngx-tw-split.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-stat.mjs +579 -0
- package/fesm2022/cdevhub-ngx-tw-stat.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-stepper.mjs +443 -0
- package/fesm2022/cdevhub-ngx-tw-stepper.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-switch.mjs +391 -0
- package/fesm2022/cdevhub-ngx-tw-switch.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-tab-nav.mjs +315 -0
- package/fesm2022/cdevhub-ngx-tw-tab-nav.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-table.mjs +994 -0
- package/fesm2022/cdevhub-ngx-tw-table.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-tabs.mjs +508 -0
- package/fesm2022/cdevhub-ngx-tw-tabs.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-textarea.mjs +147 -0
- package/fesm2022/cdevhub-ngx-tw-textarea.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-theme.mjs +178 -0
- package/fesm2022/cdevhub-ngx-tw-theme.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-time-picker.mjs +1344 -0
- package/fesm2022/cdevhub-ngx-tw-time-picker.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-timeline.mjs +1136 -0
- package/fesm2022/cdevhub-ngx-tw-timeline.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-toast.mjs +1311 -0
- package/fesm2022/cdevhub-ngx-tw-toast.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-tooltip.mjs +533 -0
- package/fesm2022/cdevhub-ngx-tw-tooltip.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw.mjs +61 -0
- package/fesm2022/cdevhub-ngx-tw.mjs.map +1 -0
- package/package.json +265 -0
- package/theme/_base.css +394 -0
- package/theme/_dark.css +510 -0
- package/theme/_high-contrast.css +290 -0
- package/theme/_semantic.css +317 -0
- package/theme/_typography.css +9 -0
- package/theme/index.css +54 -0
- package/types/cdevhub-ngx-tw-accordion.d.ts +48 -0
- package/types/cdevhub-ngx-tw-alert.d.ts +67 -0
- package/types/cdevhub-ngx-tw-avatar.d.ts +79 -0
- package/types/cdevhub-ngx-tw-badge.d.ts +94 -0
- package/types/cdevhub-ngx-tw-breadcrumbs.d.ts +227 -0
- package/types/cdevhub-ngx-tw-button.d.ts +74 -0
- package/types/cdevhub-ngx-tw-calendar-luxon.d.ts +200 -0
- package/types/cdevhub-ngx-tw-calendar-testing.d.ts +113 -0
- package/types/cdevhub-ngx-tw-calendar.d.ts +1704 -0
- package/types/cdevhub-ngx-tw-card.d.ts +48 -0
- package/types/cdevhub-ngx-tw-carousel.d.ts +406 -0
- package/types/cdevhub-ngx-tw-checkbox.d.ts +136 -0
- package/types/cdevhub-ngx-tw-code-block.d.ts +93 -0
- package/types/cdevhub-ngx-tw-collapsible.d.ts +151 -0
- package/types/cdevhub-ngx-tw-combobox.d.ts +389 -0
- package/types/cdevhub-ngx-tw-command-palette.d.ts +215 -0
- package/types/cdevhub-ngx-tw-core.d.ts +719 -0
- package/types/cdevhub-ngx-tw-date-picker.d.ts +317 -0
- package/types/cdevhub-ngx-tw-date-range-picker.d.ts +313 -0
- package/types/cdevhub-ngx-tw-dialog.d.ts +303 -0
- package/types/cdevhub-ngx-tw-empty-state.d.ts +104 -0
- package/types/cdevhub-ngx-tw-flip-card.d.ts +95 -0
- package/types/cdevhub-ngx-tw-form-field.d.ts +210 -0
- package/types/cdevhub-ngx-tw-icon-lucide.d.ts +29 -0
- package/types/cdevhub-ngx-tw-icon.d.ts +134 -0
- package/types/cdevhub-ngx-tw-input.d.ts +110 -0
- package/types/cdevhub-ngx-tw-item.d.ts +70 -0
- package/types/cdevhub-ngx-tw-menu.d.ts +99 -0
- package/types/cdevhub-ngx-tw-paginator.d.ts +305 -0
- package/types/cdevhub-ngx-tw-popover.d.ts +157 -0
- package/types/cdevhub-ngx-tw-progress-bar.d.ts +100 -0
- package/types/cdevhub-ngx-tw-radio.d.ts +174 -0
- package/types/cdevhub-ngx-tw-segmented-control.d.ts +66 -0
- package/types/cdevhub-ngx-tw-select.d.ts +384 -0
- package/types/cdevhub-ngx-tw-separator.d.ts +28 -0
- package/types/cdevhub-ngx-tw-sheet.d.ts +335 -0
- package/types/cdevhub-ngx-tw-skeleton.d.ts +52 -0
- package/types/cdevhub-ngx-tw-slider.d.ts +258 -0
- package/types/cdevhub-ngx-tw-sort.d.ts +136 -0
- package/types/cdevhub-ngx-tw-spinner.d.ts +50 -0
- package/types/cdevhub-ngx-tw-split.d.ts +265 -0
- package/types/cdevhub-ngx-tw-stat.d.ts +140 -0
- package/types/cdevhub-ngx-tw-stepper.d.ts +127 -0
- package/types/cdevhub-ngx-tw-switch.d.ts +88 -0
- package/types/cdevhub-ngx-tw-tab-nav.d.ts +107 -0
- package/types/cdevhub-ngx-tw-table.d.ts +479 -0
- package/types/cdevhub-ngx-tw-tabs.d.ts +121 -0
- package/types/cdevhub-ngx-tw-textarea.d.ts +62 -0
- package/types/cdevhub-ngx-tw-theme.d.ts +106 -0
- package/types/cdevhub-ngx-tw-time-picker.d.ts +303 -0
- package/types/cdevhub-ngx-tw-timeline.d.ts +278 -0
- package/types/cdevhub-ngx-tw-toast.d.ts +388 -0
- package/types/cdevhub-ngx-tw-tooltip.d.ts +95 -0
- package/types/cdevhub-ngx-tw.d.ts +49 -0
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { InjectionToken, Signal, TemplateRef } from '@angular/core';
|
|
3
|
+
import { TwSize } from '@cdevhub/ngx-tw/core';
|
|
4
|
+
|
|
5
|
+
/** A single command palette entry. */
|
|
6
|
+
interface CommandPaletteItem {
|
|
7
|
+
/** Stable identifier used as the DOM id and for selection payloads. */
|
|
8
|
+
id: string;
|
|
9
|
+
/** Visible label used for rendering and default filtering. */
|
|
10
|
+
label: string;
|
|
11
|
+
/** Additional search keywords that match the query but are not rendered. */
|
|
12
|
+
keywords?: readonly string[];
|
|
13
|
+
/** Group header name. Items sharing a group render under one section. */
|
|
14
|
+
group?: string;
|
|
15
|
+
/** Disabled items render but cannot be activated. */
|
|
16
|
+
disabled?: boolean;
|
|
17
|
+
/** Shortcut hint to render on the right edge. */
|
|
18
|
+
shortcut?: string | readonly string[];
|
|
19
|
+
/** Secondary description text rendered under the label. */
|
|
20
|
+
description?: string;
|
|
21
|
+
/** Optional icon name (consumers decide how to render). */
|
|
22
|
+
icon?: string;
|
|
23
|
+
/** Activation callback invoked before `itemSelected` is emitted. */
|
|
24
|
+
run?: () => void;
|
|
25
|
+
}
|
|
26
|
+
/** Filter signature. Receives the merged item list plus the current query; returns the filtered/reordered list. */
|
|
27
|
+
type CommandPaletteFilterFn = (items: readonly CommandPaletteItem[], query: string) => readonly CommandPaletteItem[];
|
|
28
|
+
/** Control handle exposed inside the palette overlay (for future component-based content). */
|
|
29
|
+
interface CommandPaletteRef {
|
|
30
|
+
/** Closes the palette. */
|
|
31
|
+
close(): void;
|
|
32
|
+
/** Updates the search query programmatically. */
|
|
33
|
+
setQuery(query: string): void;
|
|
34
|
+
}
|
|
35
|
+
/** Injection token providing a `CommandPaletteRef` to palette overlay content. */
|
|
36
|
+
declare const COMMAND_PALETTE_REF: InjectionToken<CommandPaletteRef>;
|
|
37
|
+
|
|
38
|
+
/** Resolved item shape used internally — merges declarative directive refs with data entries. */
|
|
39
|
+
interface ResolvedItem {
|
|
40
|
+
readonly data: CommandPaletteItem;
|
|
41
|
+
readonly directive?: CommandPaletteItemDirective;
|
|
42
|
+
readonly template?: TemplateRef<unknown>;
|
|
43
|
+
readonly shortcutKeys: readonly string[];
|
|
44
|
+
}
|
|
45
|
+
/** A rendered group in the filtered view. */
|
|
46
|
+
interface ResolvedGroup {
|
|
47
|
+
readonly id: string;
|
|
48
|
+
readonly label?: string;
|
|
49
|
+
readonly items: readonly ResolvedItem[];
|
|
50
|
+
}
|
|
51
|
+
/** Optional explicit grouping wrapper. Items placed inside inherit its label. */
|
|
52
|
+
declare class CommandPaletteGroupDirective {
|
|
53
|
+
/** Group heading text shown above the items. Required. */
|
|
54
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
55
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CommandPaletteGroupDirective, never>;
|
|
56
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CommandPaletteGroupDirective, "[twCommandPaletteGroup]", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
57
|
+
}
|
|
58
|
+
/** A declarative palette item. Consumers project its rendered content as children. */
|
|
59
|
+
declare class CommandPaletteItemDirective {
|
|
60
|
+
/** Stable identifier for the item. Used as DOM id and in selection payloads. Required. */
|
|
61
|
+
readonly id: _angular_core.InputSignal<string>;
|
|
62
|
+
/** Plain-text label used for filtering and default rendering. Defaults to `''`. */
|
|
63
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
64
|
+
/** Additional search keywords that match the query but are not rendered. Defaults to `[]`. */
|
|
65
|
+
readonly keywords: _angular_core.InputSignal<readonly string[]>;
|
|
66
|
+
/** Explicit group name. Overrides any enclosing `twCommandPaletteGroup`. Defaults to `undefined`. */
|
|
67
|
+
readonly group: _angular_core.InputSignal<string | undefined>;
|
|
68
|
+
/** Whether the item is disabled. Disabled items render but cannot be activated. Defaults to `false`. */
|
|
69
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
70
|
+
/** Keyboard shortcut hint. A string renders as one kbd; an array renders each key separately. Defaults to `undefined`. */
|
|
71
|
+
readonly shortcut: _angular_core.InputSignal<string | readonly string[] | undefined>;
|
|
72
|
+
/** Secondary description text rendered under the label. Defaults to `''`. */
|
|
73
|
+
readonly description: _angular_core.InputSignal<string>;
|
|
74
|
+
/** Callback run before `activated` emits. Defaults to `undefined`. */
|
|
75
|
+
readonly run: _angular_core.InputSignal<(() => void) | undefined>;
|
|
76
|
+
/** Fires when this specific item is activated (Enter or click). */
|
|
77
|
+
readonly activated: _angular_core.OutputEmitterRef<void>;
|
|
78
|
+
/** Projected template used by the palette overlay to render this item's content. */
|
|
79
|
+
readonly contentTemplate: Signal<TemplateRef<unknown> | undefined>;
|
|
80
|
+
private readonly parentGroup;
|
|
81
|
+
/** Resolved CommandPaletteItem data derived from inputs + parent group. */
|
|
82
|
+
readonly data: Signal<CommandPaletteItem>;
|
|
83
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CommandPaletteItemDirective, never>;
|
|
84
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CommandPaletteItemDirective, "tw-command-palette-item", never, { "id": { "alias": "id"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "keywords": { "alias": "keywords"; "required": false; "isSignal": true; }; "group": { "alias": "group"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "shortcut": { "alias": "shortcut"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "run": { "alias": "run"; "required": false; "isSignal": true; }; }, { "activated": "activated"; }, never, ["*"], true, never>;
|
|
85
|
+
}
|
|
86
|
+
/** Styles a leading icon inside a palette item. */
|
|
87
|
+
declare class CommandPaletteItemIconDirective {
|
|
88
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CommandPaletteItemIconDirective, never>;
|
|
89
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CommandPaletteItemIconDirective, "[twCommandPaletteItemIcon]", never, {}, {}, never, never, true, never>;
|
|
90
|
+
}
|
|
91
|
+
/** Styles secondary description text inside a palette item. */
|
|
92
|
+
declare class CommandPaletteItemDescriptionDirective {
|
|
93
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CommandPaletteItemDescriptionDirective, never>;
|
|
94
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CommandPaletteItemDescriptionDirective, "[twCommandPaletteItemDescription]", never, {}, {}, never, never, true, never>;
|
|
95
|
+
}
|
|
96
|
+
/** Structural directive — consumer template rendered when no items match the query. */
|
|
97
|
+
declare class CommandPaletteEmptyDirective {
|
|
98
|
+
readonly template: TemplateRef<any>;
|
|
99
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CommandPaletteEmptyDirective, never>;
|
|
100
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CommandPaletteEmptyDirective, "[twCommandPaletteEmpty]", never, {}, {}, never, never, true, never>;
|
|
101
|
+
}
|
|
102
|
+
/** Structural directive — consumer template rendered as a sticky footer inside the palette. */
|
|
103
|
+
declare class CommandPaletteFooterDirective {
|
|
104
|
+
readonly template: TemplateRef<any>;
|
|
105
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CommandPaletteFooterDirective, never>;
|
|
106
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CommandPaletteFooterDirective, "[twCommandPaletteFooter]", never, {}, {}, never, never, true, never>;
|
|
107
|
+
}
|
|
108
|
+
declare class CommandPaletteComponent {
|
|
109
|
+
/** Controls item density and padding across the palette. Defaults to `'md'`. */
|
|
110
|
+
readonly size: _angular_core.InputSignal<TwSize>;
|
|
111
|
+
/** Placeholder text shown inside the search input. Defaults to `'Type a command or search…'`. */
|
|
112
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
113
|
+
/** Two-way bindable search query. Reads or resets the current filter. Defaults to `''`. */
|
|
114
|
+
readonly query: _angular_core.ModelSignal<string>;
|
|
115
|
+
/** Two-way bindable open state. Setting to `true` opens the palette; closing updates it to `false`. Defaults to `false`. */
|
|
116
|
+
readonly open: _angular_core.ModelSignal<boolean>;
|
|
117
|
+
/** Data-driven command list. Merged with projected items and filtered by `query`. Defaults to `[]`. */
|
|
118
|
+
readonly commands: _angular_core.InputSignal<readonly CommandPaletteItem[]>;
|
|
119
|
+
/** Custom filter function. Receives the merged item list and current query, returns the filtered result. Defaults to `undefined` (case-insensitive substring match). */
|
|
120
|
+
readonly filterFn: _angular_core.InputSignal<CommandPaletteFilterFn | undefined>;
|
|
121
|
+
/** Whether the palette closes automatically after an item is activated. Defaults to `true` — a command palette is a fire-and-dismiss surface; the special case is a "run many" launcher that opts out. */
|
|
122
|
+
readonly closeOnSelect: _angular_core.InputSignal<boolean>;
|
|
123
|
+
/** Whether Escape closes the palette. Defaults to `true` — Escape is the universal dismiss key for modal surfaces; the special case is a non-dismissible palette. */
|
|
124
|
+
readonly closeOnEscape: _angular_core.InputSignal<boolean>;
|
|
125
|
+
/** Whether clicking the backdrop closes the palette. Defaults to `true` — clicking outside a modal is the expected dismiss gesture; the special case is enforcing an explicit choice. */
|
|
126
|
+
readonly closeOnBackdropClick: _angular_core.InputSignal<boolean>;
|
|
127
|
+
/** Whether the search input is auto-focused when the palette opens. Defaults to `true` — without auto-focus the user must click into the input before typing, defeating the keyboard-first design. */
|
|
128
|
+
readonly autoFocus: _angular_core.InputSignal<boolean>;
|
|
129
|
+
/** Accessible label used for the dialog role. Defaults to `'Command palette'`. */
|
|
130
|
+
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
131
|
+
/** Accessible label applied to the search input (`role="combobox"`). Defaults to `'Search commands'`. */
|
|
132
|
+
readonly searchAriaLabel: _angular_core.InputSignal<string>;
|
|
133
|
+
/** Additional classes appended to the overlay panel for consumer customization. Defaults to `''`. */
|
|
134
|
+
readonly panelClass: _angular_core.InputSignal<string | string[]>;
|
|
135
|
+
/** Fires when a command is activated (via click or Enter). Payload is the resolved `CommandPaletteItem`. */
|
|
136
|
+
readonly itemSelected: _angular_core.OutputEmitterRef<CommandPaletteItem>;
|
|
137
|
+
/** Fires after the palette becomes fully visible. */
|
|
138
|
+
readonly opened: _angular_core.OutputEmitterRef<void>;
|
|
139
|
+
/** Fires after the palette is fully removed from the DOM. */
|
|
140
|
+
readonly closed: _angular_core.OutputEmitterRef<void>;
|
|
141
|
+
private readonly overlay;
|
|
142
|
+
private readonly viewContainerRef;
|
|
143
|
+
private readonly injector;
|
|
144
|
+
private readonly destroyRef;
|
|
145
|
+
private readonly focusTrapFactory;
|
|
146
|
+
private readonly announcer;
|
|
147
|
+
private readonly declarativeItems;
|
|
148
|
+
private readonly emptyDirective;
|
|
149
|
+
private readonly footerDirective;
|
|
150
|
+
private overlayRef;
|
|
151
|
+
private overlayInstance;
|
|
152
|
+
private focusTrap;
|
|
153
|
+
private perOpenSubs;
|
|
154
|
+
private previousFocus;
|
|
155
|
+
private closing;
|
|
156
|
+
private closeTimer;
|
|
157
|
+
private announceTimer;
|
|
158
|
+
private readonly isAttached;
|
|
159
|
+
/** Merged (declarative + data-array) items keyed by id — declarative wins on collision. */
|
|
160
|
+
private readonly allItems;
|
|
161
|
+
/** Items after applying the filter function. */
|
|
162
|
+
readonly filteredItems: Signal<readonly ResolvedItem[]>;
|
|
163
|
+
/** Filtered items grouped by their `group` field. */
|
|
164
|
+
readonly grouped: Signal<readonly ResolvedGroup[]>;
|
|
165
|
+
/**
|
|
166
|
+
* Active item index, auto-resets to the first enabled item when the filtered
|
|
167
|
+
* *id set* changes. Keyed off the id sequence (not the array reference) so a
|
|
168
|
+
* re-emission of `filteredItems` with identical ids preserves the user's
|
|
169
|
+
* keyboard selection; only when ids actually shift do we recompute. When the
|
|
170
|
+
* previously-active id is still present in the new sequence its index is
|
|
171
|
+
* carried over; otherwise we fall back to the first enabled item.
|
|
172
|
+
*/
|
|
173
|
+
readonly activeIndex: _angular_core.WritableSignal<number>;
|
|
174
|
+
/** Id of the currently active item (for `aria-activedescendant`). */
|
|
175
|
+
readonly activeItemId: Signal<string | null>;
|
|
176
|
+
/** Template-ref of the projected empty state (if any). */
|
|
177
|
+
readonly emptyTemplate: Signal<TemplateRef<{
|
|
178
|
+
$implicit: string;
|
|
179
|
+
}> | null>;
|
|
180
|
+
/** Template-ref of the projected footer (if any). */
|
|
181
|
+
readonly footerTemplate: Signal<TemplateRef<void> | null>;
|
|
182
|
+
/** Resolved panel-class string (array merged into a single string). */
|
|
183
|
+
readonly panelClassResolved: Signal<string>;
|
|
184
|
+
constructor();
|
|
185
|
+
/** Open the palette programmatically. */
|
|
186
|
+
show(): void;
|
|
187
|
+
/** Close the palette programmatically. */
|
|
188
|
+
hide(): void;
|
|
189
|
+
/** Toggle the current open state. */
|
|
190
|
+
toggle(): void;
|
|
191
|
+
/** Force the palette to reapply focus to the search input. */
|
|
192
|
+
focusSearch(): void;
|
|
193
|
+
/** Activate an item: run callbacks, emit events, optionally close. */
|
|
194
|
+
selectItem(item: ResolvedItem): void;
|
|
195
|
+
/** Move the active descendant to the given item (used on hover). */
|
|
196
|
+
setActiveItem(item: ResolvedItem): void;
|
|
197
|
+
private openPalette;
|
|
198
|
+
private closePalette;
|
|
199
|
+
private ensureOverlay;
|
|
200
|
+
private attachContent;
|
|
201
|
+
private subscribePerOpen;
|
|
202
|
+
private handleOverlayKeydown;
|
|
203
|
+
private moveActive;
|
|
204
|
+
private activateActive;
|
|
205
|
+
private setupFocusTrap;
|
|
206
|
+
private destroyFocusTrap;
|
|
207
|
+
private disposeOverlay;
|
|
208
|
+
private clearCloseTimer;
|
|
209
|
+
private clearAnnounceTimer;
|
|
210
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CommandPaletteComponent, never>;
|
|
211
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CommandPaletteComponent, "tw-command-palette", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "query": { "alias": "query"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "commands": { "alias": "commands"; "required": false; "isSignal": true; }; "filterFn": { "alias": "filterFn"; "required": false; "isSignal": true; }; "closeOnSelect": { "alias": "closeOnSelect"; "required": false; "isSignal": true; }; "closeOnEscape": { "alias": "closeOnEscape"; "required": false; "isSignal": true; }; "closeOnBackdropClick": { "alias": "closeOnBackdropClick"; "required": false; "isSignal": true; }; "autoFocus": { "alias": "autoFocus"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "searchAriaLabel": { "alias": "searchAriaLabel"; "required": false; "isSignal": true; }; "panelClass": { "alias": "panelClass"; "required": false; "isSignal": true; }; }, { "query": "queryChange"; "open": "openChange"; "itemSelected": "itemSelected"; "opened": "opened"; "closed": "closed"; }, ["declarativeItems", "emptyDirective", "footerDirective"], ["*"], true, never>;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
export { COMMAND_PALETTE_REF, CommandPaletteComponent, CommandPaletteEmptyDirective, CommandPaletteFooterDirective, CommandPaletteGroupDirective, CommandPaletteItemDescriptionDirective, CommandPaletteItemDirective, CommandPaletteItemIconDirective };
|
|
215
|
+
export type { CommandPaletteFilterFn, CommandPaletteItem, CommandPaletteRef };
|