ng-luna 0.3.0 → 0.3.2
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 +119 -0
- package/THIRD-PARTY-LICENSES.md +33 -0
- package/controls/icons/icon.component.d.ts +12 -0
- package/controls/icons/index.d.ts +2 -0
- package/controls/index.d.ts +1 -0
- package/fesm2022/ng-luna.mjs +27 -2
- package/fesm2022/ng-luna.mjs.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -94,6 +94,74 @@ Once configured, you can use the fonts directly in your CSS/SCSS:
|
|
|
94
94
|
|
|
95
95
|
**Note:** The ng-luna components will automatically use these fonts once they are available in your assets folder.
|
|
96
96
|
|
|
97
|
+
### Using Icons
|
|
98
|
+
|
|
99
|
+
ng-luna includes [Lucide Icons](https://lucide.dev/), a comprehensive set of over 1,400 clean, consistent SVG icons that complement the Windows XP aesthetic. Icons are provided as **tree-shakable ES modules** - only the icons you import will be included in your bundle.
|
|
100
|
+
|
|
101
|
+
#### Import Icons
|
|
102
|
+
|
|
103
|
+
```typescript
|
|
104
|
+
import { IconComponent, Home, Save, Folder, Settings } from 'ng-luna';
|
|
105
|
+
|
|
106
|
+
@Component({
|
|
107
|
+
imports: [ IconComponent ],
|
|
108
|
+
template: `
|
|
109
|
+
<luna-icon [svg]="homeIcon" size="24"></luna-icon>
|
|
110
|
+
<luna-icon [svg]="saveIcon" size="16"></luna-icon>
|
|
111
|
+
`
|
|
112
|
+
})
|
|
113
|
+
export class MyComponent {
|
|
114
|
+
homeIcon = Home;
|
|
115
|
+
saveIcon = Save;
|
|
116
|
+
}
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
#### Icon Component
|
|
120
|
+
|
|
121
|
+
**Selector:** `luna-icon`
|
|
122
|
+
|
|
123
|
+
##### Inputs
|
|
124
|
+
|
|
125
|
+
- `svg: string` (required) - The SVG string from an imported Lucide icon
|
|
126
|
+
- `size?: IconSize` - Icon size: `'12' | '16' | '20' | '24' | '32' | '48'` (default: `'24'`)
|
|
127
|
+
|
|
128
|
+
##### Example
|
|
129
|
+
|
|
130
|
+
```html
|
|
131
|
+
<luna-icon [svg]="homeIcon" size="24"></luna-icon>
|
|
132
|
+
<luna-icon [svg]="saveIcon" size="16"></luna-icon>
|
|
133
|
+
|
|
134
|
+
<luna-button>
|
|
135
|
+
<luna-icon [svg]="folderIcon" size="16"></luna-icon>
|
|
136
|
+
Open Folder
|
|
137
|
+
</luna-button>
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
#### Available Icons
|
|
141
|
+
|
|
142
|
+
Lucide provides over 1,400 icons. Browse all available icons at [lucide.dev/icons](https://lucide.dev/icons).
|
|
143
|
+
|
|
144
|
+
**Common icons for XP-style interfaces:**
|
|
145
|
+
- `Home`, `Folder`, `File` - Navigation
|
|
146
|
+
- `Settings`, `Tool`, `Wrench` - Configuration
|
|
147
|
+
- `User`, `Users` - User management
|
|
148
|
+
- `Save`, `Download`, `Upload` - File operations
|
|
149
|
+
- `X`, `Minimize2`, `Maximize2` - Window controls
|
|
150
|
+
- `ChevronLeft`, `ChevronRight`, `ChevronDown` - Navigation arrows
|
|
151
|
+
- `Check`, `AlertTriangle` - Status indicators
|
|
152
|
+
|
|
153
|
+
#### Tree-Shaking
|
|
154
|
+
|
|
155
|
+
Icons use ES modules for automatic tree-shaking. Only imported icons are included in your final bundle:
|
|
156
|
+
|
|
157
|
+
```typescript
|
|
158
|
+
// ✅ Good: Only Home and Save icons included in bundle
|
|
159
|
+
import { Home, Save } from 'ng-luna';
|
|
160
|
+
|
|
161
|
+
// ❌ Avoid: Imports entire icon library
|
|
162
|
+
import * as Icons from 'ng-luna';
|
|
163
|
+
```
|
|
164
|
+
|
|
97
165
|
## Components
|
|
98
166
|
|
|
99
167
|
All components extend the `LunaControl` base class, which provides the following common inputs available on every component:
|
|
@@ -185,6 +253,45 @@ The `luna-fieldset` component provides a Windows XP-styled fieldset for grouping
|
|
|
185
253
|
</luna-fieldset>
|
|
186
254
|
```
|
|
187
255
|
|
|
256
|
+
### Icon Component
|
|
257
|
+
|
|
258
|
+
The `luna-icon` component provides a convenient way to render Lucide icons with automatic sanitization and sizing.
|
|
259
|
+
|
|
260
|
+
**Selector:** `luna-icon`
|
|
261
|
+
|
|
262
|
+
**Note:** This component does not inherit from `LunaControl` and does not have the common base inputs.
|
|
263
|
+
|
|
264
|
+
#### Inputs
|
|
265
|
+
|
|
266
|
+
- `svg: string` (required) - The SVG string from an imported Lucide icon
|
|
267
|
+
- `size?: IconSize` - Icon size: `'12' | '16' | '20' | '24' | '32' | '48'` (default: `'24'`)
|
|
268
|
+
|
|
269
|
+
#### Example
|
|
270
|
+
|
|
271
|
+
```html
|
|
272
|
+
<luna-icon [svg]="homeIcon" size="24"></luna-icon>
|
|
273
|
+
|
|
274
|
+
<luna-button>
|
|
275
|
+
<luna-icon [svg]="saveIcon" size="16"></luna-icon>
|
|
276
|
+
Save File
|
|
277
|
+
</luna-button>
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
```typescript
|
|
281
|
+
import { IconComponent, Home, Save } from 'ng-luna';
|
|
282
|
+
|
|
283
|
+
@Component({
|
|
284
|
+
imports: [ IconComponent ],
|
|
285
|
+
// ...
|
|
286
|
+
})
|
|
287
|
+
export class MyComponent {
|
|
288
|
+
homeIcon = Home;
|
|
289
|
+
saveIcon = Save;
|
|
290
|
+
}
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
For more information on importing and using icons, see the [Using Icons](#using-icons) section above.
|
|
294
|
+
|
|
188
295
|
### Input Component
|
|
189
296
|
|
|
190
297
|
The `luna-input` component provides a Windows XP-styled text input that implements `ControlValueAccessor` for reactive forms support.
|
|
@@ -494,12 +601,23 @@ export class MyComponent
|
|
|
494
601
|
|
|
495
602
|
## Development
|
|
496
603
|
|
|
604
|
+
For a detailed explanation of the library architecture, build process, and how the public API works, see [ARCHITECTURE.md](ARCHITECTURE.md).
|
|
605
|
+
|
|
497
606
|
### Building the Library
|
|
498
607
|
|
|
499
608
|
```bash
|
|
500
609
|
npm run build
|
|
501
610
|
```
|
|
502
611
|
|
|
612
|
+
The build process uses `ng-packagr` to:
|
|
613
|
+
- Compile TypeScript to ESM modules
|
|
614
|
+
- Generate type definitions
|
|
615
|
+
- Bundle everything into `dist/fesm2022/ng-luna.mjs`
|
|
616
|
+
- Copy assets (fonts, SCSS themes)
|
|
617
|
+
- Create a production-ready `package.json`
|
|
618
|
+
|
|
619
|
+
All exports go through `src/public-api.ts` → `src/controls/index.ts` → individual components.
|
|
620
|
+
|
|
503
621
|
### Project Structure
|
|
504
622
|
|
|
505
623
|
```
|
|
@@ -532,6 +650,7 @@ ng-luna/
|
|
|
532
650
|
## Dependencies
|
|
533
651
|
|
|
534
652
|
- **@ibm/plex** (v6.4.1) - IBM Plex font families (fonts are bundled with the library)
|
|
653
|
+
- **lucide-static** - Lucide icon set (icons are bundled with the library)
|
|
535
654
|
- **@angular/cdk** (19.x.x) - Angular Component Dev Kit
|
|
536
655
|
|
|
537
656
|
## Publishing
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Third-Party Licenses
|
|
2
|
+
|
|
3
|
+
ng-luna includes and redistributes the following open-source software:
|
|
4
|
+
|
|
5
|
+
## IBM Plex Fonts
|
|
6
|
+
|
|
7
|
+
**License**: SIL Open Font License 1.1
|
|
8
|
+
**Copyright**: © 2017 IBM Corp. with Reserved Font Name "Plex"
|
|
9
|
+
**Location**: `assets/fonts/`
|
|
10
|
+
**Website**: https://github.com/IBM/plex
|
|
11
|
+
|
|
12
|
+
The SIL Open Font License allows the fonts to be bundled, embedded, redistributed and/or sold with any software. The full license text is available at: http://scripts.sil.org/OFL
|
|
13
|
+
|
|
14
|
+
## Lucide Icons
|
|
15
|
+
|
|
16
|
+
**License**: ISC License
|
|
17
|
+
**Copyright**: Portions by Cole Bemis 2013-2022 (Feather, MIT). All other copyright by Lucide Contributors 2022.
|
|
18
|
+
**Location**: Bundled in `fesm2022/ng-luna.mjs`
|
|
19
|
+
**Website**: https://lucide.dev/
|
|
20
|
+
|
|
21
|
+
Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the copyright notice and permission notice appear in all copies.
|
|
22
|
+
|
|
23
|
+
## Angular CDK
|
|
24
|
+
|
|
25
|
+
**License**: MIT License
|
|
26
|
+
**Copyright**: Google LLC
|
|
27
|
+
**Usage**: Peer dependency
|
|
28
|
+
**Website**: https://material.angular.io/cdk
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
All bundled third-party software is used in compliance with their respective licenses. The full license texts are preserved in the original package files within `node_modules` during development.
|
|
33
|
+
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export type IconSize = '12' | '16' | '20' | '24' | '32' | '48';
|
|
4
|
+
export declare class IconComponent {
|
|
5
|
+
private sanitizer;
|
|
6
|
+
size: IconSize;
|
|
7
|
+
set svg(value: string);
|
|
8
|
+
sanitizedSvg: SafeHtml;
|
|
9
|
+
constructor(sanitizer: DomSanitizer);
|
|
10
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IconComponent, never>;
|
|
11
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<IconComponent, "luna-icon", never, { "size": { "alias": "size"; "required": false; }; "svg": { "alias": "svg"; "required": true; }; }, {}, never, never, true, never>;
|
|
12
|
+
}
|
package/controls/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from './button/button.component';
|
|
2
2
|
export * from './checkbox/checkbox.component';
|
|
3
3
|
export * from './fieldset/fieldset.component';
|
|
4
|
+
export * from './icons';
|
|
4
5
|
export * from './input/input.component';
|
|
5
6
|
export * from './progress/progress.component';
|
|
6
7
|
export * from './radio/radio.component';
|
package/fesm2022/ng-luna.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Input, Directive, EventEmitter, Output, Component, forwardRef, ViewChild, ViewChildren, ContentChildren } from '@angular/core';
|
|
2
|
+
import { Input, Directive, EventEmitter, Output, Component, forwardRef, SecurityContext, ViewChild, ViewChildren, ContentChildren } from '@angular/core';
|
|
3
3
|
import * as i3 from '@angular/cdk/bidi';
|
|
4
4
|
import { BidiModule } from '@angular/cdk/bidi';
|
|
5
5
|
import * as i1 from '@angular/cdk/a11y';
|
|
@@ -9,6 +9,8 @@ import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
|
9
9
|
import { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';
|
|
10
10
|
import * as i2$1 from '@angular/common';
|
|
11
11
|
import { CommonModule } from '@angular/common';
|
|
12
|
+
import * as i1$1 from '@angular/platform-browser';
|
|
13
|
+
export * from 'lucide-static';
|
|
12
14
|
import { TextFieldModule } from '@angular/cdk/text-field';
|
|
13
15
|
import * as i4 from '@angular/cdk/clipboard';
|
|
14
16
|
import * as i3$1 from '@angular/cdk/drag-drop';
|
|
@@ -192,6 +194,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImpo
|
|
|
192
194
|
type: Input
|
|
193
195
|
}] } });
|
|
194
196
|
|
|
197
|
+
class IconComponent {
|
|
198
|
+
sanitizer;
|
|
199
|
+
size = '24';
|
|
200
|
+
set svg(value) {
|
|
201
|
+
this.sanitizedSvg = this.sanitizer.sanitize(SecurityContext.HTML, value) || '';
|
|
202
|
+
}
|
|
203
|
+
sanitizedSvg = '';
|
|
204
|
+
constructor(sanitizer) {
|
|
205
|
+
this.sanitizer = sanitizer;
|
|
206
|
+
}
|
|
207
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IconComponent, deps: [{ token: i1$1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
|
|
208
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: IconComponent, isStandalone: true, selector: "luna-icon", inputs: { size: "size", svg: "svg" }, ngImport: i0, template: `<span [innerHTML]="sanitizedSvg"></span>`, isInline: true, styles: [":host{display:inline-flex;align-items:center;justify-content:center}:host span{display:inline-flex;align-items:center;justify-content:center;line-height:0}:host svg{display:block}:host([size=\"12\"]) svg{width:12px;height:12px}:host([size=\"16\"]) svg{width:16px;height:16px}:host([size=\"20\"]) svg{width:20px;height:20px}:host([size=\"24\"]) svg{width:24px;height:24px}:host([size=\"32\"]) svg{width:32px;height:32px}:host([size=\"48\"]) svg{width:48px;height:48px}\n"] });
|
|
209
|
+
}
|
|
210
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: IconComponent, decorators: [{
|
|
211
|
+
type: Component,
|
|
212
|
+
args: [{ selector: 'luna-icon', standalone: true, template: `<span [innerHTML]="sanitizedSvg"></span>`, styles: [":host{display:inline-flex;align-items:center;justify-content:center}:host span{display:inline-flex;align-items:center;justify-content:center;line-height:0}:host svg{display:block}:host([size=\"12\"]) svg{width:12px;height:12px}:host([size=\"16\"]) svg{width:16px;height:16px}:host([size=\"20\"]) svg{width:20px;height:20px}:host([size=\"24\"]) svg{width:24px;height:24px}:host([size=\"32\"]) svg{width:32px;height:32px}:host([size=\"48\"]) svg{width:48px;height:48px}\n"] }]
|
|
213
|
+
}], ctorParameters: () => [{ type: i1$1.DomSanitizer }], propDecorators: { size: [{
|
|
214
|
+
type: Input
|
|
215
|
+
}], svg: [{
|
|
216
|
+
type: Input,
|
|
217
|
+
args: [{ required: true }]
|
|
218
|
+
}] } });
|
|
219
|
+
|
|
195
220
|
class InputComponent extends LunaControl {
|
|
196
221
|
elementRef;
|
|
197
222
|
focusMonitor;
|
|
@@ -843,5 +868,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImpo
|
|
|
843
868
|
* Generated bundle index. Do not edit.
|
|
844
869
|
*/
|
|
845
870
|
|
|
846
|
-
export { ButtonComponent, CheckboxComponent, FieldsetComponent, InputComponent, ProgressComponent, RadioComponent, SelectComponent, SliderComponent, TabComponent, TabsComponent, TextareaComponent, WindowComponent };
|
|
871
|
+
export { ButtonComponent, CheckboxComponent, FieldsetComponent, IconComponent, InputComponent, ProgressComponent, RadioComponent, SelectComponent, SliderComponent, TabComponent, TabsComponent, TextareaComponent, WindowComponent };
|
|
847
872
|
//# sourceMappingURL=ng-luna.mjs.map
|
package/fesm2022/ng-luna.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-luna.mjs","sources":["../../src/controls/luna-control.ts","../../src/controls/button/button.component.ts","../../src/controls/button/button.component.html","../../src/controls/checkbox/checkbox.component.ts","../../src/controls/checkbox/checkbox.component.html","../../src/controls/fieldset/fieldset.component.ts","../../src/controls/fieldset/fieldset.component.html","../../src/controls/input/input.component.ts","../../src/controls/input/input.component.html","../../src/controls/progress/progress.component.ts","../../src/controls/progress/progress.component.html","../../src/controls/radio/radio.component.ts","../../src/controls/radio/radio.component.html","../../src/controls/select/select.component.ts","../../src/controls/select/select.component.html","../../src/controls/slider/slider.component.ts","../../src/controls/slider/slider.component.html","../../src/controls/tabs/tab.component.ts","../../src/controls/tabs/tab.component.html","../../src/controls/tabs/tabs.component.ts","../../src/controls/tabs/tabs.component.html","../../src/controls/textarea/textarea.component.ts","../../src/controls/textarea/textarea.component.html","../../src/controls/window/window.component.ts","../../src/controls/window/window.component.html","../../src/public-api.ts","../../src/ng-luna.ts"],"sourcesContent":["import { Directive, Input } from '@angular/core';\n\n// Base class for all Luna components providing common form element attributes\n@Directive()\nexport abstract class LunaControl\n{\n @Input()\n public id?: string;\n\n @Input()\n public name?: string;\n\n @Input()\n public disabled = false;\n\n @Input()\n public tabindex?: number;\n\n @Input()\n public autofocus = false;\n}\n","import { Component, Input, Output, EventEmitter, ElementRef, OnDestroy, AfterViewInit } from '@angular/core';\nimport { BidiModule, Dir } from '@angular/cdk/bidi';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { Platform } from '@angular/cdk/platform';\n\nimport { LunaControl } from '../luna-control';\n\nexport type ButtonType = 'button' | 'submit' | 'reset';\n\nexport type FormEnctype = 'application/x-www-form-urlencoded' | 'multipart/form-data' | 'text/plain';\n\nexport type FormMethod = 'get' | 'post';\n\nexport type FormTarget = '_self' | '_blank' | '_parent' | '_top';\n\nexport type PopoverTargetAction = 'show' | 'hide' | 'toggle';\n\n@Component({\n selector: 'luna-button',\n standalone: true,\n imports: [ BidiModule ],\n templateUrl: './button.component.html',\n styleUrls: [ './button.component.scss' ]\n})\nexport class ButtonComponent\n extends LunaControl implements AfterViewInit, OnDestroy\n{\n @Input()\n public command?: string;\n\n @Input()\n public commandfor?: string;\n\n @Input()\n public form?: string;\n\n @Input()\n public formaction?: string;\n\n @Input()\n public formenctype?: FormEnctype;\n\n @Input()\n public formmethod?: FormMethod;\n\n @Input()\n public formnovalidate = false;\n\n @Input()\n public formtarget?: FormTarget;\n\n @Input()\n public popovertarget?: string;\n\n @Input()\n public popovertargetaction?: PopoverTargetAction;\n\n @Input()\n public type: ButtonType = 'button';\n\n @Input()\n public value?: string;\n\n @Output()\n public click = new EventEmitter<MouseEvent>();\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private focusMonitor: FocusMonitor,\n public platform: Platform,\n public dir: Dir\n )\n {\n super();\n }\n\n public ngAfterViewInit(): void\n {\n this.focusMonitor.monitor(this.elementRef);\n }\n\n public ngOnDestroy(): void\n {\n this.focusMonitor.stopMonitoring(this.elementRef);\n }\n\n public onClick(event: MouseEvent): void\n {\n if (this.disabled)\n {\n event.preventDefault();\n event.stopImmediatePropagation();\n return;\n }\n this.click.emit(event);\n }\n}\n","<button\n [attr.autofocus]=\"autofocus || null\"\n [attr.command]=\"command\"\n [attr.commandfor]=\"commandfor\"\n [disabled]=\"disabled\"\n [attr.form]=\"form\"\n [attr.formaction]=\"formaction\"\n [attr.formenctype]=\"formenctype\"\n [attr.formmethod]=\"formmethod\"\n [attr.formnovalidate]=\"formnovalidate || null\"\n [attr.formtarget]=\"formtarget\"\n [attr.id]=\"id\"\n [attr.name]=\"name\"\n [attr.popovertarget]=\"popovertarget\"\n [attr.popovertargetaction]=\"popovertargetaction\"\n [attr.tabindex]=\"tabindex\"\n [attr.type]=\"type\"\n [attr.value]=\"value\"\n (click)=\"onClick($event)\">\n <ng-content></ng-content>\n</button>\n","import { Component, Input, Output, EventEmitter, forwardRef, ElementRef, OnDestroy, AfterViewInit } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { FocusMonitor, LiveAnnouncer } from '@angular/cdk/a11y';\nimport { Platform } from '@angular/cdk/platform';\n\nimport { LunaControl } from '../luna-control';\n\n@Component({\n selector: 'luna-checkbox',\n standalone: true,\n templateUrl: './checkbox.component.html',\n styleUrls: [ './checkbox.component.scss' ],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxComponent),\n multi: true\n }]\n})\nexport class CheckboxComponent\n extends LunaControl implements ControlValueAccessor, AfterViewInit, OnDestroy\n{\n @Input()\n public label?: string;\n\n @Input()\n public value?: string;\n\n @Output()\n public change = new EventEmitter<boolean>();\n\n public checked = false;\n\n private onChange: (value: boolean) => void = () => {};\n private onTouched: () => void = () => {};\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private focusMonitor: FocusMonitor,\n private liveAnnouncer: LiveAnnouncer,\n public platform: Platform\n )\n {\n super();\n }\n\n public ngAfterViewInit(): void\n {\n this.focusMonitor.monitor(this.elementRef);\n }\n\n public ngOnDestroy(): void\n {\n this.focusMonitor.stopMonitoring(this.elementRef);\n }\n\n public onCheckboxChange(event: Event): void\n {\n const target = event.target as HTMLInputElement;\n this.checked = target.checked;\n const label = this.label || 'checkbox';\n const state = this.checked ? 'checked' : 'unchecked';\n this.liveAnnouncer.announce(`${label} ${state}`, 'polite');\n this.onChange(this.checked);\n this.onTouched();\n this.change.emit(this.checked);\n }\n\n public writeValue(value: boolean): void\n {\n this.checked = coerceBooleanProperty(value);\n }\n\n public registerOnChange(fn: (value: boolean) => void): void\n {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void\n {\n this.onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void\n {\n this.disabled = isDisabled;\n }\n}\n","<input\n [attr.autofocus]=\"autofocus || null\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [attr.id]=\"id || name\"\n [attr.name]=\"name\"\n [attr.tabindex]=\"tabindex\"\n type=\"checkbox\"\n [attr.value]=\"value\"\n (change)=\"onCheckboxChange($event)\">\n<label [attr.for]=\"id || name\">\n <ng-content></ng-content>{{ label }}\n</label>\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { LunaControl } from '../luna-control';\n\n@Component({\n imports: [ CommonModule ],\n selector: 'luna-fieldset',\n standalone: true,\n styleUrls: [ './fieldset.component.scss' ],\n templateUrl: './fieldset.component.html'\n})\nexport class FieldsetComponent extends LunaControl\n{\n @Input()\n public legend?: string;\n}\n","<fieldset\n [attr.autofocus]=\"autofocus || null\"\n [attr.id]=\"id\"\n [attr.name]=\"name\"\n [attr.tabindex]=\"tabindex\">\n <legend *ngIf=\"legend\">{{ legend }}</legend>\n <ng-content></ng-content>\n</fieldset>\n","import { Component, Input, Output, EventEmitter, forwardRef, ElementRef, OnDestroy, AfterViewInit, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FocusMonitor, LiveAnnouncer } from '@angular/cdk/a11y';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { Platform } from '@angular/cdk/platform';\nimport { BidiModule, Dir } from '@angular/cdk/bidi';\nimport { ClipboardModule, Clipboard } from '@angular/cdk/clipboard';\n\nimport { LunaControl } from '../luna-control';\n\nexport type InputType = 'text' | 'password' | 'email';\n\n@Component({\n selector: 'luna-input',\n standalone: true,\n imports: [ TextFieldModule, BidiModule ],\n templateUrl: './input.component.html',\n styleUrls: [ './input.component.scss' ],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InputComponent),\n multi: true\n }]\n})\nexport class InputComponent\n extends LunaControl implements ControlValueAccessor, AfterViewInit, OnDestroy\n{\n @Input()\n public placeholder?: string;\n\n @Input()\n public readonly = false;\n\n @Input()\n public type: InputType = 'text';\n\n @Output()\n public change = new EventEmitter<string>();\n\n @Output()\n public blur = new EventEmitter<FocusEvent>();\n\n public value = '';\n\n private onChange: (value: string) => void = () => {};\n private onTouched: () => void = () => {};\n\n @ViewChild('inputElement', { static: false })\n public inputElement?: ElementRef<HTMLInputElement>;\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private focusMonitor: FocusMonitor,\n private liveAnnouncer: LiveAnnouncer,\n public platform: Platform,\n public dir: Dir,\n private clipboard: Clipboard\n )\n {\n super();\n }\n\n public ngAfterViewInit(): void\n {\n this.focusMonitor.monitor(this.elementRef);\n }\n\n public ngOnDestroy(): void\n {\n this.focusMonitor.stopMonitoring(this.elementRef);\n }\n\n public onInputChange(event: Event): void\n {\n const target = event.target as HTMLInputElement;\n this.value = target.value;\n this.onChange(this.value);\n this.change.emit(this.value);\n }\n\n public onInputBlur(event: FocusEvent): void\n {\n this.onTouched();\n if (this.value && this.id)\n {\n this.liveAnnouncer.announce(`${this.id} value is ${this.value}`, 'polite');\n }\n this.blur.emit(event);\n }\n\n public writeValue(value: string): void\n {\n this.value = value ?? '';\n }\n\n public registerOnChange(fn: (value: string) => void): void\n {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void\n {\n this.onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void\n {\n this.disabled = isDisabled;\n }\n}\n","<input\n #inputElement\n [attr.autofocus]=\"autofocus || null\"\n [disabled]=\"disabled\"\n [attr.id]=\"id || name\"\n [attr.name]=\"name\"\n [attr.placeholder]=\"placeholder\"\n [readonly]=\"readonly\"\n [attr.tabindex]=\"tabindex\"\n [attr.type]=\"type\"\n [value]=\"value\"\n (blur)=\"onInputBlur($event)\"\n (input)=\"onInputChange($event)\">\n","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NumberInput, coerceNumberProperty } from '@angular/cdk/coercion';\nimport { LiveAnnouncer } from '@angular/cdk/a11y';\n\nimport { LunaControl } from '../luna-control';\n\n@Component({\n selector: 'luna-progress',\n standalone: true,\n imports: [ CommonModule ],\n templateUrl: './progress.component.html',\n styleUrls: [ './progress.component.scss' ]\n})\nexport class ProgressComponent\n extends LunaControl implements OnChanges\n{\n @Input()\n public set max(value: NumberInput)\n {\n this._max = coerceNumberProperty(value, 100);\n }\n\n public get max(): number\n {\n return this._max;\n }\n\n @Input()\n public set value(value: NumberInput | undefined)\n {\n this._value = value !== undefined ? coerceNumberProperty(value) : undefined;\n }\n\n public get value(): number | undefined\n {\n return this._value;\n }\n\n private _max = 100;\n private _value?: number;\n private _previousValue?: number;\n\n constructor(\n private liveAnnouncer: LiveAnnouncer\n )\n {\n super();\n }\n\n public ngOnChanges(changes: SimpleChanges): void\n {\n if (changes['value'] && this._value !== undefined)\n {\n const percentage = Math.round((this._value / this._max) * 100);\n const milestones = [ 0, 25, 50, 75, 100 ];\n const previousPercentage = this._previousValue !== undefined\n ? Math.round((this._previousValue / this._max) * 100)\n : undefined;\n\n if (previousPercentage === undefined || milestones.includes(percentage))\n {\n if (previousPercentage === undefined || Math.abs(percentage - (previousPercentage || 0)) >= 10)\n {\n this.liveAnnouncer.announce(`Progress ${percentage} percent`, 'polite');\n }\n }\n this._previousValue = this._value;\n }\n }\n}\n","<progress\n [attr.autofocus]=\"autofocus || null\"\n [attr.id]=\"id\"\n [attr.max]=\"max\"\n [attr.name]=\"name\"\n [attr.tabindex]=\"tabindex\"\n [attr.value]=\"value\"></progress>\n","import { Component, Input, Output, EventEmitter, forwardRef, ElementRef, OnDestroy, AfterViewInit } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FocusMonitor, LiveAnnouncer } from '@angular/cdk/a11y';\nimport { Platform } from '@angular/cdk/platform';\n\nimport { LunaControl } from '../luna-control';\n\n@Component({\n selector: 'luna-radio',\n standalone: true,\n templateUrl: './radio.component.html',\n styleUrls: [ './radio.component.scss' ],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioComponent),\n multi: true\n }]\n})\nexport class RadioComponent\n extends LunaControl implements ControlValueAccessor, AfterViewInit, OnDestroy\n{\n @Input()\n public label?: string;\n\n @Input()\n public value?: string;\n\n @Output()\n public change = new EventEmitter<string>();\n\n public checked = false;\n\n private onChange: (value: string | null) => void = () => {};\n private onTouched: () => void = () => {};\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private focusMonitor: FocusMonitor,\n private liveAnnouncer: LiveAnnouncer,\n public platform: Platform\n )\n {\n super();\n }\n\n public ngAfterViewInit(): void\n {\n this.focusMonitor.monitor(this.elementRef);\n }\n\n public ngOnDestroy(): void\n {\n this.focusMonitor.stopMonitoring(this.elementRef);\n }\n\n public onRadioChange(event: Event): void\n {\n const target = event.target as HTMLInputElement;\n this.checked = target.checked;\n if (this.checked)\n {\n const label = this.label || this.value || 'radio option';\n this.liveAnnouncer.announce(`${label} selected`, 'polite');\n }\n this.onChange(this.checked ? this.value ?? null : null);\n this.onTouched();\n if (this.value)\n {\n this.change.emit(this.value);\n }\n }\n\n public writeValue(value: string | null): void\n {\n this.checked = value === this.value;\n }\n\n public registerOnChange(fn: (value: string | null) => void): void\n {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void\n {\n this.onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void\n {\n this.disabled = isDisabled;\n }\n}\n","<input\n [attr.autofocus]=\"autofocus || null\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [attr.id]=\"id || name\"\n [attr.name]=\"name\"\n [attr.tabindex]=\"tabindex\"\n type=\"radio\"\n [attr.value]=\"value\"\n (change)=\"onRadioChange($event)\">\n<label [attr.for]=\"id || name\">\n <ng-content></ng-content>{{ label }}\n</label>\n","import { Component, Input, Output, EventEmitter, forwardRef, ElementRef, OnDestroy, AfterViewInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FocusMonitor, LiveAnnouncer } from '@angular/cdk/a11y';\nimport { Platform } from '@angular/cdk/platform';\n\nimport { LunaControl } from '../luna-control';\n\n@Component({\n selector: 'luna-select',\n standalone: true,\n imports: [ CommonModule ],\n templateUrl: './select.component.html',\n styleUrls: [ './select.component.scss' ],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectComponent),\n multi: true\n }]\n})\nexport class SelectComponent\n extends LunaControl implements ControlValueAccessor, AfterViewInit, OnDestroy\n{\n\n @Output()\n public change = new EventEmitter<string>();\n\n public value = '';\n\n private onChange: (value: string) => void = () => {};\n private onTouched: () => void = () => {};\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private focusMonitor: FocusMonitor,\n private liveAnnouncer: LiveAnnouncer,\n public platform: Platform\n )\n {\n super();\n }\n\n public ngAfterViewInit(): void\n {\n this.focusMonitor.monitor(this.elementRef);\n }\n\n public ngOnDestroy(): void\n {\n this.focusMonitor.stopMonitoring(this.elementRef);\n }\n\n public onSelectChange(event: Event): void\n {\n const target = event.target as HTMLSelectElement;\n this.value = target.value;\n const selectedOption = target.options[target.selectedIndex];\n const optionText = selectedOption?.textContent || this.value;\n this.liveAnnouncer.announce(`Selected ${optionText}`, 'polite');\n this.onChange(this.value);\n this.onTouched();\n this.change.emit(this.value);\n }\n\n public writeValue(value: string): void\n {\n this.value = value ?? '';\n }\n\n public registerOnChange(fn: (value: string) => void): void\n {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void\n {\n this.onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void\n {\n this.disabled = isDisabled;\n }\n}\n","<select\n [attr.autofocus]=\"autofocus || null\"\n [disabled]=\"disabled\"\n [attr.id]=\"id || name\"\n [attr.name]=\"name\"\n [attr.tabindex]=\"tabindex\"\n [value]=\"value\"\n (change)=\"onSelectChange($event)\">\n <ng-content></ng-content>\n</select>\n","import { Component, Input, Output, EventEmitter, forwardRef, ElementRef, OnDestroy, AfterViewInit } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { FocusMonitor, LiveAnnouncer } from '@angular/cdk/a11y';\nimport { NumberInput, coerceNumberProperty } from '@angular/cdk/coercion';\nimport { Platform } from '@angular/cdk/platform';\nimport { LunaControl } from '../luna-control';\n\n@Component({\n selector: 'luna-slider',\n standalone: true,\n imports: [ CommonModule ],\n templateUrl: './slider.component.html',\n styleUrls: [ './slider.component.scss' ],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SliderComponent),\n multi: true\n }]\n})\nexport class SliderComponent\n extends LunaControl implements ControlValueAccessor, AfterViewInit, OnDestroy\n{\n @Input()\n public boxIndicator = false;\n\n @Input()\n public set max(value: NumberInput)\n {\n this._max = coerceNumberProperty(value, 100);\n }\n\n public get max(): number\n {\n return this._max;\n }\n\n @Input()\n public set min(value: NumberInput)\n {\n this._min = coerceNumberProperty(value, 0);\n }\n\n public get min(): number\n {\n return this._min;\n }\n\n @Input()\n public set step(value: NumberInput)\n {\n this._step = coerceNumberProperty(value, 1);\n }\n\n public get step(): number\n {\n return this._step;\n }\n\n @Input()\n public vertical = false;\n\n @Output()\n public change = new EventEmitter<number>();\n\n public value = 0;\n\n private _max = 100;\n private _min = 0;\n private _step = 1;\n\n private onChange: (value: number) => void = () => {};\n private onTouched: () => void = () => {};\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private focusMonitor: FocusMonitor,\n private liveAnnouncer: LiveAnnouncer,\n public platform: Platform\n )\n {\n super();\n }\n\n public ngAfterViewInit(): void\n {\n this.focusMonitor.monitor(this.elementRef);\n }\n\n public ngOnDestroy(): void\n {\n this.focusMonitor.stopMonitoring(this.elementRef);\n }\n\n public onSliderChange(event: Event): void\n {\n const target = event.target as HTMLInputElement;\n this.value = Number(target.value);\n this.onChange(this.value);\n this.change.emit(this.value);\n this.liveAnnouncer.announce(`Value changed to ${this.value}`, 'polite');\n }\n\n public onSliderBlur(): void\n {\n this.onTouched();\n }\n\n public writeValue(value: number): void\n {\n this.value = coerceNumberProperty(value, 0);\n }\n\n public registerOnChange(fn: (value: number) => void): void\n {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void\n {\n this.onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void\n {\n this.disabled = isDisabled;\n }\n}\n","<div [class.is-vertical]=\"vertical\">\n <input\n [attr.autofocus]=\"autofocus || null\"\n [class.has-box-indicator]=\"boxIndicator\"\n [disabled]=\"disabled\"\n [attr.id]=\"id || name\"\n [attr.max]=\"max\"\n [attr.min]=\"min\"\n [attr.name]=\"name\"\n [attr.step]=\"step\"\n [attr.tabindex]=\"tabindex\"\n type=\"range\"\n [value]=\"value\"\n (blur)=\"onSliderBlur()\"\n (input)=\"onSliderChange($event)\">\n</div>\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'luna-tab',\n standalone: true,\n imports: [ CommonModule ],\n templateUrl: './tab.component.html',\n styleUrls: [ './tab.component.scss' ]\n})\nexport class TabComponent\n{\n @Input()\n public id!: string;\n\n @Input()\n public label!: string;\n\n public active: boolean = false;\n}\n","<div [hidden]=\"!active\" role=\"tabpanel\">\n <ng-content></ng-content>\n</div>\n","import { Component, Input, Output, EventEmitter, QueryList, ViewChildren, ContentChildren, ElementRef, AfterViewInit, AfterContentInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { A11yModule, FocusKeyManager, FocusableOption, FocusOrigin } from '@angular/cdk/a11y';\nimport { Platform } from '@angular/cdk/platform';\n\nimport { LunaControl } from '../luna-control';\nimport { TabComponent } from './tab.component';\n\nclass TabButtonFocusable implements FocusableOption\n{\n constructor(private elementRef: ElementRef<HTMLButtonElement>)\n {\n }\n\n public focus(origin?: FocusOrigin): void\n {\n this.elementRef.nativeElement.focus();\n }\n}\n\n@Component({\n selector: 'luna-tabs',\n standalone: true,\n imports: [ CommonModule, A11yModule ],\n templateUrl: './tabs.component.html',\n styleUrls: [ './tabs.component.scss' ]\n})\nexport class TabsComponent\n extends LunaControl implements AfterViewInit, AfterContentInit\n{\n @Input()\n public activeTabId?: string;\n\n @Output()\n public tabChange = new EventEmitter<string>();\n\n @ContentChildren(TabComponent)\n public tabs!: QueryList<TabComponent>;\n\n @ViewChildren('tabButton')\n public tabButtons!: QueryList<ElementRef<HTMLButtonElement>>;\n\n private keyManager?: FocusKeyManager<TabButtonFocusable>;\n\n constructor(\n public platform: Platform\n )\n {\n super();\n }\n\n public ngAfterContentInit(): void\n {\n if (!this.activeTabId && this.tabs.length > 0)\n {\n this.activeTabId = this.tabs.first.id;\n }\n\n this.updateActiveTab();\n }\n\n public ngAfterViewInit(): void\n {\n const focusableItems = this.tabButtons.map(ref => new TabButtonFocusable(ref));\n this.keyManager = new FocusKeyManager(focusableItems)\n .withHorizontalOrientation('ltr')\n .withWrap();\n\n if (this.activeTabId)\n {\n const tabsArray = this.tabs.toArray();\n const activeIndex = tabsArray.findIndex(tab => tab.id === this.activeTabId);\n if (activeIndex >= 0)\n {\n this.keyManager.setActiveItem(activeIndex);\n }\n }\n }\n\n public selectTab(tabId: string): void\n {\n this.activeTabId = tabId;\n this.updateActiveTab();\n this.tabChange.emit(tabId);\n\n const tabsArray = this.tabs.toArray();\n const activeIndex = tabsArray.findIndex(tab => tab.id === tabId);\n if (activeIndex >= 0 && this.keyManager)\n {\n this.keyManager.setActiveItem(activeIndex);\n }\n }\n\n public isActive(tabId: string): boolean\n {\n return this.activeTabId === tabId;\n }\n\n private updateActiveTab(): void\n {\n this.tabs.forEach(tab =>\n {\n tab.active = tab.id === this.activeTabId;\n });\n }\n\n public onKeyDown(event: KeyboardEvent): void\n {\n if (this.keyManager)\n {\n if (event.key === 'ArrowLeft' || event.key === 'ArrowRight')\n {\n this.keyManager.onKeydown(event);\n const activeIndex = this.keyManager.activeItemIndex;\n const tabsArray = this.tabs.toArray();\n if (activeIndex !== null && activeIndex >= 0 && activeIndex < tabsArray.length)\n {\n this.selectTab(tabsArray[activeIndex].id);\n }\n }\n }\n }\n}\n","<menu [attr.autofocus]=\"autofocus || null\" [attr.id]=\"id\" [attr.name]=\"name\" role=\"tablist\" [attr.tabindex]=\"tabindex\" (keydown)=\"onKeyDown($event)\">\n <button #tabButton *ngFor=\"let tab of tabs\" [attr.aria-selected]=\"isActive(tab.id)\" role=\"tab\" (click)=\"selectTab(tab.id)\">\n {{ tab.label }}\n </button>\n</menu>\n<ng-content></ng-content>\n","import { Component, Input, Output, EventEmitter, forwardRef, ElementRef, OnDestroy, AfterViewInit } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FocusMonitor, LiveAnnouncer } from '@angular/cdk/a11y';\nimport { Platform } from '@angular/cdk/platform';\n\nimport { LunaControl } from '../luna-control';\n\n@Component({\n selector: 'luna-textarea',\n standalone: true,\n templateUrl: './textarea.component.html',\n styleUrls: [ './textarea.component.scss' ],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TextareaComponent),\n multi: true\n }]\n})\nexport class TextareaComponent\n extends LunaControl implements ControlValueAccessor, AfterViewInit, OnDestroy\n{\n @Input()\n public cols?: number;\n\n @Input()\n public placeholder?: string;\n\n @Input()\n public readonly = false;\n\n @Input()\n public rows?: number;\n\n @Output()\n public change = new EventEmitter<string>();\n\n @Output()\n public blur = new EventEmitter<FocusEvent>();\n\n public value = '';\n\n private onChange: (value: string) => void = () => {};\n private onTouched: () => void = () => {};\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private focusMonitor: FocusMonitor,\n private liveAnnouncer: LiveAnnouncer,\n public platform: Platform\n )\n {\n super();\n }\n\n public ngAfterViewInit(): void\n {\n this.focusMonitor.monitor(this.elementRef);\n }\n\n public ngOnDestroy(): void\n {\n this.focusMonitor.stopMonitoring(this.elementRef);\n }\n\n public onTextareaChange(event: Event): void\n {\n const target = event.target as HTMLTextAreaElement;\n this.value = target.value;\n this.onChange(this.value);\n this.change.emit(this.value);\n }\n\n public onTextareaBlur(event: FocusEvent): void\n {\n this.onTouched();\n if (this.value && this.id)\n {\n const charCount = this.value.length;\n this.liveAnnouncer.announce(`${this.id} contains ${charCount} characters`, 'polite');\n }\n this.blur.emit(event);\n }\n\n public writeValue(value: string): void\n {\n this.value = value ?? '';\n }\n\n public registerOnChange(fn: (value: string) => void): void\n {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void\n {\n this.onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void\n {\n this.disabled = isDisabled;\n }\n}\n","<textarea\n [attr.autofocus]=\"autofocus || null\"\n [attr.cols]=\"cols\"\n [disabled]=\"disabled\"\n [attr.id]=\"id || name\"\n [attr.name]=\"name\"\n [attr.placeholder]=\"placeholder\"\n [readonly]=\"readonly\"\n [attr.rows]=\"rows\"\n [attr.tabindex]=\"tabindex\"\n [value]=\"value\"\n (blur)=\"onTextareaBlur($event)\"\n (input)=\"onTextareaChange($event)\"></textarea>\n","import { Component, Input, Output, EventEmitter, ElementRef, AfterViewInit, OnChanges, SimpleChanges, ViewChild } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DragDropModule, CdkDrag } from '@angular/cdk/drag-drop';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { Platform } from '@angular/cdk/platform';\n\nimport { LunaControl } from '../luna-control';\n\n@Component({\n selector: 'luna-window',\n standalone: true,\n imports: [ CommonModule, DragDropModule, ScrollingModule ],\n templateUrl: './window.component.html',\n styleUrls: [ './window.component.scss' ]\n})\nexport class WindowComponent\n extends LunaControl implements AfterViewInit, OnChanges\n{\n @Input()\n public isMaximized = false;\n\n @Input()\n public showClose = true;\n\n @Input()\n public showHelp = false;\n\n @Input()\n public showMaximize = true;\n\n @Input()\n public showMinimize = true;\n\n @Input()\n public title?: string;\n\n @Output()\n public minimize = new EventEmitter<void>();\n\n @Output()\n public maximize = new EventEmitter<void>();\n\n @Output()\n public restore = new EventEmitter<void>();\n\n @Output()\n public help = new EventEmitter<void>();\n\n @Output()\n public close = new EventEmitter<void>();\n\n @Input()\n public boundaryElement?: string;\n\n @Input()\n public scrollable = false;\n\n @Input()\n public dragDisabled = false;\n\n @ViewChild(CdkDrag, { static: false })\n private dragInstance?: CdkDrag;\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n public platform: Platform\n )\n {\n super();\n }\n\n public ngAfterViewInit(): void\n {\n this.updateDragBoundary();\n }\n\n public ngOnChanges(changes: SimpleChanges): void\n {\n if (changes['boundaryElement'])\n {\n this.updateDragBoundary();\n }\n }\n\n public get isDragDisabled(): boolean\n {\n return this.dragDisabled || this.isMaximized;\n }\n\n private updateDragBoundary(): void\n {\n if (this.dragInstance && this.boundaryElement)\n {\n const boundary = document.querySelector(this.boundaryElement);\n if (boundary)\n {\n this.dragInstance.boundaryElement = boundary as HTMLElement;\n }\n }\n }\n\n public onMinimize(): void\n {\n this.minimize.emit();\n }\n\n public onMaximize(): void\n {\n if (this.isMaximized)\n {\n this.restore.emit();\n }\n else\n {\n this.maximize.emit();\n }\n }\n\n public onHelp(): void\n {\n this.help.emit();\n }\n\n public onClose(): void\n {\n this.close.emit();\n }\n}\n","<div\n [attr.autofocus]=\"autofocus || null\"\n [cdkDragDisabled]=\"isDragDisabled\"\n class=\"window\"\n cdkDrag\n [attr.id]=\"id\"\n [attr.name]=\"name\"\n [attr.tabindex]=\"tabindex\">\n <div\n cdkDragHandle\n class=\"title-bar\">\n <div class=\"title-bar-text\">{{ title }}</div>\n <div class=\"title-bar-controls\">\n <button\n *ngIf=\"showMinimize\"\n aria-label=\"Minimize\"\n (click)=\"onMinimize()\"></button>\n <button\n *ngIf=\"showMaximize\"\n [attr.aria-label]=\"isMaximized ? 'Restore' : 'Maximize'\"\n (click)=\"onMaximize()\"></button>\n <button\n *ngIf=\"showHelp\"\n aria-label=\"Help\"\n (click)=\"onHelp()\"></button>\n <button\n *ngIf=\"showClose\"\n aria-label=\"Close\"\n (click)=\"onClose()\"></button>\n </div>\n </div>\n <ng-container *ngIf=\"scrollable; else notScrollable\">\n <div\n cdkScrollable\n class=\"window-body scrollable\">\n <ng-content></ng-content>\n </div>\n </ng-container>\n <ng-template #notScrollable>\n <div class=\"window-body\">\n <ng-content></ng-content>\n </div>\n </ng-template>\n <div class=\"status-bar\">\n <ng-content select=\"[slot='status']\"></ng-content>\n </div>\n</div>\n","/*\n * Public API Surface of ng-luna\n */\n\nexport * from './controls';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-luna.mjs","sources":["../../src/controls/luna-control.ts","../../src/controls/button/button.component.ts","../../src/controls/button/button.component.html","../../src/controls/checkbox/checkbox.component.ts","../../src/controls/checkbox/checkbox.component.html","../../src/controls/fieldset/fieldset.component.ts","../../src/controls/fieldset/fieldset.component.html","../../src/controls/icons/icon.component.ts","../../src/controls/input/input.component.ts","../../src/controls/input/input.component.html","../../src/controls/progress/progress.component.ts","../../src/controls/progress/progress.component.html","../../src/controls/radio/radio.component.ts","../../src/controls/radio/radio.component.html","../../src/controls/select/select.component.ts","../../src/controls/select/select.component.html","../../src/controls/slider/slider.component.ts","../../src/controls/slider/slider.component.html","../../src/controls/tabs/tab.component.ts","../../src/controls/tabs/tab.component.html","../../src/controls/tabs/tabs.component.ts","../../src/controls/tabs/tabs.component.html","../../src/controls/textarea/textarea.component.ts","../../src/controls/textarea/textarea.component.html","../../src/controls/window/window.component.ts","../../src/controls/window/window.component.html","../../src/public-api.ts","../../src/ng-luna.ts"],"sourcesContent":["import { Directive, Input } from '@angular/core';\n\n// Base class for all Luna components providing common form element attributes\n@Directive()\nexport abstract class LunaControl\n{\n @Input()\n public id?: string;\n\n @Input()\n public name?: string;\n\n @Input()\n public disabled = false;\n\n @Input()\n public tabindex?: number;\n\n @Input()\n public autofocus = false;\n}\n","import { Component, Input, Output, EventEmitter, ElementRef, OnDestroy, AfterViewInit } from '@angular/core';\nimport { BidiModule, Dir } from '@angular/cdk/bidi';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { Platform } from '@angular/cdk/platform';\n\nimport { LunaControl } from '../luna-control';\n\nexport type ButtonType = 'button' | 'submit' | 'reset';\n\nexport type FormEnctype = 'application/x-www-form-urlencoded' | 'multipart/form-data' | 'text/plain';\n\nexport type FormMethod = 'get' | 'post';\n\nexport type FormTarget = '_self' | '_blank' | '_parent' | '_top';\n\nexport type PopoverTargetAction = 'show' | 'hide' | 'toggle';\n\n@Component({\n selector: 'luna-button',\n standalone: true,\n imports: [ BidiModule ],\n templateUrl: './button.component.html',\n styleUrls: [ './button.component.scss' ]\n})\nexport class ButtonComponent\n extends LunaControl implements AfterViewInit, OnDestroy\n{\n @Input()\n public command?: string;\n\n @Input()\n public commandfor?: string;\n\n @Input()\n public form?: string;\n\n @Input()\n public formaction?: string;\n\n @Input()\n public formenctype?: FormEnctype;\n\n @Input()\n public formmethod?: FormMethod;\n\n @Input()\n public formnovalidate = false;\n\n @Input()\n public formtarget?: FormTarget;\n\n @Input()\n public popovertarget?: string;\n\n @Input()\n public popovertargetaction?: PopoverTargetAction;\n\n @Input()\n public type: ButtonType = 'button';\n\n @Input()\n public value?: string;\n\n @Output()\n public click = new EventEmitter<MouseEvent>();\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private focusMonitor: FocusMonitor,\n public platform: Platform,\n public dir: Dir\n )\n {\n super();\n }\n\n public ngAfterViewInit(): void\n {\n this.focusMonitor.monitor(this.elementRef);\n }\n\n public ngOnDestroy(): void\n {\n this.focusMonitor.stopMonitoring(this.elementRef);\n }\n\n public onClick(event: MouseEvent): void\n {\n if (this.disabled)\n {\n event.preventDefault();\n event.stopImmediatePropagation();\n return;\n }\n this.click.emit(event);\n }\n}\n","<button\n [attr.autofocus]=\"autofocus || null\"\n [attr.command]=\"command\"\n [attr.commandfor]=\"commandfor\"\n [disabled]=\"disabled\"\n [attr.form]=\"form\"\n [attr.formaction]=\"formaction\"\n [attr.formenctype]=\"formenctype\"\n [attr.formmethod]=\"formmethod\"\n [attr.formnovalidate]=\"formnovalidate || null\"\n [attr.formtarget]=\"formtarget\"\n [attr.id]=\"id\"\n [attr.name]=\"name\"\n [attr.popovertarget]=\"popovertarget\"\n [attr.popovertargetaction]=\"popovertargetaction\"\n [attr.tabindex]=\"tabindex\"\n [attr.type]=\"type\"\n [attr.value]=\"value\"\n (click)=\"onClick($event)\">\n <ng-content></ng-content>\n</button>\n","import { Component, Input, Output, EventEmitter, forwardRef, ElementRef, OnDestroy, AfterViewInit } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { FocusMonitor, LiveAnnouncer } from '@angular/cdk/a11y';\nimport { Platform } from '@angular/cdk/platform';\n\nimport { LunaControl } from '../luna-control';\n\n@Component({\n selector: 'luna-checkbox',\n standalone: true,\n templateUrl: './checkbox.component.html',\n styleUrls: [ './checkbox.component.scss' ],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxComponent),\n multi: true\n }]\n})\nexport class CheckboxComponent\n extends LunaControl implements ControlValueAccessor, AfterViewInit, OnDestroy\n{\n @Input()\n public label?: string;\n\n @Input()\n public value?: string;\n\n @Output()\n public change = new EventEmitter<boolean>();\n\n public checked = false;\n\n private onChange: (value: boolean) => void = () => {};\n private onTouched: () => void = () => {};\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private focusMonitor: FocusMonitor,\n private liveAnnouncer: LiveAnnouncer,\n public platform: Platform\n )\n {\n super();\n }\n\n public ngAfterViewInit(): void\n {\n this.focusMonitor.monitor(this.elementRef);\n }\n\n public ngOnDestroy(): void\n {\n this.focusMonitor.stopMonitoring(this.elementRef);\n }\n\n public onCheckboxChange(event: Event): void\n {\n const target = event.target as HTMLInputElement;\n this.checked = target.checked;\n const label = this.label || 'checkbox';\n const state = this.checked ? 'checked' : 'unchecked';\n this.liveAnnouncer.announce(`${label} ${state}`, 'polite');\n this.onChange(this.checked);\n this.onTouched();\n this.change.emit(this.checked);\n }\n\n public writeValue(value: boolean): void\n {\n this.checked = coerceBooleanProperty(value);\n }\n\n public registerOnChange(fn: (value: boolean) => void): void\n {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void\n {\n this.onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void\n {\n this.disabled = isDisabled;\n }\n}\n","<input\n [attr.autofocus]=\"autofocus || null\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [attr.id]=\"id || name\"\n [attr.name]=\"name\"\n [attr.tabindex]=\"tabindex\"\n type=\"checkbox\"\n [attr.value]=\"value\"\n (change)=\"onCheckboxChange($event)\">\n<label [attr.for]=\"id || name\">\n <ng-content></ng-content>{{ label }}\n</label>\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { LunaControl } from '../luna-control';\n\n@Component({\n imports: [ CommonModule ],\n selector: 'luna-fieldset',\n standalone: true,\n styleUrls: [ './fieldset.component.scss' ],\n templateUrl: './fieldset.component.html'\n})\nexport class FieldsetComponent extends LunaControl\n{\n @Input()\n public legend?: string;\n}\n","<fieldset\n [attr.autofocus]=\"autofocus || null\"\n [attr.id]=\"id\"\n [attr.name]=\"name\"\n [attr.tabindex]=\"tabindex\">\n <legend *ngIf=\"legend\">{{ legend }}</legend>\n <ng-content></ng-content>\n</fieldset>\n","import { Component, Input, SecurityContext } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\nexport type IconSize = '12' | '16' | '20' | '24' | '32' | '48';\n\n@Component(\n{\n selector: 'luna-icon',\n standalone: true,\n styleUrl: './icon.component.scss',\n template: `<span [innerHTML]=\"sanitizedSvg\"></span>`\n})\nexport class IconComponent\n{\n @Input()\n public size: IconSize = '24';\n\n @Input({ required: true })\n public set svg(value: string)\n {\n this.sanitizedSvg = this.sanitizer.sanitize(SecurityContext.HTML, value) || '';\n }\n\n public sanitizedSvg: SafeHtml = '';\n\n constructor(private sanitizer: DomSanitizer) {}\n}\n\n","import { Component, Input, Output, EventEmitter, forwardRef, ElementRef, OnDestroy, AfterViewInit, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FocusMonitor, LiveAnnouncer } from '@angular/cdk/a11y';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { Platform } from '@angular/cdk/platform';\nimport { BidiModule, Dir } from '@angular/cdk/bidi';\nimport { ClipboardModule, Clipboard } from '@angular/cdk/clipboard';\n\nimport { LunaControl } from '../luna-control';\n\nexport type InputType = 'text' | 'password' | 'email';\n\n@Component({\n selector: 'luna-input',\n standalone: true,\n imports: [ TextFieldModule, BidiModule ],\n templateUrl: './input.component.html',\n styleUrls: [ './input.component.scss' ],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InputComponent),\n multi: true\n }]\n})\nexport class InputComponent\n extends LunaControl implements ControlValueAccessor, AfterViewInit, OnDestroy\n{\n @Input()\n public placeholder?: string;\n\n @Input()\n public readonly = false;\n\n @Input()\n public type: InputType = 'text';\n\n @Output()\n public change = new EventEmitter<string>();\n\n @Output()\n public blur = new EventEmitter<FocusEvent>();\n\n public value = '';\n\n private onChange: (value: string) => void = () => {};\n private onTouched: () => void = () => {};\n\n @ViewChild('inputElement', { static: false })\n public inputElement?: ElementRef<HTMLInputElement>;\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private focusMonitor: FocusMonitor,\n private liveAnnouncer: LiveAnnouncer,\n public platform: Platform,\n public dir: Dir,\n private clipboard: Clipboard\n )\n {\n super();\n }\n\n public ngAfterViewInit(): void\n {\n this.focusMonitor.monitor(this.elementRef);\n }\n\n public ngOnDestroy(): void\n {\n this.focusMonitor.stopMonitoring(this.elementRef);\n }\n\n public onInputChange(event: Event): void\n {\n const target = event.target as HTMLInputElement;\n this.value = target.value;\n this.onChange(this.value);\n this.change.emit(this.value);\n }\n\n public onInputBlur(event: FocusEvent): void\n {\n this.onTouched();\n if (this.value && this.id)\n {\n this.liveAnnouncer.announce(`${this.id} value is ${this.value}`, 'polite');\n }\n this.blur.emit(event);\n }\n\n public writeValue(value: string): void\n {\n this.value = value ?? '';\n }\n\n public registerOnChange(fn: (value: string) => void): void\n {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void\n {\n this.onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void\n {\n this.disabled = isDisabled;\n }\n}\n","<input\n #inputElement\n [attr.autofocus]=\"autofocus || null\"\n [disabled]=\"disabled\"\n [attr.id]=\"id || name\"\n [attr.name]=\"name\"\n [attr.placeholder]=\"placeholder\"\n [readonly]=\"readonly\"\n [attr.tabindex]=\"tabindex\"\n [attr.type]=\"type\"\n [value]=\"value\"\n (blur)=\"onInputBlur($event)\"\n (input)=\"onInputChange($event)\">\n","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NumberInput, coerceNumberProperty } from '@angular/cdk/coercion';\nimport { LiveAnnouncer } from '@angular/cdk/a11y';\n\nimport { LunaControl } from '../luna-control';\n\n@Component({\n selector: 'luna-progress',\n standalone: true,\n imports: [ CommonModule ],\n templateUrl: './progress.component.html',\n styleUrls: [ './progress.component.scss' ]\n})\nexport class ProgressComponent\n extends LunaControl implements OnChanges\n{\n @Input()\n public set max(value: NumberInput)\n {\n this._max = coerceNumberProperty(value, 100);\n }\n\n public get max(): number\n {\n return this._max;\n }\n\n @Input()\n public set value(value: NumberInput | undefined)\n {\n this._value = value !== undefined ? coerceNumberProperty(value) : undefined;\n }\n\n public get value(): number | undefined\n {\n return this._value;\n }\n\n private _max = 100;\n private _value?: number;\n private _previousValue?: number;\n\n constructor(\n private liveAnnouncer: LiveAnnouncer\n )\n {\n super();\n }\n\n public ngOnChanges(changes: SimpleChanges): void\n {\n if (changes['value'] && this._value !== undefined)\n {\n const percentage = Math.round((this._value / this._max) * 100);\n const milestones = [ 0, 25, 50, 75, 100 ];\n const previousPercentage = this._previousValue !== undefined\n ? Math.round((this._previousValue / this._max) * 100)\n : undefined;\n\n if (previousPercentage === undefined || milestones.includes(percentage))\n {\n if (previousPercentage === undefined || Math.abs(percentage - (previousPercentage || 0)) >= 10)\n {\n this.liveAnnouncer.announce(`Progress ${percentage} percent`, 'polite');\n }\n }\n this._previousValue = this._value;\n }\n }\n}\n","<progress\n [attr.autofocus]=\"autofocus || null\"\n [attr.id]=\"id\"\n [attr.max]=\"max\"\n [attr.name]=\"name\"\n [attr.tabindex]=\"tabindex\"\n [attr.value]=\"value\"></progress>\n","import { Component, Input, Output, EventEmitter, forwardRef, ElementRef, OnDestroy, AfterViewInit } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FocusMonitor, LiveAnnouncer } from '@angular/cdk/a11y';\nimport { Platform } from '@angular/cdk/platform';\n\nimport { LunaControl } from '../luna-control';\n\n@Component({\n selector: 'luna-radio',\n standalone: true,\n templateUrl: './radio.component.html',\n styleUrls: [ './radio.component.scss' ],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioComponent),\n multi: true\n }]\n})\nexport class RadioComponent\n extends LunaControl implements ControlValueAccessor, AfterViewInit, OnDestroy\n{\n @Input()\n public label?: string;\n\n @Input()\n public value?: string;\n\n @Output()\n public change = new EventEmitter<string>();\n\n public checked = false;\n\n private onChange: (value: string | null) => void = () => {};\n private onTouched: () => void = () => {};\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private focusMonitor: FocusMonitor,\n private liveAnnouncer: LiveAnnouncer,\n public platform: Platform\n )\n {\n super();\n }\n\n public ngAfterViewInit(): void\n {\n this.focusMonitor.monitor(this.elementRef);\n }\n\n public ngOnDestroy(): void\n {\n this.focusMonitor.stopMonitoring(this.elementRef);\n }\n\n public onRadioChange(event: Event): void\n {\n const target = event.target as HTMLInputElement;\n this.checked = target.checked;\n if (this.checked)\n {\n const label = this.label || this.value || 'radio option';\n this.liveAnnouncer.announce(`${label} selected`, 'polite');\n }\n this.onChange(this.checked ? this.value ?? null : null);\n this.onTouched();\n if (this.value)\n {\n this.change.emit(this.value);\n }\n }\n\n public writeValue(value: string | null): void\n {\n this.checked = value === this.value;\n }\n\n public registerOnChange(fn: (value: string | null) => void): void\n {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void\n {\n this.onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void\n {\n this.disabled = isDisabled;\n }\n}\n","<input\n [attr.autofocus]=\"autofocus || null\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [attr.id]=\"id || name\"\n [attr.name]=\"name\"\n [attr.tabindex]=\"tabindex\"\n type=\"radio\"\n [attr.value]=\"value\"\n (change)=\"onRadioChange($event)\">\n<label [attr.for]=\"id || name\">\n <ng-content></ng-content>{{ label }}\n</label>\n","import { Component, Input, Output, EventEmitter, forwardRef, ElementRef, OnDestroy, AfterViewInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FocusMonitor, LiveAnnouncer } from '@angular/cdk/a11y';\nimport { Platform } from '@angular/cdk/platform';\n\nimport { LunaControl } from '../luna-control';\n\n@Component({\n selector: 'luna-select',\n standalone: true,\n imports: [ CommonModule ],\n templateUrl: './select.component.html',\n styleUrls: [ './select.component.scss' ],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectComponent),\n multi: true\n }]\n})\nexport class SelectComponent\n extends LunaControl implements ControlValueAccessor, AfterViewInit, OnDestroy\n{\n\n @Output()\n public change = new EventEmitter<string>();\n\n public value = '';\n\n private onChange: (value: string) => void = () => {};\n private onTouched: () => void = () => {};\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private focusMonitor: FocusMonitor,\n private liveAnnouncer: LiveAnnouncer,\n public platform: Platform\n )\n {\n super();\n }\n\n public ngAfterViewInit(): void\n {\n this.focusMonitor.monitor(this.elementRef);\n }\n\n public ngOnDestroy(): void\n {\n this.focusMonitor.stopMonitoring(this.elementRef);\n }\n\n public onSelectChange(event: Event): void\n {\n const target = event.target as HTMLSelectElement;\n this.value = target.value;\n const selectedOption = target.options[target.selectedIndex];\n const optionText = selectedOption?.textContent || this.value;\n this.liveAnnouncer.announce(`Selected ${optionText}`, 'polite');\n this.onChange(this.value);\n this.onTouched();\n this.change.emit(this.value);\n }\n\n public writeValue(value: string): void\n {\n this.value = value ?? '';\n }\n\n public registerOnChange(fn: (value: string) => void): void\n {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void\n {\n this.onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void\n {\n this.disabled = isDisabled;\n }\n}\n","<select\n [attr.autofocus]=\"autofocus || null\"\n [disabled]=\"disabled\"\n [attr.id]=\"id || name\"\n [attr.name]=\"name\"\n [attr.tabindex]=\"tabindex\"\n [value]=\"value\"\n (change)=\"onSelectChange($event)\">\n <ng-content></ng-content>\n</select>\n","import { Component, Input, Output, EventEmitter, forwardRef, ElementRef, OnDestroy, AfterViewInit } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { FocusMonitor, LiveAnnouncer } from '@angular/cdk/a11y';\nimport { NumberInput, coerceNumberProperty } from '@angular/cdk/coercion';\nimport { Platform } from '@angular/cdk/platform';\nimport { LunaControl } from '../luna-control';\n\n@Component({\n selector: 'luna-slider',\n standalone: true,\n imports: [ CommonModule ],\n templateUrl: './slider.component.html',\n styleUrls: [ './slider.component.scss' ],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SliderComponent),\n multi: true\n }]\n})\nexport class SliderComponent\n extends LunaControl implements ControlValueAccessor, AfterViewInit, OnDestroy\n{\n @Input()\n public boxIndicator = false;\n\n @Input()\n public set max(value: NumberInput)\n {\n this._max = coerceNumberProperty(value, 100);\n }\n\n public get max(): number\n {\n return this._max;\n }\n\n @Input()\n public set min(value: NumberInput)\n {\n this._min = coerceNumberProperty(value, 0);\n }\n\n public get min(): number\n {\n return this._min;\n }\n\n @Input()\n public set step(value: NumberInput)\n {\n this._step = coerceNumberProperty(value, 1);\n }\n\n public get step(): number\n {\n return this._step;\n }\n\n @Input()\n public vertical = false;\n\n @Output()\n public change = new EventEmitter<number>();\n\n public value = 0;\n\n private _max = 100;\n private _min = 0;\n private _step = 1;\n\n private onChange: (value: number) => void = () => {};\n private onTouched: () => void = () => {};\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private focusMonitor: FocusMonitor,\n private liveAnnouncer: LiveAnnouncer,\n public platform: Platform\n )\n {\n super();\n }\n\n public ngAfterViewInit(): void\n {\n this.focusMonitor.monitor(this.elementRef);\n }\n\n public ngOnDestroy(): void\n {\n this.focusMonitor.stopMonitoring(this.elementRef);\n }\n\n public onSliderChange(event: Event): void\n {\n const target = event.target as HTMLInputElement;\n this.value = Number(target.value);\n this.onChange(this.value);\n this.change.emit(this.value);\n this.liveAnnouncer.announce(`Value changed to ${this.value}`, 'polite');\n }\n\n public onSliderBlur(): void\n {\n this.onTouched();\n }\n\n public writeValue(value: number): void\n {\n this.value = coerceNumberProperty(value, 0);\n }\n\n public registerOnChange(fn: (value: number) => void): void\n {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void\n {\n this.onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void\n {\n this.disabled = isDisabled;\n }\n}\n","<div [class.is-vertical]=\"vertical\">\n <input\n [attr.autofocus]=\"autofocus || null\"\n [class.has-box-indicator]=\"boxIndicator\"\n [disabled]=\"disabled\"\n [attr.id]=\"id || name\"\n [attr.max]=\"max\"\n [attr.min]=\"min\"\n [attr.name]=\"name\"\n [attr.step]=\"step\"\n [attr.tabindex]=\"tabindex\"\n type=\"range\"\n [value]=\"value\"\n (blur)=\"onSliderBlur()\"\n (input)=\"onSliderChange($event)\">\n</div>\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'luna-tab',\n standalone: true,\n imports: [ CommonModule ],\n templateUrl: './tab.component.html',\n styleUrls: [ './tab.component.scss' ]\n})\nexport class TabComponent\n{\n @Input()\n public id!: string;\n\n @Input()\n public label!: string;\n\n public active: boolean = false;\n}\n","<div [hidden]=\"!active\" role=\"tabpanel\">\n <ng-content></ng-content>\n</div>\n","import { Component, Input, Output, EventEmitter, QueryList, ViewChildren, ContentChildren, ElementRef, AfterViewInit, AfterContentInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { A11yModule, FocusKeyManager, FocusableOption, FocusOrigin } from '@angular/cdk/a11y';\nimport { Platform } from '@angular/cdk/platform';\n\nimport { LunaControl } from '../luna-control';\nimport { TabComponent } from './tab.component';\n\nclass TabButtonFocusable implements FocusableOption\n{\n constructor(private elementRef: ElementRef<HTMLButtonElement>)\n {\n }\n\n public focus(origin?: FocusOrigin): void\n {\n this.elementRef.nativeElement.focus();\n }\n}\n\n@Component({\n selector: 'luna-tabs',\n standalone: true,\n imports: [ CommonModule, A11yModule ],\n templateUrl: './tabs.component.html',\n styleUrls: [ './tabs.component.scss' ]\n})\nexport class TabsComponent\n extends LunaControl implements AfterViewInit, AfterContentInit\n{\n @Input()\n public activeTabId?: string;\n\n @Output()\n public tabChange = new EventEmitter<string>();\n\n @ContentChildren(TabComponent)\n public tabs!: QueryList<TabComponent>;\n\n @ViewChildren('tabButton')\n public tabButtons!: QueryList<ElementRef<HTMLButtonElement>>;\n\n private keyManager?: FocusKeyManager<TabButtonFocusable>;\n\n constructor(\n public platform: Platform\n )\n {\n super();\n }\n\n public ngAfterContentInit(): void\n {\n if (!this.activeTabId && this.tabs.length > 0)\n {\n this.activeTabId = this.tabs.first.id;\n }\n\n this.updateActiveTab();\n }\n\n public ngAfterViewInit(): void\n {\n const focusableItems = this.tabButtons.map(ref => new TabButtonFocusable(ref));\n this.keyManager = new FocusKeyManager(focusableItems)\n .withHorizontalOrientation('ltr')\n .withWrap();\n\n if (this.activeTabId)\n {\n const tabsArray = this.tabs.toArray();\n const activeIndex = tabsArray.findIndex(tab => tab.id === this.activeTabId);\n if (activeIndex >= 0)\n {\n this.keyManager.setActiveItem(activeIndex);\n }\n }\n }\n\n public selectTab(tabId: string): void\n {\n this.activeTabId = tabId;\n this.updateActiveTab();\n this.tabChange.emit(tabId);\n\n const tabsArray = this.tabs.toArray();\n const activeIndex = tabsArray.findIndex(tab => tab.id === tabId);\n if (activeIndex >= 0 && this.keyManager)\n {\n this.keyManager.setActiveItem(activeIndex);\n }\n }\n\n public isActive(tabId: string): boolean\n {\n return this.activeTabId === tabId;\n }\n\n private updateActiveTab(): void\n {\n this.tabs.forEach(tab =>\n {\n tab.active = tab.id === this.activeTabId;\n });\n }\n\n public onKeyDown(event: KeyboardEvent): void\n {\n if (this.keyManager)\n {\n if (event.key === 'ArrowLeft' || event.key === 'ArrowRight')\n {\n this.keyManager.onKeydown(event);\n const activeIndex = this.keyManager.activeItemIndex;\n const tabsArray = this.tabs.toArray();\n if (activeIndex !== null && activeIndex >= 0 && activeIndex < tabsArray.length)\n {\n this.selectTab(tabsArray[activeIndex].id);\n }\n }\n }\n }\n}\n","<menu [attr.autofocus]=\"autofocus || null\" [attr.id]=\"id\" [attr.name]=\"name\" role=\"tablist\" [attr.tabindex]=\"tabindex\" (keydown)=\"onKeyDown($event)\">\n <button #tabButton *ngFor=\"let tab of tabs\" [attr.aria-selected]=\"isActive(tab.id)\" role=\"tab\" (click)=\"selectTab(tab.id)\">\n {{ tab.label }}\n </button>\n</menu>\n<ng-content></ng-content>\n","import { Component, Input, Output, EventEmitter, forwardRef, ElementRef, OnDestroy, AfterViewInit } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FocusMonitor, LiveAnnouncer } from '@angular/cdk/a11y';\nimport { Platform } from '@angular/cdk/platform';\n\nimport { LunaControl } from '../luna-control';\n\n@Component({\n selector: 'luna-textarea',\n standalone: true,\n templateUrl: './textarea.component.html',\n styleUrls: [ './textarea.component.scss' ],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TextareaComponent),\n multi: true\n }]\n})\nexport class TextareaComponent\n extends LunaControl implements ControlValueAccessor, AfterViewInit, OnDestroy\n{\n @Input()\n public cols?: number;\n\n @Input()\n public placeholder?: string;\n\n @Input()\n public readonly = false;\n\n @Input()\n public rows?: number;\n\n @Output()\n public change = new EventEmitter<string>();\n\n @Output()\n public blur = new EventEmitter<FocusEvent>();\n\n public value = '';\n\n private onChange: (value: string) => void = () => {};\n private onTouched: () => void = () => {};\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private focusMonitor: FocusMonitor,\n private liveAnnouncer: LiveAnnouncer,\n public platform: Platform\n )\n {\n super();\n }\n\n public ngAfterViewInit(): void\n {\n this.focusMonitor.monitor(this.elementRef);\n }\n\n public ngOnDestroy(): void\n {\n this.focusMonitor.stopMonitoring(this.elementRef);\n }\n\n public onTextareaChange(event: Event): void\n {\n const target = event.target as HTMLTextAreaElement;\n this.value = target.value;\n this.onChange(this.value);\n this.change.emit(this.value);\n }\n\n public onTextareaBlur(event: FocusEvent): void\n {\n this.onTouched();\n if (this.value && this.id)\n {\n const charCount = this.value.length;\n this.liveAnnouncer.announce(`${this.id} contains ${charCount} characters`, 'polite');\n }\n this.blur.emit(event);\n }\n\n public writeValue(value: string): void\n {\n this.value = value ?? '';\n }\n\n public registerOnChange(fn: (value: string) => void): void\n {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void\n {\n this.onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void\n {\n this.disabled = isDisabled;\n }\n}\n","<textarea\n [attr.autofocus]=\"autofocus || null\"\n [attr.cols]=\"cols\"\n [disabled]=\"disabled\"\n [attr.id]=\"id || name\"\n [attr.name]=\"name\"\n [attr.placeholder]=\"placeholder\"\n [readonly]=\"readonly\"\n [attr.rows]=\"rows\"\n [attr.tabindex]=\"tabindex\"\n [value]=\"value\"\n (blur)=\"onTextareaBlur($event)\"\n (input)=\"onTextareaChange($event)\"></textarea>\n","import { Component, Input, Output, EventEmitter, ElementRef, AfterViewInit, OnChanges, SimpleChanges, ViewChild } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DragDropModule, CdkDrag } from '@angular/cdk/drag-drop';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { Platform } from '@angular/cdk/platform';\n\nimport { LunaControl } from '../luna-control';\n\n@Component({\n selector: 'luna-window',\n standalone: true,\n imports: [ CommonModule, DragDropModule, ScrollingModule ],\n templateUrl: './window.component.html',\n styleUrls: [ './window.component.scss' ]\n})\nexport class WindowComponent\n extends LunaControl implements AfterViewInit, OnChanges\n{\n @Input()\n public isMaximized = false;\n\n @Input()\n public showClose = true;\n\n @Input()\n public showHelp = false;\n\n @Input()\n public showMaximize = true;\n\n @Input()\n public showMinimize = true;\n\n @Input()\n public title?: string;\n\n @Output()\n public minimize = new EventEmitter<void>();\n\n @Output()\n public maximize = new EventEmitter<void>();\n\n @Output()\n public restore = new EventEmitter<void>();\n\n @Output()\n public help = new EventEmitter<void>();\n\n @Output()\n public close = new EventEmitter<void>();\n\n @Input()\n public boundaryElement?: string;\n\n @Input()\n public scrollable = false;\n\n @Input()\n public dragDisabled = false;\n\n @ViewChild(CdkDrag, { static: false })\n private dragInstance?: CdkDrag;\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n public platform: Platform\n )\n {\n super();\n }\n\n public ngAfterViewInit(): void\n {\n this.updateDragBoundary();\n }\n\n public ngOnChanges(changes: SimpleChanges): void\n {\n if (changes['boundaryElement'])\n {\n this.updateDragBoundary();\n }\n }\n\n public get isDragDisabled(): boolean\n {\n return this.dragDisabled || this.isMaximized;\n }\n\n private updateDragBoundary(): void\n {\n if (this.dragInstance && this.boundaryElement)\n {\n const boundary = document.querySelector(this.boundaryElement);\n if (boundary)\n {\n this.dragInstance.boundaryElement = boundary as HTMLElement;\n }\n }\n }\n\n public onMinimize(): void\n {\n this.minimize.emit();\n }\n\n public onMaximize(): void\n {\n if (this.isMaximized)\n {\n this.restore.emit();\n }\n else\n {\n this.maximize.emit();\n }\n }\n\n public onHelp(): void\n {\n this.help.emit();\n }\n\n public onClose(): void\n {\n this.close.emit();\n }\n}\n","<div\n [attr.autofocus]=\"autofocus || null\"\n [cdkDragDisabled]=\"isDragDisabled\"\n class=\"window\"\n cdkDrag\n [attr.id]=\"id\"\n [attr.name]=\"name\"\n [attr.tabindex]=\"tabindex\">\n <div\n cdkDragHandle\n class=\"title-bar\">\n <div class=\"title-bar-text\">{{ title }}</div>\n <div class=\"title-bar-controls\">\n <button\n *ngIf=\"showMinimize\"\n aria-label=\"Minimize\"\n (click)=\"onMinimize()\"></button>\n <button\n *ngIf=\"showMaximize\"\n [attr.aria-label]=\"isMaximized ? 'Restore' : 'Maximize'\"\n (click)=\"onMaximize()\"></button>\n <button\n *ngIf=\"showHelp\"\n aria-label=\"Help\"\n (click)=\"onHelp()\"></button>\n <button\n *ngIf=\"showClose\"\n aria-label=\"Close\"\n (click)=\"onClose()\"></button>\n </div>\n </div>\n <ng-container *ngIf=\"scrollable; else notScrollable\">\n <div\n cdkScrollable\n class=\"window-body scrollable\">\n <ng-content></ng-content>\n </div>\n </ng-container>\n <ng-template #notScrollable>\n <div class=\"window-body\">\n <ng-content></ng-content>\n </div>\n </ng-template>\n <div class=\"status-bar\">\n <ng-content select=\"[slot='status']\"></ng-content>\n </div>\n</div>\n","/*\n * Public API Surface of ng-luna\n */\n\nexport * from './controls';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3"],"mappings":"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"}
|