@bug-on/m3-expressive 1.2.7 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/dist/buttons.d.mts +3 -3
- package/dist/buttons.d.ts +3 -3
- package/dist/buttons.js +195 -50
- package/dist/buttons.js.map +1 -1
- package/dist/buttons.mjs +196 -51
- package/dist/buttons.mjs.map +1 -1
- package/dist/{core-D4048_K5.d.mts → core-CAU8g2HY.d.mts} +1 -1
- package/dist/{core-Bc5Wj_pc.d.ts → core-DRrLnsnJ.d.ts} +1 -1
- package/dist/core.d.mts +2 -2
- package/dist/core.d.ts +2 -2
- package/dist/core.js +159 -28
- package/dist/core.js.map +1 -1
- package/dist/core.mjs +160 -29
- package/dist/core.mjs.map +1 -1
- package/dist/feedback.d.mts +28 -6
- package/dist/feedback.d.ts +28 -6
- package/dist/feedback.js +161 -30
- package/dist/feedback.js.map +1 -1
- package/dist/feedback.mjs +162 -31
- package/dist/feedback.mjs.map +1 -1
- package/dist/forms.d.mts +3 -2
- package/dist/forms.d.ts +3 -2
- package/dist/forms.js +88 -100
- package/dist/forms.js.map +1 -1
- package/dist/forms.mjs +88 -100
- package/dist/forms.mjs.map +1 -1
- package/dist/{icon-button-CSsDmuQC.d.mts → icon-button-CqdQBsRe.d.ts} +11 -5
- package/dist/{icon-button-CSsDmuQC.d.ts → icon-button-USJo7AqO.d.mts} +11 -5
- package/dist/index.d.mts +8 -8
- package/dist/index.d.ts +8 -8
- package/dist/index.js +570 -309
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +570 -310
- package/dist/index.mjs.map +1 -1
- package/dist/layout.d.mts +1 -1
- package/dist/layout.d.ts +1 -1
- package/dist/layout.js +159 -60
- package/dist/layout.js.map +1 -1
- package/dist/layout.mjs +160 -61
- package/dist/layout.mjs.map +1 -1
- package/dist/{md3-Dty-Qcad.d.mts → md3-D0_Z7IXj.d.mts} +9 -1
- package/dist/{md3-Dty-Qcad.d.ts → md3-D0_Z7IXj.d.ts} +9 -1
- package/dist/navigation.d.mts +103 -33
- package/dist/navigation.d.ts +103 -33
- package/dist/navigation.js +443 -152
- package/dist/navigation.js.map +1 -1
- package/dist/navigation.mjs +444 -154
- package/dist/navigation.mjs.map +1 -1
- package/dist/overlays.js +159 -28
- package/dist/overlays.js.map +1 -1
- package/dist/overlays.mjs +160 -29
- package/dist/overlays.mjs.map +1 -1
- package/dist/pickers.js +159 -28
- package/dist/pickers.js.map +1 -1
- package/dist/pickers.mjs +160 -29
- package/dist/pickers.mjs.map +1 -1
- package/dist/{split-button-trailing-uncheckable-DPJL3bO6.d.mts → split-button-trailing-uncheckable-CIVEYgjY.d.mts} +12 -7
- package/dist/{split-button-trailing-uncheckable--BhNTEJw.d.ts → split-button-trailing-uncheckable-DTQJjzsB.d.ts} +12 -7
- package/dist/{text-field-DWC7qOvp.d.mts → text-field-CiOmDM_8.d.ts} +52 -51
- package/dist/{text-field-DWC7qOvp.d.ts → text-field-Ear3hCSq.d.mts} +52 -51
- package/package.json +3 -3
package/dist/navigation.mjs
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import
|
|
3
|
-
import { useRef, useEffect, useState } from 'react';
|
|
2
|
+
import { AnimatePresence, m, LazyMotion, domMax, useMotionValue, animate, useAnimationFrame, useReducedMotion, LayoutGroup, useScroll, useMotionValueEvent, useTransform } from 'motion/react';
|
|
4
3
|
import { clsx } from 'clsx';
|
|
5
4
|
import { twMerge } from 'tailwind-merge';
|
|
6
5
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
6
|
+
import * as React37 from 'react';
|
|
7
|
+
import { useRef, useEffect, useState } from 'react';
|
|
7
8
|
import * as RxContextMenu from '@radix-ui/react-context-menu';
|
|
8
|
-
import { AnimatePresence, m, LazyMotion, domMax, useAnimationFrame, useMotionValue, animate, useReducedMotion, LayoutGroup, useScroll, useMotionValueEvent, useTransform } from 'motion/react';
|
|
9
9
|
import { cornerRadius } from '@bug-on/m3-tokens';
|
|
10
10
|
import * as DropdownMenu from '@radix-ui/react-dropdown-menu';
|
|
11
11
|
import { Slot } from '@radix-ui/react-slot';
|
|
@@ -43,6 +43,55 @@ var __objRest = (source, exclude) => {
|
|
|
43
43
|
}
|
|
44
44
|
return target;
|
|
45
45
|
};
|
|
46
|
+
function cn(...inputs) {
|
|
47
|
+
return twMerge(clsx(inputs));
|
|
48
|
+
}
|
|
49
|
+
function getMaskGradient(direction) {
|
|
50
|
+
switch (direction) {
|
|
51
|
+
case "bottom":
|
|
52
|
+
return "linear-gradient(to top, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 1) 45%, rgba(0, 0, 0, 0.7) 75%, rgba(0, 0, 0, 0) 100%)";
|
|
53
|
+
case "both":
|
|
54
|
+
return "linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.7) 20%, rgba(0, 0, 0, 1) 40%, rgba(0, 0, 0, 1) 60%, rgba(0, 0, 0, 0.7) 80%, rgba(0, 0, 0, 0) 100%)";
|
|
55
|
+
default:
|
|
56
|
+
return "linear-gradient(to bottom, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 1) 45%, rgba(0, 0, 0, 0.7) 75%, rgba(0, 0, 0, 0) 100%)";
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
function FadingBlurMask({
|
|
60
|
+
direction = "top",
|
|
61
|
+
blurIntensity = 12,
|
|
62
|
+
blurHeight = "100%",
|
|
63
|
+
color = "var(--md-sys-color-surface)",
|
|
64
|
+
className,
|
|
65
|
+
style,
|
|
66
|
+
children
|
|
67
|
+
}) {
|
|
68
|
+
const shouldReduceMotion = useReducedMotion();
|
|
69
|
+
const activeBlur = shouldReduceMotion ? 0 : blurIntensity;
|
|
70
|
+
const maskGradient = getMaskGradient(direction);
|
|
71
|
+
const maskStyle = __spreadValues({
|
|
72
|
+
position: "absolute",
|
|
73
|
+
inset: 0,
|
|
74
|
+
pointerEvents: "none",
|
|
75
|
+
height: typeof blurHeight === "number" ? `${blurHeight}px` : blurHeight,
|
|
76
|
+
backdropFilter: activeBlur > 0 ? `blur(${activeBlur}px)` : void 0,
|
|
77
|
+
WebkitBackdropFilter: activeBlur > 0 ? `blur(${activeBlur}px)` : void 0,
|
|
78
|
+
maskImage: maskGradient,
|
|
79
|
+
WebkitMaskImage: maskGradient,
|
|
80
|
+
backgroundColor: color
|
|
81
|
+
}, style);
|
|
82
|
+
return /* @__PURE__ */ jsx(
|
|
83
|
+
"div",
|
|
84
|
+
{
|
|
85
|
+
"aria-hidden": "true",
|
|
86
|
+
className: cn(
|
|
87
|
+
"absolute inset-0 pointer-events-none z-0 rounded-[inherit]",
|
|
88
|
+
className
|
|
89
|
+
),
|
|
90
|
+
style: maskStyle,
|
|
91
|
+
children
|
|
92
|
+
}
|
|
93
|
+
);
|
|
94
|
+
}
|
|
46
95
|
|
|
47
96
|
// src/ui/shared/motion-tokens.ts
|
|
48
97
|
var FAST_SPATIAL_SPRING = {
|
|
@@ -197,9 +246,6 @@ var APP_BAR_TITLE_FADE = {
|
|
|
197
246
|
duration: 0.15,
|
|
198
247
|
ease: "easeInOut"
|
|
199
248
|
};
|
|
200
|
-
function cn(...inputs) {
|
|
201
|
-
return twMerge(clsx(inputs));
|
|
202
|
-
}
|
|
203
249
|
function AppBarItemButton({ item }) {
|
|
204
250
|
const isDisabled = item.enabled === false;
|
|
205
251
|
if (item.type === "custom" && item.appBarContent) {
|
|
@@ -1726,7 +1772,10 @@ function BottomAppBar({
|
|
|
1726
1772
|
floatingActionButton,
|
|
1727
1773
|
scrollBehavior = "visible",
|
|
1728
1774
|
scrollElement,
|
|
1729
|
-
className
|
|
1775
|
+
className,
|
|
1776
|
+
enableFadingBlur,
|
|
1777
|
+
blurIntensity,
|
|
1778
|
+
blurHeight
|
|
1730
1779
|
}) {
|
|
1731
1780
|
const shouldReduceMotion = useReducedMotion();
|
|
1732
1781
|
const { isHidden } = useAppBarScroll({
|
|
@@ -1741,9 +1790,9 @@ function BottomAppBar({
|
|
|
1741
1790
|
role: "navigation",
|
|
1742
1791
|
"aria-label": "Bottom app bar",
|
|
1743
1792
|
className: cn(
|
|
1744
|
-
"fixed bottom-0 inset-x-0 z-50",
|
|
1793
|
+
"fixed bottom-0 inset-x-0 z-50 overflow-hidden rounded-[inherit]",
|
|
1745
1794
|
"flex items-center",
|
|
1746
|
-
"bg-m3-surface-container",
|
|
1795
|
+
!enableFadingBlur && "bg-m3-surface-container",
|
|
1747
1796
|
"px-2",
|
|
1748
1797
|
// minimal horizontal padding, icon buttons provide spacing
|
|
1749
1798
|
"elevation-2",
|
|
@@ -1756,8 +1805,19 @@ function BottomAppBar({
|
|
|
1756
1805
|
animate: { y: translateY },
|
|
1757
1806
|
transition: hideTransition,
|
|
1758
1807
|
children: [
|
|
1759
|
-
|
|
1760
|
-
|
|
1808
|
+
enableFadingBlur && /* @__PURE__ */ jsx(
|
|
1809
|
+
FadingBlurMask,
|
|
1810
|
+
{
|
|
1811
|
+
direction: "bottom",
|
|
1812
|
+
blurIntensity,
|
|
1813
|
+
blurHeight,
|
|
1814
|
+
color: "var(--md-sys-color-surface-container)"
|
|
1815
|
+
}
|
|
1816
|
+
),
|
|
1817
|
+
/* @__PURE__ */ jsxs("div", { className: "relative z-10 flex items-center w-full h-full", children: [
|
|
1818
|
+
actions && /* @__PURE__ */ jsx("div", { className: "flex items-center flex-1", children: actions }),
|
|
1819
|
+
floatingActionButton && /* @__PURE__ */ jsx("div", { className: "shrink-0 ml-auto mr-2", children: floatingActionButton })
|
|
1820
|
+
] })
|
|
1761
1821
|
]
|
|
1762
1822
|
}
|
|
1763
1823
|
);
|
|
@@ -1865,7 +1925,10 @@ function LargeFlexibleAppBar({
|
|
|
1865
1925
|
headerContent,
|
|
1866
1926
|
collapsedHeight = AppBarTokens.heights.flexibleCollapsed,
|
|
1867
1927
|
expandedHeight,
|
|
1868
|
-
className
|
|
1928
|
+
className,
|
|
1929
|
+
enableFadingBlur,
|
|
1930
|
+
blurIntensity,
|
|
1931
|
+
blurHeight
|
|
1869
1932
|
}) {
|
|
1870
1933
|
var _a, _b, _c;
|
|
1871
1934
|
const resolvedExpandedHeight = expandedHeight != null ? expandedHeight : subtitle ? AppBarTokens.heights.largeFlexWithSubtitleExpanded : AppBarTokens.heights.largeFlexExpanded;
|
|
@@ -1895,15 +1958,28 @@ function LargeFlexibleAppBar({
|
|
|
1895
1958
|
{
|
|
1896
1959
|
role: "banner",
|
|
1897
1960
|
className: cn(
|
|
1898
|
-
"fixed top-0 inset-x-0 z-50 flex flex-col overflow-hidden",
|
|
1961
|
+
"fixed top-0 inset-x-0 z-50 flex flex-col overflow-hidden rounded-[inherit]",
|
|
1899
1962
|
className
|
|
1900
1963
|
),
|
|
1901
|
-
style: {
|
|
1964
|
+
style: {
|
|
1965
|
+
height,
|
|
1966
|
+
backgroundColor: enableFadingBlur ? "transparent" : currentBg,
|
|
1967
|
+
transition: cssTransition
|
|
1968
|
+
},
|
|
1902
1969
|
children: [
|
|
1970
|
+
enableFadingBlur && /* @__PURE__ */ jsx(
|
|
1971
|
+
FadingBlurMask,
|
|
1972
|
+
{
|
|
1973
|
+
direction: "top",
|
|
1974
|
+
blurIntensity,
|
|
1975
|
+
blurHeight,
|
|
1976
|
+
color: currentBg
|
|
1977
|
+
}
|
|
1978
|
+
),
|
|
1903
1979
|
/* @__PURE__ */ jsxs(
|
|
1904
1980
|
"div",
|
|
1905
1981
|
{
|
|
1906
|
-
className: "flex items-center px-1 shrink-0",
|
|
1982
|
+
className: "relative z-10 flex items-center px-1 shrink-0",
|
|
1907
1983
|
style: { height: collapsedHeight },
|
|
1908
1984
|
children: [
|
|
1909
1985
|
navigationIcon && /* @__PURE__ */ jsx(
|
|
@@ -1945,7 +2021,7 @@ function LargeFlexibleAppBar({
|
|
|
1945
2021
|
"div",
|
|
1946
2022
|
{
|
|
1947
2023
|
className: cn(
|
|
1948
|
-
"flex flex-col flex-1 px-4 pb-
|
|
2024
|
+
"relative z-10 flex flex-col flex-1 px-4 pb-3 justify-end",
|
|
1949
2025
|
isCentered ? "items-center" : "items-start"
|
|
1950
2026
|
),
|
|
1951
2027
|
children: [
|
|
@@ -1998,7 +2074,10 @@ function MediumFlexibleAppBar({
|
|
|
1998
2074
|
headerContent,
|
|
1999
2075
|
collapsedHeight = AppBarTokens.heights.flexibleCollapsed,
|
|
2000
2076
|
expandedHeight,
|
|
2001
|
-
className
|
|
2077
|
+
className,
|
|
2078
|
+
enableFadingBlur,
|
|
2079
|
+
blurIntensity,
|
|
2080
|
+
blurHeight
|
|
2002
2081
|
}) {
|
|
2003
2082
|
var _a, _b, _c;
|
|
2004
2083
|
const resolvedExpandedHeight = expandedHeight != null ? expandedHeight : subtitle ? AppBarTokens.heights.mediumFlexWithSubtitleExpanded : AppBarTokens.heights.mediumFlexExpanded;
|
|
@@ -2028,15 +2107,28 @@ function MediumFlexibleAppBar({
|
|
|
2028
2107
|
{
|
|
2029
2108
|
role: "banner",
|
|
2030
2109
|
className: cn(
|
|
2031
|
-
"fixed top-0 inset-x-0 z-50 flex flex-col overflow-hidden",
|
|
2110
|
+
"fixed top-0 inset-x-0 z-50 flex flex-col overflow-hidden rounded-[inherit]",
|
|
2032
2111
|
className
|
|
2033
2112
|
),
|
|
2034
|
-
style: {
|
|
2113
|
+
style: {
|
|
2114
|
+
height,
|
|
2115
|
+
backgroundColor: enableFadingBlur ? "transparent" : currentBg,
|
|
2116
|
+
transition: cssTransition
|
|
2117
|
+
},
|
|
2035
2118
|
children: [
|
|
2119
|
+
enableFadingBlur && /* @__PURE__ */ jsx(
|
|
2120
|
+
FadingBlurMask,
|
|
2121
|
+
{
|
|
2122
|
+
direction: "top",
|
|
2123
|
+
blurIntensity,
|
|
2124
|
+
blurHeight,
|
|
2125
|
+
color: currentBg
|
|
2126
|
+
}
|
|
2127
|
+
),
|
|
2036
2128
|
/* @__PURE__ */ jsxs(
|
|
2037
2129
|
"div",
|
|
2038
2130
|
{
|
|
2039
|
-
className: "flex items-center px-1 shrink-0",
|
|
2131
|
+
className: "relative z-10 flex items-center px-1 shrink-0",
|
|
2040
2132
|
style: { height: collapsedHeight },
|
|
2041
2133
|
children: [
|
|
2042
2134
|
navigationIcon && /* @__PURE__ */ jsx(
|
|
@@ -2078,7 +2170,7 @@ function MediumFlexibleAppBar({
|
|
|
2078
2170
|
"div",
|
|
2079
2171
|
{
|
|
2080
2172
|
className: cn(
|
|
2081
|
-
"flex flex-col flex-1 px-4 pb-3 justify-end",
|
|
2173
|
+
"relative z-10 flex flex-col flex-1 px-4 pb-3 justify-end",
|
|
2082
2174
|
isCentered ? "items-center" : "items-start"
|
|
2083
2175
|
),
|
|
2084
2176
|
children: [
|
|
@@ -2125,7 +2217,7 @@ function SearchIcon({ className }) {
|
|
|
2125
2217
|
"span",
|
|
2126
2218
|
{
|
|
2127
2219
|
className: cn(
|
|
2128
|
-
"material-symbols-rounded text-[20px] leading-none select-none",
|
|
2220
|
+
"material-symbols-rounded text-[20px] leading-none select-none flex items-center justify-center",
|
|
2129
2221
|
className
|
|
2130
2222
|
),
|
|
2131
2223
|
"aria-hidden": "true",
|
|
@@ -2145,7 +2237,12 @@ function SearchAppBar({
|
|
|
2145
2237
|
scrollBehavior = "pinned",
|
|
2146
2238
|
scrollElement,
|
|
2147
2239
|
searchBarId = "search-bar",
|
|
2148
|
-
|
|
2240
|
+
searchBarVariant = "filled",
|
|
2241
|
+
searchBarHeight = 56,
|
|
2242
|
+
className,
|
|
2243
|
+
enableFadingBlur,
|
|
2244
|
+
blurIntensity,
|
|
2245
|
+
blurHeight
|
|
2149
2246
|
}) {
|
|
2150
2247
|
var _a, _b;
|
|
2151
2248
|
const shouldReduceMotion = useReducedMotion();
|
|
@@ -2168,65 +2265,92 @@ function SearchAppBar({
|
|
|
2168
2265
|
handleSearchClick();
|
|
2169
2266
|
}
|
|
2170
2267
|
};
|
|
2268
|
+
const searchBarBg = isScrolled ? "var(--md-sys-color-surface-container-highest)" : APP_BAR_COLORS.searchBarBg;
|
|
2269
|
+
const isOutlined = searchBarVariant === "outlined";
|
|
2171
2270
|
return /* @__PURE__ */ jsxs(
|
|
2172
2271
|
m.header,
|
|
2173
2272
|
{
|
|
2174
2273
|
role: "banner",
|
|
2175
2274
|
className: cn(
|
|
2176
|
-
"fixed top-0 inset-x-0 z-50 flex items-center gap-2 px-4",
|
|
2275
|
+
"fixed top-0 inset-x-0 z-50 flex items-center gap-2 px-4 overflow-hidden rounded-[inherit]",
|
|
2177
2276
|
className
|
|
2178
2277
|
),
|
|
2179
2278
|
style: {
|
|
2180
2279
|
height: AppBarTokens.heights.small,
|
|
2181
|
-
backgroundColor: currentBg,
|
|
2280
|
+
backgroundColor: enableFadingBlur ? "transparent" : currentBg,
|
|
2182
2281
|
transition: cssTransition
|
|
2183
2282
|
},
|
|
2184
2283
|
children: [
|
|
2185
|
-
|
|
2186
|
-
|
|
2284
|
+
enableFadingBlur && /* @__PURE__ */ jsx(
|
|
2285
|
+
FadingBlurMask,
|
|
2187
2286
|
{
|
|
2188
|
-
|
|
2189
|
-
|
|
2190
|
-
|
|
2191
|
-
|
|
2192
|
-
},
|
|
2193
|
-
children: navigationIcon
|
|
2287
|
+
direction: "top",
|
|
2288
|
+
blurIntensity,
|
|
2289
|
+
blurHeight,
|
|
2290
|
+
color: currentBg
|
|
2194
2291
|
}
|
|
2195
2292
|
),
|
|
2196
|
-
/* @__PURE__ */ jsxs(
|
|
2197
|
-
|
|
2198
|
-
|
|
2199
|
-
|
|
2200
|
-
|
|
2201
|
-
|
|
2202
|
-
|
|
2203
|
-
|
|
2204
|
-
|
|
2205
|
-
|
|
2206
|
-
|
|
2207
|
-
|
|
2208
|
-
|
|
2209
|
-
|
|
2210
|
-
|
|
2211
|
-
|
|
2212
|
-
|
|
2213
|
-
|
|
2214
|
-
|
|
2215
|
-
|
|
2216
|
-
|
|
2217
|
-
|
|
2218
|
-
"
|
|
2219
|
-
|
|
2220
|
-
className: "flex-1 text-[16px] leading-6 truncate select-none",
|
|
2221
|
-
style: { color: APP_BAR_COLORS.searchBarContent },
|
|
2222
|
-
children: searchValue != null ? searchValue : searchPlaceholder
|
|
2223
|
-
}
|
|
2293
|
+
/* @__PURE__ */ jsxs("div", { className: "relative z-10 flex items-center gap-2 w-full h-full", children: [
|
|
2294
|
+
navigationIcon && /* @__PURE__ */ jsx(
|
|
2295
|
+
"div",
|
|
2296
|
+
{
|
|
2297
|
+
className: "shrink-0 flex items-center justify-center",
|
|
2298
|
+
style: {
|
|
2299
|
+
width: AppBarTokens.iconButtonTouchTarget,
|
|
2300
|
+
height: AppBarTokens.iconButtonTouchTarget
|
|
2301
|
+
},
|
|
2302
|
+
children: navigationIcon
|
|
2303
|
+
}
|
|
2304
|
+
),
|
|
2305
|
+
/* @__PURE__ */ jsxs(
|
|
2306
|
+
m.div,
|
|
2307
|
+
{
|
|
2308
|
+
layoutId: shouldReduceMotion ? void 0 : searchBarId,
|
|
2309
|
+
role: "search",
|
|
2310
|
+
"aria-label": searchPlaceholder,
|
|
2311
|
+
"aria-expanded": isSearchOpen,
|
|
2312
|
+
tabIndex: 0,
|
|
2313
|
+
className: cn(
|
|
2314
|
+
"relative flex flex-1 items-center gap-2 rounded-full cursor-text px-4",
|
|
2315
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",
|
|
2316
|
+
isOutlined && "border border-(--md-sys-color-outline)"
|
|
2224
2317
|
),
|
|
2225
|
-
|
|
2226
|
-
|
|
2227
|
-
|
|
2228
|
-
|
|
2229
|
-
|
|
2318
|
+
style: { height: searchBarHeight },
|
|
2319
|
+
onClick: handleSearchClick,
|
|
2320
|
+
onKeyDown: handleKeyDown,
|
|
2321
|
+
children: [
|
|
2322
|
+
!isOutlined && /* @__PURE__ */ jsx(
|
|
2323
|
+
"div",
|
|
2324
|
+
{
|
|
2325
|
+
className: "absolute inset-0 rounded-full -z-10 transition-colors",
|
|
2326
|
+
style: {
|
|
2327
|
+
backgroundColor: searchBarBg,
|
|
2328
|
+
transition: cssTransition
|
|
2329
|
+
}
|
|
2330
|
+
}
|
|
2331
|
+
),
|
|
2332
|
+
/* @__PURE__ */ jsx(
|
|
2333
|
+
"span",
|
|
2334
|
+
{
|
|
2335
|
+
className: "shrink-0 flex items-center justify-center h-full",
|
|
2336
|
+
style: { color: APP_BAR_COLORS.searchBarContent },
|
|
2337
|
+
children: leadingSearchIcon != null ? leadingSearchIcon : /* @__PURE__ */ jsx(SearchIcon, {})
|
|
2338
|
+
}
|
|
2339
|
+
),
|
|
2340
|
+
/* @__PURE__ */ jsx(
|
|
2341
|
+
"span",
|
|
2342
|
+
{
|
|
2343
|
+
className: "flex-1 text-[16px] leading-6 truncate select-none",
|
|
2344
|
+
style: { color: APP_BAR_COLORS.searchBarContent },
|
|
2345
|
+
children: searchValue != null ? searchValue : searchPlaceholder
|
|
2346
|
+
}
|
|
2347
|
+
),
|
|
2348
|
+
trailingSearchActions && /* @__PURE__ */ jsx("div", { className: "flex items-center shrink-0", children: trailingSearchActions })
|
|
2349
|
+
]
|
|
2350
|
+
}
|
|
2351
|
+
),
|
|
2352
|
+
externalActions && /* @__PURE__ */ jsx("div", { className: "flex items-center shrink-0", children: externalActions })
|
|
2353
|
+
] })
|
|
2230
2354
|
]
|
|
2231
2355
|
}
|
|
2232
2356
|
);
|
|
@@ -2399,9 +2523,11 @@ function SmallAppBarInner({
|
|
|
2399
2523
|
navigationIcon,
|
|
2400
2524
|
actions,
|
|
2401
2525
|
colors,
|
|
2402
|
-
className,
|
|
2403
2526
|
currentBg,
|
|
2404
|
-
cssTransition
|
|
2527
|
+
cssTransition,
|
|
2528
|
+
enableFadingBlur,
|
|
2529
|
+
blurIntensity,
|
|
2530
|
+
blurHeight
|
|
2405
2531
|
}) {
|
|
2406
2532
|
var _a, _b;
|
|
2407
2533
|
const isCentered = titleAlignment === "center";
|
|
@@ -2409,57 +2535,81 @@ function SmallAppBarInner({
|
|
|
2409
2535
|
m.header,
|
|
2410
2536
|
{
|
|
2411
2537
|
role: "banner",
|
|
2412
|
-
className:
|
|
2413
|
-
style: {
|
|
2538
|
+
className: "relative flex items-center px-1 h-full w-full overflow-hidden rounded-[inherit]",
|
|
2539
|
+
style: {
|
|
2540
|
+
backgroundColor: enableFadingBlur ? "transparent" : currentBg,
|
|
2541
|
+
transition: cssTransition
|
|
2542
|
+
},
|
|
2414
2543
|
children: [
|
|
2415
|
-
|
|
2416
|
-
|
|
2544
|
+
enableFadingBlur && /* @__PURE__ */ jsx(
|
|
2545
|
+
FadingBlurMask,
|
|
2417
2546
|
{
|
|
2418
|
-
|
|
2419
|
-
|
|
2420
|
-
|
|
2421
|
-
|
|
2422
|
-
},
|
|
2423
|
-
children: navigationIcon
|
|
2547
|
+
direction: "top",
|
|
2548
|
+
blurIntensity,
|
|
2549
|
+
blurHeight,
|
|
2550
|
+
color: currentBg
|
|
2424
2551
|
}
|
|
2425
2552
|
),
|
|
2426
|
-
/* @__PURE__ */ jsxs(
|
|
2427
|
-
|
|
2428
|
-
|
|
2429
|
-
|
|
2430
|
-
"
|
|
2431
|
-
|
|
2432
|
-
|
|
2433
|
-
|
|
2434
|
-
|
|
2435
|
-
|
|
2436
|
-
|
|
2437
|
-
|
|
2438
|
-
|
|
2439
|
-
|
|
2440
|
-
|
|
2441
|
-
|
|
2442
|
-
|
|
2443
|
-
|
|
2444
|
-
|
|
2445
|
-
}
|
|
2553
|
+
/* @__PURE__ */ jsxs("div", { className: "relative z-10 flex items-center w-full h-full", children: [
|
|
2554
|
+
navigationIcon && /* @__PURE__ */ jsx(
|
|
2555
|
+
"div",
|
|
2556
|
+
{
|
|
2557
|
+
className: "shrink-0 flex items-center justify-center",
|
|
2558
|
+
style: {
|
|
2559
|
+
width: AppBarTokens.iconButtonTouchTarget,
|
|
2560
|
+
height: AppBarTokens.iconButtonTouchTarget
|
|
2561
|
+
},
|
|
2562
|
+
children: navigationIcon
|
|
2563
|
+
}
|
|
2564
|
+
),
|
|
2565
|
+
/* @__PURE__ */ jsxs(
|
|
2566
|
+
"div",
|
|
2567
|
+
{
|
|
2568
|
+
className: cn(
|
|
2569
|
+
"flex-1 flex flex-col justify-center min-w-0",
|
|
2570
|
+
isCentered ? "items-center" : "items-start",
|
|
2571
|
+
!navigationIcon && !isCentered && "pl-4"
|
|
2446
2572
|
),
|
|
2447
|
-
|
|
2448
|
-
|
|
2449
|
-
|
|
2450
|
-
|
|
2451
|
-
|
|
2452
|
-
|
|
2453
|
-
|
|
2454
|
-
|
|
2455
|
-
|
|
2456
|
-
|
|
2457
|
-
|
|
2458
|
-
|
|
2459
|
-
|
|
2460
|
-
|
|
2461
|
-
|
|
2462
|
-
|
|
2573
|
+
children: [
|
|
2574
|
+
/* @__PURE__ */ jsx(
|
|
2575
|
+
"span",
|
|
2576
|
+
{
|
|
2577
|
+
className: cn(
|
|
2578
|
+
appBarTypography.titleLarge,
|
|
2579
|
+
"truncate w-full",
|
|
2580
|
+
isCentered && "text-center"
|
|
2581
|
+
),
|
|
2582
|
+
style: { color: (_a = colors == null ? void 0 : colors.titleColor) != null ? _a : APP_BAR_COLORS.title },
|
|
2583
|
+
children: title
|
|
2584
|
+
}
|
|
2585
|
+
),
|
|
2586
|
+
subtitle && /* @__PURE__ */ jsx(
|
|
2587
|
+
"span",
|
|
2588
|
+
{
|
|
2589
|
+
className: cn(
|
|
2590
|
+
appBarTypography.labelMedium,
|
|
2591
|
+
"truncate w-full",
|
|
2592
|
+
isCentered && "text-center"
|
|
2593
|
+
),
|
|
2594
|
+
style: {
|
|
2595
|
+
color: (_b = colors == null ? void 0 : colors.subtitleColor) != null ? _b : APP_BAR_COLORS.subtitle
|
|
2596
|
+
},
|
|
2597
|
+
children: subtitle
|
|
2598
|
+
}
|
|
2599
|
+
)
|
|
2600
|
+
]
|
|
2601
|
+
}
|
|
2602
|
+
),
|
|
2603
|
+
isCentered && !actions && navigationIcon && /* @__PURE__ */ jsx(
|
|
2604
|
+
"div",
|
|
2605
|
+
{
|
|
2606
|
+
"aria-hidden": "true",
|
|
2607
|
+
style: { width: AppBarTokens.iconButtonTouchTarget },
|
|
2608
|
+
className: "shrink-0"
|
|
2609
|
+
}
|
|
2610
|
+
),
|
|
2611
|
+
actions && /* @__PURE__ */ jsx("div", { className: "flex items-center shrink-0", children: actions })
|
|
2612
|
+
] })
|
|
2463
2613
|
]
|
|
2464
2614
|
}
|
|
2465
2615
|
);
|
|
@@ -2473,7 +2623,10 @@ function SmallAppBar({
|
|
|
2473
2623
|
colors,
|
|
2474
2624
|
scrollBehavior = "pinned",
|
|
2475
2625
|
scrollElement,
|
|
2476
|
-
className
|
|
2626
|
+
className,
|
|
2627
|
+
enableFadingBlur,
|
|
2628
|
+
blurIntensity,
|
|
2629
|
+
blurHeight
|
|
2477
2630
|
}) {
|
|
2478
2631
|
var _a, _b;
|
|
2479
2632
|
const shouldReduceMotion = useReducedMotion();
|
|
@@ -2493,14 +2646,17 @@ function SmallAppBar({
|
|
|
2493
2646
|
actions,
|
|
2494
2647
|
colors,
|
|
2495
2648
|
currentBg,
|
|
2496
|
-
cssTransition
|
|
2649
|
+
cssTransition,
|
|
2650
|
+
enableFadingBlur,
|
|
2651
|
+
blurIntensity,
|
|
2652
|
+
blurHeight
|
|
2497
2653
|
};
|
|
2498
2654
|
const barHeight = AppBarTokens.heights.small;
|
|
2499
2655
|
if (scrollBehavior !== "enterAlways") {
|
|
2500
2656
|
return /* @__PURE__ */ jsx(
|
|
2501
2657
|
"div",
|
|
2502
2658
|
{
|
|
2503
|
-
className: cn("fixed top-0 inset-x-0 z-50", className),
|
|
2659
|
+
className: cn("fixed top-0 inset-x-0 z-50 overflow-hidden", className),
|
|
2504
2660
|
style: { height: barHeight },
|
|
2505
2661
|
children: /* @__PURE__ */ jsx(SmallAppBarInner, __spreadValues({}, innerProps))
|
|
2506
2662
|
}
|
|
@@ -2513,7 +2669,10 @@ function SmallAppBar({
|
|
|
2513
2669
|
animate: { y: 0 },
|
|
2514
2670
|
exit: { y: "-100%" },
|
|
2515
2671
|
transition: shouldReduceMotion ? { duration: 0 } : APP_BAR_ENTER_ALWAYS_SPRING,
|
|
2516
|
-
className: cn(
|
|
2672
|
+
className: cn(
|
|
2673
|
+
"fixed top-0 inset-x-0 z-50 overflow-hidden",
|
|
2674
|
+
className
|
|
2675
|
+
),
|
|
2517
2676
|
style: { height: barHeight },
|
|
2518
2677
|
children: /* @__PURE__ */ jsx(SmallAppBarInner, __spreadValues({}, innerProps))
|
|
2519
2678
|
},
|
|
@@ -6288,7 +6447,7 @@ LoadingIndicator.displayName = "LoadingIndicator";
|
|
|
6288
6447
|
function easeInOutCubic(x) {
|
|
6289
6448
|
return x < 0.5 ? 4 * x * x * x : 1 - (-2 * x + 2) ** 3 / 2;
|
|
6290
6449
|
}
|
|
6291
|
-
function generateWavyCircularPath(center, radius, amplitude, wavelength) {
|
|
6450
|
+
function generateWavyCircularPath(center, radius, amplitude, wavelength, phase = 0) {
|
|
6292
6451
|
const circumference = 2 * Math.PI * radius;
|
|
6293
6452
|
const numWaves = Math.max(
|
|
6294
6453
|
3,
|
|
@@ -6296,8 +6455,8 @@ function generateWavyCircularPath(center, radius, amplitude, wavelength) {
|
|
|
6296
6455
|
);
|
|
6297
6456
|
const steps = numWaves * 4;
|
|
6298
6457
|
const dt = 2 * Math.PI / steps;
|
|
6299
|
-
const rAt = (t) => radius + amplitude * Math.sin(numWaves * t);
|
|
6300
|
-
const drAt = (t) => amplitude * numWaves * Math.cos(numWaves * t);
|
|
6458
|
+
const rAt = (t) => radius + amplitude * Math.sin(numWaves * t + phase);
|
|
6459
|
+
const drAt = (t) => amplitude * numWaves * Math.cos(numWaves * t + phase);
|
|
6301
6460
|
const xAt = (t) => center + rAt(t) * Math.cos(t);
|
|
6302
6461
|
const yAt = (t) => center + rAt(t) * Math.sin(t);
|
|
6303
6462
|
const dxAt = (t) => drAt(t) * Math.cos(t) - rAt(t) * Math.sin(t);
|
|
@@ -6362,15 +6521,18 @@ var CircularProgress = React37.forwardRef(
|
|
|
6362
6521
|
size = 48,
|
|
6363
6522
|
trackHeight = 4,
|
|
6364
6523
|
shape = "flat",
|
|
6524
|
+
trackShape = "flat",
|
|
6365
6525
|
amplitude,
|
|
6366
6526
|
wavelength,
|
|
6367
6527
|
gapSize = 4,
|
|
6528
|
+
waveSpeed = 1,
|
|
6368
6529
|
crawlerSpeed = 1,
|
|
6369
6530
|
color,
|
|
6370
6531
|
trackColor,
|
|
6371
6532
|
showTrack = "auto",
|
|
6372
6533
|
minProgress = DEFAULT_MIN_PROGRESS,
|
|
6373
6534
|
maxProgress = DEFAULT_MAX_PROGRESS,
|
|
6535
|
+
determinateAnimation = "md3",
|
|
6374
6536
|
amplitudeRange,
|
|
6375
6537
|
className,
|
|
6376
6538
|
"aria-label": ariaLabel
|
|
@@ -6379,15 +6541,18 @@ var CircularProgress = React37.forwardRef(
|
|
|
6379
6541
|
"size",
|
|
6380
6542
|
"trackHeight",
|
|
6381
6543
|
"shape",
|
|
6544
|
+
"trackShape",
|
|
6382
6545
|
"amplitude",
|
|
6383
6546
|
"wavelength",
|
|
6384
6547
|
"gapSize",
|
|
6548
|
+
"waveSpeed",
|
|
6385
6549
|
"crawlerSpeed",
|
|
6386
6550
|
"color",
|
|
6387
6551
|
"trackColor",
|
|
6388
6552
|
"showTrack",
|
|
6389
6553
|
"minProgress",
|
|
6390
6554
|
"maxProgress",
|
|
6555
|
+
"determinateAnimation",
|
|
6391
6556
|
"amplitudeRange",
|
|
6392
6557
|
"className",
|
|
6393
6558
|
"aria-label"
|
|
@@ -6400,6 +6565,7 @@ var CircularProgress = React37.forwardRef(
|
|
|
6400
6565
|
const bgTrackColor = trackColor || "var(--md-sys-color-indicator-track)";
|
|
6401
6566
|
const isWavy = shape === "wavy";
|
|
6402
6567
|
const shouldShowIndeterminateTrack = showTrack === "auto" ? isWavy : showTrack;
|
|
6568
|
+
const shouldShowDeterminateTrack = showTrack === "auto" ? true : showTrack;
|
|
6403
6569
|
const BASELINE_SIZE = 48;
|
|
6404
6570
|
const scaleFactor = size / BASELINE_SIZE;
|
|
6405
6571
|
const effectiveAmplitude = React37.useMemo(
|
|
@@ -6432,19 +6598,50 @@ var CircularProgress = React37.forwardRef(
|
|
|
6432
6598
|
const trackOffset = isDeterminate ? activeAngularFraction + gapForTrack : 0;
|
|
6433
6599
|
const trackLength = isDeterminate ? Math.max(1e-3, 1 - activeAngularFraction - 2 * gapForTrack) : 1;
|
|
6434
6600
|
const ActiveCircleElem = m.circle;
|
|
6435
|
-
const ActivePathElem = m.path;
|
|
6436
6601
|
const indeterminateSvgRef = React37.useRef(null);
|
|
6437
6602
|
const indeterminateTrackRef = React37.useRef(null);
|
|
6438
6603
|
const indeterminateActiveRef = React37.useRef(null);
|
|
6439
6604
|
const indeterminateWavyTrackPathRef = React37.useRef(null);
|
|
6440
6605
|
const indeterminateWavyActivePathRef = React37.useRef(null);
|
|
6606
|
+
const determinateWavyActivePathRef = React37.useRef(null);
|
|
6607
|
+
const determinateWavyTrackPathRef = React37.useRef(null);
|
|
6441
6608
|
const cachedPathLengthRef = React37.useRef(0);
|
|
6609
|
+
const fractionMV = useMotionValue(isDeterminate ? clampedValue / 100 : 0);
|
|
6610
|
+
const amplitudeMV = useMotionValue(isWavy ? effectiveAmplitude : 0);
|
|
6611
|
+
React37.useEffect(() => {
|
|
6612
|
+
if (isDeterminate) {
|
|
6613
|
+
animate(fractionMV, clampedValue / 100, {
|
|
6614
|
+
duration: 0.4,
|
|
6615
|
+
ease: [0.2, 0, 0, 1]
|
|
6616
|
+
});
|
|
6617
|
+
}
|
|
6618
|
+
}, [clampedValue, isDeterminate, fractionMV]);
|
|
6619
|
+
React37.useEffect(() => {
|
|
6620
|
+
if (!isDeterminate || !isWavy) return;
|
|
6621
|
+
const fraction = clampedValue / 100;
|
|
6622
|
+
let targetAmp = effectiveAmplitude;
|
|
6623
|
+
if (determinateAnimation === "md3") {
|
|
6624
|
+
targetAmp = fraction <= 0.1 || fraction >= 0.95 ? 0 : effectiveAmplitude;
|
|
6625
|
+
}
|
|
6626
|
+
animate(amplitudeMV, targetAmp, {
|
|
6627
|
+
type: "spring",
|
|
6628
|
+
bounce: 0,
|
|
6629
|
+
duration: 0.5
|
|
6630
|
+
});
|
|
6631
|
+
}, [
|
|
6632
|
+
clampedValue,
|
|
6633
|
+
isDeterminate,
|
|
6634
|
+
isWavy,
|
|
6635
|
+
effectiveAmplitude,
|
|
6636
|
+
amplitudeMV,
|
|
6637
|
+
determinateAnimation
|
|
6638
|
+
]);
|
|
6442
6639
|
React37.useLayoutEffect(() => {
|
|
6443
6640
|
if (!isWavy || !wavyActivePath) {
|
|
6444
6641
|
cachedPathLengthRef.current = circumference;
|
|
6445
6642
|
return;
|
|
6446
6643
|
}
|
|
6447
|
-
const el = indeterminateActiveRef.current;
|
|
6644
|
+
const el = indeterminateActiveRef.current || determinateWavyActivePathRef.current;
|
|
6448
6645
|
if (el && "getTotalLength" in el) {
|
|
6449
6646
|
try {
|
|
6450
6647
|
const len = el.getTotalLength();
|
|
@@ -6458,7 +6655,65 @@ var CircularProgress = React37.forwardRef(
|
|
|
6458
6655
|
cachedPathLengthRef.current = circumference;
|
|
6459
6656
|
}, [isWavy, circumference, wavyActivePath]);
|
|
6460
6657
|
useAnimationFrame((time) => {
|
|
6461
|
-
|
|
6658
|
+
const safeWaveSpeed = Math.max(0.1, waveSpeed);
|
|
6659
|
+
const wavePhase = time / 1e3 * safeWaveSpeed * 2 * Math.PI;
|
|
6660
|
+
if (isDeterminate) {
|
|
6661
|
+
if (isWavy) {
|
|
6662
|
+
const currentAmp = amplitudeMV.get();
|
|
6663
|
+
const dynamicPath = generateWavyCircularPath(
|
|
6664
|
+
center,
|
|
6665
|
+
radius,
|
|
6666
|
+
currentAmp,
|
|
6667
|
+
effectiveWavelength,
|
|
6668
|
+
wavePhase
|
|
6669
|
+
);
|
|
6670
|
+
if (determinateWavyActivePathRef.current) {
|
|
6671
|
+
determinateWavyActivePathRef.current.setAttribute("d", dynamicPath);
|
|
6672
|
+
}
|
|
6673
|
+
if (trackShape === "wavy" && determinateWavyTrackPathRef.current) {
|
|
6674
|
+
determinateWavyTrackPathRef.current.setAttribute("d", dynamicPath);
|
|
6675
|
+
}
|
|
6676
|
+
const pathEl = determinateWavyActivePathRef.current;
|
|
6677
|
+
let totalLen = cachedPathLengthRef.current || circumference;
|
|
6678
|
+
if (pathEl) {
|
|
6679
|
+
try {
|
|
6680
|
+
const len = pathEl.getTotalLength();
|
|
6681
|
+
if (len > 0) totalLen = len;
|
|
6682
|
+
} catch (e) {
|
|
6683
|
+
}
|
|
6684
|
+
}
|
|
6685
|
+
const activeFrac = Math.max(0, Math.min(1, fractionMV.get()));
|
|
6686
|
+
const activeLen = totalLen * activeFrac;
|
|
6687
|
+
if (determinateWavyActivePathRef.current) {
|
|
6688
|
+
determinateWavyActivePathRef.current.setAttribute(
|
|
6689
|
+
"stroke-dasharray",
|
|
6690
|
+
`${activeLen} ${totalLen}`
|
|
6691
|
+
);
|
|
6692
|
+
determinateWavyActivePathRef.current.setAttribute(
|
|
6693
|
+
"stroke-dashoffset",
|
|
6694
|
+
"0"
|
|
6695
|
+
);
|
|
6696
|
+
}
|
|
6697
|
+
if (shouldShowDeterminateTrack && trackShape === "wavy" && determinateWavyTrackPathRef.current) {
|
|
6698
|
+
const gapFrac = (gapSize + trackHeight) / totalLen;
|
|
6699
|
+
const trackStartFrac = activeFrac + gapFrac;
|
|
6700
|
+
const trackLen = Math.max(
|
|
6701
|
+
1e-3,
|
|
6702
|
+
totalLen * (1 - activeFrac - 2 * gapFrac)
|
|
6703
|
+
);
|
|
6704
|
+
const trackOff = -totalLen * trackStartFrac;
|
|
6705
|
+
determinateWavyTrackPathRef.current.setAttribute(
|
|
6706
|
+
"stroke-dasharray",
|
|
6707
|
+
`${trackLen} ${totalLen}`
|
|
6708
|
+
);
|
|
6709
|
+
determinateWavyTrackPathRef.current.setAttribute(
|
|
6710
|
+
"stroke-dashoffset",
|
|
6711
|
+
`${trackOff}`
|
|
6712
|
+
);
|
|
6713
|
+
}
|
|
6714
|
+
}
|
|
6715
|
+
return;
|
|
6716
|
+
}
|
|
6462
6717
|
const safeCrawlerSpeed = Math.max(0.1, crawlerSpeed);
|
|
6463
6718
|
const scaledTime = time * safeCrawlerSpeed;
|
|
6464
6719
|
const globalCycle = scaledTime % GLOBAL_ROTATION_DURATION;
|
|
@@ -6493,7 +6748,8 @@ var CircularProgress = React37.forwardRef(
|
|
|
6493
6748
|
center,
|
|
6494
6749
|
radius,
|
|
6495
6750
|
currentAmplitude,
|
|
6496
|
-
effectiveWavelength
|
|
6751
|
+
effectiveWavelength,
|
|
6752
|
+
wavePhase
|
|
6497
6753
|
);
|
|
6498
6754
|
if (indeterminateWavyActivePathRef.current) {
|
|
6499
6755
|
indeterminateWavyActivePathRef.current.setAttribute("d", dynamicPath);
|
|
@@ -6588,7 +6844,7 @@ var CircularProgress = React37.forwardRef(
|
|
|
6588
6844
|
style: { width: size, height: size }
|
|
6589
6845
|
}, restProps), {
|
|
6590
6846
|
children: /* @__PURE__ */ jsxs(LazyMotion, { features: domMax, strict: true, children: [
|
|
6591
|
-
/* @__PURE__ */
|
|
6847
|
+
/* @__PURE__ */ jsx(
|
|
6592
6848
|
"svg",
|
|
6593
6849
|
{
|
|
6594
6850
|
width: size,
|
|
@@ -6596,8 +6852,18 @@ var CircularProgress = React37.forwardRef(
|
|
|
6596
6852
|
viewBox: `0 0 ${size} ${size}`,
|
|
6597
6853
|
"aria-hidden": "true",
|
|
6598
6854
|
style: { transform: "rotate(-90deg)", overflow: "visible" },
|
|
6599
|
-
children: [
|
|
6600
|
-
|
|
6855
|
+
children: isDeterminate ? isWavy ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
6856
|
+
shouldShowDeterminateTrack && (trackShape === "wavy" ? /* @__PURE__ */ jsx(
|
|
6857
|
+
"path",
|
|
6858
|
+
{
|
|
6859
|
+
ref: determinateWavyTrackPathRef,
|
|
6860
|
+
d: wavyActivePath != null ? wavyActivePath : "",
|
|
6861
|
+
fill: "none",
|
|
6862
|
+
stroke: bgTrackColor,
|
|
6863
|
+
strokeWidth: trackHeight,
|
|
6864
|
+
strokeLinecap: "round"
|
|
6865
|
+
}
|
|
6866
|
+
) : /* @__PURE__ */ jsx(
|
|
6601
6867
|
m.circle,
|
|
6602
6868
|
{
|
|
6603
6869
|
cx: center,
|
|
@@ -6606,28 +6872,52 @@ var CircularProgress = React37.forwardRef(
|
|
|
6606
6872
|
fill: "none",
|
|
6607
6873
|
stroke: bgTrackColor,
|
|
6608
6874
|
strokeWidth: trackHeight,
|
|
6609
|
-
initial: {
|
|
6610
|
-
|
|
6875
|
+
initial: {
|
|
6876
|
+
pathLength: trackLength,
|
|
6877
|
+
pathOffset: trackOffset
|
|
6878
|
+
},
|
|
6879
|
+
animate: {
|
|
6880
|
+
pathLength: trackLength,
|
|
6881
|
+
pathOffset: trackOffset
|
|
6882
|
+
},
|
|
6611
6883
|
transition: { duration: 0.4, ease: [0.2, 0, 0, 1] },
|
|
6612
6884
|
strokeLinecap: "round"
|
|
6613
6885
|
}
|
|
6614
|
-
)
|
|
6615
|
-
|
|
6616
|
-
|
|
6886
|
+
)),
|
|
6887
|
+
/* @__PURE__ */ jsx(
|
|
6888
|
+
"path",
|
|
6617
6889
|
{
|
|
6890
|
+
ref: determinateWavyActivePathRef,
|
|
6618
6891
|
d: wavyActivePath != null ? wavyActivePath : "",
|
|
6619
6892
|
fill: "none",
|
|
6620
6893
|
stroke: activeColor,
|
|
6621
6894
|
strokeWidth: trackHeight,
|
|
6622
|
-
strokeLinecap: "round"
|
|
6623
|
-
initial: { pathLength: 0 },
|
|
6624
|
-
animate: { pathLength: clampedValue / 100 },
|
|
6625
|
-
transition: {
|
|
6626
|
-
duration: 0.4,
|
|
6627
|
-
ease: [0.2, 0, 0, 1]
|
|
6628
|
-
}
|
|
6895
|
+
strokeLinecap: "round"
|
|
6629
6896
|
}
|
|
6630
|
-
)
|
|
6897
|
+
)
|
|
6898
|
+
] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
6899
|
+
/* @__PURE__ */ jsx(
|
|
6900
|
+
m.circle,
|
|
6901
|
+
{
|
|
6902
|
+
cx: center,
|
|
6903
|
+
cy: center,
|
|
6904
|
+
r: radius,
|
|
6905
|
+
fill: "none",
|
|
6906
|
+
stroke: bgTrackColor,
|
|
6907
|
+
strokeWidth: trackHeight,
|
|
6908
|
+
initial: {
|
|
6909
|
+
pathLength: trackLength,
|
|
6910
|
+
pathOffset: trackOffset
|
|
6911
|
+
},
|
|
6912
|
+
animate: {
|
|
6913
|
+
pathLength: trackLength,
|
|
6914
|
+
pathOffset: trackOffset
|
|
6915
|
+
},
|
|
6916
|
+
transition: { duration: 0.4, ease: [0.2, 0, 0, 1] },
|
|
6917
|
+
strokeLinecap: "round"
|
|
6918
|
+
}
|
|
6919
|
+
),
|
|
6920
|
+
/* @__PURE__ */ jsx(
|
|
6631
6921
|
ActiveCircleElem,
|
|
6632
6922
|
{
|
|
6633
6923
|
cx: center,
|
|
@@ -6644,8 +6934,8 @@ var CircularProgress = React37.forwardRef(
|
|
|
6644
6934
|
ease: [0.2, 0, 0, 1]
|
|
6645
6935
|
}
|
|
6646
6936
|
}
|
|
6647
|
-
)
|
|
6648
|
-
]
|
|
6937
|
+
)
|
|
6938
|
+
] }) : null
|
|
6649
6939
|
}
|
|
6650
6940
|
),
|
|
6651
6941
|
!isDeterminate && /* @__PURE__ */ jsx(
|
|
@@ -7328,7 +7618,7 @@ var IconButtonComponent = React37.forwardRef(
|
|
|
7328
7618
|
variant = "default",
|
|
7329
7619
|
colorStyle = "standard",
|
|
7330
7620
|
size = "sm",
|
|
7331
|
-
|
|
7621
|
+
width = "default",
|
|
7332
7622
|
shape = "round",
|
|
7333
7623
|
selected,
|
|
7334
7624
|
selectedIcon,
|
|
@@ -7346,7 +7636,7 @@ var IconButtonComponent = React37.forwardRef(
|
|
|
7346
7636
|
"variant",
|
|
7347
7637
|
"colorStyle",
|
|
7348
7638
|
"size",
|
|
7349
|
-
"
|
|
7639
|
+
"width",
|
|
7350
7640
|
"shape",
|
|
7351
7641
|
"selected",
|
|
7352
7642
|
"selectedIcon",
|
|
@@ -7391,7 +7681,7 @@ var IconButtonComponent = React37.forwardRef(
|
|
|
7391
7681
|
const iconPx = iconSize != null ? iconSize : defaultIconPx;
|
|
7392
7682
|
const isCustomSize = iconSize != null && iconSize !== "inherit";
|
|
7393
7683
|
const heightClass = (_c = SIZE_HEIGHT_STYLES[size]) != null ? _c : SIZE_HEIGHT_STYLES.sm;
|
|
7394
|
-
const widthClass = (_e = ((_d = WIDTH_SIZE_STYLES[size]) != null ? _d : WIDTH_SIZE_STYLES.sm)[
|
|
7684
|
+
const widthClass = (_e = ((_d = WIDTH_SIZE_STYLES[size]) != null ? _d : WIDTH_SIZE_STYLES.sm)[width]) != null ? _e : WIDTH_SIZE_STYLES.sm.default;
|
|
7395
7685
|
const needsTouchTarget = size === "xs" || size === "sm";
|
|
7396
7686
|
const { ripples, onPointerDown, removeRipple } = useRippleState({
|
|
7397
7687
|
disabled: loading
|
|
@@ -8014,9 +8304,9 @@ function BadgedBox({
|
|
|
8014
8304
|
badge,
|
|
8015
8305
|
children,
|
|
8016
8306
|
className,
|
|
8017
|
-
|
|
8307
|
+
size
|
|
8018
8308
|
}) {
|
|
8019
|
-
const isLarge =
|
|
8309
|
+
const isLarge = size ? size === "lg" : detectBadgeHasContent(badge);
|
|
8020
8310
|
const badgePositionClass = isLarge ? "translate-x-[35%] -translate-y-[35%]" : "translate-x-[50%] -translate-y-[50%]";
|
|
8021
8311
|
return /* @__PURE__ */ jsxs("span", { className: cn("relative inline-flex", className), children: [
|
|
8022
8312
|
children,
|
|
@@ -9027,7 +9317,7 @@ var FloatingToolbarWithFabBase = React37.forwardRef(
|
|
|
9027
9317
|
fabPosition = orientation === "horizontal" ? "end" : "bottom",
|
|
9028
9318
|
animationDuration = 0.3,
|
|
9029
9319
|
scrollBehavior,
|
|
9030
|
-
fabSize = "
|
|
9320
|
+
fabSize = "sm",
|
|
9031
9321
|
className,
|
|
9032
9322
|
style
|
|
9033
9323
|
} = _b, props = __objRest(_b, [
|
|
@@ -9047,7 +9337,7 @@ var FloatingToolbarWithFabBase = React37.forwardRef(
|
|
|
9047
9337
|
const isHorizontal = orientation === "horizontal";
|
|
9048
9338
|
const effectiveExpanded = expanded && (!scrollBehavior || scrollBehavior.isExpanded);
|
|
9049
9339
|
const isFabBefore = fabPosition === "start" || fabPosition === "top";
|
|
9050
|
-
const resolvedFabSize = fabSize === "
|
|
9340
|
+
const resolvedFabSize = fabSize === "md" ? FabBaselineTokens.MediumContainerHeight : FabBaselineTokens.ContainerHeight;
|
|
9051
9341
|
const transitionSpec = __spreadProps(__spreadValues({}, SPRING_TRANSITION), {
|
|
9052
9342
|
duration: animationDuration
|
|
9053
9343
|
});
|
|
@@ -9186,7 +9476,7 @@ var ToolbarIconButton = React37.forwardRef(
|
|
|
9186
9476
|
(_a, ref) => {
|
|
9187
9477
|
var _b = _a, {
|
|
9188
9478
|
emphasis = "standard",
|
|
9189
|
-
|
|
9479
|
+
width = "default",
|
|
9190
9480
|
selected,
|
|
9191
9481
|
asChild,
|
|
9192
9482
|
className,
|
|
@@ -9194,7 +9484,7 @@ var ToolbarIconButton = React37.forwardRef(
|
|
|
9194
9484
|
whileTap
|
|
9195
9485
|
} = _b, props = __objRest(_b, [
|
|
9196
9486
|
"emphasis",
|
|
9197
|
-
"
|
|
9487
|
+
"width",
|
|
9198
9488
|
"selected",
|
|
9199
9489
|
"asChild",
|
|
9200
9490
|
"className",
|
|
@@ -9202,7 +9492,7 @@ var ToolbarIconButton = React37.forwardRef(
|
|
|
9202
9492
|
"whileTap"
|
|
9203
9493
|
]);
|
|
9204
9494
|
const context = useToolbarContext();
|
|
9205
|
-
const widthClass = TOOLBAR_ICON_BUTTON_WIDTH[
|
|
9495
|
+
const widthClass = TOOLBAR_ICON_BUTTON_WIDTH[width];
|
|
9206
9496
|
const colorStyle = VARIANT_TO_COLOR_STYLE[emphasis];
|
|
9207
9497
|
const iconButtonProps = selected !== void 0 ? {
|
|
9208
9498
|
variant: "toggle",
|
|
@@ -9537,6 +9827,6 @@ var ToolbarToggleButton = React37.forwardRef(
|
|
|
9537
9827
|
);
|
|
9538
9828
|
ToolbarToggleButton.displayName = "ToolbarToggleButton";
|
|
9539
9829
|
|
|
9540
|
-
export { APP_BAR_BOTTOM_SPRING, APP_BAR_COLORS, APP_BAR_COLOR_TRANSITION, APP_BAR_ENTER_ALWAYS_SPRING, APP_BAR_TITLE_FADE, AppBarColumn, AppBarOverflowIndicator, AppBarRow, AppBarTokens, BottomAppBar, BottomDockedToolbar, CHECK_ICON_VARIANTS, ContextMenu, ContextMenuContent, ContextMenuTrigger, DIVIDER_COLOR, DIVIDER_PADDING, DockedToolbar, FAST_EFFECTS_TRANSITION, FAST_SPATIAL_SPRING, GROUP_SHAPES, HorizontalFloatingToolbar, HorizontalFloatingToolbarWithFab, ITEM_SHAPE_CLASSES, LargeFlexibleAppBar, MENU_CHECK_ICON_SIZE, MENU_CONTAINER_VARIANTS, MENU_GROUP_GAP, MENU_ICON_SIZE, MENU_ITEM_MIN_HEIGHT, MENU_MAX_WIDTH, MENU_MIN_WIDTH, MediumFlexibleAppBar, Menu, MenuContent, MenuDivider, MenuGroup, MenuItem, MenuProvider, MenuTrigger, NavigationBar, NavigationBarComponent, NavigationBarItem, NavigationRail, NavigationRailItem, SEARCH_BAR_EXIT_SPRING, SEARCH_BAR_EXPAND_SPRING, SEARCH_COLORS, SEARCH_DOCKED_REVEAL_SPRING, SEARCH_FULLSCREEN_SPRING, SEARCH_TYPOGRAPHY, SEARCH_VIEW_SPRING, STANDARD_COLORS, SUBMENU_CONTAINER_VARIANTS, Search, SearchAppBar, SearchBar, SearchTokens, SearchView, SearchViewContainer, SearchViewDocked, SearchViewFullScreen, SmallAppBar, SubMenu, Tab, Tabs, TabsColors, TabsContent, TabsList, TabsTokens, ToolbarDivider, ToolbarDividerTokens, ToolbarIconButton, ToolbarIconButtonTokens, ToolbarToggleButton, ToolbarToggleButtonTokens, VIBRANT_COLORS, VerticalFloatingToolbar, VerticalFloatingToolbarWithFab, VerticalMenu, VerticalMenuContent, VerticalMenuDivider, VerticalMenuGroup, appBarTypography, getNavigationShapeStyle, getToolbarColors, isSquareShape, standardFloatingToolbarColors, surfaceContainerHighFloatingToolbarColors, surfaceContainerHighestFloatingToolbarColors, tertiaryContainerFloatingToolbarColors, useAppBarScroll, useFloatingToolbarScrollBehavior, useMenuContext, useSearch, useSearchKeyboard, vibrantFloatingToolbarColors, xrFloatingToolbarColors };
|
|
9830
|
+
export { APP_BAR_BOTTOM_SPRING, APP_BAR_COLORS, APP_BAR_COLOR_TRANSITION, APP_BAR_ENTER_ALWAYS_SPRING, APP_BAR_TITLE_FADE, AppBarColumn, AppBarOverflowIndicator, AppBarRow, AppBarTokens, BottomAppBar, BottomDockedToolbar, CHECK_ICON_VARIANTS, ContextMenu, ContextMenuContent, ContextMenuTrigger, DIVIDER_COLOR, DIVIDER_PADDING, DockedToolbar, FAST_EFFECTS_TRANSITION, FAST_SPATIAL_SPRING, FadingBlurMask, GROUP_SHAPES, HorizontalFloatingToolbar, HorizontalFloatingToolbarWithFab, ITEM_SHAPE_CLASSES, LargeFlexibleAppBar, MENU_CHECK_ICON_SIZE, MENU_CONTAINER_VARIANTS, MENU_GROUP_GAP, MENU_ICON_SIZE, MENU_ITEM_MIN_HEIGHT, MENU_MAX_WIDTH, MENU_MIN_WIDTH, MediumFlexibleAppBar, Menu, MenuContent, MenuDivider, MenuGroup, MenuItem, MenuProvider, MenuTrigger, NavigationBar, NavigationBarComponent, NavigationBarItem, NavigationRail, NavigationRailItem, SEARCH_BAR_EXIT_SPRING, SEARCH_BAR_EXPAND_SPRING, SEARCH_COLORS, SEARCH_DOCKED_REVEAL_SPRING, SEARCH_FULLSCREEN_SPRING, SEARCH_TYPOGRAPHY, SEARCH_VIEW_SPRING, STANDARD_COLORS, SUBMENU_CONTAINER_VARIANTS, Search, SearchAppBar, SearchBar, SearchTokens, SearchView, SearchViewContainer, SearchViewDocked, SearchViewFullScreen, SmallAppBar, SubMenu, Tab, Tabs, TabsColors, TabsContent, TabsList, TabsTokens, ToolbarDivider, ToolbarDividerTokens, ToolbarIconButton, ToolbarIconButtonTokens, ToolbarToggleButton, ToolbarToggleButtonTokens, VIBRANT_COLORS, VerticalFloatingToolbar, VerticalFloatingToolbarWithFab, VerticalMenu, VerticalMenuContent, VerticalMenuDivider, VerticalMenuGroup, appBarTypography, getNavigationShapeStyle, getToolbarColors, isSquareShape, standardFloatingToolbarColors, surfaceContainerHighFloatingToolbarColors, surfaceContainerHighestFloatingToolbarColors, tertiaryContainerFloatingToolbarColors, useAppBarScroll, useFloatingToolbarScrollBehavior, useMenuContext, useSearch, useSearchKeyboard, vibrantFloatingToolbarColors, xrFloatingToolbarColors };
|
|
9541
9831
|
//# sourceMappingURL=navigation.mjs.map
|
|
9542
9832
|
//# sourceMappingURL=navigation.mjs.map
|