@fusion.dev/helix-headless 0.219.0 → 0.221.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/api.json +1 -1
- package/custom-elements.json +1 -1
- package/dist/code-editor/root/code-editor-root.d.ts +68 -71
- package/dist/code-editor/root/code-editor-root.js +67 -249
- package/dist/editor/index.d.ts +1 -0
- package/dist/editor/index.js +1 -0
- package/dist/editor/root/editor-root.d.ts +611 -0
- package/dist/editor/root/editor-root.js +860 -0
- package/dist/element-events.generated.js +4 -1
- package/dist/find/index.d.ts +1 -0
- package/dist/find/index.js +1 -0
- package/dist/find/root/find-root.d.ts +314 -0
- package/dist/find/root/find-root.js +577 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/log/group/log-group.d.ts +11 -2
- package/dist/log/group/log-group.js +17 -3
- package/dist/terminal/root/terminal-root.d.ts +49 -32
- package/dist/terminal/root/terminal-root.js +72 -181
- package/dist/tree/item/tree-item.d.ts +11 -0
- package/dist/tree/item/tree-item.js +19 -1
- package/examples.json +1 -1
- package/lint.json +1 -1
- package/package.json +5 -5
- package/types/jsx.d.ts +1782 -74
- package/types/svelte.d.ts +2 -0
- package/types/vue.d.ts +292 -4
- package/types/words.d.ts +227 -0
|
@@ -53,7 +53,7 @@ registerElementEvents({
|
|
|
53
53
|
'helix-copy-error',
|
|
54
54
|
'helix-toggle',
|
|
55
55
|
],
|
|
56
|
-
'helix-headless-code-editor': ['change', 'helix-before-change', 'input'],
|
|
56
|
+
'helix-headless-code-editor': ['change', 'helix-before-change', 'helix-found', 'input'],
|
|
57
57
|
'helix-headless-code-input': [
|
|
58
58
|
'change',
|
|
59
59
|
'helix-before-change',
|
|
@@ -138,6 +138,7 @@ registerElementEvents({
|
|
|
138
138
|
'helix-headless-drawer': ['close', 'helix-before-close', 'helix-before-open', 'toggle'],
|
|
139
139
|
'helix-headless-drilldown': ['helix-navigate', 'helix-select'],
|
|
140
140
|
'helix-headless-drilldown-item': ['helix-select'],
|
|
141
|
+
'helix-headless-editor': ['helix-found'],
|
|
141
142
|
'helix-headless-file-input': ['change', 'helix-before-change', 'helix-reject', 'input'],
|
|
142
143
|
'helix-headless-filter-chip': ['helix-dismiss'],
|
|
143
144
|
'helix-headless-filter-input': [
|
|
@@ -154,6 +155,7 @@ registerElementEvents({
|
|
|
154
155
|
'toggle',
|
|
155
156
|
],
|
|
156
157
|
'helix-headless-filter-menu': ['helix-facet'],
|
|
158
|
+
'helix-headless-find': ['helix-before-close', 'helix-before-open', 'helix-found', 'toggle'],
|
|
157
159
|
'helix-headless-graph': [
|
|
158
160
|
'helix-activate',
|
|
159
161
|
'helix-before-activate',
|
|
@@ -378,6 +380,7 @@ registerElementEvents({
|
|
|
378
380
|
'helix-headless-tag-group': ['change', 'helix-before-change', 'helix-dismiss'],
|
|
379
381
|
'helix-headless-terminal': [
|
|
380
382
|
'helix-copy',
|
|
383
|
+
'helix-found',
|
|
381
384
|
'helix-terminal-bell',
|
|
382
385
|
'helix-terminal-input',
|
|
383
386
|
'helix-terminal-link',
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './root/find-root.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './root/find-root.js';
|
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
import { type Finder, type FindResult, HelixElement } from '@fusion.dev/helix-core';
|
|
2
|
+
import { nothing, type PropertyValues, type TemplateResult } from 'lit';
|
|
3
|
+
import '../../button/index.js';
|
|
4
|
+
import '../../icon-button/index.js';
|
|
5
|
+
import '../../toolbar/index.js';
|
|
6
|
+
export type { FindDirection, Finder, FindQuery, FindResult } from '@fusion.dev/helix-core';
|
|
7
|
+
/** What `attach` returns: how a finder reports a search it finished later, and lets go of Find. */
|
|
8
|
+
export interface FindSink {
|
|
9
|
+
/** Takes the finder's marks away, and Find goes back to searching what `for` names. */
|
|
10
|
+
detach(): void;
|
|
11
|
+
/** Reports where a search stands, for a finder whose `find` returned nothing and counted later. */
|
|
12
|
+
found(result: FindResult): void;
|
|
13
|
+
}
|
|
14
|
+
/** The options a bar can show, in the order it shows them. */
|
|
15
|
+
export type FindOption = 'match-case' | 'regex' | 'whole-word';
|
|
16
|
+
declare const HelixHeadlessFind_base: (new (...args: any[]) => import("@fusion.dev/helix-core").MixinControllerOpenInterface) & typeof HelixElement;
|
|
17
|
+
/**
|
|
18
|
+
* @summary A bar that finds words in content and moves among the matches.
|
|
19
|
+
*
|
|
20
|
+
* @description
|
|
21
|
+
* Searches the content `for` names, by id, and marks every match, with the
|
|
22
|
+
* current one marked apart. The count says which match is current and how many
|
|
23
|
+
* there are. Find opens with Command+F, or Control+F on Windows and Linux,
|
|
24
|
+
* while the reader is in that content or in the bar. Everywhere else on the
|
|
25
|
+
* page, the key opens the browser's own find. `shortcut` changes the key, and
|
|
26
|
+
* empty turns it off.
|
|
27
|
+
*
|
|
28
|
+
* The match case, whole word, and regular expression options are drawn in the
|
|
29
|
+
* bar. `options` names the ones it draws. Text that is not shown is not
|
|
30
|
+
* searched, nor text under `inert` or `aria-hidden="true"`, nor what `skip`
|
|
31
|
+
* matches. Text under `hidden="until-found"` and in a closed `<details>` is
|
|
32
|
+
* searched, and opened when its match becomes current, as the browser's find
|
|
33
|
+
* opens it: an Accordion section opens. A match is scrolled into the middle of
|
|
34
|
+
* what scrolls it unless it is already in sight. While Find is open, a change
|
|
35
|
+
* to the content searches again once the content is still.
|
|
36
|
+
*
|
|
37
|
+
* Content drawn some other way, such as a terminal's grid, an editor's
|
|
38
|
+
* document, or rows of a list that are not all in the page, is searched by a
|
|
39
|
+
* finder the page attaches with `attach(finder)`. Terminal and Code Editor
|
|
40
|
+
* draw a Find of their own, which searches through their renderer. Find offers
|
|
41
|
+
* replacing to a finder that can replace, unless `readonly` is set.
|
|
42
|
+
*
|
|
43
|
+
* The bar is a search landmark named by `label`. The count is said in a live
|
|
44
|
+
* region as it changes.
|
|
45
|
+
*
|
|
46
|
+
* **Keyboard.** In the field, Enter moves to the next match and Shift+Enter to
|
|
47
|
+
* the previous one. Escape closes the bar from anywhere in it, and focus
|
|
48
|
+
* returns to where it was before the bar opened. The find key pressed again
|
|
49
|
+
* moves focus to the field and selects what it holds. In the replace field,
|
|
50
|
+
* Enter replaces the current match, and Command+Enter or Control+Enter
|
|
51
|
+
* replaces every match.
|
|
52
|
+
*
|
|
53
|
+
* @since 0.220.0
|
|
54
|
+
* @status experimental
|
|
55
|
+
* @category navigation
|
|
56
|
+
* @documentation https://fusion.dev/helix/components/find
|
|
57
|
+
*
|
|
58
|
+
* @slot actions - Controls of your own in the bar's toolbar, between its options and the buttons that move between matches.
|
|
59
|
+
* @slot close-icon - Replaces the glyph inside the close button.
|
|
60
|
+
* @slot match-case-icon - Replaces the glyph inside the match case button.
|
|
61
|
+
* @slot next-icon - Replaces the glyph inside the next match button.
|
|
62
|
+
* @slot previous-icon - Replaces the glyph inside the previous match button.
|
|
63
|
+
* @slot regex-icon - Replaces the glyph inside the regular expression button.
|
|
64
|
+
* @slot whole-word-icon - Replaces the glyph inside the whole word button.
|
|
65
|
+
*
|
|
66
|
+
* @event {HelixBeforeCloseEvent} helix-before-close - Fired before the bar closes, and cancelable.
|
|
67
|
+
* @event {HelixBeforeOpenEvent} helix-before-open - Fired before the bar opens, and cancelable. Canceling it keeps the bar closed.
|
|
68
|
+
* @event {HelixFoundEvent} helix-found - Sent after each search and each move among the matches, with `count` and the current match's `index`, counting from 0, or -1 for none.
|
|
69
|
+
* @event {ToggleEvent} toggle - Sent when the bar opens or closes, with `newState` and `oldState`.
|
|
70
|
+
*
|
|
71
|
+
* @csspart actions - The `actions` slot, in the toolbar.
|
|
72
|
+
* @csspart bar - The bar, a search landmark: the field, the count, the toolbar, and the replace row while it shows.
|
|
73
|
+
* @csspart close - The button that closes the bar.
|
|
74
|
+
* @csspart close-button - The close button's inner button.
|
|
75
|
+
* @csspart close-live - The close button's live region, which speaks while the button is pending.
|
|
76
|
+
* @csspart close-spinner - The ring the close button turns while it is pending.
|
|
77
|
+
* @csspart close-text - The box the close button's icon sits in.
|
|
78
|
+
* @csspart controls - The toolbar: the options, your actions, and the buttons that move between matches and close the bar.
|
|
79
|
+
* @csspart controls-toolbar - The box inside the toolbar that lays its buttons out.
|
|
80
|
+
* @csspart count - Which match is current and how many there are, such as "3 of 12 matches".
|
|
81
|
+
* @csspart field - The search field.
|
|
82
|
+
* @csspart live - The live region that says the count as it changes.
|
|
83
|
+
* @csspart match-case - The button that matches case. Pressed while it does.
|
|
84
|
+
* @csspart match-case-button - The match case button's inner button.
|
|
85
|
+
* @csspart match-case-live - The match case button's live region, which speaks while the button is pending.
|
|
86
|
+
* @csspart match-case-pressed - The match case button while case has to match, beside `match-case`.
|
|
87
|
+
* @csspart match-case-spinner - The ring the match case button turns while it is pending.
|
|
88
|
+
* @csspart match-case-text - The box the match case button's icon sits in.
|
|
89
|
+
* @csspart next - The button that moves to the next match.
|
|
90
|
+
* @csspart next-button - The next match button's inner button.
|
|
91
|
+
* @csspart next-live - The next match button's live region, which speaks while the button is pending.
|
|
92
|
+
* @csspart next-spinner - The ring the next match button turns while it is pending.
|
|
93
|
+
* @csspart next-text - The box the next match button's icon sits in.
|
|
94
|
+
* @csspart previous - The button that moves to the previous match.
|
|
95
|
+
* @csspart previous-button - The previous match button's inner button.
|
|
96
|
+
* @csspart previous-live - The previous match button's live region, which speaks while the button is pending.
|
|
97
|
+
* @csspart previous-spinner - The ring the previous match button turns while it is pending.
|
|
98
|
+
* @csspart previous-text - The box the previous match button's icon sits in.
|
|
99
|
+
* @csspart regex - The button that reads the field as a regular expression. Pressed while it does.
|
|
100
|
+
* @csspart regex-button - The regular expression button's inner button.
|
|
101
|
+
* @csspart regex-live - The regular expression button's live region, which speaks while the button is pending.
|
|
102
|
+
* @csspart regex-pressed - The regular expression button while the field reads as one, beside `regex`.
|
|
103
|
+
* @csspart regex-spinner - The ring the regular expression button turns while it is pending.
|
|
104
|
+
* @csspart regex-text - The box the regular expression button's icon sits in.
|
|
105
|
+
* @csspart replace - The button that replaces the current match.
|
|
106
|
+
* @csspart replace-all - The button that replaces every match.
|
|
107
|
+
* @csspart replace-all-button - The Replace all button's inner button.
|
|
108
|
+
* @csspart replace-all-live - The Replace all button's live region, which speaks while the button is pending.
|
|
109
|
+
* @csspart replace-all-spinner - The ring the Replace all button turns while it is pending.
|
|
110
|
+
* @csspart replace-all-text - The box the Replace all button's words sit in.
|
|
111
|
+
* @csspart replace-button - The Replace button's inner button.
|
|
112
|
+
* @csspart replace-field - The field the replacement is typed in.
|
|
113
|
+
* @csspart replace-live - The Replace button's live region, which speaks while the button is pending.
|
|
114
|
+
* @csspart replace-spinner - The ring the Replace button turns while it is pending.
|
|
115
|
+
* @csspart replace-text - The box the Replace button's words sit in.
|
|
116
|
+
* @csspart replace-toggle - The button that shows the replace row. Expanded while it shows.
|
|
117
|
+
* @csspart replace-toggle-button - The replace toggle's inner button.
|
|
118
|
+
* @csspart replace-toggle-live - The replace toggle's live region, which speaks while the button is pending.
|
|
119
|
+
* @csspart replace-toggle-spinner - The ring the replace toggle turns while it is pending.
|
|
120
|
+
* @csspart replace-toggle-text - The box the replace toggle's icon sits in.
|
|
121
|
+
* @csspart whole-word - The button that matches whole words only. Pressed while it does.
|
|
122
|
+
* @csspart whole-word-button - The whole word button's inner button.
|
|
123
|
+
* @csspart whole-word-live - The whole word button's live region, which speaks while the button is pending.
|
|
124
|
+
* @csspart whole-word-pressed - The whole word button while only whole words match, beside `whole-word`.
|
|
125
|
+
* @csspart whole-word-spinner - The ring the whole word button turns while it is pending.
|
|
126
|
+
* @csspart whole-word-text - The box the whole word button's icon sits in.
|
|
127
|
+
*
|
|
128
|
+
* @cssstate open - While the bar is open.
|
|
129
|
+
* @cssstate replace-open - While the replace row shows.
|
|
130
|
+
*/
|
|
131
|
+
export declare class HelixHeadlessFind extends HelixHeadlessFind_base {
|
|
132
|
+
protected static markRules: string[];
|
|
133
|
+
/**
|
|
134
|
+
* The key this family's words are registered under, its styled tag:
|
|
135
|
+
* `registerWords('de', { 'helix-find': { label: 'Suchen' } })`.
|
|
136
|
+
*/
|
|
137
|
+
static words: string;
|
|
138
|
+
/** The close button's label. */
|
|
139
|
+
closeLabel: string;
|
|
140
|
+
/** The name of the bar's toolbar, read by screen readers. */
|
|
141
|
+
controlsLabel: string;
|
|
142
|
+
/**
|
|
143
|
+
* The id of the element whose text Find searches, in the same tree as Find.
|
|
144
|
+
* With a finder attached, it names only where the find key opens the bar.
|
|
145
|
+
*/
|
|
146
|
+
for: string;
|
|
147
|
+
/** What the count says when the regular expression cannot be read. */
|
|
148
|
+
invalidLabel: string;
|
|
149
|
+
/** The field's name and placeholder, and the name of the bar. */
|
|
150
|
+
label: string;
|
|
151
|
+
/** Whether case has to match, so "Error" does not find "error". The reader turns it on and off from the bar. */
|
|
152
|
+
matchCase: boolean;
|
|
153
|
+
/** The match case button's label. */
|
|
154
|
+
matchCaseLabel: string;
|
|
155
|
+
/**
|
|
156
|
+
* What the count says of the matches. `{index}` is the current match,
|
|
157
|
+
* counting from 1, and `{count}` how many there are.
|
|
158
|
+
*/
|
|
159
|
+
matchesLabel: string;
|
|
160
|
+
/** The next match button's label. */
|
|
161
|
+
nextLabel: string;
|
|
162
|
+
/**
|
|
163
|
+
* Which options the bar draws, as a list of `match-case`, `whole-word`, and
|
|
164
|
+
* `regex`, or `none`. They are always drawn in that order.
|
|
165
|
+
*/
|
|
166
|
+
options: string;
|
|
167
|
+
/** The previous match button's label. */
|
|
168
|
+
previousLabel: string;
|
|
169
|
+
/** What the field holds: what the reader typed, or what you set. */
|
|
170
|
+
query: string;
|
|
171
|
+
/** Hides replacing, for content the reader cannot change. The attribute is `readonly`, the platform's spelling. */
|
|
172
|
+
readOnly: boolean;
|
|
173
|
+
/** Whether the field reads as a regular expression, in JavaScript's syntax. The reader turns it on and off from the bar. */
|
|
174
|
+
regex: boolean;
|
|
175
|
+
/** The regular expression button's label. */
|
|
176
|
+
regexLabel: string;
|
|
177
|
+
/** The Replace all button's words. */
|
|
178
|
+
replaceAllLabel: string;
|
|
179
|
+
/** The replace field's name and placeholder. */
|
|
180
|
+
replaceFieldLabel: string;
|
|
181
|
+
/** The Replace button's words. */
|
|
182
|
+
replaceLabel: string;
|
|
183
|
+
/** What the replace field holds, which Replace puts in place of a match. */
|
|
184
|
+
replacement: string;
|
|
185
|
+
/** The label of the button that shows the replace row. */
|
|
186
|
+
replaceToggleLabel: string;
|
|
187
|
+
/**
|
|
188
|
+
* The key that opens the bar, as a chord such as `mod+f`, where `mod` is
|
|
189
|
+
* Command on an Apple keyboard and Control elsewhere. Empty turns the key
|
|
190
|
+
* off, as for a bar the page opens itself.
|
|
191
|
+
*/
|
|
192
|
+
shortcut: string;
|
|
193
|
+
/**
|
|
194
|
+
* Elements inside the content whose text is not searched, as a selector,
|
|
195
|
+
* such as line numbers or the buttons beside each message.
|
|
196
|
+
*/
|
|
197
|
+
skip: string;
|
|
198
|
+
/** Whether only whole words match. The reader turns it on and off from the bar. */
|
|
199
|
+
wholeWord: boolean;
|
|
200
|
+
/** The whole word button's label. */
|
|
201
|
+
wholeWordLabel: string;
|
|
202
|
+
/** Where the search stands, or nothing before one. */
|
|
203
|
+
private result;
|
|
204
|
+
/** Whether the replace row shows, where the finder can replace. */
|
|
205
|
+
private replaceOpen;
|
|
206
|
+
/** The finder a frame or the page attached, which searches in place of the text finder. */
|
|
207
|
+
private attached;
|
|
208
|
+
/** What the live region says now, and how many times something has been said. */
|
|
209
|
+
private announcement;
|
|
210
|
+
private said;
|
|
211
|
+
/** The text finder over the content `for` names, made for that content and `skip`. */
|
|
212
|
+
private own;
|
|
213
|
+
/** The finder whose marks are drawn, which `end` is sent to. */
|
|
214
|
+
private marking;
|
|
215
|
+
/** Where focus was before the bar opened, which it returns to as the bar closes. */
|
|
216
|
+
private returnTo;
|
|
217
|
+
/** Whether the reader last pressed or focused inside the content or the bar, where the find key is Find's. */
|
|
218
|
+
private inside;
|
|
219
|
+
/**
|
|
220
|
+
* Searches with `finder` in place of the text finder, and returns how it
|
|
221
|
+
* reports a search it finishes later. Attaching another lets go of this one.
|
|
222
|
+
*/
|
|
223
|
+
attach(finder: Finder): FindSink;
|
|
224
|
+
/**
|
|
225
|
+
* Opens the bar and puts focus in its field, with what it holds selected.
|
|
226
|
+
* Text selected in the content, on one line, becomes the search.
|
|
227
|
+
*/
|
|
228
|
+
show(): Promise<void>;
|
|
229
|
+
/** Closes the bar and takes the marks away. Focus in the bar returns to where it was before the bar opened. */
|
|
230
|
+
hide(): void;
|
|
231
|
+
/** Moves to the next match, after the last one to the first. */
|
|
232
|
+
next(): void;
|
|
233
|
+
/** Moves to the previous match, before the first one to the last. */
|
|
234
|
+
previous(): void;
|
|
235
|
+
/** Searches again, staying on the current match where it still matches, for content changed in a way Find cannot see. */
|
|
236
|
+
refresh(): void;
|
|
237
|
+
connectedCallback(): void;
|
|
238
|
+
disconnectedCallback(): void;
|
|
239
|
+
protected firstUpdated(changed: PropertyValues): void;
|
|
240
|
+
protected willUpdate(changed: PropertyValues): void;
|
|
241
|
+
protected updated(changed: PropertyValues): void;
|
|
242
|
+
/** The element `for` names, or nothing. */
|
|
243
|
+
private get target();
|
|
244
|
+
/** The finder that searches now: the one attached, or the text finder over what `for` names. */
|
|
245
|
+
private get finder();
|
|
246
|
+
/** The query as a finder reads it. */
|
|
247
|
+
private get findQuery();
|
|
248
|
+
/** Whether the field can be searched for: empty, or a pattern that reads. */
|
|
249
|
+
private get readable();
|
|
250
|
+
/**
|
|
251
|
+
* Whether the finder can replace and the content can be changed. Never
|
|
252
|
+
* while hydrating, since a server has no finder: the update after hydration
|
|
253
|
+
* draws the replace toggle.
|
|
254
|
+
*/
|
|
255
|
+
private get replaceable();
|
|
256
|
+
/** Whether the replace row shows. */
|
|
257
|
+
private get replacing();
|
|
258
|
+
/**
|
|
259
|
+
* The count, as the reader reads it, and empty before a search. The
|
|
260
|
+
* template writes `nothing` for empty: Lit hydrating a server's empty string
|
|
261
|
+
* has no text node to change, and writes the next count into the part's
|
|
262
|
+
* closing marker, where nothing shows.
|
|
263
|
+
*/
|
|
264
|
+
private get countText();
|
|
265
|
+
/** Whether the bar draws an option. */
|
|
266
|
+
private offers;
|
|
267
|
+
/** The text selected in the content, where it lies on one line, or nothing. */
|
|
268
|
+
private selectedText;
|
|
269
|
+
/** Searches with the finder, and says where the search stands. */
|
|
270
|
+
private search;
|
|
271
|
+
/** Takes the last search's marks away, where it drew any. */
|
|
272
|
+
private endSearch;
|
|
273
|
+
/** Where a search stands, drawn in the count, said, and sent as `helix-found`. Nothing while the bar is closed. */
|
|
274
|
+
private report;
|
|
275
|
+
/** Replaces the current match, or every match. */
|
|
276
|
+
private replace;
|
|
277
|
+
/** Says something in the live region, once, even where it is what was said last. */
|
|
278
|
+
private say;
|
|
279
|
+
/** Whether an event's path runs through the bar or the content. */
|
|
280
|
+
private within;
|
|
281
|
+
/** Where the reader last pressed or put focus, which decides whose the find key is. */
|
|
282
|
+
private readonly handleWhere;
|
|
283
|
+
/**
|
|
284
|
+
* The find key, heard on the document before anything else, and taken only
|
|
285
|
+
* where the reader is in the content or the bar, so the key opens the
|
|
286
|
+
* browser's own find everywhere else.
|
|
287
|
+
*/
|
|
288
|
+
private readonly handleShortcut;
|
|
289
|
+
private readonly handleInput;
|
|
290
|
+
private readonly handleReplaceInput;
|
|
291
|
+
/** Escape closes the bar from anywhere in it, and Enter moves between matches or replaces. */
|
|
292
|
+
private readonly handleKeys;
|
|
293
|
+
/** Turns one of the options on or off, which searches again with it. */
|
|
294
|
+
private toggleOption;
|
|
295
|
+
/** The button that shows the replace row, drawn where the finder can replace. */
|
|
296
|
+
protected renderReplaceToggle(): TemplateResult | typeof nothing;
|
|
297
|
+
/** The options the bar draws, each pressed while it applies. */
|
|
298
|
+
protected renderOptionButtons(): TemplateResult;
|
|
299
|
+
/**
|
|
300
|
+
* The toolbar after the field: the options, the page's actions, and the
|
|
301
|
+
* buttons that move between matches and close the bar. The field stands
|
|
302
|
+
* outside it, because a toolbar takes the arrows and a text field needs
|
|
303
|
+
* them.
|
|
304
|
+
*/
|
|
305
|
+
protected renderControls(): TemplateResult;
|
|
306
|
+
/** The replace row: its field, then Replace and Replace all. */
|
|
307
|
+
protected renderReplace(): TemplateResult | typeof nothing;
|
|
308
|
+
protected render(): TemplateResult;
|
|
309
|
+
}
|
|
310
|
+
declare global {
|
|
311
|
+
interface HTMLElementTagNameMap {
|
|
312
|
+
'helix-headless-find': HelixHeadlessFind;
|
|
313
|
+
}
|
|
314
|
+
}
|