@tartaguti/ui-components 0.2.0 → 0.3.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.
- package/CHANGELOG.md +37 -0
- package/README.md +12 -0
- package/custom-elements.json +3160 -1264
- package/dist/accordion/tt-accordion-item.d.ts.map +1 -1
- package/dist/accordion/tt-accordion-item.js +5 -2
- package/dist/accordion/tt-accordion-item.js.map +1 -1
- package/dist/bento/tt-bento-item.d.ts.map +1 -1
- package/dist/bento/tt-bento-item.js +7 -13
- package/dist/bento/tt-bento-item.js.map +1 -1
- package/dist/docs.d.ts +7 -0
- package/dist/docs.d.ts.map +1 -0
- package/dist/docs.js +15 -0
- package/dist/docs.js.map +1 -0
- package/dist/index.d.ts +4 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -7
- package/dist/index.js.map +1 -1
- package/dist/sidebar/tt-menu-group.d.ts.map +1 -1
- package/dist/sidebar/tt-menu-group.js +16 -5
- package/dist/sidebar/tt-menu-group.js.map +1 -1
- package/dist/sidebar/tt-menu-item.d.ts.map +1 -1
- package/dist/sidebar/tt-menu-item.js +24 -11
- package/dist/sidebar/tt-menu-item.js.map +1 -1
- package/dist/sidebar/tt-sidebar-footer.d.ts.map +1 -1
- package/dist/sidebar/tt-sidebar-footer.js +7 -3
- package/dist/sidebar/tt-sidebar-footer.js.map +1 -1
- package/dist/sidebar/tt-sidebar.d.ts +8 -3
- package/dist/sidebar/tt-sidebar.d.ts.map +1 -1
- package/dist/sidebar/tt-sidebar.js +196 -44
- package/dist/sidebar/tt-sidebar.js.map +1 -1
- package/dist/strings.d.ts +64 -0
- package/dist/strings.d.ts.map +1 -0
- package/dist/strings.js +68 -0
- package/dist/strings.js.map +1 -0
- package/dist/tokens.css +30 -6
- package/dist/tt-alert.d.ts.map +1 -1
- package/dist/tt-alert.js +5 -2
- package/dist/tt-alert.js.map +1 -1
- package/dist/tt-auth.d.ts +5 -1
- package/dist/tt-auth.d.ts.map +1 -1
- package/dist/tt-auth.js +72 -10
- package/dist/tt-auth.js.map +1 -1
- package/dist/tt-breadcrumbs.d.ts.map +1 -1
- package/dist/tt-breadcrumbs.js +6 -3
- package/dist/tt-breadcrumbs.js.map +1 -1
- package/dist/tt-button-group.d.ts.map +1 -1
- package/dist/tt-button-group.js +7 -1
- package/dist/tt-button-group.js.map +1 -1
- package/dist/tt-button.d.ts.map +1 -1
- package/dist/tt-button.js +37 -28
- package/dist/tt-button.js.map +1 -1
- package/dist/tt-card.d.ts.map +1 -1
- package/dist/tt-card.js +9 -6
- package/dist/tt-card.js.map +1 -1
- package/dist/tt-chart.d.ts +10 -2
- package/dist/tt-chart.d.ts.map +1 -1
- package/dist/tt-chart.js +167 -29
- package/dist/tt-chart.js.map +1 -1
- package/dist/tt-checkbox.d.ts.map +1 -1
- package/dist/tt-checkbox.js +5 -2
- package/dist/tt-checkbox.js.map +1 -1
- package/dist/tt-code-block.d.ts +4 -5
- package/dist/tt-code-block.d.ts.map +1 -1
- package/dist/tt-code-block.js +53 -17
- package/dist/tt-code-block.js.map +1 -1
- package/dist/tt-combobox.d.ts +14 -0
- package/dist/tt-combobox.d.ts.map +1 -1
- package/dist/tt-combobox.js +234 -31
- package/dist/tt-combobox.js.map +1 -1
- package/dist/tt-company-card.d.ts +18 -0
- package/dist/tt-company-card.d.ts.map +1 -1
- package/dist/tt-company-card.js +73 -4
- package/dist/tt-company-card.js.map +1 -1
- package/dist/tt-comparison-table.d.ts.map +1 -1
- package/dist/tt-comparison-table.js +6 -3
- package/dist/tt-comparison-table.js.map +1 -1
- package/dist/tt-component-doc.d.ts.map +1 -1
- package/dist/tt-component-doc.js +6 -3
- package/dist/tt-component-doc.js.map +1 -1
- package/dist/tt-contact-list.d.ts +17 -2
- package/dist/tt-contact-list.d.ts.map +1 -1
- package/dist/tt-contact-list.js +68 -10
- package/dist/tt-contact-list.js.map +1 -1
- package/dist/tt-copy-button.d.ts.map +1 -1
- package/dist/tt-copy-button.js +6 -3
- package/dist/tt-copy-button.js.map +1 -1
- package/dist/tt-data-table.d.ts +4 -0
- package/dist/tt-data-table.d.ts.map +1 -1
- package/dist/tt-data-table.js +25 -9
- package/dist/tt-data-table.js.map +1 -1
- package/dist/tt-dock-item.d.ts +53 -0
- package/dist/tt-dock-item.d.ts.map +1 -0
- package/dist/tt-dock-item.js +270 -0
- package/dist/tt-dock-item.js.map +1 -0
- package/dist/tt-dock.d.ts +59 -0
- package/dist/tt-dock.d.ts.map +1 -0
- package/dist/tt-dock.js +337 -0
- package/dist/tt-dock.js.map +1 -0
- package/dist/tt-drawer.d.ts +4 -0
- package/dist/tt-drawer.d.ts.map +1 -1
- package/dist/tt-drawer.js +14 -4
- package/dist/tt-drawer.js.map +1 -1
- package/dist/tt-dropdown-menu.d.ts +5 -0
- package/dist/tt-dropdown-menu.d.ts.map +1 -1
- package/dist/tt-dropdown-menu.js +34 -8
- package/dist/tt-dropdown-menu.js.map +1 -1
- package/dist/tt-file-upload.d.ts +35 -0
- package/dist/tt-file-upload.d.ts.map +1 -1
- package/dist/tt-file-upload.js +210 -21
- package/dist/tt-file-upload.js.map +1 -1
- package/dist/tt-filter.d.ts.map +1 -1
- package/dist/tt-filter.js +10 -5
- package/dist/tt-filter.js.map +1 -1
- package/dist/tt-form.d.ts +25 -1
- package/dist/tt-form.d.ts.map +1 -1
- package/dist/tt-form.js +151 -12
- package/dist/tt-form.js.map +1 -1
- package/dist/tt-grid.d.ts +10 -1
- package/dist/tt-grid.d.ts.map +1 -1
- package/dist/tt-grid.js +38 -9
- package/dist/tt-grid.js.map +1 -1
- package/dist/tt-icon.d.ts.map +1 -1
- package/dist/tt-icon.js +5 -0
- package/dist/tt-icon.js.map +1 -1
- package/dist/tt-inbox.d.ts +4 -0
- package/dist/tt-inbox.d.ts.map +1 -1
- package/dist/tt-inbox.js +13 -3
- package/dist/tt-inbox.js.map +1 -1
- package/dist/tt-input.d.ts.map +1 -1
- package/dist/tt-input.js +15 -5
- package/dist/tt-input.js.map +1 -1
- package/dist/tt-key-values.d.ts +2 -0
- package/dist/tt-key-values.d.ts.map +1 -1
- package/dist/tt-key-values.js +45 -2
- package/dist/tt-key-values.js.map +1 -1
- package/dist/tt-layout.d.ts +53 -2
- package/dist/tt-layout.d.ts.map +1 -1
- package/dist/tt-layout.js +233 -27
- package/dist/tt-layout.js.map +1 -1
- package/dist/tt-modal.d.ts +4 -0
- package/dist/tt-modal.d.ts.map +1 -1
- package/dist/tt-modal.js +14 -4
- package/dist/tt-modal.js.map +1 -1
- package/dist/tt-navbar.d.ts +4 -0
- package/dist/tt-navbar.d.ts.map +1 -1
- package/dist/tt-navbar.js +42 -7
- package/dist/tt-navbar.js.map +1 -1
- package/dist/tt-pagination.d.ts +4 -0
- package/dist/tt-pagination.d.ts.map +1 -1
- package/dist/tt-pagination.js +8 -1
- package/dist/tt-pagination.js.map +1 -1
- package/dist/tt-product.d.ts +67 -15
- package/dist/tt-product.d.ts.map +1 -1
- package/dist/tt-product.js +447 -366
- package/dist/tt-product.js.map +1 -1
- package/dist/tt-progress.d.ts +1 -0
- package/dist/tt-progress.d.ts.map +1 -1
- package/dist/tt-progress.js +26 -7
- package/dist/tt-progress.js.map +1 -1
- package/dist/tt-quantity.d.ts.map +1 -1
- package/dist/tt-quantity.js +5 -2
- package/dist/tt-quantity.js.map +1 -1
- package/dist/tt-radio-group.d.ts.map +1 -1
- package/dist/tt-radio-group.js +5 -2
- package/dist/tt-radio-group.js.map +1 -1
- package/dist/tt-scroller.d.ts +76 -0
- package/dist/tt-scroller.d.ts.map +1 -0
- package/dist/tt-scroller.js +525 -0
- package/dist/tt-scroller.js.map +1 -0
- package/dist/tt-search.d.ts.map +1 -1
- package/dist/tt-search.js +10 -5
- package/dist/tt-search.js.map +1 -1
- package/dist/tt-select.d.ts +9 -0
- package/dist/tt-select.d.ts.map +1 -1
- package/dist/tt-select.js +99 -14
- package/dist/tt-select.js.map +1 -1
- package/dist/tt-slider.d.ts.map +1 -1
- package/dist/tt-slider.js +13 -2
- package/dist/tt-slider.js.map +1 -1
- package/dist/tt-social-links.d.ts.map +1 -1
- package/dist/tt-social-links.js +7 -4
- package/dist/tt-social-links.js.map +1 -1
- package/dist/tt-switcher.d.ts +2 -0
- package/dist/tt-switcher.d.ts.map +1 -1
- package/dist/tt-switcher.js +24 -76
- package/dist/tt-switcher.js.map +1 -1
- package/dist/tt-table-row.d.ts.map +1 -1
- package/dist/tt-table-row.js +5 -2
- package/dist/tt-table-row.js.map +1 -1
- package/dist/tt-table.d.ts.map +1 -1
- package/dist/tt-table.js +5 -2
- package/dist/tt-table.js.map +1 -1
- package/dist/tt-tabs.d.ts.map +1 -1
- package/dist/tt-tabs.js +5 -2
- package/dist/tt-tabs.js.map +1 -1
- package/dist/tt-tag-list.d.ts.map +1 -1
- package/dist/tt-tag-list.js +6 -3
- package/dist/tt-tag-list.js.map +1 -1
- package/dist/tt-textarea.d.ts.map +1 -1
- package/dist/tt-textarea.js +5 -2
- package/dist/tt-textarea.js.map +1 -1
- package/dist/tt-toast.d.ts +4 -1
- package/dist/tt-toast.d.ts.map +1 -1
- package/dist/tt-toast.js +40 -6
- package/dist/tt-toast.js.map +1 -1
- package/dist/tt-toggle-group.d.ts.map +1 -1
- package/dist/tt-toggle-group.js +7 -1
- package/dist/tt-toggle-group.js.map +1 -1
- package/dist/tt-toggle.d.ts.map +1 -1
- package/dist/tt-toggle.js +14 -9
- package/dist/tt-toggle.js.map +1 -1
- package/package.json +1 -1
- package/vscode.html-custom-data.json +236 -65
package/dist/tt-dock.js
ADDED
|
@@ -0,0 +1,337 @@
|
|
|
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 { customElement, property, queryAssignedElements } from "lit/decorators.js";
|
|
9
|
+
import "./tt-scroller.js";
|
|
10
|
+
import "./tt-dock-item.js";
|
|
11
|
+
const sideways = (position) => position === "left" || position === "right";
|
|
12
|
+
/**
|
|
13
|
+
* A few big targets on one edge of the screen: a phone's tab bar, a
|
|
14
|
+
* floating dock on a desktop, or a column down the side. Holds
|
|
15
|
+
* tt-dock-item children and renders a <nav>.
|
|
16
|
+
*
|
|
17
|
+
* ---------------------------------------------------------------------
|
|
18
|
+
* WHY A DOCK IS NOT A NAVBAR.
|
|
19
|
+
*
|
|
20
|
+
* A navbar is the top of a site: a brand, links, actions, all sizes. A
|
|
21
|
+
* dock is three to five equal targets in thumb reach. Different job,
|
|
22
|
+
* different shape, so a different component.
|
|
23
|
+
*
|
|
24
|
+
* ---------------------------------------------------------------------
|
|
25
|
+
* IT TAKES ITS OWN SPACE, SO IT NEVER COVERS THE PAGE.
|
|
26
|
+
*
|
|
27
|
+
* It is sticky: it sits where you put it and pins to that edge of
|
|
28
|
+
* whatever scrolls (the window, a preview frame, a builder canvas,
|
|
29
|
+
* tt-layout's page). Put a bottom dock last, a top dock first, and a
|
|
30
|
+
* side dock beside the content in a row, where it is one screen tall
|
|
31
|
+
* like a sticky sidebar. Being in the flow is what keeps the last line
|
|
32
|
+
* of content clear of it: at the end of the page the dock sits after
|
|
33
|
+
* the content, not over it.
|
|
34
|
+
*
|
|
35
|
+
* ---------------------------------------------------------------------
|
|
36
|
+
* THE DOCK OWNS WHICH ITEM IS CURRENT.
|
|
37
|
+
*
|
|
38
|
+
* An item's click only asks (tt-dock-select from the item). The dock
|
|
39
|
+
* moves `active` to it, off the others, and sends its own
|
|
40
|
+
* tt-dock-select, so a dock with no listener (a pasted snippet, a
|
|
41
|
+
* generated component) still shows the right current page, and a page
|
|
42
|
+
* hears one event, not two. A page that sets `active` itself still wins.
|
|
43
|
+
*
|
|
44
|
+
* @fires tt-dock-select - An item was chosen and is now the current one. detail: { value }.
|
|
45
|
+
*/
|
|
46
|
+
let TTDock = class TTDock extends LitElement {
|
|
47
|
+
constructor() {
|
|
48
|
+
super(...arguments);
|
|
49
|
+
/** bar: across the whole edge. floating: a pill held off the edge. */
|
|
50
|
+
this.variant = "bar";
|
|
51
|
+
/** The edge it sits on. Top and bottom lay the items in a row; left and right in a column. */
|
|
52
|
+
this.position = "bottom";
|
|
53
|
+
/** Icons only. Each label stays as the item's name for a screen reader, and a hint for a mouse. */
|
|
54
|
+
this.labelsHidden = false;
|
|
55
|
+
/** Names the navigation for a screen reader, beside any other on the page. */
|
|
56
|
+
this.label = "";
|
|
57
|
+
/*
|
|
58
|
+
An item asks; the dock answers. The chosen item becomes the current
|
|
59
|
+
one and the others stop being it, then one tt-dock-select from the
|
|
60
|
+
dock. The item's own is stopped, so a page hears it once.
|
|
61
|
+
*/
|
|
62
|
+
this.onSelect = (event) => {
|
|
63
|
+
const item = event.target;
|
|
64
|
+
if (!this.items.includes(item))
|
|
65
|
+
return;
|
|
66
|
+
event.stopPropagation();
|
|
67
|
+
for (const other of this.items)
|
|
68
|
+
other.active = other === item;
|
|
69
|
+
const { value } = event.detail;
|
|
70
|
+
this.dispatchEvent(new CustomEvent("tt-dock-select", {
|
|
71
|
+
detail: { value },
|
|
72
|
+
bubbles: true,
|
|
73
|
+
composed: true,
|
|
74
|
+
}));
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
static { this.styles = css `
|
|
78
|
+
/* The browser's own [hidden] rule loses to any :host display. */
|
|
79
|
+
:host([hidden]) {
|
|
80
|
+
display: none !important;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
:host {
|
|
84
|
+
display: block;
|
|
85
|
+
|
|
86
|
+
/* Pinned to the edge it sits on (below), over the content that
|
|
87
|
+
scrolls under it. */
|
|
88
|
+
position: sticky;
|
|
89
|
+
bottom: 0;
|
|
90
|
+
z-index: var(--tt-z-sticky);
|
|
91
|
+
|
|
92
|
+
/* In a row beside the content: never squeezed by it. */
|
|
93
|
+
flex-shrink: 0;
|
|
94
|
+
min-width: 0;
|
|
95
|
+
|
|
96
|
+
color: var(--tt-foreground);
|
|
97
|
+
font-family: var(--tt-font-sans);
|
|
98
|
+
-webkit-font-smoothing: antialiased;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/* In a column at least a screen tall (an app's page, tt-layout's
|
|
102
|
+
content), a bottom dock goes to its end even when the page above
|
|
103
|
+
is short. An auto margin is 0 anywhere else. */
|
|
104
|
+
:host([position="bottom"]) {
|
|
105
|
+
margin-top: auto;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
:host([position="top"]) {
|
|
109
|
+
top: 0;
|
|
110
|
+
bottom: auto;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/* A column one screen tall beside the content, like a sticky
|
|
114
|
+
sidebar: the builder sets the screen's height on its canvas. */
|
|
115
|
+
:host([position="left"]),
|
|
116
|
+
:host([position="right"]) {
|
|
117
|
+
top: 0;
|
|
118
|
+
bottom: auto;
|
|
119
|
+
align-self: flex-start;
|
|
120
|
+
height: var(--tt-viewport-height, 100dvh);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/* ---- the bar, or the clear region a pill floats in ---- */
|
|
124
|
+
|
|
125
|
+
.dock {
|
|
126
|
+
box-sizing: border-box;
|
|
127
|
+
display: flex;
|
|
128
|
+
margin: 0;
|
|
129
|
+
|
|
130
|
+
/* Sizes for the items, inherited into their shadow roots. A target
|
|
131
|
+
of 56px with a label, 48px without: both clear 44px, and 48px on
|
|
132
|
+
a touch screen. */
|
|
133
|
+
--tt-dock-item-min-width: 4rem;
|
|
134
|
+
--tt-dock-item-height: 3.5rem;
|
|
135
|
+
--tt-dock-indicator-width: 3.5rem;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.horizontal {
|
|
139
|
+
flex-direction: row;
|
|
140
|
+
justify-content: center;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
.vertical {
|
|
144
|
+
flex-direction: column;
|
|
145
|
+
justify-content: flex-start;
|
|
146
|
+
height: 100%;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
.labels-hidden {
|
|
150
|
+
--tt-dock-item-min-width: 3rem;
|
|
151
|
+
--tt-dock-item-height: 3rem;
|
|
152
|
+
--tt-dock-indicator-width: 2.5rem;
|
|
153
|
+
--tt-dock-label-position: absolute;
|
|
154
|
+
--tt-dock-label-size: 1px;
|
|
155
|
+
--tt-dock-label-clip: inset(50%);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/* A bar: the surface across the whole edge, clear of the notch and
|
|
159
|
+
the home indicator on the edge it touches. */
|
|
160
|
+
.bar {
|
|
161
|
+
background: var(--tt-card);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
.bar.bottom {
|
|
165
|
+
border-top: 1px solid var(--tt-border);
|
|
166
|
+
padding: 0 env(safe-area-inset-right, 0px) env(safe-area-inset-bottom, 0px)
|
|
167
|
+
env(safe-area-inset-left, 0px);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
.bar.top {
|
|
171
|
+
border-bottom: 1px solid var(--tt-border);
|
|
172
|
+
padding: env(safe-area-inset-top, 0px) env(safe-area-inset-right, 0px) 0
|
|
173
|
+
env(safe-area-inset-left, 0px);
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
.bar.left {
|
|
177
|
+
border-right: 1px solid var(--tt-border);
|
|
178
|
+
padding: env(safe-area-inset-top, 0px) 0 env(safe-area-inset-bottom, 0px)
|
|
179
|
+
env(safe-area-inset-left, 0px);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
.bar.right {
|
|
183
|
+
border-left: 1px solid var(--tt-border);
|
|
184
|
+
padding: env(safe-area-inset-top, 0px) env(safe-area-inset-right, 0px)
|
|
185
|
+
env(safe-area-inset-bottom, 0px) 0;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
/* Floating: the region is clear and only the pill takes clicks, so
|
|
189
|
+
content scrolling past the pill's sides stays usable. */
|
|
190
|
+
.floating {
|
|
191
|
+
--_inset: var(--tt-space-3);
|
|
192
|
+
--tt-dock-item-radius: var(--tt-radius-full);
|
|
193
|
+
|
|
194
|
+
pointer-events: none;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
.floating.bottom {
|
|
198
|
+
padding: var(--tt-space-2) calc(var(--_inset) + env(safe-area-inset-right, 0px))
|
|
199
|
+
calc(var(--_inset) + env(safe-area-inset-bottom, 0px))
|
|
200
|
+
calc(var(--_inset) + env(safe-area-inset-left, 0px));
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
.floating.top {
|
|
204
|
+
padding: calc(var(--_inset) + env(safe-area-inset-top, 0px))
|
|
205
|
+
calc(var(--_inset) + env(safe-area-inset-right, 0px)) var(--tt-space-2)
|
|
206
|
+
calc(var(--_inset) + env(safe-area-inset-left, 0px));
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
.floating.left {
|
|
210
|
+
justify-content: center;
|
|
211
|
+
padding: var(--_inset) var(--tt-space-2) var(--_inset)
|
|
212
|
+
calc(var(--_inset) + env(safe-area-inset-left, 0px));
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
.floating.right {
|
|
216
|
+
justify-content: center;
|
|
217
|
+
padding: var(--_inset) calc(var(--_inset) + env(safe-area-inset-right, 0px)) var(--_inset)
|
|
218
|
+
var(--tt-space-2);
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
/* ---- the surface: the bar's content box, or the pill ---- */
|
|
222
|
+
|
|
223
|
+
.surface {
|
|
224
|
+
display: flex;
|
|
225
|
+
min-width: 0;
|
|
226
|
+
min-height: 0;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
.bar .surface {
|
|
230
|
+
flex: 1;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
.vertical .surface {
|
|
234
|
+
flex-direction: column;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
/* The second elevation rung: a raised surface paired with its shadow. */
|
|
238
|
+
.floating .surface {
|
|
239
|
+
pointer-events: auto;
|
|
240
|
+
box-sizing: border-box;
|
|
241
|
+
max-width: 100%;
|
|
242
|
+
max-height: 100%;
|
|
243
|
+
padding: var(--tt-space-1);
|
|
244
|
+
|
|
245
|
+
border: 1px solid var(--tt-border);
|
|
246
|
+
border-radius: var(--tt-radius-full);
|
|
247
|
+
background: var(--tt-popover);
|
|
248
|
+
box-shadow: var(--tt-elevation-2);
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
/* ---- the items ---- */
|
|
252
|
+
|
|
253
|
+
/* A row is a tt-scroller: more items than fit scroll sideways, with
|
|
254
|
+
no scrollbar and a fade on the side that has more. */
|
|
255
|
+
.row {
|
|
256
|
+
flex: 1 1 auto;
|
|
257
|
+
min-width: 0;
|
|
258
|
+
/* The scroller keeps room above and below for a focus ring that
|
|
259
|
+
sticks out. An item's ring is inset, so that room is not needed,
|
|
260
|
+
and left alone it hangs below the bar and lengthens the page. */
|
|
261
|
+
overflow: clip;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
/* On a wide bar the items keep to a phone's spread, centred. */
|
|
265
|
+
.bar .row {
|
|
266
|
+
max-width: 40rem;
|
|
267
|
+
margin-inline: auto;
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
/* A column scrolls down. Its scrollbar stays: a desktop wheel scrolls
|
|
271
|
+
it, and nothing else would say there is more. */
|
|
272
|
+
.column {
|
|
273
|
+
display: flex;
|
|
274
|
+
flex-direction: column;
|
|
275
|
+
gap: var(--tt-space-1);
|
|
276
|
+
min-height: 0;
|
|
277
|
+
padding: var(--tt-space-2);
|
|
278
|
+
overflow-x: hidden;
|
|
279
|
+
overflow-y: auto;
|
|
280
|
+
scrollbar-width: thin;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
.floating .column {
|
|
284
|
+
padding: 0;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
/* A bar shares its width out equally; a pill and a column take each
|
|
288
|
+
item at its own size. Items never shrink below a target. */
|
|
289
|
+
.bar.horizontal ::slotted(*) {
|
|
290
|
+
flex: 1 1 0;
|
|
291
|
+
min-width: var(--tt-dock-item-min-width);
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
.floating.horizontal ::slotted(*),
|
|
295
|
+
.vertical ::slotted(*) {
|
|
296
|
+
flex: 0 0 auto;
|
|
297
|
+
}
|
|
298
|
+
`; }
|
|
299
|
+
render() {
|
|
300
|
+
const vertical = sideways(this.position);
|
|
301
|
+
const classes = `dock ${this.variant} ${this.position} ${vertical ? "vertical" : "horizontal"} ${this.labelsHidden ? "labels-hidden" : ""}`;
|
|
302
|
+
const slot = html `<slot></slot>`;
|
|
303
|
+
const items = vertical
|
|
304
|
+
? html `<div class="column" part="row">${slot}</div>`
|
|
305
|
+
: html `<tt-scroller class="row" part="row" gap="none" controls>${slot}</tt-scroller>`;
|
|
306
|
+
return html `
|
|
307
|
+
<nav
|
|
308
|
+
class=${classes}
|
|
309
|
+
part="dock"
|
|
310
|
+
aria-label=${this.label || nothing}
|
|
311
|
+
@tt-dock-select=${this.onSelect}
|
|
312
|
+
>
|
|
313
|
+
<div class="surface" part="surface">${items}</div>
|
|
314
|
+
</nav>
|
|
315
|
+
`;
|
|
316
|
+
}
|
|
317
|
+
};
|
|
318
|
+
__decorate([
|
|
319
|
+
property({ type: String, reflect: true })
|
|
320
|
+
], TTDock.prototype, "variant", void 0);
|
|
321
|
+
__decorate([
|
|
322
|
+
property({ type: String, reflect: true })
|
|
323
|
+
], TTDock.prototype, "position", void 0);
|
|
324
|
+
__decorate([
|
|
325
|
+
property({ type: Boolean, reflect: true, attribute: "labels-hidden" })
|
|
326
|
+
], TTDock.prototype, "labelsHidden", void 0);
|
|
327
|
+
__decorate([
|
|
328
|
+
property({ type: String })
|
|
329
|
+
], TTDock.prototype, "label", void 0);
|
|
330
|
+
__decorate([
|
|
331
|
+
queryAssignedElements({ selector: "tt-dock-item" })
|
|
332
|
+
], TTDock.prototype, "items", void 0);
|
|
333
|
+
TTDock = __decorate([
|
|
334
|
+
customElement("tt-dock")
|
|
335
|
+
], TTDock);
|
|
336
|
+
export { TTDock };
|
|
337
|
+
//# sourceMappingURL=tt-dock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tt-dock.js","sourceRoot":"","sources":["../src/tt-dock.ts"],"names":[],"mappings":"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"}
|
package/dist/tt-drawer.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { LitElement } from "lit";
|
|
2
2
|
import type { PropertyValues } from "lit";
|
|
3
3
|
import "./tt-icon.js";
|
|
4
|
+
import type { TTStrings } from "./strings.js";
|
|
4
5
|
export type DrawerSide = "right" | "left" | "bottom";
|
|
5
6
|
/**
|
|
6
7
|
* A panel that slides in over the page.
|
|
@@ -11,6 +12,9 @@ export type DrawerSide = "right" | "left" | "bottom";
|
|
|
11
12
|
* first"; a drawer says "here is more, the list is still there".
|
|
12
13
|
*/
|
|
13
14
|
export declare class TTDrawer extends LitElement {
|
|
15
|
+
/** This component's own text, over setStrings() (see strings.ts). */
|
|
16
|
+
strings: Partial<TTStrings>;
|
|
17
|
+
private text;
|
|
14
18
|
open: boolean;
|
|
15
19
|
side: DrawerSide;
|
|
16
20
|
heading: string;
|
package/dist/tt-drawer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tt-drawer.d.ts","sourceRoot":"","sources":["../src/tt-drawer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAO1C,OAAO,cAAc,CAAC;AAEtB,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;AAErD;;;;;;;GAOG;AACH,qBACa,QAAS,SAAQ,UAAU;
|
|
1
|
+
{"version":3,"file":"tt-drawer.d.ts","sourceRoot":"","sources":["../src/tt-drawer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAO1C,OAAO,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;AAErD;;;;;;;GAOG;AACH,qBACa,QAAS,SAAQ,UAAU;IACtC,qEAAqE;IACrC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAM;IAEjE,OAAO,CAAC,IAAI,CAA+B;IAEC,IAAI,UAAS;IAEd,IAAI,EAAE,UAAU,CAAW;IAE1C,OAAO,SAAM;IAEb,IAAI,SAAM;IAIT,UAAU,UAAS;IAEhD,OAAO,CAAC,WAAW,CAA4B;IAG/C,OAAO,CAAC,MAAM,CAAS;IAGd,OAAO,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,UAAU,CAAC,CAAa;IAEhC,iBAAiB;IAKjB,oBAAoB;IAkBpB,OAAO,CAAC,aAAa,CAmBnB;IAEF,UAAU,CAAC,OAAO,EAAE,cAAc;IAWlC,OAAO,CAAC,OAAO,EAAE,cAAc;IA6C/B,OAAO,CAAC,KAAK;IAUb,OAAO,CAAC,mBAAmB;IAI3B,MAAM,CAAC,MAAM,0BAsOX;IAEF,MAAM;CA+CP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,QAAQ,CAAC;KACvB;CACF"}
|
package/dist/tt-drawer.js
CHANGED
|
@@ -10,6 +10,7 @@ import { lockScroll, unlockScroll } from "./scroll-lock.js";
|
|
|
10
10
|
import { deepActiveElement, pushOverlay, removeOverlay, isTopOverlay, trapTab } from "./overlay.js";
|
|
11
11
|
import { afterTransitions } from "./motion.js";
|
|
12
12
|
import "./tt-icon.js";
|
|
13
|
+
import { StringsController } from "./strings.js";
|
|
13
14
|
/**
|
|
14
15
|
* A panel that slides in over the page.
|
|
15
16
|
*
|
|
@@ -21,6 +22,9 @@ import "./tt-icon.js";
|
|
|
21
22
|
let TTDrawer = class TTDrawer extends LitElement {
|
|
22
23
|
constructor() {
|
|
23
24
|
super(...arguments);
|
|
25
|
+
/** This component's own text, over setStrings() (see strings.ts). */
|
|
26
|
+
this.strings = {};
|
|
27
|
+
this.text = new StringsController(this);
|
|
24
28
|
this.open = false;
|
|
25
29
|
this.side = "right";
|
|
26
30
|
this.heading = "";
|
|
@@ -310,9 +314,12 @@ let TTDrawer = class TTDrawer extends LitElement {
|
|
|
310
314
|
color var(--tt-duration-normal) var(--tt-ease);
|
|
311
315
|
}
|
|
312
316
|
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
317
|
+
/* Only where a pointer can hover: a tap would leave this on. */
|
|
318
|
+
@media (hover: hover) {
|
|
319
|
+
.close:hover {
|
|
320
|
+
background: var(--tt-accent);
|
|
321
|
+
color: var(--tt-foreground);
|
|
322
|
+
}
|
|
316
323
|
}
|
|
317
324
|
|
|
318
325
|
.close:focus-visible {
|
|
@@ -390,7 +397,7 @@ let TTDrawer = class TTDrawer extends LitElement {
|
|
|
390
397
|
|
|
391
398
|
${!this.persistent
|
|
392
399
|
? html `
|
|
393
|
-
<button class="close" part="close" aria-label
|
|
400
|
+
<button class="close" part="close" aria-label=${this.text.get("close")} @click=${this.close}>
|
|
394
401
|
<tt-icon name="x" size="16px"></tt-icon>
|
|
395
402
|
</button>
|
|
396
403
|
`
|
|
@@ -408,6 +415,9 @@ let TTDrawer = class TTDrawer extends LitElement {
|
|
|
408
415
|
`;
|
|
409
416
|
}
|
|
410
417
|
};
|
|
418
|
+
__decorate([
|
|
419
|
+
property({ attribute: false })
|
|
420
|
+
], TTDrawer.prototype, "strings", void 0);
|
|
411
421
|
__decorate([
|
|
412
422
|
property({ type: Boolean, reflect: true })
|
|
413
423
|
], TTDrawer.prototype, "open", void 0);
|
package/dist/tt-drawer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tt-drawer.js","sourceRoot":"","sources":["../src/tt-drawer.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACpG,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"tt-drawer.js","sourceRoot":"","sources":["../src/tt-drawer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { LitElement } from "lit";
|
|
2
2
|
import type { PropertyValues } from "lit";
|
|
3
3
|
import "./tt-icon.js";
|
|
4
|
+
import type { TTStrings } from "./strings.js";
|
|
4
5
|
export interface MenuAction {
|
|
5
6
|
value: string;
|
|
6
7
|
label: string;
|
|
@@ -16,8 +17,12 @@ export interface MenuAction {
|
|
|
16
17
|
* currently chosen; a menu performs an action and remembers nothing.
|
|
17
18
|
*/
|
|
18
19
|
export declare class TTDropdownMenu extends LitElement {
|
|
20
|
+
/** This component's own text, over setStrings() (see strings.ts). */
|
|
21
|
+
strings: Partial<TTStrings>;
|
|
22
|
+
private text;
|
|
19
23
|
items: MenuAction[];
|
|
20
24
|
label: string;
|
|
25
|
+
private get resolvedLabel();
|
|
21
26
|
align: "start" | "end";
|
|
22
27
|
disabled: boolean;
|
|
23
28
|
size: "small" | "medium" | "large";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tt-dropdown-menu.d.ts","sourceRoot":"","sources":["../src/tt-dropdown-menu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAM1C,OAAO,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"tt-dropdown-menu.d.ts","sourceRoot":"","sources":["../src/tt-dropdown-menu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAM1C,OAAO,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAI9C,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IAEd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;GAMG;AACH,qBACa,cAAe,SAAQ,UAAU;IAC5C,qEAAqE;IACrC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAM;IAEjE,OAAO,CAAC,IAAI,CAA+B;IAEhB,KAAK,EAAE,UAAU,EAAE,CAAM;IAGxB,KAAK,SAAM;IAEvC,OAAO,KAAK,aAAa,GAExB;IAG2B,KAAK,EAAE,OAAO,GAAG,KAAK,CAAS;IAEf,QAAQ,UAAS;IAc7D,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAW;IAEpC,OAAO,CAAC,IAAI,CAAS;IAErB,OAAO,CAAC,WAAW,CAAM;IAMzB,OAAO,CAAC,aAAa,CAAS;IAQ9B,OAAO,CAAC,cAAc,CAAS;IAErB,OAAO,CAAC,OAAO,CAAe;IAEjC,OAAO,CAAC,IAAI,CAAe;IAI3C,OAAO,CAAC,mBAAmB,CAAM;IAEjC,OAAO,CAAC,MAAM,CAAsB;IAEpC,OAAO,CAAC,OAAO,CAAC,CAAa;IAE7B,oBAAoB;IAKpB,OAAO,CAAC,QAAQ;IAchB,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,qBAAqB;IAS7B,OAAO,CAAC,mBAAmB,CAEzB;IAEF,OAAO,CAAC,UAAU,CAEhB;IAEF,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,MAAM;IAcd,OAAO,CAAC,IAAI;IAaZ,OAAO,CAAC,aAAa;IAuDrB,OAAO,CAAC,iBAAiB;IAiCzB,OAAO,CAAC,OAAO,EAAE,cAAc;IAoB/B,OAAO,CAAC,WAAW;IAyBnB,OAAO,CAAC,QAAQ;IAqBhB,OAAO,CAAC,iBAAiB;IAwBzB,MAAM,CAAC,MAAM,0BAqPX;IAIF,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY;IAI5B,MAAM;CA8DP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,kBAAkB,EAAE,cAAc,CAAC;KACpC;CACF"}
|
package/dist/tt-dropdown-menu.js
CHANGED
|
@@ -9,6 +9,7 @@ import { customElement, property, state, query } from "lit/decorators.js";
|
|
|
9
9
|
import { trackAnchor, placeBelow } from "./floating.js";
|
|
10
10
|
import { ifDefined } from "lit/directives/if-defined.js";
|
|
11
11
|
import "./tt-icon.js";
|
|
12
|
+
import { StringsController } from "./strings.js";
|
|
12
13
|
let uid = 0;
|
|
13
14
|
/**
|
|
14
15
|
* Actions attached to a thing: the row menu behind a table's dots button,
|
|
@@ -20,8 +21,12 @@ let uid = 0;
|
|
|
20
21
|
let TTDropdownMenu = class TTDropdownMenu extends LitElement {
|
|
21
22
|
constructor() {
|
|
22
23
|
super(...arguments);
|
|
24
|
+
/** This component's own text, over setStrings() (see strings.ts). */
|
|
25
|
+
this.strings = {};
|
|
26
|
+
this.text = new StringsController(this);
|
|
23
27
|
this.items = [];
|
|
24
|
-
|
|
28
|
+
// Empty means the library's "Actions" text (strings.ts), so it can be translated.
|
|
29
|
+
this.label = "";
|
|
25
30
|
// Which edge of the trigger the menu lines up with.
|
|
26
31
|
this.align = "end";
|
|
27
32
|
this.disabled = false;
|
|
@@ -66,6 +71,9 @@ let TTDropdownMenu = class TTDropdownMenu extends LitElement {
|
|
|
66
71
|
this.position();
|
|
67
72
|
};
|
|
68
73
|
}
|
|
74
|
+
get resolvedLabel() {
|
|
75
|
+
return this.label || this.text.get("actions");
|
|
76
|
+
}
|
|
69
77
|
disconnectedCallback() {
|
|
70
78
|
this.removeGlobalListeners();
|
|
71
79
|
super.disconnectedCallback();
|
|
@@ -370,9 +378,12 @@ let TTDropdownMenu = class TTDropdownMenu extends LitElement {
|
|
|
370
378
|
font-weight: var(--tt-weight-medium);
|
|
371
379
|
}
|
|
372
380
|
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
381
|
+
/* Only where a pointer can hover: a tap would leave this on. */
|
|
382
|
+
@media (hover: hover) {
|
|
383
|
+
.trigger:hover:not(:disabled) {
|
|
384
|
+
background: var(--tt-accent);
|
|
385
|
+
color: var(--tt-foreground);
|
|
386
|
+
}
|
|
376
387
|
}
|
|
377
388
|
|
|
378
389
|
.trigger:focus-visible {
|
|
@@ -497,22 +508,34 @@ let TTDropdownMenu = class TTDropdownMenu extends LitElement {
|
|
|
497
508
|
user-select: none;
|
|
498
509
|
}
|
|
499
510
|
|
|
500
|
-
.item:hover:not(:disabled),
|
|
501
511
|
.item.active:not(:disabled) {
|
|
502
512
|
background: var(--tt-accent);
|
|
503
513
|
color: var(--tt-accent-foreground);
|
|
504
514
|
}
|
|
505
515
|
|
|
516
|
+
@media (hover: hover) {
|
|
517
|
+
.item:hover:not(:disabled) {
|
|
518
|
+
background: var(--tt-accent);
|
|
519
|
+
color: var(--tt-accent-foreground);
|
|
520
|
+
}
|
|
521
|
+
}
|
|
522
|
+
|
|
506
523
|
.item.danger {
|
|
507
524
|
color: var(--tt-destructive);
|
|
508
525
|
}
|
|
509
526
|
|
|
510
|
-
.item.danger:hover:not(:disabled),
|
|
511
527
|
.item.danger.active:not(:disabled) {
|
|
512
528
|
background: color-mix(in srgb, var(--tt-destructive) 12%, transparent);
|
|
513
529
|
color: var(--tt-destructive);
|
|
514
530
|
}
|
|
515
531
|
|
|
532
|
+
@media (hover: hover) {
|
|
533
|
+
.item.danger:hover:not(:disabled) {
|
|
534
|
+
background: color-mix(in srgb, var(--tt-destructive) 12%, transparent);
|
|
535
|
+
color: var(--tt-destructive);
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
|
|
516
539
|
.item:disabled {
|
|
517
540
|
opacity: var(--tt-opacity-disabled);
|
|
518
541
|
cursor: not-allowed;
|
|
@@ -539,7 +562,7 @@ let TTDropdownMenu = class TTDropdownMenu extends LitElement {
|
|
|
539
562
|
aria-haspopup="menu"
|
|
540
563
|
aria-expanded=${this.open ? "true" : "false"}
|
|
541
564
|
aria-controls=${this.menuId}
|
|
542
|
-
aria-label=${ifDefined(this.triggerHasText ? undefined : this.
|
|
565
|
+
aria-label=${ifDefined(this.triggerHasText ? undefined : this.resolvedLabel)}
|
|
543
566
|
?disabled=${this.disabled}
|
|
544
567
|
@click=${this.handleTriggerClick}
|
|
545
568
|
@keydown=${this.handleKeydown}
|
|
@@ -563,7 +586,7 @@ let TTDropdownMenu = class TTDropdownMenu extends LitElement {
|
|
|
563
586
|
id=${this.menuId}
|
|
564
587
|
popover="manual"
|
|
565
588
|
role="menu"
|
|
566
|
-
aria-label=${this.
|
|
589
|
+
aria-label=${this.resolvedLabel}
|
|
567
590
|
@keydown=${this.handleMenuKeydown}
|
|
568
591
|
>
|
|
569
592
|
${this.items.map((item, index) => html `
|
|
@@ -591,6 +614,9 @@ let TTDropdownMenu = class TTDropdownMenu extends LitElement {
|
|
|
591
614
|
`;
|
|
592
615
|
}
|
|
593
616
|
};
|
|
617
|
+
__decorate([
|
|
618
|
+
property({ attribute: false })
|
|
619
|
+
], TTDropdownMenu.prototype, "strings", void 0);
|
|
594
620
|
__decorate([
|
|
595
621
|
property({ type: Array })
|
|
596
622
|
], TTDropdownMenu.prototype, "items", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tt-dropdown-menu.js","sourceRoot":"","sources":["../src/tt-dropdown-menu.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1E,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"tt-dropdown-menu.js","sourceRoot":"","sources":["../src/tt-dropdown-menu.ts"],"names":[],"mappings":"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"}
|