@emuanalytics/flow-rdf-ui 0.0.6 → 0.0.7
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/custom-elements.json +879 -872
- package/dist/flow-rdf-ui.d.ts +1 -1
- package/dist/flow-rdf-ui.js +19 -3
- package/dist/flow-rdf-ui.umd.cjs +19 -3
- package/dist/vscode.html-custom-data.json +80 -80
- package/package.json +1 -1
package/dist/flow-rdf-ui.d.ts
CHANGED
|
@@ -2665,7 +2665,7 @@ export declare class FlowStepper extends FlowRdfElement {
|
|
|
2665
2665
|
headerScrollContainer: HTMLDivElement;
|
|
2666
2666
|
private readonly attrId;
|
|
2667
2667
|
private readonly componentId;
|
|
2668
|
-
private activePanel
|
|
2668
|
+
private activePanel?;
|
|
2669
2669
|
private mutationObserver;
|
|
2670
2670
|
private panels;
|
|
2671
2671
|
connectedCallback(): void;
|
package/dist/flow-rdf-ui.js
CHANGED
|
@@ -16545,17 +16545,33 @@ class FlowStepper extends FlowRdfElement {
|
|
|
16545
16545
|
}
|
|
16546
16546
|
syncPanels() {
|
|
16547
16547
|
this.panels = this.getAllPanels();
|
|
16548
|
+
this.activePanel = this.panels.find((el) => el.active);
|
|
16549
|
+
if (!this.activePanel) {
|
|
16550
|
+
this.activePanel = this.panels[0];
|
|
16551
|
+
}
|
|
16548
16552
|
}
|
|
16549
16553
|
getAllPanels() {
|
|
16550
16554
|
return [...this.bodySlot.assignedElements()].filter((el) => el.tagName.toLowerCase() === "flow-ui-stepper-panel");
|
|
16551
16555
|
}
|
|
16552
|
-
setActivePanel(panel) {
|
|
16556
|
+
setActivePanel(panel, options) {
|
|
16557
|
+
options = {
|
|
16558
|
+
emitEvents: true,
|
|
16559
|
+
scrollBehavior: "auto",
|
|
16560
|
+
...options
|
|
16561
|
+
};
|
|
16553
16562
|
if (panel !== this.activePanel) {
|
|
16563
|
+
const previousPanel = this.activePanel;
|
|
16554
16564
|
this.activePanel = panel;
|
|
16555
16565
|
this.panels.forEach((el) => el.active = el === this.activePanel);
|
|
16556
16566
|
const panelIndex = this.panels.indexOf(this.activePanel);
|
|
16557
16567
|
const panelHeaderItem = this.headerScrollContainer.getElementsByClassName("stepper__header-item").item(panelIndex);
|
|
16558
|
-
scrollIntoView(panelHeaderItem, this.headerScrollContainer, "horizontal");
|
|
16568
|
+
scrollIntoView(panelHeaderItem, this.headerScrollContainer, "horizontal", options.scrollBehavior);
|
|
16569
|
+
if (options.emitEvents) {
|
|
16570
|
+
if (previousPanel) {
|
|
16571
|
+
this.emit("flow-ui-tab-hide", { detail: { name: previousPanel.name } });
|
|
16572
|
+
}
|
|
16573
|
+
this.emit("flow-ui-tab-show", { detail: { name: this.activePanel.name } });
|
|
16574
|
+
}
|
|
16559
16575
|
}
|
|
16560
16576
|
}
|
|
16561
16577
|
renderHeaderItem(panel, index) {
|
|
@@ -20888,7 +20904,7 @@ const translation = {
|
|
|
20888
20904
|
toggleColorFormat: "Toggle color format"
|
|
20889
20905
|
};
|
|
20890
20906
|
registerTranslation(translation);
|
|
20891
|
-
const version = "0.0.
|
|
20907
|
+
const version = "0.0.7";
|
|
20892
20908
|
const CONSOLE_HIGHLIGHT_STYLE = `
|
|
20893
20909
|
padding: 2px 4px;
|
|
20894
20910
|
border-radius: 2px;
|
package/dist/flow-rdf-ui.umd.cjs
CHANGED
|
@@ -16549,17 +16549,33 @@
|
|
|
16549
16549
|
}
|
|
16550
16550
|
syncPanels() {
|
|
16551
16551
|
this.panels = this.getAllPanels();
|
|
16552
|
+
this.activePanel = this.panels.find((el) => el.active);
|
|
16553
|
+
if (!this.activePanel) {
|
|
16554
|
+
this.activePanel = this.panels[0];
|
|
16555
|
+
}
|
|
16552
16556
|
}
|
|
16553
16557
|
getAllPanels() {
|
|
16554
16558
|
return [...this.bodySlot.assignedElements()].filter((el) => el.tagName.toLowerCase() === "flow-ui-stepper-panel");
|
|
16555
16559
|
}
|
|
16556
|
-
setActivePanel(panel) {
|
|
16560
|
+
setActivePanel(panel, options) {
|
|
16561
|
+
options = {
|
|
16562
|
+
emitEvents: true,
|
|
16563
|
+
scrollBehavior: "auto",
|
|
16564
|
+
...options
|
|
16565
|
+
};
|
|
16557
16566
|
if (panel !== this.activePanel) {
|
|
16567
|
+
const previousPanel = this.activePanel;
|
|
16558
16568
|
this.activePanel = panel;
|
|
16559
16569
|
this.panels.forEach((el) => el.active = el === this.activePanel);
|
|
16560
16570
|
const panelIndex = this.panels.indexOf(this.activePanel);
|
|
16561
16571
|
const panelHeaderItem = this.headerScrollContainer.getElementsByClassName("stepper__header-item").item(panelIndex);
|
|
16562
|
-
scrollIntoView(panelHeaderItem, this.headerScrollContainer, "horizontal");
|
|
16572
|
+
scrollIntoView(panelHeaderItem, this.headerScrollContainer, "horizontal", options.scrollBehavior);
|
|
16573
|
+
if (options.emitEvents) {
|
|
16574
|
+
if (previousPanel) {
|
|
16575
|
+
this.emit("flow-ui-tab-hide", { detail: { name: previousPanel.name } });
|
|
16576
|
+
}
|
|
16577
|
+
this.emit("flow-ui-tab-show", { detail: { name: this.activePanel.name } });
|
|
16578
|
+
}
|
|
16563
16579
|
}
|
|
16564
16580
|
}
|
|
16565
16581
|
renderHeaderItem(panel, index) {
|
|
@@ -20892,7 +20908,7 @@
|
|
|
20892
20908
|
toggleColorFormat: "Toggle color format"
|
|
20893
20909
|
};
|
|
20894
20910
|
registerTranslation(translation);
|
|
20895
|
-
const version = "0.0.
|
|
20911
|
+
const version = "0.0.7";
|
|
20896
20912
|
const CONSOLE_HIGHLIGHT_STYLE = `
|
|
20897
20913
|
padding: 2px 4px;
|
|
20898
20914
|
border-radius: 2px;
|
|
@@ -97,13 +97,37 @@
|
|
|
97
97
|
"references": []
|
|
98
98
|
},
|
|
99
99
|
{
|
|
100
|
-
"name": "flow-ui-
|
|
101
|
-
"description": "
|
|
100
|
+
"name": "flow-ui-avatar",
|
|
101
|
+
"description": "Avatars are used to represent a person or object.\n\n\n---\n\n\n\n\n### **Slots:**\n - **icon** - The default icon to use when no image or initials are present. Works best with `<flow-ui-icon>`.\n\n### **CSS Properties:**\n - **--size** - The size of the avatar. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **icon** - The container that wraps the avatar's icon.\n- **initials** - The container that wraps the avatar's initials.\n- **image** - The avatar image. Only shown when the `image` attribute is set.",
|
|
102
102
|
"attributes": [
|
|
103
|
+
{
|
|
104
|
+
"name": "image",
|
|
105
|
+
"description": "The image source to use for the avatar.",
|
|
106
|
+
"values": []
|
|
107
|
+
},
|
|
103
108
|
{
|
|
104
109
|
"name": "label",
|
|
105
|
-
"description": "
|
|
110
|
+
"description": "A label to use to describe the avatar to assistive devices.",
|
|
111
|
+
"values": []
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"name": "initials",
|
|
115
|
+
"description": "Initials to use as a fallback when no image is available (1-2 characters max recommended).",
|
|
106
116
|
"values": []
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"name": "loading",
|
|
120
|
+
"description": "Indicates how the browser should load the image.",
|
|
121
|
+
"values": [{ "name": "eager" }, { "name": "lazy" }]
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"name": "shape",
|
|
125
|
+
"description": "The shape of the avatar.",
|
|
126
|
+
"values": [
|
|
127
|
+
{ "name": "circle" },
|
|
128
|
+
{ "name": "square" },
|
|
129
|
+
{ "name": "rounded" }
|
|
130
|
+
]
|
|
107
131
|
}
|
|
108
132
|
],
|
|
109
133
|
"references": []
|
|
@@ -135,19 +159,6 @@
|
|
|
135
159
|
],
|
|
136
160
|
"references": []
|
|
137
161
|
},
|
|
138
|
-
{
|
|
139
|
-
"name": "flow-ui-button-group",
|
|
140
|
-
"description": "Button groups can be used to group related buttons into sections.\n\n\n---\n\n\n\n\n### **Slots:**\n - _default_ - One or more `<flow-ui-button>` elements to display in the button group.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
|
|
141
|
-
"attributes": [
|
|
142
|
-
{ "name": "label", "values": [] },
|
|
143
|
-
{
|
|
144
|
-
"name": "vertical",
|
|
145
|
-
"description": "Use vertical layout for the button group.",
|
|
146
|
-
"values": []
|
|
147
|
-
}
|
|
148
|
-
],
|
|
149
|
-
"references": []
|
|
150
|
-
},
|
|
151
162
|
{
|
|
152
163
|
"name": "flow-ui-button",
|
|
153
164
|
"description": "Buttons represent actions that are available to the user.\n\n\n---\n\n\n\n\n### **Events:**\n - **flow-ui-blur** - Emitted when the button loses focus.\n- **flow-ui-focus** - Emitted when the button gains focus.\n- **flow-ui-invalid** - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n\n### **Methods:**\n - **click()** - Simulates a click on the button.\n- **focus(options: _FocusOptions_)** - Sets focus on the button.\n- **blur()** - Removes focus from the button.\n- **checkValidity()** - Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid.\n- **getForm(): _HTMLFormElement | null_** - Gets the associated form, if one exists.\n- **reportValidity()** - Checks for validity and shows the browser's validation message if the control is invalid.\n- **setCustomValidity(message: _string_)** - Sets a custom validation message. Pass an empty string to restore validity.\n\n### **Slots:**\n - _default_ - The button's label.\n- **prefix** - A presentational prefix icon or similar element.\n- **suffix** - A presentational suffix icon or similar element.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **prefix** - The container that wraps the prefix.\n- **label** - The button's label.\n- **suffix** - The container that wraps the suffix.\n- **caret** - The button's caret icon, an `<flow-ui-icon>` element.",
|
|
@@ -292,6 +303,31 @@
|
|
|
292
303
|
],
|
|
293
304
|
"references": []
|
|
294
305
|
},
|
|
306
|
+
{
|
|
307
|
+
"name": "flow-ui-breadcrumb",
|
|
308
|
+
"description": "Breadcrumbs provide a group of links so users can easily navigate a website's hierarchy.\n\n\n---\n\n\n\n\n### **Slots:**\n - _default_ - One or more breadcrumb items to display.\n- **separator** - The separator to use between breadcrumb items. Works best with `<flow-ui-icon>`.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
|
|
309
|
+
"attributes": [
|
|
310
|
+
{
|
|
311
|
+
"name": "label",
|
|
312
|
+
"description": "The label to use for the breadcrumb control. This will not be shown on the screen, but it will be announced by\nscreen readers and other assistive devices to provide more context for users.",
|
|
313
|
+
"values": []
|
|
314
|
+
}
|
|
315
|
+
],
|
|
316
|
+
"references": []
|
|
317
|
+
},
|
|
318
|
+
{
|
|
319
|
+
"name": "flow-ui-button-group",
|
|
320
|
+
"description": "Button groups can be used to group related buttons into sections.\n\n\n---\n\n\n\n\n### **Slots:**\n - _default_ - One or more `<flow-ui-button>` elements to display in the button group.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
|
|
321
|
+
"attributes": [
|
|
322
|
+
{ "name": "label", "values": [] },
|
|
323
|
+
{
|
|
324
|
+
"name": "vertical",
|
|
325
|
+
"description": "Use vertical layout for the button group.",
|
|
326
|
+
"values": []
|
|
327
|
+
}
|
|
328
|
+
],
|
|
329
|
+
"references": []
|
|
330
|
+
},
|
|
295
331
|
{
|
|
296
332
|
"name": "flow-ui-badge",
|
|
297
333
|
"description": "Badges are used to draw attention and display statuses or counts.\n\n\n---\n\n\n\n\n### **Slots:**\n - _default_ - The badge's content.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
|
|
@@ -320,42 +356,6 @@
|
|
|
320
356
|
],
|
|
321
357
|
"references": []
|
|
322
358
|
},
|
|
323
|
-
{
|
|
324
|
-
"name": "flow-ui-avatar",
|
|
325
|
-
"description": "Avatars are used to represent a person or object.\n\n\n---\n\n\n\n\n### **Slots:**\n - **icon** - The default icon to use when no image or initials are present. Works best with `<flow-ui-icon>`.\n\n### **CSS Properties:**\n - **--size** - The size of the avatar. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **icon** - The container that wraps the avatar's icon.\n- **initials** - The container that wraps the avatar's initials.\n- **image** - The avatar image. Only shown when the `image` attribute is set.",
|
|
326
|
-
"attributes": [
|
|
327
|
-
{
|
|
328
|
-
"name": "image",
|
|
329
|
-
"description": "The image source to use for the avatar.",
|
|
330
|
-
"values": []
|
|
331
|
-
},
|
|
332
|
-
{
|
|
333
|
-
"name": "label",
|
|
334
|
-
"description": "A label to use to describe the avatar to assistive devices.",
|
|
335
|
-
"values": []
|
|
336
|
-
},
|
|
337
|
-
{
|
|
338
|
-
"name": "initials",
|
|
339
|
-
"description": "Initials to use as a fallback when no image is available (1-2 characters max recommended).",
|
|
340
|
-
"values": []
|
|
341
|
-
},
|
|
342
|
-
{
|
|
343
|
-
"name": "loading",
|
|
344
|
-
"description": "Indicates how the browser should load the image.",
|
|
345
|
-
"values": [{ "name": "eager" }, { "name": "lazy" }]
|
|
346
|
-
},
|
|
347
|
-
{
|
|
348
|
-
"name": "shape",
|
|
349
|
-
"description": "The shape of the avatar.",
|
|
350
|
-
"values": [
|
|
351
|
-
{ "name": "circle" },
|
|
352
|
-
{ "name": "square" },
|
|
353
|
-
{ "name": "rounded" }
|
|
354
|
-
]
|
|
355
|
-
}
|
|
356
|
-
],
|
|
357
|
-
"references": []
|
|
358
|
-
},
|
|
359
359
|
{
|
|
360
360
|
"name": "flow-ui-card",
|
|
361
361
|
"description": "Cards can be used to group related subjects in a container.\n\n\n---\n\n\n\n\n### **Slots:**\n - _default_ - The card's main content.\n- **header** - An optional header for the card.\n- **footer** - An optional footer for the card.\n- **image** - An optional image to render at the start of the card.\n\n### **CSS Properties:**\n - **--border-color** - The card's border color, including borders that occur inside the card. _(default: undefined)_\n- **--border-radius** - The border radius for the card's edges. _(default: undefined)_\n- **--border-width** - The width of the card's borders. _(default: undefined)_\n- **--padding** - The padding to use for the card's sections. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **image** - The container that wraps the card's image.\n- **header** - The container that wraps the card's header.\n- **body** - The container that wraps the card's main content.\n- **footer** - The container that wraps the card's footer.",
|
|
@@ -1656,6 +1656,34 @@
|
|
|
1656
1656
|
],
|
|
1657
1657
|
"references": []
|
|
1658
1658
|
},
|
|
1659
|
+
{
|
|
1660
|
+
"name": "flow-ui-tab-group",
|
|
1661
|
+
"description": "Tab groups organize content into a container that shows one section at a time.\n\n\n---\n\n\n\n\n### **Events:**\n - **flow-ui-tab-show** - Emitted when a tab is shown.\n- **flow-ui-tab-hide** - Emitted when a tab is hidden.\n\n### **Methods:**\n - **show(panel: _string_)** - Shows the specified tab panel.\n\n### **Slots:**\n - _default_ - Used for grouping tab panels in the tab group. Must be `<flow-ui-tab-panel>` elements.\n- **nav** - Used for grouping tabs in the tab group. Must be `<flow-ui-tab>` elements.\n\n### **CSS Properties:**\n - **--indicator-color** - The color of the active tab indicator. _(default: undefined)_\n- **--track-color** - The color of the indicator's track (the line that separates tabs from panels). _(default: undefined)_\n- **--track-width** - The width of the indicator's track (the line that separates tabs from panels). _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **nav** - The tab group's navigation container where tabs are slotted in.\n- **tabs** - The container that wraps the tabs.\n- **active-tab-indicator** - The line that highlights the currently selected tab.\n- **body** - The tab group's body where tab panels are slotted in.\n- **scroll-button** - The previous/next scroll buttons that show when tabs are scrollable, an `<flow-ui-icon-button>`.\n- **scroll-button--start** - The starting scroll button.\n- **scroll-button--end** - The ending scroll button.\n- **scroll-button__base** - The scroll button's exported `base` part.",
|
|
1662
|
+
"attributes": [
|
|
1663
|
+
{
|
|
1664
|
+
"name": "placement",
|
|
1665
|
+
"description": "The placement of the tabs.",
|
|
1666
|
+
"values": [
|
|
1667
|
+
{ "name": "top" },
|
|
1668
|
+
{ "name": "bottom" },
|
|
1669
|
+
{ "name": "start" },
|
|
1670
|
+
{ "name": "end" }
|
|
1671
|
+
]
|
|
1672
|
+
},
|
|
1673
|
+
{
|
|
1674
|
+
"name": "activation",
|
|
1675
|
+
"description": "When set to auto, navigating tabs with the arrow keys will instantly show the corresponding tab panel. When set to\nmanual, the tab will receive focus but will not show until the user presses spacebar or enter.",
|
|
1676
|
+
"values": [{ "name": "auto" }, { "name": "manual" }]
|
|
1677
|
+
},
|
|
1678
|
+
{
|
|
1679
|
+
"name": "no-scroll-controls",
|
|
1680
|
+
"description": "Disables the scroll arrows that appear when tabs overflow.",
|
|
1681
|
+
"values": []
|
|
1682
|
+
},
|
|
1683
|
+
{ "name": "control-split-panel", "values": [] }
|
|
1684
|
+
],
|
|
1685
|
+
"references": []
|
|
1686
|
+
},
|
|
1659
1687
|
{
|
|
1660
1688
|
"name": "flow-ui-tab-panel",
|
|
1661
1689
|
"description": "Tab panels are used inside [tab groups](/components/tab-group) to display tabbed content.\n\n\n---\n\n\n\n\n### **Slots:**\n - _default_ - The tab panel's content.\n\n### **CSS Properties:**\n - **--padding** - The tab panel's padding. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
|
|
@@ -1711,34 +1739,6 @@
|
|
|
1711
1739
|
],
|
|
1712
1740
|
"references": []
|
|
1713
1741
|
},
|
|
1714
|
-
{
|
|
1715
|
-
"name": "flow-ui-tab-group",
|
|
1716
|
-
"description": "Tab groups organize content into a container that shows one section at a time.\n\n\n---\n\n\n\n\n### **Events:**\n - **flow-ui-tab-show** - Emitted when a tab is shown.\n- **flow-ui-tab-hide** - Emitted when a tab is hidden.\n\n### **Methods:**\n - **show(panel: _string_)** - Shows the specified tab panel.\n\n### **Slots:**\n - _default_ - Used for grouping tab panels in the tab group. Must be `<flow-ui-tab-panel>` elements.\n- **nav** - Used for grouping tabs in the tab group. Must be `<flow-ui-tab>` elements.\n\n### **CSS Properties:**\n - **--indicator-color** - The color of the active tab indicator. _(default: undefined)_\n- **--track-color** - The color of the indicator's track (the line that separates tabs from panels). _(default: undefined)_\n- **--track-width** - The width of the indicator's track (the line that separates tabs from panels). _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **nav** - The tab group's navigation container where tabs are slotted in.\n- **tabs** - The container that wraps the tabs.\n- **active-tab-indicator** - The line that highlights the currently selected tab.\n- **body** - The tab group's body where tab panels are slotted in.\n- **scroll-button** - The previous/next scroll buttons that show when tabs are scrollable, an `<flow-ui-icon-button>`.\n- **scroll-button--start** - The starting scroll button.\n- **scroll-button--end** - The ending scroll button.\n- **scroll-button__base** - The scroll button's exported `base` part.",
|
|
1717
|
-
"attributes": [
|
|
1718
|
-
{
|
|
1719
|
-
"name": "placement",
|
|
1720
|
-
"description": "The placement of the tabs.",
|
|
1721
|
-
"values": [
|
|
1722
|
-
{ "name": "top" },
|
|
1723
|
-
{ "name": "bottom" },
|
|
1724
|
-
{ "name": "start" },
|
|
1725
|
-
{ "name": "end" }
|
|
1726
|
-
]
|
|
1727
|
-
},
|
|
1728
|
-
{
|
|
1729
|
-
"name": "activation",
|
|
1730
|
-
"description": "When set to auto, navigating tabs with the arrow keys will instantly show the corresponding tab panel. When set to\nmanual, the tab will receive focus but will not show until the user presses spacebar or enter.",
|
|
1731
|
-
"values": [{ "name": "auto" }, { "name": "manual" }]
|
|
1732
|
-
},
|
|
1733
|
-
{
|
|
1734
|
-
"name": "no-scroll-controls",
|
|
1735
|
-
"description": "Disables the scroll arrows that appear when tabs overflow.",
|
|
1736
|
-
"values": []
|
|
1737
|
-
},
|
|
1738
|
-
{ "name": "control-split-panel", "values": [] }
|
|
1739
|
-
],
|
|
1740
|
-
"references": []
|
|
1741
|
-
},
|
|
1742
1742
|
{
|
|
1743
1743
|
"name": "flow-ui-textarea",
|
|
1744
1744
|
"description": "Textareas collect data from the user and allow multiple lines of text.\n\n\n---\n\n\n\n\n### **Events:**\n - **flow-ui-blur** - Emitted when the control loses focus.\n- **flow-ui-change** - Emitted when an alteration to the control's value is committed by the user.\n- **flow-ui-focus** - Emitted when the control gains focus.\n- **flow-ui-input** - Emitted when the control receives input.\n- **flow-ui-invalid** - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n\n### **Methods:**\n - **focus(options: _FocusOptions_)** - Sets focus on the textarea.\n- **blur()** - Removes focus from the textarea.\n- **select()** - Selects all the text in the textarea.\n- **scrollPosition(position: _{ top?: number; left?: number }_): _{ top: number; left: number } | undefined_** - Gets or sets the textarea's scroll position.\n- **setSelectionRange(selectionStart: _number_, selectionEnd: _number_, selectionDirection: _'forward' | 'backward' | 'none'_)** - Sets the start and end positions of the text selection (0-based).\n- **setRangeText(replacement: _string_, start: _number_, end: _number_, selectMode: _'select' | 'start' | 'end' | 'preserve'_)** - Replaces a range of text with a new string.\n- **checkValidity()** - Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid.\n- **getForm(): _HTMLFormElement | null_** - Gets the associated form, if one exists.\n- **reportValidity()** - Checks for validity and shows the browser's validation message if the control is invalid.\n- **setCustomValidity(message: _string_)** - Sets a custom validation message. Pass an empty string to restore validity.\n\n### **Slots:**\n - **label** - The textarea's label. Alternatively, you can use the `label` attribute.\n- **help-text** - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.\n\n### **CSS Parts:**\n - **form-control** - The form control that wraps the label, input, and help text.\n- **form-control-label** - The label's wrapper.\n- **form-control-input** - The input's wrapper.\n- **form-control-help-text** - The help text's wrapper.\n- **base** - The component's base wrapper.\n- **textarea** - The internal `<textarea>` control.",
|