@typesafe-html5/typescript 0.2.58
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/README.md +166 -0
- package/block/article/article.ts +506 -0
- package/block/aside/aside.ts +522 -0
- package/block/audio/audio.ts +506 -0
- package/block/blockquote/blockquote.ts +522 -0
- package/block/body/body.ts +458 -0
- package/block/canvas/canvas.ts +538 -0
- package/block/caption/caption.ts +506 -0
- package/block/colgroup/colgroup.ts +154 -0
- package/block/datalist/datalist.ts +506 -0
- package/block/dd/dd.ts +506 -0
- package/block/del/del.ts +538 -0
- package/block/details/details.ts +586 -0
- package/block/dialog/dialog.ts +586 -0
- package/block/div/div.ts +586 -0
- package/block/dl/dl.ts +506 -0
- package/block/dt/dt.ts +506 -0
- package/block/embed/embed.ts +317 -0
- package/block/fieldset/fieldset.ts +570 -0
- package/block/figcaption/figcaption.ts +506 -0
- package/block/figure/figure.ts +506 -0
- package/block/footer/footer.ts +522 -0
- package/block/form/form.ts +490 -0
- package/block/h1/h1.ts +490 -0
- package/block/h2/h2.ts +490 -0
- package/block/h3/h3.ts +490 -0
- package/block/h4/h4.ts +490 -0
- package/block/h5/h5.ts +490 -0
- package/block/h6/h6.ts +490 -0
- package/block/header/header.ts +298 -0
- package/block/hgroup/hgroup.ts +506 -0
- package/block/hr/hr.ts +189 -0
- package/block/html/html.ts +106 -0
- package/block/iframe/iframe.ts +538 -0
- package/block/ins/ins.ts +538 -0
- package/block/legend/legend.ts +506 -0
- package/block/li/li.ts +602 -0
- package/block/main/main.ts +538 -0
- package/block/map/map.ts +522 -0
- package/block/menu/menu.ts +554 -0
- package/block/nav/nav.ts +554 -0
- package/block/noscript/noscript.ts +282 -0
- package/block/object/object.ts +618 -0
- package/block/ol/ol.ts +618 -0
- package/block/optgroup/optgroup.ts +522 -0
- package/block/option/option.ts +618 -0
- package/block/p/p.ts +506 -0
- package/block/picture/picture.ts +506 -0
- package/block/pre/pre.ts +506 -0
- package/block/section/section.ts +538 -0
- package/block/summary/summary.ts +570 -0
- package/block/table/table.ts +570 -0
- package/block/tbody/tbody.ts +506 -0
- package/block/td/td.ts +666 -0
- package/block/template/template.ts +506 -0
- package/block/tfoot/tfoot.ts +506 -0
- package/block/th/th.ts +682 -0
- package/block/thead/thead.ts +506 -0
- package/block/tr/tr.ts +682 -0
- package/block/ul/ul.ts +570 -0
- package/block/video/video.ts +666 -0
- package/index.ts +126 -0
- package/inline/a/a.ts +682 -0
- package/inline/abbr/abbr.ts +490 -0
- package/inline/address/address.ts +474 -0
- package/inline/b/b.ts +506 -0
- package/inline/bdi/bdi.ts +490 -0
- package/inline/bdo/bdo.ts +506 -0
- package/inline/button/button.ts +826 -0
- package/inline/cite/cite.ts +506 -0
- package/inline/code/code.ts +506 -0
- package/inline/data/data.ts +522 -0
- package/inline/dfn/dfn.ts +506 -0
- package/inline/em/em.ts +506 -0
- package/inline/i/i.ts +506 -0
- package/inline/img/img.ts +445 -0
- package/inline/input/input.ts +1197 -0
- package/inline/kbd/kbd.ts +506 -0
- package/inline/label/label.ts +538 -0
- package/inline/mark/mark.ts +506 -0
- package/inline/meter/meter.ts +554 -0
- package/inline/output/output.ts +426 -0
- package/inline/progress/progress.ts +490 -0
- package/inline/q/q.ts +522 -0
- package/inline/rp/rp.ts +506 -0
- package/inline/rt/rt.ts +506 -0
- package/inline/ruby/ruby.ts +506 -0
- package/inline/s/s.ts +506 -0
- package/inline/samp/samp.ts +506 -0
- package/inline/select/select.ts +810 -0
- package/inline/slot/slot.ts +522 -0
- package/inline/small/small.ts +506 -0
- package/inline/span/span.ts +506 -0
- package/inline/strong/strong.ts +506 -0
- package/inline/sub/sub.ts +506 -0
- package/inline/sup/sup.ts +506 -0
- package/inline/svg/svg.ts +618 -0
- package/inline/textarea/textarea.ts +874 -0
- package/inline/time/time.ts +522 -0
- package/inline/u/u.ts +506 -0
- package/inline/var/var.ts +506 -0
- package/package.json +32 -0
- package/tsconfig.json +26 -0
- package/void/area/area.ts +397 -0
- package/void/base/base.ts +61 -0
- package/void/br/br.ts +77 -0
- package/void/col/col.ts +77 -0
- package/void/head/head.ts +58 -0
- package/void/link/link.ts +253 -0
- package/void/meta/meta.ts +157 -0
- package/void/param/param.ts +93 -0
- package/void/script/script.ts +250 -0
- package/void/source/source.ts +125 -0
- package/void/style/style.ts +154 -0
- package/void/title/title.ts +58 -0
- package/void/track/track.ts +157 -0
- package/void/wbr/wbr.ts +61 -0
package/inline/a/a.ts
ADDED
|
@@ -0,0 +1,682 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* THIS FILE IS AUTOGENERATED. DO NOT EDIT IT.
|
|
3
|
+
*
|
|
4
|
+
* @generated December 28, 2025 12:26:31
|
|
5
|
+
* @component A
|
|
6
|
+
* @description
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
export interface AProps {
|
|
10
|
+
/**
|
|
11
|
+
* Child content or elements
|
|
12
|
+
*/
|
|
13
|
+
children?: string | HTMLElement | (string | HTMLElement)[];
|
|
14
|
+
/**
|
|
15
|
+
* specifies a shortcut key (or keys) to activate or focus an element
|
|
16
|
+
*/
|
|
17
|
+
accesskey?: string | null | undefined;
|
|
18
|
+
/**
|
|
19
|
+
* Indicates whether assistive technologies should present the entire region as a whole when changes occur.
|
|
20
|
+
*/
|
|
21
|
+
'aria-atomic'?: 'false' | 'true' | boolean | null | undefined;
|
|
22
|
+
/**
|
|
23
|
+
* The aria-busy attribute is used to indicate whether an element is currently busy or not.
|
|
24
|
+
*/
|
|
25
|
+
'aria-busy'?: 'true' | 'false' | boolean | null | undefined;
|
|
26
|
+
/**
|
|
27
|
+
* Identifies the element(s) whose contents or presence are controlled by this element. Value is a list of IDs separated by a space
|
|
28
|
+
*/
|
|
29
|
+
'aria-controls'?: string | null | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* Indicates the current item within a container or set of related elements.
|
|
32
|
+
*/
|
|
33
|
+
'aria-current'?: 'false' | 'page' | 'step' | 'location' | 'date' | 'time' | 'true' | boolean | null | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* Identifies the element(s) that describes the object. Value is a list of IDs separated by a space
|
|
36
|
+
*/
|
|
37
|
+
'aria-describedby'?: string | null | undefined;
|
|
38
|
+
/**
|
|
39
|
+
* References an element that provides additional details about the current element.
|
|
40
|
+
*/
|
|
41
|
+
'aria-details'?: string | null | undefined;
|
|
42
|
+
/**
|
|
43
|
+
* Indicates that the element is perceivable but disabled, so it is not editable or otherwise operable.
|
|
44
|
+
*/
|
|
45
|
+
'aria-disabled'?: 'false' | 'true' | boolean | null | undefined;
|
|
46
|
+
/**
|
|
47
|
+
* Indicates whether a collapsible UI element is expanded (true) or collapsed (false).
|
|
48
|
+
*/
|
|
49
|
+
'aria-expanded'?: 'false' | 'true' | 'undefined' | boolean | null | undefined;
|
|
50
|
+
/**
|
|
51
|
+
* Indicates that an element has an associated popup menu, listbox, tree, grid, or dialog.
|
|
52
|
+
*/
|
|
53
|
+
'aria-haspopup'?: 'false' | 'true' | 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog' | boolean | null | undefined;
|
|
54
|
+
/**
|
|
55
|
+
* Defines keyboard shortcuts available for the element.
|
|
56
|
+
*/
|
|
57
|
+
'aria-keyshortcuts'?: string | null | undefined;
|
|
58
|
+
/**
|
|
59
|
+
* Defines a string value that labels the current element for assistive technologies.
|
|
60
|
+
*/
|
|
61
|
+
'aria-label'?: string | null | undefined;
|
|
62
|
+
/**
|
|
63
|
+
* Identifies the element(s) that labels the current element. Value is a list of IDs separated by a space
|
|
64
|
+
*/
|
|
65
|
+
'aria-labelledby'?: string | null | undefined;
|
|
66
|
+
/**
|
|
67
|
+
* Defines how updates to the element should be announced to screen readers.
|
|
68
|
+
*/
|
|
69
|
+
'aria-live'?: 'off' | 'polite' | 'assertive' | null | undefined;
|
|
70
|
+
/**
|
|
71
|
+
* Indicates whether a toggle button is pressed (true, false, or mixed).
|
|
72
|
+
*/
|
|
73
|
+
'aria-pressed'?: 'false' | 'true' | 'mixed' | 'undefined' | boolean | null | undefined;
|
|
74
|
+
/**
|
|
75
|
+
* Indicates what content changes should be announced in a live region.
|
|
76
|
+
*/
|
|
77
|
+
'aria-relevant'?: 'additions' | 'removals' | 'text' | 'all' | 'additions text' | null | undefined;
|
|
78
|
+
/**
|
|
79
|
+
* Provides a human-readable custom role description for assistive technologies.
|
|
80
|
+
*/
|
|
81
|
+
'aria-roledescription'?: string | null | undefined;
|
|
82
|
+
/**
|
|
83
|
+
* Represents the autocapitalize behavior of the element
|
|
84
|
+
*/
|
|
85
|
+
autocapitalize?: 'none' | 'sentences' | 'words' | 'characters' | null | undefined;
|
|
86
|
+
/**
|
|
87
|
+
* Indicates whether the element is hidden
|
|
88
|
+
*/
|
|
89
|
+
autofocus?: boolean | null | undefined;
|
|
90
|
+
/**
|
|
91
|
+
* Indicates whether the element can be edited in place
|
|
92
|
+
*/
|
|
93
|
+
contenteditable?: 'true' | 'false' | 'inherit' | boolean | null | undefined;
|
|
94
|
+
/**
|
|
95
|
+
* Represents the text direction of the element
|
|
96
|
+
*/
|
|
97
|
+
dir?: 'ltr' | 'rtl' | 'auto' | null | undefined;
|
|
98
|
+
/**
|
|
99
|
+
* Indicates that the linked content should be downloaded rather than displayed.
|
|
100
|
+
*/
|
|
101
|
+
download?: string | null | undefined;
|
|
102
|
+
/**
|
|
103
|
+
* Indicates whether the element is draggable
|
|
104
|
+
*/
|
|
105
|
+
draggable?: boolean | null | undefined;
|
|
106
|
+
/**
|
|
107
|
+
* Indicates whether the element is hidden
|
|
108
|
+
*/
|
|
109
|
+
hidden?: boolean | null | undefined;
|
|
110
|
+
/**
|
|
111
|
+
* Specifies the URL of the linked resource. Special protocols such as mailto: or tel: can be used.
|
|
112
|
+
*/
|
|
113
|
+
href?: string | null | undefined;
|
|
114
|
+
/**
|
|
115
|
+
* Specifies the language of the linked resource.
|
|
116
|
+
*/
|
|
117
|
+
hreflang?: string | null | undefined;
|
|
118
|
+
/**
|
|
119
|
+
* used to specify the data entry mode for an input. It helps guide on-screen keyboards (especially on mobile devices) to show the appropriate layout for the expected input type
|
|
120
|
+
*/
|
|
121
|
+
inputmode?: 'none' | 'text' | 'decimal' | 'numeric' | 'email' | 'tel' | 'url' | 'search' | null | undefined;
|
|
122
|
+
/**
|
|
123
|
+
* Specifies the primary language for the element's content
|
|
124
|
+
*/
|
|
125
|
+
lang?: string | null | undefined;
|
|
126
|
+
/**
|
|
127
|
+
*
|
|
128
|
+
*/
|
|
129
|
+
popover?: 'auto' | 'hint' | 'manual' | null | undefined;
|
|
130
|
+
/**
|
|
131
|
+
* Specifies the relationship between the current document and the linked document.
|
|
132
|
+
*/
|
|
133
|
+
rel?: 'alternate' | 'author' | 'bookmark' | 'canonical' | 'help' | 'icon' | 'license' | 'next' | 'nofollow' | 'noreferrer' | 'prefetch' | 'prev' | 'search' | 'stylesheet' | 'tag' | null | undefined;
|
|
134
|
+
/**
|
|
135
|
+
* Defines the semantic purpose of an element for assistive technologies.
|
|
136
|
+
*/
|
|
137
|
+
role?: 'button' | 'dialog' | 'link' | 'listitem' | 'menuitem' | 'none' | 'tooltip' | null | undefined;
|
|
138
|
+
/**
|
|
139
|
+
* Represents a slot in a shadow DOM
|
|
140
|
+
*/
|
|
141
|
+
slot?: string | null | undefined;
|
|
142
|
+
/**
|
|
143
|
+
* Represents the spellchecking behavior of the element
|
|
144
|
+
*/
|
|
145
|
+
spellcheck?: 'true' | 'false' | boolean | null | undefined;
|
|
146
|
+
/**
|
|
147
|
+
* Represents the CSS inline style of the element
|
|
148
|
+
*/
|
|
149
|
+
style?: string | null | undefined;
|
|
150
|
+
/**
|
|
151
|
+
* Represents a tab order of the element
|
|
152
|
+
*/
|
|
153
|
+
tabindex?: number | null | undefined;
|
|
154
|
+
/**
|
|
155
|
+
* Specifies where to open the linked document.
|
|
156
|
+
*/
|
|
157
|
+
target?: '_blank' | '_parent' | '_self' | '_top' | string | null | undefined;
|
|
158
|
+
/**
|
|
159
|
+
* Represents a title or tooltip for the element
|
|
160
|
+
*/
|
|
161
|
+
title?: string | null | undefined;
|
|
162
|
+
/**
|
|
163
|
+
* used to tell user agents whether the content should be translated.
|
|
164
|
+
*/
|
|
165
|
+
translate?: 'yes' | 'no' | null | undefined;
|
|
166
|
+
/**
|
|
167
|
+
* Specifies the media type of the linked resource.
|
|
168
|
+
*/
|
|
169
|
+
type?: string | null | undefined;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* A -
|
|
174
|
+
*/
|
|
175
|
+
export class A {
|
|
176
|
+
private element: HTMLElement;
|
|
177
|
+
|
|
178
|
+
constructor(props: AProps = {}) {
|
|
179
|
+
this.element = document.createElement('a');
|
|
180
|
+
this.applyProps(props);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
private applyProps(props: AProps): void {
|
|
184
|
+
if (props.children !== undefined) {
|
|
185
|
+
this.setChildren(props.children);
|
|
186
|
+
}
|
|
187
|
+
if (props.accesskey !== undefined) {
|
|
188
|
+
this.element.setAttribute('accesskey', String(props.accesskey));
|
|
189
|
+
}
|
|
190
|
+
if (props['aria-atomic'] !== undefined) {
|
|
191
|
+
this.setAriaAtomic(props['aria-atomic']);
|
|
192
|
+
}
|
|
193
|
+
if (props['aria-busy'] !== undefined) {
|
|
194
|
+
this.setAriaBusy(props['aria-busy']);
|
|
195
|
+
}
|
|
196
|
+
if (props['aria-controls'] !== undefined) {
|
|
197
|
+
this.element.setAttribute('aria-controls', String(props['aria-controls']));
|
|
198
|
+
}
|
|
199
|
+
if (props['aria-current'] !== undefined) {
|
|
200
|
+
this.setAriaCurrent(props['aria-current']);
|
|
201
|
+
}
|
|
202
|
+
if (props['aria-describedby'] !== undefined) {
|
|
203
|
+
this.element.setAttribute('aria-describedby', String(props['aria-describedby']));
|
|
204
|
+
}
|
|
205
|
+
if (props['aria-details'] !== undefined) {
|
|
206
|
+
this.element.setAttribute('aria-details', String(props['aria-details']));
|
|
207
|
+
}
|
|
208
|
+
if (props['aria-disabled'] !== undefined) {
|
|
209
|
+
this.setAriaDisabled(props['aria-disabled']);
|
|
210
|
+
}
|
|
211
|
+
if (props['aria-expanded'] !== undefined) {
|
|
212
|
+
this.setAriaExpanded(props['aria-expanded']);
|
|
213
|
+
}
|
|
214
|
+
if (props['aria-haspopup'] !== undefined) {
|
|
215
|
+
this.setAriaHaspopup(props['aria-haspopup']);
|
|
216
|
+
}
|
|
217
|
+
if (props['aria-keyshortcuts'] !== undefined) {
|
|
218
|
+
this.element.setAttribute('aria-keyshortcuts', String(props['aria-keyshortcuts']));
|
|
219
|
+
}
|
|
220
|
+
if (props['aria-label'] !== undefined) {
|
|
221
|
+
this.element.setAttribute('aria-label', String(props['aria-label']));
|
|
222
|
+
}
|
|
223
|
+
if (props['aria-labelledby'] !== undefined) {
|
|
224
|
+
this.element.setAttribute('aria-labelledby', String(props['aria-labelledby']));
|
|
225
|
+
}
|
|
226
|
+
if (props['aria-live'] !== undefined) {
|
|
227
|
+
this.setAriaLive(props['aria-live']);
|
|
228
|
+
}
|
|
229
|
+
if (props['aria-pressed'] !== undefined) {
|
|
230
|
+
this.setAriaPressed(props['aria-pressed']);
|
|
231
|
+
}
|
|
232
|
+
if (props['aria-relevant'] !== undefined) {
|
|
233
|
+
this.setAriaRelevant(props['aria-relevant']);
|
|
234
|
+
}
|
|
235
|
+
if (props['aria-roledescription'] !== undefined) {
|
|
236
|
+
this.element.setAttribute('aria-roledescription', String(props['aria-roledescription']));
|
|
237
|
+
}
|
|
238
|
+
if (props.autocapitalize !== undefined) {
|
|
239
|
+
this.setAutocapitalize(props.autocapitalize);
|
|
240
|
+
}
|
|
241
|
+
if (props.autofocus !== undefined) {
|
|
242
|
+
this.element.setAttribute('autofocus', String(props.autofocus));
|
|
243
|
+
}
|
|
244
|
+
if (props.contenteditable !== undefined) {
|
|
245
|
+
this.setContenteditable(props.contenteditable);
|
|
246
|
+
}
|
|
247
|
+
if (props.dir !== undefined) {
|
|
248
|
+
this.setDir(props.dir);
|
|
249
|
+
}
|
|
250
|
+
if (props.download !== undefined) {
|
|
251
|
+
this.element.setAttribute('download', String(props.download));
|
|
252
|
+
}
|
|
253
|
+
if (props.draggable !== undefined) {
|
|
254
|
+
this.element.setAttribute('draggable', String(props.draggable));
|
|
255
|
+
}
|
|
256
|
+
if (props.hidden !== undefined) {
|
|
257
|
+
this.element.setAttribute('hidden', String(props.hidden));
|
|
258
|
+
}
|
|
259
|
+
if (props.href !== undefined) {
|
|
260
|
+
this.element.setAttribute('href', String(props.href));
|
|
261
|
+
}
|
|
262
|
+
if (props.hreflang !== undefined) {
|
|
263
|
+
this.element.setAttribute('hreflang', String(props.hreflang));
|
|
264
|
+
}
|
|
265
|
+
if (props.inputmode !== undefined) {
|
|
266
|
+
this.setInputmode(props.inputmode);
|
|
267
|
+
}
|
|
268
|
+
if (props.lang !== undefined) {
|
|
269
|
+
this.element.setAttribute('lang', String(props.lang));
|
|
270
|
+
}
|
|
271
|
+
if (props.popover !== undefined) {
|
|
272
|
+
this.setPopover(props.popover);
|
|
273
|
+
}
|
|
274
|
+
if (props.rel !== undefined) {
|
|
275
|
+
this.setRel(props.rel);
|
|
276
|
+
}
|
|
277
|
+
if (props.role !== undefined) {
|
|
278
|
+
this.setRole(props.role);
|
|
279
|
+
}
|
|
280
|
+
if (props.slot !== undefined) {
|
|
281
|
+
this.element.setAttribute('slot', String(props.slot));
|
|
282
|
+
}
|
|
283
|
+
if (props.spellcheck !== undefined) {
|
|
284
|
+
this.setSpellcheck(props.spellcheck);
|
|
285
|
+
}
|
|
286
|
+
if (props.style !== undefined) {
|
|
287
|
+
this.element.setAttribute('style', String(props.style));
|
|
288
|
+
}
|
|
289
|
+
if (props.tabindex !== undefined) {
|
|
290
|
+
this.element.setAttribute('tabindex', String(props.tabindex));
|
|
291
|
+
}
|
|
292
|
+
if (props.target !== undefined) {
|
|
293
|
+
this.setTarget(props.target);
|
|
294
|
+
}
|
|
295
|
+
if (props.title !== undefined) {
|
|
296
|
+
this.element.setAttribute('title', String(props.title));
|
|
297
|
+
}
|
|
298
|
+
if (props.translate !== undefined) {
|
|
299
|
+
this.setTranslate(props.translate);
|
|
300
|
+
}
|
|
301
|
+
if (props.type !== undefined) {
|
|
302
|
+
this.element.setAttribute('type', String(props.type));
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
setAccesskey(value: string | null | undefined): this {
|
|
307
|
+
if (value === null || value === undefined) {
|
|
308
|
+
this.element.removeAttribute('accesskey');
|
|
309
|
+
} else {
|
|
310
|
+
this.element.setAttribute('accesskey', String(value));
|
|
311
|
+
}
|
|
312
|
+
return this;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
setAriaAtomic(value: 'false' | 'true' | boolean | null | undefined): this {
|
|
316
|
+
if (value === null || value === undefined) {
|
|
317
|
+
this.element.removeAttribute('aria-atomic');
|
|
318
|
+
} else {
|
|
319
|
+
this.element.setAttribute('aria-atomic', String(value));
|
|
320
|
+
}
|
|
321
|
+
return this;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
setAriaBusy(value: 'true' | 'false' | boolean | null | undefined): this {
|
|
325
|
+
if (value === null || value === undefined) {
|
|
326
|
+
this.element.removeAttribute('aria-busy');
|
|
327
|
+
} else {
|
|
328
|
+
this.element.setAttribute('aria-busy', String(value));
|
|
329
|
+
}
|
|
330
|
+
return this;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
setAriaControls(value: string | null | undefined): this {
|
|
334
|
+
if (value === null || value === undefined) {
|
|
335
|
+
this.element.removeAttribute('aria-controls');
|
|
336
|
+
} else {
|
|
337
|
+
this.element.setAttribute('aria-controls', String(value));
|
|
338
|
+
}
|
|
339
|
+
return this;
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
setAriaCurrent(value: 'false' | 'page' | 'step' | 'location' | 'date' | 'time' | 'true' | boolean | null | undefined): this {
|
|
343
|
+
if (value === null || value === undefined) {
|
|
344
|
+
this.element.removeAttribute('aria-current');
|
|
345
|
+
} else {
|
|
346
|
+
this.element.setAttribute('aria-current', String(value));
|
|
347
|
+
}
|
|
348
|
+
return this;
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
setAriaDescribedby(value: string | null | undefined): this {
|
|
352
|
+
if (value === null || value === undefined) {
|
|
353
|
+
this.element.removeAttribute('aria-describedby');
|
|
354
|
+
} else {
|
|
355
|
+
this.element.setAttribute('aria-describedby', String(value));
|
|
356
|
+
}
|
|
357
|
+
return this;
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
setAriaDetails(value: string | null | undefined): this {
|
|
361
|
+
if (value === null || value === undefined) {
|
|
362
|
+
this.element.removeAttribute('aria-details');
|
|
363
|
+
} else {
|
|
364
|
+
this.element.setAttribute('aria-details', String(value));
|
|
365
|
+
}
|
|
366
|
+
return this;
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
setAriaDisabled(value: 'false' | 'true' | boolean | null | undefined): this {
|
|
370
|
+
if (value === null || value === undefined) {
|
|
371
|
+
this.element.removeAttribute('aria-disabled');
|
|
372
|
+
} else {
|
|
373
|
+
this.element.setAttribute('aria-disabled', String(value));
|
|
374
|
+
}
|
|
375
|
+
return this;
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
setAriaExpanded(value: 'false' | 'true' | 'undefined' | boolean | null | undefined): this {
|
|
379
|
+
if (value === null || value === undefined) {
|
|
380
|
+
this.element.removeAttribute('aria-expanded');
|
|
381
|
+
} else {
|
|
382
|
+
this.element.setAttribute('aria-expanded', String(value));
|
|
383
|
+
}
|
|
384
|
+
return this;
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
setAriaHaspopup(value: 'false' | 'true' | 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog' | boolean | null | undefined): this {
|
|
388
|
+
if (value === null || value === undefined) {
|
|
389
|
+
this.element.removeAttribute('aria-haspopup');
|
|
390
|
+
} else {
|
|
391
|
+
this.element.setAttribute('aria-haspopup', String(value));
|
|
392
|
+
}
|
|
393
|
+
return this;
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
setAriaKeyshortcuts(value: string | null | undefined): this {
|
|
397
|
+
if (value === null || value === undefined) {
|
|
398
|
+
this.element.removeAttribute('aria-keyshortcuts');
|
|
399
|
+
} else {
|
|
400
|
+
this.element.setAttribute('aria-keyshortcuts', String(value));
|
|
401
|
+
}
|
|
402
|
+
return this;
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
setAriaLabel(value: string | null | undefined): this {
|
|
406
|
+
if (value === null || value === undefined) {
|
|
407
|
+
this.element.removeAttribute('aria-label');
|
|
408
|
+
} else {
|
|
409
|
+
this.element.setAttribute('aria-label', String(value));
|
|
410
|
+
}
|
|
411
|
+
return this;
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
setAriaLabelledby(value: string | null | undefined): this {
|
|
415
|
+
if (value === null || value === undefined) {
|
|
416
|
+
this.element.removeAttribute('aria-labelledby');
|
|
417
|
+
} else {
|
|
418
|
+
this.element.setAttribute('aria-labelledby', String(value));
|
|
419
|
+
}
|
|
420
|
+
return this;
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
setAriaLive(value: 'off' | 'polite' | 'assertive' | null | undefined): this {
|
|
424
|
+
if (value === null || value === undefined) {
|
|
425
|
+
this.element.removeAttribute('aria-live');
|
|
426
|
+
} else {
|
|
427
|
+
this.element.setAttribute('aria-live', String(value));
|
|
428
|
+
}
|
|
429
|
+
return this;
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
setAriaPressed(value: 'false' | 'true' | 'mixed' | 'undefined' | boolean | null | undefined): this {
|
|
433
|
+
if (value === null || value === undefined) {
|
|
434
|
+
this.element.removeAttribute('aria-pressed');
|
|
435
|
+
} else {
|
|
436
|
+
this.element.setAttribute('aria-pressed', String(value));
|
|
437
|
+
}
|
|
438
|
+
return this;
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
setAriaRelevant(value: 'additions' | 'removals' | 'text' | 'all' | 'additions text' | null | undefined): this {
|
|
442
|
+
if (value === null || value === undefined) {
|
|
443
|
+
this.element.removeAttribute('aria-relevant');
|
|
444
|
+
} else {
|
|
445
|
+
this.element.setAttribute('aria-relevant', String(value));
|
|
446
|
+
}
|
|
447
|
+
return this;
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
setAriaRoledescription(value: string | null | undefined): this {
|
|
451
|
+
if (value === null || value === undefined) {
|
|
452
|
+
this.element.removeAttribute('aria-roledescription');
|
|
453
|
+
} else {
|
|
454
|
+
this.element.setAttribute('aria-roledescription', String(value));
|
|
455
|
+
}
|
|
456
|
+
return this;
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
setAutocapitalize(value: 'none' | 'sentences' | 'words' | 'characters' | null | undefined): this {
|
|
460
|
+
if (value === null || value === undefined) {
|
|
461
|
+
this.element.removeAttribute('autocapitalize');
|
|
462
|
+
} else {
|
|
463
|
+
this.element.setAttribute('autocapitalize', String(value));
|
|
464
|
+
}
|
|
465
|
+
return this;
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
setAutofocus(value: boolean | null | undefined): this {
|
|
469
|
+
if (value === true) {
|
|
470
|
+
this.element.setAttribute('autofocus', '');
|
|
471
|
+
} else {
|
|
472
|
+
this.element.removeAttribute('autofocus');
|
|
473
|
+
}
|
|
474
|
+
return this;
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
setContenteditable(value: 'true' | 'false' | 'inherit' | boolean | null | undefined): this {
|
|
478
|
+
if (value === null || value === undefined) {
|
|
479
|
+
this.element.removeAttribute('contenteditable');
|
|
480
|
+
} else {
|
|
481
|
+
this.element.setAttribute('contenteditable', String(value));
|
|
482
|
+
}
|
|
483
|
+
return this;
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
setDir(value: 'ltr' | 'rtl' | 'auto' | null | undefined): this {
|
|
487
|
+
if (value === null || value === undefined) {
|
|
488
|
+
this.element.removeAttribute('dir');
|
|
489
|
+
} else {
|
|
490
|
+
this.element.setAttribute('dir', String(value));
|
|
491
|
+
}
|
|
492
|
+
return this;
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
setDownload(value: string | null | undefined): this {
|
|
496
|
+
if (value === null || value === undefined) {
|
|
497
|
+
this.element.removeAttribute('download');
|
|
498
|
+
} else {
|
|
499
|
+
this.element.setAttribute('download', String(value));
|
|
500
|
+
}
|
|
501
|
+
return this;
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
setDraggable(value: boolean | null | undefined): this {
|
|
505
|
+
if (value === true) {
|
|
506
|
+
this.element.setAttribute('draggable', '');
|
|
507
|
+
} else {
|
|
508
|
+
this.element.removeAttribute('draggable');
|
|
509
|
+
}
|
|
510
|
+
return this;
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
setHidden(value: boolean | null | undefined): this {
|
|
514
|
+
if (value === true) {
|
|
515
|
+
this.element.setAttribute('hidden', '');
|
|
516
|
+
} else {
|
|
517
|
+
this.element.removeAttribute('hidden');
|
|
518
|
+
}
|
|
519
|
+
return this;
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
setHref(value: string | null | undefined): this {
|
|
523
|
+
if (value === null || value === undefined) {
|
|
524
|
+
this.element.removeAttribute('href');
|
|
525
|
+
} else {
|
|
526
|
+
this.element.setAttribute('href', String(value));
|
|
527
|
+
}
|
|
528
|
+
return this;
|
|
529
|
+
}
|
|
530
|
+
|
|
531
|
+
setHreflang(value: string | null | undefined): this {
|
|
532
|
+
if (value === null || value === undefined) {
|
|
533
|
+
this.element.removeAttribute('hreflang');
|
|
534
|
+
} else {
|
|
535
|
+
this.element.setAttribute('hreflang', String(value));
|
|
536
|
+
}
|
|
537
|
+
return this;
|
|
538
|
+
}
|
|
539
|
+
|
|
540
|
+
setInputmode(value: 'none' | 'text' | 'decimal' | 'numeric' | 'email' | 'tel' | 'url' | 'search' | null | undefined): this {
|
|
541
|
+
if (value === null || value === undefined) {
|
|
542
|
+
this.element.removeAttribute('inputmode');
|
|
543
|
+
} else {
|
|
544
|
+
this.element.setAttribute('inputmode', String(value));
|
|
545
|
+
}
|
|
546
|
+
return this;
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
setLang(value: string | null | undefined): this {
|
|
550
|
+
if (value === null || value === undefined) {
|
|
551
|
+
this.element.removeAttribute('lang');
|
|
552
|
+
} else {
|
|
553
|
+
this.element.setAttribute('lang', String(value));
|
|
554
|
+
}
|
|
555
|
+
return this;
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
setPopover(value: 'auto' | 'hint' | 'manual' | null | undefined): this {
|
|
559
|
+
if (value === null || value === undefined) {
|
|
560
|
+
this.element.removeAttribute('popover');
|
|
561
|
+
} else {
|
|
562
|
+
this.element.setAttribute('popover', String(value));
|
|
563
|
+
}
|
|
564
|
+
return this;
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
setRel(value: 'alternate' | 'author' | 'bookmark' | 'canonical' | 'help' | 'icon' | 'license' | 'next' | 'nofollow' | 'noreferrer' | 'prefetch' | 'prev' | 'search' | 'stylesheet' | 'tag' | null | undefined): this {
|
|
568
|
+
if (value === null || value === undefined) {
|
|
569
|
+
this.element.removeAttribute('rel');
|
|
570
|
+
} else {
|
|
571
|
+
this.element.setAttribute('rel', String(value));
|
|
572
|
+
}
|
|
573
|
+
return this;
|
|
574
|
+
}
|
|
575
|
+
|
|
576
|
+
setRole(value: 'button' | 'dialog' | 'link' | 'listitem' | 'menuitem' | 'none' | 'tooltip' | null | undefined): this {
|
|
577
|
+
if (value === null || value === undefined) {
|
|
578
|
+
this.element.removeAttribute('role');
|
|
579
|
+
} else {
|
|
580
|
+
this.element.setAttribute('role', String(value));
|
|
581
|
+
}
|
|
582
|
+
return this;
|
|
583
|
+
}
|
|
584
|
+
|
|
585
|
+
setSlot(value: string | null | undefined): this {
|
|
586
|
+
if (value === null || value === undefined) {
|
|
587
|
+
this.element.removeAttribute('slot');
|
|
588
|
+
} else {
|
|
589
|
+
this.element.setAttribute('slot', String(value));
|
|
590
|
+
}
|
|
591
|
+
return this;
|
|
592
|
+
}
|
|
593
|
+
|
|
594
|
+
setSpellcheck(value: 'true' | 'false' | boolean | null | undefined): this {
|
|
595
|
+
if (value === null || value === undefined) {
|
|
596
|
+
this.element.removeAttribute('spellcheck');
|
|
597
|
+
} else {
|
|
598
|
+
this.element.setAttribute('spellcheck', String(value));
|
|
599
|
+
}
|
|
600
|
+
return this;
|
|
601
|
+
}
|
|
602
|
+
|
|
603
|
+
setStyle(value: string | null | undefined): this {
|
|
604
|
+
if (value === null || value === undefined) {
|
|
605
|
+
this.element.removeAttribute('style');
|
|
606
|
+
} else {
|
|
607
|
+
this.element.setAttribute('style', String(value));
|
|
608
|
+
}
|
|
609
|
+
return this;
|
|
610
|
+
}
|
|
611
|
+
|
|
612
|
+
setTabindex(value: number | null | undefined): this {
|
|
613
|
+
if (value === null || value === undefined) {
|
|
614
|
+
this.element.removeAttribute('tabindex');
|
|
615
|
+
} else {
|
|
616
|
+
this.element.setAttribute('tabindex', String(value));
|
|
617
|
+
}
|
|
618
|
+
return this;
|
|
619
|
+
}
|
|
620
|
+
|
|
621
|
+
setTarget(value: '_blank' | '_parent' | '_self' | '_top' | string | null | undefined): this {
|
|
622
|
+
if (value === null || value === undefined) {
|
|
623
|
+
this.element.removeAttribute('target');
|
|
624
|
+
} else {
|
|
625
|
+
this.element.setAttribute('target', String(value));
|
|
626
|
+
}
|
|
627
|
+
return this;
|
|
628
|
+
}
|
|
629
|
+
|
|
630
|
+
setTitle(value: string | null | undefined): this {
|
|
631
|
+
if (value === null || value === undefined) {
|
|
632
|
+
this.element.removeAttribute('title');
|
|
633
|
+
} else {
|
|
634
|
+
this.element.setAttribute('title', String(value));
|
|
635
|
+
}
|
|
636
|
+
return this;
|
|
637
|
+
}
|
|
638
|
+
|
|
639
|
+
setTranslate(value: 'yes' | 'no' | null | undefined): this {
|
|
640
|
+
if (value === null || value === undefined) {
|
|
641
|
+
this.element.removeAttribute('translate');
|
|
642
|
+
} else {
|
|
643
|
+
this.element.setAttribute('translate', String(value));
|
|
644
|
+
}
|
|
645
|
+
return this;
|
|
646
|
+
}
|
|
647
|
+
|
|
648
|
+
setType(value: string | null | undefined): this {
|
|
649
|
+
if (value === null || value === undefined) {
|
|
650
|
+
this.element.removeAttribute('type');
|
|
651
|
+
} else {
|
|
652
|
+
this.element.setAttribute('type', String(value));
|
|
653
|
+
}
|
|
654
|
+
return this;
|
|
655
|
+
}
|
|
656
|
+
|
|
657
|
+
setChildren(children: string | HTMLElement | (string | HTMLElement)[]): this {
|
|
658
|
+
// Clear existing children
|
|
659
|
+
while (this.element.firstChild) {
|
|
660
|
+
this.element.removeChild(this.element.firstChild);
|
|
661
|
+
}
|
|
662
|
+
|
|
663
|
+
if (typeof children === 'string') {
|
|
664
|
+
this.element.textContent = children;
|
|
665
|
+
} else if (Array.isArray(children)) {
|
|
666
|
+
children.forEach(child => {
|
|
667
|
+
if (typeof child === 'string') {
|
|
668
|
+
this.element.appendChild(document.createTextNode(child));
|
|
669
|
+
} else {
|
|
670
|
+
this.element.appendChild(child);
|
|
671
|
+
}
|
|
672
|
+
});
|
|
673
|
+
} else {
|
|
674
|
+
this.element.appendChild(children);
|
|
675
|
+
}
|
|
676
|
+
return this;
|
|
677
|
+
}
|
|
678
|
+
|
|
679
|
+
getElement(): HTMLElement {
|
|
680
|
+
return this.element;
|
|
681
|
+
}
|
|
682
|
+
}
|