@leavittsoftware/web 5.14.3 → 5.15.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 (35) hide show
  1. package/leavitt/app/app-logo.d.ts +12 -0
  2. package/leavitt/app/app-logo.js +129 -0
  3. package/leavitt/app/app-logo.js.map +1 -0
  4. package/leavitt/app/app-main-content-container.d.ts +9 -0
  5. package/leavitt/app/app-main-content-container.js +59 -0
  6. package/leavitt/app/app-main-content-container.js.map +1 -0
  7. package/leavitt/app/app-navigation-footer.d.ts +18 -0
  8. package/leavitt/app/app-navigation-footer.js +142 -0
  9. package/leavitt/app/app-navigation-footer.js.map +1 -0
  10. package/leavitt/app/app-navigation-header.d.ts +20 -0
  11. package/leavitt/app/app-navigation-header.js +221 -0
  12. package/leavitt/app/app-navigation-header.js.map +1 -0
  13. package/leavitt/app/app-width-limiter.d.ts +7 -0
  14. package/leavitt/app/app-width-limiter.js +37 -0
  15. package/leavitt/app/app-width-limiter.js.map +1 -0
  16. package/leavitt/app/contexts/main-menu-position-context.d.ts +4 -0
  17. package/leavitt/app/contexts/main-menu-position-context.js +3 -0
  18. package/leavitt/app/contexts/main-menu-position-context.js.map +1 -0
  19. package/package.json +3 -2
  20. package/titanium/circle-loading-indicator/circle-loading-indicator.d.ts +19 -0
  21. package/titanium/circle-loading-indicator/circle-loading-indicator.js +119 -0
  22. package/titanium/circle-loading-indicator/circle-loading-indicator.js.map +1 -0
  23. package/titanium/data-table/data-table-action-bar.d.ts +11 -0
  24. package/titanium/data-table/data-table-action-bar.js +214 -0
  25. package/titanium/data-table/data-table-action-bar.js.map +1 -0
  26. package/titanium/data-table/data-table-core.d.ts +420 -0
  27. package/titanium/data-table/data-table-core.js +503 -0
  28. package/titanium/data-table/data-table-core.js.map +1 -0
  29. package/titanium/drawer/drawer.js +2 -2
  30. package/titanium/helpers/find-scrollable-parent.d.ts +2 -0
  31. package/titanium/helpers/find-scrollable-parent.js +28 -0
  32. package/titanium/helpers/find-scrollable-parent.js.map +1 -0
  33. package/titanium/search-input/filled-search-input.d.ts +15 -0
  34. package/titanium/search-input/filled-search-input.js +111 -0
  35. package/titanium/search-input/filled-search-input.js.map +1 -0
@@ -0,0 +1,503 @@
1
+ import { __decorate } from "tslib";
2
+ import '@material/web/checkbox/checkbox';
3
+ import '@material/web/icon/icon';
4
+ import '@material/web/focus/md-focus-ring';
5
+ import '@material/web/ripple/ripple';
6
+ import { css, html, LitElement, nothing } from 'lit';
7
+ import { property, customElement } from 'lit/decorators.js';
8
+ import { repeat } from 'lit/directives/repeat.js';
9
+ import { a } from '@leavittsoftware/web/titanium/styles/a';
10
+ import { styleMap } from 'lit/directives/style-map.js';
11
+ import { LoadWhile } from '@leavittsoftware/web/titanium/helpers/load-while';
12
+ let TitaniumDataTableCore = class TitaniumDataTableCore extends LoadWhile(LitElement) {
13
+ #items_accessor_storage = [];
14
+ /**
15
+ * Current items displayed on the table.
16
+ */
17
+ get items() { return this.#items_accessor_storage; }
18
+ set items(value) { this.#items_accessor_storage = value; }
19
+ #tableMetaData_accessor_storage = null;
20
+ get tableMetaData() { return this.#tableMetaData_accessor_storage; }
21
+ set tableMetaData(value) { this.#tableMetaData_accessor_storage = value; }
22
+ #tableStyles_accessor_storage = null;
23
+ get tableStyles() { return this.#tableStyles_accessor_storage; }
24
+ set tableStyles(value) { this.#tableStyles_accessor_storage = value; }
25
+ #disabled_accessor_storage = false;
26
+ get disabled() { return this.#disabled_accessor_storage; }
27
+ set disabled(value) { this.#disabled_accessor_storage = value; }
28
+ #stickyHeader_accessor_storage = false;
29
+ get stickyHeader() { return this.#stickyHeader_accessor_storage; }
30
+ set stickyHeader(value) { this.#stickyHeader_accessor_storage = value; }
31
+ #sort_accessor_storage = [];
32
+ get sort() { return this.#sort_accessor_storage; }
33
+ set sort(value) { this.#sort_accessor_storage = value; }
34
+ #selectionMode_accessor_storage = 'none';
35
+ /**
36
+ * Limits table selection mode to single-select. Default is multi-select.
37
+ */
38
+ get selectionMode() { return this.#selectionMode_accessor_storage; }
39
+ set selectionMode(value) { this.#selectionMode_accessor_storage = value; }
40
+ #selected_accessor_storage = [];
41
+ /**
42
+ * Array of currently selected data table objects
43
+ */
44
+ get selected() { return this.#selected_accessor_storage; }
45
+ set selected(value) { this.#selected_accessor_storage = value; }
46
+ updated(changedProps) {
47
+ if (changedProps.has('items') && changedProps.get('items') !== this.items) {
48
+ // Clear selection when items array changes.
49
+ this.deselectAll();
50
+ }
51
+ }
52
+ selectAll() {
53
+ if (this.selectionMode === 'multi') {
54
+ this.selected = this.items;
55
+ this.#notifySelectedChanged();
56
+ }
57
+ }
58
+ deselectAll() {
59
+ if (this.selected.length > 0) {
60
+ this.selected = [];
61
+ this.#notifySelectedChanged();
62
+ }
63
+ }
64
+ #notifySelectedChanged() {
65
+ this.dispatchEvent(new Event('selected-changed', { composed: true }));
66
+ }
67
+ static { this.styles = [
68
+ a,
69
+ css `
70
+ :host {
71
+ display: grid;
72
+
73
+ --titanium-data-table-core-background-color: var(--md-sys-color-surface-container-lowest, #1d1b20);
74
+ background-color: var(--titanium-data-table-core-background-color);
75
+ overflow: auto;
76
+ z-index: 0;
77
+ }
78
+
79
+ table {
80
+ border-spacing: 0;
81
+ border-collapse: separate;
82
+
83
+ background-color: inherit;
84
+ align-self: start;
85
+ }
86
+
87
+ :host([selection-mode='none']) table {
88
+ thead {
89
+ button {
90
+ padding-left: 16px;
91
+ }
92
+ }
93
+
94
+ tbody {
95
+ tr {
96
+ td:first-of-type {
97
+ content-container {
98
+ padding-left: 16px;
99
+ }
100
+ }
101
+ }
102
+ }
103
+ }
104
+
105
+ content-container {
106
+ display: grid;
107
+ height: 100%;
108
+ box-sizing: border-box;
109
+ background-color: var(--titanium-data-table-core-background-color);
110
+ }
111
+
112
+ :host([sticky-header]) {
113
+ thead th:not([checkbox]) {
114
+ position: sticky;
115
+ top: 0;
116
+ z-index: 3;
117
+ }
118
+ }
119
+
120
+ table[has-selected-items] {
121
+ tr {
122
+ cursor: pointer;
123
+ }
124
+ }
125
+
126
+ thead {
127
+ tr {
128
+ th[checkbox] {
129
+ width: 48px;
130
+ height: 48px;
131
+ padding: 0;
132
+ position: sticky;
133
+ left: 0;
134
+ top: 0;
135
+ z-index: 4;
136
+
137
+ content-container {
138
+ md-checkbox {
139
+ padding: 15px;
140
+ --md-checkbox-container-shape: 6px;
141
+ --md-focus-ring-shape: 12px;
142
+ --md-checkbox-state-layer-shape: 12px;
143
+ --md-checkbox-state-layer-size: 32px;
144
+ }
145
+
146
+ md-checkbox::part(focus-ring) {
147
+ height: 32px;
148
+ width: 32px;
149
+ }
150
+ }
151
+ }
152
+
153
+ th {
154
+ border-bottom: 1px var(--md-sys-color-outline-variant) solid;
155
+ padding: 0;
156
+
157
+ button {
158
+ display: grid;
159
+ grid: 'text icon blank' / auto auto 1fr;
160
+ width: 100%;
161
+ align-items: center;
162
+
163
+ position: relative;
164
+ --md-focus-ring-shape: 0;
165
+ border-radius: 0;
166
+
167
+ font-family: var(--titanium-data-table-font-family, Roboto, Noto, sans-serif);
168
+ font-size: 14px;
169
+
170
+ line-height: 28px;
171
+ font-weight: 500;
172
+ height: 100%;
173
+ padding: 12px 6px 12px 6px;
174
+ margin: 0;
175
+
176
+ /* override default button styles */
177
+ text-align: inherit;
178
+
179
+ background-color: var(--titanium-data-table-core-background-color);
180
+ color: inherit;
181
+
182
+ border: none;
183
+ outline: none;
184
+ height: 48px;
185
+
186
+ white-space: nowrap;
187
+
188
+ icon-container {
189
+ display: grid;
190
+ position: relative;
191
+ margin-left: 4px;
192
+ visibility: hidden;
193
+
194
+ height: 18px;
195
+ width: 18px;
196
+
197
+ div[sort-number] {
198
+ font-size: 8px;
199
+ line-height: 8px;
200
+ position: absolute;
201
+ bottom: -2px;
202
+ right: 0;
203
+ }
204
+
205
+ md-icon {
206
+ display: block;
207
+ height: 18px;
208
+ width: 18px;
209
+ font-size: 18px;
210
+
211
+ transform-origin: center;
212
+ transition: transform 150ms ease;
213
+ }
214
+ }
215
+ }
216
+
217
+ button[active-sort][sort-direction='asc'] md-icon {
218
+ transform: rotate(-180deg);
219
+ }
220
+
221
+ button[active-sort] icon-container,
222
+ button[active-sort] icon-container {
223
+ visibility: visible;
224
+ }
225
+
226
+ button:not([disabled]) {
227
+ cursor: pointer;
228
+ }
229
+
230
+ button:focus,
231
+ button:active {
232
+ outline: none;
233
+ box-shadow: none;
234
+ }
235
+ }
236
+ }
237
+ }
238
+
239
+ tbody {
240
+ @-moz-document url-prefix() {
241
+ /* hack: FF to fill 100% in a TD */
242
+ tr {
243
+ height: 1px !important;
244
+ }
245
+ }
246
+
247
+ tr {
248
+ @-moz-document url-prefix() {
249
+ /* hack: FF to fill 100% in a TD */
250
+ td {
251
+ height: 100% !important;
252
+ }
253
+ }
254
+
255
+ td {
256
+ background-color: var(--titanium-data-table-core-background-color);
257
+
258
+ border-bottom: 1px var(--md-sys-color-outline-variant) solid;
259
+ padding: 0;
260
+ box-sizing: border-box;
261
+ /* hack: Chrome/Safari to fill 100% in a TD */
262
+ height: 1px;
263
+
264
+ content-container {
265
+ font-size: 14px;
266
+ line-height: 18px;
267
+ font-weight: 400;
268
+ padding: 6px 6px 6px 6px;
269
+ align-items: center;
270
+ margin: 0;
271
+ }
272
+ }
273
+
274
+ td[checkbox] {
275
+ width: 48px;
276
+ position: sticky;
277
+ left: 0;
278
+ content-container {
279
+ padding: 0;
280
+
281
+ display: grid;
282
+ md-checkbox {
283
+ padding: 15px;
284
+ --md-checkbox-container-shape: 6px;
285
+ --md-focus-ring-shape: 12px;
286
+ --md-checkbox-state-layer-shape: 12px;
287
+ --md-checkbox-state-layer-size: 32px;
288
+ }
289
+ md-checkbox::part(focus-ring) {
290
+ height: 32px;
291
+ width: 32px;
292
+ }
293
+ }
294
+ }
295
+ }
296
+
297
+ tr[selected] content-container,
298
+ tr[selected] td {
299
+ background-color: var(--md-sys-color-secondary-container);
300
+ }
301
+
302
+ tr[link-url] {
303
+ cursor: pointer;
304
+ }
305
+ }
306
+
307
+ :host(:not([disabled])) tbody tr:hover td content-container {
308
+ background-color: rgb(from var(--md-sys-color-on-surface, #1d1b20) r g b / 0.08);
309
+ }
310
+
311
+ td[table-message]:hover,
312
+ td[table-message] {
313
+ vertical-align: middle;
314
+ border: none !important;
315
+ opacity: 0.8;
316
+ font-size: 14px;
317
+ line-height: 14px;
318
+ padding: 12px 6px;
319
+ }
320
+
321
+ image-row {
322
+ display: flex;
323
+ align-items: center;
324
+ gap: 12px;
325
+
326
+ img {
327
+ height: 32px;
328
+ width: 32px;
329
+ image-rendering: -webkit-optimize-contrast;
330
+ }
331
+
332
+ [supporting-text] {
333
+ font-size: 12px;
334
+ line-height: 14px;
335
+ opacity: 0.8;
336
+ }
337
+ }
338
+
339
+ [hidden] {
340
+ display: none !important;
341
+ }
342
+ `,
343
+ ]; }
344
+ render() {
345
+ return html `
346
+ <style>
347
+ ${this.tableStyles ? this.tableStyles : nothing}
348
+ </style>
349
+ <table part="table" ?has-selected-items=${this.selected.length > 0}>
350
+ <thead>
351
+ <tr>
352
+ ${this.selectionMode !== 'none'
353
+ ? html `
354
+ <th checkbox>
355
+ <content-container>
356
+ ${this.selectionMode === 'multi'
357
+ ? html ` <md-checkbox
358
+ title="${this.selected.length > 0 ? 'Deselect' : 'Select'} all"
359
+ ?checked=${this.selected.length > 0}
360
+ ?indeterminate=${this.selected.length !== 0 && this.selected.length !== this.items.length}
361
+ ?disabled=${this.items.length === 0}
362
+ @click=${(e) => {
363
+ if (this.selected.length > 0) {
364
+ this.deselectAll();
365
+ }
366
+ else {
367
+ this.selectAll();
368
+ }
369
+ e.target?.focus();
370
+ }}
371
+ ></md-checkbox>`
372
+ : nothing}
373
+ </content-container>
374
+ </th>
375
+ `
376
+ : nothing}
377
+ ${repeat(this.tableMetaData?.itemMetaData ?? [], (metaData) => metaData.key, (metaData) => {
378
+ const sortSpecification = this.sort.find((s) => s.key === metaData.key);
379
+ const sortIndex = this.sort.findIndex((s) => s.key === metaData.key);
380
+ const width = this.tableMetaData?.itemMetaData?.find((o) => o.key === metaData.key)?.width;
381
+ return html `<th style=${width ? styleMap({ minWidth: width }) : nothing}>
382
+ <button
383
+ ?active-sort=${sortIndex !== -1}
384
+ sort-direction=${sortSpecification?.direction || nothing}
385
+ ?disabled=${this.disabled || metaData.disableSort}
386
+ @click=${() => {
387
+ this.sort = [{ key: metaData.key, direction: this.sort?.[0]?.direction === 'asc' ? 'desc' : 'asc' }];
388
+ this.dispatchEvent(new Event('sort-changed'));
389
+ }}
390
+ >
391
+ <span>${metaData.friendlyName ?? '-'}</span>
392
+ <icon-container
393
+ ><md-icon>arrow_downward</md-icon>
394
+ ${sortIndex !== -1 && this.sort.length > 1 ? html `<div sort-number>${sortIndex + 1}</div>` : nothing}
395
+ </icon-container>
396
+ <md-ripple ?disabled=${this.disabled || metaData.disableSort}></md-ripple>
397
+ <md-focus-ring inward></md-focus-ring>
398
+ </button>
399
+ </th>`;
400
+ })}
401
+ </tr>
402
+ </thead>
403
+ <tbody>
404
+ ${!this.isLoading && this.items.length === 0
405
+ ? html `
406
+ <tr>
407
+ ${this.selectionMode !== 'none' ? html `<td table-message></td>` : nothing}
408
+ <td table-message colspan=${this.tableMetaData?.itemMetaData?.length ?? 0}>No results</td>
409
+ </tr>
410
+ `
411
+ : nothing}
412
+ ${repeat(this.items ?? [], (item) => this.tableMetaData?.uniqueKey(item) ?? '', (item) => {
413
+ return html `
414
+ <tr
415
+ ?link-url=${!!this.tableMetaData?.itemLinkUrl?.(item)}
416
+ ?selected=${this.selected.includes(item)}
417
+ @click=${() => {
418
+ if (this.selected.length === 0) {
419
+ if (this.tableMetaData?.itemLinkUrl) {
420
+ this.dispatchEvent(new CustomEvent('change-route', { bubbles: true, composed: true, detail: this.tableMetaData?.itemLinkUrl?.(item) ?? '' }));
421
+ }
422
+ }
423
+ else if (this.selectionMode === 'multi') {
424
+ if (this.selected.includes(item)) {
425
+ this.selected.splice(this.selected.indexOf(item), 1);
426
+ }
427
+ else {
428
+ this.selected.push(item);
429
+ }
430
+ this.requestUpdate('selected');
431
+ this.#notifySelectedChanged();
432
+ }
433
+ }}
434
+ >
435
+ ${this.selectionMode !== 'none'
436
+ ? html `<td checkbox>
437
+ <content-container>
438
+ <md-checkbox
439
+ @click=${(e) => e.stopPropagation()}
440
+ ?checked=${this.selected.includes(item)}
441
+ @change=${() => {
442
+ if (this.selected.includes(item)) {
443
+ this.selected.splice(this.selected.indexOf(item), 1);
444
+ }
445
+ else {
446
+ this.selected.push(item);
447
+ }
448
+ this.requestUpdate('selected');
449
+ this.#notifySelectedChanged();
450
+ }}
451
+ ?disabled=${this.disabled}
452
+ ></md-checkbox>
453
+ </content-container>
454
+ </td>`
455
+ : nothing}
456
+ ${repeat(this.tableMetaData?.itemMetaData?.map((o) => o.key) ?? [], (key) => key, (key) => {
457
+ return html `<td>
458
+ <content-container>${this.tableMetaData?.itemMetaData?.find((o) => o.key === key)?.render(item) ?? '-'}</content-container>
459
+ </td>`;
460
+ })}
461
+ </tr>
462
+ `;
463
+ })}
464
+ </tbody>
465
+ </table>
466
+ `;
467
+ }
468
+ };
469
+ __decorate([
470
+ property({ type: Array })
471
+ ], TitaniumDataTableCore.prototype, "items", null);
472
+ __decorate([
473
+ property({ type: Object })
474
+ ], TitaniumDataTableCore.prototype, "tableMetaData", null);
475
+ __decorate([
476
+ property({ type: Object })
477
+ ], TitaniumDataTableCore.prototype, "tableStyles", null);
478
+ __decorate([
479
+ property({ type: Boolean, reflect: true })
480
+ ], TitaniumDataTableCore.prototype, "disabled", null);
481
+ __decorate([
482
+ property({ type: Boolean, attribute: 'sticky-header', reflect: true })
483
+ ], TitaniumDataTableCore.prototype, "stickyHeader", null);
484
+ __decorate([
485
+ property({ type: Array })
486
+ ], TitaniumDataTableCore.prototype, "sort", null);
487
+ __decorate([
488
+ property({ type: String, attribute: 'selection-mode', reflect: true })
489
+ ], TitaniumDataTableCore.prototype, "selectionMode", null);
490
+ __decorate([
491
+ property({ type: Array })
492
+ ], TitaniumDataTableCore.prototype, "selected", null);
493
+ TitaniumDataTableCore = __decorate([
494
+ customElement('titanium-data-table-core')
495
+ ], TitaniumDataTableCore);
496
+ export { TitaniumDataTableCore };
497
+ export class DataTableItemsReorderedEvent extends Event {
498
+ static { this.eventType = 'titanium-data-table-items-reorder'; }
499
+ constructor() {
500
+ super(DataTableItemsReorderedEvent.eventType);
501
+ }
502
+ }
503
+ //# sourceMappingURL=data-table-core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-table-core.js","sourceRoot":"","sources":["data-table-core.ts"],"names":[],"mappings":";AAAA,OAAO,iCAAiC,CAAC;AACzC,OAAO,yBAAyB,CAAC;AACjC,OAAO,mCAAmC,CAAC;AAC3C,OAAO,6BAA6B,CAAC;AAErC,OAAO,EAAE,GAAG,EAA6B,IAAI,EAAE,UAAU,EAAE,OAAO,EAAkC,MAAM,KAAK,CAAC;AAChH,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAI5D,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,wCAAwC,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,kDAAkD,CAAC;AAuBtE,IAAM,qBAAqB,GAA3B,MAAM,qBAAwC,SAAQ,SAAS,CAAC,UAAU,CAAC;IAI5C,0BAAkB,EAAE,CAAC;IAHzD;;OAEG;IACiC,IAAA,KAAK,2CAAgB;IAArB,IAAA,KAAK,iDAAgB;IAEpB,kCAAyD,IAAI,CAAC;IAA9D,IAAA,aAAa,mDAAiD;IAA9D,IAAA,aAAa,yDAAiD;IAE9D,gCAAiD,IAAI,CAAC;IAAtD,IAAA,WAAW,iDAA2C;IAAtD,IAAA,WAAW,uDAA2C;IAEtC,6BAAoB,KAAK,CAAC;IAA1B,IAAA,QAAQ,8CAAkB;IAA1B,IAAA,QAAQ,oDAAkB;IAEE,iCAAwB,KAAK,CAAC;IAA9B,IAAA,YAAY,kDAAkB;IAA9B,IAAA,YAAY,wDAAkB;IAE3E,yBAAwC,EAAE,CAAC;IAA3C,IAAA,IAAI,0CAAuC;IAA3C,IAAA,IAAI,gDAAuC;IAKE,kCAA6C,MAAM,CAAC;IAHrI;;OAEG;IAC8E,IAAA,aAAa,mDAAuC;IAApD,IAAA,aAAa,yDAAuC;IAKjG,6BAAqB,EAAE,CAAC;IAH5D;;OAEG;IACiC,IAAA,QAAQ,8CAAgB;IAAxB,IAAA,QAAQ,oDAAgB;IAE5D,OAAO,CAAC,YAAkC;QACxC,IAAI,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;YAC1E,4CAA4C;YAC5C,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAED,SAAS;QACP,IAAI,IAAI,CAAC,aAAa,KAAK,OAAO,EAAE,CAAC;YACnC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;YAC3B,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;IAED,WAAW;QACT,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;IAED,sBAAsB;QACpB,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACxE,CAAC;aAEM,WAAM,GAAG;QACd,CAAC;QACD,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAiRF;KACF,AApRY,CAoRX;IAEF,MAAM;QACJ,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO;;gDAEP,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;;;cAG1D,IAAI,CAAC,aAAa,KAAK,MAAM;YAC7B,CAAC,CAAC,IAAI,CAAA;;;wBAGI,IAAI,CAAC,aAAa,KAAK,OAAO;gBAC9B,CAAC,CAAC,IAAI,CAAA;qCACO,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ;uCAC9C,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;6CAClB,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM;wCAC7E,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;qCAC1B,CAAC,CAAuB,EAAE,EAAE;oBACnC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC7B,IAAI,CAAC,WAAW,EAAE,CAAC;oBACrB,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,SAAS,EAAE,CAAC;oBACnB,CAAC;oBACD,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;gBACpB,CAAC;0CACa;gBAClB,CAAC,CAAC,OAAO;;;iBAGhB;YACH,CAAC,CAAC,OAAO;cACT,MAAM,CACN,IAAI,CAAC,aAAa,EAAE,YAAY,IAAI,EAAE,EACtC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,EAC1B,CAAC,QAAQ,EAAE,EAAE;YACX,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG,CAAC,CAAC;YACxE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG,CAAC,CAAC;YACrE,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC;YAE3F,OAAO,IAAI,CAAA,aAAa,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO;;mCAEpD,SAAS,KAAK,CAAC,CAAC;qCACd,iBAAiB,EAAE,SAAS,IAAI,OAAO;gCAC5C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,WAAW;6BACxC,GAAG,EAAE;gBACZ,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;gBACrG,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;YAChD,CAAC;;4BAEO,QAAQ,CAAC,YAAY,IAAI,GAAG;;;wBAGhC,SAAS,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA,oBAAoB,SAAS,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO;;2CAE/E,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,WAAW;;;sBAG1D,CAAC;QACT,CAAC,CACF;;;;YAID,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAC1C,CAAC,CAAC,IAAI,CAAA;;oBAEE,IAAI,CAAC,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA,yBAAyB,CAAC,CAAC,CAAC,OAAO;8CAC7C,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;;eAE5E;YACH,CAAC,CAAC,OAAO;YACT,MAAM,CACN,IAAI,CAAC,KAAK,IAAI,EAAE,EAChB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,EACnD,CAAC,IAAI,EAAE,EAAE;YACP,OAAO,IAAI,CAAA;;8BAEK,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE,CAAC,IAAI,CAAC;8BACzC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;2BAC/B,GAAG,EAAE;gBACZ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC/B,IAAI,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE,CAAC;wBACpC,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAC1H,CAAC;oBACJ,CAAC;gBACH,CAAC;qBAAM,IAAI,IAAI,CAAC,aAAa,KAAK,OAAO,EAAE,CAAC;oBAC1C,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;wBACjC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;oBACvD,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC3B,CAAC;oBACD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;oBAC/B,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAChC,CAAC;YACH,CAAC;;oBAEC,IAAI,CAAC,aAAa,KAAK,MAAM;gBAC7B,CAAC,CAAC,IAAI,CAAA;;;qCAGW,CAAC,CAAuB,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE;uCAC9C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;sCAC7B,GAAG,EAAE;oBACb,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;wBACjC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;oBACvD,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC3B,CAAC;oBACD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;oBAC/B,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAChC,CAAC;wCACW,IAAI,CAAC,QAAQ;;;4BAGzB;gBACR,CAAC,CAAC,OAAO;oBACT,MAAM,CACN,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,EACzD,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EACZ,CAAC,GAAG,EAAE,EAAE;gBACN,OAAO,IAAI,CAAA;6CACY,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG;4BAClG,CAAC;YACT,CAAC,CACF;;eAEJ,CAAC;QACJ,CAAC,CACF;;;KAGN,CAAC;IACJ,CAAC;;AA3cmC;IAAnC,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;kDAA+B;AAEpB;IAApC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;0DAAwE;AAE9D;IAApC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wDAAgE;AAEtC;IAApD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;qDAAoC;AAEE;IAAhF,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;yDAAwC;AAE3E;IAAnC,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;iDAAqD;AAKE;IAAhF,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;0DAA8D;AAKjG;IAAnC,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;qDAAkC;AAxBjD,qBAAqB;IADjC,aAAa,CAAC,0BAA0B,CAAC;GAC7B,qBAAqB,CAgdjC;;AAED,MAAM,OAAO,4BAA6B,SAAQ,KAAK;aAC9C,cAAS,GAAG,mCAAmC,CAAC;IACvD;QACE,KAAK,CAAC,4BAA4B,CAAC,SAAS,CAAC,CAAC;IAChD,CAAC"}
@@ -166,6 +166,8 @@ let TitaniumDrawer = class TitaniumDrawer extends LitElement {
166
166
 
167
167
  main {
168
168
  grid-area: content;
169
+ display: grid;
170
+ align-content: start;
169
171
  scrollbar-color: var(--md-sys-color-surface-container-highest) transparent;
170
172
  scrollbar-width: thin;
171
173
  overflow-y: auto;
@@ -294,8 +296,6 @@ let TitaniumDrawer = class TitaniumDrawer extends LitElement {
294
296
 
295
297
  @supports ((backdrop-filter: blur(10px)) or (-webkit-backdrop-filter: blur(10px))) {
296
298
  dialog::backdrop {
297
- background-color: rgba(255, 255, 255, 0.7);
298
- -webkit-backdrop-filter: blur(3px);
299
299
  backdrop-filter: blur(3px);
300
300
  /* Not supported yet */
301
301
  transition: backdrop-filter 0.5s ease;
@@ -0,0 +1,2 @@
1
+ export declare function findScrollableParent(element: Element): Element | null;
2
+ //# sourceMappingURL=find-scrollable-parent.d.ts.map
@@ -0,0 +1,28 @@
1
+ export function findScrollableParent(element) {
2
+ let current = element;
3
+ while (current) {
4
+ // Check if current element has overflow-y: auto
5
+ const computedStyle = window.getComputedStyle(current);
6
+ if (computedStyle.overflowY === 'auto' || computedStyle.overflowY === 'scroll') {
7
+ return current;
8
+ }
9
+ // Check if current element is in a shadow DOM
10
+ if (current.getRootNode() instanceof ShadowRoot) {
11
+ const shadowRoot = current.getRootNode();
12
+ const host = shadowRoot.host;
13
+ // Check the shadow host
14
+ const hostStyle = window.getComputedStyle(host);
15
+ if (hostStyle.overflowY === 'auto' || hostStyle.overflowY === 'scroll') {
16
+ return host;
17
+ }
18
+ // Continue walking up from the shadow host
19
+ current = host.parentElement;
20
+ }
21
+ else {
22
+ // Regular light DOM, walk up normally
23
+ current = current.parentElement;
24
+ }
25
+ }
26
+ return null;
27
+ }
28
+ //# sourceMappingURL=find-scrollable-parent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-scrollable-parent.js","sourceRoot":"","sources":["find-scrollable-parent.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,IAAI,OAAO,GAAmB,OAAO,CAAC;IAEtC,OAAO,OAAO,EAAE,CAAC;QACf,gDAAgD;QAChD,MAAM,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACvD,IAAI,aAAa,CAAC,SAAS,KAAK,MAAM,IAAI,aAAa,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC/E,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,8CAA8C;QAC9C,IAAI,OAAO,CAAC,WAAW,EAAE,YAAY,UAAU,EAAE,CAAC;YAChD,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,EAAgB,CAAC;YACvD,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;YAE7B,wBAAwB;YACxB,MAAM,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAChD,IAAI,SAAS,CAAC,SAAS,KAAK,MAAM,IAAI,SAAS,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;gBACvE,OAAO,IAAI,CAAC;YACd,CAAC;YAED,2CAA2C;YAC3C,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,sCAAsC;YACtC,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;QAClC,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,15 @@
1
+ import '@material/web/textfield/filled-text-field';
2
+ import '@material/web/icon/icon';
3
+ import '@material/web/iconbutton/icon-button';
4
+ import { LitElement } from 'lit';
5
+ export default class TitaniumFilledSearchInput extends LitElement {
6
+ accessor value: string;
7
+ accessor placeholder: string;
8
+ accessor autocomplete: string;
9
+ accessor spellcheck: boolean;
10
+ accessor disabled: boolean;
11
+ private accessor textField;
12
+ static styles: import("lit").CSSResult;
13
+ render(): import("lit-html").TemplateResult<1>;
14
+ }
15
+ //# sourceMappingURL=filled-search-input.d.ts.map