ng-luna 0.0.1 → 0.1.1
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 +360 -9
- package/controls/button/button.component.d.ts +3 -6
- package/controls/checkbox/checkbox.component.d.ts +3 -4
- package/controls/fieldset/fieldset.component.d.ts +2 -1
- package/controls/input/input.component.d.ts +4 -5
- package/controls/luna-control.d.ts +10 -0
- package/controls/progress/progress.component.d.ts +4 -3
- package/controls/radio/radio.component.d.ts +3 -4
- package/controls/select/select.component.d.ts +3 -4
- package/controls/slider/slider.component.d.ts +5 -6
- package/controls/tabs/tabs.component.d.ts +4 -3
- package/controls/textarea/textarea.component.d.ts +5 -6
- package/controls/window/window.component.d.ts +8 -7
- package/fesm2022/ng-luna.mjs +107 -131
- package/fesm2022/ng-luna.mjs.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -6,6 +6,8 @@ An Angular component library inspired by Windows XP aesthetics, built with XP.cs
|
|
|
6
6
|
|
|
7
7
|
ng-luna provides a collection of Angular components styled to match the classic Windows XP design language. The library uses [XP.css](https://botoxparty.github.io/XP.css/) for styling and [IBM Plex](https://www.ibm.com/plex/) fonts for typography.
|
|
8
8
|
|
|
9
|
+
All components are **standalone** and implement Angular's reactive forms API where applicable, making them compatible with `FormControl`, `FormGroup`, and `ngModel`.
|
|
10
|
+
|
|
9
11
|
## Installation
|
|
10
12
|
|
|
11
13
|
```bash
|
|
@@ -18,24 +20,30 @@ This library requires the following peer dependencies:
|
|
|
18
20
|
|
|
19
21
|
- `@angular/common`: 19.2.15
|
|
20
22
|
- `@angular/core`: 19.2.15
|
|
23
|
+
- `@angular/forms`: 19.2.15
|
|
21
24
|
|
|
22
25
|
## Usage
|
|
23
26
|
|
|
24
|
-
### Import
|
|
27
|
+
### Import Components
|
|
25
28
|
|
|
26
|
-
Import the components you need in your Angular application:
|
|
29
|
+
Import the components you need in your Angular application. All components are standalone:
|
|
27
30
|
|
|
28
31
|
```typescript
|
|
29
32
|
import { ButtonComponent } from 'ng-luna';
|
|
33
|
+
|
|
34
|
+
@Component({
|
|
35
|
+
imports: [ ButtonComponent ],
|
|
36
|
+
// ...
|
|
37
|
+
})
|
|
30
38
|
```
|
|
31
39
|
|
|
40
|
+
## Components
|
|
41
|
+
|
|
32
42
|
### Button Component
|
|
33
43
|
|
|
34
|
-
The `luna-button` component provides a Windows XP-styled button
|
|
44
|
+
The `luna-button` component provides a Windows XP-styled button.
|
|
35
45
|
|
|
36
|
-
|
|
37
|
-
<luna-button (click)="handleClick()">Click Me</luna-button>
|
|
38
|
-
```
|
|
46
|
+
**Selector:** `luna-button`
|
|
39
47
|
|
|
40
48
|
#### Inputs
|
|
41
49
|
|
|
@@ -71,6 +79,337 @@ The `luna-button` component provides a Windows XP-styled button:
|
|
|
71
79
|
</luna-button>
|
|
72
80
|
```
|
|
73
81
|
|
|
82
|
+
### Checkbox Component
|
|
83
|
+
|
|
84
|
+
The `luna-checkbox` component provides a Windows XP-styled checkbox that implements `ControlValueAccessor` for reactive forms support.
|
|
85
|
+
|
|
86
|
+
**Selector:** `luna-checkbox`
|
|
87
|
+
|
|
88
|
+
#### Inputs
|
|
89
|
+
|
|
90
|
+
- `disabled: boolean` - Whether the checkbox is disabled (default: `false`)
|
|
91
|
+
- `label?: string` - Label text for the checkbox
|
|
92
|
+
- `name?: string` - Name attribute for the checkbox
|
|
93
|
+
- `value?: string` - Value attribute for the checkbox
|
|
94
|
+
|
|
95
|
+
#### Outputs
|
|
96
|
+
|
|
97
|
+
- `change: EventEmitter<boolean>` - Emitted when the checkbox state changes
|
|
98
|
+
|
|
99
|
+
#### Example
|
|
100
|
+
|
|
101
|
+
```html
|
|
102
|
+
<luna-checkbox
|
|
103
|
+
[(ngModel)]="isChecked"
|
|
104
|
+
label="Accept terms and conditions"
|
|
105
|
+
(change)="onCheckboxChange($event)">
|
|
106
|
+
</luna-checkbox>
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### Fieldset Component
|
|
110
|
+
|
|
111
|
+
The `luna-fieldset` component provides a Windows XP-styled fieldset for grouping form controls.
|
|
112
|
+
|
|
113
|
+
**Selector:** `luna-fieldset`
|
|
114
|
+
|
|
115
|
+
#### Inputs
|
|
116
|
+
|
|
117
|
+
- `legend?: string` - Legend text for the fieldset
|
|
118
|
+
|
|
119
|
+
#### Example
|
|
120
|
+
|
|
121
|
+
```html
|
|
122
|
+
<luna-fieldset legend="User Information">
|
|
123
|
+
<!-- Form controls here -->
|
|
124
|
+
</luna-fieldset>
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Input Component
|
|
128
|
+
|
|
129
|
+
The `luna-input` component provides a Windows XP-styled text input that implements `ControlValueAccessor` for reactive forms support.
|
|
130
|
+
|
|
131
|
+
**Selector:** `luna-input`
|
|
132
|
+
|
|
133
|
+
#### Inputs
|
|
134
|
+
|
|
135
|
+
- `disabled: boolean` - Whether the input is disabled (default: `false`)
|
|
136
|
+
- `name?: string` - Name attribute for the input
|
|
137
|
+
- `placeholder?: string` - Placeholder text
|
|
138
|
+
- `type: InputType` - Input type: `'text' | 'password' | 'email'` (default: `'text'`)
|
|
139
|
+
- `readonly: boolean` - Whether the input is readonly (default: `false`)
|
|
140
|
+
|
|
141
|
+
#### Outputs
|
|
142
|
+
|
|
143
|
+
- `change: EventEmitter<string>` - Emitted when the input value changes
|
|
144
|
+
- `blur: EventEmitter<FocusEvent>` - Emitted when the input loses focus
|
|
145
|
+
|
|
146
|
+
#### Example
|
|
147
|
+
|
|
148
|
+
```html
|
|
149
|
+
<luna-input
|
|
150
|
+
[(ngModel)]="username"
|
|
151
|
+
type="text"
|
|
152
|
+
placeholder="Enter username"
|
|
153
|
+
(change)="onInputChange($event)">
|
|
154
|
+
</luna-input>
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### Progress Component
|
|
158
|
+
|
|
159
|
+
The `luna-progress` component provides a Windows XP-styled progress bar.
|
|
160
|
+
|
|
161
|
+
**Selector:** `luna-progress`
|
|
162
|
+
|
|
163
|
+
#### Inputs
|
|
164
|
+
|
|
165
|
+
- `value?: number` - Current progress value
|
|
166
|
+
- `max: number` - Maximum value (default: `100`)
|
|
167
|
+
|
|
168
|
+
#### Example
|
|
169
|
+
|
|
170
|
+
```html
|
|
171
|
+
<luna-progress
|
|
172
|
+
[value]="progressValue"
|
|
173
|
+
[max]="100">
|
|
174
|
+
</luna-progress>
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### Radio Component
|
|
178
|
+
|
|
179
|
+
The `luna-radio` component provides a Windows XP-styled radio button that implements `ControlValueAccessor` for reactive forms support.
|
|
180
|
+
|
|
181
|
+
**Selector:** `luna-radio`
|
|
182
|
+
|
|
183
|
+
#### Inputs
|
|
184
|
+
|
|
185
|
+
- `disabled: boolean` - Whether the radio button is disabled (default: `false`)
|
|
186
|
+
- `label?: string` - Label text for the radio button
|
|
187
|
+
- `name?: string` - Name attribute for the radio button (required for grouping)
|
|
188
|
+
- `value?: string` - Value attribute for the radio button
|
|
189
|
+
|
|
190
|
+
#### Outputs
|
|
191
|
+
|
|
192
|
+
- `change: EventEmitter<string>` - Emitted when the radio button is selected
|
|
193
|
+
|
|
194
|
+
#### Example
|
|
195
|
+
|
|
196
|
+
```html
|
|
197
|
+
<luna-radio
|
|
198
|
+
name="option"
|
|
199
|
+
value="option1"
|
|
200
|
+
label="Option 1"
|
|
201
|
+
[(ngModel)]="selectedOption">
|
|
202
|
+
</luna-radio>
|
|
203
|
+
<luna-radio
|
|
204
|
+
name="option"
|
|
205
|
+
value="option2"
|
|
206
|
+
label="Option 2"
|
|
207
|
+
[(ngModel)]="selectedOption">
|
|
208
|
+
</luna-radio>
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
### Select Component
|
|
212
|
+
|
|
213
|
+
The `luna-select` component provides a Windows XP-styled select dropdown that implements `ControlValueAccessor` for reactive forms support.
|
|
214
|
+
|
|
215
|
+
**Selector:** `luna-select`
|
|
216
|
+
|
|
217
|
+
#### Inputs
|
|
218
|
+
|
|
219
|
+
- `disabled: boolean` - Whether the select is disabled (default: `false`)
|
|
220
|
+
- `name?: string` - Name attribute for the select
|
|
221
|
+
|
|
222
|
+
#### Outputs
|
|
223
|
+
|
|
224
|
+
- `change: EventEmitter<string>` - Emitted when the selection changes
|
|
225
|
+
|
|
226
|
+
#### Example
|
|
227
|
+
|
|
228
|
+
```html
|
|
229
|
+
<luna-select
|
|
230
|
+
[(ngModel)]="selectedValue"
|
|
231
|
+
(change)="onSelectChange($event)">
|
|
232
|
+
<option value="option1">Option 1</option>
|
|
233
|
+
<option value="option2">Option 2</option>
|
|
234
|
+
</luna-select>
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
### Slider Component
|
|
238
|
+
|
|
239
|
+
The `luna-slider` component provides a Windows XP-styled range slider that implements `ControlValueAccessor` for reactive forms support.
|
|
240
|
+
|
|
241
|
+
**Selector:** `luna-slider`
|
|
242
|
+
|
|
243
|
+
#### Inputs
|
|
244
|
+
|
|
245
|
+
- `disabled: boolean` - Whether the slider is disabled (default: `false`)
|
|
246
|
+
- `name?: string` - Name attribute for the slider
|
|
247
|
+
- `min: number` - Minimum value (default: `0`)
|
|
248
|
+
- `max: number` - Maximum value (default: `100`)
|
|
249
|
+
- `step: number` - Step value (default: `1`)
|
|
250
|
+
- `vertical: boolean` - Whether the slider is vertical (default: `false`)
|
|
251
|
+
- `boxIndicator: boolean` - Whether to show a box indicator (default: `false`)
|
|
252
|
+
|
|
253
|
+
#### Outputs
|
|
254
|
+
|
|
255
|
+
- `change: EventEmitter<number>` - Emitted when the slider value changes
|
|
256
|
+
|
|
257
|
+
#### Example
|
|
258
|
+
|
|
259
|
+
```html
|
|
260
|
+
<luna-slider
|
|
261
|
+
[(ngModel)]="sliderValue"
|
|
262
|
+
[min]="0"
|
|
263
|
+
[max]="100"
|
|
264
|
+
[step]="1"
|
|
265
|
+
(change)="onSliderChange($event)">
|
|
266
|
+
</luna-slider>
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
### Tabs Component
|
|
270
|
+
|
|
271
|
+
The `luna-tabs` component provides a Windows XP-styled tab interface.
|
|
272
|
+
|
|
273
|
+
**Selector:** `luna-tabs`
|
|
274
|
+
|
|
275
|
+
#### Inputs
|
|
276
|
+
|
|
277
|
+
- `tabs: Tab[]` - Array of tab objects with `id`, `label`, and optional `content`
|
|
278
|
+
- `activeTabId?: string` - ID of the currently active tab
|
|
279
|
+
|
|
280
|
+
#### Outputs
|
|
281
|
+
|
|
282
|
+
- `tabChange: EventEmitter<string>` - Emitted when a tab is selected
|
|
283
|
+
|
|
284
|
+
#### Example
|
|
285
|
+
|
|
286
|
+
```html
|
|
287
|
+
<luna-tabs
|
|
288
|
+
[tabs]="tabs"
|
|
289
|
+
[activeTabId]="activeTabId"
|
|
290
|
+
(tabChange)="onTabChange($event)">
|
|
291
|
+
</luna-tabs>
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
```typescript
|
|
295
|
+
tabs: Tab[] = [
|
|
296
|
+
{ id: 'tab1', label: 'Tab 1', content: 'Content 1' },
|
|
297
|
+
{ id: 'tab2', label: 'Tab 2', content: 'Content 2' }
|
|
298
|
+
];
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
### Textarea Component
|
|
302
|
+
|
|
303
|
+
The `luna-textarea` component provides a Windows XP-styled textarea that implements `ControlValueAccessor` for reactive forms support.
|
|
304
|
+
|
|
305
|
+
**Selector:** `luna-textarea`
|
|
306
|
+
|
|
307
|
+
#### Inputs
|
|
308
|
+
|
|
309
|
+
- `disabled: boolean` - Whether the textarea is disabled (default: `false`)
|
|
310
|
+
- `name?: string` - Name attribute for the textarea
|
|
311
|
+
- `placeholder?: string` - Placeholder text
|
|
312
|
+
- `rows?: number` - Number of visible rows
|
|
313
|
+
- `cols?: number` - Number of visible columns
|
|
314
|
+
- `readonly: boolean` - Whether the textarea is readonly (default: `false`)
|
|
315
|
+
|
|
316
|
+
#### Outputs
|
|
317
|
+
|
|
318
|
+
- `change: EventEmitter<string>` - Emitted when the textarea value changes
|
|
319
|
+
- `blur: EventEmitter<FocusEvent>` - Emitted when the textarea loses focus
|
|
320
|
+
|
|
321
|
+
#### Example
|
|
322
|
+
|
|
323
|
+
```html
|
|
324
|
+
<luna-textarea
|
|
325
|
+
[(ngModel)]="message"
|
|
326
|
+
[rows]="5"
|
|
327
|
+
[cols]="40"
|
|
328
|
+
placeholder="Enter your message"
|
|
329
|
+
(change)="onTextareaChange($event)">
|
|
330
|
+
</luna-textarea>
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
### Window Component
|
|
334
|
+
|
|
335
|
+
The `luna-window` component provides a Windows XP-styled window with title bar and controls.
|
|
336
|
+
|
|
337
|
+
**Selector:** `luna-window`
|
|
338
|
+
|
|
339
|
+
#### Inputs
|
|
340
|
+
|
|
341
|
+
- `title?: string` - Window title text
|
|
342
|
+
- `showMinimize: boolean` - Whether to show the minimize button (default: `true`)
|
|
343
|
+
- `showMaximize: boolean` - Whether to show the maximize button (default: `true`)
|
|
344
|
+
- `showHelp: boolean` - Whether to show the help button (default: `false`)
|
|
345
|
+
- `showClose: boolean` - Whether to show the close button (default: `true`)
|
|
346
|
+
- `isMaximized: boolean` - Whether the window is currently maximized (default: `false`)
|
|
347
|
+
|
|
348
|
+
#### Outputs
|
|
349
|
+
|
|
350
|
+
- `minimize: EventEmitter<void>` - Emitted when the minimize button is clicked
|
|
351
|
+
- `maximize: EventEmitter<void>` - Emitted when the maximize button is clicked
|
|
352
|
+
- `restore: EventEmitter<void>` - Emitted when the restore button is clicked
|
|
353
|
+
- `help: EventEmitter<void>` - Emitted when the help button is clicked
|
|
354
|
+
- `close: EventEmitter<void>` - Emitted when the close button is clicked
|
|
355
|
+
|
|
356
|
+
#### Example
|
|
357
|
+
|
|
358
|
+
```html
|
|
359
|
+
<luna-window
|
|
360
|
+
title="My Application"
|
|
361
|
+
[showHelp]="true"
|
|
362
|
+
(minimize)="onMinimize()"
|
|
363
|
+
(maximize)="onMaximize()"
|
|
364
|
+
(close)="onClose()">
|
|
365
|
+
<div class="window-body">
|
|
366
|
+
Window content goes here
|
|
367
|
+
</div>
|
|
368
|
+
</luna-window>
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
## Reactive Forms Support
|
|
372
|
+
|
|
373
|
+
Components that implement `ControlValueAccessor` (checkbox, input, radio, select, slider, textarea) can be used with Angular's reactive forms:
|
|
374
|
+
|
|
375
|
+
```typescript
|
|
376
|
+
import { FormBuilder, FormGroup, ReactiveFormsModule } from '@angular/forms';
|
|
377
|
+
|
|
378
|
+
export class MyComponent
|
|
379
|
+
{
|
|
380
|
+
form: FormGroup;
|
|
381
|
+
|
|
382
|
+
constructor(private fb: FormBuilder)
|
|
383
|
+
{
|
|
384
|
+
this.form = this.fb.group({
|
|
385
|
+
username: [''],
|
|
386
|
+
email: [''],
|
|
387
|
+
agreeToTerms: [false]
|
|
388
|
+
});
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
```html
|
|
394
|
+
<form [formGroup]="form">
|
|
395
|
+
<luna-input
|
|
396
|
+
formControlName="username"
|
|
397
|
+
placeholder="Username">
|
|
398
|
+
</luna-input>
|
|
399
|
+
|
|
400
|
+
<luna-input
|
|
401
|
+
formControlName="email"
|
|
402
|
+
type="email"
|
|
403
|
+
placeholder="Email">
|
|
404
|
+
</luna-input>
|
|
405
|
+
|
|
406
|
+
<luna-checkbox
|
|
407
|
+
formControlName="agreeToTerms"
|
|
408
|
+
label="I agree to the terms">
|
|
409
|
+
</luna-checkbox>
|
|
410
|
+
</form>
|
|
411
|
+
```
|
|
412
|
+
|
|
74
413
|
## Development
|
|
75
414
|
|
|
76
415
|
### Building the Library
|
|
@@ -86,9 +425,22 @@ ng-luna/
|
|
|
86
425
|
├── src/
|
|
87
426
|
│ ├── controls/ # Component library controls
|
|
88
427
|
│ │ ├── button/ # Button component
|
|
428
|
+
│ │ ├── checkbox/ # Checkbox component
|
|
429
|
+
│ │ ├── fieldset/ # Fieldset component
|
|
430
|
+
│ │ ├── input/ # Input component
|
|
431
|
+
│ │ ├── progress/ # Progress component
|
|
432
|
+
│ │ ├── radio/ # Radio component
|
|
433
|
+
│ │ ├── select/ # Select component
|
|
434
|
+
│ │ ├── slider/ # Slider component
|
|
435
|
+
│ │ ├── tabs/ # Tabs component
|
|
436
|
+
│ │ ├── textarea/ # Textarea component
|
|
437
|
+
│ │ ├── window/ # Window component
|
|
89
438
|
│ │ └── index.ts # Controls barrel export
|
|
90
439
|
│ ├── theme/ # Theme files (fonts, styles)
|
|
91
|
-
│ │
|
|
440
|
+
│ │ ├── _fonts.scss # IBM Plex font imports
|
|
441
|
+
│ │ ├── _palette.scss # Color palette
|
|
442
|
+
│ │ ├── _graphics.scss # SVG graphics
|
|
443
|
+
│ │ └── _global.scss # Global styles
|
|
92
444
|
│ └── public-api.ts # Public API surface
|
|
93
445
|
├── ng-package.json # ng-packagr configuration
|
|
94
446
|
├── package.json # Package dependencies
|
|
@@ -98,7 +450,7 @@ ng-luna/
|
|
|
98
450
|
## Dependencies
|
|
99
451
|
|
|
100
452
|
- **XP.css** (v0.2.6) - Windows XP styling framework
|
|
101
|
-
- **@ibm/plex** (v6.4.1) - IBM Plex font families
|
|
453
|
+
- **@ibm/plex** (v6.4.1) - IBM Plex font families (fonts are bundled with the library)
|
|
102
454
|
- **@angular/cdk** (v19.2.17) - Angular Component Dev Kit
|
|
103
455
|
|
|
104
456
|
## Publishing
|
|
@@ -155,4 +507,3 @@ npm publish ./dist
|
|
|
155
507
|
MIT License - see [LICENSE](LICENSE) file for details.
|
|
156
508
|
|
|
157
509
|
Copyright (c) 2025 Adam R Moss
|
|
158
|
-
|
|
@@ -1,29 +1,26 @@
|
|
|
1
1
|
import { EventEmitter } from '@angular/core';
|
|
2
|
+
import { LunaControl } from '../luna-control';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
export type ButtonType = 'button' | 'submit' | 'reset';
|
|
4
5
|
export type FormEnctype = 'application/x-www-form-urlencoded' | 'multipart/form-data' | 'text/plain';
|
|
5
6
|
export type FormMethod = 'get' | 'post';
|
|
6
7
|
export type FormTarget = '_self' | '_blank' | '_parent' | '_top';
|
|
7
8
|
export type PopoverTargetAction = 'show' | 'hide' | 'toggle';
|
|
8
|
-
export declare class ButtonComponent {
|
|
9
|
-
autofocus: boolean;
|
|
9
|
+
export declare class ButtonComponent extends LunaControl {
|
|
10
10
|
command?: string;
|
|
11
11
|
commandfor?: string;
|
|
12
|
-
disabled: boolean;
|
|
13
12
|
form?: string;
|
|
14
13
|
formaction?: string;
|
|
15
14
|
formenctype?: FormEnctype;
|
|
16
15
|
formmethod?: FormMethod;
|
|
17
16
|
formnovalidate: boolean;
|
|
18
17
|
formtarget?: FormTarget;
|
|
19
|
-
name?: string;
|
|
20
18
|
popovertarget?: string;
|
|
21
19
|
popovertargetaction?: PopoverTargetAction;
|
|
22
|
-
tabindex?: number;
|
|
23
20
|
type: ButtonType;
|
|
24
21
|
value?: string;
|
|
25
22
|
click: EventEmitter<MouseEvent>;
|
|
26
23
|
onClick(event: MouseEvent): void;
|
|
27
24
|
static ɵfac: i0.ɵɵFactoryDeclaration<ButtonComponent, never>;
|
|
28
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ButtonComponent, "luna-button", never, { "
|
|
25
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ButtonComponent, "luna-button", never, { "command": { "alias": "command"; "required": false; }; "commandfor": { "alias": "commandfor"; "required": false; }; "form": { "alias": "form"; "required": false; }; "formaction": { "alias": "formaction"; "required": false; }; "formenctype": { "alias": "formenctype"; "required": false; }; "formmethod": { "alias": "formmethod"; "required": false; }; "formnovalidate": { "alias": "formnovalidate"; "required": false; }; "formtarget": { "alias": "formtarget"; "required": false; }; "popovertarget": { "alias": "popovertarget"; "required": false; }; "popovertargetaction": { "alias": "popovertargetaction"; "required": false; }; "type": { "alias": "type"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "click": "click"; }, never, ["*"], true, never>;
|
|
29
26
|
}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { EventEmitter } from '@angular/core';
|
|
2
2
|
import { ControlValueAccessor } from '@angular/forms';
|
|
3
|
+
import { LunaControl } from '../luna-control';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class CheckboxComponent implements ControlValueAccessor {
|
|
5
|
-
disabled: boolean;
|
|
5
|
+
export declare class CheckboxComponent extends LunaControl implements ControlValueAccessor {
|
|
6
6
|
label?: string;
|
|
7
|
-
name?: string;
|
|
8
7
|
value?: string;
|
|
9
8
|
change: EventEmitter<boolean>;
|
|
10
9
|
checked: boolean;
|
|
@@ -16,5 +15,5 @@ export declare class CheckboxComponent implements ControlValueAccessor {
|
|
|
16
15
|
registerOnTouched(fn: () => void): void;
|
|
17
16
|
setDisabledState(isDisabled: boolean): void;
|
|
18
17
|
static ɵfac: i0.ɵɵFactoryDeclaration<CheckboxComponent, never>;
|
|
19
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<CheckboxComponent, "luna-checkbox", never, { "
|
|
18
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CheckboxComponent, "luna-checkbox", never, { "label": { "alias": "label"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "change": "change"; }, never, ["*"], true, never>;
|
|
20
19
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { LunaControl } from '../luna-control';
|
|
1
2
|
import * as i0 from "@angular/core";
|
|
2
|
-
export declare class FieldsetComponent {
|
|
3
|
+
export declare class FieldsetComponent extends LunaControl {
|
|
3
4
|
legend?: string;
|
|
4
5
|
static ɵfac: i0.ɵɵFactoryDeclaration<FieldsetComponent, never>;
|
|
5
6
|
static ɵcmp: i0.ɵɵComponentDeclaration<FieldsetComponent, "luna-fieldset", never, { "legend": { "alias": "legend"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { EventEmitter } from '@angular/core';
|
|
2
2
|
import { ControlValueAccessor } from '@angular/forms';
|
|
3
|
+
import { LunaControl } from '../luna-control';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
export type InputType = 'text' | 'password' | 'email';
|
|
5
|
-
export declare class InputComponent implements ControlValueAccessor {
|
|
6
|
-
disabled: boolean;
|
|
7
|
-
name?: string;
|
|
6
|
+
export declare class InputComponent extends LunaControl implements ControlValueAccessor {
|
|
8
7
|
placeholder?: string;
|
|
9
|
-
type: InputType;
|
|
10
8
|
readonly: boolean;
|
|
9
|
+
type: InputType;
|
|
11
10
|
change: EventEmitter<string>;
|
|
12
11
|
blur: EventEmitter<FocusEvent>;
|
|
13
12
|
value: string;
|
|
@@ -20,5 +19,5 @@ export declare class InputComponent implements ControlValueAccessor {
|
|
|
20
19
|
registerOnTouched(fn: () => void): void;
|
|
21
20
|
setDisabledState(isDisabled: boolean): void;
|
|
22
21
|
static ɵfac: i0.ɵɵFactoryDeclaration<InputComponent, never>;
|
|
23
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<InputComponent, "luna-input", never, { "
|
|
22
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<InputComponent, "luna-input", never, { "placeholder": { "alias": "placeholder"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "type": { "alias": "type"; "required": false; }; }, { "change": "change"; "blur": "blur"; }, never, never, true, never>;
|
|
24
23
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare abstract class LunaControl {
|
|
3
|
+
id?: string;
|
|
4
|
+
name?: string;
|
|
5
|
+
disabled: boolean;
|
|
6
|
+
tabindex?: number;
|
|
7
|
+
autofocus: boolean;
|
|
8
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LunaControl, never>;
|
|
9
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<LunaControl, never, never, { "id": { "alias": "id"; "required": false; }; "name": { "alias": "name"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "tabindex": { "alias": "tabindex"; "required": false; }; "autofocus": { "alias": "autofocus"; "required": false; }; }, {}, never, never, true, never>;
|
|
10
|
+
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { LunaControl } from '../luna-control';
|
|
1
2
|
import * as i0 from "@angular/core";
|
|
2
|
-
export declare class ProgressComponent {
|
|
3
|
-
value?: number;
|
|
3
|
+
export declare class ProgressComponent extends LunaControl {
|
|
4
4
|
max: number;
|
|
5
|
+
value?: number;
|
|
5
6
|
static ɵfac: i0.ɵɵFactoryDeclaration<ProgressComponent, never>;
|
|
6
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ProgressComponent, "luna-progress", never, { "
|
|
7
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ProgressComponent, "luna-progress", never, { "max": { "alias": "max"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, {}, never, never, true, never>;
|
|
7
8
|
}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { EventEmitter } from '@angular/core';
|
|
2
2
|
import { ControlValueAccessor } from '@angular/forms';
|
|
3
|
+
import { LunaControl } from '../luna-control';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class RadioComponent implements ControlValueAccessor {
|
|
5
|
-
disabled: boolean;
|
|
5
|
+
export declare class RadioComponent extends LunaControl implements ControlValueAccessor {
|
|
6
6
|
label?: string;
|
|
7
|
-
name?: string;
|
|
8
7
|
value?: string;
|
|
9
8
|
change: EventEmitter<string>;
|
|
10
9
|
checked: boolean;
|
|
@@ -16,5 +15,5 @@ export declare class RadioComponent implements ControlValueAccessor {
|
|
|
16
15
|
registerOnTouched(fn: () => void): void;
|
|
17
16
|
setDisabledState(isDisabled: boolean): void;
|
|
18
17
|
static ɵfac: i0.ɵɵFactoryDeclaration<RadioComponent, never>;
|
|
19
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<RadioComponent, "luna-radio", never, { "
|
|
18
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RadioComponent, "luna-radio", never, { "label": { "alias": "label"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "change": "change"; }, never, ["*"], true, never>;
|
|
20
19
|
}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { EventEmitter } from '@angular/core';
|
|
2
2
|
import { ControlValueAccessor } from '@angular/forms';
|
|
3
|
+
import { LunaControl } from '../luna-control';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class SelectComponent implements ControlValueAccessor {
|
|
5
|
-
disabled: boolean;
|
|
6
|
-
name?: string;
|
|
5
|
+
export declare class SelectComponent extends LunaControl implements ControlValueAccessor {
|
|
7
6
|
change: EventEmitter<string>;
|
|
8
7
|
value: string;
|
|
9
8
|
private onChange;
|
|
@@ -14,5 +13,5 @@ export declare class SelectComponent implements ControlValueAccessor {
|
|
|
14
13
|
registerOnTouched(fn: () => void): void;
|
|
15
14
|
setDisabledState(isDisabled: boolean): void;
|
|
16
15
|
static ɵfac: i0.ɵɵFactoryDeclaration<SelectComponent, never>;
|
|
17
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SelectComponent, "luna-select", never, {
|
|
16
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SelectComponent, "luna-select", never, {}, { "change": "change"; }, never, ["*"], true, never>;
|
|
18
17
|
}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { EventEmitter } from '@angular/core';
|
|
2
2
|
import { ControlValueAccessor } from '@angular/forms';
|
|
3
|
+
import { LunaControl } from '../luna-control';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class SliderComponent implements ControlValueAccessor {
|
|
5
|
-
|
|
6
|
-
name?: string;
|
|
7
|
-
min: number;
|
|
5
|
+
export declare class SliderComponent extends LunaControl implements ControlValueAccessor {
|
|
6
|
+
boxIndicator: boolean;
|
|
8
7
|
max: number;
|
|
8
|
+
min: number;
|
|
9
9
|
step: number;
|
|
10
10
|
vertical: boolean;
|
|
11
|
-
boxIndicator: boolean;
|
|
12
11
|
change: EventEmitter<number>;
|
|
13
12
|
value: number;
|
|
14
13
|
private onChange;
|
|
@@ -20,5 +19,5 @@ export declare class SliderComponent implements ControlValueAccessor {
|
|
|
20
19
|
registerOnTouched(fn: () => void): void;
|
|
21
20
|
setDisabledState(isDisabled: boolean): void;
|
|
22
21
|
static ɵfac: i0.ɵɵFactoryDeclaration<SliderComponent, never>;
|
|
23
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SliderComponent, "luna-slider", never, { "
|
|
22
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SliderComponent, "luna-slider", never, { "boxIndicator": { "alias": "boxIndicator"; "required": false; }; "max": { "alias": "max"; "required": false; }; "min": { "alias": "min"; "required": false; }; "step": { "alias": "step"; "required": false; }; "vertical": { "alias": "vertical"; "required": false; }; }, { "change": "change"; }, never, never, true, never>;
|
|
24
23
|
}
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import { EventEmitter } from '@angular/core';
|
|
2
|
+
import { LunaControl } from '../luna-control';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
export interface Tab {
|
|
4
5
|
id: string;
|
|
5
6
|
label: string;
|
|
6
7
|
content?: string;
|
|
7
8
|
}
|
|
8
|
-
export declare class TabsComponent {
|
|
9
|
-
tabs: Tab[];
|
|
9
|
+
export declare class TabsComponent extends LunaControl {
|
|
10
10
|
activeTabId?: string;
|
|
11
|
+
tabs: Tab[];
|
|
11
12
|
tabChange: EventEmitter<string>;
|
|
12
13
|
selectTab(tabId: string): void;
|
|
13
14
|
isActive(tabId: string): boolean;
|
|
14
15
|
static ɵfac: i0.ɵɵFactoryDeclaration<TabsComponent, never>;
|
|
15
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<TabsComponent, "luna-tabs", never, { "
|
|
16
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TabsComponent, "luna-tabs", never, { "activeTabId": { "alias": "activeTabId"; "required": false; }; "tabs": { "alias": "tabs"; "required": false; }; }, { "tabChange": "tabChange"; }, never, ["*"], true, never>;
|
|
16
17
|
}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { EventEmitter } from '@angular/core';
|
|
2
2
|
import { ControlValueAccessor } from '@angular/forms';
|
|
3
|
+
import { LunaControl } from '../luna-control';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class TextareaComponent implements ControlValueAccessor {
|
|
5
|
-
disabled: boolean;
|
|
6
|
-
name?: string;
|
|
7
|
-
placeholder?: string;
|
|
8
|
-
rows?: number;
|
|
5
|
+
export declare class TextareaComponent extends LunaControl implements ControlValueAccessor {
|
|
9
6
|
cols?: number;
|
|
7
|
+
placeholder?: string;
|
|
10
8
|
readonly: boolean;
|
|
9
|
+
rows?: number;
|
|
11
10
|
change: EventEmitter<string>;
|
|
12
11
|
blur: EventEmitter<FocusEvent>;
|
|
13
12
|
value: string;
|
|
@@ -20,5 +19,5 @@ export declare class TextareaComponent implements ControlValueAccessor {
|
|
|
20
19
|
registerOnTouched(fn: () => void): void;
|
|
21
20
|
setDisabledState(isDisabled: boolean): void;
|
|
22
21
|
static ɵfac: i0.ɵɵFactoryDeclaration<TextareaComponent, never>;
|
|
23
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<TextareaComponent, "luna-textarea", never, { "
|
|
22
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TextareaComponent, "luna-textarea", never, { "cols": { "alias": "cols"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; }, { "change": "change"; "blur": "blur"; }, never, never, true, never>;
|
|
24
23
|
}
|