Skip to content

Commit d6b0b0a

Browse files
committed
main - ba9f79b feat(aria/toolbar): adds toolbar-basic-horizontal-example to dev-app (#32106)
1 parent aad359a commit d6b0b0a

File tree

12 files changed

+220
-17
lines changed

12 files changed

+220
-17
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1+
<span class="hljs-keyword">export</span> {<span class="hljs-title class_">ToolbarBasicHorizontalExample</span>} <span class="hljs-keyword">from</span> <span class="hljs-string">&#x27;./toolbar-basic-horizontal/toolbar-basic-horizontal-example&#x27;</span>;
12
<span class="hljs-keyword">export</span> {<span class="hljs-title class_">ToolbarConfigurableExample</span>} <span class="hljs-keyword">from</span> <span class="hljs-string">&#x27;./toolbar-configurable/toolbar-configurable-example&#x27;</span>;
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;example-container&quot;</span>&gt;</span>
2+
<span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">ngToolbar</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;example-toolbar&quot;</span> <span class="hljs-attr">aria-label</span>=<span class="hljs-string">&quot;Text Formatting Tools&quot;</span>&gt;</span>
3+
<span class="hljs-tag">&lt;<span class="hljs-name">button</span>
4+
<span class="hljs-attr">ngToolbarWidget</span>
5+
<span class="hljs-attr">class</span>=<span class="hljs-string">&quot;example-radio-button&quot;</span>
6+
(<span class="hljs-attr">click</span>)=<span class="hljs-string">&quot;format(&#x27;bold&#x27;)&quot;</span>
7+
(<span class="hljs-attr">keydown.enter</span>)=<span class="hljs-string">&quot;format(&#x27;bold&#x27;)&quot;</span>&gt;</span>
8+
Bold
9+
<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
10+
<span class="hljs-tag">&lt;<span class="hljs-name">button</span>
11+
<span class="hljs-attr">ngToolbarWidget</span>
12+
<span class="hljs-attr">class</span>=<span class="hljs-string">&quot;example-radio-button&quot;</span>
13+
(<span class="hljs-attr">click</span>)=<span class="hljs-string">&quot;format(&#x27;italic&#x27;)&quot;</span>
14+
(<span class="hljs-attr">keydown.enter</span>)=<span class="hljs-string">&quot;format(&#x27;italic&#x27;)&quot;</span>&gt;</span>
15+
Italic
16+
<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
17+
<span class="hljs-tag">&lt;<span class="hljs-name">button</span>
18+
<span class="hljs-attr">ngToolbarWidget</span>
19+
<span class="hljs-attr">class</span>=<span class="hljs-string">&quot;example-radio-button&quot;</span>
20+
(<span class="hljs-attr">click</span>)=<span class="hljs-string">&quot;format(&#x27;underline&#x27;)&quot;</span>
21+
(<span class="hljs-attr">keydown.enter</span>)=<span class="hljs-string">&quot;format(&#x27;underline&#x27;)&quot;</span>&gt;</span>
22+
Underline
23+
<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
24+
<span class="hljs-tag">&lt;<span class="hljs-name">ul</span>
25+
<span class="hljs-attr">ngRadioGroup</span>
26+
<span class="hljs-attr">class</span>=<span class="hljs-string">&quot;example-radio-group&quot;</span>
27+
<span class="hljs-attr">aria-label</span>=<span class="hljs-string">&quot;Select text alignment&quot;</span>
28+
&gt;</span>
29+
@for (alignment of alignments; track alignment) {
30+
<span class="hljs-tag">&lt;<span class="hljs-name">li</span> <span class="hljs-attr">ngRadioButton</span> [<span class="hljs-attr">value</span>]=<span class="hljs-string">&quot;alignment.value&quot;</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;example-radio-button&quot;</span>&gt;</span>
31+
<span class="hljs-tag">&lt;<span class="hljs-name">span</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;example-radio-indicator&quot;</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">span</span>&gt;</span>
32+
<span class="hljs-tag">&lt;<span class="hljs-name">span</span>&gt;</span>{{ alignment.label }}<span class="hljs-tag">&lt;/<span class="hljs-name">span</span>&gt;</span>
33+
<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
34+
}
35+
<span class="hljs-tag">&lt;/<span class="hljs-name">ul</span>&gt;</span>
36+
<span class="hljs-tag">&lt;<span class="hljs-name">button</span>
37+
<span class="hljs-attr">ngToolbarWidget</span>
38+
<span class="hljs-attr">class</span>=<span class="hljs-string">&quot;example-radio-button&quot;</span>
39+
[<span class="hljs-attr">disabled</span>]=<span class="hljs-string">&quot;true&quot;</span>&gt;</span>
40+
Disabled Action
41+
<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
42+
<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
43+
<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<span class="hljs-keyword">import</span> {<span class="hljs-title class_">Component</span>} <span class="hljs-keyword">from</span> <span class="hljs-string">&#x27;@angular/core&#x27;</span>;
2+
<span class="hljs-keyword">import</span> {<span class="hljs-title class_">Toolbar</span>, <span class="hljs-title class_">ToolbarWidget</span>} <span class="hljs-keyword">from</span> <span class="hljs-string">&#x27;@angular/aria/toolbar&#x27;</span>;
3+
<span class="hljs-keyword">import</span> {<span class="hljs-title class_">RadioGroup</span>, <span class="hljs-title class_">RadioButton</span>} <span class="hljs-keyword">from</span> <span class="hljs-string">&#x27;@angular/aria/radio-group&#x27;</span>;
4+
<span class="hljs-keyword">import</span> {<span class="hljs-title class_">LiveAnnouncer</span>} <span class="hljs-keyword">from</span> <span class="hljs-string">&#x27;@angular/cdk/a11y&#x27;</span>;
5+
6+
<span class="hljs-comment">/** <span class="hljs-doctag">@title</span> Basic Horizontal Toolbar Example */</span>
7+
<span class="hljs-meta">@Component</span>({
8+
<span class="hljs-attr">selector</span>: <span class="hljs-string">&#x27;toolbar-basic-horizontal-example&#x27;</span>,
9+
<span class="hljs-attr">templateUrl</span>: <span class="hljs-string">&#x27;toolbar-basic-horizontal-example.html&#x27;</span>,
10+
<span class="hljs-attr">styleUrl</span>: <span class="hljs-string">&#x27;../toolbar-common.css&#x27;</span>,
11+
<span class="hljs-attr">imports</span>: [<span class="hljs-title class_">RadioButton</span>, <span class="hljs-title class_">RadioGroup</span>, <span class="hljs-title class_">Toolbar</span>, <span class="hljs-title class_">ToolbarWidget</span>],
12+
})
13+
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> <span class="hljs-title class_">ToolbarBasicHorizontalExample</span> {
14+
<span class="hljs-title function_">constructor</span>(<span class="hljs-params"><span class="hljs-keyword">private</span> <span class="hljs-attr">_liveAnnouncer</span>: <span class="hljs-title class_">LiveAnnouncer</span></span>) {}
15+
alignments = [
16+
{<span class="hljs-attr">value</span>: <span class="hljs-string">&#x27;left&#x27;</span>, <span class="hljs-attr">label</span>: <span class="hljs-string">&#x27;Left&#x27;</span>},
17+
{<span class="hljs-attr">value</span>: <span class="hljs-string">&#x27;center&#x27;</span>, <span class="hljs-attr">label</span>: <span class="hljs-string">&#x27;Center&#x27;</span>},
18+
{<span class="hljs-attr">value</span>: <span class="hljs-string">&#x27;right&#x27;</span>, <span class="hljs-attr">label</span>: <span class="hljs-string">&#x27;Right&#x27;</span>},
19+
];
20+
<span class="hljs-title function_">format</span>(<span class="hljs-params"><span class="hljs-attr">tool</span>: <span class="hljs-built_in">string</span></span>) {
21+
<span class="hljs-variable language_">console</span>.<span class="hljs-title function_">log</span>(<span class="hljs-string">`Tool activated: <span class="hljs-subst">${tool}</span>`</span>);
22+
<span class="hljs-variable language_">this</span>.<span class="hljs-property">_liveAnnouncer</span>.<span class="hljs-title function_">announce</span>(<span class="hljs-string">`<span class="hljs-subst">${tool}</span> applied`</span>, <span class="hljs-string">&#x27;polite&#x27;</span>);
23+
}
24+
<span class="hljs-title function_">test</span>(<span class="hljs-params"><span class="hljs-attr">action</span>: <span class="hljs-built_in">string</span></span>) {
25+
<span class="hljs-variable language_">console</span>.<span class="hljs-title function_">log</span>(<span class="hljs-string">`Action triggered: <span class="hljs-subst">${action}</span>`</span>);
26+
<span class="hljs-variable language_">this</span>.<span class="hljs-property">_liveAnnouncer</span>.<span class="hljs-title function_">announce</span>(<span class="hljs-string">`<span class="hljs-subst">${action}</span> button activated`</span>, <span class="hljs-string">&#x27;polite&#x27;</span>);
27+
}
28+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1+
export {ToolbarBasicHorizontalExample} from './toolbar-basic-horizontal/toolbar-basic-horizontal-example';
12
export {ToolbarConfigurableExample} from './toolbar-configurable/toolbar-configurable-example';
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<div class="example-container">
2+
<div ngToolbar class="example-toolbar" aria-label="Text Formatting Tools">
3+
<button
4+
ngToolbarWidget
5+
class="example-radio-button"
6+
(click)="format('bold')"
7+
(keydown.enter)="format('bold')">
8+
Bold
9+
</button>
10+
<button
11+
ngToolbarWidget
12+
class="example-radio-button"
13+
(click)="format('italic')"
14+
(keydown.enter)="format('italic')">
15+
Italic
16+
</button>
17+
<button
18+
ngToolbarWidget
19+
class="example-radio-button"
20+
(click)="format('underline')"
21+
(keydown.enter)="format('underline')">
22+
Underline
23+
</button>
24+
<ul
25+
ngRadioGroup
26+
class="example-radio-group"
27+
aria-label="Select text alignment"
28+
>
29+
@for (alignment of alignments; track alignment) {
30+
<li ngRadioButton [value]="alignment.value" class="example-radio-button">
31+
<span class="example-radio-indicator"></span>
32+
<span>{{ alignment.label }}</span>
33+
</li>
34+
}
35+
</ul>
36+
<button
37+
ngToolbarWidget
38+
class="example-radio-button"
39+
[disabled]="true">
40+
Disabled Action
41+
</button>
42+
</div>
43+
</div>
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import {Component} from '@angular/core';
2+
import {Toolbar, ToolbarWidget} from '@angular/aria/toolbar';
3+
import {RadioGroup, RadioButton} from '@angular/aria/radio-group';
4+
import {LiveAnnouncer} from '@angular/cdk/a11y';
5+
6+
/** @title Basic Horizontal Toolbar Example */
7+
@Component({
8+
selector: 'toolbar-basic-horizontal-example',
9+
templateUrl: 'toolbar-basic-horizontal-example.html',
10+
styleUrl: '../toolbar-common.css',
11+
imports: [RadioButton, RadioGroup, Toolbar, ToolbarWidget],
12+
})
13+
export class ToolbarBasicHorizontalExample {
14+
constructor(private _liveAnnouncer: LiveAnnouncer) {}
15+
alignments = [
16+
{value: 'left', label: 'Left'},
17+
{value: 'center', label: 'Center'},
18+
{value: 'right', label: 'Right'},
19+
];
20+
format(tool: string) {
21+
console.log(`Tool activated: ${tool}`);
22+
this._liveAnnouncer.announce(`${tool} applied`, 'polite');
23+
}
24+
test(action: string) {
25+
console.log(`Action triggered: ${action}`);
26+
this._liveAnnouncer.announce(`${action} button activated`, 'polite');
27+
}
28+
}

0 commit comments

Comments
 (0)