@tinybigui/react 0.23.0 → 0.24.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/README.md +8 -8
- package/dist/index.cjs +397 -266
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +397 -93
- package/dist/index.d.ts +397 -93
- package/dist/index.js +382 -266
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -5,11 +5,11 @@ export { argbFromHex, hexFromArgb } from '@material/material-color-utilities';
|
|
|
5
5
|
import React, { forwardRef, useRef, createContext, useState, useCallback, useId, useMemo, useEffect, useContext, useLayoutEffect, Children, isValidElement, cloneElement } from 'react';
|
|
6
6
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
7
7
|
import { cva } from 'class-variance-authority';
|
|
8
|
-
import { useButton, useHover, useFocusRing, mergeProps as mergeProps$1, useTextField, useCheckbox, VisuallyHidden, useSwitch, useRadioGroup, useRadio, useTabList, useTab, useTabPanel, FocusScope,
|
|
8
|
+
import { useButton, useHover, useFocusRing, mergeProps as mergeProps$1, useTextField, useCheckbox, VisuallyHidden, useSwitch, useRadioGroup, useRadio, useTabList, useTab, useTabPanel, FocusScope, useLink, useSeparator, useProgressBar, useToggleButton, useListBox, useOption, useSearchField, usePreventScroll, useOverlay, useSlider, useDatePicker, useDialog, useLocale, useDateField, useSliderThumb, useRangeCalendar, useCalendar, usePopover, DismissButton, usePress, useDateSegment, useCalendarGrid, useCalendarCell, useTooltipTrigger, useTooltip, useOverlayPosition } from 'react-aria';
|
|
9
9
|
import { mergeProps, filterDOMProps } from '@react-aria/utils';
|
|
10
10
|
import { useToggleState, useRadioGroupState, useTabListState, Item, useOverlayTriggerState, useListState, useSearchFieldState, useMenuTriggerState, useSliderState, useDatePickerState, useDateFieldState, useRangeCalendarState, useCalendarState, useTooltipTriggerState } from 'react-stately';
|
|
11
|
-
import { MenuItem as MenuItem$1, Menu as Menu$1, MenuTrigger as MenuTrigger$1, Popover, MenuSection as MenuSection$1, Separator, Header, useSlottedContext, ButtonContext } from 'react-aria-components';
|
|
12
11
|
import { createPortal } from 'react-dom';
|
|
12
|
+
import { MenuItem as MenuItem$1, Menu as Menu$1, MenuTrigger as MenuTrigger$1, Popover, MenuSection as MenuSection$1, Separator, Header, useSlottedContext, ButtonContext } from 'react-aria-components';
|
|
13
13
|
import { createCalendar, getWeeksInMonth, isSameDay, today, getLocalTimeZone } from '@internationalized/date';
|
|
14
14
|
|
|
15
15
|
// src/utils/cn.ts
|
|
@@ -4414,7 +4414,51 @@ var NavigationBarItem = forwardRef(
|
|
|
4414
4414
|
);
|
|
4415
4415
|
NavigationBarItem.displayName = "NavigationBarItem";
|
|
4416
4416
|
var DrawerContext = createContext(null);
|
|
4417
|
-
var
|
|
4417
|
+
var ModalDrawerPanel = ({
|
|
4418
|
+
ariaLabel,
|
|
4419
|
+
onClose,
|
|
4420
|
+
className,
|
|
4421
|
+
animationState,
|
|
4422
|
+
getAnimationClassName,
|
|
4423
|
+
onTransitionEnd,
|
|
4424
|
+
forwardedRef,
|
|
4425
|
+
children
|
|
4426
|
+
}) => {
|
|
4427
|
+
const panelRef = useRef(null);
|
|
4428
|
+
usePreventScroll();
|
|
4429
|
+
const { dialogProps } = useDialog(
|
|
4430
|
+
{ "aria-label": ariaLabel },
|
|
4431
|
+
panelRef
|
|
4432
|
+
);
|
|
4433
|
+
const { overlayProps } = useOverlay(
|
|
4434
|
+
{ isOpen: true, onClose, isDismissable: true, shouldCloseOnBlur: false },
|
|
4435
|
+
panelRef
|
|
4436
|
+
);
|
|
4437
|
+
const setRef = useCallback(
|
|
4438
|
+
(node) => {
|
|
4439
|
+
panelRef.current = node;
|
|
4440
|
+
if (typeof forwardedRef === "function") {
|
|
4441
|
+
forwardedRef(node);
|
|
4442
|
+
} else if (forwardedRef !== null && forwardedRef !== void 0) {
|
|
4443
|
+
forwardedRef.current = node;
|
|
4444
|
+
}
|
|
4445
|
+
},
|
|
4446
|
+
[forwardedRef]
|
|
4447
|
+
);
|
|
4448
|
+
return /* @__PURE__ */ jsx(
|
|
4449
|
+
"div",
|
|
4450
|
+
{
|
|
4451
|
+
...mergeProps(overlayProps, dialogProps),
|
|
4452
|
+
ref: setRef,
|
|
4453
|
+
"aria-modal": "true",
|
|
4454
|
+
className: cn(className, getAnimationClassName?.(animationState)),
|
|
4455
|
+
"data-animation-state": animationState,
|
|
4456
|
+
onTransitionEnd,
|
|
4457
|
+
children
|
|
4458
|
+
}
|
|
4459
|
+
);
|
|
4460
|
+
};
|
|
4461
|
+
ModalDrawerPanel.displayName = "ModalDrawerPanel";
|
|
4418
4462
|
var HeadlessDrawer = forwardRef(
|
|
4419
4463
|
({
|
|
4420
4464
|
variant = "standard",
|
|
@@ -4425,8 +4469,9 @@ var HeadlessDrawer = forwardRef(
|
|
|
4425
4469
|
children,
|
|
4426
4470
|
className,
|
|
4427
4471
|
scrimClassName,
|
|
4428
|
-
|
|
4429
|
-
|
|
4472
|
+
getAnimationClassName,
|
|
4473
|
+
getScrimAnimationClassName,
|
|
4474
|
+
disableRipple = false
|
|
4430
4475
|
}, ref) => {
|
|
4431
4476
|
const state = useOverlayTriggerState({
|
|
4432
4477
|
...open !== void 0 ? { isOpen: open } : {},
|
|
@@ -4437,77 +4482,99 @@ var HeadlessDrawer = forwardRef(
|
|
|
4437
4482
|
const close = useCallback(() => {
|
|
4438
4483
|
state.close();
|
|
4439
4484
|
}, [state]);
|
|
4485
|
+
const [animationState, setAnimationState] = useState("exited");
|
|
4486
|
+
const closedRef = useRef(false);
|
|
4487
|
+
const exitFallbackRef = useRef(null);
|
|
4488
|
+
useEffect(() => {
|
|
4489
|
+
if (!isOpen) return;
|
|
4490
|
+
closedRef.current = false;
|
|
4491
|
+
setAnimationState("entering");
|
|
4492
|
+
const id = setTimeout(() => {
|
|
4493
|
+
setAnimationState("visible");
|
|
4494
|
+
}, 0);
|
|
4495
|
+
return () => clearTimeout(id);
|
|
4496
|
+
}, [isOpen]);
|
|
4497
|
+
useEffect(() => {
|
|
4498
|
+
if (isOpen) return;
|
|
4499
|
+
if (animationState === "exited" || animationState === "entering") return;
|
|
4500
|
+
if (animationState === "visible") {
|
|
4501
|
+
setAnimationState("exiting");
|
|
4502
|
+
exitFallbackRef.current = setTimeout(() => {
|
|
4503
|
+
if (!closedRef.current) {
|
|
4504
|
+
closedRef.current = true;
|
|
4505
|
+
setAnimationState("exited");
|
|
4506
|
+
}
|
|
4507
|
+
}, 500);
|
|
4508
|
+
}
|
|
4509
|
+
}, [isOpen, animationState]);
|
|
4510
|
+
useEffect(
|
|
4511
|
+
() => () => {
|
|
4512
|
+
if (exitFallbackRef.current !== null) {
|
|
4513
|
+
clearTimeout(exitFallbackRef.current);
|
|
4514
|
+
}
|
|
4515
|
+
},
|
|
4516
|
+
[]
|
|
4517
|
+
);
|
|
4518
|
+
const handleTransitionEnd = useCallback(() => {
|
|
4519
|
+
if (animationState === "exiting" && !closedRef.current) {
|
|
4520
|
+
if (exitFallbackRef.current !== null) {
|
|
4521
|
+
clearTimeout(exitFallbackRef.current);
|
|
4522
|
+
exitFallbackRef.current = null;
|
|
4523
|
+
}
|
|
4524
|
+
closedRef.current = true;
|
|
4525
|
+
setAnimationState("exited");
|
|
4526
|
+
}
|
|
4527
|
+
}, [animationState]);
|
|
4440
4528
|
const contextValue = {
|
|
4441
4529
|
isOpen,
|
|
4442
4530
|
close,
|
|
4443
|
-
disableRipple
|
|
4444
|
-
iconOnly
|
|
4531
|
+
disableRipple
|
|
4445
4532
|
};
|
|
4446
|
-
if (variant === "
|
|
4447
|
-
return /* @__PURE__ */ jsx(DrawerContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx(
|
|
4448
|
-
|
|
4449
|
-
|
|
4450
|
-
|
|
4451
|
-
|
|
4452
|
-
|
|
4453
|
-
|
|
4454
|
-
|
|
4455
|
-
|
|
4456
|
-
|
|
4457
|
-
/* @__PURE__ */ jsx(FocusScope, { contain: true, restoreFocus: true, autoFocus: true, children: /* @__PURE__ */ jsx(
|
|
4458
|
-
ModalDrawerPanel,
|
|
4459
|
-
{
|
|
4460
|
-
ariaLabel,
|
|
4461
|
-
onClose: () => state.close(),
|
|
4462
|
-
className,
|
|
4463
|
-
children
|
|
4464
|
-
}
|
|
4465
|
-
) })
|
|
4466
|
-
] }) }) });
|
|
4533
|
+
if (variant === "standard") {
|
|
4534
|
+
return /* @__PURE__ */ jsx(DrawerContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx(
|
|
4535
|
+
"nav",
|
|
4536
|
+
{
|
|
4537
|
+
ref,
|
|
4538
|
+
role: "navigation",
|
|
4539
|
+
"aria-label": ariaLabel,
|
|
4540
|
+
className,
|
|
4541
|
+
children
|
|
4542
|
+
}
|
|
4543
|
+
) });
|
|
4467
4544
|
}
|
|
4468
|
-
|
|
4469
|
-
|
|
4470
|
-
|
|
4471
|
-
|
|
4472
|
-
|
|
4473
|
-
|
|
4474
|
-
|
|
4475
|
-
|
|
4476
|
-
|
|
4477
|
-
|
|
4545
|
+
if (!isOpen && animationState === "exited") {
|
|
4546
|
+
return null;
|
|
4547
|
+
}
|
|
4548
|
+
if (typeof document === "undefined") return null;
|
|
4549
|
+
const content = /* @__PURE__ */ jsx(DrawerContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxs(FocusScope, { contain: true, restoreFocus: true, autoFocus: true, children: [
|
|
4550
|
+
/* @__PURE__ */ jsx(
|
|
4551
|
+
"div",
|
|
4552
|
+
{
|
|
4553
|
+
"data-testid": "drawer-scrim",
|
|
4554
|
+
className: cn(scrimClassName, getScrimAnimationClassName?.(animationState)),
|
|
4555
|
+
"data-animation-state": animationState,
|
|
4556
|
+
onClick: close,
|
|
4557
|
+
"aria-hidden": "true"
|
|
4558
|
+
}
|
|
4559
|
+
),
|
|
4560
|
+
/* @__PURE__ */ jsx(
|
|
4561
|
+
ModalDrawerPanel,
|
|
4562
|
+
{
|
|
4563
|
+
ariaLabel,
|
|
4564
|
+
onClose: close,
|
|
4565
|
+
className,
|
|
4566
|
+
animationState,
|
|
4567
|
+
getAnimationClassName,
|
|
4568
|
+
onTransitionEnd: handleTransitionEnd,
|
|
4569
|
+
forwardedRef: ref,
|
|
4570
|
+
children
|
|
4571
|
+
}
|
|
4572
|
+
)
|
|
4573
|
+
] }) });
|
|
4574
|
+
return createPortal(content, document.body);
|
|
4478
4575
|
}
|
|
4479
4576
|
);
|
|
4480
4577
|
HeadlessDrawer.displayName = "HeadlessDrawer";
|
|
4481
|
-
var ModalDrawerPanel = ({
|
|
4482
|
-
ariaLabel,
|
|
4483
|
-
onClose,
|
|
4484
|
-
className,
|
|
4485
|
-
children
|
|
4486
|
-
}) => {
|
|
4487
|
-
const panelRef = useRef(null);
|
|
4488
|
-
usePreventScroll();
|
|
4489
|
-
const { dialogProps } = useDialog({ "aria-label": ariaLabel }, panelRef);
|
|
4490
|
-
const { overlayProps } = useOverlay(
|
|
4491
|
-
{
|
|
4492
|
-
isOpen: true,
|
|
4493
|
-
onClose,
|
|
4494
|
-
isDismissable: true,
|
|
4495
|
-
shouldCloseOnBlur: false
|
|
4496
|
-
},
|
|
4497
|
-
panelRef
|
|
4498
|
-
);
|
|
4499
|
-
return /* @__PURE__ */ jsx(
|
|
4500
|
-
"div",
|
|
4501
|
-
{
|
|
4502
|
-
...mergeProps(overlayProps, dialogProps),
|
|
4503
|
-
ref: panelRef,
|
|
4504
|
-
className,
|
|
4505
|
-
"aria-modal": "true",
|
|
4506
|
-
children
|
|
4507
|
-
}
|
|
4508
|
-
);
|
|
4509
|
-
};
|
|
4510
|
-
ModalDrawerPanel.displayName = "ModalDrawerPanel";
|
|
4511
4578
|
var HeadlessDrawerItem = forwardRef(
|
|
4512
4579
|
({
|
|
4513
4580
|
href,
|
|
@@ -4525,7 +4592,6 @@ var HeadlessDrawerItem = forwardRef(
|
|
|
4525
4592
|
...restProps
|
|
4526
4593
|
}, forwardedRef) => {
|
|
4527
4594
|
const internalRef = useRef(null);
|
|
4528
|
-
const { isFocusVisible, focusProps } = useFocusRing();
|
|
4529
4595
|
if (href) {
|
|
4530
4596
|
const linkRef = forwardedRef ?? internalRef;
|
|
4531
4597
|
const { linkProps } = useLink(
|
|
@@ -4539,14 +4605,12 @@ var HeadlessDrawerItem = forwardRef(
|
|
|
4539
4605
|
return /* @__PURE__ */ jsx(
|
|
4540
4606
|
"a",
|
|
4541
4607
|
{
|
|
4542
|
-
...mergeProps(linkProps,
|
|
4608
|
+
...mergeProps(linkProps, { onMouseDown }),
|
|
4543
4609
|
ref: linkRef,
|
|
4544
4610
|
href,
|
|
4545
4611
|
className,
|
|
4546
4612
|
title,
|
|
4547
4613
|
"aria-current": isActive ? "page" : void 0,
|
|
4548
|
-
"data-focus-visible": isFocusVisible || void 0,
|
|
4549
|
-
"data-active": isActive || void 0,
|
|
4550
4614
|
children
|
|
4551
4615
|
}
|
|
4552
4616
|
);
|
|
@@ -4569,13 +4633,11 @@ var HeadlessDrawerItem = forwardRef(
|
|
|
4569
4633
|
"button",
|
|
4570
4634
|
{
|
|
4571
4635
|
type: "button",
|
|
4572
|
-
...mergeProps(buttonProps,
|
|
4636
|
+
...mergeProps(buttonProps, { onMouseDown }),
|
|
4573
4637
|
ref: buttonRef,
|
|
4574
4638
|
className,
|
|
4575
4639
|
title,
|
|
4576
4640
|
"aria-current": isActive ? "page" : void 0,
|
|
4577
|
-
"data-focus-visible": isFocusVisible || void 0,
|
|
4578
|
-
"data-active": isActive || void 0,
|
|
4579
4641
|
children
|
|
4580
4642
|
}
|
|
4581
4643
|
);
|
|
@@ -4670,120 +4732,195 @@ var drawerVariants = cva(
|
|
|
4670
4732
|
// Layout
|
|
4671
4733
|
"fixed top-0 left-0 h-full",
|
|
4672
4734
|
"flex flex-col overflow-y-auto",
|
|
4673
|
-
//
|
|
4735
|
+
// Width — 360dp per MD3 spec
|
|
4736
|
+
"w-drawer",
|
|
4737
|
+
// Stacking
|
|
4674
4738
|
"z-50",
|
|
4675
|
-
|
|
4676
|
-
|
|
4677
|
-
"transition-transform duration-medium4 ease-emphasized-decelerate",
|
|
4739
|
+
// Container padding — 12dp per MD3 nav drawer spec
|
|
4740
|
+
"px-3 py-3",
|
|
4678
4741
|
// Focus outline removal (focus management handled by FocusScope / React Aria)
|
|
4679
|
-
"outline-none"
|
|
4680
|
-
// Padding for content spacing
|
|
4681
|
-
"px-3"
|
|
4742
|
+
"outline-none"
|
|
4682
4743
|
],
|
|
4683
4744
|
{
|
|
4684
4745
|
variants: {
|
|
4685
4746
|
/**
|
|
4686
|
-
* Structural variant — drives
|
|
4687
|
-
*
|
|
4688
|
-
* - `
|
|
4747
|
+
* Structural variant — drives shape and elevation.
|
|
4748
|
+
*
|
|
4749
|
+
* - `standard`: flush left panel, square trailing edge, flat surface.
|
|
4750
|
+
* - `modal`: overlay dialog, 16dp trailing corner, shadow-elevation-1.
|
|
4689
4751
|
*/
|
|
4690
4752
|
variant: {
|
|
4691
|
-
standard: ["bg-surface-container-low"],
|
|
4692
|
-
modal: ["bg-surface-container", "shadow-elevation-1"]
|
|
4753
|
+
standard: ["bg-surface-container-low", "rounded-none"],
|
|
4754
|
+
modal: ["bg-surface-container-low", "rounded-r-lg", "shadow-elevation-1"]
|
|
4693
4755
|
},
|
|
4694
4756
|
/**
|
|
4695
|
-
* Open/closed state — drives translation.
|
|
4696
|
-
*
|
|
4697
|
-
*
|
|
4757
|
+
* Open/closed state — drives translation for the STANDARD variant only.
|
|
4758
|
+
*
|
|
4759
|
+
* Standard slide: spatial on-screen property → spring-standard-default-spatial.
|
|
4760
|
+
* Modal enter/exit is handled externally via drawerAnimationVariants + portal gate.
|
|
4761
|
+
*
|
|
4762
|
+
* - `true`: translate-x-0 (visible)
|
|
4763
|
+
* - `false`: -translate-x-full (off-screen to the left)
|
|
4698
4764
|
*/
|
|
4699
4765
|
open: {
|
|
4700
|
-
true: [
|
|
4701
|
-
|
|
4702
|
-
|
|
4703
|
-
|
|
4704
|
-
|
|
4705
|
-
|
|
4706
|
-
|
|
4707
|
-
|
|
4708
|
-
|
|
4709
|
-
|
|
4710
|
-
|
|
4766
|
+
true: [
|
|
4767
|
+
"translate-x-0",
|
|
4768
|
+
"transition-transform",
|
|
4769
|
+
"duration-spring-standard-default-spatial",
|
|
4770
|
+
"ease-spring-standard-default-spatial"
|
|
4771
|
+
],
|
|
4772
|
+
false: [
|
|
4773
|
+
"-translate-x-full",
|
|
4774
|
+
"transition-transform",
|
|
4775
|
+
"duration-spring-standard-default-spatial",
|
|
4776
|
+
"ease-spring-standard-default-spatial"
|
|
4777
|
+
]
|
|
4711
4778
|
}
|
|
4712
4779
|
},
|
|
4713
4780
|
defaultVariants: {
|
|
4714
4781
|
variant: "standard",
|
|
4715
|
-
open: false
|
|
4716
|
-
iconOnly: false
|
|
4782
|
+
open: false
|
|
4717
4783
|
}
|
|
4718
4784
|
}
|
|
4719
4785
|
);
|
|
4720
|
-
var
|
|
4786
|
+
var drawerAnimationVariants = cva("", {
|
|
4787
|
+
variants: {
|
|
4788
|
+
animationState: {
|
|
4789
|
+
// Mount frame: invisible until animation starts
|
|
4790
|
+
entering: ["opacity-0"],
|
|
4791
|
+
// Entry animation: slide in from the left edge
|
|
4792
|
+
visible: ["animate-md-slide-in-left"],
|
|
4793
|
+
// Exit animation: slide out to the left
|
|
4794
|
+
exiting: ["animate-md-slide-out-left"],
|
|
4795
|
+
// Portal gate removes element; classes below act as a safety net
|
|
4796
|
+
exited: ["opacity-0", "pointer-events-none"]
|
|
4797
|
+
}
|
|
4798
|
+
},
|
|
4799
|
+
defaultVariants: {
|
|
4800
|
+
animationState: "entering"
|
|
4801
|
+
}
|
|
4802
|
+
});
|
|
4803
|
+
var drawerScrimAnimationVariants = cva(
|
|
4721
4804
|
[
|
|
4722
|
-
|
|
4723
|
-
"
|
|
4724
|
-
"
|
|
4725
|
-
"rounded-full",
|
|
4726
|
-
// Typography
|
|
4727
|
-
"text-label-large",
|
|
4728
|
-
// Interaction
|
|
4729
|
-
"cursor-pointer select-none outline-none",
|
|
4730
|
-
// State layer pseudo-element (z-[1] above active indicator)
|
|
4731
|
-
"before:absolute before:inset-0 before:rounded-full before:z-[1]",
|
|
4732
|
-
"before:transition-opacity before:duration-short2 before:ease-standard",
|
|
4733
|
-
"before:opacity-0",
|
|
4734
|
-
// Hover and focus visible state layers
|
|
4735
|
-
"hover:before:opacity-8",
|
|
4736
|
-
"focus-visible:before:opacity-12",
|
|
4737
|
-
// Active pressed state
|
|
4738
|
-
"active:before:opacity-12",
|
|
4739
|
-
// Transition for color changes
|
|
4740
|
-
"transition-colors duration-short2 ease-standard"
|
|
4805
|
+
"transition-opacity",
|
|
4806
|
+
"duration-spring-standard-fast-effects",
|
|
4807
|
+
"ease-spring-standard-fast-effects"
|
|
4741
4808
|
],
|
|
4742
4809
|
{
|
|
4743
4810
|
variants: {
|
|
4744
|
-
|
|
4745
|
-
|
|
4746
|
-
|
|
4747
|
-
|
|
4748
|
-
|
|
4749
|
-
*/
|
|
4750
|
-
isActive: {
|
|
4751
|
-
true: [
|
|
4752
|
-
"text-on-secondary-container",
|
|
4753
|
-
"before:bg-on-secondary-container",
|
|
4754
|
-
// Active indicator — 336dp pill via after: pseudo
|
|
4755
|
-
"after:absolute after:inset-0 after:mx-auto after:max-w-[336px]",
|
|
4756
|
-
"after:rounded-full after:bg-secondary-container"
|
|
4757
|
-
],
|
|
4758
|
-
false: ["bg-transparent", "text-on-surface-variant", "before:bg-on-surface-variant"]
|
|
4759
|
-
},
|
|
4760
|
-
/**
|
|
4761
|
-
* Whether the item is disabled.
|
|
4762
|
-
* Applies `opacity-38` per MD3 disabled state spec.
|
|
4763
|
-
*/
|
|
4764
|
-
isDisabled: {
|
|
4765
|
-
true: ["opacity-38 cursor-not-allowed pointer-events-none"],
|
|
4766
|
-
false: []
|
|
4811
|
+
animationState: {
|
|
4812
|
+
entering: ["opacity-0"],
|
|
4813
|
+
visible: ["opacity-32"],
|
|
4814
|
+
exiting: ["opacity-0"],
|
|
4815
|
+
exited: ["opacity-0", "pointer-events-none"]
|
|
4767
4816
|
}
|
|
4768
4817
|
},
|
|
4769
4818
|
defaultVariants: {
|
|
4770
|
-
|
|
4771
|
-
isDisabled: false
|
|
4819
|
+
animationState: "entering"
|
|
4772
4820
|
}
|
|
4773
4821
|
}
|
|
4774
4822
|
);
|
|
4775
|
-
var
|
|
4823
|
+
var drawerItemVariants = cva([
|
|
4824
|
+
// Layout
|
|
4825
|
+
"relative flex w-full items-center",
|
|
4826
|
+
"h-14 pl-4 pr-6 gap-3",
|
|
4827
|
+
// Shape
|
|
4828
|
+
"rounded-full",
|
|
4829
|
+
// Typography — Label Large per MD3 spec (size via text-label-large, weight + tracking explicit)
|
|
4830
|
+
"text-label-large",
|
|
4831
|
+
"font-medium",
|
|
4832
|
+
"tracking-[0.1px]",
|
|
4833
|
+
// Interaction
|
|
4834
|
+
"cursor-pointer select-none outline-none",
|
|
4835
|
+
// Color transition (effects — no overshoot)
|
|
4836
|
+
"transition-colors duration-spring-standard-fast-effects ease-spring-standard-fast-effects",
|
|
4837
|
+
// Inactive content color (icon/label/badge inherit this via currentColor)
|
|
4838
|
+
"text-on-surface-variant",
|
|
4839
|
+
// Active content color — self-targeting data-[active]: (root is the group host)
|
|
4840
|
+
"data-[active]:text-on-secondary-container",
|
|
4841
|
+
// Disabled — self-targeting
|
|
4842
|
+
"data-[disabled]:pointer-events-none data-[disabled]:cursor-not-allowed",
|
|
4843
|
+
"data-[disabled]:text-on-surface/38"
|
|
4844
|
+
]);
|
|
4845
|
+
var drawerItemActiveIndicatorVariants = cva([
|
|
4846
|
+
"absolute inset-0 rounded-[inherit] pointer-events-none",
|
|
4847
|
+
"bg-secondary-container",
|
|
4848
|
+
// Effects transition for opacity — no overshoot
|
|
4849
|
+
"transition-opacity duration-spring-standard-fast-effects ease-spring-standard-fast-effects",
|
|
4850
|
+
// Hidden when inactive; shown when active
|
|
4851
|
+
"opacity-0",
|
|
4852
|
+
"group-data-[active]/draweritem:opacity-100",
|
|
4853
|
+
// z-0: below state layer (z-[1]) and content (z-10)
|
|
4854
|
+
"z-0"
|
|
4855
|
+
]);
|
|
4856
|
+
var drawerItemStateLayerVariants = cva([
|
|
4857
|
+
"absolute inset-0 rounded-[inherit] overflow-hidden pointer-events-none opacity-0",
|
|
4858
|
+
// Effects transition — opacity must NOT overshoot
|
|
4859
|
+
"transition-opacity duration-spring-standard-fast-effects ease-spring-standard-fast-effects",
|
|
4860
|
+
// Color: inactive uses on-surface-variant; active switches to on-secondary-container
|
|
4861
|
+
"bg-on-surface-variant",
|
|
4862
|
+
"group-data-[active]/draweritem:bg-on-secondary-container",
|
|
4863
|
+
// Hover: 8%
|
|
4864
|
+
"group-data-[hovered]/draweritem:opacity-8",
|
|
4865
|
+
// Focus-visible: 10% (MD3 focus state layer)
|
|
4866
|
+
"group-data-[focus-visible]/draweritem:opacity-10",
|
|
4867
|
+
// Pressed: 10%, doubled selector wins over hover at same cascade position
|
|
4868
|
+
"group-data-[pressed]/draweritem:group-data-[pressed]/draweritem:opacity-10",
|
|
4869
|
+
// No state layer when disabled
|
|
4870
|
+
"group-data-[disabled]/draweritem:hidden",
|
|
4871
|
+
// z-[1]: above active indicator (z-0), below focus ring and content
|
|
4872
|
+
"z-[1]"
|
|
4873
|
+
]);
|
|
4874
|
+
var drawerItemFocusRingVariants = cva([
|
|
4875
|
+
"pointer-events-none absolute inset-0 rounded-[inherit]",
|
|
4876
|
+
"outline outline-2 -outline-offset-2 outline-secondary",
|
|
4877
|
+
// Effects transition — opacity must not overshoot
|
|
4878
|
+
"transition-opacity duration-spring-standard-fast-effects ease-spring-standard-fast-effects",
|
|
4879
|
+
"opacity-0",
|
|
4880
|
+
"group-data-[focus-visible]/draweritem:opacity-100",
|
|
4881
|
+
// z-[2]: above state layer (z-[1]), below content (z-10)
|
|
4882
|
+
"z-[2]"
|
|
4883
|
+
]);
|
|
4884
|
+
var drawerItemIconVariants = cva([
|
|
4885
|
+
"relative z-10 flex shrink-0 items-center justify-center",
|
|
4886
|
+
"h-6 w-6",
|
|
4887
|
+
// Color and transition inherited via currentColor from root
|
|
4888
|
+
"transition-colors duration-spring-standard-fast-effects ease-spring-standard-fast-effects",
|
|
4889
|
+
// Explicit disabled override — mirrors Menu icon (on-surface/38)
|
|
4890
|
+
"group-data-[disabled]/draweritem:text-on-surface/38"
|
|
4891
|
+
]);
|
|
4892
|
+
var drawerItemLabelVariants = cva(["relative z-10 flex-1 min-w-0 truncate"]);
|
|
4893
|
+
var drawerItemBadgeVariants = cva([
|
|
4894
|
+
"relative z-10 shrink-0 ml-auto",
|
|
4895
|
+
"text-label-large",
|
|
4896
|
+
"font-medium",
|
|
4897
|
+
"tracking-[0.1px]",
|
|
4898
|
+
"transition-colors duration-spring-standard-fast-effects ease-spring-standard-fast-effects"
|
|
4899
|
+
]);
|
|
4900
|
+
var drawerHeadlineVariants = cva([
|
|
4901
|
+
"px-4 pt-4 pb-1",
|
|
4902
|
+
"text-title-small",
|
|
4903
|
+
"font-medium",
|
|
4904
|
+
"tracking-[0.1px]",
|
|
4905
|
+
"text-on-surface-variant",
|
|
4906
|
+
"select-none"
|
|
4907
|
+
]);
|
|
4908
|
+
var drawerScrimVariants = cva([
|
|
4776
4909
|
"fixed inset-0 z-40",
|
|
4777
|
-
|
|
4778
|
-
|
|
4910
|
+
// NOTE: opacity is intentionally absent here — it is controlled per
|
|
4911
|
+
// animation state by drawerScrimAnimationVariants (opacity-0 / opacity-32)
|
|
4912
|
+
// to avoid tailwind-merge collapsing the classes during cn() composition.
|
|
4913
|
+
"bg-scrim"
|
|
4779
4914
|
]);
|
|
4780
4915
|
var drawerSectionVariants = cva(["flex flex-col w-full"]);
|
|
4781
4916
|
var drawerSectionHeaderVariants = cva([
|
|
4782
4917
|
"px-4 pt-4 pb-2",
|
|
4783
|
-
"text-title-small
|
|
4918
|
+
"text-title-small",
|
|
4919
|
+
"font-medium",
|
|
4920
|
+
"tracking-[0.1px]",
|
|
4921
|
+
"text-on-surface-variant",
|
|
4784
4922
|
"select-none"
|
|
4785
4923
|
]);
|
|
4786
|
-
cva(["border-t border-outline-variant", "mx-4 my-2"]);
|
|
4787
4924
|
var DrawerSection = forwardRef(
|
|
4788
4925
|
({ header, children, showDivider = true, _isFirstSection = false, className }, ref) => {
|
|
4789
4926
|
const shouldShowDivider = showDivider && !_isFirstSection;
|
|
@@ -4805,19 +4942,19 @@ var Drawer = forwardRef(
|
|
|
4805
4942
|
children,
|
|
4806
4943
|
className,
|
|
4807
4944
|
disableRipple = false,
|
|
4808
|
-
iconOnly = false,
|
|
4809
4945
|
...restProps
|
|
4810
4946
|
}, ref) => {
|
|
4811
4947
|
const isOpen = open ?? defaultOpen;
|
|
4948
|
+
const reducedMotion = useReducedMotion();
|
|
4812
4949
|
const drawerPanelClass = cn(
|
|
4813
|
-
drawerVariants({
|
|
4814
|
-
|
|
4815
|
-
|
|
4816
|
-
iconOnly
|
|
4817
|
-
}),
|
|
4950
|
+
drawerVariants({ variant, open: isOpen }),
|
|
4951
|
+
// Suppress spring transition when user has requested reduced motion
|
|
4952
|
+
reducedMotion && "transition-none",
|
|
4818
4953
|
className
|
|
4819
4954
|
);
|
|
4820
|
-
const scrimClass =
|
|
4955
|
+
const scrimClass = drawerScrimVariants();
|
|
4956
|
+
const getAnimationClassName = reducedMotion ? (_state) => "" : (state) => drawerAnimationVariants({ animationState: state });
|
|
4957
|
+
const getScrimAnimationClassName = reducedMotion ? (_state) => "" : (state) => drawerScrimAnimationVariants({ animationState: state });
|
|
4821
4958
|
let foundFirstSection = false;
|
|
4822
4959
|
const processedChildren = React.Children.map(children, (child) => {
|
|
4823
4960
|
if (React.isValidElement(child) && child.type === DrawerSection) {
|
|
@@ -4830,7 +4967,7 @@ var Drawer = forwardRef(
|
|
|
4830
4967
|
}
|
|
4831
4968
|
return child;
|
|
4832
4969
|
});
|
|
4833
|
-
return /* @__PURE__ */ jsx(
|
|
4970
|
+
return /* @__PURE__ */ jsx(
|
|
4834
4971
|
HeadlessDrawer,
|
|
4835
4972
|
{
|
|
4836
4973
|
ref,
|
|
@@ -4841,153 +4978,99 @@ var Drawer = forwardRef(
|
|
|
4841
4978
|
"aria-label": ariaLabel,
|
|
4842
4979
|
className: drawerPanelClass,
|
|
4843
4980
|
scrimClassName: scrimClass,
|
|
4981
|
+
getAnimationClassName,
|
|
4982
|
+
getScrimAnimationClassName,
|
|
4844
4983
|
disableRipple,
|
|
4845
|
-
iconOnly,
|
|
4846
4984
|
...restProps,
|
|
4847
4985
|
children: processedChildren
|
|
4848
4986
|
}
|
|
4849
|
-
)
|
|
4987
|
+
);
|
|
4850
4988
|
}
|
|
4851
4989
|
);
|
|
4852
4990
|
Drawer.displayName = "Drawer";
|
|
4853
|
-
var badgeAppearance = [
|
|
4854
|
-
// ── Shape ─────────────────────────────────────────────────────────────────────
|
|
4855
|
-
"flex items-center justify-center",
|
|
4856
|
-
"rounded-full",
|
|
4857
|
-
// ── Large (count) sizing — base defaults ──────────────────────────────────────
|
|
4858
|
-
// Height 16dp, min-width 16dp, horizontal padding 4dp
|
|
4859
|
-
"h-4 min-w-4 px-1",
|
|
4860
|
-
// ── Color — error role (only MD3-spec role for badges) ────────────────────────
|
|
4861
|
-
"bg-error text-on-error",
|
|
4862
|
-
// ── Typography — label-small, tight leading, tabular numbers ──────────────────
|
|
4863
|
-
"text-label-small leading-none tabular-nums",
|
|
4864
|
-
// ── Visibility (runtime flag) ──────────────────────────────────────────────────
|
|
4865
|
-
// Base: fully visible
|
|
4866
|
-
"scale-100",
|
|
4867
|
-
// data-invisible: scale to zero (visually hidden; aria-label still readable by SR)
|
|
4868
|
-
"data-[invisible]:scale-0",
|
|
4869
|
-
// ── Dot content flag overrides (placed last — cascade wins over base sizing) ───
|
|
4870
|
-
// Clear out the count-pill sizing, set 6dp circle
|
|
4871
|
-
"data-[dot]:size-1.5",
|
|
4872
|
-
"data-[dot]:min-w-0",
|
|
4873
|
-
"data-[dot]:p-0",
|
|
4874
|
-
"data-[dot]:text-[0]"
|
|
4875
|
-
// suppress any stray text rendering on dot
|
|
4876
|
-
];
|
|
4877
|
-
var badgeVariants2 = cva([
|
|
4878
|
-
// ── Anchored placement — badge center on host's top-right corner ──────────────
|
|
4879
|
-
// top-0 right-0 places the badge's own top-right at the host's top-right,
|
|
4880
|
-
// then the 1/2-element translate moves the badge center onto that corner.
|
|
4881
|
-
// Host-size-agnostic: works for any wrapped element (icon, avatar, nav chip).
|
|
4882
|
-
"absolute top-0 right-0 -translate-y-1/2 translate-x-1/2",
|
|
4883
|
-
...badgeAppearance
|
|
4884
|
-
]);
|
|
4885
|
-
var badgeStaticVariants = cva(["inline-flex", ...badgeAppearance]);
|
|
4886
|
-
function isBadgeConfig(badge) {
|
|
4887
|
-
return typeof badge === "object" && badge !== null && !isValidElement(badge) && "count" in badge;
|
|
4888
|
-
}
|
|
4889
|
-
function getBadgeDisplayValue(count, max) {
|
|
4890
|
-
if (count === void 0) return "";
|
|
4891
|
-
return count > max ? `${max}+` : count.toString();
|
|
4892
|
-
}
|
|
4893
|
-
function getBadgeAriaLabel(count) {
|
|
4894
|
-
return count === void 0 ? "New" : `${count} notifications`;
|
|
4895
|
-
}
|
|
4896
4991
|
var DrawerItem = forwardRef(
|
|
4897
4992
|
({
|
|
4898
4993
|
href,
|
|
4899
4994
|
icon,
|
|
4900
4995
|
label,
|
|
4901
4996
|
badge,
|
|
4902
|
-
secondaryText,
|
|
4903
4997
|
isActive = false,
|
|
4904
4998
|
isDisabled = false,
|
|
4905
4999
|
disableRipple = false,
|
|
4906
5000
|
className,
|
|
4907
|
-
onPress,
|
|
4908
|
-
|
|
4909
|
-
onPressEnd,
|
|
4910
|
-
onPressChange,
|
|
4911
|
-
onPressUp,
|
|
5001
|
+
// All remaining props (onPress, onPressStart, onPressEnd, etc.) stay in
|
|
5002
|
+
// restProps and are passed into mergeProps — mirrors the Button pattern.
|
|
4912
5003
|
...restProps
|
|
4913
5004
|
}, ref) => {
|
|
4914
|
-
const
|
|
4915
|
-
const
|
|
5005
|
+
const [isPressed, setIsPressed] = useState(false);
|
|
5006
|
+
const handlePressStart = useCallback(() => setIsPressed(true), []);
|
|
5007
|
+
const handlePressEnd = useCallback(() => setIsPressed(false), []);
|
|
5008
|
+
const { isHovered, hoverProps } = useHover({ isDisabled });
|
|
5009
|
+
const { isFocusVisible, focusProps } = useFocusRing();
|
|
4916
5010
|
const { onMouseDown: handleRipple, ripples } = useRipple({
|
|
4917
|
-
disabled:
|
|
5011
|
+
disabled: isDisabled || disableRipple
|
|
4918
5012
|
});
|
|
4919
|
-
const
|
|
4920
|
-
|
|
4921
|
-
|
|
4922
|
-
|
|
4923
|
-
|
|
4924
|
-
|
|
4925
|
-
const ariaLabel = getBadgeAriaLabel(badge.count);
|
|
4926
|
-
return /* @__PURE__ */ jsx("span", { className: "relative z-10 ml-auto flex shrink-0 items-center pr-2", children: /* @__PURE__ */ jsx(
|
|
4927
|
-
"span",
|
|
4928
|
-
{
|
|
4929
|
-
role: "status",
|
|
4930
|
-
"aria-label": ariaLabel,
|
|
4931
|
-
"data-dot": isDot ? "" : void 0,
|
|
4932
|
-
className: cn(badgeStaticVariants()),
|
|
4933
|
-
children: displayValue
|
|
4934
|
-
}
|
|
4935
|
-
) });
|
|
4936
|
-
}
|
|
4937
|
-
return /* @__PURE__ */ jsx("span", { className: "relative z-10 ml-auto flex shrink-0 items-center pr-2", "aria-hidden": "true", children: badge });
|
|
4938
|
-
};
|
|
5013
|
+
const mergedInteractionProps = mergeProps$1(
|
|
5014
|
+
hoverProps,
|
|
5015
|
+
focusProps,
|
|
5016
|
+
{ onPressStart: handlePressStart, onPressEnd: handlePressEnd },
|
|
5017
|
+
restProps
|
|
5018
|
+
);
|
|
4939
5019
|
return /* @__PURE__ */ jsxs(
|
|
4940
5020
|
HeadlessDrawerItem,
|
|
4941
5021
|
{
|
|
4942
|
-
...
|
|
5022
|
+
...mergedInteractionProps,
|
|
4943
5023
|
ref,
|
|
4944
5024
|
...href !== void 0 ? { href } : {},
|
|
4945
5025
|
isActive,
|
|
4946
|
-
...
|
|
4947
|
-
...onPress !== void 0 ? { onPress } : {},
|
|
4948
|
-
...onPressStart !== void 0 ? { onPressStart } : {},
|
|
4949
|
-
...onPressEnd !== void 0 ? { onPressEnd } : {},
|
|
4950
|
-
...onPressChange !== void 0 ? { onPressChange } : {},
|
|
4951
|
-
...onPressUp !== void 0 ? { onPressUp } : {},
|
|
5026
|
+
...isDisabled !== void 0 ? { isDisabled } : {},
|
|
4952
5027
|
onMouseDown: handleRipple,
|
|
4953
|
-
|
|
5028
|
+
...getInteractionDataAttributes({
|
|
5029
|
+
isHovered,
|
|
5030
|
+
isFocusVisible,
|
|
5031
|
+
isPressed,
|
|
5032
|
+
isDisabled
|
|
5033
|
+
}),
|
|
5034
|
+
"data-active": isActive ? "" : void 0,
|
|
4954
5035
|
className: cn(
|
|
4955
|
-
drawerItemVariants(
|
|
4956
|
-
|
|
4957
|
-
|
|
4958
|
-
}),
|
|
5036
|
+
drawerItemVariants(),
|
|
5037
|
+
// group/draweritem: enables group-data-[x]/draweritem selectors in all slots
|
|
5038
|
+
"group/draweritem",
|
|
4959
5039
|
className
|
|
4960
5040
|
),
|
|
4961
5041
|
children: [
|
|
4962
|
-
|
|
4963
|
-
|
|
5042
|
+
/* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: drawerItemActiveIndicatorVariants() }),
|
|
5043
|
+
/* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: drawerItemStateLayerVariants() }),
|
|
5044
|
+
/* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: drawerItemFocusRingVariants() }),
|
|
5045
|
+
/* @__PURE__ */ jsx(
|
|
4964
5046
|
"span",
|
|
4965
5047
|
{
|
|
4966
|
-
className: "
|
|
5048
|
+
className: "pointer-events-none absolute inset-0 z-[3] overflow-hidden rounded-[inherit]",
|
|
4967
5049
|
"aria-hidden": "true",
|
|
4968
|
-
children:
|
|
5050
|
+
children: ripples
|
|
4969
5051
|
}
|
|
4970
5052
|
),
|
|
4971
|
-
/* @__PURE__ */
|
|
5053
|
+
icon && /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: drawerItemIconVariants(), children: icon }),
|
|
5054
|
+
/* @__PURE__ */ jsx("span", { className: drawerItemLabelVariants(), children: label }),
|
|
5055
|
+
badge !== void 0 && badge !== null && /* @__PURE__ */ jsx(
|
|
4972
5056
|
"span",
|
|
4973
5057
|
{
|
|
4974
|
-
|
|
4975
|
-
|
|
4976
|
-
|
|
4977
|
-
|
|
4978
|
-
children: [
|
|
4979
|
-
/* @__PURE__ */ jsx("span", { className: "truncate", children: label }),
|
|
4980
|
-
secondaryText && /* @__PURE__ */ jsx("span", { className: "text-body-small truncate opacity-70", children: secondaryText })
|
|
4981
|
-
]
|
|
5058
|
+
role: "status",
|
|
5059
|
+
"aria-label": typeof badge === "number" ? `${badge} notifications` : String(badge),
|
|
5060
|
+
className: drawerItemBadgeVariants(),
|
|
5061
|
+
children: badge
|
|
4982
5062
|
}
|
|
4983
|
-
)
|
|
4984
|
-
!isIconOnly && renderBadge()
|
|
5063
|
+
)
|
|
4985
5064
|
]
|
|
4986
5065
|
}
|
|
4987
5066
|
);
|
|
4988
5067
|
}
|
|
4989
5068
|
);
|
|
4990
5069
|
DrawerItem.displayName = "DrawerItem";
|
|
5070
|
+
var DrawerHeadline = forwardRef(
|
|
5071
|
+
({ children, className, ...restProps }, ref) => /* @__PURE__ */ jsx("span", { ref, className: cn(drawerHeadlineVariants(), className), ...restProps, children })
|
|
5072
|
+
);
|
|
5073
|
+
DrawerHeadline.displayName = "DrawerHeadline";
|
|
4991
5074
|
var progressContainerVariants = cva(["inline-flex", "flex-col", "gap-1"], {
|
|
4992
5075
|
variants: {
|
|
4993
5076
|
type: {
|
|
@@ -10025,6 +10108,39 @@ var BadgeHeadless = forwardRef(
|
|
|
10025
10108
|
}
|
|
10026
10109
|
);
|
|
10027
10110
|
BadgeHeadless.displayName = "BadgeHeadless";
|
|
10111
|
+
var badgeAppearance = [
|
|
10112
|
+
// ── Shape ─────────────────────────────────────────────────────────────────────
|
|
10113
|
+
"flex items-center justify-center",
|
|
10114
|
+
"rounded-full",
|
|
10115
|
+
// ── Large (count) sizing — base defaults ──────────────────────────────────────
|
|
10116
|
+
// Height 16dp, min-width 16dp, horizontal padding 4dp
|
|
10117
|
+
"h-4 min-w-4 px-1",
|
|
10118
|
+
// ── Color — error role (only MD3-spec role for badges) ────────────────────────
|
|
10119
|
+
"bg-error text-on-error",
|
|
10120
|
+
// ── Typography — label-small, tight leading, tabular numbers ──────────────────
|
|
10121
|
+
"text-label-small leading-none tabular-nums",
|
|
10122
|
+
// ── Visibility (runtime flag) ──────────────────────────────────────────────────
|
|
10123
|
+
// Base: fully visible
|
|
10124
|
+
"scale-100",
|
|
10125
|
+
// data-invisible: scale to zero (visually hidden; aria-label still readable by SR)
|
|
10126
|
+
"data-[invisible]:scale-0",
|
|
10127
|
+
// ── Dot content flag overrides (placed last — cascade wins over base sizing) ───
|
|
10128
|
+
// Clear out the count-pill sizing, set 6dp circle
|
|
10129
|
+
"data-[dot]:size-1.5",
|
|
10130
|
+
"data-[dot]:min-w-0",
|
|
10131
|
+
"data-[dot]:p-0",
|
|
10132
|
+
"data-[dot]:text-[0]"
|
|
10133
|
+
// suppress any stray text rendering on dot
|
|
10134
|
+
];
|
|
10135
|
+
var badgeVariants2 = cva([
|
|
10136
|
+
// ── Anchored placement — badge center on host's top-right corner ──────────────
|
|
10137
|
+
// top-0 right-0 places the badge's own top-right at the host's top-right,
|
|
10138
|
+
// then the 1/2-element translate moves the badge center onto that corner.
|
|
10139
|
+
// Host-size-agnostic: works for any wrapped element (icon, avatar, nav chip).
|
|
10140
|
+
"absolute top-0 right-0 -translate-y-1/2 translate-x-1/2",
|
|
10141
|
+
...badgeAppearance
|
|
10142
|
+
]);
|
|
10143
|
+
cva(["inline-flex", ...badgeAppearance]);
|
|
10028
10144
|
var getDisplayValue = (count, max) => {
|
|
10029
10145
|
if (count === void 0) return "";
|
|
10030
10146
|
return count > max ? `${max}+` : count.toString();
|
|
@@ -15572,7 +15688,7 @@ var modeToggleStateLayerVariants = cva([
|
|
|
15572
15688
|
"group-data-[focus-visible]/mode-toggle:opacity-10",
|
|
15573
15689
|
"group-data-[pressed]/mode-toggle:opacity-10"
|
|
15574
15690
|
]);
|
|
15575
|
-
var
|
|
15691
|
+
var scrimVariants = cva([
|
|
15576
15692
|
"fixed inset-0 z-40",
|
|
15577
15693
|
"bg-scrim opacity-32",
|
|
15578
15694
|
"transition-opacity duration-medium2 ease-standard"
|
|
@@ -16315,7 +16431,7 @@ var DatePickerModalStyled = forwardRef(
|
|
|
16315
16431
|
!reducedMotion && MODAL_DIALOG_MOTION,
|
|
16316
16432
|
className
|
|
16317
16433
|
),
|
|
16318
|
-
scrimClassName: cn(
|
|
16434
|
+
scrimClassName: cn(scrimVariants()),
|
|
16319
16435
|
slots: {
|
|
16320
16436
|
CellComponent: StyledCalendarCell,
|
|
16321
16437
|
NavButtonComponent: StyledNavButton,
|
|
@@ -16765,7 +16881,7 @@ var DatePickerModalInputStyled = forwardRef(
|
|
|
16765
16881
|
MODAL_INPUT_CONTENT_STRUCTURAL,
|
|
16766
16882
|
className
|
|
16767
16883
|
),
|
|
16768
|
-
scrimClassName: cn(
|
|
16884
|
+
scrimClassName: cn(scrimVariants()),
|
|
16769
16885
|
ActionButtonComponent: StyledActionButton
|
|
16770
16886
|
}
|
|
16771
16887
|
);
|
|
@@ -16877,6 +16993,6 @@ var DateField = forwardRef((props, forwardedRef) => {
|
|
|
16877
16993
|
});
|
|
16878
16994
|
DateField.displayName = "DateField";
|
|
16879
16995
|
|
|
16880
|
-
export { AppBar, AppBarHeadless, Badge, BadgeContent, BadgeHeadless, BottomSheet, BottomSheetContext, BottomSheetHandle, BottomSheetHeadless, Button, ButtonGroup, ButtonGroupContext, ButtonGroupHeadless, CalendarCore, Card, CardActions, CardContent, CardHeader, CardHeadless, CardMedia, Checkbox, Chip, ChipHeadless, ChipSet, DateField, DatePicker, DatePickerDocked, DatePickerModal, DatePickerModalInput, Dialog, DialogActions, DialogContent, DialogContext, DialogHeadless, DialogHeadline, Divider, DividerHeadless, Drawer,
|
|
16996
|
+
export { AppBar, AppBarHeadless, Badge, BadgeContent, BadgeHeadless, BottomSheet, BottomSheetContext, BottomSheetHandle, BottomSheetHeadless, Button, ButtonGroup, ButtonGroupContext, ButtonGroupHeadless, CalendarCore, Card, CardActions, CardContent, CardHeader, CardHeadless, CardMedia, Checkbox, Chip, ChipHeadless, ChipSet, DateField, DatePicker, DatePickerDocked, DatePickerModal, DatePickerModalInput, Dialog, DialogActions, DialogContent, DialogContext, DialogHeadless, DialogHeadline, Divider, DividerHeadless, Drawer, DrawerContext, DrawerHeadline, DrawerItem, DrawerSection, FAB, FABHeadless, FABMenu, FABMenuContext, FABMenuHeadless, FABMenuItem, HeadlessDrawer, HeadlessDrawerItem, HeadlessMenu, HeadlessMenuDivider, HeadlessMenuItem, HeadlessMenuSection, HeadlessMenuTrigger, HeadlessNavigationBar, HeadlessNavigationBarItem, HeadlessTab, HeadlessTabList, HeadlessTabPanel, IconButton, IconButtonHeadless, List, ListHeadless, ListItem, ListItemHeadless, ListItemLeading, ListItemText, ListItemTrailing, Menu, MenuContext, MenuDivider, MenuItem, MenuSection, MenuTrigger, NavigationBar, NavigationBarItem, Progress, ProgressHeadless, Radio, RadioGroup, RadioGroupHeadless, RadioHeadless, RichTooltip, STATE_LAYER_OPACITY, Search, SearchBar, SearchBarHeadless, SearchView, SearchViewHeadless, Slider, SliderHeadless, Snackbar, SnackbarContext, SnackbarHeadless, SnackbarProvider, SplitButton, SplitButtonHeadless, StyledActionButton, StyledCalendarCell, StyledCalendarTitle, StyledNavButton, StyledWeekday, StyledYearItem, Switch, TYPOGRAPHY_ELEMENT_MAP, TYPOGRAPHY_USAGE, Tab, TabList, TabPanel, Tabs, TextField, TimePicker, TimePickerDial, TimePickerInput, Tooltip, TooltipOverlayHeadless, TooltipTrigger, TooltipTriggerHeadless, actionButtonFocusRingVariants, actionButtonStateLayerVariants, actionButtonVariants, actionRowVariants, applyStateLayer, badgeVariants2 as badgeVariants, bottomSheetAnimationVariants, bottomSheetHandlePillVariants, bottomSheetHandleWrapperVariants, bottomSheetScrimVariants, bottomSheetVariants, buttonGroupFocusRingVariants, buttonGroupRootVariants, buttonGroupVariants, calendarCellFocusRingVariants, calendarCellStateLayerVariants, calendarCellVariants, calendarDividerVariants, calendarHeaderVariants, calendarTitleIconVariants, calendarTitleStateLayerVariants, calendarTitleTextVariants, calendarTitleVariants, cardVariants, chipVariants, clockDialContainerVariants, clockDialNumberVariants, clockHandCenterVariants, clockHandHandleVariants, clockHandTrackVariants, cn, dateFieldVariants, dateInputErrorVariants, dateInputFieldGroupVariants, dateInputFieldVariants, dateInputLabelVariants, datePickerContainerVariants, dateSegmentPlaceholderVariants, dividerVariants, dockedFieldGroupVariants, dockedLabelVariants, dockedTriggerStateLayerVariants, dockedTriggerVariants, drawerAnimationVariants, drawerHeadlineVariants, drawerItemActiveIndicatorVariants, drawerItemBadgeVariants, drawerItemFocusRingVariants, drawerItemIconVariants, drawerItemLabelVariants, drawerItemStateLayerVariants, drawerItemVariants, drawerScrimAnimationVariants, drawerScrimVariants, drawerSectionHeaderVariants, drawerSectionVariants, drawerVariants, fabMenuItemFocusRingVariants, fabMenuItemIconVariants, fabMenuItemLabelVariants, fabMenuItemStateLayerVariants, fabMenuItemVariants, fabMenuListVariants, fabMenuVariants, generateMD3Theme, getColorValue, getConnectedRadiusClasses, getFontFamily, getMD3Color, getResponsiveTypography, getTypographyClassName, getTypographyForElement, getTypographyStyle, getTypographyToken, headlineVariants, hexToRgb, listItemVariants, listVariants, modalDialogVariants, modalHeaderVariants, modeToggleStateLayerVariants, modeToggleVariants, navButtonFocusRingVariants, navButtonStateLayerVariants, navButtonVariants, periodSelectorContainerVariants, periodSelectorItemVariants, popoverVariants, pxToRem, remToPx, rgbToHex, richTooltipVariants, scrimVariants, searchBarAvatarVariants, searchBarFocusRingVariants, searchBarInputVariants, searchBarLeadingIconVariants, searchBarRootVariants, searchBarStateLayerVariants, searchBarTrailingActionVariants, searchBarTrailingActionsVariants, searchViewBackButtonVariants, searchViewClearButtonVariants, searchViewContentVariants, searchViewDividerVariants, searchViewHeaderVariants, searchViewInputVariants, searchViewTrailingActionVariants, searchViewTrailingActionsVariants, searchViewVariants, sliderActiveTrackVariants, sliderContainerVariants, sliderHandleStateLayerVariants, sliderHandleVariants, sliderInactiveTrackVariants, sliderTrackLayoutVariants, splitButtonContainerVariants, splitButtonFocusRingVariants, splitButtonIconVariants, splitButtonLabelVariants, splitButtonLeadingVariants, splitButtonMenuItemVariants, splitButtonMenuVariants, splitButtonStateLayerVariants, splitButtonTrailingVariants, splitButtonVariants, supportingTextVariants, timeInputFieldVariants, timePickerActionButtonVariants, timePickerActionRowVariants, timePickerContainerVariants, timePickerHeadlineVariants, timePickerModeToggleVariants, timeSelectorContainerVariants, timeSeparatorVariants, tooltipVariants, truncateText, useBottomSheetContext, useBottomSheetDrag, useButtonGroup, useDialogContext, useFABMenuContext, useMenuContext, useOptionalButtonGroup, useSnackbar, weekdayVariants, withOpacity, yearGridVariants, yearItemFocusRingVariants, yearItemStateLayerVariants, yearItemVariants };
|
|
16881
16997
|
//# sourceMappingURL=index.js.map
|
|
16882
16998
|
//# sourceMappingURL=index.js.map
|