@melodicdev/components 1.5.12 → 1.6.0

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.
Files changed (41) hide show
  1. package/assets/melodic-components.js +1168 -451
  2. package/assets/melodic-components.js.map +1 -1
  3. package/assets/melodic-components.min.js +2480 -1814
  4. package/lib/components/data-display/badge/badge.styles.d.ts.map +1 -1
  5. package/lib/components/data-display/badge/badge.styles.js +11 -0
  6. package/lib/components/forms/autocomplete/autocomplete.component.d.ts.map +1 -1
  7. package/lib/components/forms/autocomplete/autocomplete.component.js +17 -0
  8. package/lib/components/forms/checkbox/checkbox.component.d.ts.map +1 -1
  9. package/lib/components/forms/checkbox/checkbox.component.js +8 -0
  10. package/lib/components/forms/date-picker/calendar.component.d.ts +48 -0
  11. package/lib/components/forms/date-picker/calendar.component.d.ts.map +1 -1
  12. package/lib/components/forms/date-picker/calendar.component.js +231 -3
  13. package/lib/components/forms/date-picker/calendar.styles.d.ts.map +1 -1
  14. package/lib/components/forms/date-picker/calendar.styles.js +104 -2
  15. package/lib/components/forms/date-picker/calendar.template.d.ts.map +1 -1
  16. package/lib/components/forms/date-picker/calendar.template.js +128 -39
  17. package/lib/components/forms/date-picker/date-picker.component.d.ts +4 -0
  18. package/lib/components/forms/date-picker/date-picker.component.d.ts.map +1 -1
  19. package/lib/components/forms/date-picker/date-picker.component.js +13 -1
  20. package/lib/components/forms/date-picker/date-picker.template.d.ts.map +1 -1
  21. package/lib/components/forms/date-picker/date-picker.template.js +2 -0
  22. package/lib/components/forms/date-time-picker/date-time-picker.component.d.ts.map +1 -1
  23. package/lib/components/forms/date-time-picker/date-time-picker.component.js +8 -0
  24. package/lib/components/forms/input/input.component.d.ts.map +1 -1
  25. package/lib/components/forms/input/input.component.js +8 -0
  26. package/lib/components/forms/radio/radio-group.component.d.ts.map +1 -1
  27. package/lib/components/forms/radio/radio-group.component.js +8 -0
  28. package/lib/components/forms/select/select.component.d.ts.map +1 -1
  29. package/lib/components/forms/select/select.component.js +17 -0
  30. package/lib/components/forms/slider/slider.component.d.ts.map +1 -1
  31. package/lib/components/forms/slider/slider.component.js +8 -0
  32. package/lib/components/forms/textarea/textarea.component.d.ts.map +1 -1
  33. package/lib/components/forms/textarea/textarea.component.js +8 -0
  34. package/lib/components/forms/time-picker/time-picker.component.d.ts.map +1 -1
  35. package/lib/components/forms/time-picker/time-picker.component.js +8 -0
  36. package/lib/components/forms/toggle/toggle.component.d.ts.map +1 -1
  37. package/lib/components/forms/toggle/toggle.component.js +8 -0
  38. package/lib/forms-adapters.d.ts +2 -0
  39. package/lib/forms-adapters.d.ts.map +1 -0
  40. package/lib/forms-adapters.js +105 -0
  41. package/package.json +1 -1
@@ -1,55 +1,144 @@
1
- import { html, classMap, repeat } from '@melodicdev/core';
1
+ import { html, classMap, repeat, when } from '@melodicdev/core';
2
+ function dayGrid(c) {
3
+ return html `
4
+ <div class="ml-calendar__weekdays" role="row">
5
+ ${repeat(c.weekdays, (d) => d, (d) => html `
6
+ <span class="ml-calendar__weekday" role="columnheader">${d}</span>
7
+ `)}
8
+ </div>
9
+
10
+ <div class="ml-calendar__grid" @keydown=${c.handleGridKeyDown}>
11
+ ${repeat(c.days, (day) => day.iso, (day) => html `
12
+ <button
13
+ type="button"
14
+ class=${classMap({
15
+ 'ml-calendar__day': true,
16
+ 'ml-calendar__day--other-month': !day.isCurrentMonth,
17
+ 'ml-calendar__day--today': day.isToday,
18
+ 'ml-calendar__day--selected': day.isSelected,
19
+ 'ml-calendar__day--disabled': day.isDisabled
20
+ })}
21
+ ?disabled=${day.isDisabled || !day.isCurrentMonth}
22
+ tabindex=${day.isCurrentMonth ? '0' : '-1'}
23
+ aria-selected=${day.isSelected ? 'true' : 'false'}
24
+ aria-label=${day.iso}
25
+ @click=${() => c.selectDay(day)}
26
+ >
27
+ <span class="ml-calendar__day-number">${day.date}</span>
28
+ ${day.isToday ? html `<span class="ml-calendar__today-dot"></span>` : ''}
29
+ </button>
30
+ `)}
31
+ </div>
32
+ `;
33
+ }
34
+ function monthGrid(c) {
35
+ return html `
36
+ <div class="ml-calendar__cell-grid" @keydown=${c.handleGridKeyDown}>
37
+ ${repeat(c.months, (m) => m.index, (m) => html `
38
+ <button
39
+ type="button"
40
+ class=${classMap({
41
+ 'ml-calendar__cell': true,
42
+ 'ml-calendar__cell--selected': m.isSelected,
43
+ 'ml-calendar__cell--current': m.isCurrent,
44
+ 'ml-calendar__cell--disabled': m.isDisabled
45
+ })}
46
+ ?disabled=${m.isDisabled}
47
+ tabindex="0"
48
+ aria-selected=${m.isSelected ? 'true' : 'false'}
49
+ aria-label=${m.label}
50
+ @click=${() => c.selectViewMonth(m)}
51
+ >
52
+ ${m.label}
53
+ </button>
54
+ `)}
55
+ </div>
56
+ `;
57
+ }
58
+ function yearGrid(c) {
59
+ return html `
60
+ <div class="ml-calendar__cell-grid" @keydown=${c.handleGridKeyDown}>
61
+ ${repeat(c.years, (y) => y.year, (y) => html `
62
+ <button
63
+ type="button"
64
+ class=${classMap({
65
+ 'ml-calendar__cell': true,
66
+ 'ml-calendar__cell--selected': y.isSelected,
67
+ 'ml-calendar__cell--current': y.isCurrent,
68
+ 'ml-calendar__cell--disabled': y.isDisabled
69
+ })}
70
+ ?disabled=${y.isDisabled}
71
+ tabindex=${y.isDisabled ? '-1' : '0'}
72
+ aria-selected=${y.isSelected ? 'true' : 'false'}
73
+ aria-label=${String(y.year)}
74
+ @click=${() => c.selectViewYear(y)}
75
+ >
76
+ ${y.year}
77
+ </button>
78
+ `)}
79
+ </div>
80
+ `;
81
+ }
2
82
  export function calendarTemplate(c) {
3
83
  return html `
4
- <div class="ml-calendar" role="grid" aria-label=${c.monthLabel}>
84
+ <div class=${classMap({
85
+ 'ml-calendar': true,
86
+ [`ml-calendar--view-${c.view}`]: true
87
+ })} role="grid" aria-label=${c.headerLabel}>
5
88
  <div class="ml-calendar__header">
6
89
  <div class="ml-calendar__nav-group">
7
- <button type="button" class="ml-calendar__nav" aria-label="Previous year" @click=${c.prevYear}>
90
+ <button type="button" class="ml-calendar__nav" aria-label="Previous" @click=${c.headerPrevFar}>
8
91
  <ml-icon icon="caret-double-left" size="sm"></ml-icon>
9
92
  </button>
10
- <button type="button" class="ml-calendar__nav" aria-label="Previous month" @click=${c.prevMonth}>
11
- <ml-icon icon="caret-left" size="sm"></ml-icon>
12
- </button>
93
+ ${when(c.view === 'day', () => html `
94
+ <button type="button" class="ml-calendar__nav" aria-label="Previous month" @click=${c.prevMonth}>
95
+ <ml-icon icon="caret-left" size="sm"></ml-icon>
96
+ </button>
97
+ `)}
13
98
  </div>
14
- <span class="ml-calendar__month-label">${c.monthLabel}</span>
99
+
100
+ ${when(c.view === 'day', () => html `
101
+ <div class="ml-calendar__title">
102
+ <button
103
+ type="button"
104
+ class="ml-calendar__title-btn"
105
+ aria-label="Select month"
106
+ aria-expanded="false"
107
+ @click=${c.openMonthView}
108
+ >${c.monthLabel}</button>
109
+ <button
110
+ type="button"
111
+ class="ml-calendar__title-btn"
112
+ aria-label="Select year"
113
+ aria-expanded="false"
114
+ @click=${c.openYearView}
115
+ >${c.viewYear}</button>
116
+ </div>
117
+ `, () => html `
118
+ <button
119
+ type="button"
120
+ class="ml-calendar__title-btn ml-calendar__title-btn--wide"
121
+ aria-label=${c.view === 'month' ? 'Back to day view' : 'Select year'}
122
+ aria-expanded="true"
123
+ @click=${c.view === 'month' ? c.openMonthView : c.openYearView}
124
+ >${c.headerLabel}</button>
125
+ `)}
126
+
15
127
  <div class="ml-calendar__nav-group">
16
- <button type="button" class="ml-calendar__nav" aria-label="Next month" @click=${c.nextMonth}>
17
- <ml-icon icon="caret-right" size="sm"></ml-icon>
18
- </button>
19
- <button type="button" class="ml-calendar__nav" aria-label="Next year" @click=${c.nextYear}>
128
+ ${when(c.view === 'day', () => html `
129
+ <button type="button" class="ml-calendar__nav" aria-label="Next month" @click=${c.nextMonth}>
130
+ <ml-icon icon="caret-right" size="sm"></ml-icon>
131
+ </button>
132
+ `)}
133
+ <button type="button" class="ml-calendar__nav" aria-label="Next" @click=${c.headerNextFar}>
20
134
  <ml-icon icon="caret-double-right" size="sm"></ml-icon>
21
135
  </button>
22
136
  </div>
23
137
  </div>
24
138
 
25
- <div class="ml-calendar__weekdays" role="row">
26
- ${repeat(c.weekdays, (d) => d, (d) => html `
27
- <span class="ml-calendar__weekday" role="columnheader">${d}</span>
28
- `)}
29
- </div>
30
-
31
- <div class="ml-calendar__grid">
32
- ${repeat(c.days, (day) => day.iso, (day) => html `
33
- <button
34
- type="button"
35
- class=${classMap({
36
- 'ml-calendar__day': true,
37
- 'ml-calendar__day--other-month': !day.isCurrentMonth,
38
- 'ml-calendar__day--today': day.isToday,
39
- 'ml-calendar__day--selected': day.isSelected,
40
- 'ml-calendar__day--disabled': day.isDisabled
41
- })}
42
- ?disabled=${day.isDisabled || !day.isCurrentMonth}
43
- tabindex=${day.isCurrentMonth ? '0' : '-1'}
44
- aria-selected=${day.isSelected ? 'true' : 'false'}
45
- aria-label=${day.iso}
46
- @click=${() => c.selectDay(day)}
47
- >
48
- <span class="ml-calendar__day-number">${day.date}</span>
49
- ${day.isToday ? html `<span class="ml-calendar__today-dot"></span>` : ''}
50
- </button>
51
- `)}
52
- </div>
139
+ ${when(c.view === 'day', () => dayGrid(c))}
140
+ ${when(c.view === 'month', () => monthGrid(c))}
141
+ ${when(c.view === 'year', () => yearGrid(c))}
53
142
 
54
143
  <div class="ml-calendar__footer">
55
144
  <button type="button" class="ml-calendar__today-btn" @click=${c.goToToday}>Today</button>
@@ -34,6 +34,10 @@ export declare class DatePickerComponent implements IElementRef, OnCreate, OnDes
34
34
  min: string;
35
35
  /** Maximum selectable date (YYYY-MM-DD) */
36
36
  max: string;
37
+ /** Earliest year reachable in the year picker (defaults to currentYear - 120) */
38
+ minYear: number | string;
39
+ /** Latest year reachable in the year picker (defaults to currentYear + 10) */
40
+ maxYear: number | string;
37
41
  /** Whether the calendar popover is open */
38
42
  isOpen: boolean;
39
43
  private _cleanupAutoUpdate;
@@ -1 +1 @@
1
- {"version":3,"file":"date-picker.component.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/date-picker/date-picker.component.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAKzE;;;;;;;;;;;;GAYG;AACH,qBAMa,mBAAoB,YAAW,WAAW,EAAE,QAAQ,EAAE,SAAS;IACpE,UAAU,EAAG,WAAW,CAAC;IAEhC,+CAA+C;IACxC,KAAK,SAAM;IAElB,uBAAuB;IAChB,WAAW,SAAiB;IAEnC,kBAAkB;IACX,KAAK,SAAM;IAElB,gBAAgB;IACT,IAAI,SAAM;IAEjB,oBAAoB;IACb,KAAK,SAAM;IAElB,iBAAiB;IACV,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAQ;IAEvC,qBAAqB;IACd,QAAQ,UAAS;IAExB,qBAAqB;IACd,QAAQ,UAAS;IAExB,2CAA2C;IACpC,GAAG,SAAM;IAEhB,2CAA2C;IACpC,GAAG,SAAM;IAEhB,2CAA2C;IACpC,MAAM,UAAS;IAEtB,OAAO,CAAC,kBAAkB,CAA6B;IAEhD,QAAQ,IAAI,IAAI;IAOhB,SAAS,IAAI,IAAI;IAQjB,cAAc,QAAO,IAAI,CAM9B;IAEF,uDAAuD;IAChD,WAAW,GAAI,OAAO,KAAK,KAAG,IAAI,CAGvC;IAEF,4CAA4C;IACrC,gBAAgB,QAAO,IAAI,CAIhC;IAEF,oFAAoF;IAC7E,gBAAgB,GAAI,OAAO,KAAK,KAAG,IAAI,CAK5C;IAEK,aAAa,GAAI,OAAO,aAAa,KAAG,IAAI,CAmBjD;IAEF,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAW5B;IAEF,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,YAAY;CAGpB"}
1
+ {"version":3,"file":"date-picker.component.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/date-picker/date-picker.component.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAczE;;;;;;;;;;;;GAYG;AACH,qBAMa,mBAAoB,YAAW,WAAW,EAAE,QAAQ,EAAE,SAAS;IACpE,UAAU,EAAG,WAAW,CAAC;IAEhC,+CAA+C;IACxC,KAAK,SAAM;IAElB,uBAAuB;IAChB,WAAW,SAAiB;IAEnC,kBAAkB;IACX,KAAK,SAAM;IAElB,gBAAgB;IACT,IAAI,SAAM;IAEjB,oBAAoB;IACb,KAAK,SAAM;IAElB,iBAAiB;IACV,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAQ;IAEvC,qBAAqB;IACd,QAAQ,UAAS;IAExB,qBAAqB;IACd,QAAQ,UAAS;IAExB,2CAA2C;IACpC,GAAG,SAAM;IAEhB,2CAA2C;IACpC,GAAG,SAAM;IAEhB,iFAAiF;IAC1E,OAAO,EAAE,MAAM,GAAG,MAAM,CAAM;IAErC,8EAA8E;IACvE,OAAO,EAAE,MAAM,GAAG,MAAM,CAAM;IAErC,2CAA2C;IACpC,MAAM,UAAS;IAEtB,OAAO,CAAC,kBAAkB,CAA6B;IAEhD,QAAQ,IAAI,IAAI;IAOhB,SAAS,IAAI,IAAI;IAQjB,cAAc,QAAO,IAAI,CAM9B;IAEF,uDAAuD;IAChD,WAAW,GAAI,OAAO,KAAK,KAAG,IAAI,CAGvC;IAEF,4CAA4C;IACrC,gBAAgB,QAAO,IAAI,CAIhC;IAEF,oFAAoF;IAC7E,gBAAgB,GAAI,OAAO,KAAK,KAAG,IAAI,CAK5C;IAEK,aAAa,GAAI,OAAO,aAAa,KAAG,IAAI,CAmBjD;IAEF,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAW5B;IAEF,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,YAAY;CAGpB"}
@@ -5,9 +5,17 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
7
  import { MelodicComponent } from '@melodicdev/core';
8
+ import { registerAdapter } from '@melodicdev/core/forms';
8
9
  import { computePosition, autoUpdate, offset, flip, shift } from '../../../utils/positioning/index.js';
9
10
  import { datePickerTemplate } from './date-picker.template.js';
10
11
  import { datePickerStyles } from './date-picker.styles.js';
12
+ registerAdapter((el) => el.tagName === 'ML-DATE-PICKER', {
13
+ inputEvent: 'ml:select',
14
+ blurEvent: 'focusout',
15
+ getValue: (el) => el.value ?? '',
16
+ setValue: (el, value) => { el.value = value !== null && value !== undefined ? String(value) : ''; },
17
+ setDisabled: (el, disabled) => { el.disabled = disabled; }
18
+ });
11
19
  /**
12
20
  * ml-date-picker - Date input with calendar dropdown
13
21
  *
@@ -43,6 +51,10 @@ let DatePickerComponent = class DatePickerComponent {
43
51
  this.min = '';
44
52
  /** Maximum selectable date (YYYY-MM-DD) */
45
53
  this.max = '';
54
+ /** Earliest year reachable in the year picker (defaults to currentYear - 120) */
55
+ this.minYear = '';
56
+ /** Latest year reachable in the year picker (defaults to currentYear + 10) */
57
+ this.maxYear = '';
46
58
  /** Whether the calendar popover is open */
47
59
  this.isOpen = false;
48
60
  this._cleanupAutoUpdate = null;
@@ -172,7 +184,7 @@ DatePickerComponent = __decorate([
172
184
  selector: 'ml-date-picker',
173
185
  template: datePickerTemplate,
174
186
  styles: datePickerStyles,
175
- attributes: ['value', 'placeholder', 'label', 'hint', 'error', 'size', 'disabled', 'required', 'min', 'max']
187
+ attributes: ['value', 'placeholder', 'label', 'hint', 'error', 'size', 'disabled', 'required', 'min', 'max', 'min-year', 'max-year']
176
188
  })
177
189
  ], DatePickerComponent);
178
190
  export { DatePickerComponent };
@@ -1 +1 @@
1
- {"version":3,"file":"date-picker.template.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/date-picker/date-picker.template.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,mBAAmB,6CA4DxD"}
1
+ {"version":3,"file":"date-picker.template.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/date-picker/date-picker.template.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,mBAAmB,6CA8DxD"}
@@ -48,6 +48,8 @@ export function datePickerTemplate(c) {
48
48
  value=${c.value}
49
49
  min=${c.min}
50
50
  max=${c.max}
51
+ min-year=${c.minYear}
52
+ max-year=${c.maxYear}
51
53
  @ml:select=${c.handleDateSelect}
52
54
  ></ml-calendar>
53
55
  </div>
@@ -1 +1 @@
1
- {"version":3,"file":"date-time-picker.component.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/date-time-picker/date-time-picker.component.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAKzE,OAAO,yCAAyC,CAAC;AACjD,OAAO,yCAAyC,CAAC;AAiCjD;;;;;;;;;;;;;GAaG;AACH,qBAMa,uBAAwB,YAAW,WAAW,EAAE,QAAQ,EAAE,SAAS;IACxE,UAAU,EAAG,WAAW,CAAC;IAEhC,yDAAyD;IAClD,KAAK,SAAM;IAElB,uBAAuB;IAChB,WAAW,SAA0B;IAE5C,kBAAkB;IACX,KAAK,SAAM;IAElB,gBAAgB;IACT,IAAI,SAAM;IAEjB,oBAAoB;IACb,KAAK,SAAM;IAElB,iBAAiB;IACV,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAQ;IAEvC,qBAAqB;IACd,QAAQ,UAAS;IAExB,qBAAqB;IACd,QAAQ,UAAS;IAExB,2CAA2C;IACpC,OAAO,SAAM;IAEpB,2CAA2C;IACpC,OAAO,SAAM;IAEpB,sCAAsC;IAC/B,OAAO,SAAM;IAEpB,sCAAsC;IAC/B,OAAO,SAAM;IAEpB,2BAA2B;IACpB,IAAI,SAAM;IAEjB,yCAAyC;IAClC,UAAU,UAAQ;IAEzB,4BAA4B;IACrB,SAAS,SAAM;IAEtB,4BAA4B;IACrB,SAAS,SAAM;IAEtB,OAAO,CAAC,UAAU,CAAyB;IAE3C,IAAW,SAAS,IAAI,OAAO,CAE9B;IAED,IAAW,YAAY,IAAI,MAAM,CAEhC;IAEM,QAAQ,IAAI,IAAI;IAKhB,SAAS,IAAI,IAAI;IAKxB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,oBAAoB;IA+E5B,OAAO,CAAC,UAAU;CAqBlB"}
1
+ {"version":3,"file":"date-time-picker.component.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/date-time-picker/date-time-picker.component.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAczE,OAAO,yCAAyC,CAAC;AACjD,OAAO,yCAAyC,CAAC;AAiCjD;;;;;;;;;;;;;GAaG;AACH,qBAMa,uBAAwB,YAAW,WAAW,EAAE,QAAQ,EAAE,SAAS;IACxE,UAAU,EAAG,WAAW,CAAC;IAEhC,yDAAyD;IAClD,KAAK,SAAM;IAElB,uBAAuB;IAChB,WAAW,SAA0B;IAE5C,kBAAkB;IACX,KAAK,SAAM;IAElB,gBAAgB;IACT,IAAI,SAAM;IAEjB,oBAAoB;IACb,KAAK,SAAM;IAElB,iBAAiB;IACV,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAQ;IAEvC,qBAAqB;IACd,QAAQ,UAAS;IAExB,qBAAqB;IACd,QAAQ,UAAS;IAExB,2CAA2C;IACpC,OAAO,SAAM;IAEpB,2CAA2C;IACpC,OAAO,SAAM;IAEpB,sCAAsC;IAC/B,OAAO,SAAM;IAEpB,sCAAsC;IAC/B,OAAO,SAAM;IAEpB,2BAA2B;IACpB,IAAI,SAAM;IAEjB,yCAAyC;IAClC,UAAU,UAAQ;IAEzB,4BAA4B;IACrB,SAAS,SAAM;IAEtB,4BAA4B;IACrB,SAAS,SAAM;IAEtB,OAAO,CAAC,UAAU,CAAyB;IAE3C,IAAW,SAAS,IAAI,OAAO,CAE9B;IAED,IAAW,YAAY,IAAI,MAAM,CAEhC;IAEM,QAAQ,IAAI,IAAI;IAKhB,SAAS,IAAI,IAAI;IAKxB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,oBAAoB;IA+E5B,OAAO,CAAC,UAAU;CAqBlB"}
@@ -5,8 +5,16 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
7
  import { MelodicComponent } from '@melodicdev/core';
8
+ import { registerAdapter } from '@melodicdev/core/forms';
8
9
  import { dateTimePickerTemplate } from './date-time-picker.template.js';
9
10
  import { dateTimePickerStyles } from './date-time-picker.styles.js';
11
+ registerAdapter((el) => el.tagName === 'ML-DATE-TIME-PICKER', {
12
+ inputEvent: 'ml:change',
13
+ blurEvent: 'focusout',
14
+ getValue: (el) => el.value ?? '',
15
+ setValue: (el, value) => { el.value = value !== null && value !== undefined ? String(value) : ''; },
16
+ setDisabled: (el, disabled) => { el.disabled = disabled; }
17
+ });
10
18
  // Ensure sub-components are registered
11
19
  import '../date-picker/date-picker.component.js';
12
20
  import '../time-picker/time-picker.component.js';
@@ -1 +1 @@
1
- {"version":3,"file":"input.component.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/input/input.component.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAIlD;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAMa,cAAe,YAAW,WAAW,EAAE,MAAM;IAClD,UAAU,EAAG,WAAW,CAAC;IAEhC,iBAAiB;IACV,IAAI,EAAE,SAAS,CAAU;IAEhC,oBAAoB;IACb,KAAK,SAAM;IAElB,uBAAuB;IAChB,WAAW,SAAM;IAExB,iBAAiB;IACV,KAAK,SAAM;IAElB,kCAAkC;IAC3B,IAAI,SAAM;IAEjB,iDAAiD;IAC1C,KAAK,SAAM;IAElB,iBAAiB;IACV,IAAI,EAAE,IAAI,CAAQ;IAEzB,wBAAwB;IACjB,QAAQ,UAAS;IAExB,0BAA0B;IACnB,QAAQ,UAAS;IAExB,uBAAuB;IAChB,QAAQ,UAAS;IAExB,6BAA6B;IACtB,YAAY,SAAS;IAE5B,2BAA2B;IACpB,OAAO,UAAS;IAEhB,MAAM,IAAI,IAAI;IAOd,WAAW,GAAI,OAAO,KAAK,KAAG,IAAI,CAWvC;IAEK,YAAY,GAAI,OAAO,KAAK,KAAG,IAAI,CAWxC;IAEK,WAAW,QAAO,IAAI,CAQ3B;IAEK,UAAU,QAAO,IAAI,CAQ1B;CACF"}
1
+ {"version":3,"file":"input.component.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/input/input.component.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAYlD;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAMa,cAAe,YAAW,WAAW,EAAE,MAAM;IAClD,UAAU,EAAG,WAAW,CAAC;IAEhC,iBAAiB;IACV,IAAI,EAAE,SAAS,CAAU;IAEhC,oBAAoB;IACb,KAAK,SAAM;IAElB,uBAAuB;IAChB,WAAW,SAAM;IAExB,iBAAiB;IACV,KAAK,SAAM;IAElB,kCAAkC;IAC3B,IAAI,SAAM;IAEjB,iDAAiD;IAC1C,KAAK,SAAM;IAElB,iBAAiB;IACV,IAAI,EAAE,IAAI,CAAQ;IAEzB,wBAAwB;IACjB,QAAQ,UAAS;IAExB,0BAA0B;IACnB,QAAQ,UAAS;IAExB,uBAAuB;IAChB,QAAQ,UAAS;IAExB,6BAA6B;IACtB,YAAY,SAAS;IAE5B,2BAA2B;IACpB,OAAO,UAAS;IAEhB,MAAM,IAAI,IAAI;IAOd,WAAW,GAAI,OAAO,KAAK,KAAG,IAAI,CAWvC;IAEK,YAAY,GAAI,OAAO,KAAK,KAAG,IAAI,CAWxC;IAEK,WAAW,QAAO,IAAI,CAQ3B;IAEK,UAAU,QAAO,IAAI,CAQ1B;CACF"}
@@ -5,8 +5,16 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
7
  import { MelodicComponent } from '@melodicdev/core';
8
+ import { registerAdapter } from '@melodicdev/core/forms';
8
9
  import { inputTemplate } from './input.template.js';
9
10
  import { inputStyles } from './input.styles.js';
11
+ registerAdapter((el) => el.tagName === 'ML-INPUT', {
12
+ inputEvent: 'ml:input',
13
+ blurEvent: 'focusout',
14
+ getValue: (el) => el.value ?? '',
15
+ setValue: (el, value) => { el.value = value !== null && value !== undefined ? String(value) : ''; },
16
+ setDisabled: (el, disabled) => { el.disabled = disabled; }
17
+ });
10
18
  /**
11
19
  * ml-input - Text input component with label, hint, and error states
12
20
  *
@@ -1 +1 @@
1
- {"version":3,"file":"radio-group.component.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/radio/radio-group.component.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAI3D;;;;;;;;;;;;GAYG;AACH,qBAMa,mBAAoB,YAAW,WAAW,EAAE,MAAM;IACvD,UAAU,EAAG,WAAW,CAAC;IAEhC,kBAAkB;IACX,KAAK,SAAM;IAElB,sBAAsB;IACf,IAAI,SAAM;IAEjB,6BAA6B;IACtB,KAAK,SAAM;IAElB,gBAAgB;IACT,IAAI,SAAM;IAEjB,oBAAoB;IACb,KAAK,SAAM;IAElB,yBAAyB;IAClB,WAAW,EAAE,WAAW,CAAc;IAE7C,qBAAqB;IACd,QAAQ,UAAS;IAExB,qBAAqB;IACd,QAAQ,UAAS;IAEjB,MAAM,IAAI,IAAI;IAQrB,OAAO,CAAC,iBAAiB,CAmBvB;IAEF,OAAO,CAAC,iBAAiB;CAuBzB"}
1
+ {"version":3,"file":"radio-group.component.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/radio/radio-group.component.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAY3D;;;;;;;;;;;;GAYG;AACH,qBAMa,mBAAoB,YAAW,WAAW,EAAE,MAAM;IACvD,UAAU,EAAG,WAAW,CAAC;IAEhC,kBAAkB;IACX,KAAK,SAAM;IAElB,sBAAsB;IACf,IAAI,SAAM;IAEjB,6BAA6B;IACtB,KAAK,SAAM;IAElB,gBAAgB;IACT,IAAI,SAAM;IAEjB,oBAAoB;IACb,KAAK,SAAM;IAElB,yBAAyB;IAClB,WAAW,EAAE,WAAW,CAAc;IAE7C,qBAAqB;IACd,QAAQ,UAAS;IAExB,qBAAqB;IACd,QAAQ,UAAS;IAEjB,MAAM,IAAI,IAAI;IAQrB,OAAO,CAAC,iBAAiB,CAmBvB;IAEF,OAAO,CAAC,iBAAiB;CAuBzB"}
@@ -5,8 +5,16 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
7
  import { MelodicComponent } from '@melodicdev/core';
8
+ import { registerAdapter } from '@melodicdev/core/forms';
8
9
  import { radioGroupTemplate } from './radio-group.template.js';
9
10
  import { radioGroupStyles } from './radio-group.styles.js';
11
+ registerAdapter((el) => el.tagName === 'ML-RADIO-GROUP', {
12
+ inputEvent: 'ml:change',
13
+ blurEvent: 'focusout',
14
+ getValue: (el) => el.value ?? '',
15
+ setValue: (el, value) => { el.value = value !== null && value !== undefined ? String(value) : ''; },
16
+ setDisabled: (el, disabled) => { el.disabled = disabled; }
17
+ });
10
18
  /**
11
19
  * ml-radio-group - Container for radio buttons
12
20
  *
@@ -1 +1 @@
1
- {"version":3,"file":"select.component.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/select/select.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"select.component.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/select/select.component.ts"],"names":[],"mappings":"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"}
@@ -5,9 +5,26 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
7
  import { MelodicComponent } from '@melodicdev/core';
8
+ import { registerAdapter } from '@melodicdev/core/forms';
8
9
  import { computePosition, offset, flip, shift } from '../../../utils/positioning/index.js';
9
10
  import { selectTemplate } from './select.template.js';
10
11
  import { selectStyles } from './select.styles.js';
12
+ registerAdapter((el) => el.tagName === 'ML-SELECT', {
13
+ inputEvent: 'ml:change',
14
+ blurEvent: 'focusout',
15
+ getValue: (el) => {
16
+ const e = el;
17
+ return e.multiple ? (e.values ?? []) : (e.value ?? '');
18
+ },
19
+ setValue: (el, value) => {
20
+ const e = el;
21
+ if (Array.isArray(value))
22
+ e.values = value;
23
+ else
24
+ e.value = value !== null && value !== undefined ? String(value) : '';
25
+ },
26
+ setDisabled: (el, disabled) => { el.disabled = disabled; }
27
+ });
11
28
  /**
12
29
  * ml-select - Custom select/dropdown component
13
30
  *
@@ -1 +1 @@
1
- {"version":3,"file":"slider.component.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/slider/slider.component.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAIpD;;;;;;;;;;;GAWG;AACH,qBAMa,eAAgB,YAAW,WAAW;IAC3C,UAAU,EAAG,WAAW,CAAC;IAEhC,iBAAiB;IACV,KAAK,SAAM;IAElB,oBAAoB;IACb,KAAK,SAAM;IAElB,oBAAoB;IACb,GAAG,SAAK;IAEf,oBAAoB;IACb,GAAG,SAAO;IAEjB,qBAAqB;IACd,IAAI,SAAK;IAEhB,kBAAkB;IACX,IAAI,EAAE,IAAI,CAAQ;IAEzB,yBAAyB;IAClB,QAAQ,UAAS;IAExB,yBAAyB;IAClB,SAAS,UAAS;IAEzB,gBAAgB;IACT,IAAI,SAAM;IAEjB,oBAAoB;IACb,KAAK,SAAM;IAElB,+BAA+B;IAC/B,IAAW,KAAK,IAAI,MAAM,CAIzB;IAED,4DAA4D;IAC5D,IAAW,SAAS,IAAI,MAAM,CAG7B;IAEM,WAAW,GAAI,OAAO,KAAK,KAAG,IAAI,CAWvC;IAEK,YAAY,GAAI,OAAO,KAAK,KAAG,IAAI,CAWxC;CACF"}
1
+ {"version":3,"file":"slider.component.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/slider/slider.component.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAYpD;;;;;;;;;;;GAWG;AACH,qBAMa,eAAgB,YAAW,WAAW;IAC3C,UAAU,EAAG,WAAW,CAAC;IAEhC,iBAAiB;IACV,KAAK,SAAM;IAElB,oBAAoB;IACb,KAAK,SAAM;IAElB,oBAAoB;IACb,GAAG,SAAK;IAEf,oBAAoB;IACb,GAAG,SAAO;IAEjB,qBAAqB;IACd,IAAI,SAAK;IAEhB,kBAAkB;IACX,IAAI,EAAE,IAAI,CAAQ;IAEzB,yBAAyB;IAClB,QAAQ,UAAS;IAExB,yBAAyB;IAClB,SAAS,UAAS;IAEzB,gBAAgB;IACT,IAAI,SAAM;IAEjB,oBAAoB;IACb,KAAK,SAAM;IAElB,+BAA+B;IAC/B,IAAW,KAAK,IAAI,MAAM,CAIzB;IAED,4DAA4D;IAC5D,IAAW,SAAS,IAAI,MAAM,CAG7B;IAEM,WAAW,GAAI,OAAO,KAAK,KAAG,IAAI,CAWvC;IAEK,YAAY,GAAI,OAAO,KAAK,KAAG,IAAI,CAWxC;CACF"}
@@ -5,8 +5,16 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
7
  import { MelodicComponent } from '@melodicdev/core';
8
+ import { registerAdapter } from '@melodicdev/core/forms';
8
9
  import { sliderTemplate } from './slider.template.js';
9
10
  import { sliderStyles } from './slider.styles.js';
11
+ registerAdapter((el) => el.tagName === 'ML-SLIDER', {
12
+ inputEvent: 'ml:input',
13
+ blurEvent: 'focusout',
14
+ getValue: (el) => Number(el.value) || 0,
15
+ setValue: (el, value) => { el.value = Number(value) || 0; },
16
+ setDisabled: (el, disabled) => { el.disabled = disabled; }
17
+ });
10
18
  /**
11
19
  * ml-slider - Range slider input
12
20
  *
@@ -1 +1 @@
1
- {"version":3,"file":"textarea.component.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/textarea/textarea.component.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAIpD;;;;;;;;;;;;;;GAcG;AACH,qBAMa,iBAAkB,YAAW,WAAW,EAAE,MAAM;IACrD,UAAU,EAAG,WAAW,CAAC;IAEhC,oBAAoB;IACb,KAAK,SAAM;IAElB,uBAAuB;IAChB,WAAW,SAAM;IAExB,iBAAiB;IACV,KAAK,SAAM;IAElB,qCAAqC;IAC9B,IAAI,SAAM;IAEjB,iDAAiD;IAC1C,KAAK,SAAM;IAElB,iBAAiB;IACV,IAAI,EAAE,IAAI,CAAQ;IAEzB,mCAAmC;IAC5B,IAAI,SAAK;IAEhB,+BAA+B;IACxB,SAAS,SAAK;IAErB,2BAA2B;IACpB,QAAQ,UAAS;IAExB,6BAA6B;IACtB,QAAQ,UAAS;IAExB,uBAAuB;IAChB,QAAQ,UAAS;IAExB,4BAA4B;IACrB,MAAM,UAAS;IAEtB,2BAA2B;IACpB,OAAO,UAAS;IAEhB,MAAM,IAAI,IAAI;IAMd,WAAW,GAAI,OAAO,KAAK,KAAG,IAAI,CAWvC;IAEK,YAAY,GAAI,OAAO,KAAK,KAAG,IAAI,CAWxC;IAEK,WAAW,QAAO,IAAI,CAQ3B;IAEK,UAAU,QAAO,IAAI,CAQ1B;CACF"}
1
+ {"version":3,"file":"textarea.component.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/textarea/textarea.component.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAYpD;;;;;;;;;;;;;;GAcG;AACH,qBAMa,iBAAkB,YAAW,WAAW,EAAE,MAAM;IACrD,UAAU,EAAG,WAAW,CAAC;IAEhC,oBAAoB;IACb,KAAK,SAAM;IAElB,uBAAuB;IAChB,WAAW,SAAM;IAExB,iBAAiB;IACV,KAAK,SAAM;IAElB,qCAAqC;IAC9B,IAAI,SAAM;IAEjB,iDAAiD;IAC1C,KAAK,SAAM;IAElB,iBAAiB;IACV,IAAI,EAAE,IAAI,CAAQ;IAEzB,mCAAmC;IAC5B,IAAI,SAAK;IAEhB,+BAA+B;IACxB,SAAS,SAAK;IAErB,2BAA2B;IACpB,QAAQ,UAAS;IAExB,6BAA6B;IACtB,QAAQ,UAAS;IAExB,uBAAuB;IAChB,QAAQ,UAAS;IAExB,4BAA4B;IACrB,MAAM,UAAS;IAEtB,2BAA2B;IACpB,OAAO,UAAS;IAEhB,MAAM,IAAI,IAAI;IAMd,WAAW,GAAI,OAAO,KAAK,KAAG,IAAI,CAWvC;IAEK,YAAY,GAAI,OAAO,KAAK,KAAG,IAAI,CAWxC;IAEK,WAAW,QAAO,IAAI,CAQ3B;IAEK,UAAU,QAAO,IAAI,CAQ1B;CACF"}
@@ -5,8 +5,16 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
7
  import { MelodicComponent } from '@melodicdev/core';
8
+ import { registerAdapter } from '@melodicdev/core/forms';
8
9
  import { textareaTemplate } from './textarea.template.js';
9
10
  import { textareaStyles } from './textarea.styles.js';
11
+ registerAdapter((el) => el.tagName === 'ML-TEXTAREA', {
12
+ inputEvent: 'ml:input',
13
+ blurEvent: 'focusout',
14
+ getValue: (el) => el.value ?? '',
15
+ setValue: (el, value) => { el.value = value !== null && value !== undefined ? String(value) : ''; },
16
+ setDisabled: (el, disabled) => { el.disabled = disabled; }
17
+ });
10
18
  /**
11
19
  * ml-textarea - Multi-line text input component
12
20
  *
@@ -1 +1 @@
1
- {"version":3,"file":"time-picker.component.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/time-picker/time-picker.component.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AA8BzE;;;;;;;;;;;GAWG;AACH,qBAMa,mBAAoB,YAAW,WAAW,EAAE,QAAQ,EAAE,SAAS;IACpE,UAAU,EAAG,WAAW,CAAC;IAEhC,gDAAgD;IACzC,KAAK,SAAM;IAElB,uBAAuB;IAChB,WAAW,SAAiB;IAEnC,kBAAkB;IACX,KAAK,SAAM;IAElB,gBAAgB;IACT,IAAI,SAAM;IAEjB,oBAAoB;IACb,KAAK,SAAM;IAElB,iBAAiB;IACV,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAQ;IAEvC,qBAAqB;IACd,QAAQ,UAAS;IAExB,qBAAqB;IACd,QAAQ,UAAS;IAExB,sCAAsC;IAC/B,GAAG,SAAM;IAEhB,sCAAsC;IAC/B,GAAG,SAAM;IAEhB,uFAAuF;IAChF,IAAI,SAAM;IAEjB,oDAAoD;IAC7C,UAAU,UAAQ;IAEzB,kCAAkC;IAC3B,MAAM,UAAS;IAEtB,2BAA2B;IACpB,QAAQ,SAAK;IAEpB,6BAA6B;IACtB,UAAU,SAAK;IAEtB,6BAA6B;IACtB,UAAU,SAAK;IAEtB,oCAAoC;IAC7B,UAAU,EAAE,IAAI,GAAG,IAAI,CAAQ;IAEtC,OAAO,CAAC,kBAAkB,CAA6B;IAEvD,IAAW,SAAS,IAAI,OAAO,CAE9B;IAED,IAAW,WAAW,IAAI,OAAO,CAEhC;IAED,IAAW,YAAY,IAAI,MAAM,CAEhC;IAED,IAAW,WAAW,IAAI,MAAM,CAQ/B;IAED,IAAW,aAAa,IAAI,MAAM,CAEjC;IAED,IAAW,aAAa,IAAI,MAAM,CAEjC;IAEM,QAAQ,IAAI,IAAI;IAOhB,SAAS,IAAI,IAAI;IAQjB,aAAa,QAAO,IAAI,CAM7B;IAEK,aAAa,QAAO,IAAI,CAS7B;IAEK,aAAa,QAAO,IAAI,CAQ7B;IAEK,eAAe,QAAO,IAAI,CAE/B;IAEK,eAAe,QAAO,IAAI,CAE/B;IAEK,eAAe,QAAO,IAAI,CAE/B;IAEK,eAAe,QAAO,IAAI,CAE/B;IAEK,YAAY,QAAO,IAAI,CAI5B;IAEK,gBAAgB,QAAO,IAAI,CAOhC;IAEK,cAAc,QAAO,IAAI,CAM9B;IAEF,uDAAuD;IAChD,eAAe,GAAI,OAAO,KAAK,KAAG,IAAI,CAG3C;IAEF,2CAA2C;IACpC,gBAAgB,QAAO,IAAI,CAIhC;IAEK,aAAa,GAAI,OAAO,aAAa,KAAG,IAAI,CAmBjD;IAEK,eAAe,GAAI,OAAO,KAAK,KAAG,IAAI,CAa3C;IAEK,iBAAiB,GAAI,OAAO,KAAK,KAAG,IAAI,CAO7C;IAEK,iBAAiB,GAAI,OAAO,KAAK,KAAG,IAAI,CAO7C;IAEK,cAAc,QAAO,IAAI,CAK9B;IAEK,gBAAgB,QAAO,IAAI,CAEhC;IAEK,gBAAgB,QAAO,IAAI,CAEhC;IAEK,gBAAgB,GAAI,OAAO,KAAK,KAAG,IAAI,CAE5C;IAEK,oBAAoB,GAAI,OAAO,aAAa,KAAG,IAAI,CAkBxD;IAEF,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAY5B;IAEF,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,YAAY;CAGpB"}
1
+ {"version":3,"file":"time-picker.component.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/time-picker/time-picker.component.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAuCzE;;;;;;;;;;;GAWG;AACH,qBAMa,mBAAoB,YAAW,WAAW,EAAE,QAAQ,EAAE,SAAS;IACpE,UAAU,EAAG,WAAW,CAAC;IAEhC,gDAAgD;IACzC,KAAK,SAAM;IAElB,uBAAuB;IAChB,WAAW,SAAiB;IAEnC,kBAAkB;IACX,KAAK,SAAM;IAElB,gBAAgB;IACT,IAAI,SAAM;IAEjB,oBAAoB;IACb,KAAK,SAAM;IAElB,iBAAiB;IACV,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAQ;IAEvC,qBAAqB;IACd,QAAQ,UAAS;IAExB,qBAAqB;IACd,QAAQ,UAAS;IAExB,sCAAsC;IAC/B,GAAG,SAAM;IAEhB,sCAAsC;IAC/B,GAAG,SAAM;IAEhB,uFAAuF;IAChF,IAAI,SAAM;IAEjB,oDAAoD;IAC7C,UAAU,UAAQ;IAEzB,kCAAkC;IAC3B,MAAM,UAAS;IAEtB,2BAA2B;IACpB,QAAQ,SAAK;IAEpB,6BAA6B;IACtB,UAAU,SAAK;IAEtB,6BAA6B;IACtB,UAAU,SAAK;IAEtB,oCAAoC;IAC7B,UAAU,EAAE,IAAI,GAAG,IAAI,CAAQ;IAEtC,OAAO,CAAC,kBAAkB,CAA6B;IAEvD,IAAW,SAAS,IAAI,OAAO,CAE9B;IAED,IAAW,WAAW,IAAI,OAAO,CAEhC;IAED,IAAW,YAAY,IAAI,MAAM,CAEhC;IAED,IAAW,WAAW,IAAI,MAAM,CAQ/B;IAED,IAAW,aAAa,IAAI,MAAM,CAEjC;IAED,IAAW,aAAa,IAAI,MAAM,CAEjC;IAEM,QAAQ,IAAI,IAAI;IAOhB,SAAS,IAAI,IAAI;IAQjB,aAAa,QAAO,IAAI,CAM7B;IAEK,aAAa,QAAO,IAAI,CAS7B;IAEK,aAAa,QAAO,IAAI,CAQ7B;IAEK,eAAe,QAAO,IAAI,CAE/B;IAEK,eAAe,QAAO,IAAI,CAE/B;IAEK,eAAe,QAAO,IAAI,CAE/B;IAEK,eAAe,QAAO,IAAI,CAE/B;IAEK,YAAY,QAAO,IAAI,CAI5B;IAEK,gBAAgB,QAAO,IAAI,CAOhC;IAEK,cAAc,QAAO,IAAI,CAM9B;IAEF,uDAAuD;IAChD,eAAe,GAAI,OAAO,KAAK,KAAG,IAAI,CAG3C;IAEF,2CAA2C;IACpC,gBAAgB,QAAO,IAAI,CAIhC;IAEK,aAAa,GAAI,OAAO,aAAa,KAAG,IAAI,CAmBjD;IAEK,eAAe,GAAI,OAAO,KAAK,KAAG,IAAI,CAa3C;IAEK,iBAAiB,GAAI,OAAO,KAAK,KAAG,IAAI,CAO7C;IAEK,iBAAiB,GAAI,OAAO,KAAK,KAAG,IAAI,CAO7C;IAEK,cAAc,QAAO,IAAI,CAK9B;IAEK,gBAAgB,QAAO,IAAI,CAEhC;IAEK,gBAAgB,QAAO,IAAI,CAEhC;IAEK,gBAAgB,GAAI,OAAO,KAAK,KAAG,IAAI,CAE5C;IAEK,oBAAoB,GAAI,OAAO,aAAa,KAAG,IAAI,CAkBxD;IAEF,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAY5B;IAEF,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,YAAY;CAGpB"}
@@ -5,9 +5,17 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
7
  import { MelodicComponent } from '@melodicdev/core';
8
+ import { registerAdapter } from '@melodicdev/core/forms';
8
9
  import { computePosition, autoUpdate, offset, flip, shift } from '../../../utils/positioning/index.js';
9
10
  import { timePickerTemplate } from './time-picker.template.js';
10
11
  import { timePickerStyles } from './time-picker.styles.js';
12
+ registerAdapter((el) => el.tagName === 'ML-TIME-PICKER', {
13
+ inputEvent: 'ml:change',
14
+ blurEvent: 'focusout',
15
+ getValue: (el) => el.value ?? '',
16
+ setValue: (el, value) => { el.value = value !== null && value !== undefined ? String(value) : ''; },
17
+ setDisabled: (el, disabled) => { el.disabled = disabled; }
18
+ });
11
19
  function pad(n) {
12
20
  return String(n).padStart(2, '0');
13
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"toggle.component.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/toggle/toggle.component.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAIpD;;;;;;;;;;;GAWG;AACH,qBAMa,eAAgB,YAAW,WAAW;IAC3C,UAAU,EAAG,WAAW,CAAC;IAEhC,mBAAmB;IACZ,KAAK,SAAM;IAElB,gBAAgB;IACT,IAAI,SAAM;IAEjB,kBAAkB;IACX,IAAI,EAAE,IAAI,CAAQ;IAEzB,oBAAoB;IACb,OAAO,UAAS;IAEvB,qBAAqB;IACd,QAAQ,UAAS;IAEjB,YAAY,GAAI,OAAO,KAAK,KAAG,IAAI,CAgBxC;CACF"}
1
+ {"version":3,"file":"toggle.component.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/toggle/toggle.component.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAYpD;;;;;;;;;;;GAWG;AACH,qBAMa,eAAgB,YAAW,WAAW;IAC3C,UAAU,EAAG,WAAW,CAAC;IAEhC,mBAAmB;IACZ,KAAK,SAAM;IAElB,gBAAgB;IACT,IAAI,SAAM;IAEjB,kBAAkB;IACX,IAAI,EAAE,IAAI,CAAQ;IAEzB,oBAAoB;IACb,OAAO,UAAS;IAEvB,qBAAqB;IACd,QAAQ,UAAS;IAEjB,YAAY,GAAI,OAAO,KAAK,KAAG,IAAI,CAgBxC;CACF"}
@@ -5,8 +5,16 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
7
  import { MelodicComponent } from '@melodicdev/core';
8
+ import { registerAdapter } from '@melodicdev/core/forms';
8
9
  import { toggleTemplate } from './toggle.template.js';
9
10
  import { toggleStyles } from './toggle.styles.js';
11
+ registerAdapter((el) => el.tagName === 'ML-TOGGLE', {
12
+ inputEvent: 'ml:change',
13
+ blurEvent: 'focusout',
14
+ getValue: (el) => Boolean(el.checked),
15
+ setValue: (el, value) => { el.checked = Boolean(value); },
16
+ setDisabled: (el, disabled) => { el.disabled = disabled; }
17
+ });
10
18
  /**
11
19
  * ml-toggle - Toggle/switch component
12
20
  *
@@ -0,0 +1,2 @@
1
+ export declare function registerMelodicFormAdapters(): void;
2
+ //# sourceMappingURL=forms-adapters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forms-adapters.d.ts","sourceRoot":"","sources":["../src/forms-adapters.ts"],"names":[],"mappings":"AA+FA,wBAAgB,2BAA2B,IAAI,IAAI,CAiBlD"}
@@ -0,0 +1,105 @@
1
+ import { registerAdapter } from '@melodicdev/core/forms';
2
+ const valueTextInputAdapter = {
3
+ inputEvent: 'ml:input',
4
+ blurEvent: 'focusout',
5
+ getValue(element) {
6
+ return element.value ?? '';
7
+ },
8
+ setValue(element, value) {
9
+ element.value = value !== null && value !== undefined ? String(value) : '';
10
+ },
11
+ setDisabled(element, disabled) {
12
+ element.disabled = disabled;
13
+ }
14
+ };
15
+ const valueChangeInputAdapter = {
16
+ inputEvent: 'ml:change',
17
+ blurEvent: 'focusout',
18
+ getValue(element) {
19
+ return element.value ?? '';
20
+ },
21
+ setValue(element, value) {
22
+ element.value = value !== null && value !== undefined ? String(value) : '';
23
+ },
24
+ setDisabled(element, disabled) {
25
+ element.disabled = disabled;
26
+ }
27
+ };
28
+ const selectInputAdapter = {
29
+ inputEvent: 'ml:change',
30
+ blurEvent: 'focusout',
31
+ getValue(element) {
32
+ const el = element;
33
+ return el.multiple ? (el.values ?? []) : (el.value ?? '');
34
+ },
35
+ setValue(element, value) {
36
+ const el = element;
37
+ if (Array.isArray(value)) {
38
+ el.values = value;
39
+ }
40
+ else {
41
+ el.value = value !== null && value !== undefined ? String(value) : '';
42
+ }
43
+ },
44
+ setDisabled(element, disabled) {
45
+ element.disabled = disabled;
46
+ }
47
+ };
48
+ const booleanCheckedAdapter = {
49
+ inputEvent: 'ml:change',
50
+ blurEvent: 'focusout',
51
+ getValue(element) {
52
+ return Boolean(element.checked);
53
+ },
54
+ setValue(element, value) {
55
+ element.checked = Boolean(value);
56
+ },
57
+ setDisabled(element, disabled) {
58
+ element.disabled = disabled;
59
+ }
60
+ };
61
+ const numberValueAdapter = {
62
+ inputEvent: 'ml:input',
63
+ blurEvent: 'focusout',
64
+ getValue(element) {
65
+ return Number(element.value) || 0;
66
+ },
67
+ setValue(element, value) {
68
+ element.value = Number(value) || 0;
69
+ },
70
+ setDisabled(element, disabled) {
71
+ element.disabled = disabled;
72
+ }
73
+ };
74
+ const datePickerAdapter = {
75
+ inputEvent: 'ml:select',
76
+ blurEvent: 'focusout',
77
+ getValue(element) {
78
+ return element.value ?? '';
79
+ },
80
+ setValue(element, value) {
81
+ element.value = value !== null && value !== undefined ? String(value) : '';
82
+ },
83
+ setDisabled(element, disabled) {
84
+ element.disabled = disabled;
85
+ }
86
+ };
87
+ let registered = false;
88
+ export function registerMelodicFormAdapters() {
89
+ if (registered)
90
+ return;
91
+ registered = true;
92
+ const tagMatcher = (tag) => (el) => el.tagName === tag;
93
+ registerAdapter(tagMatcher('ML-INPUT'), valueTextInputAdapter);
94
+ registerAdapter(tagMatcher('ML-TEXTAREA'), valueTextInputAdapter);
95
+ registerAdapter(tagMatcher('ML-SLIDER'), numberValueAdapter);
96
+ registerAdapter(tagMatcher('ML-SELECT'), selectInputAdapter);
97
+ registerAdapter(tagMatcher('ML-AUTOCOMPLETE'), selectInputAdapter);
98
+ registerAdapter(tagMatcher('ML-CHECKBOX'), booleanCheckedAdapter);
99
+ registerAdapter(tagMatcher('ML-TOGGLE'), booleanCheckedAdapter);
100
+ registerAdapter(tagMatcher('ML-RADIO-GROUP'), valueChangeInputAdapter);
101
+ registerAdapter(tagMatcher('ML-DATE-PICKER'), datePickerAdapter);
102
+ registerAdapter(tagMatcher('ML-TIME-PICKER'), valueChangeInputAdapter);
103
+ registerAdapter(tagMatcher('ML-DATE-TIME-PICKER'), valueChangeInputAdapter);
104
+ }
105
+ registerMelodicFormAdapters();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@melodicdev/components",
3
- "version": "1.5.12",
3
+ "version": "1.6.0",
4
4
  "description": "Themeable UI component library built on the Melodic Framework",
5
5
  "license": "MIT",
6
6
  "author": "Melodic Development",