@krumio/trailhand-ui 1.10.2 → 1.11.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.
@@ -0,0 +1,70 @@
1
+ import { LitElement, TemplateResult } from 'lit';
2
+ import '../icon/icon';
3
+ export type DockPin = 'bottom' | 'left' | 'right';
4
+ export interface DockTab {
5
+ id: string;
6
+ label: string;
7
+ icon?: string;
8
+ closable?: boolean;
9
+ }
10
+ export interface DockProps {
11
+ open: boolean;
12
+ pin: DockPin;
13
+ tabs: DockTab[];
14
+ activeTab: string | null;
15
+ height: number;
16
+ width: number;
17
+ }
18
+ /**
19
+ * A tabbed, resizable, pinnable dock panel (bottom/left/right), for things
20
+ * like live log streams or an interactive terminal that must keep running
21
+ * while hidden behind another tab.
22
+ *
23
+ * Project each tab's content into the slot named `tab:<tabId>`. The consumer
24
+ * is responsible for keying its own child content by tab id (e.g. Vue's
25
+ * `:key`) so it isn't recreated on re-render, trailhand-dock guarantees the
26
+ * slot itself stays stable across tab switches, but that guarantee only
27
+ * holds end to end if the consumer doesn't destroy its own node either.
28
+ *
29
+ * @slot tab:<tabId> - Content for the tab with the matching id.
30
+ *
31
+ * @fires dock-open - Dock opened (first tab added, or opened externally).
32
+ * @fires dock-close - Dock closed (last tab removed, or closed externally).
33
+ * @fires dock-tab-switch - detail: { id }, active tab changed.
34
+ * @fires dock-tab-close - detail: { id }, a tab was closed.
35
+ * @fires dock-resize - detail: { width, height }, fires live during a resize.
36
+ * @fires dock-pin-change - detail: { pin }, pin position changed.
37
+ */
38
+ export declare class Dock extends LitElement {
39
+ open: boolean;
40
+ pin: DockPin;
41
+ tabs: DockTab[];
42
+ activeTab: string | null;
43
+ /** Height in px, used when pin === 'bottom'. */
44
+ height: number;
45
+ /** Width in px, used when pin !== 'bottom'. */
46
+ width: number;
47
+ private _dragStart;
48
+ static styles: import("lit").CSSResult;
49
+ willUpdate(changed: Map<string, unknown>): void;
50
+ /** Opens a tab, focusing it if it's already open (no duplicates). */
51
+ openTab(tab: DockTab): void;
52
+ closeTab(id: string): void;
53
+ switchTab(id: string): void;
54
+ private _switchTab;
55
+ private _closeTab;
56
+ private _emit;
57
+ private get _currentSize();
58
+ private _clamp;
59
+ private _commitResize;
60
+ private _onResizePointerDown;
61
+ private _onResizePointerMove;
62
+ private _onResizePointerUp;
63
+ private _onResizeKeydown;
64
+ private _renderResizer;
65
+ private _renderTab;
66
+ private _handleTabKeydown;
67
+ private _renderPanel;
68
+ render(): TemplateResult;
69
+ }
70
+ //# sourceMappingURL=dock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dock.d.ts","sourceRoot":"","sources":["../../../src/components/dock/dock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,cAAc,EAAW,MAAM,KAAK,CAAC;AAIrE,OAAO,cAAc,CAAC;AAEtB,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAElD,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,IAAK,SAAQ,UAAU;IAElC,IAAI,UAAS;IAGb,GAAG,EAAE,OAAO,CAAY;IAGxB,IAAI,EAAE,OAAO,EAAE,CAAM;IAGrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEhC,gDAAgD;IAEhD,MAAM,SAAO;IAEb,+CAA+C;IAE/C,KAAK,SAAO;IAEZ,OAAO,CAAC,UAAU,CAA4D;IAE9E,MAAM,CAAC,MAAM,0BAyJX;IAEF,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IA4BxC,qEAAqE;IACrE,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAQ3B,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAI1B,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAI3B,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,SAAS;IAgBjB,OAAO,CAAC,KAAK;IAMb,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,CAAC,MAAM;IAQd,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,oBAAoB,CAK1B;IAEF,OAAO,CAAC,oBAAoB,CAQ1B;IAEF,OAAO,CAAC,kBAAkB,CAExB;IAEF,OAAO,CAAC,gBAAgB,CAatB;IAEF,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,UAAU;IAsClB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,YAAY;IAcpB,MAAM,IAAI,cAAc;CAmBzB"}
@@ -0,0 +1,419 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { LitElement, html, css, nothing } from 'lit';
8
+ import { property } from 'lit/decorators.js';
9
+ import { repeat } from 'lit/directives/repeat.js';
10
+ import { styleMap } from 'lit/directives/style-map.js';
11
+ import '../icon/icon';
12
+ /**
13
+ * A tabbed, resizable, pinnable dock panel (bottom/left/right), for things
14
+ * like live log streams or an interactive terminal that must keep running
15
+ * while hidden behind another tab.
16
+ *
17
+ * Project each tab's content into the slot named `tab:<tabId>`. The consumer
18
+ * is responsible for keying its own child content by tab id (e.g. Vue's
19
+ * `:key`) so it isn't recreated on re-render, trailhand-dock guarantees the
20
+ * slot itself stays stable across tab switches, but that guarantee only
21
+ * holds end to end if the consumer doesn't destroy its own node either.
22
+ *
23
+ * @slot tab:<tabId> - Content for the tab with the matching id.
24
+ *
25
+ * @fires dock-open - Dock opened (first tab added, or opened externally).
26
+ * @fires dock-close - Dock closed (last tab removed, or closed externally).
27
+ * @fires dock-tab-switch - detail: { id }, active tab changed.
28
+ * @fires dock-tab-close - detail: { id }, a tab was closed.
29
+ * @fires dock-resize - detail: { width, height }, fires live during a resize.
30
+ * @fires dock-pin-change - detail: { pin }, pin position changed.
31
+ */
32
+ export class Dock extends LitElement {
33
+ constructor() {
34
+ super(...arguments);
35
+ this.open = false;
36
+ this.pin = 'bottom';
37
+ this.tabs = [];
38
+ this.activeTab = null;
39
+ /** Height in px, used when pin === 'bottom'. */
40
+ this.height = 300;
41
+ /** Width in px, used when pin !== 'bottom'. */
42
+ this.width = 400;
43
+ this._dragStart = null;
44
+ this._onResizePointerDown = (e) => {
45
+ e.currentTarget.setPointerCapture(e.pointerId);
46
+ const coord = this.pin === 'bottom' ? e.clientY : e.clientX;
47
+ const startSize = this.pin === 'bottom' ? this.height : this.width;
48
+ this._dragStart = { pointerCoord: coord, startSize };
49
+ };
50
+ this._onResizePointerMove = (e) => {
51
+ if (!this._dragStart)
52
+ return;
53
+ const coord = this.pin === 'bottom' ? e.clientY : e.clientX;
54
+ const rawDelta = coord - this._dragStart.pointerCoord;
55
+ // Handle faces the page, not the viewport edge. Left is the only pin
56
+ // where growing doesn't need the delta negated.
57
+ const signedDelta = this.pin === 'left' ? rawDelta : -rawDelta;
58
+ this._commitResize(this._clamp(this._dragStart.startSize + signedDelta));
59
+ };
60
+ this._onResizePointerUp = () => {
61
+ this._dragStart = null;
62
+ };
63
+ this._onResizeKeydown = (e) => {
64
+ const step = 20;
65
+ const isBottom = this.pin === 'bottom';
66
+ const growKey = isBottom ? 'ArrowUp' : this.pin === 'left' ? 'ArrowRight' : 'ArrowLeft';
67
+ const shrinkKey = isBottom ? 'ArrowDown' : this.pin === 'left' ? 'ArrowLeft' : 'ArrowRight';
68
+ if (e.key !== growKey && e.key !== shrinkKey)
69
+ return;
70
+ e.preventDefault();
71
+ const delta = e.key === growKey ? step : -step;
72
+ const current = isBottom ? this.height : this.width;
73
+ this._commitResize(this._clamp(current + delta));
74
+ };
75
+ }
76
+ willUpdate(changed) {
77
+ if (changed.has('tabs')) {
78
+ const prevTabs = changed.get('tabs');
79
+ const hadTabs = (prevTabs?.length ?? 0) > 0;
80
+ if (!hadTabs && this.tabs.length > 0 && !this.open) {
81
+ this.open = true;
82
+ this._emit('dock-open', {});
83
+ }
84
+ if (this.tabs.length > 0 &&
85
+ !this.tabs.some((t) => t.id === this.activeTab)) {
86
+ this._switchTab(this.tabs[0].id);
87
+ }
88
+ if (this.tabs.length === 0 && this.open) {
89
+ this.open = false;
90
+ this._emit('dock-close', {});
91
+ }
92
+ }
93
+ if (changed.has('pin') && changed.get('pin') !== undefined) {
94
+ this._emit('dock-pin-change', { pin: this.pin });
95
+ }
96
+ }
97
+ /** Opens a tab, focusing it if it's already open (no duplicates). */
98
+ openTab(tab) {
99
+ if (this.tabs.some((t) => t.id === tab.id)) {
100
+ this._switchTab(tab.id);
101
+ return;
102
+ }
103
+ this.tabs = [...this.tabs, tab];
104
+ }
105
+ closeTab(id) {
106
+ this._closeTab(id);
107
+ }
108
+ switchTab(id) {
109
+ this._switchTab(id);
110
+ }
111
+ _switchTab(id) {
112
+ if (this.activeTab === id)
113
+ return;
114
+ this.activeTab = id;
115
+ this._emit('dock-tab-switch', { id });
116
+ }
117
+ _closeTab(id) {
118
+ const idx = this.tabs.findIndex((t) => t.id === id);
119
+ if (idx === -1)
120
+ return;
121
+ const wasActive = this.activeTab === id;
122
+ const next = this.tabs.filter((t) => t.id !== id);
123
+ this.tabs = next;
124
+ if (wasActive && next.length > 0) {
125
+ const neighbor = next[Math.max(0, idx - 1)];
126
+ this._switchTab(neighbor.id);
127
+ }
128
+ this._emit('dock-tab-close', { id });
129
+ }
130
+ _emit(name, detail) {
131
+ this.dispatchEvent(new CustomEvent(name, { detail, bubbles: true, composed: true }));
132
+ }
133
+ get _currentSize() {
134
+ return this.pin === 'bottom' ? this.height : this.width;
135
+ }
136
+ _clamp(raw) {
137
+ return this.pin === 'bottom'
138
+ ? Math.min(Math.max(raw, 50), window.innerHeight * 0.75)
139
+ : Math.min(Math.max(raw, 250), window.innerWidth * 0.4);
140
+ }
141
+ // Commits live (every pointermove/keydown), not debounced to the drag end,
142
+ // so a consumer syncing its own layout to this doesn't lag behind.
143
+ _commitResize(size) {
144
+ if (this.pin === 'bottom') {
145
+ this.height = size;
146
+ }
147
+ else {
148
+ this.width = size;
149
+ }
150
+ this._emit('dock-resize', { width: this.width, height: this.height });
151
+ }
152
+ _renderResizer() {
153
+ const isBottom = this.pin === 'bottom';
154
+ const max = isBottom ? window.innerHeight * 0.75 : window.innerWidth * 0.4;
155
+ return html `
156
+ <div
157
+ class="dock__resizer"
158
+ role="separator"
159
+ aria-orientation=${isBottom ? 'horizontal' : 'vertical'}
160
+ aria-valuenow=${this._currentSize}
161
+ aria-valuemin=${isBottom ? 50 : 250}
162
+ aria-valuemax=${Math.round(max)}
163
+ tabindex="0"
164
+ @pointerdown=${this._onResizePointerDown}
165
+ @pointermove=${this._onResizePointerMove}
166
+ @pointerup=${this._onResizePointerUp}
167
+ @pointercancel=${this._onResizePointerUp}
168
+ @keydown=${this._onResizeKeydown}
169
+ ></div>
170
+ `;
171
+ }
172
+ _renderTab(tab) {
173
+ const active = tab.id === this.activeTab;
174
+ const closable = tab.closable !== false;
175
+ return html `
176
+ <div
177
+ class="dock__tab ${active ? 'dock__tab--active' : ''}"
178
+ id="tab-${tab.id}"
179
+ role="tab"
180
+ tabindex="0"
181
+ aria-selected=${active}
182
+ aria-controls="panel-${tab.id}"
183
+ @click=${() => this._switchTab(tab.id)}
184
+ @keydown=${(e) => this._handleTabKeydown(e, tab)}
185
+ >
186
+ ${active
187
+ ? html `<trailhand-icon class="dock__tab-active-icon" name="circle"></trailhand-icon>`
188
+ : nothing}
189
+ ${tab.icon
190
+ ? html `<trailhand-icon name=${tab.icon}></trailhand-icon>`
191
+ : nothing}
192
+ <span class="dock__tab-label">${tab.label}</span>
193
+ ${closable
194
+ ? html `<button
195
+ class="dock__tab-close"
196
+ aria-label="Close ${tab.label}"
197
+ @click=${(e) => {
198
+ e.stopPropagation();
199
+ this._closeTab(tab.id);
200
+ }}
201
+ >
202
+ <trailhand-icon name="closeSquare"></trailhand-icon>
203
+ </button>`
204
+ : nothing}
205
+ </div>
206
+ `;
207
+ }
208
+ _handleTabKeydown(e, tab) {
209
+ if (e.key !== 'Enter' && e.key !== ' ')
210
+ return;
211
+ e.preventDefault();
212
+ this._switchTab(tab.id);
213
+ }
214
+ _renderPanel(tab) {
215
+ return html `
216
+ <div
217
+ class="dock__panel"
218
+ id="panel-${tab.id}"
219
+ role="tabpanel"
220
+ aria-labelledby="tab-${tab.id}"
221
+ ?hidden=${tab.id !== this.activeTab}
222
+ >
223
+ <slot name="tab:${tab.id}"></slot>
224
+ </div>
225
+ `;
226
+ }
227
+ render() {
228
+ const sizeStyle = this.pin === 'bottom'
229
+ ? { height: `${this._currentSize}px` }
230
+ : { width: `${this._currentSize}px` };
231
+ return html `
232
+ <div class="dock" style=${styleMap(sizeStyle)}>
233
+ ${this._renderResizer()}
234
+ <div class="dock__body">
235
+ <div class="dock__tabs" role="tablist">
236
+ ${repeat(this.tabs, (t) => t.id, (t) => this._renderTab(t))}
237
+ </div>
238
+ <div class="dock__panels">
239
+ ${repeat(this.tabs, (t) => t.id, (t) => this._renderPanel(t))}
240
+ </div>
241
+ </div>
242
+ </div>
243
+ `;
244
+ }
245
+ }
246
+ Dock.styles = css `
247
+ :host {
248
+ display: block;
249
+ font-family: var(--font-family, 'Poppins', sans-serif);
250
+ --_tab-height: var(--th-dock-tab-height, 29px);
251
+ --_tabs-bg: var(--th-dock-tabs-bg, #dcdee7);
252
+ --_tab-active-bg: var(--th-dock-tab-active-bg, #f4f5fa);
253
+ --_body-bg: var(--th-dock-body-bg, #f4f5fa);
254
+ --_border-color: var(--th-dock-border, #dcdee7);
255
+ --_radius: var(--th-dock-radius, 4px);
256
+ --_text-color: var(--th-color-text-primary, #000000);
257
+ }
258
+
259
+ :host(:not([open])) {
260
+ display: none;
261
+ }
262
+
263
+ :host([pin='left']) .dock,
264
+ :host([pin='right']) .dock {
265
+ height: 100%;
266
+ flex-direction: row;
267
+ }
268
+
269
+ :host([pin='right']) .dock {
270
+ border-left: 1px solid var(--_border-color);
271
+ }
272
+
273
+ :host([pin='left']) .dock {
274
+ border-right: 1px solid var(--_border-color);
275
+ }
276
+
277
+ .dock__resizer {
278
+ flex-shrink: 0;
279
+ height: 4px;
280
+ cursor: ns-resize;
281
+ background: transparent;
282
+ }
283
+
284
+ :host([pin='left']) .dock__resizer,
285
+ :host([pin='right']) .dock__resizer {
286
+ height: auto;
287
+ width: 4px;
288
+ cursor: ew-resize;
289
+ }
290
+
291
+ /* Handle renders first in markup, correct for bottom/right pins. Left
292
+ needs it after the body so it lands on the page-facing edge. */
293
+ :host([pin='left']) .dock__resizer {
294
+ order: 1;
295
+ }
296
+
297
+ .dock__resizer:hover,
298
+ .dock__resizer:focus-visible {
299
+ background: var(--th-color-primary, #3d98d3);
300
+ outline: none;
301
+ }
302
+
303
+ .dock {
304
+ display: flex;
305
+ flex-direction: column;
306
+ border-radius: var(--_radius);
307
+ background: var(--_body-bg);
308
+ color: var(--_text-color);
309
+ overflow: hidden;
310
+ }
311
+
312
+ .dock__body {
313
+ display: flex;
314
+ flex-direction: column;
315
+ flex: 1;
316
+ min-width: 0;
317
+ min-height: 0;
318
+ overflow: hidden;
319
+ }
320
+
321
+ .dock__tabs {
322
+ display: flex;
323
+ align-items: stretch;
324
+ flex-shrink: 0;
325
+ height: var(--_tab-height);
326
+ background: var(--_tabs-bg);
327
+ border-top: 1px solid var(--_border-color);
328
+ border-bottom: 1px solid var(--_border-color);
329
+ overflow-x: auto;
330
+ }
331
+
332
+ .dock__tab {
333
+ display: flex;
334
+ align-items: center;
335
+ gap: 6px;
336
+ padding: 0 10px;
337
+ border-right: 1px solid var(--_border-color);
338
+ cursor: pointer;
339
+ user-select: none;
340
+ white-space: nowrap;
341
+ font-size: 13px;
342
+ }
343
+
344
+ .dock__tab--active {
345
+ background: var(--_tab-active-bg);
346
+ }
347
+
348
+ .dock__tab-active-icon {
349
+ color: var(--th-color-primary, #3d98d3);
350
+ }
351
+
352
+ .dock__tab:focus-visible {
353
+ outline: 2px solid var(--th-color-primary, #3d98d3);
354
+ outline-offset: -2px;
355
+ }
356
+
357
+ .dock__tab-close {
358
+ display: inline-flex;
359
+ align-items: center;
360
+ justify-content: center;
361
+ margin-left: 4px;
362
+ padding: 0;
363
+ border: none;
364
+ background: none;
365
+ cursor: pointer;
366
+ color: inherit;
367
+ font-size: 15px;
368
+ }
369
+
370
+ .dock__tab-close:hover {
371
+ color: var(--th-color-primary, #3d98d3);
372
+ }
373
+
374
+ .dock__panels {
375
+ flex: 1;
376
+ min-height: 0;
377
+ overflow: hidden;
378
+ }
379
+
380
+ .dock__panel {
381
+ height: 100%;
382
+ overflow: auto;
383
+ }
384
+
385
+ .dock__panel[hidden] {
386
+ display: none;
387
+ }
388
+
389
+ /* Intentionally no transitions anywhere in this component, the docking
390
+ chrome it's replacing (Rancher Shell's WindowManager) has none, and
391
+ open/close/resize should stay instant for behavioral parity. */
392
+
393
+ :host-context([data-theme='dark']) {
394
+ --_tabs-bg: var(--th-dock-tabs-bg, linear-gradient(180deg, #4a4b52, #27292e));
395
+ --_tab-active-bg: var(--th-dock-tab-active-bg, #1b1c21);
396
+ --_body-bg: var(--th-dock-body-bg, #141419);
397
+ --_border-color: var(--th-dock-border, #000000);
398
+ }
399
+ `;
400
+ __decorate([
401
+ property({ type: Boolean, reflect: true })
402
+ ], Dock.prototype, "open", void 0);
403
+ __decorate([
404
+ property({ type: String, reflect: true })
405
+ ], Dock.prototype, "pin", void 0);
406
+ __decorate([
407
+ property({ type: Array, attribute: false })
408
+ ], Dock.prototype, "tabs", void 0);
409
+ __decorate([
410
+ property({ type: String, reflect: true, attribute: 'active-tab' })
411
+ ], Dock.prototype, "activeTab", void 0);
412
+ __decorate([
413
+ property({ type: Number })
414
+ ], Dock.prototype, "height", void 0);
415
+ __decorate([
416
+ property({ type: Number })
417
+ ], Dock.prototype, "width", void 0);
418
+ customElements.define('trailhand-dock', Dock);
419
+ //# sourceMappingURL=dock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dock.js","sourceRoot":"","sources":["../../../src/components/dock/dock.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { Dock } from './dock';
2
+ export type { DockProps, DockTab, DockPin } from './dock';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/dock/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { Dock } from './dock';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/dock/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC"}
@@ -32,9 +32,13 @@ declare const iconMap: {
32
32
  hammer: import("@fortawesome/fontawesome-common-types").IconDefinition;
33
33
  codeBranch: import("@fortawesome/fontawesome-common-types").IconDefinition;
34
34
  trash: import("@fortawesome/fontawesome-common-types").IconDefinition;
35
+ file: import("@fortawesome/fontawesome-common-types").IconDefinition;
36
+ chevronRight: import("@fortawesome/fontawesome-common-types").IconDefinition;
37
+ circle: import("@fortawesome/fontawesome-common-types").IconDefinition;
38
+ closeSquare: import("@fortawesome/fontawesome-common-types").IconDefinition;
35
39
  };
36
40
  export declare const availableIcons: (keyof typeof iconMap)[];
37
- type AvailableIcons = keyof typeof iconMap;
41
+ export type AvailableIcons = keyof typeof iconMap;
38
42
  export interface IconProps {
39
43
  name: AvailableIcons;
40
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../../src/components/icon/icon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAuC5C,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCZ,CAAC;AAEF,eAAO,MAAM,cAAc,EAA2B,CAAC,MAAM,OAAO,OAAO,CAAC,EAAE,CAAC;AAI/E,KAAK,cAAc,GAAG,MAAM,OAAO,OAAO,CAAC;AAE3C,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,cAAc,CAAC;CACtB;AAED,qBAAa,IAAK,SAAQ,UAAU;IACN,IAAI,EAAE,cAAc,CAAU;IAE1D,MAAM,CAAC,MAAM,0BAUX;IAEF,MAAM;CAMP"}
1
+ {"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../../src/components/icon/icon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AA2C5C,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCZ,CAAC;AAEF,eAAO,MAAM,cAAc,EAA2B,CAAC,MAAM,OAAO,OAAO,CAAC,EAAE,CAAC;AAI/E,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,OAAO,CAAC;AAElD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,cAAc,CAAC;CACtB;AAED,qBAAa,IAAK,SAAQ,UAAU;IACN,IAAI,EAAE,cAAc,CAAU;IAE1D,MAAM,CAAC,MAAM,0BAUX;IAEF,MAAM;CAMP"}
@@ -7,7 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  import { LitElement, html, css } from 'lit';
8
8
  import { property } from 'lit/decorators.js';
9
9
  import { library, icon } from '@fortawesome/fontawesome-svg-core';
10
- import { faGlobe, faHome, faUser, faBug, faCircleExclamation, faCirclePause, faCirclePlay, faCircleXmark, faTableCellsLarge, faRocket, faGauge, faTableList, faFolderPlus, faGears, faBagShopping, faCircleInfo, faChartLine, faSliders, faDatabase, faCircleCheck, faTriangleExclamation, faScrewdriverWrench, faBan, faSpinner, faGear, faXmark, faMinus, faCheck, faPlus, faHammer, faCodeBranch, faTrashCan, } from '@fortawesome/free-solid-svg-icons';
10
+ import { faGlobe, faHome, faUser, faBug, faCircleExclamation, faCirclePause, faCirclePlay, faCircleXmark, faTableCellsLarge, faRocket, faGauge, faTableList, faFolderPlus, faGears, faBagShopping, faCircleInfo, faChartLine, faSliders, faDatabase, faCircleCheck, faTriangleExclamation, faScrewdriverWrench, faBan, faSpinner, faGear, faXmark, faMinus, faCheck, faPlus, faHammer, faCodeBranch, faTrashCan, faFile, faChevronRight, faCircle, faSquareXmark } from '@fortawesome/free-solid-svg-icons';
11
11
  const iconMap = {
12
12
  bug: faBug,
13
13
  error: faCircleExclamation,
@@ -41,6 +41,10 @@ const iconMap = {
41
41
  hammer: faHammer,
42
42
  codeBranch: faCodeBranch,
43
43
  trash: faTrashCan,
44
+ file: faFile,
45
+ chevronRight: faChevronRight,
46
+ circle: faCircle,
47
+ closeSquare: faSquareXmark
44
48
  };
45
49
  export const availableIcons = Object.keys(iconMap);
46
50
  library.add(...Object.values(iconMap));
@@ -1 +1 @@
1
- {"version":3,"file":"icon.js","sourceRoot":"","sources":["../../../src/components/icon/icon.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,mCAAmC,CAAC;AAElE,OAAO,EACL,OAAO,EACP,MAAM,EACN,MAAM,EACN,KAAK,EACL,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,QAAQ,EACR,OAAO,EACP,WAAW,EACX,YAAY,EACZ,OAAO,EACP,aAAa,EACb,YAAY,EACZ,WAAW,EACX,SAAS,EACT,UAAU,EACV,aAAa,EACb,qBAAqB,EACrB,mBAAmB,EACnB,KAAK,EACL,SAAS,EACT,MAAM,EACN,OAAO,EACP,OAAO,EACP,OAAO,EACP,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,UAAU,GACX,MAAM,mCAAmC,CAAC;AAE3C,MAAM,OAAO,GAAG;IACd,GAAG,EAAE,KAAK;IACV,KAAK,EAAE,mBAAmB;IAC1B,KAAK,EAAE,aAAa;IACpB,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE,aAAa;IACpB,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,iBAAiB;IACxB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,WAAW;IACjB,UAAU,EAAE,YAAY;IACxB,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,aAAa;IAC1B,IAAI,EAAE,YAAY;IAClB,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,WAAW,EAAE,aAAa;IAC1B,OAAO,EAAE,qBAAqB;IAC9B,KAAK,EAAE,mBAAmB;IAC1B,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,CAAC,EAAE,OAAO;IACV,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,YAAY;IACxB,KAAK,EAAE,UAAU;CAClB,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAA6B,CAAC;AAE/E,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AAQvC,MAAM,OAAO,IAAK,SAAQ,UAAU;IAApC;;QAC8B,SAAI,GAAmB,MAAM,CAAC;IAoB5D,CAAC;IANC,MAAM;QACJ,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACjD,CAAC;;AAjBM,WAAM,GAAG,GAAG,CAAA;;;;;;;;;;GAUlB,AAVY,CAUX;AAZ0B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;kCAA+B;AAsB5D,cAAc,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"icon.js","sourceRoot":"","sources":["../../../src/components/icon/icon.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,mCAAmC,CAAC;AAElE,OAAO,EACL,OAAO,EACP,MAAM,EACN,MAAM,EACN,KAAK,EACL,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,QAAQ,EACR,OAAO,EACP,WAAW,EACX,YAAY,EACZ,OAAO,EACP,aAAa,EACb,YAAY,EACZ,WAAW,EACX,SAAS,EACT,UAAU,EACV,aAAa,EACb,qBAAqB,EACrB,mBAAmB,EACnB,KAAK,EACL,SAAS,EACT,MAAM,EACN,OAAO,EACP,OAAO,EACP,OAAO,EACP,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,MAAM,EACN,cAAc,EACd,QAAQ,EACR,aAAa,EACd,MAAM,mCAAmC,CAAC;AAE3C,MAAM,OAAO,GAAG;IACd,GAAG,EAAE,KAAK;IACV,KAAK,EAAE,mBAAmB;IAC1B,KAAK,EAAE,aAAa;IACpB,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE,aAAa;IACpB,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,iBAAiB;IACxB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,WAAW;IACjB,UAAU,EAAE,YAAY;IACxB,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,aAAa;IAC1B,IAAI,EAAE,YAAY;IAClB,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,WAAW,EAAE,aAAa;IAC1B,OAAO,EAAE,qBAAqB;IAC9B,KAAK,EAAE,mBAAmB;IAC1B,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,CAAC,EAAE,OAAO;IACV,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,YAAY;IACxB,KAAK,EAAE,UAAU;IACjB,IAAI,EAAE,MAAM;IACZ,YAAY,EAAE,cAAc;IAC5B,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,aAAa;CAC3B,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAA6B,CAAC;AAE/E,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AAQvC,MAAM,OAAO,IAAK,SAAQ,UAAU;IAApC;;QAC8B,SAAI,GAAmB,MAAM,CAAC;IAoB5D,CAAC;IANC,MAAM;QACJ,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACjD,CAAC;;AAjBM,WAAM,GAAG,GAAG,CAAA;;;;;;;;;;GAUlB,AAVY,CAUX;AAZ0B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;kCAA+B;AAsB5D,cAAc,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export { Icon } from './icon';
2
+ export type { IconProps, AvailableIcons } from './icon';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/icon/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/icon/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -17,5 +17,6 @@ export * from './components/code-editor';
17
17
  export * from './components/text-area';
18
18
  export * from './components/loading-spinner';
19
19
  export * from './components/pagination';
20
+ export * from './components/dock';
20
21
  export * from './utils';
21
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AAGxC,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -18,6 +18,7 @@ export * from './components/code-editor';
18
18
  export * from './components/text-area';
19
19
  export * from './components/loading-spinner';
20
20
  export * from './components/pagination';
21
+ export * from './components/dock';
21
22
  // Export utilities
22
23
  export * from './utils';
23
24
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wBAAwB;AACxB,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AAExC,mBAAmB;AACnB,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wBAAwB;AACxB,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAElC,mBAAmB;AACnB,cAAc,SAAS,CAAC"}
@@ -0,0 +1,6 @@
1
+ export interface Debounced<T extends (...args: any[]) => void> {
2
+ (...args: Parameters<T>): void;
3
+ flush(): void;
4
+ }
5
+ export declare function debounce<T extends (...args: any[]) => void>(fn: T, wait: number): Debounced<T>;
6
+ //# sourceMappingURL=debounce.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debounce.d.ts","sourceRoot":"","sources":["../../src/utils/debounce.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI;IAC3D,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,KAAK,IAAI,IAAI,CAAC;CACf;AAED,wBAAgB,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CA0B9F"}
@@ -0,0 +1,25 @@
1
+ export function debounce(fn, wait) {
2
+ let timer = null;
3
+ let lastArgs = null;
4
+ const debounced = ((...args) => {
5
+ lastArgs = args;
6
+ if (timer) {
7
+ clearTimeout(timer);
8
+ }
9
+ timer = setTimeout(() => {
10
+ timer = null;
11
+ fn(...lastArgs);
12
+ }, wait);
13
+ });
14
+ debounced.flush = () => {
15
+ if (timer) {
16
+ clearTimeout(timer);
17
+ timer = null;
18
+ if (lastArgs) {
19
+ fn(...lastArgs);
20
+ }
21
+ }
22
+ };
23
+ return debounced;
24
+ }
25
+ //# sourceMappingURL=debounce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debounce.js","sourceRoot":"","sources":["../../src/utils/debounce.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,QAAQ,CAAqC,EAAK,EAAE,IAAY;IAC9E,IAAI,KAAK,GAAyC,IAAI,CAAC;IACvD,IAAI,QAAQ,GAAyB,IAAI,CAAC;IAE1C,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,IAAmB,EAAE,EAAE;QAC5C,QAAQ,GAAG,IAAI,CAAC;QAChB,IAAI,KAAK,EAAE,CAAC;YACV,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QACD,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YACtB,KAAK,GAAG,IAAI,CAAC;YACb,EAAE,CAAC,GAAI,QAA0B,CAAC,CAAC;QACrC,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC,CAAiB,CAAC;IAEnB,SAAS,CAAC,KAAK,GAAG,GAAG,EAAE;QACrB,IAAI,KAAK,EAAE,CAAC;YACV,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,KAAK,GAAG,IAAI,CAAC;YACb,IAAI,QAAQ,EAAE,CAAC;gBACb,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,SAAS,CAAC;AACnB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@krumio/trailhand-ui",
3
- "version": "1.10.2",
3
+ "version": "1.11.1",
4
4
  "type": "module",
5
5
  "description": "Reusable web components built with Lit Element",
6
6
  "main": "./dist/index.js",