@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.
Files changed (62) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/buttons.d.mts +3 -3
  3. package/dist/buttons.d.ts +3 -3
  4. package/dist/buttons.js +195 -50
  5. package/dist/buttons.js.map +1 -1
  6. package/dist/buttons.mjs +196 -51
  7. package/dist/buttons.mjs.map +1 -1
  8. package/dist/{core-D4048_K5.d.mts → core-CAU8g2HY.d.mts} +1 -1
  9. package/dist/{core-Bc5Wj_pc.d.ts → core-DRrLnsnJ.d.ts} +1 -1
  10. package/dist/core.d.mts +2 -2
  11. package/dist/core.d.ts +2 -2
  12. package/dist/core.js +159 -28
  13. package/dist/core.js.map +1 -1
  14. package/dist/core.mjs +160 -29
  15. package/dist/core.mjs.map +1 -1
  16. package/dist/feedback.d.mts +28 -6
  17. package/dist/feedback.d.ts +28 -6
  18. package/dist/feedback.js +161 -30
  19. package/dist/feedback.js.map +1 -1
  20. package/dist/feedback.mjs +162 -31
  21. package/dist/feedback.mjs.map +1 -1
  22. package/dist/forms.d.mts +3 -2
  23. package/dist/forms.d.ts +3 -2
  24. package/dist/forms.js +88 -100
  25. package/dist/forms.js.map +1 -1
  26. package/dist/forms.mjs +88 -100
  27. package/dist/forms.mjs.map +1 -1
  28. package/dist/{icon-button-CSsDmuQC.d.mts → icon-button-CqdQBsRe.d.ts} +11 -5
  29. package/dist/{icon-button-CSsDmuQC.d.ts → icon-button-USJo7AqO.d.mts} +11 -5
  30. package/dist/index.d.mts +8 -8
  31. package/dist/index.d.ts +8 -8
  32. package/dist/index.js +570 -309
  33. package/dist/index.js.map +1 -1
  34. package/dist/index.mjs +570 -310
  35. package/dist/index.mjs.map +1 -1
  36. package/dist/layout.d.mts +1 -1
  37. package/dist/layout.d.ts +1 -1
  38. package/dist/layout.js +159 -60
  39. package/dist/layout.js.map +1 -1
  40. package/dist/layout.mjs +160 -61
  41. package/dist/layout.mjs.map +1 -1
  42. package/dist/{md3-Dty-Qcad.d.mts → md3-D0_Z7IXj.d.mts} +9 -1
  43. package/dist/{md3-Dty-Qcad.d.ts → md3-D0_Z7IXj.d.ts} +9 -1
  44. package/dist/navigation.d.mts +103 -33
  45. package/dist/navigation.d.ts +103 -33
  46. package/dist/navigation.js +443 -152
  47. package/dist/navigation.js.map +1 -1
  48. package/dist/navigation.mjs +444 -154
  49. package/dist/navigation.mjs.map +1 -1
  50. package/dist/overlays.js +159 -28
  51. package/dist/overlays.js.map +1 -1
  52. package/dist/overlays.mjs +160 -29
  53. package/dist/overlays.mjs.map +1 -1
  54. package/dist/pickers.js +159 -28
  55. package/dist/pickers.js.map +1 -1
  56. package/dist/pickers.mjs +160 -29
  57. package/dist/pickers.mjs.map +1 -1
  58. package/dist/{split-button-trailing-uncheckable-DPJL3bO6.d.mts → split-button-trailing-uncheckable-CIVEYgjY.d.mts} +12 -7
  59. package/dist/{split-button-trailing-uncheckable--BhNTEJw.d.ts → split-button-trailing-uncheckable-DTQJjzsB.d.ts} +12 -7
  60. package/dist/{text-field-DWC7qOvp.d.mts → text-field-CiOmDM_8.d.ts} +52 -51
  61. package/dist/{text-field-DWC7qOvp.d.ts → text-field-Ear3hCSq.d.mts} +52 -51
  62. package/package.json +3 -3
@@ -1,12 +1,12 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var React37 = require('react');
4
+ var react = require('motion/react');
5
5
  var clsx = require('clsx');
6
6
  var tailwindMerge = require('tailwind-merge');
7
7
  var jsxRuntime = require('react/jsx-runtime');
8
+ var React37 = require('react');
8
9
  var RxContextMenu = require('@radix-ui/react-context-menu');
9
- var react = require('motion/react');
10
10
  var m3Tokens = require('@bug-on/m3-tokens');
11
11
  var DropdownMenu = require('@radix-ui/react-dropdown-menu');
12
12
  var reactSlot = require('@radix-ui/react-slot');
@@ -66,6 +66,55 @@ var __objRest = (source, exclude) => {
66
66
  }
67
67
  return target;
68
68
  };
69
+ function cn(...inputs) {
70
+ return tailwindMerge.twMerge(clsx.clsx(inputs));
71
+ }
72
+ function getMaskGradient(direction) {
73
+ switch (direction) {
74
+ case "bottom":
75
+ 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%)";
76
+ case "both":
77
+ 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%)";
78
+ default:
79
+ 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%)";
80
+ }
81
+ }
82
+ function FadingBlurMask({
83
+ direction = "top",
84
+ blurIntensity = 12,
85
+ blurHeight = "100%",
86
+ color = "var(--md-sys-color-surface)",
87
+ className,
88
+ style,
89
+ children
90
+ }) {
91
+ const shouldReduceMotion = react.useReducedMotion();
92
+ const activeBlur = shouldReduceMotion ? 0 : blurIntensity;
93
+ const maskGradient = getMaskGradient(direction);
94
+ const maskStyle = __spreadValues({
95
+ position: "absolute",
96
+ inset: 0,
97
+ pointerEvents: "none",
98
+ height: typeof blurHeight === "number" ? `${blurHeight}px` : blurHeight,
99
+ backdropFilter: activeBlur > 0 ? `blur(${activeBlur}px)` : void 0,
100
+ WebkitBackdropFilter: activeBlur > 0 ? `blur(${activeBlur}px)` : void 0,
101
+ maskImage: maskGradient,
102
+ WebkitMaskImage: maskGradient,
103
+ backgroundColor: color
104
+ }, style);
105
+ return /* @__PURE__ */ jsxRuntime.jsx(
106
+ "div",
107
+ {
108
+ "aria-hidden": "true",
109
+ className: cn(
110
+ "absolute inset-0 pointer-events-none z-0 rounded-[inherit]",
111
+ className
112
+ ),
113
+ style: maskStyle,
114
+ children
115
+ }
116
+ );
117
+ }
69
118
 
70
119
  // src/ui/shared/motion-tokens.ts
71
120
  var FAST_SPATIAL_SPRING = {
@@ -220,9 +269,6 @@ var APP_BAR_TITLE_FADE = {
220
269
  duration: 0.15,
221
270
  ease: "easeInOut"
222
271
  };
223
- function cn(...inputs) {
224
- return tailwindMerge.twMerge(clsx.clsx(inputs));
225
- }
226
272
  function AppBarItemButton({ item }) {
227
273
  const isDisabled = item.enabled === false;
228
274
  if (item.type === "custom" && item.appBarContent) {
@@ -1749,7 +1795,10 @@ function BottomAppBar({
1749
1795
  floatingActionButton,
1750
1796
  scrollBehavior = "visible",
1751
1797
  scrollElement,
1752
- className
1798
+ className,
1799
+ enableFadingBlur,
1800
+ blurIntensity,
1801
+ blurHeight
1753
1802
  }) {
1754
1803
  const shouldReduceMotion = react.useReducedMotion();
1755
1804
  const { isHidden } = useAppBarScroll({
@@ -1764,9 +1813,9 @@ function BottomAppBar({
1764
1813
  role: "navigation",
1765
1814
  "aria-label": "Bottom app bar",
1766
1815
  className: cn(
1767
- "fixed bottom-0 inset-x-0 z-50",
1816
+ "fixed bottom-0 inset-x-0 z-50 overflow-hidden rounded-[inherit]",
1768
1817
  "flex items-center",
1769
- "bg-m3-surface-container",
1818
+ !enableFadingBlur && "bg-m3-surface-container",
1770
1819
  "px-2",
1771
1820
  // minimal horizontal padding, icon buttons provide spacing
1772
1821
  "elevation-2",
@@ -1779,8 +1828,19 @@ function BottomAppBar({
1779
1828
  animate: { y: translateY },
1780
1829
  transition: hideTransition,
1781
1830
  children: [
1782
- actions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center flex-1", children: actions }),
1783
- floatingActionButton && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0 ml-auto mr-2", children: floatingActionButton })
1831
+ enableFadingBlur && /* @__PURE__ */ jsxRuntime.jsx(
1832
+ FadingBlurMask,
1833
+ {
1834
+ direction: "bottom",
1835
+ blurIntensity,
1836
+ blurHeight,
1837
+ color: "var(--md-sys-color-surface-container)"
1838
+ }
1839
+ ),
1840
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative z-10 flex items-center w-full h-full", children: [
1841
+ actions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center flex-1", children: actions }),
1842
+ floatingActionButton && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0 ml-auto mr-2", children: floatingActionButton })
1843
+ ] })
1784
1844
  ]
1785
1845
  }
1786
1846
  );
@@ -1888,7 +1948,10 @@ function LargeFlexibleAppBar({
1888
1948
  headerContent,
1889
1949
  collapsedHeight = AppBarTokens.heights.flexibleCollapsed,
1890
1950
  expandedHeight,
1891
- className
1951
+ className,
1952
+ enableFadingBlur,
1953
+ blurIntensity,
1954
+ blurHeight
1892
1955
  }) {
1893
1956
  var _a, _b, _c;
1894
1957
  const resolvedExpandedHeight = expandedHeight != null ? expandedHeight : subtitle ? AppBarTokens.heights.largeFlexWithSubtitleExpanded : AppBarTokens.heights.largeFlexExpanded;
@@ -1918,15 +1981,28 @@ function LargeFlexibleAppBar({
1918
1981
  {
1919
1982
  role: "banner",
1920
1983
  className: cn(
1921
- "fixed top-0 inset-x-0 z-50 flex flex-col overflow-hidden",
1984
+ "fixed top-0 inset-x-0 z-50 flex flex-col overflow-hidden rounded-[inherit]",
1922
1985
  className
1923
1986
  ),
1924
- style: { height, backgroundColor: currentBg, transition: cssTransition },
1987
+ style: {
1988
+ height,
1989
+ backgroundColor: enableFadingBlur ? "transparent" : currentBg,
1990
+ transition: cssTransition
1991
+ },
1925
1992
  children: [
1993
+ enableFadingBlur && /* @__PURE__ */ jsxRuntime.jsx(
1994
+ FadingBlurMask,
1995
+ {
1996
+ direction: "top",
1997
+ blurIntensity,
1998
+ blurHeight,
1999
+ color: currentBg
2000
+ }
2001
+ ),
1926
2002
  /* @__PURE__ */ jsxRuntime.jsxs(
1927
2003
  "div",
1928
2004
  {
1929
- className: "flex items-center px-1 shrink-0",
2005
+ className: "relative z-10 flex items-center px-1 shrink-0",
1930
2006
  style: { height: collapsedHeight },
1931
2007
  children: [
1932
2008
  navigationIcon && /* @__PURE__ */ jsxRuntime.jsx(
@@ -1968,7 +2044,7 @@ function LargeFlexibleAppBar({
1968
2044
  "div",
1969
2045
  {
1970
2046
  className: cn(
1971
- "flex flex-col flex-1 px-4 pb-4 justify-end",
2047
+ "relative z-10 flex flex-col flex-1 px-4 pb-3 justify-end",
1972
2048
  isCentered ? "items-center" : "items-start"
1973
2049
  ),
1974
2050
  children: [
@@ -2021,7 +2097,10 @@ function MediumFlexibleAppBar({
2021
2097
  headerContent,
2022
2098
  collapsedHeight = AppBarTokens.heights.flexibleCollapsed,
2023
2099
  expandedHeight,
2024
- className
2100
+ className,
2101
+ enableFadingBlur,
2102
+ blurIntensity,
2103
+ blurHeight
2025
2104
  }) {
2026
2105
  var _a, _b, _c;
2027
2106
  const resolvedExpandedHeight = expandedHeight != null ? expandedHeight : subtitle ? AppBarTokens.heights.mediumFlexWithSubtitleExpanded : AppBarTokens.heights.mediumFlexExpanded;
@@ -2051,15 +2130,28 @@ function MediumFlexibleAppBar({
2051
2130
  {
2052
2131
  role: "banner",
2053
2132
  className: cn(
2054
- "fixed top-0 inset-x-0 z-50 flex flex-col overflow-hidden",
2133
+ "fixed top-0 inset-x-0 z-50 flex flex-col overflow-hidden rounded-[inherit]",
2055
2134
  className
2056
2135
  ),
2057
- style: { height, backgroundColor: currentBg, transition: cssTransition },
2136
+ style: {
2137
+ height,
2138
+ backgroundColor: enableFadingBlur ? "transparent" : currentBg,
2139
+ transition: cssTransition
2140
+ },
2058
2141
  children: [
2142
+ enableFadingBlur && /* @__PURE__ */ jsxRuntime.jsx(
2143
+ FadingBlurMask,
2144
+ {
2145
+ direction: "top",
2146
+ blurIntensity,
2147
+ blurHeight,
2148
+ color: currentBg
2149
+ }
2150
+ ),
2059
2151
  /* @__PURE__ */ jsxRuntime.jsxs(
2060
2152
  "div",
2061
2153
  {
2062
- className: "flex items-center px-1 shrink-0",
2154
+ className: "relative z-10 flex items-center px-1 shrink-0",
2063
2155
  style: { height: collapsedHeight },
2064
2156
  children: [
2065
2157
  navigationIcon && /* @__PURE__ */ jsxRuntime.jsx(
@@ -2101,7 +2193,7 @@ function MediumFlexibleAppBar({
2101
2193
  "div",
2102
2194
  {
2103
2195
  className: cn(
2104
- "flex flex-col flex-1 px-4 pb-3 justify-end",
2196
+ "relative z-10 flex flex-col flex-1 px-4 pb-3 justify-end",
2105
2197
  isCentered ? "items-center" : "items-start"
2106
2198
  ),
2107
2199
  children: [
@@ -2148,7 +2240,7 @@ function SearchIcon({ className }) {
2148
2240
  "span",
2149
2241
  {
2150
2242
  className: cn(
2151
- "material-symbols-rounded text-[20px] leading-none select-none",
2243
+ "material-symbols-rounded text-[20px] leading-none select-none flex items-center justify-center",
2152
2244
  className
2153
2245
  ),
2154
2246
  "aria-hidden": "true",
@@ -2168,7 +2260,12 @@ function SearchAppBar({
2168
2260
  scrollBehavior = "pinned",
2169
2261
  scrollElement,
2170
2262
  searchBarId = "search-bar",
2171
- className
2263
+ searchBarVariant = "filled",
2264
+ searchBarHeight = 56,
2265
+ className,
2266
+ enableFadingBlur,
2267
+ blurIntensity,
2268
+ blurHeight
2172
2269
  }) {
2173
2270
  var _a, _b;
2174
2271
  const shouldReduceMotion = react.useReducedMotion();
@@ -2191,65 +2288,92 @@ function SearchAppBar({
2191
2288
  handleSearchClick();
2192
2289
  }
2193
2290
  };
2291
+ const searchBarBg = isScrolled ? "var(--md-sys-color-surface-container-highest)" : APP_BAR_COLORS.searchBarBg;
2292
+ const isOutlined = searchBarVariant === "outlined";
2194
2293
  return /* @__PURE__ */ jsxRuntime.jsxs(
2195
2294
  react.m.header,
2196
2295
  {
2197
2296
  role: "banner",
2198
2297
  className: cn(
2199
- "fixed top-0 inset-x-0 z-50 flex items-center gap-2 px-4",
2298
+ "fixed top-0 inset-x-0 z-50 flex items-center gap-2 px-4 overflow-hidden rounded-[inherit]",
2200
2299
  className
2201
2300
  ),
2202
2301
  style: {
2203
2302
  height: AppBarTokens.heights.small,
2204
- backgroundColor: currentBg,
2303
+ backgroundColor: enableFadingBlur ? "transparent" : currentBg,
2205
2304
  transition: cssTransition
2206
2305
  },
2207
2306
  children: [
2208
- navigationIcon && /* @__PURE__ */ jsxRuntime.jsx(
2209
- "div",
2307
+ enableFadingBlur && /* @__PURE__ */ jsxRuntime.jsx(
2308
+ FadingBlurMask,
2210
2309
  {
2211
- className: "shrink-0 flex items-center justify-center",
2212
- style: {
2213
- width: AppBarTokens.iconButtonTouchTarget,
2214
- height: AppBarTokens.iconButtonTouchTarget
2215
- },
2216
- children: navigationIcon
2310
+ direction: "top",
2311
+ blurIntensity,
2312
+ blurHeight,
2313
+ color: currentBg
2217
2314
  }
2218
2315
  ),
2219
- /* @__PURE__ */ jsxRuntime.jsxs(
2220
- react.m.div,
2221
- {
2222
- layoutId: shouldReduceMotion ? void 0 : searchBarId,
2223
- role: "search",
2224
- "aria-label": searchPlaceholder,
2225
- "aria-expanded": isSearchOpen,
2226
- tabIndex: 0,
2227
- className: "relative flex flex-1 items-center gap-2 rounded-full cursor-text h-10 px-4 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",
2228
- onClick: handleSearchClick,
2229
- onKeyDown: handleKeyDown,
2230
- children: [
2231
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0 rounded-full bg-m3-surface-container-high -z-10" }),
2232
- /* @__PURE__ */ jsxRuntime.jsx(
2233
- "span",
2234
- {
2235
- className: "shrink-0",
2236
- style: { color: APP_BAR_COLORS.searchBarContent },
2237
- children: leadingSearchIcon != null ? leadingSearchIcon : /* @__PURE__ */ jsxRuntime.jsx(SearchIcon, {})
2238
- }
2239
- ),
2240
- /* @__PURE__ */ jsxRuntime.jsx(
2241
- "span",
2242
- {
2243
- className: "flex-1 text-[16px] leading-6 truncate select-none",
2244
- style: { color: APP_BAR_COLORS.searchBarContent },
2245
- children: searchValue != null ? searchValue : searchPlaceholder
2246
- }
2316
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative z-10 flex items-center gap-2 w-full h-full", children: [
2317
+ navigationIcon && /* @__PURE__ */ jsxRuntime.jsx(
2318
+ "div",
2319
+ {
2320
+ className: "shrink-0 flex items-center justify-center",
2321
+ style: {
2322
+ width: AppBarTokens.iconButtonTouchTarget,
2323
+ height: AppBarTokens.iconButtonTouchTarget
2324
+ },
2325
+ children: navigationIcon
2326
+ }
2327
+ ),
2328
+ /* @__PURE__ */ jsxRuntime.jsxs(
2329
+ react.m.div,
2330
+ {
2331
+ layoutId: shouldReduceMotion ? void 0 : searchBarId,
2332
+ role: "search",
2333
+ "aria-label": searchPlaceholder,
2334
+ "aria-expanded": isSearchOpen,
2335
+ tabIndex: 0,
2336
+ className: cn(
2337
+ "relative flex flex-1 items-center gap-2 rounded-full cursor-text px-4",
2338
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",
2339
+ isOutlined && "border border-(--md-sys-color-outline)"
2247
2340
  ),
2248
- trailingSearchActions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center shrink-0", children: trailingSearchActions })
2249
- ]
2250
- }
2251
- ),
2252
- externalActions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center shrink-0", children: externalActions })
2341
+ style: { height: searchBarHeight },
2342
+ onClick: handleSearchClick,
2343
+ onKeyDown: handleKeyDown,
2344
+ children: [
2345
+ !isOutlined && /* @__PURE__ */ jsxRuntime.jsx(
2346
+ "div",
2347
+ {
2348
+ className: "absolute inset-0 rounded-full -z-10 transition-colors",
2349
+ style: {
2350
+ backgroundColor: searchBarBg,
2351
+ transition: cssTransition
2352
+ }
2353
+ }
2354
+ ),
2355
+ /* @__PURE__ */ jsxRuntime.jsx(
2356
+ "span",
2357
+ {
2358
+ className: "shrink-0 flex items-center justify-center h-full",
2359
+ style: { color: APP_BAR_COLORS.searchBarContent },
2360
+ children: leadingSearchIcon != null ? leadingSearchIcon : /* @__PURE__ */ jsxRuntime.jsx(SearchIcon, {})
2361
+ }
2362
+ ),
2363
+ /* @__PURE__ */ jsxRuntime.jsx(
2364
+ "span",
2365
+ {
2366
+ className: "flex-1 text-[16px] leading-6 truncate select-none",
2367
+ style: { color: APP_BAR_COLORS.searchBarContent },
2368
+ children: searchValue != null ? searchValue : searchPlaceholder
2369
+ }
2370
+ ),
2371
+ trailingSearchActions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center shrink-0", children: trailingSearchActions })
2372
+ ]
2373
+ }
2374
+ ),
2375
+ externalActions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center shrink-0", children: externalActions })
2376
+ ] })
2253
2377
  ]
2254
2378
  }
2255
2379
  );
@@ -2422,9 +2546,11 @@ function SmallAppBarInner({
2422
2546
  navigationIcon,
2423
2547
  actions,
2424
2548
  colors,
2425
- className,
2426
2549
  currentBg,
2427
- cssTransition
2550
+ cssTransition,
2551
+ enableFadingBlur,
2552
+ blurIntensity,
2553
+ blurHeight
2428
2554
  }) {
2429
2555
  var _a, _b;
2430
2556
  const isCentered = titleAlignment === "center";
@@ -2432,57 +2558,81 @@ function SmallAppBarInner({
2432
2558
  react.m.header,
2433
2559
  {
2434
2560
  role: "banner",
2435
- className: cn("flex items-center px-1 h-full w-full", className),
2436
- style: { backgroundColor: currentBg, transition: cssTransition },
2561
+ className: "relative flex items-center px-1 h-full w-full overflow-hidden rounded-[inherit]",
2562
+ style: {
2563
+ backgroundColor: enableFadingBlur ? "transparent" : currentBg,
2564
+ transition: cssTransition
2565
+ },
2437
2566
  children: [
2438
- navigationIcon && /* @__PURE__ */ jsxRuntime.jsx(
2439
- "div",
2567
+ enableFadingBlur && /* @__PURE__ */ jsxRuntime.jsx(
2568
+ FadingBlurMask,
2440
2569
  {
2441
- className: "shrink-0 flex items-center justify-center",
2442
- style: {
2443
- width: AppBarTokens.iconButtonTouchTarget,
2444
- height: AppBarTokens.iconButtonTouchTarget
2445
- },
2446
- children: navigationIcon
2570
+ direction: "top",
2571
+ blurIntensity,
2572
+ blurHeight,
2573
+ color: currentBg
2447
2574
  }
2448
2575
  ),
2449
- /* @__PURE__ */ jsxRuntime.jsxs(
2450
- "div",
2451
- {
2452
- className: cn(
2453
- "flex-1 flex flex-col justify-center min-w-0",
2454
- isCentered ? "items-center" : "items-start",
2455
- !navigationIcon && "pl-4"
2456
- ),
2457
- children: [
2458
- /* @__PURE__ */ jsxRuntime.jsx(
2459
- "span",
2460
- {
2461
- className: cn(
2462
- appBarTypography.titleLarge,
2463
- "truncate w-full",
2464
- isCentered && "text-center"
2465
- ),
2466
- style: { color: (_a = colors == null ? void 0 : colors.titleColor) != null ? _a : APP_BAR_COLORS.title },
2467
- children: title
2468
- }
2576
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative z-10 flex items-center w-full h-full", children: [
2577
+ navigationIcon && /* @__PURE__ */ jsxRuntime.jsx(
2578
+ "div",
2579
+ {
2580
+ className: "shrink-0 flex items-center justify-center",
2581
+ style: {
2582
+ width: AppBarTokens.iconButtonTouchTarget,
2583
+ height: AppBarTokens.iconButtonTouchTarget
2584
+ },
2585
+ children: navigationIcon
2586
+ }
2587
+ ),
2588
+ /* @__PURE__ */ jsxRuntime.jsxs(
2589
+ "div",
2590
+ {
2591
+ className: cn(
2592
+ "flex-1 flex flex-col justify-center min-w-0",
2593
+ isCentered ? "items-center" : "items-start",
2594
+ !navigationIcon && !isCentered && "pl-4"
2469
2595
  ),
2470
- subtitle && /* @__PURE__ */ jsxRuntime.jsx(
2471
- "span",
2472
- {
2473
- className: cn(
2474
- appBarTypography.labelMedium,
2475
- "truncate w-full",
2476
- isCentered && "text-center"
2477
- ),
2478
- style: { color: (_b = colors == null ? void 0 : colors.subtitleColor) != null ? _b : APP_BAR_COLORS.subtitle },
2479
- children: subtitle
2480
- }
2481
- )
2482
- ]
2483
- }
2484
- ),
2485
- actions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center shrink-0", children: actions })
2596
+ children: [
2597
+ /* @__PURE__ */ jsxRuntime.jsx(
2598
+ "span",
2599
+ {
2600
+ className: cn(
2601
+ appBarTypography.titleLarge,
2602
+ "truncate w-full",
2603
+ isCentered && "text-center"
2604
+ ),
2605
+ style: { color: (_a = colors == null ? void 0 : colors.titleColor) != null ? _a : APP_BAR_COLORS.title },
2606
+ children: title
2607
+ }
2608
+ ),
2609
+ subtitle && /* @__PURE__ */ jsxRuntime.jsx(
2610
+ "span",
2611
+ {
2612
+ className: cn(
2613
+ appBarTypography.labelMedium,
2614
+ "truncate w-full",
2615
+ isCentered && "text-center"
2616
+ ),
2617
+ style: {
2618
+ color: (_b = colors == null ? void 0 : colors.subtitleColor) != null ? _b : APP_BAR_COLORS.subtitle
2619
+ },
2620
+ children: subtitle
2621
+ }
2622
+ )
2623
+ ]
2624
+ }
2625
+ ),
2626
+ isCentered && !actions && navigationIcon && /* @__PURE__ */ jsxRuntime.jsx(
2627
+ "div",
2628
+ {
2629
+ "aria-hidden": "true",
2630
+ style: { width: AppBarTokens.iconButtonTouchTarget },
2631
+ className: "shrink-0"
2632
+ }
2633
+ ),
2634
+ actions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center shrink-0", children: actions })
2635
+ ] })
2486
2636
  ]
2487
2637
  }
2488
2638
  );
@@ -2496,7 +2646,10 @@ function SmallAppBar({
2496
2646
  colors,
2497
2647
  scrollBehavior = "pinned",
2498
2648
  scrollElement,
2499
- className
2649
+ className,
2650
+ enableFadingBlur,
2651
+ blurIntensity,
2652
+ blurHeight
2500
2653
  }) {
2501
2654
  var _a, _b;
2502
2655
  const shouldReduceMotion = react.useReducedMotion();
@@ -2516,14 +2669,17 @@ function SmallAppBar({
2516
2669
  actions,
2517
2670
  colors,
2518
2671
  currentBg,
2519
- cssTransition
2672
+ cssTransition,
2673
+ enableFadingBlur,
2674
+ blurIntensity,
2675
+ blurHeight
2520
2676
  };
2521
2677
  const barHeight = AppBarTokens.heights.small;
2522
2678
  if (scrollBehavior !== "enterAlways") {
2523
2679
  return /* @__PURE__ */ jsxRuntime.jsx(
2524
2680
  "div",
2525
2681
  {
2526
- className: cn("fixed top-0 inset-x-0 z-50", className),
2682
+ className: cn("fixed top-0 inset-x-0 z-50 overflow-hidden", className),
2527
2683
  style: { height: barHeight },
2528
2684
  children: /* @__PURE__ */ jsxRuntime.jsx(SmallAppBarInner, __spreadValues({}, innerProps))
2529
2685
  }
@@ -2536,7 +2692,10 @@ function SmallAppBar({
2536
2692
  animate: { y: 0 },
2537
2693
  exit: { y: "-100%" },
2538
2694
  transition: shouldReduceMotion ? { duration: 0 } : APP_BAR_ENTER_ALWAYS_SPRING,
2539
- className: cn("fixed top-0 inset-x-0 z-50", className),
2695
+ className: cn(
2696
+ "fixed top-0 inset-x-0 z-50 overflow-hidden",
2697
+ className
2698
+ ),
2540
2699
  style: { height: barHeight },
2541
2700
  children: /* @__PURE__ */ jsxRuntime.jsx(SmallAppBarInner, __spreadValues({}, innerProps))
2542
2701
  },
@@ -6311,7 +6470,7 @@ LoadingIndicator.displayName = "LoadingIndicator";
6311
6470
  function easeInOutCubic(x) {
6312
6471
  return x < 0.5 ? 4 * x * x * x : 1 - (-2 * x + 2) ** 3 / 2;
6313
6472
  }
6314
- function generateWavyCircularPath(center, radius, amplitude, wavelength) {
6473
+ function generateWavyCircularPath(center, radius, amplitude, wavelength, phase = 0) {
6315
6474
  const circumference = 2 * Math.PI * radius;
6316
6475
  const numWaves = Math.max(
6317
6476
  3,
@@ -6319,8 +6478,8 @@ function generateWavyCircularPath(center, radius, amplitude, wavelength) {
6319
6478
  );
6320
6479
  const steps = numWaves * 4;
6321
6480
  const dt = 2 * Math.PI / steps;
6322
- const rAt = (t) => radius + amplitude * Math.sin(numWaves * t);
6323
- const drAt = (t) => amplitude * numWaves * Math.cos(numWaves * t);
6481
+ const rAt = (t) => radius + amplitude * Math.sin(numWaves * t + phase);
6482
+ const drAt = (t) => amplitude * numWaves * Math.cos(numWaves * t + phase);
6324
6483
  const xAt = (t) => center + rAt(t) * Math.cos(t);
6325
6484
  const yAt = (t) => center + rAt(t) * Math.sin(t);
6326
6485
  const dxAt = (t) => drAt(t) * Math.cos(t) - rAt(t) * Math.sin(t);
@@ -6385,15 +6544,18 @@ var CircularProgress = React37__namespace.forwardRef(
6385
6544
  size = 48,
6386
6545
  trackHeight = 4,
6387
6546
  shape = "flat",
6547
+ trackShape = "flat",
6388
6548
  amplitude,
6389
6549
  wavelength,
6390
6550
  gapSize = 4,
6551
+ waveSpeed = 1,
6391
6552
  crawlerSpeed = 1,
6392
6553
  color,
6393
6554
  trackColor,
6394
6555
  showTrack = "auto",
6395
6556
  minProgress = DEFAULT_MIN_PROGRESS,
6396
6557
  maxProgress = DEFAULT_MAX_PROGRESS,
6558
+ determinateAnimation = "md3",
6397
6559
  amplitudeRange,
6398
6560
  className,
6399
6561
  "aria-label": ariaLabel
@@ -6402,15 +6564,18 @@ var CircularProgress = React37__namespace.forwardRef(
6402
6564
  "size",
6403
6565
  "trackHeight",
6404
6566
  "shape",
6567
+ "trackShape",
6405
6568
  "amplitude",
6406
6569
  "wavelength",
6407
6570
  "gapSize",
6571
+ "waveSpeed",
6408
6572
  "crawlerSpeed",
6409
6573
  "color",
6410
6574
  "trackColor",
6411
6575
  "showTrack",
6412
6576
  "minProgress",
6413
6577
  "maxProgress",
6578
+ "determinateAnimation",
6414
6579
  "amplitudeRange",
6415
6580
  "className",
6416
6581
  "aria-label"
@@ -6423,6 +6588,7 @@ var CircularProgress = React37__namespace.forwardRef(
6423
6588
  const bgTrackColor = trackColor || "var(--md-sys-color-indicator-track)";
6424
6589
  const isWavy = shape === "wavy";
6425
6590
  const shouldShowIndeterminateTrack = showTrack === "auto" ? isWavy : showTrack;
6591
+ const shouldShowDeterminateTrack = showTrack === "auto" ? true : showTrack;
6426
6592
  const BASELINE_SIZE = 48;
6427
6593
  const scaleFactor = size / BASELINE_SIZE;
6428
6594
  const effectiveAmplitude = React37__namespace.useMemo(
@@ -6455,19 +6621,50 @@ var CircularProgress = React37__namespace.forwardRef(
6455
6621
  const trackOffset = isDeterminate ? activeAngularFraction + gapForTrack : 0;
6456
6622
  const trackLength = isDeterminate ? Math.max(1e-3, 1 - activeAngularFraction - 2 * gapForTrack) : 1;
6457
6623
  const ActiveCircleElem = react.m.circle;
6458
- const ActivePathElem = react.m.path;
6459
6624
  const indeterminateSvgRef = React37__namespace.useRef(null);
6460
6625
  const indeterminateTrackRef = React37__namespace.useRef(null);
6461
6626
  const indeterminateActiveRef = React37__namespace.useRef(null);
6462
6627
  const indeterminateWavyTrackPathRef = React37__namespace.useRef(null);
6463
6628
  const indeterminateWavyActivePathRef = React37__namespace.useRef(null);
6629
+ const determinateWavyActivePathRef = React37__namespace.useRef(null);
6630
+ const determinateWavyTrackPathRef = React37__namespace.useRef(null);
6464
6631
  const cachedPathLengthRef = React37__namespace.useRef(0);
6632
+ const fractionMV = react.useMotionValue(isDeterminate ? clampedValue / 100 : 0);
6633
+ const amplitudeMV = react.useMotionValue(isWavy ? effectiveAmplitude : 0);
6634
+ React37__namespace.useEffect(() => {
6635
+ if (isDeterminate) {
6636
+ react.animate(fractionMV, clampedValue / 100, {
6637
+ duration: 0.4,
6638
+ ease: [0.2, 0, 0, 1]
6639
+ });
6640
+ }
6641
+ }, [clampedValue, isDeterminate, fractionMV]);
6642
+ React37__namespace.useEffect(() => {
6643
+ if (!isDeterminate || !isWavy) return;
6644
+ const fraction = clampedValue / 100;
6645
+ let targetAmp = effectiveAmplitude;
6646
+ if (determinateAnimation === "md3") {
6647
+ targetAmp = fraction <= 0.1 || fraction >= 0.95 ? 0 : effectiveAmplitude;
6648
+ }
6649
+ react.animate(amplitudeMV, targetAmp, {
6650
+ type: "spring",
6651
+ bounce: 0,
6652
+ duration: 0.5
6653
+ });
6654
+ }, [
6655
+ clampedValue,
6656
+ isDeterminate,
6657
+ isWavy,
6658
+ effectiveAmplitude,
6659
+ amplitudeMV,
6660
+ determinateAnimation
6661
+ ]);
6465
6662
  React37__namespace.useLayoutEffect(() => {
6466
6663
  if (!isWavy || !wavyActivePath) {
6467
6664
  cachedPathLengthRef.current = circumference;
6468
6665
  return;
6469
6666
  }
6470
- const el = indeterminateActiveRef.current;
6667
+ const el = indeterminateActiveRef.current || determinateWavyActivePathRef.current;
6471
6668
  if (el && "getTotalLength" in el) {
6472
6669
  try {
6473
6670
  const len = el.getTotalLength();
@@ -6481,7 +6678,65 @@ var CircularProgress = React37__namespace.forwardRef(
6481
6678
  cachedPathLengthRef.current = circumference;
6482
6679
  }, [isWavy, circumference, wavyActivePath]);
6483
6680
  react.useAnimationFrame((time) => {
6484
- if (isDeterminate) return;
6681
+ const safeWaveSpeed = Math.max(0.1, waveSpeed);
6682
+ const wavePhase = time / 1e3 * safeWaveSpeed * 2 * Math.PI;
6683
+ if (isDeterminate) {
6684
+ if (isWavy) {
6685
+ const currentAmp = amplitudeMV.get();
6686
+ const dynamicPath = generateWavyCircularPath(
6687
+ center,
6688
+ radius,
6689
+ currentAmp,
6690
+ effectiveWavelength,
6691
+ wavePhase
6692
+ );
6693
+ if (determinateWavyActivePathRef.current) {
6694
+ determinateWavyActivePathRef.current.setAttribute("d", dynamicPath);
6695
+ }
6696
+ if (trackShape === "wavy" && determinateWavyTrackPathRef.current) {
6697
+ determinateWavyTrackPathRef.current.setAttribute("d", dynamicPath);
6698
+ }
6699
+ const pathEl = determinateWavyActivePathRef.current;
6700
+ let totalLen = cachedPathLengthRef.current || circumference;
6701
+ if (pathEl) {
6702
+ try {
6703
+ const len = pathEl.getTotalLength();
6704
+ if (len > 0) totalLen = len;
6705
+ } catch (e) {
6706
+ }
6707
+ }
6708
+ const activeFrac = Math.max(0, Math.min(1, fractionMV.get()));
6709
+ const activeLen = totalLen * activeFrac;
6710
+ if (determinateWavyActivePathRef.current) {
6711
+ determinateWavyActivePathRef.current.setAttribute(
6712
+ "stroke-dasharray",
6713
+ `${activeLen} ${totalLen}`
6714
+ );
6715
+ determinateWavyActivePathRef.current.setAttribute(
6716
+ "stroke-dashoffset",
6717
+ "0"
6718
+ );
6719
+ }
6720
+ if (shouldShowDeterminateTrack && trackShape === "wavy" && determinateWavyTrackPathRef.current) {
6721
+ const gapFrac = (gapSize + trackHeight) / totalLen;
6722
+ const trackStartFrac = activeFrac + gapFrac;
6723
+ const trackLen = Math.max(
6724
+ 1e-3,
6725
+ totalLen * (1 - activeFrac - 2 * gapFrac)
6726
+ );
6727
+ const trackOff = -totalLen * trackStartFrac;
6728
+ determinateWavyTrackPathRef.current.setAttribute(
6729
+ "stroke-dasharray",
6730
+ `${trackLen} ${totalLen}`
6731
+ );
6732
+ determinateWavyTrackPathRef.current.setAttribute(
6733
+ "stroke-dashoffset",
6734
+ `${trackOff}`
6735
+ );
6736
+ }
6737
+ }
6738
+ return;
6739
+ }
6485
6740
  const safeCrawlerSpeed = Math.max(0.1, crawlerSpeed);
6486
6741
  const scaledTime = time * safeCrawlerSpeed;
6487
6742
  const globalCycle = scaledTime % GLOBAL_ROTATION_DURATION;
@@ -6516,7 +6771,8 @@ var CircularProgress = React37__namespace.forwardRef(
6516
6771
  center,
6517
6772
  radius,
6518
6773
  currentAmplitude,
6519
- effectiveWavelength
6774
+ effectiveWavelength,
6775
+ wavePhase
6520
6776
  );
6521
6777
  if (indeterminateWavyActivePathRef.current) {
6522
6778
  indeterminateWavyActivePathRef.current.setAttribute("d", dynamicPath);
@@ -6611,7 +6867,7 @@ var CircularProgress = React37__namespace.forwardRef(
6611
6867
  style: { width: size, height: size }
6612
6868
  }, restProps), {
6613
6869
  children: /* @__PURE__ */ jsxRuntime.jsxs(react.LazyMotion, { features: react.domMax, strict: true, children: [
6614
- /* @__PURE__ */ jsxRuntime.jsxs(
6870
+ /* @__PURE__ */ jsxRuntime.jsx(
6615
6871
  "svg",
6616
6872
  {
6617
6873
  width: size,
@@ -6619,8 +6875,18 @@ var CircularProgress = React37__namespace.forwardRef(
6619
6875
  viewBox: `0 0 ${size} ${size}`,
6620
6876
  "aria-hidden": "true",
6621
6877
  style: { transform: "rotate(-90deg)", overflow: "visible" },
6622
- children: [
6623
- isDeterminate ? /* @__PURE__ */ jsxRuntime.jsx(
6878
+ children: isDeterminate ? isWavy ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
6879
+ shouldShowDeterminateTrack && (trackShape === "wavy" ? /* @__PURE__ */ jsxRuntime.jsx(
6880
+ "path",
6881
+ {
6882
+ ref: determinateWavyTrackPathRef,
6883
+ d: wavyActivePath != null ? wavyActivePath : "",
6884
+ fill: "none",
6885
+ stroke: bgTrackColor,
6886
+ strokeWidth: trackHeight,
6887
+ strokeLinecap: "round"
6888
+ }
6889
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
6624
6890
  react.m.circle,
6625
6891
  {
6626
6892
  cx: center,
@@ -6629,28 +6895,52 @@ var CircularProgress = React37__namespace.forwardRef(
6629
6895
  fill: "none",
6630
6896
  stroke: bgTrackColor,
6631
6897
  strokeWidth: trackHeight,
6632
- initial: { pathLength: trackLength, pathOffset: trackOffset },
6633
- animate: { pathLength: trackLength, pathOffset: trackOffset },
6898
+ initial: {
6899
+ pathLength: trackLength,
6900
+ pathOffset: trackOffset
6901
+ },
6902
+ animate: {
6903
+ pathLength: trackLength,
6904
+ pathOffset: trackOffset
6905
+ },
6634
6906
  transition: { duration: 0.4, ease: [0.2, 0, 0, 1] },
6635
6907
  strokeLinecap: "round"
6636
6908
  }
6637
- ) : null,
6638
- isDeterminate && (isWavy ? /* @__PURE__ */ jsxRuntime.jsx(
6639
- ActivePathElem,
6909
+ )),
6910
+ /* @__PURE__ */ jsxRuntime.jsx(
6911
+ "path",
6640
6912
  {
6913
+ ref: determinateWavyActivePathRef,
6641
6914
  d: wavyActivePath != null ? wavyActivePath : "",
6642
6915
  fill: "none",
6643
6916
  stroke: activeColor,
6644
6917
  strokeWidth: trackHeight,
6645
- strokeLinecap: "round",
6646
- initial: { pathLength: 0 },
6647
- animate: { pathLength: clampedValue / 100 },
6648
- transition: {
6649
- duration: 0.4,
6650
- ease: [0.2, 0, 0, 1]
6651
- }
6918
+ strokeLinecap: "round"
6652
6919
  }
6653
- ) : /* @__PURE__ */ jsxRuntime.jsx(
6920
+ )
6921
+ ] }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
6922
+ /* @__PURE__ */ jsxRuntime.jsx(
6923
+ react.m.circle,
6924
+ {
6925
+ cx: center,
6926
+ cy: center,
6927
+ r: radius,
6928
+ fill: "none",
6929
+ stroke: bgTrackColor,
6930
+ strokeWidth: trackHeight,
6931
+ initial: {
6932
+ pathLength: trackLength,
6933
+ pathOffset: trackOffset
6934
+ },
6935
+ animate: {
6936
+ pathLength: trackLength,
6937
+ pathOffset: trackOffset
6938
+ },
6939
+ transition: { duration: 0.4, ease: [0.2, 0, 0, 1] },
6940
+ strokeLinecap: "round"
6941
+ }
6942
+ ),
6943
+ /* @__PURE__ */ jsxRuntime.jsx(
6654
6944
  ActiveCircleElem,
6655
6945
  {
6656
6946
  cx: center,
@@ -6667,8 +6957,8 @@ var CircularProgress = React37__namespace.forwardRef(
6667
6957
  ease: [0.2, 0, 0, 1]
6668
6958
  }
6669
6959
  }
6670
- ))
6671
- ]
6960
+ )
6961
+ ] }) : null
6672
6962
  }
6673
6963
  ),
6674
6964
  !isDeterminate && /* @__PURE__ */ jsxRuntime.jsx(
@@ -7351,7 +7641,7 @@ var IconButtonComponent = React37__namespace.forwardRef(
7351
7641
  variant = "default",
7352
7642
  colorStyle = "standard",
7353
7643
  size = "sm",
7354
- widthVariant = "default",
7644
+ width = "default",
7355
7645
  shape = "round",
7356
7646
  selected,
7357
7647
  selectedIcon,
@@ -7369,7 +7659,7 @@ var IconButtonComponent = React37__namespace.forwardRef(
7369
7659
  "variant",
7370
7660
  "colorStyle",
7371
7661
  "size",
7372
- "widthVariant",
7662
+ "width",
7373
7663
  "shape",
7374
7664
  "selected",
7375
7665
  "selectedIcon",
@@ -7414,7 +7704,7 @@ var IconButtonComponent = React37__namespace.forwardRef(
7414
7704
  const iconPx = iconSize != null ? iconSize : defaultIconPx;
7415
7705
  const isCustomSize = iconSize != null && iconSize !== "inherit";
7416
7706
  const heightClass = (_c = SIZE_HEIGHT_STYLES[size]) != null ? _c : SIZE_HEIGHT_STYLES.sm;
7417
- const widthClass = (_e = ((_d = WIDTH_SIZE_STYLES[size]) != null ? _d : WIDTH_SIZE_STYLES.sm)[widthVariant]) != null ? _e : WIDTH_SIZE_STYLES.sm.default;
7707
+ const widthClass = (_e = ((_d = WIDTH_SIZE_STYLES[size]) != null ? _d : WIDTH_SIZE_STYLES.sm)[width]) != null ? _e : WIDTH_SIZE_STYLES.sm.default;
7418
7708
  const needsTouchTarget = size === "xs" || size === "sm";
7419
7709
  const { ripples, onPointerDown, removeRipple } = useRippleState({
7420
7710
  disabled: loading
@@ -8037,9 +8327,9 @@ function BadgedBox({
8037
8327
  badge,
8038
8328
  children,
8039
8329
  className,
8040
- badgeSize
8330
+ size
8041
8331
  }) {
8042
- const isLarge = badgeSize ? badgeSize === "large" : detectBadgeHasContent(badge);
8332
+ const isLarge = size ? size === "lg" : detectBadgeHasContent(badge);
8043
8333
  const badgePositionClass = isLarge ? "translate-x-[35%] -translate-y-[35%]" : "translate-x-[50%] -translate-y-[50%]";
8044
8334
  return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: cn("relative inline-flex", className), children: [
8045
8335
  children,
@@ -9050,7 +9340,7 @@ var FloatingToolbarWithFabBase = React37__namespace.forwardRef(
9050
9340
  fabPosition = orientation === "horizontal" ? "end" : "bottom",
9051
9341
  animationDuration = 0.3,
9052
9342
  scrollBehavior,
9053
- fabSize = "default",
9343
+ fabSize = "sm",
9054
9344
  className,
9055
9345
  style
9056
9346
  } = _b, props = __objRest(_b, [
@@ -9070,7 +9360,7 @@ var FloatingToolbarWithFabBase = React37__namespace.forwardRef(
9070
9360
  const isHorizontal = orientation === "horizontal";
9071
9361
  const effectiveExpanded = expanded && (!scrollBehavior || scrollBehavior.isExpanded);
9072
9362
  const isFabBefore = fabPosition === "start" || fabPosition === "top";
9073
- const resolvedFabSize = fabSize === "medium" ? FabBaselineTokens.MediumContainerHeight : FabBaselineTokens.ContainerHeight;
9363
+ const resolvedFabSize = fabSize === "md" ? FabBaselineTokens.MediumContainerHeight : FabBaselineTokens.ContainerHeight;
9074
9364
  const transitionSpec = __spreadProps(__spreadValues({}, SPRING_TRANSITION), {
9075
9365
  duration: animationDuration
9076
9366
  });
@@ -9209,7 +9499,7 @@ var ToolbarIconButton = React37__namespace.forwardRef(
9209
9499
  (_a, ref) => {
9210
9500
  var _b = _a, {
9211
9501
  emphasis = "standard",
9212
- toolbarSize = "default",
9502
+ width = "default",
9213
9503
  selected,
9214
9504
  asChild,
9215
9505
  className,
@@ -9217,7 +9507,7 @@ var ToolbarIconButton = React37__namespace.forwardRef(
9217
9507
  whileTap
9218
9508
  } = _b, props = __objRest(_b, [
9219
9509
  "emphasis",
9220
- "toolbarSize",
9510
+ "width",
9221
9511
  "selected",
9222
9512
  "asChild",
9223
9513
  "className",
@@ -9225,7 +9515,7 @@ var ToolbarIconButton = React37__namespace.forwardRef(
9225
9515
  "whileTap"
9226
9516
  ]);
9227
9517
  const context = useToolbarContext();
9228
- const widthClass = TOOLBAR_ICON_BUTTON_WIDTH[toolbarSize];
9518
+ const widthClass = TOOLBAR_ICON_BUTTON_WIDTH[width];
9229
9519
  const colorStyle = VARIANT_TO_COLOR_STYLE[emphasis];
9230
9520
  const iconButtonProps = selected !== void 0 ? {
9231
9521
  variant: "toggle",
@@ -9580,6 +9870,7 @@ exports.DIVIDER_PADDING = DIVIDER_PADDING;
9580
9870
  exports.DockedToolbar = DockedToolbar;
9581
9871
  exports.FAST_EFFECTS_TRANSITION = FAST_EFFECTS_TRANSITION;
9582
9872
  exports.FAST_SPATIAL_SPRING = FAST_SPATIAL_SPRING;
9873
+ exports.FadingBlurMask = FadingBlurMask;
9583
9874
  exports.GROUP_SHAPES = GROUP_SHAPES;
9584
9875
  exports.HorizontalFloatingToolbar = HorizontalFloatingToolbar;
9585
9876
  exports.HorizontalFloatingToolbarWithFab = HorizontalFloatingToolbarWithFab;