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 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
+ }
@@ -0,0 +1,2 @@
1
+ export * from './icon.component';
2
+ export * from 'lucide-static';
@@ -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';
@@ -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
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ng-luna",
3
- "version": "0.3.0",
3
+ "version": "0.3.2",
4
4
  "description": "An Angular component library inspired by Windows XP aesthetics, built with IBM Plex fonts",
5
5
  "author": {
6
6
  "name": "Adam R Moss",