@m3-baseui/react-tailwind 1.2.0 → 1.4.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/dist/checkbox.js +5 -0
- package/dist/checkbox.js.map +1 -1
- package/dist/chip.d.ts +31 -0
- package/dist/chip.js +29 -5
- package/dist/chip.js.map +1 -1
- package/dist/dialog.d.ts +76 -46
- package/dist/dialog.js +43 -8
- package/dist/dialog.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +184 -31
- package/dist/index.js.map +1 -1
- package/dist/item.d.ts +9 -9
- package/dist/item.js +9 -3
- package/dist/item.js.map +1 -1
- package/dist/list.d.ts +4 -4
- package/dist/list.js +9 -3
- package/dist/list.js.map +1 -1
- package/dist/progress.d.ts +6 -6
- package/dist/progress.js +23 -2
- package/dist/progress.js.map +1 -1
- package/dist/radio.js +8 -3
- package/dist/radio.js.map +1 -1
- package/dist/search.d.ts +5 -5
- package/dist/segmented-button.d.ts +5 -5
- package/dist/slider.d.ts +33 -6
- package/dist/slider.js +16 -3
- package/dist/slider.js.map +1 -1
- package/dist/snackbar.js +6 -1
- package/dist/snackbar.js.map +1 -1
- package/dist/switch.js +4 -1
- package/dist/switch.js.map +1 -1
- package/dist/tooltip.d.ts +82 -1
- package/dist/tooltip.js +33 -5
- package/dist/tooltip.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { createButton, createIconButton, createSwitch, createCheckbox, createRadio, createRadioGroup, createChip, createTooltip, createDialog, createMenu, createTabs, createSlider, createSelect, createTextField, createNavigationBar, createFab, createFabMenu, createDivider, createProgress, createLoadingIndicator, createList, createSnackbar, createItem, createBadge, createCard, createSegmentedButton, createButtonGroup, createSplitButton, createNavigationDrawer, createTopAppBar, createBottomAppBar, createNavigationRail, createBottomSheet, createSideSheet, createSearch, createDatePicker, createTimePicker, createToolbar, createCarousel } from '@m3-baseui/core';
|
|
3
|
-
export { Ripple, ThemeProvider, applyScheme, generateScheme, schemeToCssText, useSnackbar, useTheme } from '@m3-baseui/core';
|
|
2
|
+
import { createButton, createIconButton, createSwitch, createCheckbox, createRadio, createRadioGroup, createChip, createTooltip, createRichTooltip, createDialog, createMenu, createTabs, createSlider, createSelect, createTextField, createNavigationBar, createFab, createFabMenu, createDivider, createProgress, createLoadingIndicator, createList, createSnackbar, createItem, createBadge, createCard, createSegmentedButton, createButtonGroup, createSplitButton, createNavigationDrawer, createTopAppBar, createBottomAppBar, createNavigationRail, createBottomSheet, createSideSheet, createSearch, createDatePicker, createTimePicker, createToolbar, createCarousel } from '@m3-baseui/core';
|
|
3
|
+
export { ITEM_LEADING_VARIANTS, LIST_LEADING_VARIANTS, Ripple, ThemeProvider, applyScheme, generateScheme, schemeToCssText, useSnackbar, useTheme } from '@m3-baseui/core';
|
|
4
4
|
import { tv } from 'tailwind-variants';
|
|
5
5
|
|
|
6
6
|
// src/button.ts
|
|
@@ -202,7 +202,10 @@ var switchTv = tv({
|
|
|
202
202
|
"absolute top-1/2 -translate-y-1/2 left-[6px] size-4 rounded-full pointer-events-none",
|
|
203
203
|
"flex items-center justify-center",
|
|
204
204
|
"bg-outline text-on-surface",
|
|
205
|
-
|
|
205
|
+
// M3 spatial motion: the handle slides/grows with emphasized easing over
|
|
206
|
+
// 300ms (token-backed). emphasized is overshoot-free, so it stays safe for
|
|
207
|
+
// the handle's color transitions too (no spring flicker on background-color).
|
|
208
|
+
"transition-all ease-emphasized duration-[var(--md-sys-motion-duration-medium2)]",
|
|
206
209
|
"data-[checked]:left-[22px] data-[checked]:size-6 data-[checked]:bg-on-primary data-[checked]:text-primary",
|
|
207
210
|
// M3 with-icon: the unchecked handle grows to 24dp to fit its icon
|
|
208
211
|
"data-[with-icon]:data-[unchecked]:left-1 data-[with-icon]:data-[unchecked]:size-6",
|
|
@@ -279,7 +282,12 @@ var checkboxTv = tv({
|
|
|
279
282
|
"group-data-[error]:text-on-error",
|
|
280
283
|
// M3 disabled: the check / dash turn the surface color on the faint box
|
|
281
284
|
"group-data-[disabled]:text-surface",
|
|
285
|
+
// M3 asymmetric motion: unselected-exit accelerates out (150ms), the
|
|
286
|
+
// selected/indeterminate-enter decelerates in (350ms). Token-backed.
|
|
282
287
|
"opacity-0 data-[checked]:opacity-100 data-[indeterminate]:opacity-100",
|
|
288
|
+
"transition-opacity ease-emphasized-accelerate duration-[var(--md-sys-motion-duration-short3)]",
|
|
289
|
+
"data-[checked]:ease-emphasized-decelerate data-[checked]:duration-[var(--md-sys-motion-duration-medium3)]",
|
|
290
|
+
"data-[indeterminate]:ease-emphasized-decelerate data-[indeterminate]:duration-[var(--md-sys-motion-duration-medium3)]",
|
|
283
291
|
'data-[indeterminate]:after:content-[""] data-[indeterminate]:after:absolute',
|
|
284
292
|
"data-[indeterminate]:after:w-[10px] data-[indeterminate]:after:h-[2px] data-[indeterminate]:after:rounded-full data-[indeterminate]:after:bg-current"
|
|
285
293
|
],
|
|
@@ -319,9 +327,14 @@ var radioTv = tv({
|
|
|
319
327
|
"active:before:opacity-[var(--md-sys-state-pressed)]"
|
|
320
328
|
],
|
|
321
329
|
indicator: [
|
|
322
|
-
"block rounded-full bg-primary pointer-events-none",
|
|
323
|
-
|
|
324
|
-
|
|
330
|
+
"block rounded-full bg-primary pointer-events-none origin-center",
|
|
331
|
+
// M3 inner-circle-grow: the 10dp dot scales from center with
|
|
332
|
+
// emphasized-decelerate over 300ms (token-backed), not width/height from 0.
|
|
333
|
+
// Tailwind v4's `scale-*` sets the standalone `scale` property (not
|
|
334
|
+
// `transform`), so the transition must name `scale` to animate the grow.
|
|
335
|
+
"size-2.5 scale-0 opacity-0",
|
|
336
|
+
"transition-[scale,opacity] ease-emphasized-decelerate duration-[var(--md-sys-motion-duration-medium2)]",
|
|
337
|
+
"data-[checked]:scale-100 data-[checked]:opacity-100",
|
|
325
338
|
"group-data-[error]:bg-error",
|
|
326
339
|
"group-data-[disabled]:bg-on-surface/38"
|
|
327
340
|
]
|
|
@@ -338,6 +351,8 @@ var chipTv = tv({
|
|
|
338
351
|
// layer is rounded to match instead (before:rounded-[inherit]); the ripple
|
|
339
352
|
// self-clips.
|
|
340
353
|
"h-8 px-4 rounded-[8px] select-none border bg-transparent text-label-large",
|
|
354
|
+
// M3 with-icon padding: the icon side trims to 8dp (label side stays 16dp).
|
|
355
|
+
"data-[with-leading-icon]:pl-2",
|
|
341
356
|
"transition-colors duration-150 ease-standard",
|
|
342
357
|
"before:absolute before:inset-0 before:rounded-[inherit] before:bg-current before:opacity-0 before:pointer-events-none before:transition-opacity before:duration-100",
|
|
343
358
|
"hover:before:opacity-[var(--md-sys-state-hover)]",
|
|
@@ -364,20 +379,36 @@ var chipTv = tv({
|
|
|
364
379
|
"inline-flex items-center justify-center shrink-0 size-6 -ml-3 rounded-full overflow-hidden",
|
|
365
380
|
"bg-primary-container text-on-primary-container",
|
|
366
381
|
"[&>img]:size-full [&>img]:object-cover"
|
|
382
|
+
],
|
|
383
|
+
// M3 leading icon: 18dp; root `data-with-leading-icon` trims leading padding to 8dp.
|
|
384
|
+
icon: [
|
|
385
|
+
"inline-flex items-center justify-center shrink-0 size-[18px]",
|
|
386
|
+
"[&>svg]:size-full",
|
|
387
|
+
"group-disabled:text-on-surface/38 group-data-[disabled]:text-on-surface/38"
|
|
367
388
|
]
|
|
368
389
|
},
|
|
369
390
|
variants: {
|
|
370
391
|
variant: {
|
|
371
|
-
assist: {
|
|
372
|
-
|
|
373
|
-
|
|
392
|
+
assist: {
|
|
393
|
+
root: "border-outline text-on-surface cursor-pointer",
|
|
394
|
+
icon: "text-primary"
|
|
395
|
+
},
|
|
396
|
+
suggestion: {
|
|
397
|
+
root: "border-outline text-on-surface-variant cursor-pointer",
|
|
398
|
+
icon: "text-on-surface-variant"
|
|
399
|
+
},
|
|
400
|
+
input: {
|
|
401
|
+
root: "border-outline text-on-surface-variant cursor-default pr-2",
|
|
402
|
+
icon: "text-on-surface-variant"
|
|
403
|
+
},
|
|
374
404
|
filter: {
|
|
375
405
|
root: [
|
|
376
406
|
"border-outline text-on-surface-variant cursor-pointer",
|
|
377
407
|
"data-[pressed]:bg-secondary-container data-[pressed]:text-on-secondary-container data-[pressed]:border-transparent",
|
|
378
408
|
// M3 disabled + selected: faint on-surface/12 container
|
|
379
409
|
"data-[pressed]:data-[disabled]:bg-on-surface/12 data-[pressed]:disabled:bg-on-surface/12"
|
|
380
|
-
]
|
|
410
|
+
],
|
|
411
|
+
icon: "text-on-surface-variant group-data-[pressed]:hidden"
|
|
381
412
|
}
|
|
382
413
|
},
|
|
383
414
|
// M3 elevated: filled surface-container-low + elevation level1→level2 on hover,
|
|
@@ -398,7 +429,13 @@ var chipTv = tv({
|
|
|
398
429
|
});
|
|
399
430
|
var Chip = createChip(({ variant, elevated }) => {
|
|
400
431
|
const c3 = chipTv({ variant, elevated });
|
|
401
|
-
return {
|
|
432
|
+
return {
|
|
433
|
+
root: c3.root(),
|
|
434
|
+
remove: c3.remove(),
|
|
435
|
+
check: c3.check(),
|
|
436
|
+
avatar: c3.avatar(),
|
|
437
|
+
icon: c3.icon()
|
|
438
|
+
};
|
|
402
439
|
});
|
|
403
440
|
var TYPESCALE = [
|
|
404
441
|
"display-large",
|
|
@@ -429,20 +466,48 @@ var tv7 = (options, config) => tv(options, {
|
|
|
429
466
|
});
|
|
430
467
|
|
|
431
468
|
// src/tooltip.ts
|
|
469
|
+
var transition = [
|
|
470
|
+
"origin-[var(--transform-origin)] transition-[opacity,transform] duration-150 ease-standard",
|
|
471
|
+
"data-[starting-style]:opacity-0 data-[starting-style]:scale-95",
|
|
472
|
+
"data-[ending-style]:opacity-0 data-[ending-style]:scale-95"
|
|
473
|
+
];
|
|
432
474
|
var tooltipTv = tv7({
|
|
433
475
|
slots: {
|
|
434
476
|
popup: [
|
|
435
477
|
"bg-inverse-surface text-inverse-on-surface text-body-small",
|
|
436
478
|
"rounded-extra-small px-2 py-1 max-w-[224px] select-none",
|
|
437
|
-
|
|
438
|
-
"data-[starting-style]:opacity-0 data-[starting-style]:scale-95",
|
|
439
|
-
"data-[ending-style]:opacity-0 data-[ending-style]:scale-95"
|
|
479
|
+
...transition
|
|
440
480
|
],
|
|
441
481
|
arrow: ["text-inverse-surface"]
|
|
442
482
|
}
|
|
443
483
|
});
|
|
484
|
+
var richTooltipTv = tv7({
|
|
485
|
+
slots: {
|
|
486
|
+
popup: [
|
|
487
|
+
"bg-surface-container text-on-surface shadow-level2",
|
|
488
|
+
"rounded-medium px-4 py-3 max-w-[320px] flex flex-col gap-1",
|
|
489
|
+
"outline-none",
|
|
490
|
+
...transition
|
|
491
|
+
],
|
|
492
|
+
arrow: ["text-surface-container"],
|
|
493
|
+
subhead: ["text-title-small text-on-surface m-0"],
|
|
494
|
+
supportingText: ["text-body-medium text-on-surface-variant m-0"],
|
|
495
|
+
// M3 places rich-tooltip actions at the bottom-left (leading), not trailing
|
|
496
|
+
// like a dialog. -ml-2 pulls the text button so its label optically aligns
|
|
497
|
+
// with the content's left edge.
|
|
498
|
+
actions: ["flex flex-wrap items-center gap-2 mt-1 -ml-2"]
|
|
499
|
+
}
|
|
500
|
+
});
|
|
444
501
|
var t = tooltipTv();
|
|
445
502
|
var Tooltip = createTooltip({ popup: t.popup(), arrow: t.arrow() });
|
|
503
|
+
var r2 = richTooltipTv();
|
|
504
|
+
var RichTooltip = createRichTooltip({
|
|
505
|
+
popup: r2.popup(),
|
|
506
|
+
arrow: r2.arrow(),
|
|
507
|
+
subhead: r2.subhead(),
|
|
508
|
+
supportingText: r2.supportingText(),
|
|
509
|
+
actions: r2.actions()
|
|
510
|
+
});
|
|
446
511
|
var dialogTv = tv7({
|
|
447
512
|
slots: {
|
|
448
513
|
backdrop: [
|
|
@@ -451,26 +516,61 @@ var dialogTv = tv7({
|
|
|
451
516
|
"data-[starting-style]:opacity-0 data-[ending-style]:opacity-0"
|
|
452
517
|
],
|
|
453
518
|
popup: [
|
|
454
|
-
"fixed
|
|
455
|
-
"w-[min(560px,calc(100vw-48px))] max-h-[calc(100vh-48px)] overflow-auto",
|
|
456
|
-
"bg-surface-container-high text-on-surface rounded-extra-large shadow-level3",
|
|
457
|
-
"p-6 flex flex-col gap-4",
|
|
519
|
+
"fixed z-50 box-border overflow-auto flex flex-col text-on-surface focus:outline-none",
|
|
458
520
|
"origin-[var(--transform-origin)] transition-[opacity,transform] duration-200 ease-emphasized",
|
|
459
|
-
|
|
460
|
-
"
|
|
461
|
-
|
|
521
|
+
// Icon present → center the headline + supporting text (M3 hero icon).
|
|
522
|
+
"has-[[data-slot=dialog-icon]]:text-center"
|
|
523
|
+
],
|
|
524
|
+
// Fullscreen header row: leading close icon + title (grows, but shrinks +
|
|
525
|
+
// ellipsizes instead of pushing the trailing action off-screen) + action.
|
|
526
|
+
header: [
|
|
527
|
+
"flex items-center gap-2 px-2 h-14 shrink-0",
|
|
528
|
+
"[&>*:nth-child(2)]:grow [&>*:nth-child(2)]:min-w-0 [&>*:nth-child(2)]:overflow-hidden [&>*:nth-child(2)]:text-ellipsis [&>*:nth-child(2)]:whitespace-nowrap"
|
|
462
529
|
],
|
|
530
|
+
// Centered 24dp hero icon in the secondary color.
|
|
531
|
+
icon: ["inline-flex self-center text-secondary"],
|
|
463
532
|
title: ["text-headline-small text-on-surface m-0"],
|
|
464
533
|
description: ["text-body-medium text-on-surface-variant m-0"],
|
|
534
|
+
// 1dp outline-variant rule under the fullscreen header.
|
|
535
|
+
divider: ["h-px w-full bg-outline-variant shrink-0 m-0 border-0"],
|
|
536
|
+
// End-aligned action row: 8dp between buttons; the popup gap (16dp) + mt-2
|
|
537
|
+
// (8dp) totals the 24dp M3 spacing above the actions.
|
|
538
|
+
actions: ["flex justify-end items-center gap-2 mt-2"],
|
|
465
539
|
close: ["inline-flex"]
|
|
540
|
+
},
|
|
541
|
+
variants: {
|
|
542
|
+
fullscreen: {
|
|
543
|
+
false: {
|
|
544
|
+
popup: [
|
|
545
|
+
"left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2",
|
|
546
|
+
"w-[min(560px,calc(100vw-48px))] min-w-[280px] max-h-[calc(100vh-48px)]",
|
|
547
|
+
"p-6 gap-4 rounded-extra-large bg-surface-container-high shadow-level3",
|
|
548
|
+
"data-[starting-style]:opacity-0 data-[starting-style]:scale-95",
|
|
549
|
+
"data-[ending-style]:opacity-0 data-[ending-style]:scale-95"
|
|
550
|
+
]
|
|
551
|
+
},
|
|
552
|
+
true: {
|
|
553
|
+
popup: [
|
|
554
|
+
"inset-0 w-screen h-screen max-w-none rounded-none bg-surface",
|
|
555
|
+
"data-[starting-style]:opacity-0 data-[ending-style]:opacity-0"
|
|
556
|
+
]
|
|
557
|
+
}
|
|
558
|
+
}
|
|
559
|
+
},
|
|
560
|
+
defaultVariants: {
|
|
561
|
+
fullscreen: false
|
|
466
562
|
}
|
|
467
563
|
});
|
|
468
564
|
var d = dialogTv();
|
|
469
565
|
var Dialog = createDialog({
|
|
470
566
|
backdrop: d.backdrop(),
|
|
471
|
-
popup:
|
|
567
|
+
popup: ({ fullscreen }) => dialogTv({ fullscreen }).popup(),
|
|
568
|
+
header: d.header(),
|
|
569
|
+
icon: d.icon(),
|
|
472
570
|
title: d.title(),
|
|
473
571
|
description: d.description(),
|
|
572
|
+
divider: d.divider(),
|
|
573
|
+
actions: d.actions(),
|
|
474
574
|
close: d.close()
|
|
475
575
|
});
|
|
476
576
|
var menuTv = tv7({
|
|
@@ -621,7 +721,7 @@ var sliderTv = tv7({
|
|
|
621
721
|
"group-data-[disabled]:bg-on-surface/[0.38]"
|
|
622
722
|
],
|
|
623
723
|
thumb: [
|
|
624
|
-
"relative size-5 rounded-full bg-primary outline-none",
|
|
724
|
+
"group/thumb relative size-5 rounded-full bg-primary outline-none",
|
|
625
725
|
'before:content-[""] before:absolute before:left-1/2 before:top-1/2 before:-translate-x-1/2 before:-translate-y-1/2',
|
|
626
726
|
"before:size-10 before:rounded-full before:bg-primary before:opacity-0 before:transition-opacity before:duration-100",
|
|
627
727
|
"hover:before:opacity-[var(--md-sys-state-hover)]",
|
|
@@ -629,7 +729,17 @@ var sliderTv = tv7({
|
|
|
629
729
|
"data-[dragging]:before:opacity-[var(--md-sys-state-dragged)]",
|
|
630
730
|
"group-data-[disabled]:bg-on-surface/[0.38]"
|
|
631
731
|
],
|
|
632
|
-
value: "text-label-large text-on-surface-variant tabular-nums"
|
|
732
|
+
value: "text-label-large text-on-surface-variant tabular-nums",
|
|
733
|
+
tickList: "pointer-events-none absolute inset-0",
|
|
734
|
+
tick: [
|
|
735
|
+
"absolute size-1 -translate-x-1/2 -translate-y-1/2 rounded-full bg-on-surface-variant",
|
|
736
|
+
"data-[active]:bg-on-primary/[0.38]"
|
|
737
|
+
],
|
|
738
|
+
valueLabel: [
|
|
739
|
+
"pointer-events-none absolute bottom-full left-1/2 mb-2 -translate-x-1/2 whitespace-nowrap rounded px-2 py-0.5",
|
|
740
|
+
"bg-primary text-label-large text-on-primary tabular-nums opacity-0",
|
|
741
|
+
"data-[visible]:opacity-100"
|
|
742
|
+
]
|
|
633
743
|
}
|
|
634
744
|
});
|
|
635
745
|
var s2 = sliderTv();
|
|
@@ -639,7 +749,10 @@ var Slider = createSlider({
|
|
|
639
749
|
track: s2.track(),
|
|
640
750
|
indicator: s2.indicator(),
|
|
641
751
|
thumb: s2.thumb(),
|
|
642
|
-
value: s2.value()
|
|
752
|
+
value: s2.value(),
|
|
753
|
+
tickList: s2.tickList(),
|
|
754
|
+
tick: s2.tick(),
|
|
755
|
+
valueLabel: s2.valueLabel()
|
|
643
756
|
});
|
|
644
757
|
var selectTv = tv7({
|
|
645
758
|
slots: {
|
|
@@ -940,8 +1053,29 @@ var dividerTv = tv({
|
|
|
940
1053
|
var Divider = createDivider(({ inset, orientation }) => dividerTv({ inset, orientation }));
|
|
941
1054
|
var linearTv = tv({
|
|
942
1055
|
slots: {
|
|
943
|
-
|
|
944
|
-
|
|
1056
|
+
// The track-stop dot (4dp, primary) sits at the inline-end via `after:`. It's
|
|
1057
|
+
// a determinate-only M3 concept, so it's hidden while indeterminate. Logical
|
|
1058
|
+
// `end-0` mirrors with the indicator under `dir="rtl"`.
|
|
1059
|
+
root: [
|
|
1060
|
+
"group relative block w-full h-1 overflow-hidden rounded-full",
|
|
1061
|
+
"after:content-[''] after:absolute after:end-0 after:top-1/2 after:-translate-y-1/2",
|
|
1062
|
+
"after:size-1 after:rounded-full after:bg-primary",
|
|
1063
|
+
// Self variant (not `group-data-*`): the dot is on the root element itself,
|
|
1064
|
+
// which carries `data-indeterminate` — it isn't a descendant of `.group`.
|
|
1065
|
+
"data-[indeterminate]:after:hidden"
|
|
1066
|
+
],
|
|
1067
|
+
// Positioning container only; the inactive track is the `before:` pseudo so a
|
|
1068
|
+
// 4dp gap separates it from the active indicator (`--m3-progress` + 4px). The
|
|
1069
|
+
// gap uses logical inline insets so it tracks the indicator (which Base UI
|
|
1070
|
+
// anchors at inline-start) under `dir="rtl"`. Indeterminate has no fraction,
|
|
1071
|
+
// so the inactive track spans the full width.
|
|
1072
|
+
track: [
|
|
1073
|
+
"absolute inset-0",
|
|
1074
|
+
"before:content-[''] before:absolute before:inset-y-0 before:end-0",
|
|
1075
|
+
"before:[inset-inline-start:calc(var(--m3-progress,0%)+4px)]",
|
|
1076
|
+
"before:bg-surface-container-highest before:rounded-full",
|
|
1077
|
+
"group-data-[indeterminate]:before:start-0"
|
|
1078
|
+
],
|
|
945
1079
|
indicator: [
|
|
946
1080
|
"absolute inset-y-0 left-0 bg-primary rounded-full",
|
|
947
1081
|
"transition-[width] duration-200 ease-standard",
|
|
@@ -1000,7 +1134,14 @@ var listTv = tv7({
|
|
|
1000
1134
|
"group relative flex w-full items-center gap-4 box-border px-4 text-left",
|
|
1001
1135
|
"bg-transparent border-0 text-on-surface no-underline"
|
|
1002
1136
|
],
|
|
1003
|
-
leading:
|
|
1137
|
+
leading: [
|
|
1138
|
+
"flex items-center justify-center shrink-0 overflow-hidden text-on-surface-variant",
|
|
1139
|
+
"[&_svg]:size-6 [&_img]:size-full [&_img]:object-cover",
|
|
1140
|
+
// M3 leading column widths, keyed on the factory's data-leading attribute.
|
|
1141
|
+
"data-[leading=avatar]:size-10 data-[leading=avatar]:rounded-full",
|
|
1142
|
+
"data-[leading=image]:size-14",
|
|
1143
|
+
"data-[leading=video]:w-25 data-[leading=video]:h-14"
|
|
1144
|
+
],
|
|
1004
1145
|
content: "flex flex-col min-w-0 flex-1",
|
|
1005
1146
|
headline: "text-body-large text-on-surface group-data-[disabled]:text-on-surface/38",
|
|
1006
1147
|
supporting: "text-body-medium text-on-surface-variant group-data-[disabled]:text-on-surface/38",
|
|
@@ -1053,10 +1194,15 @@ var snackbarTv = tv({
|
|
|
1053
1194
|
slots: {
|
|
1054
1195
|
viewport: [
|
|
1055
1196
|
"fixed bottom-4 left-1/2 -translate-x-1/2 z-50",
|
|
1056
|
-
|
|
1197
|
+
// M3 container width: cap at 672dp, clamp to the viewport on small screens.
|
|
1198
|
+
// Center items so content-following (w-fit) snackbars stay under the anchor.
|
|
1199
|
+
"flex flex-col items-center gap-2 w-[calc(100vw-32px)] max-w-[672px]"
|
|
1057
1200
|
],
|
|
1058
1201
|
root: [
|
|
1059
1202
|
"relative flex items-center gap-2 min-h-12 box-border pl-4 pr-2 py-2",
|
|
1203
|
+
// M3 container width follows content within min 344dp / max 672dp. The
|
|
1204
|
+
// min is clamped by 100% so it never overflows a narrower viewport.
|
|
1205
|
+
"w-fit min-w-[min(344px,100%)] max-w-[672px]",
|
|
1060
1206
|
"rounded-extra-small bg-inverse-surface text-inverse-on-surface shadow-level3",
|
|
1061
1207
|
"text-body-medium",
|
|
1062
1208
|
"transition-[opacity,transform] duration-200 ease-emphasized",
|
|
@@ -1102,7 +1248,14 @@ var itemTv = tv7({
|
|
|
1102
1248
|
"relative flex w-full items-center gap-4 box-border px-4 py-3 min-h-14 text-left",
|
|
1103
1249
|
"bg-transparent text-on-surface"
|
|
1104
1250
|
],
|
|
1105
|
-
leading:
|
|
1251
|
+
leading: [
|
|
1252
|
+
"flex items-center justify-center shrink-0 overflow-hidden text-on-surface-variant",
|
|
1253
|
+
"[&_svg]:size-6 [&_img]:size-full [&_img]:object-cover",
|
|
1254
|
+
// M3 leading column widths, keyed on the factory's data-leading attribute.
|
|
1255
|
+
"data-[leading=avatar]:size-10 data-[leading=avatar]:rounded-full",
|
|
1256
|
+
"data-[leading=image]:size-14",
|
|
1257
|
+
"data-[leading=video]:w-25 data-[leading=video]:h-14"
|
|
1258
|
+
],
|
|
1106
1259
|
content: "flex flex-col min-w-0 flex-1",
|
|
1107
1260
|
overline: "text-label-small text-on-surface-variant",
|
|
1108
1261
|
headline: "text-body-large text-on-surface",
|
|
@@ -1826,6 +1979,6 @@ var Carousel = createCarousel((variant) => {
|
|
|
1826
1979
|
return { root: s14.root(), item: s14.item() };
|
|
1827
1980
|
});
|
|
1828
1981
|
|
|
1829
|
-
export { Badge, BottomAppBar, BottomSheet, Button, ButtonGroup, Card, Carousel, Checkbox, Chip, DatePicker, Dialog, Divider, Fab, FabMenu, IconButton, Item, List, LoadingIndicator, Menu, NavigationBar, NavigationDrawer, NavigationRail, Progress, Radio, RadioGroup, Search, SegmentedButton, Select, SideSheet, Slider, Snackbar, SplitButton, Switch, Tabs, TextField, TimePicker, Toolbar, Tooltip, TopAppBar, badgeTv, bottomAppBarTv, bottomSheetTv, button, buttonGroup, cardTv, carouselTv, checkboxTv, chipTv, circularTv, datePickerTv, dialogTv, dividerTv, fabMenuTv, fabTv, iconButton, itemTv, linearTv, listTv, loadingIndicatorTv, menuTv, navigationBarTv, navigationDrawerTv, navigationRailTv, radioTv, searchTv, segmentedButtonTv, selectTv, sideSheetTv, sliderTv, snackbarTv, splitButtonTv, switchTv, tabsTv, textFieldTv, timePickerTv, toolbarTv, tooltipTv, topAppBarTv };
|
|
1982
|
+
export { Badge, BottomAppBar, BottomSheet, Button, ButtonGroup, Card, Carousel, Checkbox, Chip, DatePicker, Dialog, Divider, Fab, FabMenu, IconButton, Item, List, LoadingIndicator, Menu, NavigationBar, NavigationDrawer, NavigationRail, Progress, Radio, RadioGroup, RichTooltip, Search, SegmentedButton, Select, SideSheet, Slider, Snackbar, SplitButton, Switch, Tabs, TextField, TimePicker, Toolbar, Tooltip, TopAppBar, badgeTv, bottomAppBarTv, bottomSheetTv, button, buttonGroup, cardTv, carouselTv, checkboxTv, chipTv, circularTv, datePickerTv, dialogTv, dividerTv, fabMenuTv, fabTv, iconButton, itemTv, linearTv, listTv, loadingIndicatorTv, menuTv, navigationBarTv, navigationDrawerTv, navigationRailTv, radioTv, richTooltipTv, searchTv, segmentedButtonTv, selectTv, sideSheetTv, sliderTv, snackbarTv, splitButtonTv, switchTv, tabsTv, textFieldTv, timePickerTv, toolbarTv, tooltipTv, topAppBarTv };
|
|
1830
1983
|
//# sourceMappingURL=index.js.map
|
|
1831
1984
|
//# sourceMappingURL=index.js.map
|