@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
package/dist/index.mjs CHANGED
@@ -5,8 +5,8 @@ import { hexFromArgb, Hct, SchemeExpressive, SchemeNeutral, SchemeMonochrome, Sc
5
5
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
6
6
  import { clsx } from 'clsx';
7
7
  import { twMerge } from 'tailwind-merge';
8
+ import { AnimatePresence, m, LazyMotion, domMax, useReducedMotion, useMotionValue, animate, useAnimationFrame, useSpring, useTransform, LayoutGroup, useScroll, useMotionValueEvent } from 'motion/react';
8
9
  import * as RxContextMenu from '@radix-ui/react-context-menu';
9
- import { AnimatePresence, m, LazyMotion, domMax, useReducedMotion, useAnimationFrame, useMotionValue, animate, useSpring, useTransform, LayoutGroup, useScroll, useMotionValueEvent } from 'motion/react';
10
10
  import { cornerRadius } from '@bug-on/m3-tokens';
11
11
  import * as DropdownMenu from '@radix-ui/react-dropdown-menu';
12
12
  import { Slot } from '@radix-ui/react-slot';
@@ -2830,6 +2830,52 @@ function interpolatePath(morph, progress, width, height) {
2830
2830
  function fmt(v) {
2831
2831
  return Number(v.toFixed(4)).toString();
2832
2832
  }
2833
+ function getMaskGradient(direction) {
2834
+ switch (direction) {
2835
+ case "bottom":
2836
+ 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%)";
2837
+ case "both":
2838
+ 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%)";
2839
+ default:
2840
+ 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%)";
2841
+ }
2842
+ }
2843
+ function FadingBlurMask({
2844
+ direction = "top",
2845
+ blurIntensity = 12,
2846
+ blurHeight = "100%",
2847
+ color = "var(--md-sys-color-surface)",
2848
+ className,
2849
+ style,
2850
+ children
2851
+ }) {
2852
+ const shouldReduceMotion = useReducedMotion();
2853
+ const activeBlur = shouldReduceMotion ? 0 : blurIntensity;
2854
+ const maskGradient = getMaskGradient(direction);
2855
+ const maskStyle = __spreadValues({
2856
+ position: "absolute",
2857
+ inset: 0,
2858
+ pointerEvents: "none",
2859
+ height: typeof blurHeight === "number" ? `${blurHeight}px` : blurHeight,
2860
+ backdropFilter: activeBlur > 0 ? `blur(${activeBlur}px)` : void 0,
2861
+ WebkitBackdropFilter: activeBlur > 0 ? `blur(${activeBlur}px)` : void 0,
2862
+ maskImage: maskGradient,
2863
+ WebkitMaskImage: maskGradient,
2864
+ backgroundColor: color
2865
+ }, style);
2866
+ return /* @__PURE__ */ jsx(
2867
+ "div",
2868
+ {
2869
+ "aria-hidden": "true",
2870
+ className: cn(
2871
+ "absolute inset-0 pointer-events-none z-0 rounded-[inherit]",
2872
+ className
2873
+ ),
2874
+ style: maskStyle,
2875
+ children
2876
+ }
2877
+ );
2878
+ }
2833
2879
 
2834
2880
  // src/ui/shared/motion-tokens.ts
2835
2881
  var FAST_SPATIAL_SPRING = {
@@ -4590,7 +4636,10 @@ function BottomAppBar({
4590
4636
  floatingActionButton,
4591
4637
  scrollBehavior = "visible",
4592
4638
  scrollElement,
4593
- className
4639
+ className,
4640
+ enableFadingBlur,
4641
+ blurIntensity,
4642
+ blurHeight
4594
4643
  }) {
4595
4644
  const shouldReduceMotion = useReducedMotion();
4596
4645
  const { isHidden } = useAppBarScroll({
@@ -4605,9 +4654,9 @@ function BottomAppBar({
4605
4654
  role: "navigation",
4606
4655
  "aria-label": "Bottom app bar",
4607
4656
  className: cn(
4608
- "fixed bottom-0 inset-x-0 z-50",
4657
+ "fixed bottom-0 inset-x-0 z-50 overflow-hidden rounded-[inherit]",
4609
4658
  "flex items-center",
4610
- "bg-m3-surface-container",
4659
+ !enableFadingBlur && "bg-m3-surface-container",
4611
4660
  "px-2",
4612
4661
  // minimal horizontal padding, icon buttons provide spacing
4613
4662
  "elevation-2",
@@ -4620,8 +4669,19 @@ function BottomAppBar({
4620
4669
  animate: { y: translateY },
4621
4670
  transition: hideTransition,
4622
4671
  children: [
4623
- actions && /* @__PURE__ */ jsx("div", { className: "flex items-center flex-1", children: actions }),
4624
- floatingActionButton && /* @__PURE__ */ jsx("div", { className: "shrink-0 ml-auto mr-2", children: floatingActionButton })
4672
+ enableFadingBlur && /* @__PURE__ */ jsx(
4673
+ FadingBlurMask,
4674
+ {
4675
+ direction: "bottom",
4676
+ blurIntensity,
4677
+ blurHeight,
4678
+ color: "var(--md-sys-color-surface-container)"
4679
+ }
4680
+ ),
4681
+ /* @__PURE__ */ jsxs("div", { className: "relative z-10 flex items-center w-full h-full", children: [
4682
+ actions && /* @__PURE__ */ jsx("div", { className: "flex items-center flex-1", children: actions }),
4683
+ floatingActionButton && /* @__PURE__ */ jsx("div", { className: "shrink-0 ml-auto mr-2", children: floatingActionButton })
4684
+ ] })
4625
4685
  ]
4626
4686
  }
4627
4687
  );
@@ -4729,7 +4789,10 @@ function LargeFlexibleAppBar({
4729
4789
  headerContent,
4730
4790
  collapsedHeight = AppBarTokens.heights.flexibleCollapsed,
4731
4791
  expandedHeight,
4732
- className
4792
+ className,
4793
+ enableFadingBlur,
4794
+ blurIntensity,
4795
+ blurHeight
4733
4796
  }) {
4734
4797
  var _a, _b, _c;
4735
4798
  const resolvedExpandedHeight = expandedHeight != null ? expandedHeight : subtitle ? AppBarTokens.heights.largeFlexWithSubtitleExpanded : AppBarTokens.heights.largeFlexExpanded;
@@ -4759,15 +4822,28 @@ function LargeFlexibleAppBar({
4759
4822
  {
4760
4823
  role: "banner",
4761
4824
  className: cn(
4762
- "fixed top-0 inset-x-0 z-50 flex flex-col overflow-hidden",
4825
+ "fixed top-0 inset-x-0 z-50 flex flex-col overflow-hidden rounded-[inherit]",
4763
4826
  className
4764
4827
  ),
4765
- style: { height, backgroundColor: currentBg, transition: cssTransition },
4828
+ style: {
4829
+ height,
4830
+ backgroundColor: enableFadingBlur ? "transparent" : currentBg,
4831
+ transition: cssTransition
4832
+ },
4766
4833
  children: [
4834
+ enableFadingBlur && /* @__PURE__ */ jsx(
4835
+ FadingBlurMask,
4836
+ {
4837
+ direction: "top",
4838
+ blurIntensity,
4839
+ blurHeight,
4840
+ color: currentBg
4841
+ }
4842
+ ),
4767
4843
  /* @__PURE__ */ jsxs(
4768
4844
  "div",
4769
4845
  {
4770
- className: "flex items-center px-1 shrink-0",
4846
+ className: "relative z-10 flex items-center px-1 shrink-0",
4771
4847
  style: { height: collapsedHeight },
4772
4848
  children: [
4773
4849
  navigationIcon && /* @__PURE__ */ jsx(
@@ -4809,7 +4885,7 @@ function LargeFlexibleAppBar({
4809
4885
  "div",
4810
4886
  {
4811
4887
  className: cn(
4812
- "flex flex-col flex-1 px-4 pb-4 justify-end",
4888
+ "relative z-10 flex flex-col flex-1 px-4 pb-3 justify-end",
4813
4889
  isCentered ? "items-center" : "items-start"
4814
4890
  ),
4815
4891
  children: [
@@ -4862,7 +4938,10 @@ function MediumFlexibleAppBar({
4862
4938
  headerContent,
4863
4939
  collapsedHeight = AppBarTokens.heights.flexibleCollapsed,
4864
4940
  expandedHeight,
4865
- className
4941
+ className,
4942
+ enableFadingBlur,
4943
+ blurIntensity,
4944
+ blurHeight
4866
4945
  }) {
4867
4946
  var _a, _b, _c;
4868
4947
  const resolvedExpandedHeight = expandedHeight != null ? expandedHeight : subtitle ? AppBarTokens.heights.mediumFlexWithSubtitleExpanded : AppBarTokens.heights.mediumFlexExpanded;
@@ -4892,15 +4971,28 @@ function MediumFlexibleAppBar({
4892
4971
  {
4893
4972
  role: "banner",
4894
4973
  className: cn(
4895
- "fixed top-0 inset-x-0 z-50 flex flex-col overflow-hidden",
4974
+ "fixed top-0 inset-x-0 z-50 flex flex-col overflow-hidden rounded-[inherit]",
4896
4975
  className
4897
4976
  ),
4898
- style: { height, backgroundColor: currentBg, transition: cssTransition },
4977
+ style: {
4978
+ height,
4979
+ backgroundColor: enableFadingBlur ? "transparent" : currentBg,
4980
+ transition: cssTransition
4981
+ },
4899
4982
  children: [
4983
+ enableFadingBlur && /* @__PURE__ */ jsx(
4984
+ FadingBlurMask,
4985
+ {
4986
+ direction: "top",
4987
+ blurIntensity,
4988
+ blurHeight,
4989
+ color: currentBg
4990
+ }
4991
+ ),
4900
4992
  /* @__PURE__ */ jsxs(
4901
4993
  "div",
4902
4994
  {
4903
- className: "flex items-center px-1 shrink-0",
4995
+ className: "relative z-10 flex items-center px-1 shrink-0",
4904
4996
  style: { height: collapsedHeight },
4905
4997
  children: [
4906
4998
  navigationIcon && /* @__PURE__ */ jsx(
@@ -4942,7 +5034,7 @@ function MediumFlexibleAppBar({
4942
5034
  "div",
4943
5035
  {
4944
5036
  className: cn(
4945
- "flex flex-col flex-1 px-4 pb-3 justify-end",
5037
+ "relative z-10 flex flex-col flex-1 px-4 pb-3 justify-end",
4946
5038
  isCentered ? "items-center" : "items-start"
4947
5039
  ),
4948
5040
  children: [
@@ -4989,7 +5081,7 @@ function SearchIcon({ className }) {
4989
5081
  "span",
4990
5082
  {
4991
5083
  className: cn(
4992
- "material-symbols-rounded text-[20px] leading-none select-none",
5084
+ "material-symbols-rounded text-[20px] leading-none select-none flex items-center justify-center",
4993
5085
  className
4994
5086
  ),
4995
5087
  "aria-hidden": "true",
@@ -5009,7 +5101,12 @@ function SearchAppBar({
5009
5101
  scrollBehavior = "pinned",
5010
5102
  scrollElement,
5011
5103
  searchBarId = "search-bar",
5012
- className
5104
+ searchBarVariant = "filled",
5105
+ searchBarHeight = 56,
5106
+ className,
5107
+ enableFadingBlur,
5108
+ blurIntensity,
5109
+ blurHeight
5013
5110
  }) {
5014
5111
  var _a, _b;
5015
5112
  const shouldReduceMotion = useReducedMotion();
@@ -5032,65 +5129,92 @@ function SearchAppBar({
5032
5129
  handleSearchClick();
5033
5130
  }
5034
5131
  };
5132
+ const searchBarBg = isScrolled ? "var(--md-sys-color-surface-container-highest)" : APP_BAR_COLORS.searchBarBg;
5133
+ const isOutlined = searchBarVariant === "outlined";
5035
5134
  return /* @__PURE__ */ jsxs(
5036
5135
  m.header,
5037
5136
  {
5038
5137
  role: "banner",
5039
5138
  className: cn(
5040
- "fixed top-0 inset-x-0 z-50 flex items-center gap-2 px-4",
5139
+ "fixed top-0 inset-x-0 z-50 flex items-center gap-2 px-4 overflow-hidden rounded-[inherit]",
5041
5140
  className
5042
5141
  ),
5043
5142
  style: {
5044
5143
  height: AppBarTokens.heights.small,
5045
- backgroundColor: currentBg,
5144
+ backgroundColor: enableFadingBlur ? "transparent" : currentBg,
5046
5145
  transition: cssTransition
5047
5146
  },
5048
5147
  children: [
5049
- navigationIcon && /* @__PURE__ */ jsx(
5050
- "div",
5148
+ enableFadingBlur && /* @__PURE__ */ jsx(
5149
+ FadingBlurMask,
5051
5150
  {
5052
- className: "shrink-0 flex items-center justify-center",
5053
- style: {
5054
- width: AppBarTokens.iconButtonTouchTarget,
5055
- height: AppBarTokens.iconButtonTouchTarget
5056
- },
5057
- children: navigationIcon
5151
+ direction: "top",
5152
+ blurIntensity,
5153
+ blurHeight,
5154
+ color: currentBg
5058
5155
  }
5059
5156
  ),
5060
- /* @__PURE__ */ jsxs(
5061
- m.div,
5062
- {
5063
- layoutId: shouldReduceMotion ? void 0 : searchBarId,
5064
- role: "search",
5065
- "aria-label": searchPlaceholder,
5066
- "aria-expanded": isSearchOpen,
5067
- tabIndex: 0,
5068
- 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",
5069
- onClick: handleSearchClick,
5070
- onKeyDown: handleKeyDown,
5071
- children: [
5072
- /* @__PURE__ */ jsx("div", { className: "absolute inset-0 rounded-full bg-m3-surface-container-high -z-10" }),
5073
- /* @__PURE__ */ jsx(
5074
- "span",
5075
- {
5076
- className: "shrink-0",
5077
- style: { color: APP_BAR_COLORS.searchBarContent },
5078
- children: leadingSearchIcon != null ? leadingSearchIcon : /* @__PURE__ */ jsx(SearchIcon, {})
5079
- }
5080
- ),
5081
- /* @__PURE__ */ jsx(
5082
- "span",
5083
- {
5084
- className: "flex-1 text-[16px] leading-6 truncate select-none",
5085
- style: { color: APP_BAR_COLORS.searchBarContent },
5086
- children: searchValue != null ? searchValue : searchPlaceholder
5087
- }
5157
+ /* @__PURE__ */ jsxs("div", { className: "relative z-10 flex items-center gap-2 w-full h-full", children: [
5158
+ navigationIcon && /* @__PURE__ */ jsx(
5159
+ "div",
5160
+ {
5161
+ className: "shrink-0 flex items-center justify-center",
5162
+ style: {
5163
+ width: AppBarTokens.iconButtonTouchTarget,
5164
+ height: AppBarTokens.iconButtonTouchTarget
5165
+ },
5166
+ children: navigationIcon
5167
+ }
5168
+ ),
5169
+ /* @__PURE__ */ jsxs(
5170
+ m.div,
5171
+ {
5172
+ layoutId: shouldReduceMotion ? void 0 : searchBarId,
5173
+ role: "search",
5174
+ "aria-label": searchPlaceholder,
5175
+ "aria-expanded": isSearchOpen,
5176
+ tabIndex: 0,
5177
+ className: cn(
5178
+ "relative flex flex-1 items-center gap-2 rounded-full cursor-text px-4",
5179
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",
5180
+ isOutlined && "border border-(--md-sys-color-outline)"
5088
5181
  ),
5089
- trailingSearchActions && /* @__PURE__ */ jsx("div", { className: "flex items-center shrink-0", children: trailingSearchActions })
5090
- ]
5091
- }
5092
- ),
5093
- externalActions && /* @__PURE__ */ jsx("div", { className: "flex items-center shrink-0", children: externalActions })
5182
+ style: { height: searchBarHeight },
5183
+ onClick: handleSearchClick,
5184
+ onKeyDown: handleKeyDown,
5185
+ children: [
5186
+ !isOutlined && /* @__PURE__ */ jsx(
5187
+ "div",
5188
+ {
5189
+ className: "absolute inset-0 rounded-full -z-10 transition-colors",
5190
+ style: {
5191
+ backgroundColor: searchBarBg,
5192
+ transition: cssTransition
5193
+ }
5194
+ }
5195
+ ),
5196
+ /* @__PURE__ */ jsx(
5197
+ "span",
5198
+ {
5199
+ className: "shrink-0 flex items-center justify-center h-full",
5200
+ style: { color: APP_BAR_COLORS.searchBarContent },
5201
+ children: leadingSearchIcon != null ? leadingSearchIcon : /* @__PURE__ */ jsx(SearchIcon, {})
5202
+ }
5203
+ ),
5204
+ /* @__PURE__ */ jsx(
5205
+ "span",
5206
+ {
5207
+ className: "flex-1 text-[16px] leading-6 truncate select-none",
5208
+ style: { color: APP_BAR_COLORS.searchBarContent },
5209
+ children: searchValue != null ? searchValue : searchPlaceholder
5210
+ }
5211
+ ),
5212
+ trailingSearchActions && /* @__PURE__ */ jsx("div", { className: "flex items-center shrink-0", children: trailingSearchActions })
5213
+ ]
5214
+ }
5215
+ ),
5216
+ externalActions && /* @__PURE__ */ jsx("div", { className: "flex items-center shrink-0", children: externalActions })
5217
+ ] })
5094
5218
  ]
5095
5219
  }
5096
5220
  );
@@ -5263,9 +5387,11 @@ function SmallAppBarInner({
5263
5387
  navigationIcon,
5264
5388
  actions,
5265
5389
  colors,
5266
- className,
5267
5390
  currentBg,
5268
- cssTransition
5391
+ cssTransition,
5392
+ enableFadingBlur,
5393
+ blurIntensity,
5394
+ blurHeight
5269
5395
  }) {
5270
5396
  var _a, _b;
5271
5397
  const isCentered = titleAlignment === "center";
@@ -5273,57 +5399,81 @@ function SmallAppBarInner({
5273
5399
  m.header,
5274
5400
  {
5275
5401
  role: "banner",
5276
- className: cn("flex items-center px-1 h-full w-full", className),
5277
- style: { backgroundColor: currentBg, transition: cssTransition },
5402
+ className: "relative flex items-center px-1 h-full w-full overflow-hidden rounded-[inherit]",
5403
+ style: {
5404
+ backgroundColor: enableFadingBlur ? "transparent" : currentBg,
5405
+ transition: cssTransition
5406
+ },
5278
5407
  children: [
5279
- navigationIcon && /* @__PURE__ */ jsx(
5280
- "div",
5408
+ enableFadingBlur && /* @__PURE__ */ jsx(
5409
+ FadingBlurMask,
5281
5410
  {
5282
- className: "shrink-0 flex items-center justify-center",
5283
- style: {
5284
- width: AppBarTokens.iconButtonTouchTarget,
5285
- height: AppBarTokens.iconButtonTouchTarget
5286
- },
5287
- children: navigationIcon
5411
+ direction: "top",
5412
+ blurIntensity,
5413
+ blurHeight,
5414
+ color: currentBg
5288
5415
  }
5289
5416
  ),
5290
- /* @__PURE__ */ jsxs(
5291
- "div",
5292
- {
5293
- className: cn(
5294
- "flex-1 flex flex-col justify-center min-w-0",
5295
- isCentered ? "items-center" : "items-start",
5296
- !navigationIcon && "pl-4"
5297
- ),
5298
- children: [
5299
- /* @__PURE__ */ jsx(
5300
- "span",
5301
- {
5302
- className: cn(
5303
- appBarTypography.titleLarge,
5304
- "truncate w-full",
5305
- isCentered && "text-center"
5306
- ),
5307
- style: { color: (_a = colors == null ? void 0 : colors.titleColor) != null ? _a : APP_BAR_COLORS.title },
5308
- children: title
5309
- }
5417
+ /* @__PURE__ */ jsxs("div", { className: "relative z-10 flex items-center w-full h-full", children: [
5418
+ navigationIcon && /* @__PURE__ */ jsx(
5419
+ "div",
5420
+ {
5421
+ className: "shrink-0 flex items-center justify-center",
5422
+ style: {
5423
+ width: AppBarTokens.iconButtonTouchTarget,
5424
+ height: AppBarTokens.iconButtonTouchTarget
5425
+ },
5426
+ children: navigationIcon
5427
+ }
5428
+ ),
5429
+ /* @__PURE__ */ jsxs(
5430
+ "div",
5431
+ {
5432
+ className: cn(
5433
+ "flex-1 flex flex-col justify-center min-w-0",
5434
+ isCentered ? "items-center" : "items-start",
5435
+ !navigationIcon && !isCentered && "pl-4"
5310
5436
  ),
5311
- subtitle && /* @__PURE__ */ jsx(
5312
- "span",
5313
- {
5314
- className: cn(
5315
- appBarTypography.labelMedium,
5316
- "truncate w-full",
5317
- isCentered && "text-center"
5318
- ),
5319
- style: { color: (_b = colors == null ? void 0 : colors.subtitleColor) != null ? _b : APP_BAR_COLORS.subtitle },
5320
- children: subtitle
5321
- }
5322
- )
5323
- ]
5324
- }
5325
- ),
5326
- actions && /* @__PURE__ */ jsx("div", { className: "flex items-center shrink-0", children: actions })
5437
+ children: [
5438
+ /* @__PURE__ */ jsx(
5439
+ "span",
5440
+ {
5441
+ className: cn(
5442
+ appBarTypography.titleLarge,
5443
+ "truncate w-full",
5444
+ isCentered && "text-center"
5445
+ ),
5446
+ style: { color: (_a = colors == null ? void 0 : colors.titleColor) != null ? _a : APP_BAR_COLORS.title },
5447
+ children: title
5448
+ }
5449
+ ),
5450
+ subtitle && /* @__PURE__ */ jsx(
5451
+ "span",
5452
+ {
5453
+ className: cn(
5454
+ appBarTypography.labelMedium,
5455
+ "truncate w-full",
5456
+ isCentered && "text-center"
5457
+ ),
5458
+ style: {
5459
+ color: (_b = colors == null ? void 0 : colors.subtitleColor) != null ? _b : APP_BAR_COLORS.subtitle
5460
+ },
5461
+ children: subtitle
5462
+ }
5463
+ )
5464
+ ]
5465
+ }
5466
+ ),
5467
+ isCentered && !actions && navigationIcon && /* @__PURE__ */ jsx(
5468
+ "div",
5469
+ {
5470
+ "aria-hidden": "true",
5471
+ style: { width: AppBarTokens.iconButtonTouchTarget },
5472
+ className: "shrink-0"
5473
+ }
5474
+ ),
5475
+ actions && /* @__PURE__ */ jsx("div", { className: "flex items-center shrink-0", children: actions })
5476
+ ] })
5327
5477
  ]
5328
5478
  }
5329
5479
  );
@@ -5337,7 +5487,10 @@ function SmallAppBar({
5337
5487
  colors,
5338
5488
  scrollBehavior = "pinned",
5339
5489
  scrollElement,
5340
- className
5490
+ className,
5491
+ enableFadingBlur,
5492
+ blurIntensity,
5493
+ blurHeight
5341
5494
  }) {
5342
5495
  var _a, _b;
5343
5496
  const shouldReduceMotion = useReducedMotion();
@@ -5357,14 +5510,17 @@ function SmallAppBar({
5357
5510
  actions,
5358
5511
  colors,
5359
5512
  currentBg,
5360
- cssTransition
5513
+ cssTransition,
5514
+ enableFadingBlur,
5515
+ blurIntensity,
5516
+ blurHeight
5361
5517
  };
5362
5518
  const barHeight = AppBarTokens.heights.small;
5363
5519
  if (scrollBehavior !== "enterAlways") {
5364
5520
  return /* @__PURE__ */ jsx(
5365
5521
  "div",
5366
5522
  {
5367
- className: cn("fixed top-0 inset-x-0 z-50", className),
5523
+ className: cn("fixed top-0 inset-x-0 z-50 overflow-hidden", className),
5368
5524
  style: { height: barHeight },
5369
5525
  children: /* @__PURE__ */ jsx(SmallAppBarInner, __spreadValues({}, innerProps))
5370
5526
  }
@@ -5377,7 +5533,10 @@ function SmallAppBar({
5377
5533
  animate: { y: 0 },
5378
5534
  exit: { y: "-100%" },
5379
5535
  transition: shouldReduceMotion ? { duration: 0 } : APP_BAR_ENTER_ALWAYS_SPRING,
5380
- className: cn("fixed top-0 inset-x-0 z-50", className),
5536
+ className: cn(
5537
+ "fixed top-0 inset-x-0 z-50 overflow-hidden",
5538
+ className
5539
+ ),
5381
5540
  style: { height: barHeight },
5382
5541
  children: /* @__PURE__ */ jsx(SmallAppBarInner, __spreadValues({}, innerProps))
5383
5542
  },
@@ -5459,9 +5618,9 @@ function BadgedBox({
5459
5618
  badge,
5460
5619
  children,
5461
5620
  className,
5462
- badgeSize
5621
+ size
5463
5622
  }) {
5464
- const isLarge = badgeSize ? badgeSize === "large" : detectBadgeHasContent(badge);
5623
+ const isLarge = size ? size === "lg" : detectBadgeHasContent(badge);
5465
5624
  const badgePositionClass = isLarge ? "translate-x-[35%] -translate-y-[35%]" : "translate-x-[50%] -translate-y-[50%]";
5466
5625
  return /* @__PURE__ */ jsxs("span", { className: cn("relative inline-flex", className), children: [
5467
5626
  children,
@@ -5662,7 +5821,7 @@ LoadingIndicator.displayName = "LoadingIndicator";
5662
5821
  function easeInOutCubic(x) {
5663
5822
  return x < 0.5 ? 4 * x * x * x : 1 - (-2 * x + 2) ** 3 / 2;
5664
5823
  }
5665
- function generateWavyCircularPath(center, radius, amplitude, wavelength) {
5824
+ function generateWavyCircularPath(center, radius, amplitude, wavelength, phase = 0) {
5666
5825
  const circumference = 2 * Math.PI * radius;
5667
5826
  const numWaves = Math.max(
5668
5827
  3,
@@ -5670,8 +5829,8 @@ function generateWavyCircularPath(center, radius, amplitude, wavelength) {
5670
5829
  );
5671
5830
  const steps = numWaves * 4;
5672
5831
  const dt = 2 * Math.PI / steps;
5673
- const rAt = (t) => radius + amplitude * Math.sin(numWaves * t);
5674
- const drAt = (t) => amplitude * numWaves * Math.cos(numWaves * t);
5832
+ const rAt = (t) => radius + amplitude * Math.sin(numWaves * t + phase);
5833
+ const drAt = (t) => amplitude * numWaves * Math.cos(numWaves * t + phase);
5675
5834
  const xAt = (t) => center + rAt(t) * Math.cos(t);
5676
5835
  const yAt = (t) => center + rAt(t) * Math.sin(t);
5677
5836
  const dxAt = (t) => drAt(t) * Math.cos(t) - rAt(t) * Math.sin(t);
@@ -5736,15 +5895,18 @@ var CircularProgress = React62.forwardRef(
5736
5895
  size = 48,
5737
5896
  trackHeight = 4,
5738
5897
  shape = "flat",
5898
+ trackShape = "flat",
5739
5899
  amplitude,
5740
5900
  wavelength,
5741
5901
  gapSize = 4,
5902
+ waveSpeed = 1,
5742
5903
  crawlerSpeed = 1,
5743
5904
  color,
5744
5905
  trackColor,
5745
5906
  showTrack = "auto",
5746
5907
  minProgress = DEFAULT_MIN_PROGRESS,
5747
5908
  maxProgress = DEFAULT_MAX_PROGRESS,
5909
+ determinateAnimation = "md3",
5748
5910
  amplitudeRange,
5749
5911
  className,
5750
5912
  "aria-label": ariaLabel
@@ -5753,15 +5915,18 @@ var CircularProgress = React62.forwardRef(
5753
5915
  "size",
5754
5916
  "trackHeight",
5755
5917
  "shape",
5918
+ "trackShape",
5756
5919
  "amplitude",
5757
5920
  "wavelength",
5758
5921
  "gapSize",
5922
+ "waveSpeed",
5759
5923
  "crawlerSpeed",
5760
5924
  "color",
5761
5925
  "trackColor",
5762
5926
  "showTrack",
5763
5927
  "minProgress",
5764
5928
  "maxProgress",
5929
+ "determinateAnimation",
5765
5930
  "amplitudeRange",
5766
5931
  "className",
5767
5932
  "aria-label"
@@ -5774,6 +5939,7 @@ var CircularProgress = React62.forwardRef(
5774
5939
  const bgTrackColor = trackColor || "var(--md-sys-color-indicator-track)";
5775
5940
  const isWavy = shape === "wavy";
5776
5941
  const shouldShowIndeterminateTrack = showTrack === "auto" ? isWavy : showTrack;
5942
+ const shouldShowDeterminateTrack = showTrack === "auto" ? true : showTrack;
5777
5943
  const BASELINE_SIZE = 48;
5778
5944
  const scaleFactor = size / BASELINE_SIZE;
5779
5945
  const effectiveAmplitude = React62.useMemo(
@@ -5806,19 +5972,50 @@ var CircularProgress = React62.forwardRef(
5806
5972
  const trackOffset = isDeterminate ? activeAngularFraction + gapForTrack : 0;
5807
5973
  const trackLength = isDeterminate ? Math.max(1e-3, 1 - activeAngularFraction - 2 * gapForTrack) : 1;
5808
5974
  const ActiveCircleElem = m.circle;
5809
- const ActivePathElem = m.path;
5810
5975
  const indeterminateSvgRef = React62.useRef(null);
5811
5976
  const indeterminateTrackRef = React62.useRef(null);
5812
5977
  const indeterminateActiveRef = React62.useRef(null);
5813
5978
  const indeterminateWavyTrackPathRef = React62.useRef(null);
5814
5979
  const indeterminateWavyActivePathRef = React62.useRef(null);
5980
+ const determinateWavyActivePathRef = React62.useRef(null);
5981
+ const determinateWavyTrackPathRef = React62.useRef(null);
5815
5982
  const cachedPathLengthRef = React62.useRef(0);
5983
+ const fractionMV = useMotionValue(isDeterminate ? clampedValue / 100 : 0);
5984
+ const amplitudeMV = useMotionValue(isWavy ? effectiveAmplitude : 0);
5985
+ React62.useEffect(() => {
5986
+ if (isDeterminate) {
5987
+ animate(fractionMV, clampedValue / 100, {
5988
+ duration: 0.4,
5989
+ ease: [0.2, 0, 0, 1]
5990
+ });
5991
+ }
5992
+ }, [clampedValue, isDeterminate, fractionMV]);
5993
+ React62.useEffect(() => {
5994
+ if (!isDeterminate || !isWavy) return;
5995
+ const fraction = clampedValue / 100;
5996
+ let targetAmp = effectiveAmplitude;
5997
+ if (determinateAnimation === "md3") {
5998
+ targetAmp = fraction <= 0.1 || fraction >= 0.95 ? 0 : effectiveAmplitude;
5999
+ }
6000
+ animate(amplitudeMV, targetAmp, {
6001
+ type: "spring",
6002
+ bounce: 0,
6003
+ duration: 0.5
6004
+ });
6005
+ }, [
6006
+ clampedValue,
6007
+ isDeterminate,
6008
+ isWavy,
6009
+ effectiveAmplitude,
6010
+ amplitudeMV,
6011
+ determinateAnimation
6012
+ ]);
5816
6013
  React62.useLayoutEffect(() => {
5817
6014
  if (!isWavy || !wavyActivePath) {
5818
6015
  cachedPathLengthRef.current = circumference;
5819
6016
  return;
5820
6017
  }
5821
- const el = indeterminateActiveRef.current;
6018
+ const el = indeterminateActiveRef.current || determinateWavyActivePathRef.current;
5822
6019
  if (el && "getTotalLength" in el) {
5823
6020
  try {
5824
6021
  const len = el.getTotalLength();
@@ -5832,7 +6029,65 @@ var CircularProgress = React62.forwardRef(
5832
6029
  cachedPathLengthRef.current = circumference;
5833
6030
  }, [isWavy, circumference, wavyActivePath]);
5834
6031
  useAnimationFrame((time) => {
5835
- if (isDeterminate) return;
6032
+ const safeWaveSpeed = Math.max(0.1, waveSpeed);
6033
+ const wavePhase = time / 1e3 * safeWaveSpeed * 2 * Math.PI;
6034
+ if (isDeterminate) {
6035
+ if (isWavy) {
6036
+ const currentAmp = amplitudeMV.get();
6037
+ const dynamicPath = generateWavyCircularPath(
6038
+ center,
6039
+ radius,
6040
+ currentAmp,
6041
+ effectiveWavelength,
6042
+ wavePhase
6043
+ );
6044
+ if (determinateWavyActivePathRef.current) {
6045
+ determinateWavyActivePathRef.current.setAttribute("d", dynamicPath);
6046
+ }
6047
+ if (trackShape === "wavy" && determinateWavyTrackPathRef.current) {
6048
+ determinateWavyTrackPathRef.current.setAttribute("d", dynamicPath);
6049
+ }
6050
+ const pathEl = determinateWavyActivePathRef.current;
6051
+ let totalLen = cachedPathLengthRef.current || circumference;
6052
+ if (pathEl) {
6053
+ try {
6054
+ const len = pathEl.getTotalLength();
6055
+ if (len > 0) totalLen = len;
6056
+ } catch (e) {
6057
+ }
6058
+ }
6059
+ const activeFrac = Math.max(0, Math.min(1, fractionMV.get()));
6060
+ const activeLen = totalLen * activeFrac;
6061
+ if (determinateWavyActivePathRef.current) {
6062
+ determinateWavyActivePathRef.current.setAttribute(
6063
+ "stroke-dasharray",
6064
+ `${activeLen} ${totalLen}`
6065
+ );
6066
+ determinateWavyActivePathRef.current.setAttribute(
6067
+ "stroke-dashoffset",
6068
+ "0"
6069
+ );
6070
+ }
6071
+ if (shouldShowDeterminateTrack && trackShape === "wavy" && determinateWavyTrackPathRef.current) {
6072
+ const gapFrac = (gapSize + trackHeight) / totalLen;
6073
+ const trackStartFrac = activeFrac + gapFrac;
6074
+ const trackLen = Math.max(
6075
+ 1e-3,
6076
+ totalLen * (1 - activeFrac - 2 * gapFrac)
6077
+ );
6078
+ const trackOff = -totalLen * trackStartFrac;
6079
+ determinateWavyTrackPathRef.current.setAttribute(
6080
+ "stroke-dasharray",
6081
+ `${trackLen} ${totalLen}`
6082
+ );
6083
+ determinateWavyTrackPathRef.current.setAttribute(
6084
+ "stroke-dashoffset",
6085
+ `${trackOff}`
6086
+ );
6087
+ }
6088
+ }
6089
+ return;
6090
+ }
5836
6091
  const safeCrawlerSpeed = Math.max(0.1, crawlerSpeed);
5837
6092
  const scaledTime = time * safeCrawlerSpeed;
5838
6093
  const globalCycle = scaledTime % GLOBAL_ROTATION_DURATION;
@@ -5867,7 +6122,8 @@ var CircularProgress = React62.forwardRef(
5867
6122
  center,
5868
6123
  radius,
5869
6124
  currentAmplitude,
5870
- effectiveWavelength
6125
+ effectiveWavelength,
6126
+ wavePhase
5871
6127
  );
5872
6128
  if (indeterminateWavyActivePathRef.current) {
5873
6129
  indeterminateWavyActivePathRef.current.setAttribute("d", dynamicPath);
@@ -5962,7 +6218,7 @@ var CircularProgress = React62.forwardRef(
5962
6218
  style: { width: size, height: size }
5963
6219
  }, restProps), {
5964
6220
  children: /* @__PURE__ */ jsxs(LazyMotion, { features: domMax, strict: true, children: [
5965
- /* @__PURE__ */ jsxs(
6221
+ /* @__PURE__ */ jsx(
5966
6222
  "svg",
5967
6223
  {
5968
6224
  width: size,
@@ -5970,8 +6226,18 @@ var CircularProgress = React62.forwardRef(
5970
6226
  viewBox: `0 0 ${size} ${size}`,
5971
6227
  "aria-hidden": "true",
5972
6228
  style: { transform: "rotate(-90deg)", overflow: "visible" },
5973
- children: [
5974
- isDeterminate ? /* @__PURE__ */ jsx(
6229
+ children: isDeterminate ? isWavy ? /* @__PURE__ */ jsxs(Fragment, { children: [
6230
+ shouldShowDeterminateTrack && (trackShape === "wavy" ? /* @__PURE__ */ jsx(
6231
+ "path",
6232
+ {
6233
+ ref: determinateWavyTrackPathRef,
6234
+ d: wavyActivePath != null ? wavyActivePath : "",
6235
+ fill: "none",
6236
+ stroke: bgTrackColor,
6237
+ strokeWidth: trackHeight,
6238
+ strokeLinecap: "round"
6239
+ }
6240
+ ) : /* @__PURE__ */ jsx(
5975
6241
  m.circle,
5976
6242
  {
5977
6243
  cx: center,
@@ -5980,28 +6246,52 @@ var CircularProgress = React62.forwardRef(
5980
6246
  fill: "none",
5981
6247
  stroke: bgTrackColor,
5982
6248
  strokeWidth: trackHeight,
5983
- initial: { pathLength: trackLength, pathOffset: trackOffset },
5984
- animate: { pathLength: trackLength, pathOffset: trackOffset },
6249
+ initial: {
6250
+ pathLength: trackLength,
6251
+ pathOffset: trackOffset
6252
+ },
6253
+ animate: {
6254
+ pathLength: trackLength,
6255
+ pathOffset: trackOffset
6256
+ },
5985
6257
  transition: { duration: 0.4, ease: [0.2, 0, 0, 1] },
5986
6258
  strokeLinecap: "round"
5987
6259
  }
5988
- ) : null,
5989
- isDeterminate && (isWavy ? /* @__PURE__ */ jsx(
5990
- ActivePathElem,
6260
+ )),
6261
+ /* @__PURE__ */ jsx(
6262
+ "path",
5991
6263
  {
6264
+ ref: determinateWavyActivePathRef,
5992
6265
  d: wavyActivePath != null ? wavyActivePath : "",
5993
6266
  fill: "none",
5994
6267
  stroke: activeColor,
5995
6268
  strokeWidth: trackHeight,
5996
- strokeLinecap: "round",
5997
- initial: { pathLength: 0 },
5998
- animate: { pathLength: clampedValue / 100 },
5999
- transition: {
6000
- duration: 0.4,
6001
- ease: [0.2, 0, 0, 1]
6002
- }
6269
+ strokeLinecap: "round"
6003
6270
  }
6004
- ) : /* @__PURE__ */ jsx(
6271
+ )
6272
+ ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
6273
+ /* @__PURE__ */ jsx(
6274
+ m.circle,
6275
+ {
6276
+ cx: center,
6277
+ cy: center,
6278
+ r: radius,
6279
+ fill: "none",
6280
+ stroke: bgTrackColor,
6281
+ strokeWidth: trackHeight,
6282
+ initial: {
6283
+ pathLength: trackLength,
6284
+ pathOffset: trackOffset
6285
+ },
6286
+ animate: {
6287
+ pathLength: trackLength,
6288
+ pathOffset: trackOffset
6289
+ },
6290
+ transition: { duration: 0.4, ease: [0.2, 0, 0, 1] },
6291
+ strokeLinecap: "round"
6292
+ }
6293
+ ),
6294
+ /* @__PURE__ */ jsx(
6005
6295
  ActiveCircleElem,
6006
6296
  {
6007
6297
  cx: center,
@@ -6018,8 +6308,8 @@ var CircularProgress = React62.forwardRef(
6018
6308
  ease: [0.2, 0, 0, 1]
6019
6309
  }
6020
6310
  }
6021
- ))
6022
- ]
6311
+ )
6312
+ ] }) : null
6023
6313
  }
6024
6314
  ),
6025
6315
  !isDeterminate && /* @__PURE__ */ jsx(
@@ -8387,9 +8677,9 @@ var TOGGLE_FAB_COLORS = {
8387
8677
  }
8388
8678
  };
8389
8679
  var TOGGLE_FAB_SIZES = {
8390
- baseline: { sizeClass: "h-14 w-14", initialRadius: 16, finalRadius: 28 },
8391
- medium: { sizeClass: "h-20 w-20", initialRadius: 20, finalRadius: 40 },
8392
- large: { sizeClass: "h-24 w-24", initialRadius: 28, finalRadius: 48 }
8680
+ sm: { sizeClass: "h-14 w-14", initialRadius: 16, finalRadius: 28 },
8681
+ md: { sizeClass: "h-20 w-20", initialRadius: 20, finalRadius: 40 },
8682
+ lg: { sizeClass: "h-24 w-24", initialRadius: 28, finalRadius: 48 }
8393
8683
  };
8394
8684
  var MENU_ITEM_STYLES = {
8395
8685
  padding: "ps-4 pe-6",
@@ -8476,7 +8766,7 @@ var ToggleFABComponent = React62.forwardRef(
8476
8766
  onToggle,
8477
8767
  icon,
8478
8768
  colorVariant = "primary",
8479
- fabSize = "baseline",
8769
+ size = "sm",
8480
8770
  className,
8481
8771
  id,
8482
8772
  "aria-label": ariaLabel,
@@ -8485,7 +8775,7 @@ var ToggleFABComponent = React62.forwardRef(
8485
8775
  var _a, _b;
8486
8776
  const prefersReduced = useReducedMotion();
8487
8777
  const colors = (_a = TOGGLE_FAB_COLORS[colorVariant]) != null ? _a : TOGGLE_FAB_COLORS.primary;
8488
- const sizeTokens = (_b = TOGGLE_FAB_SIZES[fabSize]) != null ? _b : TOGGLE_FAB_SIZES.baseline;
8778
+ const sizeTokens = (_b = TOGGLE_FAB_SIZES[size]) != null ? _b : TOGGLE_FAB_SIZES.sm;
8489
8779
  const springConfig = prefersReduced ? SPRING_REDUCED : SPRING_NORMAL;
8490
8780
  const checkedProgress = useSpring(expanded ? 1 : 0, springConfig);
8491
8781
  React62.useEffect(() => {
@@ -8655,7 +8945,7 @@ function FABMenu({
8655
8945
  onToggle,
8656
8946
  items,
8657
8947
  colorVariant = "primary",
8658
- fabSize = "baseline",
8948
+ size = "sm",
8659
8949
  alignment = "end",
8660
8950
  className,
8661
8951
  closeOnBackdropClick = true,
@@ -8806,7 +9096,7 @@ function FABMenu({
8806
9096
  expanded,
8807
9097
  onToggle,
8808
9098
  colorVariant,
8809
- fabSize,
9099
+ size,
8810
9100
  "aria-label": ariaLabel != null ? ariaLabel : expanded ? "Close actions menu" : "Open actions menu",
8811
9101
  "aria-controls": menuId,
8812
9102
  icon: defaultFabIcon
@@ -8950,7 +9240,7 @@ var IconButtonComponent = React62.forwardRef(
8950
9240
  variant = "default",
8951
9241
  colorStyle = "standard",
8952
9242
  size = "sm",
8953
- widthVariant = "default",
9243
+ width = "default",
8954
9244
  shape = "round",
8955
9245
  selected,
8956
9246
  selectedIcon,
@@ -8968,7 +9258,7 @@ var IconButtonComponent = React62.forwardRef(
8968
9258
  "variant",
8969
9259
  "colorStyle",
8970
9260
  "size",
8971
- "widthVariant",
9261
+ "width",
8972
9262
  "shape",
8973
9263
  "selected",
8974
9264
  "selectedIcon",
@@ -9013,7 +9303,7 @@ var IconButtonComponent = React62.forwardRef(
9013
9303
  const iconPx = iconSize != null ? iconSize : defaultIconPx;
9014
9304
  const isCustomSize = iconSize != null && iconSize !== "inherit";
9015
9305
  const heightClass = (_c = SIZE_HEIGHT_STYLES[size]) != null ? _c : SIZE_HEIGHT_STYLES.sm;
9016
- const widthClass = (_e = ((_d = WIDTH_SIZE_STYLES[size]) != null ? _d : WIDTH_SIZE_STYLES.sm)[widthVariant]) != null ? _e : WIDTH_SIZE_STYLES.sm.default;
9306
+ const widthClass = (_e = ((_d = WIDTH_SIZE_STYLES[size]) != null ? _d : WIDTH_SIZE_STYLES.sm)[width]) != null ? _e : WIDTH_SIZE_STYLES.sm.default;
9017
9307
  const needsTouchTarget = size === "xs" || size === "sm";
9018
9308
  const { ripples, onPointerDown, removeRipple } = useRippleState({
9019
9309
  disabled: loading
@@ -9182,11 +9472,12 @@ var SplitButtonLayoutComponent = React62.forwardRef(
9182
9472
  "div",
9183
9473
  __spreadProps(__spreadValues({
9184
9474
  ref,
9475
+ role: "group",
9185
9476
  className: cn(
9186
9477
  "inline-flex flex-row items-stretch justify-center w-fit shrink-0 relative",
9187
9478
  className
9188
9479
  ),
9189
- style: { gap: `${spacing}px` }
9480
+ style: __spreadValues({ gap: `${spacing}px` }, restProps.style)
9190
9481
  }, restProps), {
9191
9482
  children: [
9192
9483
  leadingButton,
@@ -9399,11 +9690,11 @@ var LEADING_ICON_SIZE_FOR_SIZE = {
9399
9690
  xl: 40
9400
9691
  };
9401
9692
  var splitButtonSizeVariants = {
9402
- xs: "min-h-[32px]",
9403
- sm: "min-h-[40px]",
9404
- md: "min-h-[56px]",
9405
- lg: "min-h-[96px]",
9406
- xl: "min-h-[136px]"
9693
+ xs: "h-[32px] min-h-[32px]",
9694
+ sm: "h-[40px] min-h-[40px]",
9695
+ md: "h-[56px] min-h-[56px]",
9696
+ lg: "h-[96px] min-h-[96px]",
9697
+ xl: "h-[136px] min-h-[136px]"
9407
9698
  };
9408
9699
  var splitButtonVariants = cva(
9409
9700
  "group relative w-fit shrink-0 inline-flex flex-row items-center justify-center whitespace-nowrap select-none cursor-pointer transition-[background-color,color,border-color,box-shadow,opacity,filter] duration-200 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-m3-primary z-10 overflow-hidden",
@@ -9587,7 +9878,7 @@ var SplitButtonLeadingComponent = React62.forwardRef(
9587
9878
  children: icon
9588
9879
  }
9589
9880
  ),
9590
- labelContent && /* @__PURE__ */ jsx("span", { className: "inline-flex items-center h-full gap-[inherit]", children: labelContent })
9881
+ labelContent && /* @__PURE__ */ jsx("span", { className: "inline-flex items-center justify-center gap-[inherit]", children: labelContent })
9591
9882
  ] });
9592
9883
  const containerClassName = cn(
9593
9884
  splitButtonVariants({
@@ -9595,19 +9886,20 @@ var SplitButtonLeadingComponent = React62.forwardRef(
9595
9886
  size: actualSize,
9596
9887
  disabled
9597
9888
  }),
9889
+ "gap-2",
9598
9890
  typographyClass,
9599
9891
  className
9600
9892
  );
9601
9893
  const mergedStyle = __spreadValues({
9602
9894
  paddingInlineStart: tokens.leadingPadding.start,
9603
9895
  paddingInlineEnd: tokens.leadingPadding.end,
9604
- gap: "8px",
9605
9896
  borderRadius
9606
9897
  }, style);
9607
9898
  return /* @__PURE__ */ jsx(LazyMotion, { features: domMax, strict: true, children: asChild ? /* @__PURE__ */ jsx(
9608
9899
  Slot,
9609
9900
  __spreadProps(__spreadValues({
9610
9901
  ref,
9902
+ "data-split-button-part": "leading",
9611
9903
  "aria-disabled": disabled || void 0,
9612
9904
  onClick: handleClick,
9613
9905
  onPointerDown: handlePointerDown,
@@ -9630,6 +9922,7 @@ var SplitButtonLeadingComponent = React62.forwardRef(
9630
9922
  __spreadProps(__spreadValues({
9631
9923
  ref,
9632
9924
  type: "button",
9925
+ "data-split-button-part": "leading",
9633
9926
  disabled,
9634
9927
  onClick: handleClick,
9635
9928
  onPointerDown: handlePointerDown,
@@ -9643,8 +9936,7 @@ var SplitButtonLeadingComponent = React62.forwardRef(
9643
9936
  transition: SPLIT_BUTTON_RADIUS_SPRING,
9644
9937
  style: __spreadValues({
9645
9938
  paddingInlineStart: tokens.leadingPadding.start,
9646
- paddingInlineEnd: tokens.leadingPadding.end,
9647
- gap: "8px"
9939
+ paddingInlineEnd: tokens.leadingPadding.end
9648
9940
  }, style),
9649
9941
  className: containerClassName
9650
9942
  }, restProps), {
@@ -9682,7 +9974,8 @@ var SplitButtonTrailingComponent = React62.forwardRef(
9682
9974
  onBlur,
9683
9975
  asChild = false,
9684
9976
  children,
9685
- "aria-label": ariaLabel
9977
+ "aria-label": ariaLabel,
9978
+ "aria-haspopup": ariaHaspopup = "menu"
9686
9979
  } = _b, restProps = __objRest(_b, [
9687
9980
  "className",
9688
9981
  "style",
@@ -9700,7 +9993,8 @@ var SplitButtonTrailingComponent = React62.forwardRef(
9700
9993
  "onBlur",
9701
9994
  "asChild",
9702
9995
  "children",
9703
- "aria-label"
9996
+ "aria-label",
9997
+ "aria-haspopup"
9704
9998
  ]);
9705
9999
  var _a2, _b2;
9706
10000
  const context = useSplitButtonContext();
@@ -9793,7 +10087,11 @@ var SplitButtonTrailingComponent = React62.forwardRef(
9793
10087
  x: checked ? 0 : tokens.opticalCenterOffset
9794
10088
  },
9795
10089
  transition: prefersReducedMotion2 ? { duration: 0 } : SPLIT_BUTTON_CHEVRON_SPRING,
9796
- className: "flex items-center justify-center shrink-0",
10090
+ className: "flex items-center justify-center shrink-0 [&>svg]:w-full [&>svg]:h-full",
10091
+ style: {
10092
+ width: tokens.trailingIconSize,
10093
+ height: tokens.trailingIconSize
10094
+ },
9797
10095
  children: icon != null ? icon : /* @__PURE__ */ jsx(
9798
10096
  Icon,
9799
10097
  {
@@ -9822,8 +10120,10 @@ var SplitButtonTrailingComponent = React62.forwardRef(
9822
10120
  Slot,
9823
10121
  __spreadProps(__spreadValues({
9824
10122
  ref,
10123
+ "data-split-button-part": "trailing",
9825
10124
  "aria-label": ariaLabel,
9826
10125
  "aria-expanded": checked,
10126
+ "aria-haspopup": ariaHaspopup,
9827
10127
  "aria-disabled": disabled,
9828
10128
  onClick: handleToggle,
9829
10129
  onPointerDown: handlePointerDown,
@@ -9846,8 +10146,10 @@ var SplitButtonTrailingComponent = React62.forwardRef(
9846
10146
  __spreadProps(__spreadValues({
9847
10147
  ref,
9848
10148
  type: "button",
10149
+ "data-split-button-part": "trailing",
9849
10150
  "aria-label": ariaLabel,
9850
10151
  "aria-expanded": checked,
10152
+ "aria-haspopup": ariaHaspopup,
9851
10153
  "aria-disabled": disabled,
9852
10154
  disabled,
9853
10155
  onClick: handleToggle,
@@ -9922,6 +10224,7 @@ var SplitButtonTrailingUncheckableComponent = React62.forwardRef(
9922
10224
  const [isFocused, setIsFocused] = React62.useState(false);
9923
10225
  const [isPressed, setIsPressed] = React62.useState(false);
9924
10226
  const tokens = SPLIT_BUTTON_TOKENS[actualSize];
10227
+ const prefersReducedMotion2 = useReducedMotion();
9925
10228
  const needsTouchTarget = actualSize === "xs" || actualSize === "sm";
9926
10229
  const {
9927
10230
  ripples,
@@ -9985,6 +10288,7 @@ var SplitButtonTrailingUncheckableComponent = React62.forwardRef(
9985
10288
  __spreadProps(__spreadValues({
9986
10289
  ref,
9987
10290
  type: "button",
10291
+ "data-split-button-part": "trailing",
9988
10292
  "aria-label": ariaLabel,
9989
10293
  disabled,
9990
10294
  onClick,
@@ -9996,7 +10300,7 @@ var SplitButtonTrailingUncheckableComponent = React62.forwardRef(
9996
10300
  onFocus: handleFocus,
9997
10301
  onBlur: handleBlur,
9998
10302
  animate: { borderRadius },
9999
- transition: SPLIT_BUTTON_RADIUS_SPRING,
10303
+ transition: prefersReducedMotion2 ? { duration: 0 } : SPLIT_BUTTON_RADIUS_SPRING,
10000
10304
  style: __spreadValues({
10001
10305
  paddingInlineStart: tokens.trailingPadding.start,
10002
10306
  paddingInlineEnd: tokens.trailingPadding.end
@@ -10025,7 +10329,7 @@ var SplitButtonTrailingUncheckableComponent = React62.forwardRef(
10025
10329
  m.div,
10026
10330
  {
10027
10331
  animate: { x: tokens.opticalCenterOffset },
10028
- transition: SPLIT_BUTTON_RADIUS_SPRING,
10332
+ transition: prefersReducedMotion2 ? { duration: 0 } : SPLIT_BUTTON_RADIUS_SPRING,
10029
10333
  className: "flex items-center justify-center shrink-0 [&>svg]:w-full [&>svg]:h-full",
10030
10334
  style: {
10031
10335
  width: tokens.trailingIconSize,
@@ -13942,7 +14246,7 @@ var DividerImpl = React62.forwardRef(
13942
14246
  insetStart = "standard",
13943
14247
  waveConfig,
13944
14248
  decorative = false,
13945
- animate: animate4 = true,
14249
+ animate: animate5 = true,
13946
14250
  className,
13947
14251
  style
13948
14252
  } = _b, props = __objRest(_b, [
@@ -13958,7 +14262,7 @@ var DividerImpl = React62.forwardRef(
13958
14262
  ]);
13959
14263
  var _a2, _b2, _c;
13960
14264
  const reducedMotion = useReducedMotion();
13961
- const shouldAnimate = animate4 && !reducedMotion;
14265
+ const shouldAnimate = animate5 && !reducedMotion;
13962
14266
  const effectiveShape = shape === "wavy" && orientation === "vertical" ? "flat" : shape;
13963
14267
  if (shape === "wavy" && orientation === "vertical") {
13964
14268
  console.warn(
@@ -19064,7 +19368,7 @@ function useShapeMorph({
19064
19368
  currentProgressRef.current = p;
19065
19369
  setClipPath(interpolatePath(morph, p, width, height));
19066
19370
  }, [scrollProgress, morphOn, morph, width, height]);
19067
- const animate4 = useCallback(
19371
+ const animate5 = useCallback(
19068
19372
  (timestamp) => {
19069
19373
  if (!morph) return;
19070
19374
  const elapsed = timestamp - startTimeRef.current;
@@ -19075,7 +19379,7 @@ function useShapeMorph({
19075
19379
  currentProgressRef.current = progress;
19076
19380
  setClipPath(interpolatePath(morph, progress, width, height));
19077
19381
  if (rawT < 1) {
19078
- animRef.current = requestAnimationFrame(animate4);
19382
+ animRef.current = requestAnimationFrame(animate5);
19079
19383
  } else {
19080
19384
  animRef.current = null;
19081
19385
  }
@@ -19094,9 +19398,9 @@ function useShapeMorph({
19094
19398
  startProgressRef.current = currentProgressRef.current;
19095
19399
  targetProgressRef.current = toProgress;
19096
19400
  startTimeRef.current = performance.now();
19097
- animRef.current = requestAnimationFrame(animate4);
19401
+ animRef.current = requestAnimationFrame(animate5);
19098
19402
  },
19099
- [morph, animate4, width, height]
19403
+ [morph, animate5, width, height]
19100
19404
  );
19101
19405
  useEffect(() => {
19102
19406
  return () => {
@@ -20453,26 +20757,26 @@ var SliderTokens = {
20453
20757
  // ── Track sizes (height for horizontal, width for vertical) ────────────────
20454
20758
  trackSizes: {
20455
20759
  xs: 16,
20456
- s: 24,
20457
- m: 40,
20458
- l: 56,
20760
+ sm: 24,
20761
+ md: 40,
20762
+ lg: 56,
20459
20763
  xl: 96
20460
20764
  },
20461
20765
  // ── Track shapes (border radius) ──────────────────────────────────────────
20462
20766
  trackShapes: {
20463
20767
  xs: 8,
20464
- s: 8,
20465
- m: 12,
20466
- l: 16,
20768
+ sm: 8,
20769
+ md: 12,
20770
+ lg: 16,
20467
20771
  xl: 28
20468
20772
  },
20469
20773
  // ── Thumb (handle) ────────────────────────────────────────────────────────
20470
20774
  /** Thumb height grows with track size */
20471
20775
  thumbHeights: {
20472
20776
  xs: 44,
20473
- s: 44,
20474
- m: 52,
20475
- l: 68,
20777
+ sm: 44,
20778
+ md: 52,
20779
+ lg: 68,
20476
20780
  xl: 108
20477
20781
  },
20478
20782
  /**
@@ -20517,9 +20821,9 @@ var SliderTokens = {
20517
20821
  /** Standard icon size map for inset icons inside the track. */
20518
20822
  insetIconSizes: {
20519
20823
  xs: 0,
20520
- s: 0,
20521
- m: 24,
20522
- l: 24,
20824
+ sm: 0,
20825
+ md: 24,
20826
+ lg: 24,
20523
20827
  xl: 32
20524
20828
  },
20525
20829
  /**
@@ -20553,14 +20857,14 @@ var SliderColors = {
20553
20857
  // ── Ticks ────────────────────────────────────────────────────────────────
20554
20858
  /**
20555
20859
  * Tick on the INACTIVE portion of the track.
20556
- * Maps to TickMarkActiveContainerColor (in spec: primary color stands out).
20860
+ * Maps to TickMarkInactiveContainerColor (in spec: primary color stands out).
20557
20861
  */
20558
20862
  tickOnInactive: "var(--md-sys-color-primary)",
20559
20863
  /**
20560
20864
  * Tick on the ACTIVE portion of the track.
20561
- * Maps to TickMarkInactiveContainerColor (secondary-container blends in).
20865
+ * Maps to TickMarkActiveContainerColor (in spec: on-primary contrasts with filled track).
20562
20866
  */
20563
- tickOnActive: "var(--md-sys-color-secondary-container)",
20867
+ tickOnActive: "var(--md-sys-color-on-primary)",
20564
20868
  disabledTick: "var(--md-sys-color-on-surface)"
20565
20869
  };
20566
20870
  var SLIDER_THUMB_SPRING = {
@@ -20579,11 +20883,11 @@ var ValueIndicator = React62.memo(function ValueIndicator2({
20579
20883
  orientation,
20580
20884
  formatValue,
20581
20885
  prefersReduced,
20582
- trackSize
20886
+ size
20583
20887
  }) {
20584
20888
  const label = formatValue ? formatValue(value) : String(Math.round(value));
20585
20889
  const isHorizontal = orientation === "horizontal";
20586
- const thumbHeight = SliderTokens.thumbHeights[trackSize];
20890
+ const thumbHeight = SliderTokens.thumbHeights[size];
20587
20891
  const offsetFromCenter = thumbHeight / 2 + 8;
20588
20892
  return /* @__PURE__ */ jsx(AnimatePresence, { children: visible && /* @__PURE__ */ jsx(
20589
20893
  m.div,
@@ -20634,7 +20938,7 @@ var SliderThumb = React62.memo(function SliderThumb2({
20634
20938
  onValueChangeEnd,
20635
20939
  formatValue,
20636
20940
  thumbId,
20637
- trackSize,
20941
+ size,
20638
20942
  variant,
20639
20943
  zIndex = 1,
20640
20944
  "aria-label": ariaLabel,
@@ -20643,10 +20947,7 @@ var SliderThumb = React62.memo(function SliderThumb2({
20643
20947
  var _a;
20644
20948
  const isHorizontal = orientation === "horizontal";
20645
20949
  const insetLimit = SliderTokens.thumbGap + SliderTokens.thumbWidthDefault / 2;
20646
- const trackInset = Math.min(
20647
- SliderTokens.trackSizes[trackSize] / 2,
20648
- insetLimit
20649
- );
20950
+ const trackInset = Math.min(SliderTokens.trackSizes[size] / 2, insetLimit);
20650
20951
  const posTarget = isHorizontal ? "left" : "bottom";
20651
20952
  const motionStyle = {
20652
20953
  [posTarget]: `calc(${trackInset}px + ${percent} * (100% - ${trackInset * 2}px))`
@@ -20679,7 +20980,7 @@ var SliderThumb = React62.memo(function SliderThumb2({
20679
20980
  const space = isHorizontal ? rect.width : rect.height;
20680
20981
  const insetLimit2 = SliderTokens.thumbGap + SliderTokens.thumbWidthDefault / 2;
20681
20982
  const trackInset2 = Math.min(
20682
- SliderTokens.trackSizes[trackSize] / 2,
20983
+ SliderTokens.trackSizes[size] / 2,
20683
20984
  insetLimit2
20684
20985
  );
20685
20986
  const safeSpace = space - trackInset2 * 2;
@@ -20696,7 +20997,7 @@ var SliderThumb = React62.memo(function SliderThumb2({
20696
20997
  const snapped = step > 0 ? Math.round((rawValue - min) / step) * step + min : rawValue;
20697
20998
  return Math.max(min, Math.min(max, snapped));
20698
20999
  },
20699
- [isHorizontal, max, min, percent, step, trackRef, trackSize]
21000
+ [isHorizontal, max, min, percent, step, trackRef, size]
20700
21001
  );
20701
21002
  const handlePointerDown = React62.useCallback(
20702
21003
  (e) => {
@@ -20782,7 +21083,7 @@ var SliderThumb = React62.memo(function SliderThumb2({
20782
21083
  orientation,
20783
21084
  formatValue,
20784
21085
  prefersReduced,
20785
- trackSize
21086
+ size
20786
21087
  }
20787
21088
  ),
20788
21089
  /* @__PURE__ */ jsx(
@@ -20815,11 +21116,11 @@ var SliderThumb = React62.memo(function SliderThumb2({
20815
21116
  "focus-visible:outline-(--md-sys-color-secondary)"
20816
21117
  ),
20817
21118
  style: __spreadProps(__spreadValues({}, isHorizontal ? {
20818
- height: SliderTokens.thumbHeights[trackSize],
21119
+ height: SliderTokens.thumbHeights[size],
20819
21120
  width: SliderTokens.thumbWidthDefault,
20820
21121
  willChange: "width"
20821
21122
  } : {
20822
- width: SliderTokens.thumbHeights[trackSize],
21123
+ width: SliderTokens.thumbHeights[size],
20823
21124
  height: SliderTokens.thumbWidthDefault,
20824
21125
  willChange: "height"
20825
21126
  }), {
@@ -20834,7 +21135,7 @@ var SliderThumb = React62.memo(function SliderThumb2({
20834
21135
  var RangeTrack = React62.memo(function RangeTrack2({
20835
21136
  startPercent,
20836
21137
  endPercent,
20837
- trackSize,
21138
+ size,
20838
21139
  orientation,
20839
21140
  variant,
20840
21141
  disabled,
@@ -20846,22 +21147,22 @@ var RangeTrack = React62.memo(function RangeTrack2({
20846
21147
  onTrackPointerDown
20847
21148
  }) {
20848
21149
  const isHorizontal = orientation === "horizontal";
20849
- const size = SliderTokens.trackSizes[trackSize];
20850
- const thumbHeight = SliderTokens.thumbHeights[trackSize];
21150
+ const trackPixelSize = SliderTokens.trackSizes[size];
21151
+ const thumbHeight = SliderTokens.thumbHeights[size];
20851
21152
  const { thumbGap, thumbWidthDefault, tickSize } = SliderTokens;
20852
21153
  const thumbHalfWidth = thumbWidthDefault / 2;
20853
21154
  const activeTrack = disabled ? SliderColors.disabledActiveTrack : `var(--md-sys-color-${variant})`;
20854
21155
  const inactiveTrack = disabled ? SliderColors.disabledInactiveTrack : `var(--md-sys-color-${variant}-container)`;
20855
21156
  const innerR = SliderTokens.trackInnerRadius;
20856
- let outerR = size / 2;
21157
+ let outerR = trackPixelSize / 2;
20857
21158
  if (trackShape === "md3") {
20858
- outerR = Math.min(SliderTokens.trackShapes[trackSize], size / 2);
21159
+ outerR = Math.min(SliderTokens.trackShapes[size], trackPixelSize / 2);
20859
21160
  } else if (typeof trackShape === "number") {
20860
- outerR = Math.min(trackShape, size / 2);
21161
+ outerR = Math.min(trackShape, trackPixelSize / 2);
20861
21162
  }
20862
21163
  if (isHorizontal) {
20863
21164
  const insetLimit2 = thumbGap + thumbWidthDefault / 2;
20864
- const trackInset2 = Math.min(size / 2, insetLimit2);
21165
+ const trackInset2 = Math.min(trackPixelSize / 2, insetLimit2);
20865
21166
  const cxStart = `calc(${trackInset2}px + ${startPercent} * (100% - ${trackInset2 * 2}px))`;
20866
21167
  const cxEnd = `calc(${trackInset2}px + ${endPercent} * (100% - ${trackInset2 * 2}px))`;
20867
21168
  const gapWithThumbStr2 = `${thumbGap + thumbHalfWidth}px`;
@@ -20892,7 +21193,7 @@ var RangeTrack = React62.memo(function RangeTrack2({
20892
21193
  top: "50%",
20893
21194
  transform: "translateY(-50%)",
20894
21195
  width: leadingWidth,
20895
- height: size,
21196
+ height: trackPixelSize,
20896
21197
  backgroundColor: inactiveTrack,
20897
21198
  opacity: disabled ? 0.38 : 1,
20898
21199
  borderTopLeftRadius: outerR,
@@ -20912,7 +21213,7 @@ var RangeTrack = React62.memo(function RangeTrack2({
20912
21213
  top: "50%",
20913
21214
  transform: "translateY(-50%)",
20914
21215
  width: activeWidth,
20915
- height: size,
21216
+ height: trackPixelSize,
20916
21217
  backgroundColor: activeTrack,
20917
21218
  opacity: disabled ? 0.38 : 1,
20918
21219
  borderTopLeftRadius: startPercent <= 0 ? outerR : innerR,
@@ -20932,7 +21233,7 @@ var RangeTrack = React62.memo(function RangeTrack2({
20932
21233
  top: "50%",
20933
21234
  transform: "translateY(-50%)",
20934
21235
  width: trailingWidth,
20935
- height: size,
21236
+ height: trackPixelSize,
20936
21237
  backgroundColor: inactiveTrack,
20937
21238
  opacity: disabled ? 0.38 : 1,
20938
21239
  borderTopLeftRadius: innerR,
@@ -20954,7 +21255,7 @@ var RangeTrack = React62.memo(function RangeTrack2({
20954
21255
  width: tickSize,
20955
21256
  height: tickSize,
20956
21257
  borderRadius: "50%",
20957
- backgroundColor: disabled ? SliderColors.disabledTick : isActive ? `var(--md-sys-color-${variant}-container)` : `var(--md-sys-color-${variant})`,
21258
+ backgroundColor: disabled ? SliderColors.disabledTick : isActive ? `var(--md-sys-color-on-${variant})` : `var(--md-sys-color-${variant})`,
20958
21259
  opacity: disabled ? 0.38 : 1,
20959
21260
  left: `calc(${trackInset2}px + ${tickPct} * (100% - ${trackInset2 * 2}px) - ${tickSize / 2}px)`,
20960
21261
  top: "50%",
@@ -20969,7 +21270,7 @@ var RangeTrack = React62.memo(function RangeTrack2({
20969
21270
  );
20970
21271
  }
20971
21272
  const insetLimit = thumbGap + thumbWidthDefault / 2;
20972
- const trackInset = Math.min(size / 2, insetLimit);
21273
+ const trackInset = Math.min(trackPixelSize / 2, insetLimit);
20973
21274
  const cyStart = `calc(${trackInset}px + ${startPercent} * (100% - ${trackInset * 2}px))`;
20974
21275
  const cyEnd = `calc(${trackInset}px + ${endPercent} * (100% - ${trackInset * 2}px))`;
20975
21276
  const gapWithThumbStr = `${thumbGap + thumbHalfWidth}px`;
@@ -21000,7 +21301,7 @@ var RangeTrack = React62.memo(function RangeTrack2({
21000
21301
  left: "50%",
21001
21302
  transform: "translateX(-50%)",
21002
21303
  height: leadingHeight,
21003
- width: size,
21304
+ width: trackPixelSize,
21004
21305
  backgroundColor: inactiveTrack,
21005
21306
  opacity: disabled ? 0.38 : 1,
21006
21307
  borderBottomLeftRadius: outerR,
@@ -21020,7 +21321,7 @@ var RangeTrack = React62.memo(function RangeTrack2({
21020
21321
  left: "50%",
21021
21322
  transform: "translateX(-50%)",
21022
21323
  height: activeHeight,
21023
- width: size,
21324
+ width: trackPixelSize,
21024
21325
  backgroundColor: activeTrack,
21025
21326
  opacity: disabled ? 0.38 : 1,
21026
21327
  borderBottomLeftRadius: startPercent <= 0 ? outerR : innerR,
@@ -21040,7 +21341,7 @@ var RangeTrack = React62.memo(function RangeTrack2({
21040
21341
  left: "50%",
21041
21342
  transform: "translateX(-50%)",
21042
21343
  height: trailingHeight,
21043
- width: size,
21344
+ width: trackPixelSize,
21044
21345
  backgroundColor: inactiveTrack,
21045
21346
  opacity: disabled ? 0.38 : 1,
21046
21347
  borderTopLeftRadius: outerR,
@@ -21062,7 +21363,7 @@ var RangeTrack = React62.memo(function RangeTrack2({
21062
21363
  width: tickSize,
21063
21364
  height: tickSize,
21064
21365
  borderRadius: "50%",
21065
- backgroundColor: disabled ? SliderColors.disabledTick : isActive ? `var(--md-sys-color-${variant}-container)` : `var(--md-sys-color-${variant})`,
21366
+ backgroundColor: disabled ? SliderColors.disabledTick : isActive ? `var(--md-sys-color-on-${variant})` : `var(--md-sys-color-${variant})`,
21066
21367
  opacity: disabled ? 0.38 : 1,
21067
21368
  bottom: `calc(${trackInset}px + ${tickPct} * (100% - ${trackInset * 2}px) - ${tickSize / 2}px)`,
21068
21369
  left: "50%",
@@ -21086,7 +21387,7 @@ var RangeSliderComponent = React62.forwardRef(
21086
21387
  max = 100,
21087
21388
  step = 0,
21088
21389
  orientation = "horizontal",
21089
- trackSize = "m",
21390
+ size = "md",
21090
21391
  trackShape = "md3",
21091
21392
  variant = "primary",
21092
21393
  disabled = false,
@@ -21158,7 +21459,7 @@ var RangeSliderComponent = React62.forwardRef(
21158
21459
  let clickPercent;
21159
21460
  const insetLimit = SliderTokens.thumbGap + SliderTokens.thumbWidthDefault / 2;
21160
21461
  const trackInset = Math.min(
21161
- SliderTokens.trackSizes[trackSize] / 2,
21462
+ SliderTokens.trackSizes[size] / 2,
21162
21463
  insetLimit
21163
21464
  );
21164
21465
  if (isHorizontal) {
@@ -21190,7 +21491,7 @@ var RangeSliderComponent = React62.forwardRef(
21190
21491
  min,
21191
21492
  snap,
21192
21493
  startValue,
21193
- trackSize
21494
+ size
21194
21495
  ]
21195
21496
  );
21196
21497
  const id = React62.useId();
@@ -21211,7 +21512,7 @@ var RangeSliderComponent = React62.forwardRef(
21211
21512
  {
21212
21513
  startPercent,
21213
21514
  endPercent,
21214
- trackSize,
21515
+ size,
21215
21516
  trackShape,
21216
21517
  orientation,
21217
21518
  variant,
@@ -21233,7 +21534,7 @@ var RangeSliderComponent = React62.forwardRef(
21233
21534
  step,
21234
21535
  disabled,
21235
21536
  orientation,
21236
- trackSize,
21537
+ size,
21237
21538
  variant,
21238
21539
  showValueIndicator,
21239
21540
  trackRef,
@@ -21255,7 +21556,7 @@ var RangeSliderComponent = React62.forwardRef(
21255
21556
  step,
21256
21557
  disabled,
21257
21558
  orientation,
21258
- trackSize,
21559
+ size,
21259
21560
  variant,
21260
21561
  showValueIndicator,
21261
21562
  trackRef,
@@ -21318,13 +21619,13 @@ var InsetIcon = React62.memo(function InsetIcon2({
21318
21619
  position,
21319
21620
  orientation,
21320
21621
  trackSize,
21321
- trackSizeToken,
21622
+ sizeToken,
21322
21623
  disabled,
21323
21624
  variant,
21324
21625
  prefersReduced
21325
21626
  }) {
21326
21627
  const iconSize = Math.min(
21327
- SliderTokens.insetIconSizes[trackSizeToken],
21628
+ SliderTokens.insetIconSizes[sizeToken],
21328
21629
  Math.max(4, trackSize - SliderTokens.insetIconPadding * 2)
21329
21630
  );
21330
21631
  const activeColor = `var(--md-sys-color-on-${variant})`;
@@ -21385,7 +21686,7 @@ function Ticks({
21385
21686
  const thumbStart = percent - (thumbGap + thumbWidthDefault / 2) / 100;
21386
21687
  const thumbEnd = percent + (thumbGap + thumbWidthDefault / 2) / 100;
21387
21688
  if (tickPercent > thumbStart && tickPercent < thumbEnd) return null;
21388
- const color = disabled ? SliderColors.disabledTick : isOnActive ? `var(--md-sys-color-${variant}-container)` : `var(--md-sys-color-${variant})`;
21689
+ const color = disabled ? SliderColors.disabledTick : isOnActive ? `var(--md-sys-color-on-${variant})` : `var(--md-sys-color-${variant})`;
21389
21690
  const style = __spreadValues({
21390
21691
  position: "absolute",
21391
21692
  width: tickSize,
@@ -21408,7 +21709,7 @@ function Ticks({
21408
21709
  }
21409
21710
  var SliderTrack = React62.memo(function SliderTrack2({
21410
21711
  percent,
21411
- trackSize,
21712
+ size,
21412
21713
  orientation,
21413
21714
  variant,
21414
21715
  isCentered,
@@ -21427,15 +21728,15 @@ var SliderTrack = React62.memo(function SliderTrack2({
21427
21728
  }) {
21428
21729
  var _a;
21429
21730
  const isHorizontal = orientation === "horizontal";
21430
- const size = SliderTokens.trackSizes[trackSize];
21431
- const thumbHeight = SliderTokens.thumbHeights[trackSize];
21731
+ const trackPixelSize = SliderTokens.trackSizes[size];
21732
+ const thumbHeight = SliderTokens.thumbHeights[size];
21432
21733
  const { thumbGap, thumbWidthDefault, trackInnerRadius } = SliderTokens;
21433
21734
  const innerR = trackInnerRadius;
21434
- let outerR = size / 2;
21735
+ let outerR = trackPixelSize / 2;
21435
21736
  if (trackShape === "md3") {
21436
- outerR = Math.min(SliderTokens.trackShapes[trackSize], size / 2);
21737
+ outerR = Math.min(SliderTokens.trackShapes[size], trackPixelSize / 2);
21437
21738
  } else if (typeof trackShape === "number") {
21438
- outerR = Math.min(trackShape, size / 2);
21739
+ outerR = Math.min(trackShape, trackPixelSize / 2);
21439
21740
  }
21440
21741
  const thumbHalfWidth = thumbWidthDefault / 2;
21441
21742
  const gapWithThumbStr = `${thumbGap + thumbHalfWidth}px`;
@@ -21453,8 +21754,8 @@ var SliderTrack = React62.memo(function SliderTrack2({
21453
21754
  return () => ro.disconnect();
21454
21755
  }, [hasAnyInsetIcon, isHorizontal, trackRef]);
21455
21756
  const activeIconSize = Math.min(
21456
- SliderTokens.insetIconSizes[trackSize],
21457
- Math.max(4, size - SliderTokens.insetIconPadding * 2)
21757
+ SliderTokens.insetIconSizes[size],
21758
+ Math.max(4, trackPixelSize - SliderTokens.insetIconPadding * 2)
21458
21759
  );
21459
21760
  const iconTotalWidth = activeIconSize + SliderTokens.insetIconPadding * 2 + thumbGap + thumbHalfWidth;
21460
21761
  const iconThreshold = trackWidth > 0 ? iconTotalWidth / trackWidth : 0.15;
@@ -21489,7 +21790,7 @@ var SliderTrack = React62.memo(function SliderTrack2({
21489
21790
  const activeColor = disabled ? SliderColors.disabledActiveTrack : `var(--md-sys-color-${variant})`;
21490
21791
  const inactiveColor = disabled ? SliderColors.disabledInactiveTrack : `var(--md-sys-color-${variant}-container)`;
21491
21792
  const insetLimit = SliderTokens.thumbGap + SliderTokens.thumbWidthDefault / 2;
21492
- const trackInset = Math.min(size / 2, insetLimit);
21793
+ const trackInset = Math.min(trackPixelSize / 2, insetLimit);
21493
21794
  const gapTotal = thumbGap + thumbHalfWidth;
21494
21795
  const thumbCenter = `calc(${trackInset}px + ${percent} * (100% - ${trackInset * 2}px))`;
21495
21796
  const leadingActiveLeft = `${trackInset + SliderTokens.insetIconPadding}px`;
@@ -21514,7 +21815,7 @@ var SliderTrack = React62.memo(function SliderTrack2({
21514
21815
  top: "50%",
21515
21816
  transform: "translateY(-50%)",
21516
21817
  width: leftSegmentWidth,
21517
- height: size,
21818
+ height: trackPixelSize,
21518
21819
  backgroundColor: activeColor,
21519
21820
  opacity: disabled ? 0.38 : 1
21520
21821
  }, getHorizontalRadius(true, innerR, outerR))
@@ -21533,7 +21834,7 @@ var SliderTrack = React62.memo(function SliderTrack2({
21533
21834
  top: "50%",
21534
21835
  transform: "translateY(-50%)",
21535
21836
  width: rightSegmentWidth,
21536
- height: size,
21837
+ height: trackPixelSize,
21537
21838
  backgroundColor: inactiveColor,
21538
21839
  opacity: disabled ? 0.38 : 1
21539
21840
  }, getHorizontalRadius(false, innerR, outerR))
@@ -21556,7 +21857,7 @@ var SliderTrack = React62.memo(function SliderTrack2({
21556
21857
  top: "50%",
21557
21858
  transform: "translateY(-50%)",
21558
21859
  width: leftBaseWidth,
21559
- height: size,
21860
+ height: trackPixelSize,
21560
21861
  backgroundColor: inactiveColor,
21561
21862
  opacity: disabled ? 0.38 : 1
21562
21863
  }, getHorizontalRadius(true, innerR, outerR))
@@ -21577,7 +21878,7 @@ var SliderTrack = React62.memo(function SliderTrack2({
21577
21878
  top: "50%",
21578
21879
  transform: "translateY(-50%)",
21579
21880
  width: centerActiveWidth,
21580
- height: size,
21881
+ height: trackPixelSize,
21581
21882
  backgroundColor: activeColor,
21582
21883
  opacity: disabled ? 0.38 : 1
21583
21884
  }, allInnerRadius(innerR))
@@ -21598,7 +21899,7 @@ var SliderTrack = React62.memo(function SliderTrack2({
21598
21899
  top: "50%",
21599
21900
  transform: "translateY(-50%)",
21600
21901
  width: rightBaseWidth,
21601
- height: size,
21902
+ height: trackPixelSize,
21602
21903
  backgroundColor: inactiveColor,
21603
21904
  opacity: disabled ? 0.38 : 1
21604
21905
  }, getHorizontalRadius(false, innerR, outerR))
@@ -21619,7 +21920,7 @@ var SliderTrack = React62.memo(function SliderTrack2({
21619
21920
  top: "50%",
21620
21921
  transform: "translateY(-50%)",
21621
21922
  width: leftBaseWidth,
21622
- height: size,
21923
+ height: trackPixelSize,
21623
21924
  backgroundColor: inactiveColor,
21624
21925
  opacity: disabled ? 0.38 : 1
21625
21926
  }, getHorizontalRadius(true, innerR, outerR))
@@ -21640,7 +21941,7 @@ var SliderTrack = React62.memo(function SliderTrack2({
21640
21941
  top: "50%",
21641
21942
  transform: "translateY(-50%)",
21642
21943
  width: centerActiveWidth,
21643
- height: size,
21944
+ height: trackPixelSize,
21644
21945
  backgroundColor: activeColor,
21645
21946
  opacity: disabled ? 0.38 : 1
21646
21947
  }, allInnerRadius(innerR))
@@ -21661,7 +21962,7 @@ var SliderTrack = React62.memo(function SliderTrack2({
21661
21962
  top: "50%",
21662
21963
  transform: "translateY(-50%)",
21663
21964
  width: rightBaseWidth,
21664
- height: size,
21965
+ height: trackPixelSize,
21665
21966
  backgroundColor: inactiveColor,
21666
21967
  opacity: disabled ? 0.38 : 1
21667
21968
  }, getHorizontalRadius(false, innerR, outerR))
@@ -21705,8 +22006,8 @@ var SliderTrack = React62.memo(function SliderTrack2({
21705
22006
  isOnActiveSegment: leadingOnActive,
21706
22007
  position: leadingOnActive ? leadingActiveLeft : leadingInactiveLeft,
21707
22008
  orientation,
21708
- trackSize: size,
21709
- trackSizeToken: trackSize,
22009
+ trackSize: trackPixelSize,
22010
+ sizeToken: size,
21710
22011
  disabled,
21711
22012
  variant,
21712
22013
  prefersReduced
@@ -21720,8 +22021,8 @@ var SliderTrack = React62.memo(function SliderTrack2({
21720
22021
  isOnActiveSegment: trailingOnActive,
21721
22022
  position: trailingOnActive ? trailingActiveLeft : trailingInactiveLeft,
21722
22023
  orientation,
21723
- trackSize: size,
21724
- trackSizeToken: trackSize,
22024
+ trackSize: trackPixelSize,
22025
+ sizeToken: size,
21725
22026
  disabled,
21726
22027
  variant,
21727
22028
  prefersReduced
@@ -21749,7 +22050,7 @@ var SliderTrack = React62.memo(function SliderTrack2({
21749
22050
  left: "50%",
21750
22051
  transform: "translateX(-50%)",
21751
22052
  height: bottomSegmentHeight,
21752
- width: size,
22053
+ width: trackPixelSize,
21753
22054
  backgroundColor: activeColor,
21754
22055
  opacity: disabled ? 0.38 : 1
21755
22056
  }, getVerticalRadius(true, innerR, outerR))
@@ -21768,7 +22069,7 @@ var SliderTrack = React62.memo(function SliderTrack2({
21768
22069
  left: "50%",
21769
22070
  transform: "translateX(-50%)",
21770
22071
  height: topSegmentHeight,
21771
- width: size,
22072
+ width: trackPixelSize,
21772
22073
  backgroundColor: inactiveColor,
21773
22074
  opacity: disabled ? 0.38 : 1
21774
22075
  }, getVerticalRadius(false, innerR, outerR))
@@ -21791,7 +22092,7 @@ var SliderTrack = React62.memo(function SliderTrack2({
21791
22092
  left: "50%",
21792
22093
  transform: "translateX(-50%)",
21793
22094
  height: bottomBaseHeight,
21794
- width: size,
22095
+ width: trackPixelSize,
21795
22096
  backgroundColor: inactiveColor,
21796
22097
  opacity: disabled ? 0.38 : 1
21797
22098
  }, getVerticalRadius(true, innerR, outerR))
@@ -21812,7 +22113,7 @@ var SliderTrack = React62.memo(function SliderTrack2({
21812
22113
  left: "50%",
21813
22114
  transform: "translateX(-50%)",
21814
22115
  height: centerActiveHeight,
21815
- width: size,
22116
+ width: trackPixelSize,
21816
22117
  backgroundColor: activeColor,
21817
22118
  opacity: disabled ? 0.38 : 1
21818
22119
  }, allInnerRadius(innerR))
@@ -21833,7 +22134,7 @@ var SliderTrack = React62.memo(function SliderTrack2({
21833
22134
  left: "50%",
21834
22135
  transform: "translateX(-50%)",
21835
22136
  height: topBaseHeight,
21836
- width: size,
22137
+ width: trackPixelSize,
21837
22138
  backgroundColor: inactiveColor,
21838
22139
  opacity: disabled ? 0.38 : 1
21839
22140
  }, getVerticalRadius(false, innerR, outerR))
@@ -21854,7 +22155,7 @@ var SliderTrack = React62.memo(function SliderTrack2({
21854
22155
  left: "50%",
21855
22156
  transform: "translateX(-50%)",
21856
22157
  height: bottomBaseHeight,
21857
- width: size,
22158
+ width: trackPixelSize,
21858
22159
  backgroundColor: inactiveColor,
21859
22160
  opacity: disabled ? 0.38 : 1
21860
22161
  }, getVerticalRadius(true, innerR, outerR))
@@ -21875,7 +22176,7 @@ var SliderTrack = React62.memo(function SliderTrack2({
21875
22176
  left: "50%",
21876
22177
  transform: "translateX(-50%)",
21877
22178
  height: centerActiveHeight,
21878
- width: size,
22179
+ width: trackPixelSize,
21879
22180
  backgroundColor: activeColor,
21880
22181
  opacity: disabled ? 0.38 : 1
21881
22182
  }, allInnerRadius(innerR))
@@ -21896,7 +22197,7 @@ var SliderTrack = React62.memo(function SliderTrack2({
21896
22197
  left: "50%",
21897
22198
  transform: "translateX(-50%)",
21898
22199
  height: topBaseHeight,
21899
- width: size,
22200
+ width: trackPixelSize,
21900
22201
  backgroundColor: inactiveColor,
21901
22202
  opacity: disabled ? 0.38 : 1
21902
22203
  }, getVerticalRadius(false, innerR, outerR))
@@ -21940,8 +22241,8 @@ var SliderTrack = React62.memo(function SliderTrack2({
21940
22241
  isOnActiveSegment: leadingOnActive,
21941
22242
  position: leadingOnActive ? leadingActiveLeft : leadingInactiveLeft,
21942
22243
  orientation,
21943
- trackSize: size,
21944
- trackSizeToken: trackSize,
22244
+ trackSize: trackPixelSize,
22245
+ sizeToken: size,
21945
22246
  disabled,
21946
22247
  variant,
21947
22248
  prefersReduced
@@ -21955,8 +22256,8 @@ var SliderTrack = React62.memo(function SliderTrack2({
21955
22256
  isOnActiveSegment: trailingOnActive,
21956
22257
  position: trailingOnActive ? trailingActiveLeft : trailingInactiveLeft,
21957
22258
  orientation,
21958
- trackSize: size,
21959
- trackSizeToken: trackSize,
22259
+ trackSize: trackPixelSize,
22260
+ sizeToken: size,
21960
22261
  disabled,
21961
22262
  variant,
21962
22263
  prefersReduced
@@ -21977,7 +22278,7 @@ var SliderComponent = React62.forwardRef(
21977
22278
  max = 100,
21978
22279
  step = 0,
21979
22280
  orientation = "horizontal",
21980
- trackSize = "m",
22281
+ size = "md",
21981
22282
  trackShape = "md3",
21982
22283
  variant = "primary",
21983
22284
  isCentered = false,
@@ -22031,7 +22332,7 @@ var SliderComponent = React62.forwardRef(
22031
22332
  let clickPercent;
22032
22333
  const insetLimit = SliderTokens.thumbGap + SliderTokens.thumbWidthDefault / 2;
22033
22334
  const trackInset = Math.min(
22034
- SliderTokens.trackSizes[trackSize] / 2,
22335
+ SliderTokens.trackSizes[size] / 2,
22035
22336
  insetLimit
22036
22337
  );
22037
22338
  if (isHorizontal) {
@@ -22046,20 +22347,11 @@ var SliderComponent = React62.forwardRef(
22046
22347
  const newValue = snap(coerce(rawValue));
22047
22348
  handleValueChange(newValue);
22048
22349
  },
22049
- [
22050
- coerce,
22051
- disabled,
22052
- handleValueChange,
22053
- isHorizontal,
22054
- max,
22055
- min,
22056
- snap,
22057
- trackSize
22058
- ]
22350
+ [coerce, disabled, handleValueChange, isHorizontal, max, min, snap, size]
22059
22351
  );
22060
22352
  const id = React62.useId();
22061
22353
  const thumbId = `slider-thumb-${id}`;
22062
- const supportsInsetIcon = !isCentered && SliderTokens.trackSizes[trackSize] >= 40;
22354
+ const supportsInsetIcon = !isCentered && SliderTokens.trackSizes[size] >= 40;
22063
22355
  const hasAnyInsetIcon = !!(insetIcon || insetIconTrailing);
22064
22356
  if (hasAnyInsetIcon && !supportsInsetIcon) {
22065
22357
  console.warn(
@@ -22082,7 +22374,7 @@ var SliderComponent = React62.forwardRef(
22082
22374
  SliderTrack,
22083
22375
  {
22084
22376
  percent,
22085
- trackSize,
22377
+ size,
22086
22378
  trackShape,
22087
22379
  orientation,
22088
22380
  isCentered,
@@ -22110,7 +22402,7 @@ var SliderComponent = React62.forwardRef(
22110
22402
  step,
22111
22403
  disabled,
22112
22404
  orientation,
22113
- trackSize,
22405
+ size,
22114
22406
  variant,
22115
22407
  showValueIndicator,
22116
22408
  trackRef,
@@ -22899,39 +23191,7 @@ var typographyVariants = cva("m-0 p-0 text-m3-on-surface", {
22899
23191
  "label-sm": "text-[11px] leading-[16px] font-medium tracking-[0.5px]",
22900
23192
  "body-lg": "text-[16px] leading-[24px] font-normal tracking-[0.5px]",
22901
23193
  "body-md": "text-[14px] leading-[20px] font-normal tracking-[0.25px]",
22902
- "body-sm": "text-[12px] leading-[16px] font-normal tracking-[0.4px]",
22903
- // Full hyphenated aliases
22904
- "display-large": "text-[57px] leading-[64px] font-normal tracking-[-0.25px]",
22905
- "display-medium": "text-[45px] leading-[52px] font-normal tracking-[0px]",
22906
- "display-small": "text-[36px] leading-[44px] font-normal tracking-[0px]",
22907
- "headline-large": "text-[32px] leading-[40px] font-normal tracking-[0px]",
22908
- "headline-medium": "text-[28px] leading-[36px] font-normal tracking-[0px]",
22909
- "headline-small": "text-[24px] leading-[32px] font-normal tracking-[0px]",
22910
- "title-large": "text-[22px] leading-[28px] font-normal tracking-[0px]",
22911
- "title-medium": "text-[16px] leading-[24px] font-medium tracking-[0.15px]",
22912
- "title-small": "text-[14px] leading-[20px] font-medium tracking-[0.1px]",
22913
- "label-large": "text-[14px] leading-[20px] font-medium tracking-[0.1px]",
22914
- "label-medium": "text-[12px] leading-[16px] font-medium tracking-[0.5px]",
22915
- "label-small": "text-[11px] leading-[16px] font-medium tracking-[0.5px]",
22916
- "body-large": "text-[16px] leading-[24px] font-normal tracking-[0.5px]",
22917
- "body-medium": "text-[14px] leading-[20px] font-normal tracking-[0.25px]",
22918
- "body-small": "text-[12px] leading-[16px] font-normal tracking-[0.4px]",
22919
- // CamelCase aliases
22920
- displayLarge: "text-[57px] leading-[64px] font-normal tracking-[-0.25px]",
22921
- displayMedium: "text-[45px] leading-[52px] font-normal tracking-[0px]",
22922
- displaySmall: "text-[36px] leading-[44px] font-normal tracking-[0px]",
22923
- headlineLarge: "text-[32px] leading-[40px] font-normal tracking-[0px]",
22924
- headlineMedium: "text-[28px] leading-[36px] font-normal tracking-[0px]",
22925
- headlineSmall: "text-[24px] leading-[32px] font-normal tracking-[0px]",
22926
- titleLarge: "text-[22px] leading-[28px] font-normal tracking-[0px]",
22927
- titleMedium: "text-[16px] leading-[24px] font-medium tracking-[0.15px]",
22928
- titleSmall: "text-[14px] leading-[20px] font-medium tracking-[0.1px]",
22929
- labelLarge: "text-[14px] leading-[20px] font-medium tracking-[0.1px]",
22930
- labelMedium: "text-[12px] leading-[16px] font-medium tracking-[0.5px]",
22931
- labelSmall: "text-[11px] leading-[16px] font-medium tracking-[0.5px]",
22932
- bodyLarge: "text-[16px] leading-[24px] font-normal tracking-[0.5px]",
22933
- bodyMedium: "text-[14px] leading-[20px] font-normal tracking-[0.25px]",
22934
- bodySmall: "text-[12px] leading-[16px] font-normal tracking-[0.4px]"
23194
+ "body-sm": "text-[12px] leading-[16px] font-normal tracking-[0.4px]"
22935
23195
  }
22936
23196
  },
22937
23197
  defaultVariants: {
@@ -24309,7 +24569,7 @@ var FloatingToolbarWithFabBase = React62.forwardRef(
24309
24569
  fabPosition = orientation === "horizontal" ? "end" : "bottom",
24310
24570
  animationDuration = 0.3,
24311
24571
  scrollBehavior,
24312
- fabSize = "default",
24572
+ fabSize = "sm",
24313
24573
  className,
24314
24574
  style
24315
24575
  } = _b, props = __objRest(_b, [
@@ -24329,7 +24589,7 @@ var FloatingToolbarWithFabBase = React62.forwardRef(
24329
24589
  const isHorizontal = orientation === "horizontal";
24330
24590
  const effectiveExpanded = expanded && (!scrollBehavior || scrollBehavior.isExpanded);
24331
24591
  const isFabBefore = fabPosition === "start" || fabPosition === "top";
24332
- const resolvedFabSize = fabSize === "medium" ? FabBaselineTokens.MediumContainerHeight : FabBaselineTokens.ContainerHeight;
24592
+ const resolvedFabSize = fabSize === "md" ? FabBaselineTokens.MediumContainerHeight : FabBaselineTokens.ContainerHeight;
24333
24593
  const transitionSpec = __spreadProps(__spreadValues({}, SPRING_TRANSITION), {
24334
24594
  duration: animationDuration
24335
24595
  });
@@ -24468,7 +24728,7 @@ var ToolbarIconButton = React62.forwardRef(
24468
24728
  (_a, ref) => {
24469
24729
  var _b = _a, {
24470
24730
  emphasis = "standard",
24471
- toolbarSize = "default",
24731
+ width = "default",
24472
24732
  selected,
24473
24733
  asChild,
24474
24734
  className,
@@ -24476,7 +24736,7 @@ var ToolbarIconButton = React62.forwardRef(
24476
24736
  whileTap
24477
24737
  } = _b, props = __objRest(_b, [
24478
24738
  "emphasis",
24479
- "toolbarSize",
24739
+ "width",
24480
24740
  "selected",
24481
24741
  "asChild",
24482
24742
  "className",
@@ -24484,7 +24744,7 @@ var ToolbarIconButton = React62.forwardRef(
24484
24744
  "whileTap"
24485
24745
  ]);
24486
24746
  const context = useToolbarContext();
24487
- const widthClass = TOOLBAR_ICON_BUTTON_WIDTH[toolbarSize];
24747
+ const widthClass = TOOLBAR_ICON_BUTTON_WIDTH[width];
24488
24748
  const colorStyle = VARIANT_TO_COLOR_STYLE[emphasis];
24489
24749
  const iconButtonProps = selected !== void 0 ? {
24490
24750
  variant: "toggle",
@@ -25392,6 +25652,6 @@ function TooltipBox({
25392
25652
  ] });
25393
25653
  }
25394
25654
 
25395
- export { ANGLE_EPSILON, APP_BAR_BOTTOM_SPRING, APP_BAR_COLORS, APP_BAR_COLOR_TRANSITION, APP_BAR_ENTER_ALWAYS_SPRING, APP_BAR_TITLE_FADE, AppBarColumn, AppBarOverflowIndicator, AppBarRow, AppBarTokens, BUTTON_COLOR_TOKENS, BUTTON_SIZE_TOKENS, Badge, BadgedBox, BottomAppBar, BottomDockedToolbar, BottomSheet, BottomSheetModal, Button, ButtonDistribute, ButtonGroup, CHECK_ICON_VARIANTS, Card, Checkbox, Chip, CodeBlock, ContextMenu, ContextMenuContent, ContextMenuTrigger, Cubic, DISTANCE_EPSILON, DIVIDER_COLOR, DIVIDER_PADDING, DP_CLASSES, DP_COLORS, DP_SHAPE, DP_SIZE, DatePicker, DatePickerDialog, DatePickerInput, DateRangePicker, Dialog, DialogBody, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogFullScreenContent, DialogHeader, DialogIcon, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Divider, DockedToolbar, DragHandle, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, ElevatedSplitButtonLeading, ElevatedSplitButtonTrailing, ElevatedSplitButtonTrailingUncheckable, ExtendedFAB, FAB, FABMenu, FABMenuItem, FABPosition, FAST_EFFECTS_TRANSITION, FAST_SPATIAL_SPRING, FLOAT_PI, FilledSplitButtonLeading, FilledSplitButtonTrailing, FilledSplitButtonTrailingUncheckable, GROUP_SHAPES, HorizontalFloatingToolbar, HorizontalFloatingToolbarWithFab, ITEM_SHAPE_CLASSES, Icon, IconButton, LIST_TOKENS, LargeFlexibleAppBar, List, ListContext, ListDivider, ListItem, LoadingIndicator, MD3CornerRadius, MD3Shapes, MD3ThemeProvider, MD3_EXPRESSIVE_FONT_VARIATION, MENU_CHECK_ICON_SIZE, MENU_CONTAINER_VARIANTS, MENU_GROUP_GAP, MENU_ICON_SIZE, MENU_ITEM_MIN_HEIGHT, MENU_MAX_WIDTH, MENU_MIN_WIDTH, MaterialSymbolsPreconnect, MeasuredPolygon, MediumFlexibleAppBar, Menu, MenuContent, MenuDivider, MenuGroup, MenuItem, MenuProvider, MenuTrigger, Morph, MutableCubic, NavigationBar, NavigationBarItem, NavigationRail, NavigationRailItem, OutlinedSplitButtonLeading, OutlinedSplitButtonTrailing, OutlinedSplitButtonTrailingUncheckable, PlainTooltip, ProgressIndicator, RadioButton, RadioGroup, RangeSlider, RichTooltip, Ripple, RoundedPolygon, SEARCH_BAR_EXPAND_SPRING, SEARCH_COLORS, SEARCH_DOCKED_REVEAL_SPRING, SEARCH_FULLSCREEN_SPRING, SEARCH_TYPOGRAPHY, SEARCH_VIEW_SPRING, STANDARD_COLORS, SUBMENU_CONTAINER_VARIANTS, Scrim, ScrollArea, ScrollAreaScrollbar, Search, SearchAppBar, SearchBar, SearchTokens, SearchView, SearchViewContainer, SearchViewDocked, SearchViewFullScreen, Select, ShapeIcon, ShapeMedia, ShapeMediaServer, ShapeSvg, SideSheet, SideSheetModal, Slider, SliderColors, SliderTokens, SmallAppBar, Snackbar, SnackbarHost, SnackbarProvider, SplitButtonLayout, SplitButtonLeading, SplitButtonTrailing, SplitButtonTrailingUncheckable, SubMenu, Switch, SwitchColors, SwitchTokens, TP_CLASSES, TP_COLORS, TP_SHAPE, TP_SIZE, Tab, TableOfContents, Tabs, TabsColors, TabsContent, TabsList, TabsTokens, Text, TextField, TimeInput, TimePicker, TimePickerDialog, ToggleFAB, TonalSplitButtonLeading, TonalSplitButtonTrailing, TonalSplitButtonTrailingUncheckable, ToolbarDivider, ToolbarDividerTokens, ToolbarIconButton, ToolbarIconButtonTokens, ToolbarToggleButton, ToolbarToggleButtonTokens, TooltipBox, TooltipCaretShape, TooltipTokens, TriStateCheckbox, TypeScaleTokens, Typography, TypographyContext, TypographyKeyTokens, TypographyProvider, TypographyTokens, UNROUNDED, VIBRANT_COLORS, VerticalFloatingToolbar, VerticalFloatingToolbarWithFab, VerticalMenu, VerticalMenuContent, VerticalMenuDivider, VerticalMenuGroup, addPoints, appBarTypography, applyTheme, buildWavePath, circle, clockwise, cn, convex, cornerFeature, cornerRounding, createDoubleMapper, createMd3ExpressiveTheme, directionVector, distance, distanceSquared, dividePoint, dotProduct, edgeFeature, featureMapper, generateM3Theme, getDirection, getDistance, getDistanceSquared, getExpressiveShape, getListItemHeight, getToolbarColors, interpolate, interpolatePath, lerpPoint, pill, pillStar, point, positiveModulo, radialToCartesian, rectangle, resolveMode, rotate90, scalePoint, shouldTopAlign, square, standardFloatingToolbarColors, star, subtractPoints, surfaceContainerHighFloatingToolbarColors, surfaceContainerHighestFloatingToolbarColors, tertiaryContainerFloatingToolbarColors, toClipPath, toSvgPath, transformFeature, transformPoint, useAppBarScroll, useBottomSheet, useRipple as useDOMRipple, useDatePickerState, useDateRangePickerState, useFloatingToolbarScrollBehavior, useListContext, useMediaQuery, useMenuContext, useRipple2 as useRipple, useRippleState, useSearchKeyboard, useShapeMorph, useSnackbar, useSnackbarState, useTheme, useThemeMode, useTimePickerState, useTooltipPosition, useTooltipState, useTypography, vibrantFloatingToolbarColors, xrFloatingToolbarColors };
25655
+ export { ANGLE_EPSILON, APP_BAR_BOTTOM_SPRING, APP_BAR_COLORS, APP_BAR_COLOR_TRANSITION, APP_BAR_ENTER_ALWAYS_SPRING, APP_BAR_TITLE_FADE, AppBarColumn, AppBarOverflowIndicator, AppBarRow, AppBarTokens, BUTTON_COLOR_TOKENS, BUTTON_SIZE_TOKENS, Badge, BadgedBox, BottomAppBar, BottomDockedToolbar, BottomSheet, BottomSheetModal, Button, ButtonDistribute, ButtonGroup, CHECK_ICON_VARIANTS, Card, Checkbox, Chip, CodeBlock, ContextMenu, ContextMenuContent, ContextMenuTrigger, Cubic, DISTANCE_EPSILON, DIVIDER_COLOR, DIVIDER_PADDING, DP_CLASSES, DP_COLORS, DP_SHAPE, DP_SIZE, DatePicker, DatePickerDialog, DatePickerInput, DateRangePicker, Dialog, DialogBody, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogFullScreenContent, DialogHeader, DialogIcon, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Divider, DockedToolbar, DragHandle, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, ElevatedSplitButtonLeading, ElevatedSplitButtonTrailing, ElevatedSplitButtonTrailingUncheckable, ExtendedFAB, FAB, FABMenu, FABMenuItem, FABPosition, FAST_EFFECTS_TRANSITION, FAST_SPATIAL_SPRING, FLOAT_PI, FadingBlurMask, FilledSplitButtonLeading, FilledSplitButtonTrailing, FilledSplitButtonTrailingUncheckable, GROUP_SHAPES, HorizontalFloatingToolbar, HorizontalFloatingToolbarWithFab, ITEM_SHAPE_CLASSES, Icon, IconButton, LIST_TOKENS, LargeFlexibleAppBar, List, ListContext, ListDivider, ListItem, LoadingIndicator, MD3CornerRadius, MD3Shapes, MD3ThemeProvider, MD3_EXPRESSIVE_FONT_VARIATION, MENU_CHECK_ICON_SIZE, MENU_CONTAINER_VARIANTS, MENU_GROUP_GAP, MENU_ICON_SIZE, MENU_ITEM_MIN_HEIGHT, MENU_MAX_WIDTH, MENU_MIN_WIDTH, MaterialSymbolsPreconnect, MeasuredPolygon, MediumFlexibleAppBar, Menu, MenuContent, MenuDivider, MenuGroup, MenuItem, MenuProvider, MenuTrigger, Morph, MutableCubic, NavigationBar, NavigationBarItem, NavigationRail, NavigationRailItem, OutlinedSplitButtonLeading, OutlinedSplitButtonTrailing, OutlinedSplitButtonTrailingUncheckable, PlainTooltip, ProgressIndicator, RadioButton, RadioGroup, RangeSlider, RichTooltip, Ripple, RoundedPolygon, SEARCH_BAR_EXPAND_SPRING, SEARCH_COLORS, SEARCH_DOCKED_REVEAL_SPRING, SEARCH_FULLSCREEN_SPRING, SEARCH_TYPOGRAPHY, SEARCH_VIEW_SPRING, STANDARD_COLORS, SUBMENU_CONTAINER_VARIANTS, Scrim, ScrollArea, ScrollAreaScrollbar, Search, SearchAppBar, SearchBar, SearchTokens, SearchView, SearchViewContainer, SearchViewDocked, SearchViewFullScreen, Select, ShapeIcon, ShapeMedia, ShapeMediaServer, ShapeSvg, SideSheet, SideSheetModal, Slider, SliderColors, SliderTokens, SmallAppBar, Snackbar, SnackbarHost, SnackbarProvider, SplitButtonLayout, SplitButtonLeading, SplitButtonTrailing, SplitButtonTrailingUncheckable, SubMenu, Switch, SwitchColors, SwitchTokens, TP_CLASSES, TP_COLORS, TP_SHAPE, TP_SIZE, Tab, TableOfContents, Tabs, TabsColors, TabsContent, TabsList, TabsTokens, Text, TextField, TimeInput, TimePicker, TimePickerDialog, ToggleFAB, TonalSplitButtonLeading, TonalSplitButtonTrailing, TonalSplitButtonTrailingUncheckable, ToolbarDivider, ToolbarDividerTokens, ToolbarIconButton, ToolbarIconButtonTokens, ToolbarToggleButton, ToolbarToggleButtonTokens, TooltipBox, TooltipCaretShape, TooltipTokens, TriStateCheckbox, TypeScaleTokens, Typography, TypographyContext, TypographyKeyTokens, TypographyProvider, TypographyTokens, UNROUNDED, VIBRANT_COLORS, VerticalFloatingToolbar, VerticalFloatingToolbarWithFab, VerticalMenu, VerticalMenuContent, VerticalMenuDivider, VerticalMenuGroup, addPoints, appBarTypography, applyTheme, buildWavePath, circle, clockwise, cn, convex, cornerFeature, cornerRounding, createDoubleMapper, createMd3ExpressiveTheme, directionVector, distance, distanceSquared, dividePoint, dotProduct, edgeFeature, featureMapper, generateM3Theme, getDirection, getDistance, getDistanceSquared, getExpressiveShape, getListItemHeight, getToolbarColors, interpolate, interpolatePath, lerpPoint, pill, pillStar, point, positiveModulo, radialToCartesian, rectangle, resolveMode, rotate90, scalePoint, shouldTopAlign, square, standardFloatingToolbarColors, star, subtractPoints, surfaceContainerHighFloatingToolbarColors, surfaceContainerHighestFloatingToolbarColors, tertiaryContainerFloatingToolbarColors, toClipPath, toSvgPath, transformFeature, transformPoint, useAppBarScroll, useBottomSheet, useRipple as useDOMRipple, useDatePickerState, useDateRangePickerState, useFloatingToolbarScrollBehavior, useListContext, useMediaQuery, useMenuContext, useRipple2 as useRipple, useRippleState, useSearchKeyboard, useShapeMorph, useSnackbar, useSnackbarState, useTheme, useThemeMode, useTimePickerState, useTooltipPosition, useTooltipState, useTypography, vibrantFloatingToolbarColors, xrFloatingToolbarColors };
25396
25656
  //# sourceMappingURL=index.mjs.map
25397
25657
  //# sourceMappingURL=index.mjs.map