@golemui/gui-lit 1.1.0 → 1.1.1-rc.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 (60) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/{button.element-3a7rRHbA.js → button.element-CJay43iR.js} +16 -13
  3. package/{calendar-BuJgwvZx.js → calendar-D31xNsxx.js} +72 -59
  4. package/{calendar.element-M5MPJmap.js → calendar.element-BhFrCsns.js} +22 -20
  5. package/{checkbox.element-CVskoXEc.js → checkbox.element-DAAVB651.js} +49 -49
  6. package/{currency.element-CfFrAtrr.js → currency.element-D8A2ObpM.js} +11 -10
  7. package/{date-Bj9mI3GU.js → date-DBuYpvcO.js} +35 -27
  8. package/{date-input-cJDkNnVw.js → date-input-DLiMreSS.js} +64 -44
  9. package/date-picker.element-DeUQtbLg.js +357 -0
  10. package/{date-time-calendar-BzRfkLKU.js → date-time-calendar-DzU-FtVl.js} +89 -76
  11. package/{date-time-calendar.element-DC4NK0y1.js → date-time-calendar.element-BLBcVsFu.js} +13 -11
  12. package/{date-time-input-BXxsfuyZ.js → date-time-input-DZaz2heD.js} +75 -43
  13. package/{date-time-picker.element-Dy-8cb-_.js → date-time-picker.element-BUbLdV6i.js} +125 -65
  14. package/{date-time.element-Bv4XdzMi.js → date-time.element-B5onfSBG.js} +31 -25
  15. package/{date.element-Consgsbb.js → date.element-BsKhLrEc.js} +22 -19
  16. package/{day-status-0-hJHrI7.js → day-status-CsWStVQV.js} +153 -129
  17. package/{dropdown.element-WsD61Qel.js → dropdown.element-CXpMwJsU.js} +19 -13
  18. package/{errors-QjKhr6mA.js → errors-Byb2dIhK.js} +3 -2
  19. package/index.js +1643 -1184
  20. package/index.umd.cjs +792 -399
  21. package/{list-CrLIL4by.js → list-D730tmGN.js} +115 -116
  22. package/{list.element-DV82YxnJ.js → list.element-eo3DIOrp.js} +2 -2
  23. package/{markdown.element-p-kC47D7.js → markdown.element-FbtwdnAv.js} +310 -218
  24. package/{number.element-CBr47IiY.js → number.element-BEpOCzXy.js} +76 -61
  25. package/package.json +6 -6
  26. package/{part-templates-Db871PS3.js → part-templates-VORbpgs2.js} +132 -118
  27. package/{password.element-n-R9RbkB.js → password.element-CBaB8h5b.js} +19 -17
  28. package/{pill-ranges-DCqDmpkk.js → pill-ranges-DpvWwP-3.js} +12 -12
  29. package/{pills-Be1UrLgq.js → pills-BDMO2NiR.js} +80 -58
  30. package/popup.controller-B33OvX_y.js +86 -0
  31. package/{radiogroup.element-CeQn623u.js → radiogroup.element-KWzBx8mx.js} +55 -51
  32. package/{range-calendar-CKPYeSGt.js → range-calendar-DO_woqcF.js} +101 -87
  33. package/{range-calendar.element-D6KYq18B.js → range-calendar.element-DHLZhpnj.js} +15 -13
  34. package/{range-date-input-D--AqBMv.js → range-date-input-Br7XqQPK.js} +90 -71
  35. package/{range-date-input.element-D4nIXJbw.js → range-date-input.element-BdD4SlB4.js} +15 -12
  36. package/{range-date-picker.element-dhxPAAE6.js → range-date-picker.element-DWRHiAoC.js} +97 -49
  37. package/{range-date-time-calendar-yksWrR7b.js → range-date-time-calendar-B3EMgN1E.js} +150 -136
  38. package/{range-date-time-calendar.element-C00aDefZ.js → range-date-time-calendar.element-Coea6RF4.js} +9 -7
  39. package/{range-date-time-input-B37TUoM3.js → range-date-time-input-Cu-T_nuC.js} +125 -94
  40. package/{range-date-time-input.element-DUnbv4ed.js → range-date-time-input.element-Cti44iuW.js} +31 -25
  41. package/{range-date-time-picker.element-Cbps6s_G.js → range-date-time-picker.element-CDN2RL1y.js} +107 -47
  42. package/{range-time-input-3lhqR1Ku.js → range-time-input-BP9ZL9O8.js} +85 -66
  43. package/{range-time-input.element-dU2iBdmJ.js → range-time-input.element-B7wtHJoQ.js} +14 -11
  44. package/{range-time-picker.element-v6nQsIPw.js → range-time-picker.element-CPIAiQPC.js} +92 -51
  45. package/{repeater.element-CtNgB4F5.js → repeater.element-BM1Keckd.js} +1 -1
  46. package/{select.element-C0V-Bv3L.js → select.element-eepcXTpL.js} +84 -78
  47. package/{tabs.element-BvAyI71N.js → tabs.element-CvcIA8P3.js} +1 -0
  48. package/{tags.element-DvwEpxpK.js → tags.element-CPHgotb0.js} +21 -14
  49. package/templates-Dmr34nwp.js +88 -0
  50. package/{textarea.element-HThYqdR_.js → textarea.element-CiNEy9uq.js} +8 -7
  51. package/{textinput.element-CkXNzMUg.js → textinput.element-AL2Nr768.js} +10 -9
  52. package/{time-input-BOhlBGJZ.js → time-input-5dkSm8UW.js} +67 -47
  53. package/{time-list-Czo48bZm.js → time-list-DLcq8BAp.js} +1 -1
  54. package/{time-picker-bFJ63ky8.js → time-picker-g337F8d0.js} +89 -51
  55. package/{time-picker.element-CYZVXgRS.js → time-picker.element-DLihegjg.js} +23 -19
  56. package/{time.element-fK3oLi49.js → time.element-BneqgMlQ.js} +22 -19
  57. package/{toggle.element-C1kCw5H8.js → toggle.element-Cz91CRdp.js} +44 -43
  58. package/date-picker.element-va_-LGZD.js +0 -312
  59. package/popup.controller-eUDxE6jD.js +0 -71
  60. package/templates-Dk1jxLwS.js +0 -75
@@ -1,18 +1,18 @@
1
- import { html as c, LitElement as p, nothing as h } from "lit";
2
- import { classMap as m } from "lit/directives/class-map.js";
1
+ import { html as u, LitElement as c } from "lit";
2
+ import { classMap as p } from "lit/directives/class-map.js";
3
3
  import "@golemui/core";
4
- import { property as a, state as u, query as f, customElement as v } from "lit/decorators.js";
5
- const T = (e) => {
4
+ import { property as a, state as h, query as m, customElement as f } from "lit/decorators.js";
5
+ const F = (e) => {
6
6
  const t = {
7
7
  "gui-list__item": !0,
8
8
  "gui-list__item-selected": !!e.selected,
9
9
  "gui-list__item-focused": !!e.focused,
10
10
  "gui-list__item-disabled": !!e.disabled
11
11
  };
12
- return c`
12
+ return u`
13
13
  <div
14
14
  role="option"
15
- class=${m(t)}
15
+ class=${p(t)}
16
16
  aria-selected=${e.selected ? "true" : "false"}
17
17
  aria-disabled=${e.disabled ? "true" : "false"}
18
18
  >
@@ -20,21 +20,21 @@ const T = (e) => {
20
20
  </div>
21
21
  `;
22
22
  }, b = (e) => e !== null && typeof e == "object" && Object.prototype.hasOwnProperty.call(e, "template") && Object.prototype.hasOwnProperty.call(e, "value");
23
- function g(e) {
23
+ function v(e) {
24
24
  const t = typeof e;
25
25
  return t === "string" || t === "number";
26
26
  }
27
- const y = (e, { valueField: t }) => {
27
+ const g = (e, { valueField: t }) => {
28
28
  if (e === null || typeof e != "object")
29
29
  return !1;
30
- const i = e, o = t ?? "value";
31
- return !!Object.prototype.hasOwnProperty.call(i, o);
30
+ const s = e, o = t ?? "value";
31
+ return !!Object.prototype.hasOwnProperty.call(s, o);
32
32
  };
33
- function I(e, { valueField: t }) {
33
+ function y(e, { valueField: t }) {
34
34
  if (e === null || typeof e != "object")
35
35
  throw new Error("Provided value is not an object");
36
- const i = e, o = t ?? "value", s = Object.prototype.hasOwnProperty.call(i, o) ? o : void 0;
37
- if (!s)
36
+ const s = e, o = t ?? "value", i = Object.prototype.hasOwnProperty.call(s, o) ? o : void 0;
37
+ if (!i)
38
38
  throw new Error("No valueField exists on the object");
39
39
  return (r) => {
40
40
  if (r === null || typeof r != "object")
@@ -42,63 +42,118 @@ function I(e, { valueField: t }) {
42
42
  const d = r;
43
43
  return {
44
44
  template: r,
45
- value: s ? d[s] : "",
45
+ value: i ? d[i] : "",
46
46
  ...typeof d.disabled == "boolean" ? { disabled: d.disabled } : {}
47
47
  };
48
48
  };
49
49
  }
50
- const w = (e, t) => {
50
+ const I = (e, t) => {
51
51
  if (Array.isArray(e) && e.length > 0 && !b(e[0])) {
52
- if (g(e[0]))
53
- return e.map((i) => ({
54
- template: i,
55
- value: i
52
+ if (v(e[0]))
53
+ return e.map((s) => ({
54
+ template: s,
55
+ value: s
56
56
  }));
57
- if (y(e[0], t)) {
58
- const i = I(e[0], t);
59
- return e.map(i);
57
+ if (g(e[0], t)) {
58
+ const s = y(e[0], t);
59
+ return e.map(s);
60
60
  } else
61
61
  throw new Error("Invalid list item shape");
62
62
  }
63
63
  return e;
64
64
  };
65
- var _ = Object.defineProperty, x = Object.getOwnPropertyDescriptor, l = (e, t, i, o) => {
66
- for (var s = o > 1 ? void 0 : o ? x(t, i) : t, r = e.length - 1, d; r >= 0; r--)
67
- (d = e[r]) && (s = (o ? d(t, i, s) : d(s)) || s);
68
- return o && s && _(t, i, s), s;
65
+ var w = Object.defineProperty, _ = Object.getOwnPropertyDescriptor, l = (e, t, s, o) => {
66
+ for (var i = o > 1 ? void 0 : o ? _(t, s) : t, r = e.length - 1, d; r >= 0; r--)
67
+ (d = e[r]) && (i = (o ? d(t, s, i) : d(i)) || i);
68
+ return o && i && w(t, s, i), i;
69
69
  };
70
- let n = class extends p {
70
+ let n = class extends c {
71
71
  constructor() {
72
- super(...arguments), this.uid = void 0, this.touched = !1, this.required = !1, this.disabled = !1, this.readOnly = !1, this.value = void 0, this.valueField = void 0, this.label = void 0, this.hint = void 0, this.items = [], this.itemHeight = void 0, this.height = void 0, this._items = [], this._scrollTop = 0, this._viewportHeight = 0, this._focusedIndex = -1, this.buffer = 5;
72
+ super(...arguments), this.uid = void 0, this.touched = !1, this.required = !1, this.disabled = !1, this.readOnly = !1, this.value = void 0, this.valueField = void 0, this.label = void 0, this.hint = void 0, this.items = [], this.itemHeight = void 0, this.height = void 0, this._items = [], this._scrollTop = 0, this._viewportHeight = 0, this._focusedIndex = -1, this.buffer = 5, this.onKeyDown = (e) => {
73
+ if (this.disabled || this.readOnly) return;
74
+ const t = this.itemHeight ?? 40, s = Math.ceil(this._viewportHeight / t), o = this.items.length - 1;
75
+ let i = !1;
76
+ switch (e.key) {
77
+ case "ArrowDown":
78
+ this.setFocusedIndex(this.findEnabledIndex(Math.min(this._focusedIndex + 1, o), 1)), i = !0;
79
+ break;
80
+ case "ArrowUp":
81
+ this.setFocusedIndex(this.findEnabledIndex(Math.max(this._focusedIndex - 1, 0), -1)), i = !0;
82
+ break;
83
+ case "PageDown":
84
+ this.setFocusedIndex(
85
+ this.findEnabledIndex(Math.min(this._focusedIndex + s, o), 1)
86
+ ), i = !0;
87
+ break;
88
+ case "PageUp":
89
+ this.setFocusedIndex(
90
+ this.findEnabledIndex(Math.max(this._focusedIndex - s, 0), -1)
91
+ ), i = !0;
92
+ break;
93
+ case "Home":
94
+ this.setFocusedIndex(this.findEnabledIndex(0, 1)), i = !0;
95
+ break;
96
+ case "End":
97
+ this.setFocusedIndex(this.findEnabledIndex(o, -1)), i = !0;
98
+ break;
99
+ case "Enter":
100
+ case " ": {
101
+ const r = this._items[this._focusedIndex];
102
+ this._focusedIndex >= 0 && r != null && !r.disabled && this.selectItem(r), i = !0;
103
+ break;
104
+ }
105
+ }
106
+ i && e.preventDefault();
107
+ }, this.onFocus = () => {
108
+ if (!this.value || !this.items.length) return;
109
+ const e = this._items.findIndex((t) => t.value === this.value);
110
+ this._focusedIndex = e, this.scrollToIndex(e), this.dispatchEvent(
111
+ new CustomEvent("gui-focus-change", {
112
+ detail: { index: e },
113
+ bubbles: !0,
114
+ composed: !0
115
+ })
116
+ );
117
+ }, this.onFocusOut = (e) => {
118
+ e.relatedTarget && this.contains(e.relatedTarget) || (this._focusedIndex = -1, this.dispatchEvent(
119
+ new CustomEvent("gui-focus-change", {
120
+ detail: { index: -1 },
121
+ bubbles: !0,
122
+ composed: !0
123
+ })
124
+ ), this.dispatchEvent(new CustomEvent("blur", { bubbles: !0, composed: !0 })));
125
+ };
73
126
  }
74
127
  willUpdate(e) {
75
- super.willUpdate(e), e.has("items") && this.updateItems(), (e.has("items") || e.has("_scrollTop") || e.has("height")) && this.emitRangeChange();
128
+ super.willUpdate(e), e.has("items") && this.updateItems(), (e.has("items") || e.has("_scrollTop") || e.has("height")) && this.emitRangeChange(), this.syncHostAria();
129
+ }
130
+ syncHostAria() {
131
+ this.setAttribute("role", "listbox"), this.tabIndex = this.disabled ? -1 : 0;
132
+ const e = (t, s) => {
133
+ s === null ? this.removeAttribute(t) : this.setAttribute(t, s);
134
+ };
135
+ e("aria-required", this.required ? "true" : null), e("aria-disabled", this.disabled || this.readOnly ? "true" : null), e(
136
+ "aria-activedescendant",
137
+ this._focusedIndex >= 0 ? `${this.uid}-item-${this._focusedIndex}` : null
138
+ ), e("aria-label", this.label ?? null), e("aria-description", this.hint ?? null);
139
+ }
140
+ connectedCallback() {
141
+ super.connectedCallback(), this.addEventListener("keydown", this.onKeyDown), this.addEventListener("focus", this.onFocus), this.addEventListener("focusout", this.onFocusOut);
76
142
  }
77
143
  firstUpdated() {
78
144
  this.measureViewport(), new ResizeObserver(() => this.measureViewport()).observe(this.viewportElement);
79
145
  }
80
146
  render() {
81
- const e = this.height ?? 300, t = this.itemHeight ?? 40, i = (this.items?.length ?? 0) * t, { offsetY: o } = this.calculateRange(), s = this._focusedIndex >= 0 ? `${this.uid}-item-${this._focusedIndex}` : void 0;
82
- return c`
147
+ const e = this.height ?? 300, t = this.itemHeight ?? 40, s = (this.items?.length ?? 0) * t, { offsetY: o } = this.calculateRange();
148
+ return u`
83
149
  <div
84
- role="listbox"
85
- id=${this.uid}
86
- tabindex=${this.disabled ? -1 : 0}
87
150
  class="gui-list__scroll-viewport"
88
151
  style="max-height: ${e}px; min-height: 40px; overflow-y: auto; position: relative; display: block;"
89
152
  @scroll="${this.onScroll}"
90
- @keydown="${this.onKeyDown}"
91
- @focus="${this.onFocus}"
92
- @focusout="${this.onFocusOut}"
93
- aria-required=${this.required ? "true" : h}
94
- aria-disabled=${this.disabled || this.readOnly ? "true" : h}
95
- aria-activedescendant="${s ?? h}"
96
- aria-label=${this.label ?? h}
97
- aria-description=${this.hint ?? h}
98
153
  >
99
154
  <div
100
155
  class="gui-list__spacer"
101
- style="height: ${i}px; width: 1px; opacity: 0; pointer-events: none;"
156
+ style="height: ${s}px; width: 1px; opacity: 0; pointer-events: none;"
102
157
  ></div>
103
158
 
104
159
  <div
@@ -110,9 +165,6 @@ let n = class extends p {
110
165
  </div>
111
166
  `;
112
167
  }
113
- focus(e) {
114
- this.viewportElement ? this.viewportElement.focus(e) : super.focus(e);
115
- }
116
168
  focusItemAtIndex(e) {
117
169
  this._focusedIndex = e;
118
170
  }
@@ -120,65 +172,9 @@ let n = class extends p {
120
172
  const e = this._items.findIndex((t) => t.value === this.value);
121
173
  this.scrollToIndex(e);
122
174
  }
123
- onKeyDown(e) {
124
- if (this.disabled || this.readOnly) return;
125
- const t = this.itemHeight ?? 40, i = Math.ceil(this._viewportHeight / t), o = this.items.length - 1;
126
- let s = !1;
127
- switch (e.key) {
128
- case "ArrowDown":
129
- this.setFocusedIndex(this.findEnabledIndex(Math.min(this._focusedIndex + 1, o), 1)), s = !0;
130
- break;
131
- case "ArrowUp":
132
- this.setFocusedIndex(this.findEnabledIndex(Math.max(this._focusedIndex - 1, 0), -1)), s = !0;
133
- break;
134
- case "PageDown":
135
- this.setFocusedIndex(
136
- this.findEnabledIndex(Math.min(this._focusedIndex + i, o), 1)
137
- ), s = !0;
138
- break;
139
- case "PageUp":
140
- this.setFocusedIndex(
141
- this.findEnabledIndex(Math.max(this._focusedIndex - i, 0), -1)
142
- ), s = !0;
143
- break;
144
- case "Home":
145
- this.setFocusedIndex(this.findEnabledIndex(0, 1)), s = !0;
146
- break;
147
- case "End":
148
- this.setFocusedIndex(this.findEnabledIndex(o, -1)), s = !0;
149
- break;
150
- case "Enter":
151
- case " ": {
152
- const r = this._items[this._focusedIndex];
153
- this._focusedIndex >= 0 && r != null && !r.disabled && this.selectItem(r), s = !0;
154
- break;
155
- }
156
- }
157
- s && e.preventDefault();
158
- }
159
- onFocus() {
160
- if (!this.value || !this.items.length) return;
161
- const e = this._items.findIndex((t) => t.value === this.value);
162
- this._focusedIndex = e, this.scrollToIndex(e), this.dispatchEvent(
163
- new CustomEvent("gui-focus-change", {
164
- detail: { index: e },
165
- bubbles: !0,
166
- composed: !0
167
- })
168
- );
169
- }
170
- onFocusOut(e) {
171
- e.relatedTarget && this.contains(e.relatedTarget) || (this._focusedIndex = -1, this.dispatchEvent(
172
- new CustomEvent("gui-focus-change", {
173
- detail: { index: -1 },
174
- bubbles: !0,
175
- composed: !0
176
- })
177
- ), this.dispatchEvent(new CustomEvent("blur", { bubbles: !0, composed: !0 })));
178
- }
179
175
  scrollToIndex(e) {
180
- const t = this.itemHeight ?? 40, i = this.height ?? 300, o = e * t, s = o + t, r = this.viewportElement.scrollTop, d = r + i;
181
- o < r ? this.viewportElement.scrollTop = o : s > d && (this.viewportElement.scrollTop = s - i);
176
+ const t = this.itemHeight ?? 40, s = this.height ?? 300, o = e * t, i = o + t, r = this.viewportElement.scrollTop, d = r + s;
177
+ o < r ? this.viewportElement.scrollTop = o : i > d && (this.viewportElement.scrollTop = i - s);
182
178
  }
183
179
  selectItem(e) {
184
180
  this.dispatchEvent(
@@ -194,8 +190,8 @@ let n = class extends p {
194
190
  * every item that way is disabled — keyboard navigation skips disabled rows.
195
191
  */
196
192
  findEnabledIndex(e, t) {
197
- for (let i = e; i >= 0 && i < this._items.length; i += t)
198
- if (!this._items[i]?.disabled) return i;
193
+ for (let s = e; s >= 0 && s < this._items.length; s += t)
194
+ if (!this._items[s]?.disabled) return s;
199
195
  return -1;
200
196
  }
201
197
  setFocusedIndex(e) {
@@ -208,7 +204,7 @@ let n = class extends p {
208
204
  ));
209
205
  }
210
206
  updateItems() {
211
- this._items = w(this.items, { valueField: this.valueField }), this.dispatchEvent(
207
+ this._items = I(this.items, { valueField: this.valueField }), this.dispatchEvent(
212
208
  new CustomEvent("gui-update-items", {
213
209
  detail: this._items,
214
210
  bubbles: !0,
@@ -234,8 +230,11 @@ let n = class extends p {
234
230
  this._scrollTop = t.scrollTop;
235
231
  }
236
232
  calculateRange() {
237
- const e = this.itemHeight ?? 40, t = this.items?.length ?? 0, i = Math.ceil(this._viewportHeight / e), o = Math.floor(this._scrollTop / e), s = Math.max(0, o - this.buffer), r = Math.min(t, o + i + this.buffer), d = s * e;
238
- return { startIndex: s, endIndex: r, offsetY: d };
233
+ const e = this.itemHeight ?? 40, t = this.items?.length ?? 0, s = Math.ceil(this._viewportHeight / e), o = Math.floor(this._scrollTop / e), i = Math.max(0, o - this.buffer), r = Math.min(t, o + s + this.buffer), d = i * e;
234
+ return { startIndex: i, endIndex: r, offsetY: d };
235
+ }
236
+ disconnectedCallback() {
237
+ super.disconnectedCallback(), this.removeEventListener("keydown", this.onKeyDown), this.removeEventListener("focus", this.onFocus), this.removeEventListener("focusout", this.onFocusOut);
239
238
  }
240
239
  };
241
240
  l([
@@ -275,24 +274,24 @@ l([
275
274
  a({ type: Number })
276
275
  ], n.prototype, "height", 2);
277
276
  l([
278
- u()
277
+ h()
279
278
  ], n.prototype, "_items", 2);
280
279
  l([
281
- u()
280
+ h()
282
281
  ], n.prototype, "_scrollTop", 2);
283
282
  l([
284
- u()
283
+ h()
285
284
  ], n.prototype, "_viewportHeight", 2);
286
285
  l([
287
- u()
286
+ h()
288
287
  ], n.prototype, "_focusedIndex", 2);
289
288
  l([
290
- f(".gui-list__scroll-viewport")
289
+ m(".gui-list__scroll-viewport")
291
290
  ], n.prototype, "viewportElement", 2);
292
291
  n = l([
293
- v("gui-list")
292
+ f("gui-list")
294
293
  ], n);
295
294
  typeof customElements < "u" && !customElements.get("gui-list") && customElements.define("gui-list", n);
296
295
  export {
297
- T as d
296
+ F as d
298
297
  };
@@ -3,8 +3,8 @@ import { consume as v, provide as I } from "@lit/context";
3
3
  import { LitElement as x, nothing as o, html as u } from "lit";
4
4
  import { property as y, state as h, query as C, customElement as R } from "lit/decorators.js";
5
5
  import "rxjs";
6
- import { d as w } from "./list-CrLIL4by.js";
7
- import "./errors-QjKhr6mA.js";
6
+ import { d as w } from "./list-D730tmGN.js";
7
+ import "./errors-Byb2dIhK.js";
8
8
  var D = Object.defineProperty, L = Object.getOwnPropertyDescriptor, r = (e, i, l, d) => {
9
9
  for (var t = d > 1 ? void 0 : d ? L(i, l) : i, n = e.length - 1, s; n >= 0; n--)
10
10
  (s = e[n]) && (t = (d ? s(i, l, t) : s(t)) || t);