@memberjunction/ng-explorer-core 5.49.0 → 5.50.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/dist/lib/omnibar/omnibar-palette.component.js +98 -96
- package/dist/lib/omnibar/omnibar-palette.component.js.map +1 -1
- package/dist/lib/resource-wrappers/view-resource.component.d.ts +19 -16
- package/dist/lib/resource-wrappers/view-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/view-resource.component.js +127 -121
- package/dist/lib/resource-wrappers/view-resource.component.js.map +1 -1
- package/dist/lib/shell/components/header/app-nav.component.d.ts +84 -9
- package/dist/lib/shell/components/header/app-nav.component.d.ts.map +1 -1
- package/dist/lib/shell/components/header/app-nav.component.js +380 -41
- package/dist/lib/shell/components/header/app-nav.component.js.map +1 -1
- package/dist/lib/shell/components/header/app-switcher.component.d.ts +159 -29
- package/dist/lib/shell/components/header/app-switcher.component.d.ts.map +1 -1
- package/dist/lib/shell/components/header/app-switcher.component.js +822 -116
- package/dist/lib/shell/components/header/app-switcher.component.js.map +1 -1
- package/dist/lib/shell/services/sharing-center-dialog-host.component.d.ts +10 -1
- package/dist/lib/shell/services/sharing-center-dialog-host.component.d.ts.map +1 -1
- package/dist/lib/shell/services/sharing-center-dialog-host.component.js +30 -4
- package/dist/lib/shell/services/sharing-center-dialog-host.component.js.map +1 -1
- package/dist/lib/shell/shell.component.d.ts +3 -0
- package/dist/lib/shell/shell.component.d.ts.map +1 -1
- package/dist/lib/shell/shell.component.js +22 -12
- package/dist/lib/shell/shell.component.js.map +1 -1
- package/dist/lib/shell/shell.module.d.ts +1 -1
- package/dist/lib/shell/shell.module.d.ts.map +1 -1
- package/dist/lib/shell/shell.module.js +3 -1
- package/dist/lib/shell/shell.module.js.map +1 -1
- package/package.json +51 -51
|
@@ -15,7 +15,7 @@ const _c0 = ["paletteInput"];
|
|
|
15
15
|
const _forTrack0 = ($index, $item) => $item.ID;
|
|
16
16
|
const _forTrack1 = ($index, $item) => $item.Char;
|
|
17
17
|
const _forTrack2 = ($index, $item) => $item.Suggestion.id;
|
|
18
|
-
function
|
|
18
|
+
function OmnibarPaletteComponent_Conditional_0_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
19
19
|
i0.ɵɵelementStart(0, "b");
|
|
20
20
|
i0.ɵɵtext(1);
|
|
21
21
|
i0.ɵɵelementEnd();
|
|
@@ -24,13 +24,13 @@ function OmnibarPaletteComponent_Conditional_0_Conditional_4_Template(rf, ctx) {
|
|
|
24
24
|
i0.ɵɵadvance();
|
|
25
25
|
i0.ɵɵtextInterpolate(ctx_r1.ActiveTriggerChar);
|
|
26
26
|
} }
|
|
27
|
-
function
|
|
28
|
-
i0.ɵɵelement(0, "i",
|
|
27
|
+
function OmnibarPaletteComponent_Conditional_0_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
28
|
+
i0.ɵɵelement(0, "i", 6);
|
|
29
29
|
} }
|
|
30
|
-
function
|
|
30
|
+
function OmnibarPaletteComponent_Conditional_0_Conditional_15_For_4_Template(rf, ctx) { if (rf & 1) {
|
|
31
31
|
const _r4 = i0.ɵɵgetCurrentView();
|
|
32
|
-
i0.ɵɵelementStart(0, "button",
|
|
33
|
-
i0.ɵɵlistener("click", function
|
|
32
|
+
i0.ɵɵelementStart(0, "button", 21);
|
|
33
|
+
i0.ɵɵlistener("click", function OmnibarPaletteComponent_Conditional_0_Conditional_15_For_4_Template_button_click_0_listener() { const scope_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.ToggleScope(scope_r5.ID)); });
|
|
34
34
|
i0.ɵɵtext(1);
|
|
35
35
|
i0.ɵɵelementEnd();
|
|
36
36
|
} if (rf & 2) {
|
|
@@ -40,13 +40,13 @@ function OmnibarPaletteComponent_Conditional_0_Conditional_14_For_4_Template(rf,
|
|
|
40
40
|
i0.ɵɵadvance();
|
|
41
41
|
i0.ɵɵtextInterpolate(scope_r5.Name);
|
|
42
42
|
} }
|
|
43
|
-
function
|
|
43
|
+
function OmnibarPaletteComponent_Conditional_0_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
44
44
|
const _r3 = i0.ɵɵgetCurrentView();
|
|
45
|
-
i0.ɵɵelementStart(0, "div",
|
|
46
|
-
i0.ɵɵlistener("click", function
|
|
45
|
+
i0.ɵɵelementStart(0, "div", 12)(1, "button", 21);
|
|
46
|
+
i0.ɵɵlistener("click", function OmnibarPaletteComponent_Conditional_0_Conditional_15_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.ClearScopes()); });
|
|
47
47
|
i0.ɵɵtext(2, "All sources");
|
|
48
48
|
i0.ɵɵelementEnd();
|
|
49
|
-
i0.ɵɵrepeaterCreate(3,
|
|
49
|
+
i0.ɵɵrepeaterCreate(3, OmnibarPaletteComponent_Conditional_0_Conditional_15_For_4_Template, 2, 3, "button", 22, _forTrack0);
|
|
50
50
|
i0.ɵɵelementEnd();
|
|
51
51
|
} if (rf & 2) {
|
|
52
52
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -55,16 +55,16 @@ function OmnibarPaletteComponent_Conditional_0_Conditional_14_Template(rf, ctx)
|
|
|
55
55
|
i0.ɵɵadvance(2);
|
|
56
56
|
i0.ɵɵrepeater(ctx_r1.Scopes);
|
|
57
57
|
} }
|
|
58
|
-
function
|
|
59
|
-
i0.ɵɵelementStart(0, "div",
|
|
60
|
-
i0.ɵɵelement(1, "i",
|
|
58
|
+
function OmnibarPaletteComponent_Conditional_0_Conditional_17_Template(rf, ctx) { if (rf & 1) {
|
|
59
|
+
i0.ɵɵelementStart(0, "div", 14);
|
|
60
|
+
i0.ɵɵelement(1, "i", 23);
|
|
61
61
|
i0.ɵɵtext(2, " Searching\u2026");
|
|
62
62
|
i0.ɵɵelementEnd();
|
|
63
63
|
} }
|
|
64
|
-
function
|
|
64
|
+
function OmnibarPaletteComponent_Conditional_0_Conditional_18_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
65
65
|
const _r6 = i0.ɵɵgetCurrentView();
|
|
66
|
-
i0.ɵɵelementStart(0, "button",
|
|
67
|
-
i0.ɵɵlistener("click", function
|
|
66
|
+
i0.ɵɵelementStart(0, "button", 26);
|
|
67
|
+
i0.ɵɵlistener("click", function OmnibarPaletteComponent_Conditional_0_Conditional_18_For_2_Template_button_click_0_listener() { const hint_r7 = i0.ɵɵrestoreView(_r6).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.SeedTrigger(hint_r7.Char)); });
|
|
68
68
|
i0.ɵɵelementStart(1, "b");
|
|
69
69
|
i0.ɵɵtext(2);
|
|
70
70
|
i0.ɵɵelementEnd();
|
|
@@ -78,28 +78,28 @@ function OmnibarPaletteComponent_Conditional_0_Conditional_17_For_2_Template(rf,
|
|
|
78
78
|
i0.ɵɵadvance(2);
|
|
79
79
|
i0.ɵɵtextInterpolate(hint_r7.Label);
|
|
80
80
|
} }
|
|
81
|
-
function
|
|
81
|
+
function OmnibarPaletteComponent_Conditional_0_Conditional_18_Conditional_3_For_4_Template(rf, ctx) { if (rf & 1) {
|
|
82
82
|
const _r8 = i0.ɵɵgetCurrentView();
|
|
83
|
-
i0.ɵɵelementStart(0, "div",
|
|
84
|
-
i0.ɵɵlistener("focus", function
|
|
85
|
-
i0.ɵɵelementStart(1, "span",
|
|
83
|
+
i0.ɵɵelementStart(0, "div", 29);
|
|
84
|
+
i0.ɵɵlistener("focus", function OmnibarPaletteComponent_Conditional_0_Conditional_18_Conditional_3_For_4_Template_div_focus_0_listener() { const ɵ$index_67_r9 = i0.ɵɵrestoreView(_r8).$index; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.SelectedIndex = ctx_r1.RecentBaseIndex + ɵ$index_67_r9); })("keydown", function OmnibarPaletteComponent_Conditional_0_Conditional_18_Conditional_3_For_4_Template_div_keydown_0_listener($event) { const row_r10 = i0.ɵɵrestoreView(_r8).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnRowKeydown($event, row_r10.Suggestion)); })("mouseenter", function OmnibarPaletteComponent_Conditional_0_Conditional_18_Conditional_3_For_4_Template_div_mouseenter_0_listener() { const ɵ$index_67_r9 = i0.ɵɵrestoreView(_r8).$index; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.SelectedIndex = ctx_r1.RecentBaseIndex + ɵ$index_67_r9); })("click", function OmnibarPaletteComponent_Conditional_0_Conditional_18_Conditional_3_For_4_Template_div_click_0_listener() { const row_r10 = i0.ɵɵrestoreView(_r8).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.Execute(row_r10.Suggestion)); });
|
|
85
|
+
i0.ɵɵelementStart(1, "span", 30);
|
|
86
86
|
i0.ɵɵelement(2, "i");
|
|
87
87
|
i0.ɵɵelementEnd();
|
|
88
|
-
i0.ɵɵelementStart(3, "span",
|
|
88
|
+
i0.ɵɵelementStart(3, "span", 31)(4, "span", 32);
|
|
89
89
|
i0.ɵɵtext(5);
|
|
90
90
|
i0.ɵɵelementEnd();
|
|
91
|
-
i0.ɵɵelementStart(6, "span",
|
|
91
|
+
i0.ɵɵelementStart(6, "span", 33);
|
|
92
92
|
i0.ɵɵtext(7);
|
|
93
93
|
i0.ɵɵelementEnd()();
|
|
94
|
-
i0.ɵɵelementStart(8, "span",
|
|
94
|
+
i0.ɵɵelementStart(8, "span", 34)(9, "span", 35);
|
|
95
95
|
i0.ɵɵtext(10);
|
|
96
96
|
i0.ɵɵelementEnd()()();
|
|
97
97
|
} if (rf & 2) {
|
|
98
98
|
const row_r10 = ctx.$implicit;
|
|
99
|
-
const ɵ$
|
|
99
|
+
const ɵ$index_67_r9 = ctx.$index;
|
|
100
100
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
101
|
-
i0.ɵɵclassProp("ob-row--sel", ctx_r1.RecentBaseIndex + ɵ$
|
|
102
|
-
i0.ɵɵattribute("id", "ob-opt-" + (ctx_r1.RecentBaseIndex + ɵ$
|
|
101
|
+
i0.ɵɵclassProp("ob-row--sel", ctx_r1.RecentBaseIndex + ɵ$index_67_r9 === ctx_r1.SelectedIndex);
|
|
102
|
+
i0.ɵɵattribute("id", "ob-opt-" + (ctx_r1.RecentBaseIndex + ɵ$index_67_r9))("tabindex", ctx_r1.RecentBaseIndex + ɵ$index_67_r9 === ctx_r1.SelectedIndex ? 0 : -1)("aria-selected", ctx_r1.RecentBaseIndex + ɵ$index_67_r9 === ctx_r1.SelectedIndex);
|
|
103
103
|
i0.ɵɵadvance(2);
|
|
104
104
|
i0.ɵɵclassMap(row_r10.Suggestion.icon || "fa-solid fa-clock-rotate-left");
|
|
105
105
|
i0.ɵɵadvance(3);
|
|
@@ -109,23 +109,23 @@ function OmnibarPaletteComponent_Conditional_0_Conditional_17_Conditional_3_For_
|
|
|
109
109
|
i0.ɵɵadvance(3);
|
|
110
110
|
i0.ɵɵtextInterpolate(row_r10.Suggestion.type);
|
|
111
111
|
} }
|
|
112
|
-
function
|
|
113
|
-
i0.ɵɵelementStart(0, "div",
|
|
112
|
+
function OmnibarPaletteComponent_Conditional_0_Conditional_18_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
113
|
+
i0.ɵɵelementStart(0, "div", 27);
|
|
114
114
|
i0.ɵɵtext(1, "Recent");
|
|
115
115
|
i0.ɵɵelementEnd();
|
|
116
|
-
i0.ɵɵelementStart(2, "div",
|
|
117
|
-
i0.ɵɵrepeaterCreate(3,
|
|
116
|
+
i0.ɵɵelementStart(2, "div", 16);
|
|
117
|
+
i0.ɵɵrepeaterCreate(3, OmnibarPaletteComponent_Conditional_0_Conditional_18_Conditional_3_For_4_Template, 11, 10, "div", 28, _forTrack2);
|
|
118
118
|
i0.ɵɵelementEnd();
|
|
119
119
|
} if (rf & 2) {
|
|
120
120
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
121
121
|
i0.ɵɵadvance(3);
|
|
122
122
|
i0.ɵɵrepeater(ctx_r1.RecentRows);
|
|
123
123
|
} }
|
|
124
|
-
function
|
|
125
|
-
i0.ɵɵelementStart(0, "div",
|
|
126
|
-
i0.ɵɵrepeaterCreate(1,
|
|
124
|
+
function OmnibarPaletteComponent_Conditional_0_Conditional_18_Template(rf, ctx) { if (rf & 1) {
|
|
125
|
+
i0.ɵɵelementStart(0, "div", 24);
|
|
126
|
+
i0.ɵɵrepeaterCreate(1, OmnibarPaletteComponent_Conditional_0_Conditional_18_For_2_Template, 5, 2, "button", 25, _forTrack1);
|
|
127
127
|
i0.ɵɵelementEnd();
|
|
128
|
-
i0.ɵɵconditionalCreate(3,
|
|
128
|
+
i0.ɵɵconditionalCreate(3, OmnibarPaletteComponent_Conditional_0_Conditional_18_Conditional_3_Template, 5, 0);
|
|
129
129
|
} if (rf & 2) {
|
|
130
130
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
131
131
|
i0.ɵɵadvance();
|
|
@@ -133,10 +133,10 @@ function OmnibarPaletteComponent_Conditional_0_Conditional_17_Template(rf, ctx)
|
|
|
133
133
|
i0.ɵɵadvance(2);
|
|
134
134
|
i0.ɵɵconditional(ctx_r1.RecentRows.length > 0 ? 3 : -1);
|
|
135
135
|
} }
|
|
136
|
-
function
|
|
137
|
-
i0.ɵɵelementStart(0, "div",
|
|
136
|
+
function OmnibarPaletteComponent_Conditional_0_Conditional_19_Template(rf, ctx) { if (rf & 1) {
|
|
137
|
+
i0.ɵɵelementStart(0, "div", 15);
|
|
138
138
|
i0.ɵɵtext(1, "No matches \u2014 press ");
|
|
139
|
-
i0.ɵɵelementStart(2, "kbd",
|
|
139
|
+
i0.ɵɵelementStart(2, "kbd", 9);
|
|
140
140
|
i0.ɵɵtext(3, "\u21B5");
|
|
141
141
|
i0.ɵɵelementEnd();
|
|
142
142
|
i0.ɵɵtext(4);
|
|
@@ -146,8 +146,8 @@ function OmnibarPaletteComponent_Conditional_0_Conditional_18_Template(rf, ctx)
|
|
|
146
146
|
i0.ɵɵadvance(4);
|
|
147
147
|
i0.ɵɵtextInterpolate1(" to search everything for \u201C", ctx_r1.EffectiveQuery, "\u201D.");
|
|
148
148
|
} }
|
|
149
|
-
function
|
|
150
|
-
i0.ɵɵelementStart(0, "div",
|
|
149
|
+
function OmnibarPaletteComponent_Conditional_0_Conditional_20_For_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
150
|
+
i0.ɵɵelementStart(0, "div", 27);
|
|
151
151
|
i0.ɵɵtext(1);
|
|
152
152
|
i0.ɵɵelementEnd();
|
|
153
153
|
} if (rf & 2) {
|
|
@@ -155,8 +155,8 @@ function OmnibarPaletteComponent_Conditional_0_Conditional_19_For_2_Conditional_
|
|
|
155
155
|
i0.ɵɵadvance();
|
|
156
156
|
i0.ɵɵtextInterpolate(row_r12.GroupLabel);
|
|
157
157
|
} }
|
|
158
|
-
function
|
|
159
|
-
i0.ɵɵelementStart(0, "span",
|
|
158
|
+
function OmnibarPaletteComponent_Conditional_0_Conditional_20_For_2_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
159
|
+
i0.ɵɵelementStart(0, "span", 33);
|
|
160
160
|
i0.ɵɵtext(1);
|
|
161
161
|
i0.ɵɵelementEnd();
|
|
162
162
|
} if (rf & 2) {
|
|
@@ -164,8 +164,8 @@ function OmnibarPaletteComponent_Conditional_0_Conditional_19_For_2_Conditional_
|
|
|
164
164
|
i0.ɵɵadvance();
|
|
165
165
|
i0.ɵɵtextInterpolate(row_r12.Suggestion.description);
|
|
166
166
|
} }
|
|
167
|
-
function
|
|
168
|
-
i0.ɵɵelementStart(0, "span",
|
|
167
|
+
function OmnibarPaletteComponent_Conditional_0_Conditional_20_For_2_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
168
|
+
i0.ɵɵelementStart(0, "span", 36);
|
|
169
169
|
i0.ɵɵelement(1, "i");
|
|
170
170
|
i0.ɵɵelementEnd();
|
|
171
171
|
} if (rf & 2) {
|
|
@@ -173,37 +173,37 @@ function OmnibarPaletteComponent_Conditional_0_Conditional_19_For_2_Conditional_
|
|
|
173
173
|
i0.ɵɵadvance();
|
|
174
174
|
i0.ɵɵstyleProp("width", row_r12.ScorePercent, "%");
|
|
175
175
|
} }
|
|
176
|
-
function
|
|
176
|
+
function OmnibarPaletteComponent_Conditional_0_Conditional_20_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
177
177
|
const _r11 = i0.ɵɵgetCurrentView();
|
|
178
|
-
i0.ɵɵconditionalCreate(0,
|
|
179
|
-
i0.ɵɵelementStart(1, "div",
|
|
180
|
-
i0.ɵɵlistener("focus", function
|
|
181
|
-
i0.ɵɵelementStart(2, "span",
|
|
178
|
+
i0.ɵɵconditionalCreate(0, OmnibarPaletteComponent_Conditional_0_Conditional_20_For_2_Conditional_0_Template, 2, 1, "div", 27);
|
|
179
|
+
i0.ɵɵelementStart(1, "div", 29);
|
|
180
|
+
i0.ɵɵlistener("focus", function OmnibarPaletteComponent_Conditional_0_Conditional_20_For_2_Template_div_focus_1_listener() { const ɵ$index_98_r13 = i0.ɵɵrestoreView(_r11).$index; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.SelectedIndex = ɵ$index_98_r13); })("keydown", function OmnibarPaletteComponent_Conditional_0_Conditional_20_For_2_Template_div_keydown_1_listener($event) { const row_r12 = i0.ɵɵrestoreView(_r11).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnRowKeydown($event, row_r12.Suggestion)); })("mouseenter", function OmnibarPaletteComponent_Conditional_0_Conditional_20_For_2_Template_div_mouseenter_1_listener() { const ɵ$index_98_r13 = i0.ɵɵrestoreView(_r11).$index; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.SelectedIndex = ɵ$index_98_r13); })("click", function OmnibarPaletteComponent_Conditional_0_Conditional_20_For_2_Template_div_click_1_listener() { const row_r12 = i0.ɵɵrestoreView(_r11).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.Execute(row_r12.Suggestion)); });
|
|
181
|
+
i0.ɵɵelementStart(2, "span", 30);
|
|
182
182
|
i0.ɵɵelement(3, "i");
|
|
183
183
|
i0.ɵɵelementEnd();
|
|
184
|
-
i0.ɵɵelementStart(4, "span",
|
|
184
|
+
i0.ɵɵelementStart(4, "span", 31)(5, "span", 32);
|
|
185
185
|
i0.ɵɵtext(6);
|
|
186
186
|
i0.ɵɵelementEnd();
|
|
187
|
-
i0.ɵɵconditionalCreate(7,
|
|
187
|
+
i0.ɵɵconditionalCreate(7, OmnibarPaletteComponent_Conditional_0_Conditional_20_For_2_Conditional_7_Template, 2, 1, "span", 33);
|
|
188
188
|
i0.ɵɵelementEnd();
|
|
189
|
-
i0.ɵɵelementStart(8, "span",
|
|
190
|
-
i0.ɵɵconditionalCreate(9,
|
|
191
|
-
i0.ɵɵelementStart(10, "span",
|
|
189
|
+
i0.ɵɵelementStart(8, "span", 34);
|
|
190
|
+
i0.ɵɵconditionalCreate(9, OmnibarPaletteComponent_Conditional_0_Conditional_20_For_2_Conditional_9_Template, 2, 2, "span", 36);
|
|
191
|
+
i0.ɵɵelementStart(10, "span", 35);
|
|
192
192
|
i0.ɵɵtext(11);
|
|
193
193
|
i0.ɵɵelementEnd();
|
|
194
|
-
i0.ɵɵelementStart(12, "span",
|
|
194
|
+
i0.ɵɵelementStart(12, "span", 37);
|
|
195
195
|
i0.ɵɵtext(13, "open ");
|
|
196
|
-
i0.ɵɵelementStart(14, "kbd",
|
|
196
|
+
i0.ɵɵelementStart(14, "kbd", 9);
|
|
197
197
|
i0.ɵɵtext(15, "\u21B5");
|
|
198
198
|
i0.ɵɵelementEnd()()()();
|
|
199
199
|
} if (rf & 2) {
|
|
200
200
|
const row_r12 = ctx.$implicit;
|
|
201
|
-
const ɵ$
|
|
201
|
+
const ɵ$index_98_r13 = ctx.$index;
|
|
202
202
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
203
203
|
i0.ɵɵconditional(row_r12.GroupLabel ? 0 : -1);
|
|
204
204
|
i0.ɵɵadvance();
|
|
205
|
-
i0.ɵɵclassProp("ob-row--sel", ɵ$
|
|
206
|
-
i0.ɵɵattribute("id", "ob-opt-" + ɵ$
|
|
205
|
+
i0.ɵɵclassProp("ob-row--sel", ɵ$index_98_r13 === ctx_r1.SelectedIndex);
|
|
206
|
+
i0.ɵɵattribute("id", "ob-opt-" + ɵ$index_98_r13)("tabindex", ɵ$index_98_r13 === ctx_r1.SelectedIndex ? 0 : -1)("aria-selected", ɵ$index_98_r13 === ctx_r1.SelectedIndex);
|
|
207
207
|
i0.ɵɵadvance(2);
|
|
208
208
|
i0.ɵɵclassMap(row_r12.Suggestion.icon || "fa-solid fa-circle");
|
|
209
209
|
i0.ɵɵadvance(3);
|
|
@@ -215,9 +215,9 @@ function OmnibarPaletteComponent_Conditional_0_Conditional_19_For_2_Template(rf,
|
|
|
215
215
|
i0.ɵɵadvance(2);
|
|
216
216
|
i0.ɵɵtextInterpolate(row_r12.Suggestion.type);
|
|
217
217
|
} }
|
|
218
|
-
function
|
|
219
|
-
i0.ɵɵelementStart(0, "div",
|
|
220
|
-
i0.ɵɵrepeaterCreate(1,
|
|
218
|
+
function OmnibarPaletteComponent_Conditional_0_Conditional_20_Template(rf, ctx) { if (rf & 1) {
|
|
219
|
+
i0.ɵɵelementStart(0, "div", 16);
|
|
220
|
+
i0.ɵɵrepeaterCreate(1, OmnibarPaletteComponent_Conditional_0_Conditional_20_For_2_Template, 16, 12, null, null, _forTrack2);
|
|
221
221
|
i0.ɵɵelementEnd();
|
|
222
222
|
} if (rf & 2) {
|
|
223
223
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -231,58 +231,60 @@ function OmnibarPaletteComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
|
231
231
|
i0.ɵɵelementEnd();
|
|
232
232
|
i0.ɵɵelementStart(1, "div", 2);
|
|
233
233
|
i0.ɵɵlistener("keydown", function OmnibarPaletteComponent_Conditional_0_Template_div_keydown_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnPaletteKeydown($event)); });
|
|
234
|
-
i0.ɵɵelementStart(2, "div", 3)(3, "
|
|
235
|
-
i0.ɵɵconditionalCreate(
|
|
236
|
-
i0.ɵɵelementEnd();
|
|
237
|
-
i0.ɵɵelementStart(6, "input", 6, 0);
|
|
238
|
-
i0.ɵɵlistener("ngModelChange", function OmnibarPaletteComponent_Conditional_0_Template_input_ngModelChange_6_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnQueryChange($event)); })("keydown", function OmnibarPaletteComponent_Conditional_0_Template_input_keydown_6_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnInputKeydown($event)); });
|
|
234
|
+
i0.ɵɵelementStart(2, "div", 3)(3, "div", 4)(4, "span", 5);
|
|
235
|
+
i0.ɵɵconditionalCreate(5, OmnibarPaletteComponent_Conditional_0_Conditional_5_Template, 2, 1, "b")(6, OmnibarPaletteComponent_Conditional_0_Conditional_6_Template, 1, 0, "i", 6);
|
|
239
236
|
i0.ɵɵelementEnd();
|
|
240
|
-
i0.ɵɵelementStart(
|
|
241
|
-
i0.ɵɵ
|
|
237
|
+
i0.ɵɵelementStart(7, "input", 7, 0);
|
|
238
|
+
i0.ɵɵlistener("ngModelChange", function OmnibarPaletteComponent_Conditional_0_Template_input_ngModelChange_7_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnQueryChange($event)); })("keydown", function OmnibarPaletteComponent_Conditional_0_Template_input_keydown_7_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnInputKeydown($event)); });
|
|
242
239
|
i0.ɵɵelementEnd();
|
|
243
|
-
i0.ɵɵelementStart(
|
|
244
|
-
i0.ɵɵtext(
|
|
240
|
+
i0.ɵɵelementStart(9, "span", 8);
|
|
241
|
+
i0.ɵɵtext(10);
|
|
245
242
|
i0.ɵɵelementEnd();
|
|
246
|
-
i0.ɵɵelementStart(
|
|
247
|
-
i0.ɵɵ
|
|
248
|
-
i0.ɵɵ
|
|
243
|
+
i0.ɵɵelementStart(11, "kbd", 9);
|
|
244
|
+
i0.ɵɵtext(12, "esc");
|
|
245
|
+
i0.ɵɵelementEnd()();
|
|
246
|
+
i0.ɵɵelementStart(13, "button", 10);
|
|
247
|
+
i0.ɵɵlistener("click", function OmnibarPaletteComponent_Conditional_0_Template_button_click_13_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.Close()); });
|
|
248
|
+
i0.ɵɵelement(14, "i", 11);
|
|
249
249
|
i0.ɵɵelementEnd()();
|
|
250
|
-
i0.ɵɵconditionalCreate(
|
|
251
|
-
i0.ɵɵelementStart(
|
|
252
|
-
i0.ɵɵconditionalCreate(
|
|
250
|
+
i0.ɵɵconditionalCreate(15, OmnibarPaletteComponent_Conditional_0_Conditional_15_Template, 5, 2, "div", 12);
|
|
251
|
+
i0.ɵɵelementStart(16, "div", 13);
|
|
252
|
+
i0.ɵɵconditionalCreate(17, OmnibarPaletteComponent_Conditional_0_Conditional_17_Template, 3, 0, "div", 14)(18, OmnibarPaletteComponent_Conditional_0_Conditional_18_Template, 4, 1)(19, OmnibarPaletteComponent_Conditional_0_Conditional_19_Template, 5, 1, "div", 15)(20, OmnibarPaletteComponent_Conditional_0_Conditional_20_Template, 3, 0, "div", 16);
|
|
253
253
|
i0.ɵɵelementEnd();
|
|
254
|
-
i0.ɵɵelementStart(
|
|
255
|
-
i0.ɵɵtext(
|
|
254
|
+
i0.ɵɵelementStart(21, "div", 17)(22, "span", 18)(23, "kbd", 9);
|
|
255
|
+
i0.ɵɵtext(24, "\u2191");
|
|
256
256
|
i0.ɵɵelementEnd();
|
|
257
|
-
i0.ɵɵelementStart(
|
|
258
|
-
i0.ɵɵtext(
|
|
257
|
+
i0.ɵɵelementStart(25, "kbd", 9);
|
|
258
|
+
i0.ɵɵtext(26, "\u2193");
|
|
259
259
|
i0.ɵɵelementEnd();
|
|
260
|
-
i0.ɵɵtext(
|
|
260
|
+
i0.ɵɵtext(27, " navigate");
|
|
261
261
|
i0.ɵɵelementEnd();
|
|
262
|
-
i0.ɵɵelementStart(
|
|
263
|
-
i0.ɵɵtext(
|
|
262
|
+
i0.ɵɵelementStart(28, "span", 18)(29, "kbd", 9);
|
|
263
|
+
i0.ɵɵtext(30, "\u21B5");
|
|
264
264
|
i0.ɵɵelementEnd();
|
|
265
|
-
i0.ɵɵtext(
|
|
265
|
+
i0.ɵɵtext(31, " open");
|
|
266
266
|
i0.ɵɵelementEnd();
|
|
267
|
-
i0.ɵɵelementStart(
|
|
268
|
-
i0.ɵɵlistener("click", function
|
|
269
|
-
i0.ɵɵelement(
|
|
270
|
-
i0.ɵɵ
|
|
267
|
+
i0.ɵɵelementStart(32, "button", 19);
|
|
268
|
+
i0.ɵɵlistener("click", function OmnibarPaletteComponent_Conditional_0_Template_button_click_32_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.RequestSettings()); });
|
|
269
|
+
i0.ɵɵelement(33, "i", 20);
|
|
270
|
+
i0.ɵɵelementStart(34, "span");
|
|
271
|
+
i0.ɵɵtext(35, "Settings");
|
|
272
|
+
i0.ɵɵelementEnd()()()();
|
|
271
273
|
} if (rf & 2) {
|
|
272
274
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
273
|
-
i0.ɵɵadvance(
|
|
275
|
+
i0.ɵɵadvance(4);
|
|
274
276
|
i0.ɵɵclassProp("ob-lead--trigger", ctx_r1.ActiveTriggerChar.length > 0);
|
|
275
277
|
i0.ɵɵadvance();
|
|
276
|
-
i0.ɵɵconditional(ctx_r1.ActiveTriggerChar.length > 0 ?
|
|
278
|
+
i0.ɵɵconditional(ctx_r1.ActiveTriggerChar.length > 0 ? 5 : 6);
|
|
277
279
|
i0.ɵɵadvance(2);
|
|
278
280
|
i0.ɵɵproperty("placeholder", ctx_r1.ActivePlaceholder)("ngModel", ctx_r1.Query);
|
|
279
281
|
i0.ɵɵattribute("aria-expanded", ctx_r1.HasOptions)("aria-activedescendant", ctx_r1.ActiveDescendantId);
|
|
280
282
|
i0.ɵɵadvance(3);
|
|
281
283
|
i0.ɵɵtextInterpolate(ctx_r1.ActiveModeLabel);
|
|
282
284
|
i0.ɵɵadvance(5);
|
|
283
|
-
i0.ɵɵconditional(ctx_r1.ShowScopes && ctx_r1.Scopes.length > 0 ?
|
|
285
|
+
i0.ɵɵconditional(ctx_r1.ShowScopes && ctx_r1.Scopes.length > 0 ? 15 : -1);
|
|
284
286
|
i0.ɵɵadvance(2);
|
|
285
|
-
i0.ɵɵconditional(ctx_r1.IsLoading ?
|
|
287
|
+
i0.ɵɵconditional(ctx_r1.IsLoading ? 17 : ctx_r1.Rows.length === 0 && ctx_r1.Query.length === 0 ? 18 : ctx_r1.Rows.length === 0 ? 19 : 20);
|
|
286
288
|
} }
|
|
287
289
|
/** Debounce for the default (network-backed) search mode; trigger modes serve warm caches. */
|
|
288
290
|
const SEARCH_DEBOUNCE_MS = 300;
|
|
@@ -811,15 +813,15 @@ export class OmnibarPaletteComponent {
|
|
|
811
813
|
} if (rf & 2) {
|
|
812
814
|
let _t;
|
|
813
815
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.inputRef = _t.first);
|
|
814
|
-
} }, outputs: { Opened: "Opened", Closed: "Closed", SettingsRequested: "SettingsRequested" }, standalone: false, decls: 1, vars: 1, consts: [["paletteInput", ""], [1, "omnibar-overlay", 3, "click"], ["role", "dialog", "aria-modal", "true", "aria-label", "Command palette", 1, "omnibar-palette", 3, "keydown"], [1, "ob-input-row"], [1, "ob-lead"], [1, "fa-solid", "fa-magnifying-glass"], ["type", "text", "autocomplete", "off", "spellcheck", "false", "role", "combobox", "aria-controls", "ob-listbox", "aria-autocomplete", "list", 1, "ob-input", 3, "ngModelChange", "keydown", "placeholder", "ngModel"], [1, "ob-mode-badge"], [1, "ob-kbd"], ["type", "button", "aria-label", "Close", "title", "Close", 1, "ob-close", 3, "click"], [1, "fa-solid", "fa-xmark"], [1, "ob-scopes"], [1, "ob-body"], [1, "ob-loading"], [1, "ob-empty"], ["id", "ob-listbox", "role", "listbox", "aria-label", "Suggestions"], [1, "ob-foot"], [1, "ob-k"], ["type", "button", "aria-label", "Command Palette settings", "title", "Command Palette settings", 1, "ob-settings", 3, "click"], [1, "fa-solid", "fa-gear"], ["type", "button", 1, "ob-scope", 3, "click"], ["type", "button", 1, "ob-scope", 3, "ob-scope--on"], [1, "fa-solid", "fa-circle-notch", "fa-spin"], [1, "ob-hintbar"], ["type", "button", 1, "ob-hint-chip"], ["type", "button", 1, "ob-hint-chip", 3, "click"], ["role", "presentation", 1, "ob-group-label"], ["role", "option", 1, "ob-row", 3, "ob-row--sel"], ["role", "option", 1, "ob-row", 3, "focus", "keydown", "mouseenter", "click"], [1, "ob-ric"], [1, "ob-rmain"], [1, "ob-rname"], [1, "ob-rsub"], [1, "ob-raux"], [1, "ob-rtype"], [1, "ob-score"], [1, "ob-go"]], template: function OmnibarPaletteComponent_Template(rf, ctx) { if (rf & 1) {
|
|
815
|
-
i0.ɵɵconditionalCreate(0, OmnibarPaletteComponent_Conditional_0_Template,
|
|
816
|
+
} }, outputs: { Opened: "Opened", Closed: "Closed", SettingsRequested: "SettingsRequested" }, standalone: false, decls: 1, vars: 1, consts: [["paletteInput", ""], [1, "omnibar-overlay", 3, "click"], ["role", "dialog", "aria-modal", "true", "aria-label", "Command palette", 1, "omnibar-palette", 3, "keydown"], [1, "ob-input-row"], [1, "ob-field"], [1, "ob-lead"], [1, "fa-solid", "fa-magnifying-glass"], ["type", "text", "autocomplete", "off", "spellcheck", "false", "role", "combobox", "aria-controls", "ob-listbox", "aria-autocomplete", "list", 1, "ob-input", 3, "ngModelChange", "keydown", "placeholder", "ngModel"], [1, "ob-mode-badge"], [1, "ob-kbd"], ["type", "button", "aria-label", "Close", "title", "Close", 1, "ob-close", 3, "click"], [1, "fa-solid", "fa-xmark"], [1, "ob-scopes"], [1, "ob-body"], [1, "ob-loading"], [1, "ob-empty"], ["id", "ob-listbox", "role", "listbox", "aria-label", "Suggestions"], [1, "ob-foot"], [1, "ob-k"], ["type", "button", "aria-label", "Command Palette settings", "title", "Command Palette settings", 1, "ob-settings", 3, "click"], ["aria-hidden", "true", 1, "fa-solid", "fa-gear"], ["type", "button", 1, "ob-scope", 3, "click"], ["type", "button", 1, "ob-scope", 3, "ob-scope--on"], [1, "fa-solid", "fa-circle-notch", "fa-spin"], [1, "ob-hintbar"], ["type", "button", 1, "ob-hint-chip"], ["type", "button", 1, "ob-hint-chip", 3, "click"], ["role", "presentation", 1, "ob-group-label"], ["role", "option", 1, "ob-row", 3, "ob-row--sel"], ["role", "option", 1, "ob-row", 3, "focus", "keydown", "mouseenter", "click"], [1, "ob-ric"], [1, "ob-rmain"], [1, "ob-rname"], [1, "ob-rsub"], [1, "ob-raux"], [1, "ob-rtype"], [1, "ob-score"], [1, "ob-go"]], template: function OmnibarPaletteComponent_Template(rf, ctx) { if (rf & 1) {
|
|
817
|
+
i0.ɵɵconditionalCreate(0, OmnibarPaletteComponent_Conditional_0_Template, 36, 10);
|
|
816
818
|
} if (rf & 2) {
|
|
817
819
|
i0.ɵɵconditional(ctx.IsOpen ? 0 : -1);
|
|
818
|
-
} }, dependencies: [i1.DefaultValueAccessor, i1.NgControlStatus, i1.NgModel], styles: ["\n\n\n.omnibar-overlay[_ngcontent-%COMP%] {\n position: fixed;\n inset: 0;\n background: var(--mj-bg-overlay);\n z-index: 1400;\n}\n\n.omnibar-palette[_ngcontent-%COMP%] {\n position: fixed;\n left: 50%;\n top: 96px;\n transform: translateX(-50%);\n width: min(680px, 92vw);\n \n\n\n\n display: flex;\n flex-direction: column;\n max-height: calc(100vh - 96px - 24px);\n background: var(--mj-bg-surface-elevated);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-xl);\n box-shadow: var(--mj-shadow-lg, 0 20px 60px color-mix(in srgb, var(--mj-text-primary) 22%, transparent));\n z-index: 1401;\n overflow: hidden;\n animation: _ngcontent-%COMP%_ob-pop .13s ease-out;\n}\n\n@keyframes _ngcontent-%COMP%_ob-pop {\n from { opacity: 0; transform: translateX(-50%) scale(.985) translateY(-4px); }\n to { opacity: 1; transform: translateX(-50%) scale(1); }\n}\n\n.ob-input-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 15px 18px;\n border-bottom: 1px solid var(--mj-border-subtle);\n}\n\n.ob-lead[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 15px;\n width: 18px;\n text-align: center;\n}\n\n.ob-lead--trigger[_ngcontent-%COMP%] { color: var(--mj-brand-primary); }\n.ob-lead[_ngcontent-%COMP%] b[_ngcontent-%COMP%] { font-family: ui-monospace, monospace; }\n\n.ob-input[_ngcontent-%COMP%] {\n flex: 1;\n border: none;\n outline: none;\n background: transparent;\n font-size: 16px;\n color: var(--mj-text-primary);\n font-family: inherit;\n}\n\n.ob-input[_ngcontent-%COMP%]::placeholder { color: var(--mj-text-muted); }\n\n.ob-mode-badge[_ngcontent-%COMP%] {\n font-size: 10.5px;\n font-weight: 700;\n letter-spacing: .4px;\n text-transform: uppercase;\n padding: 3px 9px;\n border-radius: var(--mj-radius-full, 999px);\n background: color-mix(in srgb, var(--mj-brand-primary) 14%, transparent);\n color: var(--mj-brand-primary);\n white-space: nowrap;\n}\n\n.ob-kbd[_ngcontent-%COMP%] {\n font-family: inherit;\n font-size: 10.5px;\n font-weight: 600;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-strong);\n border-bottom-width: 2px;\n border-radius: 5px;\n padding: 1.5px 6px;\n}\n\n.ob-close[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n padding: 0;\n border: none;\n border-radius: var(--mj-radius-full);\n background: transparent;\n color: var(--mj-text-muted);\n font-size: var(--mj-text-sm);\n cursor: pointer;\n transition: var(--mj-transition-colors);\n flex-shrink: 0;\n}\n.ob-close[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n color: var(--mj-text-primary);\n}\n\n.ob-scopes[_ngcontent-%COMP%] {\n display: flex;\n gap: 6px;\n padding: 9px 18px;\n border-bottom: 1px solid var(--mj-border-subtle);\n flex-wrap: wrap;\n}\n\n.ob-scope[_ngcontent-%COMP%] {\n font-size: 11px;\n padding: 3px 10px;\n border-radius: var(--mj-radius-full, 999px);\n border: 1px solid var(--mj-border-default);\n color: var(--mj-text-secondary);\n cursor: pointer;\n background: transparent;\n}\n\n.ob-scope--on[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, transparent);\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n font-weight: 600;\n}\n\n.ob-body[_ngcontent-%COMP%] {\n flex: 1 1 auto;\n min-height: 0;\n overflow-y: auto;\n padding: 6px 0;\n}\n\n.ob-loading[_ngcontent-%COMP%], \n.ob-empty[_ngcontent-%COMP%] {\n padding: 18px;\n text-align: center;\n color: var(--mj-text-muted);\n font-size: 13px;\n}\n\n.ob-group-label[_ngcontent-%COMP%] {\n font-size: 10.5px;\n font-weight: 700;\n letter-spacing: .6px;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n padding: 10px 18px 5px;\n}\n\n.ob-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 9px 18px;\n cursor: pointer;\n}\n\n\n\n\n.ob-row[_ngcontent-%COMP%]:focus { outline: none; }\n.ob-row[_ngcontent-%COMP%]:focus-visible { outline: 2px solid var(--mj-border-focus); outline-offset: -2px; }\n\n.ob-row--sel[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 9%, transparent);\n box-shadow: inset 3px 0 0 var(--mj-brand-primary);\n}\n\n.ob-ric[_ngcontent-%COMP%] {\n width: 30px;\n height: 30px;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 13px;\n flex-shrink: 0;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.ob-row--sel[_ngcontent-%COMP%] .ob-ric[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 16%, transparent);\n color: var(--mj-brand-primary);\n}\n\n.ob-rmain[_ngcontent-%COMP%] { flex: 1; min-width: 0; display: flex; flex-direction: column; }\n\n.ob-rname[_ngcontent-%COMP%] {\n font-size: 13.5px;\n font-weight: 500;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n color: var(--mj-text-primary);\n}\n\n.ob-rsub[_ngcontent-%COMP%] {\n font-size: 11.5px;\n color: var(--mj-text-muted);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-top: 1px;\n}\n\n.ob-raux[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }\n\n.ob-rtype[_ngcontent-%COMP%] {\n font-size: 10px;\n font-weight: 600;\n padding: 2px 8px;\n border-radius: var(--mj-radius-full, 999px);\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n text-transform: capitalize;\n}\n\n.ob-score[_ngcontent-%COMP%] {\n width: 52px;\n height: 4px;\n border-radius: 2px;\n background: var(--mj-bg-surface-sunken);\n overflow: hidden;\n}\n\n.ob-score[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { display: block; height: 100%; background: var(--mj-brand-primary); }\n\n.ob-go[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted);\n opacity: 0;\n display: flex;\n gap: 6px;\n align-items: center;\n}\n\n.ob-row--sel[_ngcontent-%COMP%] .ob-go[_ngcontent-%COMP%] { opacity: 1; }\n\n.ob-hintbar[_ngcontent-%COMP%] { display: flex; gap: 8px; padding: 12px 18px; flex-wrap: wrap; }\n\n.ob-hint-chip[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 9px;\n padding: 9px 13px;\n border: 1px dashed var(--mj-border-strong);\n border-radius: 10px;\n cursor: pointer;\n background: transparent;\n}\n\n.ob-hint-chip[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 6%, transparent);\n}\n\n.ob-hint-chip[_ngcontent-%COMP%] b[_ngcontent-%COMP%] { font-family: ui-monospace, monospace; color: var(--mj-brand-primary); font-size: 14px; }\n.ob-hint-chip[_ngcontent-%COMP%] span[_ngcontent-%COMP%] { font-size: 12px; color: var(--mj-text-secondary); }\n\n.ob-foot[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n padding: 10px 18px;\n border-top: 1px solid var(--mj-border-subtle);\n background: var(--mj-bg-surface-card);\n font-size: 11.5px;\n color: var(--mj-text-muted);\n}\n\n.ob-k[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 5px; }\n\n\n\n.ob-settings[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n padding: 0;\n margin-left: auto;\n border: none;\n border-radius: var(--mj-radius-full);\n background: transparent;\n color: var(--mj-text-muted);\n font-size: var(--mj-text-xs);\n cursor: pointer;\n transition: var(--mj-transition-colors);\n}\n.ob-settings[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n color: var(--mj-text-primary);\n}\n\n\n\n\n\n\n@media (max-width: 640px) {\n .omnibar-palette[_ngcontent-%COMP%] {\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n transform: none;\n width: 100%;\n height: 100dvh;\n max-height: none; \n\n border-radius: 0;\n animation: none; \n\n display: flex;\n flex-direction: column;\n }\n\n \n\n .ob-body[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n max-height: none;\n }\n\n \n\n\n\n\n .ob-kbd[_ngcontent-%COMP%], \n .ob-go[_ngcontent-%COMP%], \n .ob-k[_ngcontent-%COMP%] {\n display: none;\n }\n\n \n\n .ob-close[_ngcontent-%COMP%], \n .ob-settings[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n font-size: var(--mj-text-base);\n }\n}"], changeDetection: 0 });
|
|
820
|
+
} }, dependencies: [i1.DefaultValueAccessor, i1.NgControlStatus, i1.NgModel], styles: ["\n\n\n.omnibar-overlay[_ngcontent-%COMP%] {\n position: fixed;\n inset: 0;\n background: var(--mj-bg-overlay);\n z-index: 1400;\n}\n\n\n\n\n.omnibar-palette[_ngcontent-%COMP%] {\n position: fixed;\n left: 50%;\n top: calc(60px + var(--mj-connectivity-banner-height, 0px) + var(--mj-space-6));\n transform: translateX(-50%);\n width: min(680px, 92vw);\n \n\n\n\n display: flex;\n flex-direction: column;\n max-height: calc(100vh - 60px - var(--mj-connectivity-banner-height, 0px) - var(--mj-space-12));\n background: var(--mj-bg-surface-elevated);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-lg);\n box-shadow: var(--mj-shadow-xl);\n z-index: 1401;\n overflow: hidden;\n animation: _ngcontent-%COMP%_ob-pop .13s ease-out;\n}\n\n@keyframes _ngcontent-%COMP%_ob-pop {\n from { opacity: 0; transform: translateX(-50%) scale(.985) translateY(-4px); }\n to { opacity: 1; transform: translateX(-50%) scale(1); }\n}\n\n.ob-input-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: var(--mj-space-2);\n padding: var(--mj-space-4) var(--mj-space-4) var(--mj-space-2);\n}\n\n\n\n.ob-field[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: var(--mj-space-2-5);\n flex: 1;\n min-width: 0;\n height: 46px;\n padding: 0 var(--mj-space-3-5);\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n transition: border-color var(--mj-transition-fast);\n}\n.ob-field[_ngcontent-%COMP%]:focus-within {\n border-color: var(--mj-border-focus);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n.ob-lead[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 15px;\n width: 18px;\n text-align: center;\n flex-shrink: 0;\n}\n\n.ob-lead--trigger[_ngcontent-%COMP%] { color: var(--mj-brand-primary); }\n.ob-lead[_ngcontent-%COMP%] b[_ngcontent-%COMP%] { font-family: ui-monospace, monospace; }\n\n.ob-input[_ngcontent-%COMP%] {\n flex: 1;\n border: none;\n outline: none;\n background: transparent;\n font-size: 16px;\n color: var(--mj-text-primary);\n font-family: inherit;\n}\n\n.ob-input[_ngcontent-%COMP%]::placeholder { color: var(--mj-text-muted); }\n\n.ob-mode-badge[_ngcontent-%COMP%] {\n font-size: 10.5px;\n font-weight: 700;\n letter-spacing: .4px;\n text-transform: uppercase;\n padding: 3px 9px;\n border-radius: var(--mj-radius-full, 999px);\n background: color-mix(in srgb, var(--mj-brand-primary) 14%, transparent);\n color: var(--mj-brand-primary);\n white-space: nowrap;\n}\n\n.ob-kbd[_ngcontent-%COMP%] {\n font-family: inherit;\n font-size: 10.5px;\n font-weight: 600;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-strong);\n border-bottom-width: 2px;\n border-radius: 5px;\n padding: 1.5px 6px;\n}\n\n.ob-close[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 40px;\n height: 40px;\n padding: 0;\n border: none;\n border-radius: var(--mj-radius-md);\n background: transparent;\n color: var(--mj-text-muted);\n font-size: var(--mj-text-base);\n cursor: pointer;\n transition: var(--mj-transition-colors);\n flex-shrink: 0;\n}\n.ob-close[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n color: var(--mj-text-primary);\n}\n.ob-close[_ngcontent-%COMP%]:focus-visible {\n outline: 2px solid var(--mj-border-focus);\n outline-offset: 2px;\n}\n\n.ob-scopes[_ngcontent-%COMP%] {\n display: flex;\n gap: 6px;\n padding: 9px 18px;\n border-bottom: 1px solid var(--mj-border-subtle);\n flex-wrap: wrap;\n}\n\n.ob-scope[_ngcontent-%COMP%] {\n font-size: 11px;\n padding: 3px 10px;\n border-radius: var(--mj-radius-full, 999px);\n border: 1px solid var(--mj-border-default);\n color: var(--mj-text-secondary);\n cursor: pointer;\n background: transparent;\n}\n\n.ob-scope--on[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, transparent);\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n font-weight: 600;\n}\n\n.ob-body[_ngcontent-%COMP%] {\n flex: 1 1 auto;\n min-height: 0;\n overflow-y: auto;\n padding: 6px 0;\n}\n\n.ob-loading[_ngcontent-%COMP%], \n.ob-empty[_ngcontent-%COMP%] {\n padding: 18px;\n text-align: center;\n color: var(--mj-text-muted);\n font-size: 13px;\n}\n\n.ob-group-label[_ngcontent-%COMP%] {\n font-size: 10.5px;\n font-weight: 700;\n letter-spacing: .6px;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n padding: 10px 18px 5px;\n}\n\n.ob-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 9px 18px;\n cursor: pointer;\n}\n\n\n\n\n.ob-row[_ngcontent-%COMP%]:focus { outline: none; }\n.ob-row[_ngcontent-%COMP%]:focus-visible { outline: 2px solid var(--mj-border-focus); outline-offset: -2px; }\n\n\n\n\n.ob-row--sel[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n\n.ob-ric[_ngcontent-%COMP%] {\n width: 30px;\n height: 30px;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 13px;\n flex-shrink: 0;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.ob-row--sel[_ngcontent-%COMP%] .ob-ric[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 16%, transparent);\n color: var(--mj-brand-primary);\n}\n\n.ob-rmain[_ngcontent-%COMP%] { flex: 1; min-width: 0; display: flex; flex-direction: column; }\n\n.ob-rname[_ngcontent-%COMP%] {\n font-size: 13.5px;\n font-weight: 500;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n color: var(--mj-text-primary);\n}\n\n.ob-rsub[_ngcontent-%COMP%] {\n font-size: 11.5px;\n color: var(--mj-text-muted);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-top: 1px;\n}\n\n.ob-raux[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }\n\n.ob-rtype[_ngcontent-%COMP%] {\n font-size: 10px;\n font-weight: 600;\n padding: 2px 8px;\n border-radius: var(--mj-radius-full, 999px);\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n text-transform: capitalize;\n}\n\n.ob-score[_ngcontent-%COMP%] {\n width: 52px;\n height: 4px;\n border-radius: 2px;\n background: var(--mj-bg-surface-sunken);\n overflow: hidden;\n}\n\n.ob-score[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { display: block; height: 100%; background: var(--mj-brand-primary); }\n\n.ob-go[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted);\n opacity: 0;\n display: flex;\n gap: 6px;\n align-items: center;\n}\n\n.ob-row--sel[_ngcontent-%COMP%] .ob-go[_ngcontent-%COMP%] { opacity: 1; }\n\n.ob-hintbar[_ngcontent-%COMP%] { display: flex; gap: 8px; padding: 12px 18px; flex-wrap: wrap; }\n\n.ob-hint-chip[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 9px;\n padding: 9px 13px;\n border: 1px dashed var(--mj-border-strong);\n border-radius: 10px;\n cursor: pointer;\n background: transparent;\n}\n\n.ob-hint-chip[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 6%, transparent);\n}\n\n.ob-hint-chip[_ngcontent-%COMP%] b[_ngcontent-%COMP%] { font-family: ui-monospace, monospace; color: var(--mj-brand-primary); font-size: 14px; }\n.ob-hint-chip[_ngcontent-%COMP%] span[_ngcontent-%COMP%] { font-size: 12px; color: var(--mj-text-secondary); }\n\n.ob-foot[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n padding: 10px 18px;\n border-top: 1px solid var(--mj-border-subtle);\n background: var(--mj-bg-surface-card);\n font-size: 11.5px;\n color: var(--mj-text-muted);\n}\n\n.ob-k[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 5px; }\n\n\n\n\n\n.ob-settings[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: var(--mj-space-2);\n margin-left: auto;\n border: none;\n background: transparent;\n color: var(--mj-text-secondary);\n font-family: inherit;\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-semibold);\n padding: var(--mj-space-1-5) var(--mj-space-2);\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n transition: background var(--mj-transition-fast), color var(--mj-transition-fast);\n}\n.ob-settings[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n color: var(--mj-text-primary);\n}\n.ob-settings[_ngcontent-%COMP%]:focus-visible {\n outline: 2px solid var(--mj-border-focus);\n outline-offset: 2px;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .omnibar-palette[_ngcontent-%COMP%] {\n animation: none;\n }\n}\n\n\n\n\n\n\n@media (max-width: 640px) {\n .omnibar-palette[_ngcontent-%COMP%] {\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n transform: none;\n width: 100%;\n height: 100dvh;\n max-height: none; \n\n border-radius: 0;\n animation: none; \n\n display: flex;\n flex-direction: column;\n }\n\n \n\n .ob-body[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n max-height: none;\n }\n\n \n\n\n\n\n .ob-kbd[_ngcontent-%COMP%], \n .ob-go[_ngcontent-%COMP%], \n .ob-k[_ngcontent-%COMP%] {\n display: none;\n }\n\n \n\n .ob-close[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n font-size: var(--mj-text-base);\n }\n .ob-settings[_ngcontent-%COMP%] {\n min-height: 40px;\n font-size: var(--mj-text-base);\n }\n}"], changeDetection: 0 });
|
|
819
821
|
}
|
|
820
822
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(OmnibarPaletteComponent, [{
|
|
821
823
|
type: Component,
|
|
822
|
-
args: [{ standalone: false, selector: 'mj-omnibar-palette', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (IsOpen) {\n <div class=\"omnibar-overlay\" (click)=\"Close()\"></div>\n <div class=\"omnibar-palette\" role=\"dialog\" aria-modal=\"true\" aria-label=\"Command palette\"\n (keydown)=\"OnPaletteKeydown($event)\">\n\n <div class=\"ob-input-row\">\n <span class=\"ob-lead\" [class.ob-lead--trigger]=\"ActiveTriggerChar.length > 0\">\n @if (ActiveTriggerChar.length > 0) {\n <b>{{ ActiveTriggerChar }}</b>\n } @else {\n <i class=\"fa-solid fa-magnifying-glass\"></i>\n }\n </span>\n <input #paletteInput class=\"ob-input\" type=\"text\" autocomplete=\"off\" spellcheck=\"false\"\n role=\"combobox\" aria-controls=\"ob-listbox\" aria-autocomplete=\"list\"\n [attr.aria-expanded]=\"HasOptions\"\n [attr.aria-activedescendant]=\"ActiveDescendantId\"\n [placeholder]=\"ActivePlaceholder\"\n [ngModel]=\"Query\" (ngModelChange)=\"OnQueryChange($event)\"\n (keydown)=\"OnInputKeydown($event)\" />\n <span class=\"ob-mode-badge\">{{ ActiveModeLabel }}</span>\n <kbd class=\"ob-kbd\">esc</kbd>\n <button type=\"button\" class=\"ob-close\" aria-label=\"Close\" title=\"Close\" (click)=\"Close()\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n </div>\n\n @if (ShowScopes && Scopes.length > 0) {\n <div class=\"ob-scopes\">\n <button type=\"button\" class=\"ob-scope\" [class.ob-scope--on]=\"SelectedScopeIDs.length === 0\"\n (click)=\"ClearScopes()\">All sources</button>\n @for (scope of Scopes; track scope.ID) {\n <button type=\"button\" class=\"ob-scope\" [class.ob-scope--on]=\"IsScopeSelected(scope.ID)\"\n (click)=\"ToggleScope(scope.ID)\">{{ scope.Name }}</button>\n }\n </div>\n }\n\n <div class=\"ob-body\">\n @if (IsLoading) {\n <div class=\"ob-loading\"><i class=\"fa-solid fa-circle-notch fa-spin\"></i> Searching\u2026</div>\n } @else if (Rows.length === 0 && Query.length === 0) {\n <div class=\"ob-hintbar\">\n @for (hint of TriggerHints; track hint.Char) {\n <button type=\"button\" class=\"ob-hint-chip\" (click)=\"SeedTrigger(hint.Char)\">\n <b>{{ hint.Char }}</b><span>{{ hint.Label }}</span>\n </button>\n }\n </div>\n @if (RecentRows.length > 0) {\n <div class=\"ob-group-label\" role=\"presentation\">Recent</div>\n <div id=\"ob-listbox\" role=\"listbox\" aria-label=\"Suggestions\">\n @for (row of RecentRows; track row.Suggestion.id; let i = $index) {\n <div class=\"ob-row\" role=\"option\" [attr.id]=\"'ob-opt-' + (RecentBaseIndex + i)\"\n [attr.tabindex]=\"RecentBaseIndex + i === SelectedIndex ? 0 : -1\"\n [attr.aria-selected]=\"RecentBaseIndex + i === SelectedIndex\"\n [class.ob-row--sel]=\"RecentBaseIndex + i === SelectedIndex\"\n (focus)=\"SelectedIndex = RecentBaseIndex + i\"\n (keydown)=\"OnRowKeydown($event, row.Suggestion)\"\n (mouseenter)=\"SelectedIndex = RecentBaseIndex + i\" (click)=\"Execute(row.Suggestion)\">\n <span class=\"ob-ric\"><i [class]=\"row.Suggestion.icon || 'fa-solid fa-clock-rotate-left'\"></i></span>\n <span class=\"ob-rmain\">\n <span class=\"ob-rname\">{{ row.Suggestion.displayName }}</span>\n <span class=\"ob-rsub\">{{ row.Suggestion.description }}</span>\n </span>\n <span class=\"ob-raux\"><span class=\"ob-rtype\">{{ row.Suggestion.type }}</span></span>\n </div>\n }\n </div>\n }\n } @else if (Rows.length === 0) {\n <div class=\"ob-empty\">No matches \u2014 press <kbd class=\"ob-kbd\">\u21B5</kbd> to search everything for \u201C{{ EffectiveQuery }}\u201D.</div>\n } @else {\n <div id=\"ob-listbox\" role=\"listbox\" aria-label=\"Suggestions\">\n @for (row of Rows; track row.Suggestion.id; let i = $index) {\n @if (row.GroupLabel) {\n <div class=\"ob-group-label\" role=\"presentation\">{{ row.GroupLabel }}</div>\n }\n <div class=\"ob-row\" role=\"option\" [attr.id]=\"'ob-opt-' + i\"\n [attr.tabindex]=\"i === SelectedIndex ? 0 : -1\"\n [attr.aria-selected]=\"i === SelectedIndex\"\n [class.ob-row--sel]=\"i === SelectedIndex\"\n (focus)=\"SelectedIndex = i\"\n (keydown)=\"OnRowKeydown($event, row.Suggestion)\"\n (mouseenter)=\"SelectedIndex = i\" (click)=\"Execute(row.Suggestion)\">\n <span class=\"ob-ric\"><i [class]=\"row.Suggestion.icon || 'fa-solid fa-circle'\"></i></span>\n <span class=\"ob-rmain\">\n <span class=\"ob-rname\">{{ row.Suggestion.displayName }}</span>\n @if (row.Suggestion.description) {\n <span class=\"ob-rsub\">{{ row.Suggestion.description }}</span>\n }\n </span>\n <span class=\"ob-raux\">\n @if (row.ScorePercent != null) {\n <span class=\"ob-score\"><i [style.width.%]=\"row.ScorePercent\"></i></span>\n }\n <span class=\"ob-rtype\">{{ row.Suggestion.type }}</span>\n <span class=\"ob-go\">open <kbd class=\"ob-kbd\">\u21B5</kbd></span>\n </span>\n </div>\n }\n </div>\n }\n </div>\n\n <div class=\"ob-foot\">\n <span class=\"ob-k\"><kbd class=\"ob-kbd\">\u2191</kbd><kbd class=\"ob-kbd\">\u2193</kbd> navigate</span>\n <span class=\"ob-k\"><kbd class=\"ob-kbd\">\u21B5</kbd> open</span>\n <button type=\"button\" class=\"ob-settings\" aria-label=\"Command Palette settings\"\n title=\"Command Palette settings\" (click)=\"RequestSettings()\">\n <i class=\"fa-solid fa-gear\"></i>\n </button>\n </div>\n </div>\n}\n", styles: ["/* \u2500\u2500 Unified command palette (design source: plans/composer-adoption/mockups/omnibar-command-palette.html) \u2500\u2500 */\n\n.omnibar-overlay {\n position: fixed;\n inset: 0;\n background: var(--mj-bg-overlay);\n z-index: 1400;\n}\n\n.omnibar-palette {\n position: fixed;\n left: 50%;\n top: 96px;\n transform: translateX(-50%);\n width: min(680px, 92vw);\n /* Grow to content \u2014 every fetched row plus the footer stays visible without\n internal scroll on desktop. The viewport bound below is the only cap, so\n .ob-body only scrolls when the screen genuinely can't fit the panel. */\n display: flex;\n flex-direction: column;\n max-height: calc(100vh - 96px - 24px);\n background: var(--mj-bg-surface-elevated);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-xl);\n box-shadow: var(--mj-shadow-lg, 0 20px 60px color-mix(in srgb, var(--mj-text-primary) 22%, transparent));\n z-index: 1401;\n overflow: hidden;\n animation: ob-pop .13s ease-out;\n}\n\n@keyframes ob-pop {\n from { opacity: 0; transform: translateX(-50%) scale(.985) translateY(-4px); }\n to { opacity: 1; transform: translateX(-50%) scale(1); }\n}\n\n.ob-input-row {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 15px 18px;\n border-bottom: 1px solid var(--mj-border-subtle);\n}\n\n.ob-lead {\n color: var(--mj-text-muted);\n font-size: 15px;\n width: 18px;\n text-align: center;\n}\n\n.ob-lead--trigger { color: var(--mj-brand-primary); }\n.ob-lead b { font-family: ui-monospace, monospace; }\n\n.ob-input {\n flex: 1;\n border: none;\n outline: none;\n background: transparent;\n font-size: 16px;\n color: var(--mj-text-primary);\n font-family: inherit;\n}\n\n.ob-input::placeholder { color: var(--mj-text-muted); }\n\n.ob-mode-badge {\n font-size: 10.5px;\n font-weight: 700;\n letter-spacing: .4px;\n text-transform: uppercase;\n padding: 3px 9px;\n border-radius: var(--mj-radius-full, 999px);\n background: color-mix(in srgb, var(--mj-brand-primary) 14%, transparent);\n color: var(--mj-brand-primary);\n white-space: nowrap;\n}\n\n.ob-kbd {\n font-family: inherit;\n font-size: 10.5px;\n font-weight: 600;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-strong);\n border-bottom-width: 2px;\n border-radius: 5px;\n padding: 1.5px 6px;\n}\n\n.ob-close {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n padding: 0;\n border: none;\n border-radius: var(--mj-radius-full);\n background: transparent;\n color: var(--mj-text-muted);\n font-size: var(--mj-text-sm);\n cursor: pointer;\n transition: var(--mj-transition-colors);\n flex-shrink: 0;\n}\n.ob-close:hover {\n background: var(--mj-bg-surface-hover);\n color: var(--mj-text-primary);\n}\n\n.ob-scopes {\n display: flex;\n gap: 6px;\n padding: 9px 18px;\n border-bottom: 1px solid var(--mj-border-subtle);\n flex-wrap: wrap;\n}\n\n.ob-scope {\n font-size: 11px;\n padding: 3px 10px;\n border-radius: var(--mj-radius-full, 999px);\n border: 1px solid var(--mj-border-default);\n color: var(--mj-text-secondary);\n cursor: pointer;\n background: transparent;\n}\n\n.ob-scope--on {\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, transparent);\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n font-weight: 600;\n}\n\n.ob-body {\n flex: 1 1 auto;\n min-height: 0;\n overflow-y: auto;\n padding: 6px 0;\n}\n\n.ob-loading,\n.ob-empty {\n padding: 18px;\n text-align: center;\n color: var(--mj-text-muted);\n font-size: 13px;\n}\n\n.ob-group-label {\n font-size: 10.5px;\n font-weight: 700;\n letter-spacing: .6px;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n padding: 10px 18px 5px;\n}\n\n.ob-row {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 9px 18px;\n cursor: pointer;\n}\n\n/* Rows are focus stops (roving tabindex): the --sel background tracks focus, so\n suppress the default outline but keep a ring for keyboard :focus-visible. */\n.ob-row:focus { outline: none; }\n.ob-row:focus-visible { outline: 2px solid var(--mj-border-focus); outline-offset: -2px; }\n\n.ob-row--sel {\n background: color-mix(in srgb, var(--mj-brand-primary) 9%, transparent);\n box-shadow: inset 3px 0 0 var(--mj-brand-primary);\n}\n\n.ob-ric {\n width: 30px;\n height: 30px;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 13px;\n flex-shrink: 0;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.ob-row--sel .ob-ric {\n background: color-mix(in srgb, var(--mj-brand-primary) 16%, transparent);\n color: var(--mj-brand-primary);\n}\n\n.ob-rmain { flex: 1; min-width: 0; display: flex; flex-direction: column; }\n\n.ob-rname {\n font-size: 13.5px;\n font-weight: 500;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n color: var(--mj-text-primary);\n}\n\n.ob-rsub {\n font-size: 11.5px;\n color: var(--mj-text-muted);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-top: 1px;\n}\n\n.ob-raux { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }\n\n.ob-rtype {\n font-size: 10px;\n font-weight: 600;\n padding: 2px 8px;\n border-radius: var(--mj-radius-full, 999px);\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n text-transform: capitalize;\n}\n\n.ob-score {\n width: 52px;\n height: 4px;\n border-radius: 2px;\n background: var(--mj-bg-surface-sunken);\n overflow: hidden;\n}\n\n.ob-score i { display: block; height: 100%; background: var(--mj-brand-primary); }\n\n.ob-go {\n font-size: 11px;\n color: var(--mj-text-muted);\n opacity: 0;\n display: flex;\n gap: 6px;\n align-items: center;\n}\n\n.ob-row--sel .ob-go { opacity: 1; }\n\n.ob-hintbar { display: flex; gap: 8px; padding: 12px 18px; flex-wrap: wrap; }\n\n.ob-hint-chip {\n display: flex;\n align-items: center;\n gap: 9px;\n padding: 9px 13px;\n border: 1px dashed var(--mj-border-strong);\n border-radius: 10px;\n cursor: pointer;\n background: transparent;\n}\n\n.ob-hint-chip:hover {\n border-color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 6%, transparent);\n}\n\n.ob-hint-chip b { font-family: ui-monospace, monospace; color: var(--mj-brand-primary); font-size: 14px; }\n.ob-hint-chip span { font-size: 12px; color: var(--mj-text-secondary); }\n\n.ob-foot {\n display: flex;\n align-items: center;\n gap: 16px;\n padding: 10px 18px;\n border-top: 1px solid var(--mj-border-subtle);\n background: var(--mj-bg-surface-card);\n font-size: 11.5px;\n color: var(--mj-text-muted);\n}\n\n.ob-k { display: flex; align-items: center; gap: 5px; }\n\n/* Footer gear \u2014 the reverse door to My Profile \u2192 Command Palette. */\n.ob-settings {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n padding: 0;\n margin-left: auto;\n border: none;\n border-radius: var(--mj-radius-full);\n background: transparent;\n color: var(--mj-text-muted);\n font-size: var(--mj-text-xs);\n cursor: pointer;\n transition: var(--mj-transition-colors);\n}\n.ob-settings:hover {\n background: var(--mj-bg-surface-hover);\n color: var(--mj-text-primary);\n}\n\n/* ========================================\n MOBILE (matches mj-search-overlay's 640px sheet treatment so the two search\n surfaces sit identically on small viewports)\n ======================================== */\n@media (max-width: 640px) {\n .omnibar-palette {\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n transform: none;\n width: 100%;\n height: 100dvh;\n max-height: none; /* desktop viewport bound would clamp the full-height sheet */\n border-radius: 0;\n animation: none; /* ob-pop animates a translateX(-50%) that no longer applies */\n display: flex;\n flex-direction: column;\n }\n\n /* Full-height sheet: the results area absorbs all remaining space. */\n .ob-body {\n flex: 1;\n min-height: 0;\n max-height: none;\n }\n\n /* Keyboard chrome is meaningless on touch: esc/\u21B5 chips, per-row 'open \u21B5'\n hints, and the footer's nav-hint spans. The footer itself stays because it\n carries the settings gear \u2014 the only in-surface door to the opt-in toggle,\n which mobile users need too. The \u2715 close button also stays. */\n .ob-kbd,\n .ob-go,\n .ob-k {\n display: none;\n }\n\n /* Touch-friendly hit areas for the surviving controls. */\n .ob-close,\n .ob-settings {\n width: 40px;\n height: 40px;\n font-size: var(--mj-text-base);\n }\n}\n"] }]
|
|
824
|
+
args: [{ standalone: false, selector: 'mj-omnibar-palette', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (IsOpen) {\n <div class=\"omnibar-overlay\" (click)=\"Close()\"></div>\n <div class=\"omnibar-palette\" role=\"dialog\" aria-modal=\"true\" aria-label=\"Command palette\"\n (keydown)=\"OnPaletteKeydown($event)\">\n\n <div class=\"ob-input-row\">\n <div class=\"ob-field\">\n <span class=\"ob-lead\" [class.ob-lead--trigger]=\"ActiveTriggerChar.length > 0\">\n @if (ActiveTriggerChar.length > 0) {\n <b>{{ ActiveTriggerChar }}</b>\n } @else {\n <i class=\"fa-solid fa-magnifying-glass\"></i>\n }\n </span>\n <input #paletteInput class=\"ob-input\" type=\"text\" autocomplete=\"off\" spellcheck=\"false\"\n role=\"combobox\" aria-controls=\"ob-listbox\" aria-autocomplete=\"list\"\n [attr.aria-expanded]=\"HasOptions\"\n [attr.aria-activedescendant]=\"ActiveDescendantId\"\n [placeholder]=\"ActivePlaceholder\"\n [ngModel]=\"Query\" (ngModelChange)=\"OnQueryChange($event)\"\n (keydown)=\"OnInputKeydown($event)\" />\n <span class=\"ob-mode-badge\">{{ ActiveModeLabel }}</span>\n <kbd class=\"ob-kbd\">esc</kbd>\n </div>\n <button type=\"button\" class=\"ob-close\" aria-label=\"Close\" title=\"Close\" (click)=\"Close()\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n </div>\n\n @if (ShowScopes && Scopes.length > 0) {\n <div class=\"ob-scopes\">\n <button type=\"button\" class=\"ob-scope\" [class.ob-scope--on]=\"SelectedScopeIDs.length === 0\"\n (click)=\"ClearScopes()\">All sources</button>\n @for (scope of Scopes; track scope.ID) {\n <button type=\"button\" class=\"ob-scope\" [class.ob-scope--on]=\"IsScopeSelected(scope.ID)\"\n (click)=\"ToggleScope(scope.ID)\">{{ scope.Name }}</button>\n }\n </div>\n }\n\n <div class=\"ob-body\">\n @if (IsLoading) {\n <div class=\"ob-loading\"><i class=\"fa-solid fa-circle-notch fa-spin\"></i> Searching\u2026</div>\n } @else if (Rows.length === 0 && Query.length === 0) {\n <div class=\"ob-hintbar\">\n @for (hint of TriggerHints; track hint.Char) {\n <button type=\"button\" class=\"ob-hint-chip\" (click)=\"SeedTrigger(hint.Char)\">\n <b>{{ hint.Char }}</b><span>{{ hint.Label }}</span>\n </button>\n }\n </div>\n @if (RecentRows.length > 0) {\n <div class=\"ob-group-label\" role=\"presentation\">Recent</div>\n <div id=\"ob-listbox\" role=\"listbox\" aria-label=\"Suggestions\">\n @for (row of RecentRows; track row.Suggestion.id; let i = $index) {\n <div class=\"ob-row\" role=\"option\" [attr.id]=\"'ob-opt-' + (RecentBaseIndex + i)\"\n [attr.tabindex]=\"RecentBaseIndex + i === SelectedIndex ? 0 : -1\"\n [attr.aria-selected]=\"RecentBaseIndex + i === SelectedIndex\"\n [class.ob-row--sel]=\"RecentBaseIndex + i === SelectedIndex\"\n (focus)=\"SelectedIndex = RecentBaseIndex + i\"\n (keydown)=\"OnRowKeydown($event, row.Suggestion)\"\n (mouseenter)=\"SelectedIndex = RecentBaseIndex + i\" (click)=\"Execute(row.Suggestion)\">\n <span class=\"ob-ric\"><i [class]=\"row.Suggestion.icon || 'fa-solid fa-clock-rotate-left'\"></i></span>\n <span class=\"ob-rmain\">\n <span class=\"ob-rname\">{{ row.Suggestion.displayName }}</span>\n <span class=\"ob-rsub\">{{ row.Suggestion.description }}</span>\n </span>\n <span class=\"ob-raux\"><span class=\"ob-rtype\">{{ row.Suggestion.type }}</span></span>\n </div>\n }\n </div>\n }\n } @else if (Rows.length === 0) {\n <div class=\"ob-empty\">No matches \u2014 press <kbd class=\"ob-kbd\">\u21B5</kbd> to search everything for \u201C{{ EffectiveQuery }}\u201D.</div>\n } @else {\n <div id=\"ob-listbox\" role=\"listbox\" aria-label=\"Suggestions\">\n @for (row of Rows; track row.Suggestion.id; let i = $index) {\n @if (row.GroupLabel) {\n <div class=\"ob-group-label\" role=\"presentation\">{{ row.GroupLabel }}</div>\n }\n <div class=\"ob-row\" role=\"option\" [attr.id]=\"'ob-opt-' + i\"\n [attr.tabindex]=\"i === SelectedIndex ? 0 : -1\"\n [attr.aria-selected]=\"i === SelectedIndex\"\n [class.ob-row--sel]=\"i === SelectedIndex\"\n (focus)=\"SelectedIndex = i\"\n (keydown)=\"OnRowKeydown($event, row.Suggestion)\"\n (mouseenter)=\"SelectedIndex = i\" (click)=\"Execute(row.Suggestion)\">\n <span class=\"ob-ric\"><i [class]=\"row.Suggestion.icon || 'fa-solid fa-circle'\"></i></span>\n <span class=\"ob-rmain\">\n <span class=\"ob-rname\">{{ row.Suggestion.displayName }}</span>\n @if (row.Suggestion.description) {\n <span class=\"ob-rsub\">{{ row.Suggestion.description }}</span>\n }\n </span>\n <span class=\"ob-raux\">\n @if (row.ScorePercent != null) {\n <span class=\"ob-score\"><i [style.width.%]=\"row.ScorePercent\"></i></span>\n }\n <span class=\"ob-rtype\">{{ row.Suggestion.type }}</span>\n <span class=\"ob-go\">open <kbd class=\"ob-kbd\">\u21B5</kbd></span>\n </span>\n </div>\n }\n </div>\n }\n </div>\n\n <div class=\"ob-foot\">\n <span class=\"ob-k\"><kbd class=\"ob-kbd\">\u2191</kbd><kbd class=\"ob-kbd\">\u2193</kbd> navigate</span>\n <span class=\"ob-k\"><kbd class=\"ob-kbd\">\u21B5</kbd> open</span>\n <button type=\"button\" class=\"ob-settings\" aria-label=\"Command Palette settings\"\n title=\"Command Palette settings\" (click)=\"RequestSettings()\">\n <i class=\"fa-solid fa-gear\" aria-hidden=\"true\"></i>\n <span>Settings</span>\n </button>\n </div>\n </div>\n}\n", styles: ["/* \u2500\u2500 Unified command palette (design source: plans/composer-adoption/mockups/omnibar-command-palette.html) \u2500\u2500 */\n\n.omnibar-overlay {\n position: fixed;\n inset: 0;\n background: var(--mj-bg-overlay);\n z-index: 1400;\n}\n\n/* Shared command-surface spec (omnibar + app launcher): banner-aware top\n offset, radius-lg, shadow-xl, boxed sunken input, whole-screen scrim. */\n.omnibar-palette {\n position: fixed;\n left: 50%;\n top: calc(60px + var(--mj-connectivity-banner-height, 0px) + var(--mj-space-6));\n transform: translateX(-50%);\n width: min(680px, 92vw);\n /* Grow to content \u2014 every fetched row plus the footer stays visible without\n internal scroll on desktop. The viewport bound below is the only cap, so\n .ob-body only scrolls when the screen genuinely can't fit the panel. */\n display: flex;\n flex-direction: column;\n max-height: calc(100vh - 60px - var(--mj-connectivity-banner-height, 0px) - var(--mj-space-12));\n background: var(--mj-bg-surface-elevated);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-lg);\n box-shadow: var(--mj-shadow-xl);\n z-index: 1401;\n overflow: hidden;\n animation: ob-pop .13s ease-out;\n}\n\n@keyframes ob-pop {\n from { opacity: 0; transform: translateX(-50%) scale(.985) translateY(-4px); }\n to { opacity: 1; transform: translateX(-50%) scale(1); }\n}\n\n.ob-input-row {\n display: flex;\n align-items: center;\n gap: var(--mj-space-2);\n padding: var(--mj-space-4) var(--mj-space-4) var(--mj-space-2);\n}\n\n/* Boxed sunken field \u2014 identical treatment to the app launcher's filter. */\n.ob-field {\n display: flex;\n align-items: center;\n gap: var(--mj-space-2-5);\n flex: 1;\n min-width: 0;\n height: 46px;\n padding: 0 var(--mj-space-3-5);\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n transition: border-color var(--mj-transition-fast);\n}\n.ob-field:focus-within {\n border-color: var(--mj-border-focus);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n.ob-lead {\n color: var(--mj-text-muted);\n font-size: 15px;\n width: 18px;\n text-align: center;\n flex-shrink: 0;\n}\n\n.ob-lead--trigger { color: var(--mj-brand-primary); }\n.ob-lead b { font-family: ui-monospace, monospace; }\n\n.ob-input {\n flex: 1;\n border: none;\n outline: none;\n background: transparent;\n font-size: 16px;\n color: var(--mj-text-primary);\n font-family: inherit;\n}\n\n.ob-input::placeholder { color: var(--mj-text-muted); }\n\n.ob-mode-badge {\n font-size: 10.5px;\n font-weight: 700;\n letter-spacing: .4px;\n text-transform: uppercase;\n padding: 3px 9px;\n border-radius: var(--mj-radius-full, 999px);\n background: color-mix(in srgb, var(--mj-brand-primary) 14%, transparent);\n color: var(--mj-brand-primary);\n white-space: nowrap;\n}\n\n.ob-kbd {\n font-family: inherit;\n font-size: 10.5px;\n font-weight: 600;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-strong);\n border-bottom-width: 2px;\n border-radius: 5px;\n padding: 1.5px 6px;\n}\n\n.ob-close {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 40px;\n height: 40px;\n padding: 0;\n border: none;\n border-radius: var(--mj-radius-md);\n background: transparent;\n color: var(--mj-text-muted);\n font-size: var(--mj-text-base);\n cursor: pointer;\n transition: var(--mj-transition-colors);\n flex-shrink: 0;\n}\n.ob-close:hover {\n background: var(--mj-bg-surface-hover);\n color: var(--mj-text-primary);\n}\n.ob-close:focus-visible {\n outline: 2px solid var(--mj-border-focus);\n outline-offset: 2px;\n}\n\n.ob-scopes {\n display: flex;\n gap: 6px;\n padding: 9px 18px;\n border-bottom: 1px solid var(--mj-border-subtle);\n flex-wrap: wrap;\n}\n\n.ob-scope {\n font-size: 11px;\n padding: 3px 10px;\n border-radius: var(--mj-radius-full, 999px);\n border: 1px solid var(--mj-border-default);\n color: var(--mj-text-secondary);\n cursor: pointer;\n background: transparent;\n}\n\n.ob-scope--on {\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, transparent);\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n font-weight: 600;\n}\n\n.ob-body {\n flex: 1 1 auto;\n min-height: 0;\n overflow-y: auto;\n padding: 6px 0;\n}\n\n.ob-loading,\n.ob-empty {\n padding: 18px;\n text-align: center;\n color: var(--mj-text-muted);\n font-size: 13px;\n}\n\n.ob-group-label {\n font-size: 10.5px;\n font-weight: 700;\n letter-spacing: .6px;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n padding: 10px 18px 5px;\n}\n\n.ob-row {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 9px 18px;\n cursor: pointer;\n}\n\n/* Rows are focus stops (roving tabindex): the --sel background tracks focus, so\n suppress the default outline but keep a ring for keyboard :focus-visible. */\n.ob-row:focus { outline: none; }\n.ob-row:focus-visible { outline: 2px solid var(--mj-border-focus); outline-offset: -2px; }\n\n/* Brand-tint selection \u2014 the one active-state language used across the shell\n (nav pills, launcher cards); the old left inset bar was a second dialect. */\n.ob-row--sel {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n\n.ob-ric {\n width: 30px;\n height: 30px;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 13px;\n flex-shrink: 0;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.ob-row--sel .ob-ric {\n background: color-mix(in srgb, var(--mj-brand-primary) 16%, transparent);\n color: var(--mj-brand-primary);\n}\n\n.ob-rmain { flex: 1; min-width: 0; display: flex; flex-direction: column; }\n\n.ob-rname {\n font-size: 13.5px;\n font-weight: 500;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n color: var(--mj-text-primary);\n}\n\n.ob-rsub {\n font-size: 11.5px;\n color: var(--mj-text-muted);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-top: 1px;\n}\n\n.ob-raux { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }\n\n.ob-rtype {\n font-size: 10px;\n font-weight: 600;\n padding: 2px 8px;\n border-radius: var(--mj-radius-full, 999px);\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n text-transform: capitalize;\n}\n\n.ob-score {\n width: 52px;\n height: 4px;\n border-radius: 2px;\n background: var(--mj-bg-surface-sunken);\n overflow: hidden;\n}\n\n.ob-score i { display: block; height: 100%; background: var(--mj-brand-primary); }\n\n.ob-go {\n font-size: 11px;\n color: var(--mj-text-muted);\n opacity: 0;\n display: flex;\n gap: 6px;\n align-items: center;\n}\n\n.ob-row--sel .ob-go { opacity: 1; }\n\n.ob-hintbar { display: flex; gap: 8px; padding: 12px 18px; flex-wrap: wrap; }\n\n.ob-hint-chip {\n display: flex;\n align-items: center;\n gap: 9px;\n padding: 9px 13px;\n border: 1px dashed var(--mj-border-strong);\n border-radius: 10px;\n cursor: pointer;\n background: transparent;\n}\n\n.ob-hint-chip:hover {\n border-color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 6%, transparent);\n}\n\n.ob-hint-chip b { font-family: ui-monospace, monospace; color: var(--mj-brand-primary); font-size: 14px; }\n.ob-hint-chip span { font-size: 12px; color: var(--mj-text-secondary); }\n\n.ob-foot {\n display: flex;\n align-items: center;\n gap: 16px;\n padding: 10px 18px;\n border-top: 1px solid var(--mj-border-subtle);\n background: var(--mj-bg-surface-card);\n font-size: 11.5px;\n color: var(--mj-text-muted);\n}\n\n.ob-k { display: flex; align-items: center; gap: 5px; }\n\n/* Footer options button \u2014 the reverse door to My Profile \u2192 Command Palette.\n Shared spec with the launcher's Configure button: quiet labeled gear,\n right-aligned. */\n.ob-settings {\n display: flex;\n align-items: center;\n gap: var(--mj-space-2);\n margin-left: auto;\n border: none;\n background: transparent;\n color: var(--mj-text-secondary);\n font-family: inherit;\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-semibold);\n padding: var(--mj-space-1-5) var(--mj-space-2);\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n transition: background var(--mj-transition-fast), color var(--mj-transition-fast);\n}\n.ob-settings:hover {\n background: var(--mj-bg-surface-hover);\n color: var(--mj-text-primary);\n}\n.ob-settings:focus-visible {\n outline: 2px solid var(--mj-border-focus);\n outline-offset: 2px;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .omnibar-palette {\n animation: none;\n }\n}\n\n/* ========================================\n MOBILE (matches mj-search-overlay's 640px sheet treatment so the two search\n surfaces sit identically on small viewports)\n ======================================== */\n@media (max-width: 640px) {\n .omnibar-palette {\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n transform: none;\n width: 100%;\n height: 100dvh;\n max-height: none; /* desktop viewport bound would clamp the full-height sheet */\n border-radius: 0;\n animation: none; /* ob-pop animates a translateX(-50%) that no longer applies */\n display: flex;\n flex-direction: column;\n }\n\n /* Full-height sheet: the results area absorbs all remaining space. */\n .ob-body {\n flex: 1;\n min-height: 0;\n max-height: none;\n }\n\n /* Keyboard chrome is meaningless on touch: esc/\u21B5 chips, per-row 'open \u21B5'\n hints, and the footer's nav-hint spans. The footer itself stays because it\n carries the settings gear \u2014 the only in-surface door to the opt-in toggle,\n which mobile users need too. The \u2715 close button also stays. */\n .ob-kbd,\n .ob-go,\n .ob-k {\n display: none;\n }\n\n /* Touch-friendly hit areas for the surviving controls. */\n .ob-close {\n width: 40px;\n height: 40px;\n font-size: var(--mj-text-base);\n }\n .ob-settings {\n min-height: 40px;\n font-size: var(--mj-text-base);\n }\n}\n"] }]
|
|
823
825
|
}], null, { inputRef: [{
|
|
824
826
|
type: ViewChild,
|
|
825
827
|
args: ['paletteInput']
|