@latty-ds/web 0.8.1 → 0.10.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/custom-elements.json +103 -33
- package/dist/components/accordion/index.js +44 -8
- package/dist/components/alert/index.js +72 -8
- package/dist/components/avatar/index.js +1 -1
- package/dist/components/badge/index.js +1 -1
- package/dist/components/breadcrumb/index.js +1 -1
- package/dist/components/button/button.d.ts +6 -0
- package/dist/components/button/index.js +29 -1
- package/dist/components/calendar/index.js +1 -1
- package/dist/components/checkbox/index.js +1 -1
- package/dist/components/chip/index.js +1 -1
- package/dist/components/color-input/index.js +44 -8
- package/dist/components/combobox/index.js +44 -8
- package/dist/components/date-input/index.js +45 -9
- package/dist/components/datepicker/index.js +44 -8
- package/dist/components/dialog/dialog.d.ts +11 -0
- package/dist/components/dialog/index.js +83 -10
- package/dist/components/divider/index.js +1 -1
- package/dist/components/dropdown/dropdown.d.ts +2 -0
- package/dist/components/dropdown/index.js +4 -3
- package/dist/components/icon-button/icon-button.d.ts +6 -0
- package/dist/components/icon-button/index.js +28 -0
- package/dist/components/list/index.js +1 -1
- package/dist/components/pagination/index.js +1 -1
- package/dist/components/radio/index.js +1 -1
- package/dist/components/radio-group/index.js +44 -8
- package/dist/components/select/index.js +54 -10
- package/dist/components/sidepanel/index.js +76 -11
- package/dist/components/sidepanel/sidepanel.d.ts +2 -0
- package/dist/components/slider/index.js +44 -8
- package/dist/components/snackbar/index.js +11 -3
- package/dist/components/snackbar/snackbar.d.ts +11 -0
- package/dist/components/surface/index.js +1 -1
- package/dist/components/switch/index.js +1 -1
- package/dist/components/tab/index.js +1 -1
- package/dist/components/tab-group/index.js +2 -2
- package/dist/components/table/index.js +1 -1
- package/dist/components/text/index.js +43 -7
- package/dist/components/text/text.d.ts +1 -0
- package/dist/components/textfield/index.js +44 -8
- package/dist/components/tooltip/index.js +43 -7
- package/dist/index.cjs +163 -44
- package/dist/index.js +163 -44
- package/dist/manifest.json +36 -0
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -40,7 +40,7 @@ import { css } from "lit";
|
|
|
40
40
|
var accordionStyles = css`
|
|
41
41
|
:host {
|
|
42
42
|
display: block;
|
|
43
|
-
font-family: var(--lt-typography-
|
|
43
|
+
font-family: var(--lt-typography-fontFamilyPrimary, 'Hanken Grotesk', sans-serif);
|
|
44
44
|
width: 100%;
|
|
45
45
|
}
|
|
46
46
|
|
|
@@ -196,67 +196,103 @@ var textStyles = css2`
|
|
|
196
196
|
[part='base'] {
|
|
197
197
|
margin: 0;
|
|
198
198
|
color: inherit;
|
|
199
|
-
font-family: var(--lt-typography-
|
|
199
|
+
font-family: var(--lt-typography-fontFamilyPrimary, 'Hanken Grotesk', sans-serif);
|
|
200
200
|
}
|
|
201
201
|
|
|
202
202
|
/* ── Display ─────────────────────────────────────────────────────────── */
|
|
203
203
|
|
|
204
204
|
:host([variant='display-2xl']) [part='base'] {
|
|
205
|
+
font-family: var(
|
|
206
|
+
--lt-typography-fontFamilyHeading,
|
|
207
|
+
var(--lt-typography-fontFamilyPrimary, 'Hanken Grotesk', sans-serif)
|
|
208
|
+
);
|
|
205
209
|
font-size: clamp(2.5rem, 6vw, 4.5rem);
|
|
206
210
|
font-weight: var(--lt-text-weight, 200);
|
|
207
211
|
line-height: 1.1;
|
|
208
|
-
letter-spacing: -0.02em;
|
|
212
|
+
letter-spacing: var(--lt-text-tracking, -0.02em);
|
|
209
213
|
}
|
|
210
214
|
|
|
211
215
|
:host([variant='display-xl']) [part='base'] {
|
|
216
|
+
font-family: var(
|
|
217
|
+
--lt-typography-fontFamilyHeading,
|
|
218
|
+
var(--lt-typography-fontFamilyPrimary, 'Hanken Grotesk', sans-serif)
|
|
219
|
+
);
|
|
212
220
|
font-size: clamp(2rem, 5vw, 3.75rem);
|
|
213
221
|
font-weight: var(--lt-text-weight, 200);
|
|
214
222
|
line-height: 1.1;
|
|
215
|
-
letter-spacing: -0.02em;
|
|
223
|
+
letter-spacing: var(--lt-text-tracking, -0.02em);
|
|
216
224
|
}
|
|
217
225
|
|
|
218
226
|
:host([variant='display-lg']) [part='base'] {
|
|
227
|
+
font-family: var(
|
|
228
|
+
--lt-typography-fontFamilyHeading,
|
|
229
|
+
var(--lt-typography-fontFamilyPrimary, 'Hanken Grotesk', sans-serif)
|
|
230
|
+
);
|
|
219
231
|
font-size: clamp(2rem, 4vw, 3rem);
|
|
220
232
|
font-weight: var(--lt-text-weight, 200);
|
|
221
233
|
line-height: 1.15;
|
|
222
|
-
letter-spacing: -0.01em;
|
|
234
|
+
letter-spacing: var(--lt-text-tracking, -0.01em);
|
|
223
235
|
}
|
|
224
236
|
|
|
225
237
|
/* ── Headings ─────────────────────────────────────────────────────────── */
|
|
226
238
|
|
|
227
239
|
:host([variant='h1']) [part='base'] {
|
|
240
|
+
font-family: var(
|
|
241
|
+
--lt-typography-fontFamilyHeading,
|
|
242
|
+
var(--lt-typography-fontFamilyPrimary, 'Hanken Grotesk', sans-serif)
|
|
243
|
+
);
|
|
228
244
|
font-size: clamp(1.75rem, 2.5vw + 0.75rem, 2.5rem);
|
|
229
245
|
font-weight: var(--lt-text-weight, 600);
|
|
230
246
|
line-height: 1.2;
|
|
231
|
-
letter-spacing: -0.02em;
|
|
247
|
+
letter-spacing: var(--lt-text-tracking, -0.02em);
|
|
232
248
|
}
|
|
233
249
|
|
|
234
250
|
:host([variant='h2']) [part='base'] {
|
|
251
|
+
font-family: var(
|
|
252
|
+
--lt-typography-fontFamilyHeading,
|
|
253
|
+
var(--lt-typography-fontFamilyPrimary, 'Hanken Grotesk', sans-serif)
|
|
254
|
+
);
|
|
235
255
|
font-size: clamp(1.5rem, 2vw + 0.5rem, 2rem);
|
|
236
256
|
font-weight: var(--lt-text-weight, 600);
|
|
237
257
|
line-height: 1.25;
|
|
238
|
-
letter-spacing: -0.01em;
|
|
258
|
+
letter-spacing: var(--lt-text-tracking, -0.01em);
|
|
239
259
|
}
|
|
240
260
|
|
|
241
261
|
:host([variant='h3']) [part='base'] {
|
|
262
|
+
font-family: var(
|
|
263
|
+
--lt-typography-fontFamilyHeading,
|
|
264
|
+
var(--lt-typography-fontFamilyPrimary, 'Hanken Grotesk', sans-serif)
|
|
265
|
+
);
|
|
242
266
|
font-size: clamp(1.25rem, 1.5vw + 0.5rem, 1.5rem);
|
|
243
267
|
font-weight: var(--lt-text-weight, 600);
|
|
244
268
|
line-height: 1.3;
|
|
245
269
|
}
|
|
246
270
|
|
|
247
271
|
:host([variant='h4']) [part='base'] {
|
|
272
|
+
font-family: var(
|
|
273
|
+
--lt-typography-fontFamilyHeading,
|
|
274
|
+
var(--lt-typography-fontFamilyPrimary, 'Hanken Grotesk', sans-serif)
|
|
275
|
+
);
|
|
248
276
|
font-size: 1.25rem;
|
|
249
277
|
font-weight: var(--lt-text-weight, 600);
|
|
250
278
|
line-height: 1.35;
|
|
251
279
|
}
|
|
252
280
|
|
|
253
281
|
:host([variant='h5']) [part='base'] {
|
|
282
|
+
font-family: var(
|
|
283
|
+
--lt-typography-fontFamilyHeading,
|
|
284
|
+
var(--lt-typography-fontFamilyPrimary, 'Hanken Grotesk', sans-serif)
|
|
285
|
+
);
|
|
254
286
|
font-size: 1.125rem;
|
|
255
287
|
font-weight: var(--lt-text-weight, 600);
|
|
256
288
|
line-height: 1.4;
|
|
257
289
|
}
|
|
258
290
|
|
|
259
291
|
:host([variant='h6']) [part='base'] {
|
|
292
|
+
font-family: var(
|
|
293
|
+
--lt-typography-fontFamilyHeading,
|
|
294
|
+
var(--lt-typography-fontFamilyPrimary, 'Hanken Grotesk', sans-serif)
|
|
295
|
+
);
|
|
260
296
|
font-size: 1rem;
|
|
261
297
|
font-weight: var(--lt-text-weight, 600);
|
|
262
298
|
line-height: 1.4;
|
|
@@ -295,7 +331,7 @@ var textStyles = css2`
|
|
|
295
331
|
font-size: 0.6875rem;
|
|
296
332
|
font-weight: var(--lt-text-weight, 600);
|
|
297
333
|
line-height: 1.2;
|
|
298
|
-
letter-spacing: 0.08em;
|
|
334
|
+
letter-spacing: var(--lt-text-tracking, 0.08em);
|
|
299
335
|
text-transform: uppercase;
|
|
300
336
|
}
|
|
301
337
|
|
|
@@ -472,7 +508,7 @@ import { css as css3 } from "lit";
|
|
|
472
508
|
var buttonStyles = css3`
|
|
473
509
|
:host {
|
|
474
510
|
display: inline-block;
|
|
475
|
-
font-family: var(--lt-typography-
|
|
511
|
+
font-family: var(--lt-typography-fontFamilyPrimary, 'Hanken Grotesk', sans-serif);
|
|
476
512
|
|
|
477
513
|
/* Internal state props — set per variant/appearance below */
|
|
478
514
|
--_color: var(--lt-text-on-primary);
|
|
@@ -706,6 +742,30 @@ var buttonStyles = css3`
|
|
|
706
742
|
opacity: 0.8;
|
|
707
743
|
}
|
|
708
744
|
|
|
745
|
+
/* bordered — adds a border on top of whatever appearance is active; a no-op on
|
|
746
|
+
outlined, which already sets the same border color. */
|
|
747
|
+
:host([bordered][variant='primary']) {
|
|
748
|
+
--_border-color: var(--lt-border-primary-strong);
|
|
749
|
+
}
|
|
750
|
+
:host([bordered][variant='secondary']) {
|
|
751
|
+
--_border-color: var(--lt-border-secondary-strong);
|
|
752
|
+
}
|
|
753
|
+
:host([bordered][variant='neutral']) {
|
|
754
|
+
--_border-color: var(--lt-border-strong);
|
|
755
|
+
}
|
|
756
|
+
:host([bordered][variant='success']) {
|
|
757
|
+
--_border-color: var(--lt-border-success-strong);
|
|
758
|
+
}
|
|
759
|
+
:host([bordered][variant='warning']) {
|
|
760
|
+
--_border-color: var(--lt-border-warning-strong);
|
|
761
|
+
}
|
|
762
|
+
:host([bordered][variant='error']) {
|
|
763
|
+
--_border-color: var(--lt-border-error-strong);
|
|
764
|
+
}
|
|
765
|
+
:host([bordered][variant='info']) {
|
|
766
|
+
--_border-color: var(--lt-border-info-strong);
|
|
767
|
+
}
|
|
768
|
+
|
|
709
769
|
/* loading */
|
|
710
770
|
.spinner {
|
|
711
771
|
animation: spin 700ms linear infinite;
|
|
@@ -871,6 +931,7 @@ var Button = class extends ThemeableElement {
|
|
|
871
931
|
this._ariaForwarding = new AriaForwardingController(this, () => this.shadowRoot?.querySelector('[part="base"]'));
|
|
872
932
|
this.variant = "primary";
|
|
873
933
|
this.appearance = "filled";
|
|
934
|
+
this.bordered = false;
|
|
874
935
|
this.size = "md";
|
|
875
936
|
this.disabled = false;
|
|
876
937
|
this.loading = false;
|
|
@@ -933,6 +994,9 @@ __decorateClass([
|
|
|
933
994
|
__decorateClass([
|
|
934
995
|
property5({ reflect: true })
|
|
935
996
|
], Button.prototype, "appearance", 2);
|
|
997
|
+
__decorateClass([
|
|
998
|
+
property5({ type: Boolean, reflect: true })
|
|
999
|
+
], Button.prototype, "bordered", 2);
|
|
936
1000
|
__decorateClass([
|
|
937
1001
|
property5({ reflect: true })
|
|
938
1002
|
], Button.prototype, "size", 2);
|
|
@@ -980,7 +1044,7 @@ import { css as css5 } from "lit";
|
|
|
980
1044
|
var chipStyles = css5`
|
|
981
1045
|
:host {
|
|
982
1046
|
display: inline-flex;
|
|
983
|
-
font-family: var(--lt-typography-
|
|
1047
|
+
font-family: var(--lt-typography-fontFamilyPrimary, 'Hanken Grotesk', sans-serif);
|
|
984
1048
|
vertical-align: middle;
|
|
985
1049
|
}
|
|
986
1050
|
|
|
@@ -1239,7 +1303,7 @@ import { css as css6 } from "lit";
|
|
|
1239
1303
|
var checkboxStyles = css6`
|
|
1240
1304
|
:host {
|
|
1241
1305
|
display: inline-block;
|
|
1242
|
-
font-family: var(--lt-typography-
|
|
1306
|
+
font-family: var(--lt-typography-fontFamilyPrimary, 'Hanken Grotesk', sans-serif);
|
|
1243
1307
|
}
|
|
1244
1308
|
|
|
1245
1309
|
.checkbox-wrapper {
|
|
@@ -1535,7 +1599,7 @@ import { customElement as customElement9, property as property10, query as query
|
|
|
1535
1599
|
import { css as css7 } from "lit";
|
|
1536
1600
|
var dialogStyles = css7`
|
|
1537
1601
|
:host {
|
|
1538
|
-
font-family: var(--lt-typography-
|
|
1602
|
+
font-family: var(--lt-typography-fontFamilyPrimary, 'Hanken Grotesk', sans-serif);
|
|
1539
1603
|
}
|
|
1540
1604
|
|
|
1541
1605
|
/* Backdrop */
|
|
@@ -1894,6 +1958,30 @@ var iconButtonStyles = css9`
|
|
|
1894
1958
|
--_active-bg: var(--lt-bg-info-subtle);
|
|
1895
1959
|
}
|
|
1896
1960
|
|
|
1961
|
+
/* bordered — adds a border on top of whatever appearance is active; a no-op on
|
|
1962
|
+
outlined, which already sets the same border color. */
|
|
1963
|
+
:host([bordered][variant='primary']) {
|
|
1964
|
+
--_border-color: var(--lt-border-primary-strong);
|
|
1965
|
+
}
|
|
1966
|
+
:host([bordered][variant='secondary']) {
|
|
1967
|
+
--_border-color: var(--lt-border-secondary-strong);
|
|
1968
|
+
}
|
|
1969
|
+
:host([bordered][variant='neutral']) {
|
|
1970
|
+
--_border-color: var(--lt-border-strong);
|
|
1971
|
+
}
|
|
1972
|
+
:host([bordered][variant='success']) {
|
|
1973
|
+
--_border-color: var(--lt-border-success-strong);
|
|
1974
|
+
}
|
|
1975
|
+
:host([bordered][variant='warning']) {
|
|
1976
|
+
--_border-color: var(--lt-border-warning-strong);
|
|
1977
|
+
}
|
|
1978
|
+
:host([bordered][variant='error']) {
|
|
1979
|
+
--_border-color: var(--lt-border-error-strong);
|
|
1980
|
+
}
|
|
1981
|
+
:host([bordered][variant='info']) {
|
|
1982
|
+
--_border-color: var(--lt-border-info-strong);
|
|
1983
|
+
}
|
|
1984
|
+
|
|
1897
1985
|
/* round shape */
|
|
1898
1986
|
:host([round]) [part='base'] {
|
|
1899
1987
|
border-radius: 50%;
|
|
@@ -1910,6 +1998,7 @@ var IconButton = class extends ThemeableElement {
|
|
|
1910
1998
|
this.label = "";
|
|
1911
1999
|
this.variant = "neutral";
|
|
1912
2000
|
this.appearance = "ghost";
|
|
2001
|
+
this.bordered = false;
|
|
1913
2002
|
this.size = "md";
|
|
1914
2003
|
this.disabled = false;
|
|
1915
2004
|
this.href = "";
|
|
@@ -1956,6 +2045,9 @@ __decorateClass([
|
|
|
1956
2045
|
__decorateClass([
|
|
1957
2046
|
property8({ reflect: true })
|
|
1958
2047
|
], IconButton.prototype, "appearance", 2);
|
|
2048
|
+
__decorateClass([
|
|
2049
|
+
property8({ type: Boolean, reflect: true })
|
|
2050
|
+
], IconButton.prototype, "bordered", 2);
|
|
1959
2051
|
__decorateClass([
|
|
1960
2052
|
property8({ reflect: true })
|
|
1961
2053
|
], IconButton.prototype, "size", 2);
|
|
@@ -1988,7 +2080,7 @@ import { css as css10 } from "lit";
|
|
|
1988
2080
|
var surfaceStyles = css10`
|
|
1989
2081
|
:host {
|
|
1990
2082
|
display: block;
|
|
1991
|
-
font-family: var(--lt-typography-
|
|
2083
|
+
font-family: var(--lt-typography-fontFamilyPrimary, 'Hanken Grotesk', sans-serif);
|
|
1992
2084
|
}
|
|
1993
2085
|
|
|
1994
2086
|
.surface {
|
|
@@ -2078,6 +2170,8 @@ var Dialog = class extends ThemeableElement {
|
|
|
2078
2170
|
this.closeOnEscape = true;
|
|
2079
2171
|
this.uppercase = false;
|
|
2080
2172
|
this.backdropBlur = false;
|
|
2173
|
+
this.elevation = "4";
|
|
2174
|
+
this.appearance = "filled";
|
|
2081
2175
|
this.handleKeydown = (event) => {
|
|
2082
2176
|
if (this.open && this.closeOnEscape && event.key === "Escape") {
|
|
2083
2177
|
event.preventDefault();
|
|
@@ -2155,7 +2249,8 @@ var Dialog = class extends ThemeableElement {
|
|
|
2155
2249
|
return html9`
|
|
2156
2250
|
<div class="backdrop" ?inert=${!this.open} @click=${this.handleBackdropClick} part="backdrop">
|
|
2157
2251
|
<lt-surface
|
|
2158
|
-
elevation
|
|
2252
|
+
elevation=${this.elevation}
|
|
2253
|
+
appearance=${this.appearance}
|
|
2159
2254
|
role="dialog"
|
|
2160
2255
|
aria-modal="true"
|
|
2161
2256
|
aria-labelledby="dialog-title"
|
|
@@ -2222,6 +2317,12 @@ __decorateClass([
|
|
|
2222
2317
|
__decorateClass([
|
|
2223
2318
|
property10({ type: Boolean, reflect: true, attribute: "backdrop-blur" })
|
|
2224
2319
|
], Dialog.prototype, "backdropBlur", 2);
|
|
2320
|
+
__decorateClass([
|
|
2321
|
+
property10({ reflect: true })
|
|
2322
|
+
], Dialog.prototype, "elevation", 2);
|
|
2323
|
+
__decorateClass([
|
|
2324
|
+
property10({ reflect: true })
|
|
2325
|
+
], Dialog.prototype, "appearance", 2);
|
|
2225
2326
|
__decorateClass([
|
|
2226
2327
|
query3("lt-surface")
|
|
2227
2328
|
], Dialog.prototype, "dialogElement", 2);
|
|
@@ -2239,7 +2340,7 @@ import { css as css11 } from "lit";
|
|
|
2239
2340
|
var listStyles = css11`
|
|
2240
2341
|
:host {
|
|
2241
2342
|
display: block;
|
|
2242
|
-
font-family: var(--lt-typography-
|
|
2343
|
+
font-family: var(--lt-typography-fontFamilyPrimary, 'Hanken Grotesk', sans-serif);
|
|
2243
2344
|
--list-marker-color: var(--lt-color-neutral-500);
|
|
2244
2345
|
}
|
|
2245
2346
|
|
|
@@ -2541,7 +2642,7 @@ import { css as css13 } from "lit";
|
|
|
2541
2642
|
var radioStyles = css13`
|
|
2542
2643
|
:host {
|
|
2543
2644
|
display: inline-block;
|
|
2544
|
-
font-family: var(--lt-typography-
|
|
2645
|
+
font-family: var(--lt-typography-fontFamilyPrimary, 'Hanken Grotesk', sans-serif);
|
|
2545
2646
|
}
|
|
2546
2647
|
|
|
2547
2648
|
.radio-wrapper {
|
|
@@ -2819,7 +2920,7 @@ import { css as css14 } from "lit";
|
|
|
2819
2920
|
var radioGroupStyles = css14`
|
|
2820
2921
|
:host {
|
|
2821
2922
|
display: block;
|
|
2822
|
-
font-family: var(--lt-typography-
|
|
2923
|
+
font-family: var(--lt-typography-fontFamilyPrimary, 'Hanken Grotesk', sans-serif);
|
|
2823
2924
|
}
|
|
2824
2925
|
|
|
2825
2926
|
.radio-group {
|
|
@@ -4384,7 +4485,7 @@ var selectStyles = [
|
|
|
4384
4485
|
css16`
|
|
4385
4486
|
:host {
|
|
4386
4487
|
display: inline-block;
|
|
4387
|
-
font-family: var(--lt-typography-
|
|
4488
|
+
font-family: var(--lt-typography-fontFamilyPrimary, 'Hanken Grotesk', sans-serif);
|
|
4388
4489
|
position: relative;
|
|
4389
4490
|
width: 100%;
|
|
4390
4491
|
}
|
|
@@ -4744,7 +4845,15 @@ var Select = class extends ThemeableElement {
|
|
|
4744
4845
|
</span>
|
|
4745
4846
|
<lt-icon class="icon-end" name="caret-down"></lt-icon>
|
|
4746
4847
|
</div>
|
|
4747
|
-
<lt-surface
|
|
4848
|
+
<lt-surface
|
|
4849
|
+
class="dropdown"
|
|
4850
|
+
popover="manual"
|
|
4851
|
+
elevation="2"
|
|
4852
|
+
appearance="outlined"
|
|
4853
|
+
background="--lt-bg-default"
|
|
4854
|
+
role="listbox"
|
|
4855
|
+
part="listbox"
|
|
4856
|
+
>
|
|
4748
4857
|
<div class="options-container">
|
|
4749
4858
|
${this.options.map(
|
|
4750
4859
|
(option) => html14`
|
|
@@ -4821,7 +4930,7 @@ import { css as css17 } from "lit";
|
|
|
4821
4930
|
var switchStyles = css17`
|
|
4822
4931
|
:host {
|
|
4823
4932
|
display: inline-block;
|
|
4824
|
-
font-family: var(--lt-typography-
|
|
4933
|
+
font-family: var(--lt-typography-fontFamilyPrimary, 'Hanken Grotesk', sans-serif);
|
|
4825
4934
|
}
|
|
4826
4935
|
|
|
4827
4936
|
.switch-wrapper {
|
|
@@ -5098,7 +5207,7 @@ import { css as css18 } from "lit";
|
|
|
5098
5207
|
var tabStyles = css18`
|
|
5099
5208
|
:host {
|
|
5100
5209
|
display: inline-block;
|
|
5101
|
-
font-family: var(--lt-typography-
|
|
5210
|
+
font-family: var(--lt-typography-fontFamilyPrimary, 'Hanken Grotesk', sans-serif);
|
|
5102
5211
|
}
|
|
5103
5212
|
|
|
5104
5213
|
.tab {
|
|
@@ -5312,7 +5421,7 @@ import { css as css20 } from "lit";
|
|
|
5312
5421
|
var tabGroupStyles = css20`
|
|
5313
5422
|
:host {
|
|
5314
5423
|
display: block;
|
|
5315
|
-
font-family: var(--lt-typography-
|
|
5424
|
+
font-family: var(--lt-typography-fontFamilyPrimary, 'Hanken Grotesk', sans-serif);
|
|
5316
5425
|
}
|
|
5317
5426
|
|
|
5318
5427
|
.tab-group {
|
|
@@ -5505,7 +5614,7 @@ import { css as css21 } from "lit";
|
|
|
5505
5614
|
var tableStyles = css21`
|
|
5506
5615
|
:host {
|
|
5507
5616
|
display: block;
|
|
5508
|
-
font-family: var(--lt-typography-
|
|
5617
|
+
font-family: var(--lt-typography-fontFamilyPrimary, 'Hanken Grotesk', sans-serif);
|
|
5509
5618
|
overflow: hidden;
|
|
5510
5619
|
width: 100%;
|
|
5511
5620
|
}
|
|
@@ -6048,7 +6157,7 @@ import { css as css22 } from "lit";
|
|
|
6048
6157
|
var textfieldStyles = css22`
|
|
6049
6158
|
:host {
|
|
6050
6159
|
display: inline-block;
|
|
6051
|
-
font-family: var(--lt-typography-
|
|
6160
|
+
font-family: var(--lt-typography-fontFamilyPrimary, 'Hanken Grotesk', sans-serif);
|
|
6052
6161
|
width: 100%;
|
|
6053
6162
|
}
|
|
6054
6163
|
|
|
@@ -6602,7 +6711,7 @@ var avatarStyles = css23`
|
|
|
6602
6711
|
}
|
|
6603
6712
|
|
|
6604
6713
|
.initials {
|
|
6605
|
-
font-family: var(--lt-typography-
|
|
6714
|
+
font-family: var(--lt-typography-fontFamilyPrimary, 'Hanken Grotesk', sans-serif);
|
|
6606
6715
|
font-weight: 600;
|
|
6607
6716
|
letter-spacing: 0.02em;
|
|
6608
6717
|
line-height: 1;
|
|
@@ -6765,7 +6874,7 @@ import { css as css24 } from "lit";
|
|
|
6765
6874
|
var badgeStyles = css24`
|
|
6766
6875
|
:host {
|
|
6767
6876
|
display: inline-flex;
|
|
6768
|
-
font-family: var(--lt-typography-
|
|
6877
|
+
font-family: var(--lt-typography-fontFamilyPrimary, 'Hanken Grotesk', sans-serif);
|
|
6769
6878
|
vertical-align: middle;
|
|
6770
6879
|
}
|
|
6771
6880
|
|
|
@@ -7203,7 +7312,7 @@ var snackbarStyles = css26`
|
|
|
7203
7312
|
align-items: center;
|
|
7204
7313
|
color: var(--lt-text-inverse);
|
|
7205
7314
|
display: flex;
|
|
7206
|
-
font-family: var(--lt-typography-
|
|
7315
|
+
font-family: var(--lt-typography-fontFamilyPrimary, 'Hanken Grotesk', sans-serif);
|
|
7207
7316
|
font-size: 0.875rem;
|
|
7208
7317
|
gap: var(--lt-spacing-2);
|
|
7209
7318
|
line-height: 1.4;
|
|
@@ -7289,6 +7398,8 @@ var Snackbar = class extends ThemeableElement {
|
|
|
7289
7398
|
this.closable = true;
|
|
7290
7399
|
this.actionLabel = "";
|
|
7291
7400
|
this.icon = "";
|
|
7401
|
+
this.elevation = "5";
|
|
7402
|
+
this.appearance = "filled";
|
|
7292
7403
|
}
|
|
7293
7404
|
/** Shows the snackbar and starts the auto-dismiss timer. */
|
|
7294
7405
|
show() {
|
|
@@ -7341,7 +7452,7 @@ var Snackbar = class extends ThemeableElement {
|
|
|
7341
7452
|
render() {
|
|
7342
7453
|
const iconName = this._resolvedIcon;
|
|
7343
7454
|
return html24`
|
|
7344
|
-
<lt-surface elevation
|
|
7455
|
+
<lt-surface elevation=${this.elevation} appearance=${this.appearance} background=${Snackbar._bgMap[this.variant]}>
|
|
7345
7456
|
<div class="inner" role="status" aria-live="polite" part="base">
|
|
7346
7457
|
${iconName ? html24`<lt-icon class="variant-icon" name=${iconName} part="icon"></lt-icon>` : ""}
|
|
7347
7458
|
<span class="message" part="message">
|
|
@@ -7388,6 +7499,12 @@ __decorateClass([
|
|
|
7388
7499
|
__decorateClass([
|
|
7389
7500
|
property25({ reflect: true })
|
|
7390
7501
|
], Snackbar.prototype, "icon", 2);
|
|
7502
|
+
__decorateClass([
|
|
7503
|
+
property25({ reflect: true })
|
|
7504
|
+
], Snackbar.prototype, "elevation", 2);
|
|
7505
|
+
__decorateClass([
|
|
7506
|
+
property25({ reflect: true })
|
|
7507
|
+
], Snackbar.prototype, "appearance", 2);
|
|
7391
7508
|
Snackbar = __decorateClass([
|
|
7392
7509
|
customElement24("lt-snackbar")
|
|
7393
7510
|
], Snackbar);
|
|
@@ -7402,7 +7519,7 @@ import { css as css27 } from "lit";
|
|
|
7402
7519
|
var alertStyles = css27`
|
|
7403
7520
|
:host {
|
|
7404
7521
|
display: block;
|
|
7405
|
-
font-family: var(--lt-typography-
|
|
7522
|
+
font-family: var(--lt-typography-fontFamilyPrimary, 'Hanken Grotesk', sans-serif);
|
|
7406
7523
|
opacity: 1;
|
|
7407
7524
|
transform: translateY(0);
|
|
7408
7525
|
transition:
|
|
@@ -7625,7 +7742,7 @@ import { css as css28 } from "lit";
|
|
|
7625
7742
|
var sliderStyles = css28`
|
|
7626
7743
|
:host {
|
|
7627
7744
|
display: block;
|
|
7628
|
-
font-family: var(--lt-typography-
|
|
7745
|
+
font-family: var(--lt-typography-fontFamilyPrimary, 'Hanken Grotesk', sans-serif);
|
|
7629
7746
|
width: 100%;
|
|
7630
7747
|
}
|
|
7631
7748
|
|
|
@@ -7896,7 +8013,7 @@ var dropdownStyles = [
|
|
|
7896
8013
|
css29`
|
|
7897
8014
|
:host {
|
|
7898
8015
|
display: inline-block;
|
|
7899
|
-
font-family: var(--lt-typography-
|
|
8016
|
+
font-family: var(--lt-typography-fontFamilyPrimary, 'Hanken Grotesk', sans-serif);
|
|
7900
8017
|
}
|
|
7901
8018
|
|
|
7902
8019
|
.trigger-wrap {
|
|
@@ -7911,6 +8028,7 @@ var dropdownStyles = [
|
|
|
7911
8028
|
|
|
7912
8029
|
lt-surface.menu::part(surface) {
|
|
7913
8030
|
overflow: hidden;
|
|
8031
|
+
padding-block: var(--lt-dropdown-menu-padding, var(--lt-spacing-2));
|
|
7914
8032
|
}
|
|
7915
8033
|
`
|
|
7916
8034
|
];
|
|
@@ -7934,7 +8052,7 @@ var dropdownItemStyles = css30`
|
|
|
7934
8052
|
color: var(--lt-text-default);
|
|
7935
8053
|
cursor: pointer;
|
|
7936
8054
|
display: flex;
|
|
7937
|
-
font-family: var(--lt-typography-
|
|
8055
|
+
font-family: var(--lt-typography-fontFamilyPrimary, 'Hanken Grotesk', sans-serif);
|
|
7938
8056
|
font-size: 0.875rem;
|
|
7939
8057
|
gap: var(--lt-spacing-2);
|
|
7940
8058
|
padding: var(--lt-spacing-2) var(--lt-spacing-4);
|
|
@@ -8630,7 +8748,7 @@ var breadcrumbItemStyles = css34`
|
|
|
8630
8748
|
:host {
|
|
8631
8749
|
align-items: center;
|
|
8632
8750
|
display: inline-flex;
|
|
8633
|
-
font-family: var(--lt-typography-
|
|
8751
|
+
font-family: var(--lt-typography-fontFamilyPrimary, 'Hanken Grotesk', sans-serif);
|
|
8634
8752
|
font-size: 0.875rem;
|
|
8635
8753
|
}
|
|
8636
8754
|
|
|
@@ -8790,7 +8908,7 @@ var dividerStyles = css35`
|
|
|
8790
8908
|
|
|
8791
8909
|
[part='label'] {
|
|
8792
8910
|
color: var(--lt-text-subtle);
|
|
8793
|
-
font-family: var(--lt-typography-
|
|
8911
|
+
font-family: var(--lt-typography-fontFamilyPrimary, 'Hanken Grotesk', sans-serif);
|
|
8794
8912
|
font-size: 0.75rem;
|
|
8795
8913
|
font-weight: 600;
|
|
8796
8914
|
padding-inline: var(--lt-spacing-3);
|
|
@@ -9109,28 +9227,28 @@ var sidepanelStyles = css38`
|
|
|
9109
9227
|
inset-block: 0;
|
|
9110
9228
|
left: 0;
|
|
9111
9229
|
transform: translateX(-100%);
|
|
9112
|
-
box-shadow: 4px 0 24px rgba(0, 0, 0, 0.12);
|
|
9230
|
+
box-shadow: var(--lt-sidepanel-shadow, 4px 0 24px rgba(0, 0, 0, 0.12));
|
|
9113
9231
|
}
|
|
9114
9232
|
|
|
9115
9233
|
:host([anchor='right']) [part='panel'] {
|
|
9116
9234
|
inset-block: 0;
|
|
9117
9235
|
right: 0;
|
|
9118
9236
|
transform: translateX(100%);
|
|
9119
|
-
box-shadow: -4px 0 24px rgba(0, 0, 0, 0.12);
|
|
9237
|
+
box-shadow: var(--lt-sidepanel-shadow, -4px 0 24px rgba(0, 0, 0, 0.12));
|
|
9120
9238
|
}
|
|
9121
9239
|
|
|
9122
9240
|
:host([anchor='top']) [part='panel'] {
|
|
9123
9241
|
inset-inline: 0;
|
|
9124
9242
|
top: 0;
|
|
9125
9243
|
transform: translateY(-100%);
|
|
9126
|
-
box-shadow: 0 4px 24px rgba(0, 0, 0, 0.12);
|
|
9244
|
+
box-shadow: var(--lt-sidepanel-shadow, 0 4px 24px rgba(0, 0, 0, 0.12));
|
|
9127
9245
|
}
|
|
9128
9246
|
|
|
9129
9247
|
:host([anchor='bottom']) [part='panel'] {
|
|
9130
9248
|
inset-inline: 0;
|
|
9131
9249
|
bottom: 0;
|
|
9132
9250
|
transform: translateY(100%);
|
|
9133
|
-
box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.12);
|
|
9251
|
+
box-shadow: var(--lt-sidepanel-shadow, 0 -4px 24px rgba(0, 0, 0, 0.12));
|
|
9134
9252
|
}
|
|
9135
9253
|
|
|
9136
9254
|
/* ── Open state — must come after anchors to win the cascade ────────────── */
|
|
@@ -9171,6 +9289,7 @@ var sidepanelStyles = css38`
|
|
|
9171
9289
|
.body {
|
|
9172
9290
|
flex: 1;
|
|
9173
9291
|
overflow-y: auto;
|
|
9292
|
+
padding: var(--lt-spacing-5);
|
|
9174
9293
|
}
|
|
9175
9294
|
|
|
9176
9295
|
/* ── Reduced motion ─────────────────────────────────────────────────────── */
|
|
@@ -9422,7 +9541,7 @@ import { css as css40 } from "lit";
|
|
|
9422
9541
|
var paginationStyles = css40`
|
|
9423
9542
|
:host {
|
|
9424
9543
|
display: inline-flex;
|
|
9425
|
-
font-family: var(--lt-typography-
|
|
9544
|
+
font-family: var(--lt-typography-fontFamilyPrimary, 'Hanken Grotesk', sans-serif);
|
|
9426
9545
|
}
|
|
9427
9546
|
|
|
9428
9547
|
nav {
|
|
@@ -9592,7 +9711,7 @@ import { css as css41 } from "lit";
|
|
|
9592
9711
|
var datepickerStyles = css41`
|
|
9593
9712
|
:host {
|
|
9594
9713
|
display: block;
|
|
9595
|
-
font-family: var(--lt-typography-
|
|
9714
|
+
font-family: var(--lt-typography-fontFamilyPrimary, 'Hanken Grotesk', sans-serif);
|
|
9596
9715
|
}
|
|
9597
9716
|
|
|
9598
9717
|
.wrapper {
|
|
@@ -9822,7 +9941,7 @@ import { css as css42 } from "lit";
|
|
|
9822
9941
|
var calendarStyles = css42`
|
|
9823
9942
|
:host {
|
|
9824
9943
|
display: inline-block;
|
|
9825
|
-
font-family: var(--lt-typography-
|
|
9944
|
+
font-family: var(--lt-typography-fontFamilyPrimary, 'Hanken Grotesk', sans-serif);
|
|
9826
9945
|
}
|
|
9827
9946
|
|
|
9828
9947
|
.calendar {
|
|
@@ -10737,7 +10856,7 @@ var dateInputStyles = [
|
|
|
10737
10856
|
css43`
|
|
10738
10857
|
:host {
|
|
10739
10858
|
display: block;
|
|
10740
|
-
font-family: var(--lt-typography-
|
|
10859
|
+
font-family: var(--lt-typography-fontFamilyPrimary, 'Hanken Grotesk', sans-serif);
|
|
10741
10860
|
}
|
|
10742
10861
|
|
|
10743
10862
|
.wrapper {
|
|
@@ -11092,7 +11211,7 @@ var comboboxStyles = [
|
|
|
11092
11211
|
css44`
|
|
11093
11212
|
:host {
|
|
11094
11213
|
display: block;
|
|
11095
|
-
font-family: var(--lt-typography-
|
|
11214
|
+
font-family: var(--lt-typography-fontFamilyPrimary, 'Hanken Grotesk', sans-serif);
|
|
11096
11215
|
position: relative;
|
|
11097
11216
|
}
|
|
11098
11217
|
|
|
@@ -11487,7 +11606,7 @@ import { css as css45 } from "lit";
|
|
|
11487
11606
|
var colorInputStyles = css45`
|
|
11488
11607
|
:host {
|
|
11489
11608
|
display: inline-block;
|
|
11490
|
-
font-family: var(--lt-typography-
|
|
11609
|
+
font-family: var(--lt-typography-fontFamilyPrimary, 'Hanken Grotesk', sans-serif);
|
|
11491
11610
|
width: 100%;
|
|
11492
11611
|
}
|
|
11493
11612
|
|
package/dist/manifest.json
CHANGED
|
@@ -430,6 +430,12 @@
|
|
|
430
430
|
],
|
|
431
431
|
"default": "filled"
|
|
432
432
|
},
|
|
433
|
+
{
|
|
434
|
+
"name": "bordered",
|
|
435
|
+
"description": "Adds a variant-colored border on top of the current appearance. A no-op on\n`outlined` (which already has one); adds a border to `filled`/`ghost`.",
|
|
436
|
+
"type": "boolean",
|
|
437
|
+
"default": false
|
|
438
|
+
},
|
|
433
439
|
{
|
|
434
440
|
"name": "size",
|
|
435
441
|
"description": "Size of the button (affects height, font size, and padding).",
|
|
@@ -1114,6 +1120,18 @@
|
|
|
1114
1120
|
"description": "Apply a frosted-glass blur effect to the backdrop.",
|
|
1115
1121
|
"type": "boolean",
|
|
1116
1122
|
"default": false
|
|
1123
|
+
},
|
|
1124
|
+
{
|
|
1125
|
+
"name": "elevation",
|
|
1126
|
+
"description": "Elevation level of the internal surface, matching `lt-surface`'s scale.",
|
|
1127
|
+
"type": "text",
|
|
1128
|
+
"default": "4"
|
|
1129
|
+
},
|
|
1130
|
+
{
|
|
1131
|
+
"name": "appearance",
|
|
1132
|
+
"description": "Visual appearance of the internal surface, matching `lt-surface`'s vocabulary.",
|
|
1133
|
+
"type": "text",
|
|
1134
|
+
"default": "filled"
|
|
1117
1135
|
}
|
|
1118
1136
|
]
|
|
1119
1137
|
},
|
|
@@ -1243,6 +1261,12 @@
|
|
|
1243
1261
|
],
|
|
1244
1262
|
"default": "ghost"
|
|
1245
1263
|
},
|
|
1264
|
+
{
|
|
1265
|
+
"name": "bordered",
|
|
1266
|
+
"description": "Adds a variant-colored border on top of the current appearance. A no-op on\n`outlined` (which already has one); adds a border to `filled`/`ghost`.",
|
|
1267
|
+
"type": "boolean",
|
|
1268
|
+
"default": false
|
|
1269
|
+
},
|
|
1246
1270
|
{
|
|
1247
1271
|
"name": "size",
|
|
1248
1272
|
"description": "Size of the button.",
|
|
@@ -1954,6 +1978,18 @@
|
|
|
1954
1978
|
"description": "Icon to show before the message. Leave empty for auto (shows variant icon for status variants),\nset to `\"none\"` to suppress, or pass any icon name to override.",
|
|
1955
1979
|
"type": "icon",
|
|
1956
1980
|
"default": ""
|
|
1981
|
+
},
|
|
1982
|
+
{
|
|
1983
|
+
"name": "elevation",
|
|
1984
|
+
"description": "Elevation level of the internal surface, matching `lt-surface`'s scale.",
|
|
1985
|
+
"type": "text",
|
|
1986
|
+
"default": "5"
|
|
1987
|
+
},
|
|
1988
|
+
{
|
|
1989
|
+
"name": "appearance",
|
|
1990
|
+
"description": "Visual appearance of the internal surface, matching `lt-surface`'s vocabulary.",
|
|
1991
|
+
"type": "text",
|
|
1992
|
+
"default": "filled"
|
|
1957
1993
|
}
|
|
1958
1994
|
]
|
|
1959
1995
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@latty-ds/web",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"description": "Web Components for the Latty design system — framework-agnostic UI components built with Lit",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -224,8 +224,8 @@
|
|
|
224
224
|
},
|
|
225
225
|
"dependencies": {
|
|
226
226
|
"@floating-ui/dom": "^1.7.6",
|
|
227
|
-
"@latty-ds/icons": "0.
|
|
227
|
+
"@latty-ds/icons": "0.10.0"
|
|
228
228
|
},
|
|
229
229
|
"customElements": "custom-elements.json",
|
|
230
|
-
"gitHead": "
|
|
230
|
+
"gitHead": "7b0b9856be6755a573abf02c0b7cbdb1a6db4fef"
|
|
231
231
|
}
|