@bug-on/m3-expressive 1.2.0 → 1.2.2

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 (54) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/buttons.d.mts +26 -5
  3. package/dist/buttons.d.ts +26 -5
  4. package/dist/buttons.js +1074 -765
  5. package/dist/buttons.js.map +1 -1
  6. package/dist/buttons.mjs +1066 -765
  7. package/dist/buttons.mjs.map +1 -1
  8. package/dist/core.js +133 -69
  9. package/dist/core.js.map +1 -1
  10. package/dist/core.mjs +133 -69
  11. package/dist/core.mjs.map +1 -1
  12. package/dist/feedback.js +132 -69
  13. package/dist/feedback.js.map +1 -1
  14. package/dist/feedback.mjs +132 -69
  15. package/dist/feedback.mjs.map +1 -1
  16. package/dist/forms.d.mts +2 -2
  17. package/dist/forms.d.ts +2 -2
  18. package/dist/forms.js +74 -9
  19. package/dist/forms.js.map +1 -1
  20. package/dist/forms.mjs +74 -9
  21. package/dist/forms.mjs.map +1 -1
  22. package/dist/{icon-button-D-gs0gfj.d.mts → icon-button-CSsDmuQC.d.mts} +19 -0
  23. package/dist/{icon-button-D-gs0gfj.d.ts → icon-button-CSsDmuQC.d.ts} +19 -0
  24. package/dist/index.d.mts +4 -4
  25. package/dist/index.d.ts +4 -4
  26. package/dist/index.js +2204 -1464
  27. package/dist/index.js.map +1 -1
  28. package/dist/index.mjs +2056 -1324
  29. package/dist/index.mjs.map +1 -1
  30. package/dist/layout.d.mts +18 -1
  31. package/dist/layout.d.ts +18 -1
  32. package/dist/layout.js +80 -15
  33. package/dist/layout.js.map +1 -1
  34. package/dist/layout.mjs +80 -15
  35. package/dist/layout.mjs.map +1 -1
  36. package/dist/navigation.d.mts +134 -9
  37. package/dist/navigation.d.ts +134 -9
  38. package/dist/navigation.js +461 -101
  39. package/dist/navigation.js.map +1 -1
  40. package/dist/navigation.mjs +455 -102
  41. package/dist/navigation.mjs.map +1 -1
  42. package/dist/overlays.js +261 -197
  43. package/dist/overlays.js.map +1 -1
  44. package/dist/overlays.mjs +223 -159
  45. package/dist/overlays.mjs.map +1 -1
  46. package/dist/pickers.js +392 -301
  47. package/dist/pickers.js.map +1 -1
  48. package/dist/pickers.mjs +361 -270
  49. package/dist/pickers.mjs.map +1 -1
  50. package/dist/{split-button-trailing-uncheckable-BkPbiBo3.d.ts → split-button-trailing-uncheckable-C-qQlyZx.d.ts} +118 -25
  51. package/dist/{split-button-trailing-uncheckable-D_PLPb-u.d.mts → split-button-trailing-uncheckable-DHJqNeq_.d.mts} +118 -25
  52. package/dist/{text-field-eAIpz9z1.d.mts → text-field-T4Rg-9Bw.d.mts} +7 -0
  53. package/dist/{text-field-eAIpz9z1.d.ts → text-field-T4Rg-9Bw.d.ts} +7 -0
  54. package/package.json +3 -3
@@ -2601,7 +2601,10 @@ function useRippleState(options = {}) {
2601
2601
  const rect = e.currentTarget.getBoundingClientRect();
2602
2602
  const x = e.clientX - rect.left;
2603
2603
  const y = e.clientY - rect.top;
2604
- const rippleSize = Math.hypot(rect.width, rect.height) * 2;
2604
+ const rippleSize = Math.max(
2605
+ Math.hypot(rect.width, rect.height) * 2.5,
2606
+ 320
2607
+ );
2605
2608
  setRipples((prev) => [
2606
2609
  ...prev,
2607
2610
  { id: Date.now(), x, y, size: rippleSize }
@@ -2684,7 +2687,11 @@ var NavigationBarItemComponent = React36__namespace.forwardRef(
2684
2687
  className,
2685
2688
  "aria-label": ariaLabelProp
2686
2689
  }, ref) => {
2687
- const { variant, itemLayout } = React36__namespace.useContext(NavigationBarContext);
2690
+ const {
2691
+ variant,
2692
+ itemLayout,
2693
+ itemClassName: contextItemClassName
2694
+ } = React36__namespace.useContext(NavigationBarContext);
2688
2695
  const isForcedHorizontal = itemLayout === "horizontal";
2689
2696
  const isResponsiveHorizontal = (variant === "flexible" || variant === "xr") && itemLayout === void 0;
2690
2697
  const { ripples, onPointerDown, removeRipple } = useRippleState({
@@ -2719,9 +2726,10 @@ var NavigationBarItemComponent = React36__namespace.forwardRef(
2719
2726
  onClick: handleClick,
2720
2727
  onPointerDown,
2721
2728
  className: cn(
2722
- "group relative flex flex-1 cursor-pointer transition-colors duration-200 outline-none select-none h-full",
2723
- variant === "xr" ? "items-center justify-center max-[599px]:min-w-28 max-[599px]:max-w-28 max-[599px]:items-start max-[599px]:pt-3 max-[599px]:pb-4" : "items-center justify-center",
2729
+ "group relative flex cursor-pointer transition-colors duration-200 outline-none select-none h-full items-center justify-center min-w-0",
2730
+ variant === "xr" ? isResponsiveHorizontal ? "flex-1 min-[600px]:flex-initial min-[600px]:w-auto" : isForcedHorizontal ? "flex-initial w-auto" : "flex-1" : isForcedHorizontal ? "flex-initial w-auto" : "flex-1",
2724
2731
  disabled && "pointer-events-none opacity-[0.38]",
2732
+ contextItemClassName,
2725
2733
  className
2726
2734
  ),
2727
2735
  children: [
@@ -2729,9 +2737,9 @@ var NavigationBarItemComponent = React36__namespace.forwardRef(
2729
2737
  "div",
2730
2738
  {
2731
2739
  className: cn(
2732
- "relative flex items-center justify-center flex-col gap-y-1 w-full",
2733
- isResponsiveHorizontal && "min-[600px]:flex-row min-[600px]:gap-y-0 min-[600px]:gap-x-1 min-[600px]:h-10 min-[600px]:px-4 min-[600px]:rounded-full min-[600px]:w-auto min-[600px]:max-w-42",
2734
- isForcedHorizontal && "flex-row gap-y-0 gap-x-1 h-10 px-4 rounded-full w-auto max-w-42"
2740
+ "relative flex items-center justify-center flex-col gap-y-1 w-full px-1 py-1.5",
2741
+ isResponsiveHorizontal && "min-[600px]:flex-row min-[600px]:gap-y-0 min-[600px]:gap-x-1.5 min-[600px]:h-10 min-[600px]:px-4 min-[600px]:py-0 min-[600px]:rounded-full min-[600px]:w-auto",
2742
+ isForcedHorizontal && "flex-row gap-y-0 gap-x-1.5 h-10 px-4 py-0 rounded-full w-auto"
2735
2743
  ),
2736
2744
  children: [
2737
2745
  /* @__PURE__ */ jsxRuntime.jsxs(
@@ -2808,7 +2816,7 @@ var navContainerVariants = classVarianceAuthority.cva(
2808
2816
  variant: {
2809
2817
  flexible: "bottom-0 left-0 right-0 w-full h-16 pb-safe",
2810
2818
  baseline: "bottom-0 left-0 right-0 w-full h-20 pb-safe",
2811
- xr: "bottom-6 left-1/2 -translate-x-1/2 w-auto max-w-fit h-20 min-[600px]:h-16 rounded-[48px] px-2"
2819
+ xr: "bottom-6 left-1/2 -translate-x-1/2 w-auto max-w-[calc(100%-2rem)] min-[600px]:max-w-fit h-20 min-[600px]:h-16 rounded-[48px] px-2"
2812
2820
  },
2813
2821
  position: {
2814
2822
  fixed: "fixed",
@@ -2836,6 +2844,7 @@ var NavigationBarComponent = React36__namespace.forwardRef(
2836
2844
  scrollContainerRef,
2837
2845
  activeIndicatorTransition,
2838
2846
  children,
2847
+ itemClassName,
2839
2848
  className,
2840
2849
  style
2841
2850
  }, ref) => {
@@ -2886,7 +2895,12 @@ var NavigationBarComponent = React36__namespace.forwardRef(
2886
2895
  return /* @__PURE__ */ jsxRuntime.jsx(react.LazyMotion, { features: react.domMax, strict: true, children: /* @__PURE__ */ jsxRuntime.jsx(
2887
2896
  NavigationBarContext.Provider,
2888
2897
  {
2889
- value: { variant, itemLayout, activeIndicatorTransition },
2898
+ value: {
2899
+ variant,
2900
+ itemLayout,
2901
+ activeIndicatorTransition,
2902
+ itemClassName
2903
+ },
2890
2904
  children: /* @__PURE__ */ jsxRuntime.jsx(
2891
2905
  react.m.nav,
2892
2906
  {
@@ -2907,7 +2921,7 @@ var NavigationBarComponent = React36__namespace.forwardRef(
2907
2921
  "aria-orientation": "horizontal",
2908
2922
  className: cn(
2909
2923
  "flex w-full h-full mx-auto",
2910
- variant === "xr" ? "gap-0 min-[600px]:gap-1.5" : "max-w-7xl gap-1.5"
2924
+ variant === "xr" ? "gap-0 min-[600px]:gap-1.5 items-center justify-center px-1" : "max-w-7xl gap-1.5"
2911
2925
  ),
2912
2926
  children
2913
2927
  }
@@ -4650,12 +4664,39 @@ var ProgressIndicator = React36__namespace.forwardRef((props, ref) => {
4650
4664
  return /* @__PURE__ */ jsxRuntime.jsx(LinearProgress, __spreadValues({ ref }, props));
4651
4665
  });
4652
4666
  ProgressIndicator.displayName = "ProgressIndicator";
4653
- var SIZE_STYLES = {
4654
- xs: "h-8 w-8",
4655
- sm: "h-10 w-10",
4656
- md: "h-14 w-14",
4657
- lg: "h-24 w-24",
4658
- xl: "h-[8.5rem] w-[8.5rem]"
4667
+ var SIZE_HEIGHT_STYLES = {
4668
+ xs: "h-8",
4669
+ sm: "h-10",
4670
+ md: "h-14",
4671
+ lg: "h-24",
4672
+ xl: "h-[8.5rem]"
4673
+ };
4674
+ var WIDTH_SIZE_STYLES = {
4675
+ xs: {
4676
+ default: "w-8",
4677
+ narrow: "w-8",
4678
+ wide: "w-12"
4679
+ },
4680
+ sm: {
4681
+ default: "w-10",
4682
+ narrow: "w-12",
4683
+ wide: "w-[3.25rem]"
4684
+ },
4685
+ md: {
4686
+ default: "w-14",
4687
+ narrow: "w-12",
4688
+ wide: "w-[4.5rem]"
4689
+ },
4690
+ lg: {
4691
+ default: "w-24",
4692
+ narrow: "w-16",
4693
+ wide: "w-32"
4694
+ },
4695
+ xl: {
4696
+ default: "w-[8.5rem]",
4697
+ narrow: "w-[6.5rem]",
4698
+ wide: "w-[11.5rem]"
4699
+ }
4659
4700
  };
4660
4701
  var SIZE_ICON = {
4661
4702
  xs: { cls: "size-5", px: 20 },
@@ -4756,11 +4797,14 @@ var IconButtonComponent = React36__namespace.forwardRef(
4756
4797
  variant = "default",
4757
4798
  colorStyle = "standard",
4758
4799
  size = "sm",
4800
+ widthVariant = "default",
4759
4801
  shape = "round",
4760
4802
  selected,
4803
+ selectedIcon,
4761
4804
  loading = false,
4762
4805
  loadingVariant = "loading-indicator",
4763
4806
  iconSize,
4807
+ asChild = false,
4764
4808
  children,
4765
4809
  onClick,
4766
4810
  onKeyDown,
@@ -4771,17 +4815,20 @@ var IconButtonComponent = React36__namespace.forwardRef(
4771
4815
  "variant",
4772
4816
  "colorStyle",
4773
4817
  "size",
4818
+ "widthVariant",
4774
4819
  "shape",
4775
4820
  "selected",
4821
+ "selectedIcon",
4776
4822
  "loading",
4777
4823
  "loadingVariant",
4778
4824
  "iconSize",
4825
+ "asChild",
4779
4826
  "children",
4780
4827
  "onClick",
4781
4828
  "onKeyDown",
4782
4829
  "aria-label"
4783
4830
  ]);
4784
- var _a2, _b2;
4831
+ var _a2, _b2, _c, _d, _e;
4785
4832
  const isToggle = variant === "toggle";
4786
4833
  const isSelected = isToggle && !!selected;
4787
4834
  const resolvedColorClass = React36__namespace.useMemo(
@@ -4812,6 +4859,8 @@ var IconButtonComponent = React36__namespace.forwardRef(
4812
4859
  const defaultIconPx = sizeIcon.px;
4813
4860
  const iconPx = iconSize != null ? iconSize : defaultIconPx;
4814
4861
  const isCustomSize = iconSize != null && iconSize !== "inherit";
4862
+ const heightClass = (_c = SIZE_HEIGHT_STYLES[size]) != null ? _c : SIZE_HEIGHT_STYLES.sm;
4863
+ const widthClass = (_e = ((_d = WIDTH_SIZE_STYLES[size]) != null ? _d : WIDTH_SIZE_STYLES.sm)[widthVariant]) != null ? _e : WIDTH_SIZE_STYLES.sm.default;
4815
4864
  const needsTouchTarget = size === "xs" || size === "sm";
4816
4865
  const { ripples, onPointerDown, removeRipple } = useRippleState({
4817
4866
  disabled: loading
@@ -4837,7 +4886,90 @@ var IconButtonComponent = React36__namespace.forwardRef(
4837
4886
  },
4838
4887
  [loading, onClick, onKeyDown]
4839
4888
  );
4840
- return /* @__PURE__ */ jsxRuntime.jsx(react.LazyMotion, { features: react.domMax, strict: true, children: /* @__PURE__ */ jsxRuntime.jsxs(
4889
+ const innerContent = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
4890
+ needsTouchTarget && /* @__PURE__ */ jsxRuntime.jsx(TouchTarget, {}),
4891
+ /* @__PURE__ */ jsxRuntime.jsx(Ripple, { ripples, onRippleDone: removeRipple }),
4892
+ /* @__PURE__ */ jsxRuntime.jsx(react.AnimatePresence, { mode: "wait", initial: false, children: loading ? /* @__PURE__ */ jsxRuntime.jsx(
4893
+ react.m.span,
4894
+ __spreadProps(__spreadValues({}, ICON_SPAN_VARIANTS), {
4895
+ transition: SPRING_TRANSITION,
4896
+ className: cn(
4897
+ "flex items-center justify-center shrink-0",
4898
+ iconSize != null ? void 0 : iconClass
4899
+ ),
4900
+ style: isCustomSize ? { width: `${iconSize}px`, height: `${iconSize}px` } : void 0,
4901
+ children: loadingVariant === "loading-indicator" ? /* @__PURE__ */ jsxRuntime.jsx(
4902
+ LoadingIndicator,
4903
+ {
4904
+ size: typeof iconPx === "number" ? iconPx : defaultIconPx,
4905
+ color: "currentColor",
4906
+ "aria-label": "Loading"
4907
+ }
4908
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
4909
+ ProgressIndicator,
4910
+ {
4911
+ variant: "circular",
4912
+ size: typeof iconPx === "number" ? iconPx : defaultIconPx,
4913
+ color: "currentColor",
4914
+ trackColor: "transparent",
4915
+ "aria-label": "Loading"
4916
+ }
4917
+ )
4918
+ }),
4919
+ "loading"
4920
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
4921
+ react.m.span,
4922
+ __spreadProps(__spreadValues({}, ICON_SPAN_VARIANTS), {
4923
+ transition: SPRING_TRANSITION,
4924
+ "aria-hidden": "true",
4925
+ className: cn(
4926
+ "flex items-center justify-center shrink-0 [&_svg]:w-full [&_svg]:h-full [&_.md-icon]:text-[length:inherit]",
4927
+ iconSize != null ? void 0 : iconClass
4928
+ ),
4929
+ style: {
4930
+ fontSize: typeof iconPx === "number" ? `${iconPx}px` : iconPx,
4931
+ width: isCustomSize ? `${iconSize}px` : void 0,
4932
+ height: isCustomSize ? `${iconSize}px` : void 0
4933
+ },
4934
+ children: isSelected && selectedIcon ? selectedIcon : asChild ? React36__namespace.Children.only(children).props.children : children
4935
+ }),
4936
+ isSelected && selectedIcon ? "selected-content" : "content"
4937
+ ) })
4938
+ ] });
4939
+ const containerClassName = cn(
4940
+ baseIconButtonClasses,
4941
+ resolvedColorClass,
4942
+ outlineWidthClass,
4943
+ disabledBgClass,
4944
+ "overflow-hidden",
4945
+ heightClass,
4946
+ widthClass,
4947
+ loading && "pointer-events-none opacity-75 cursor-not-allowed",
4948
+ className
4949
+ );
4950
+ if (asChild) {
4951
+ const child = React36__namespace.Children.only(children);
4952
+ return /* @__PURE__ */ jsxRuntime.jsx(react.LazyMotion, { features: react.domMax, strict: true, children: /* @__PURE__ */ jsxRuntime.jsx(
4953
+ reactSlot.Slot,
4954
+ __spreadProps(__spreadValues({
4955
+ ref,
4956
+ "aria-pressed": isToggle ? isSelected : void 0,
4957
+ "aria-label": ariaLabel,
4958
+ "aria-busy": loading || void 0,
4959
+ "aria-disabled": loading || restProps.disabled,
4960
+ onClick: handleClick,
4961
+ onPointerDown,
4962
+ onKeyDown: handleKeyDown,
4963
+ style: __spreadProps(__spreadValues({}, style), {
4964
+ borderRadius: `${animateRadius}px`
4965
+ }),
4966
+ className: containerClassName
4967
+ }, restProps), {
4968
+ children: React36__namespace.cloneElement(child, { children: innerContent })
4969
+ })
4970
+ ) });
4971
+ }
4972
+ return /* @__PURE__ */ jsxRuntime.jsx(react.LazyMotion, { features: react.domMax, strict: true, children: /* @__PURE__ */ jsxRuntime.jsx(
4841
4973
  react.m.button,
4842
4974
  __spreadProps(__spreadValues({
4843
4975
  ref,
@@ -4853,67 +4985,9 @@ var IconButtonComponent = React36__namespace.forwardRef(
4853
4985
  animate: { borderRadius: animateRadius },
4854
4986
  whileTap: { borderRadius: pressedRadius },
4855
4987
  transition: { borderRadius: SPRING_TRANSITION_FAST },
4856
- className: cn(
4857
- baseIconButtonClasses,
4858
- resolvedColorClass,
4859
- outlineWidthClass,
4860
- disabledBgClass,
4861
- "overflow-hidden",
4862
- SIZE_STYLES[size],
4863
- loading && "pointer-events-none opacity-75 cursor-not-allowed",
4864
- className
4865
- )
4988
+ className: containerClassName
4866
4989
  }, restProps), {
4867
- children: [
4868
- needsTouchTarget && /* @__PURE__ */ jsxRuntime.jsx(TouchTarget, {}),
4869
- /* @__PURE__ */ jsxRuntime.jsx(Ripple, { ripples, onRippleDone: removeRipple }),
4870
- /* @__PURE__ */ jsxRuntime.jsx(react.AnimatePresence, { mode: "wait", initial: false, children: loading ? /* @__PURE__ */ jsxRuntime.jsx(
4871
- react.m.span,
4872
- __spreadProps(__spreadValues({}, ICON_SPAN_VARIANTS), {
4873
- transition: SPRING_TRANSITION,
4874
- className: cn(
4875
- "flex items-center justify-center shrink-0",
4876
- iconSize != null ? void 0 : iconClass
4877
- ),
4878
- style: isCustomSize ? { width: `${iconSize}px`, height: `${iconSize}px` } : void 0,
4879
- children: loadingVariant === "loading-indicator" ? /* @__PURE__ */ jsxRuntime.jsx(
4880
- LoadingIndicator,
4881
- {
4882
- size: typeof iconPx === "number" ? iconPx : defaultIconPx,
4883
- color: "currentColor",
4884
- "aria-label": "Loading"
4885
- }
4886
- ) : /* @__PURE__ */ jsxRuntime.jsx(
4887
- ProgressIndicator,
4888
- {
4889
- variant: "circular",
4890
- size: typeof iconPx === "number" ? iconPx : defaultIconPx,
4891
- color: "currentColor",
4892
- trackColor: "transparent",
4893
- "aria-label": "Loading"
4894
- }
4895
- )
4896
- }),
4897
- "loading"
4898
- ) : /* @__PURE__ */ jsxRuntime.jsx(
4899
- react.m.span,
4900
- __spreadProps(__spreadValues({}, ICON_SPAN_VARIANTS), {
4901
- transition: SPRING_TRANSITION,
4902
- "aria-hidden": "true",
4903
- className: cn(
4904
- "flex items-center justify-center shrink-0 [&_svg]:w-full [&_svg]:h-full [&_.md-icon]:text-[length:inherit]!",
4905
- iconSize != null ? void 0 : iconClass
4906
- ),
4907
- style: {
4908
- fontSize: typeof iconPx === "number" ? `${iconPx}px` : iconPx,
4909
- width: isCustomSize ? `${iconSize}px` : void 0,
4910
- height: isCustomSize ? `${iconSize}px` : void 0
4911
- },
4912
- children
4913
- }),
4914
- "content"
4915
- ) })
4916
- ]
4990
+ children: innerContent
4917
4991
  })
4918
4992
  ) });
4919
4993
  }
@@ -5987,6 +6061,47 @@ var vibrantFloatingToolbarColors = {
5987
6061
  fabContainerColor: "var(--md-sys-color-tertiary-container)",
5988
6062
  fabContentColor: "var(--md-sys-color-on-tertiary-container)"
5989
6063
  };
6064
+ var surfaceContainerHighFloatingToolbarColors = {
6065
+ toolbarContainerColor: "var(--md-sys-color-surface-container-high)",
6066
+ toolbarContentColor: "var(--md-sys-color-on-surface)",
6067
+ fabContainerColor: "var(--md-sys-color-secondary-container)",
6068
+ fabContentColor: "var(--md-sys-color-on-secondary-container)"
6069
+ };
6070
+ var surfaceContainerHighestFloatingToolbarColors = {
6071
+ toolbarContainerColor: "var(--md-sys-color-surface-container-highest)",
6072
+ toolbarContentColor: "var(--md-sys-color-on-surface)",
6073
+ fabContainerColor: "var(--md-sys-color-secondary-container)",
6074
+ fabContentColor: "var(--md-sys-color-on-secondary-container)"
6075
+ };
6076
+ var tertiaryContainerFloatingToolbarColors = {
6077
+ toolbarContainerColor: "var(--md-sys-color-tertiary-container)",
6078
+ toolbarContentColor: "var(--md-sys-color-on-tertiary-container)",
6079
+ fabContainerColor: "var(--md-sys-color-primary-container)",
6080
+ fabContentColor: "var(--md-sys-color-on-primary-container)"
6081
+ };
6082
+ var xrFloatingToolbarColors = {
6083
+ toolbarContainerColor: "color-mix(in srgb, var(--md-sys-color-surface-container-high) 80%, transparent)",
6084
+ toolbarContentColor: "var(--md-sys-color-on-surface)",
6085
+ fabContainerColor: "color-mix(in srgb, var(--md-sys-color-secondary-container) 85%, transparent)",
6086
+ fabContentColor: "var(--md-sys-color-on-secondary-container)"
6087
+ };
6088
+ function getToolbarColors(variant = "standard", customColors) {
6089
+ if (customColors) return customColors;
6090
+ switch (variant) {
6091
+ case "vibrant":
6092
+ return vibrantFloatingToolbarColors;
6093
+ case "surface-high":
6094
+ return surfaceContainerHighFloatingToolbarColors;
6095
+ case "surface-highest":
6096
+ return surfaceContainerHighestFloatingToolbarColors;
6097
+ case "tertiary":
6098
+ return tertiaryContainerFloatingToolbarColors;
6099
+ case "xr":
6100
+ return xrFloatingToolbarColors;
6101
+ default:
6102
+ return standardFloatingToolbarColors;
6103
+ }
6104
+ }
5990
6105
  var ToolbarContext = React36__namespace.createContext(
5991
6106
  null
5992
6107
  );
@@ -6022,7 +6137,7 @@ var BottomDockedToolbar = React36__namespace.forwardRef(
6022
6137
  "className",
6023
6138
  "aria-label"
6024
6139
  ]);
6025
- const colors = customColors || (variant === "vibrant" ? vibrantFloatingToolbarColors : standardFloatingToolbarColors);
6140
+ const colors = getToolbarColors(variant, customColors);
6026
6141
  const { scrollY } = react.useScroll(
6027
6142
  scrollContainerRef ? { container: scrollContainerRef } : void 0
6028
6143
  );
@@ -6051,6 +6166,7 @@ var BottomDockedToolbar = React36__namespace.forwardRef(
6051
6166
  full: "rounded-full"
6052
6167
  };
6053
6168
  const justifyClass = justify === "center" ? "justify-center gap-4" : "justify-between";
6169
+ const isXr = variant === "xr";
6054
6170
  return /* @__PURE__ */ jsxRuntime.jsx(ToolbarContext.Provider, { value: { orientation: "horizontal" }, children: /* @__PURE__ */ jsxRuntime.jsxs(
6055
6171
  react.m.div,
6056
6172
  __spreadProps(__spreadValues({
@@ -6071,11 +6187,12 @@ var BottomDockedToolbar = React36__namespace.forwardRef(
6071
6187
  paddingRight: paddingX
6072
6188
  }),
6073
6189
  className: cn(
6074
- "fixed bottom-0 left-0 right-0 w-full z-40",
6190
+ "fixed bottom-0 left-0 right-0 w-full z-40 text-(--toolbar-color) [&_.text-m3-on-surface-variant]:text-current",
6075
6191
  "flex items-center h-16",
6076
6192
  justifyClass,
6077
6193
  SHAPE_CLASSES[shape],
6078
- "shadow-[0_-1px_3px_rgba(0,0,0,0.1)] pointer-events-auto",
6194
+ isXr ? "backdrop-blur-md border-t border-white/10 shadow-lg" : "shadow-[0_-1px_3px_rgba(0,0,0,0.1)]",
6195
+ "pointer-events-auto",
6079
6196
  className
6080
6197
  )
6081
6198
  }, props), {
@@ -6122,6 +6239,13 @@ var ToolbarIconButtonTokens = {
6122
6239
  /** Icon size in dp — larger than standard 24dp to fill the 48dp button properly */
6123
6240
  IconSize: 28
6124
6241
  };
6242
+ var ToolbarToggleButtonTokens = {
6243
+ Height: 48,
6244
+ MinWidth: 95,
6245
+ IconSize: 24,
6246
+ PaddingX: 16,
6247
+ Gap: 8
6248
+ };
6125
6249
  var ALIGNMENT_CLASS = {
6126
6250
  start: "justify-start",
6127
6251
  center: "justify-center",
@@ -6180,7 +6304,8 @@ var FloatingToolbarBase = React36__namespace.forwardRef(
6180
6304
  var _b = _a, {
6181
6305
  expanded,
6182
6306
  orientation = "horizontal",
6183
- colors = standardFloatingToolbarColors,
6307
+ variant = "standard",
6308
+ colors: customColors,
6184
6309
  shape = "full",
6185
6310
  contentPadding,
6186
6311
  scrollBehavior,
@@ -6198,6 +6323,7 @@ var FloatingToolbarBase = React36__namespace.forwardRef(
6198
6323
  } = _b, props = __objRest(_b, [
6199
6324
  "expanded",
6200
6325
  "orientation",
6326
+ "variant",
6201
6327
  "colors",
6202
6328
  "shape",
6203
6329
  "contentPadding",
@@ -6214,6 +6340,7 @@ var FloatingToolbarBase = React36__namespace.forwardRef(
6214
6340
  "style",
6215
6341
  "aria-label"
6216
6342
  ]);
6343
+ const colors = getToolbarColors(variant, customColors);
6217
6344
  const isHorizontal = orientation === "horizontal";
6218
6345
  const isStringPadding = typeof contentPadding === "string";
6219
6346
  const cssVars = __spreadValues(__spreadValues({
@@ -6222,7 +6349,8 @@ var FloatingToolbarBase = React36__namespace.forwardRef(
6222
6349
  "--toolbar-size": `${FloatingToolbarTokens.ContainerHeight}px`
6223
6350
  }, isStringPadding ? {} : contentPadding), style);
6224
6351
  const isScrolledOff = scrollBehavior && scrollBehavior.offset < 0;
6225
- const shadowClass = expanded ? "shadow-md" : "shadow-sm";
6352
+ const isXr = variant === "xr";
6353
+ const shadowClass = isXr ? "shadow-lg border border-white/10 backdrop-blur-md" : expanded ? "shadow-md" : "shadow-sm";
6226
6354
  const containerShapeClass = shape === "full" ? "rounded-full" : "rounded-2xl";
6227
6355
  const leadingVariants = buildSlotVariants(
6228
6356
  isHorizontal ? "-100%" : 0,
@@ -6239,7 +6367,7 @@ var FloatingToolbarBase = React36__namespace.forwardRef(
6239
6367
  scrollBehavior,
6240
6368
  disableScrollTranslation
6241
6369
  );
6242
- return /* @__PURE__ */ jsxRuntime.jsx(ToolbarContext.Provider, { value: { orientation }, children: /* @__PURE__ */ jsxRuntime.jsx(
6370
+ return /* @__PURE__ */ jsxRuntime.jsx(ToolbarContext.Provider, { value: { orientation, itemClassName }, children: /* @__PURE__ */ jsxRuntime.jsx(
6243
6371
  react.m.div,
6244
6372
  {
6245
6373
  ref,
@@ -6261,8 +6389,8 @@ var FloatingToolbarBase = React36__namespace.forwardRef(
6261
6389
  color: "var(--toolbar-color)"
6262
6390
  }),
6263
6391
  className: cn(
6264
- "flex pointer-events-auto relative",
6265
- isHorizontal ? "max-w-[90vw] h-(--toolbar-size)" : "max-h-[90vh] w-(--toolbar-size) h-fit",
6392
+ "flex pointer-events-auto relative text-(--toolbar-color) [&_.text-m3-on-surface-variant]:text-current",
6393
+ isHorizontal ? "max-w-[min(90vw,100%)] h-(--toolbar-size)" : "max-h-[min(90vh,100%)] w-(--toolbar-size) h-fit",
6266
6394
  containerShapeClass,
6267
6395
  shadowClass,
6268
6396
  className
@@ -6279,11 +6407,13 @@ var FloatingToolbarBase = React36__namespace.forwardRef(
6279
6407
  "div",
6280
6408
  {
6281
6409
  className: cn(
6282
- "flex items-center gap-1 min-w-0 min-h-0",
6410
+ "flex items-center min-w-0 min-h-0",
6283
6411
  isHorizontal ? "flex-row h-full" : "flex-col w-full",
6284
- isStringPadding ? contentPadding : isHorizontal ? "px-4" : "py-6"
6412
+ isStringPadding ? contentPadding : isHorizontal ? "px-2" : "py-2"
6285
6413
  ),
6286
- style: isStringPadding ? void 0 : contentPadding,
6414
+ style: __spreadValues({
6415
+ gap: itemGap
6416
+ }, isStringPadding ? {} : contentPadding),
6287
6417
  children: [
6288
6418
  /* @__PURE__ */ jsxRuntime.jsx(react.AnimatePresence, { initial: false, children: expanded && startContent && /* @__PURE__ */ jsxRuntime.jsx(
6289
6419
  react.m.div,
@@ -6293,9 +6423,10 @@ var FloatingToolbarBase = React36__namespace.forwardRef(
6293
6423
  animate: "visible",
6294
6424
  exit: "hidden",
6295
6425
  className: cn(
6296
- "flex shrink-0 overflow-hidden",
6426
+ "flex shrink-0 items-center overflow-hidden",
6297
6427
  isHorizontal ? "flex-row" : "flex-col"
6298
6428
  ),
6429
+ style: { gap: itemGap },
6299
6430
  children: processNodes(startContent)
6300
6431
  },
6301
6432
  "start"
@@ -6320,9 +6451,10 @@ var FloatingToolbarBase = React36__namespace.forwardRef(
6320
6451
  animate: "visible",
6321
6452
  exit: "hidden",
6322
6453
  className: cn(
6323
- "flex shrink-0 overflow-hidden",
6454
+ "flex shrink-0 items-center overflow-hidden",
6324
6455
  isHorizontal ? "flex-row" : "flex-col"
6325
6456
  ),
6457
+ style: { gap: itemGap },
6326
6458
  children: processNodes(endContent)
6327
6459
  },
6328
6460
  "end"
@@ -6348,7 +6480,8 @@ var FloatingToolbarWithFabBase = React36__namespace.forwardRef(
6348
6480
  var _b = _a, {
6349
6481
  expanded,
6350
6482
  orientation = "horizontal",
6351
- colors = standardFloatingToolbarColors,
6483
+ variant = "standard",
6484
+ colors: customColors,
6352
6485
  floatingActionButton,
6353
6486
  fabPosition = orientation === "horizontal" ? "end" : "bottom",
6354
6487
  animationDuration = 0.3,
@@ -6359,6 +6492,7 @@ var FloatingToolbarWithFabBase = React36__namespace.forwardRef(
6359
6492
  } = _b, props = __objRest(_b, [
6360
6493
  "expanded",
6361
6494
  "orientation",
6495
+ "variant",
6362
6496
  "colors",
6363
6497
  "floatingActionButton",
6364
6498
  "fabPosition",
@@ -6368,6 +6502,7 @@ var FloatingToolbarWithFabBase = React36__namespace.forwardRef(
6368
6502
  "className",
6369
6503
  "style"
6370
6504
  ]);
6505
+ const colors = getToolbarColors(variant, customColors);
6371
6506
  const isHorizontal = orientation === "horizontal";
6372
6507
  const effectiveExpanded = expanded && (!scrollBehavior || scrollBehavior.isExpanded);
6373
6508
  const isFabBefore = fabPosition === "start" || fabPosition === "top";
@@ -6445,7 +6580,8 @@ var FloatingToolbarWithFabBase = React36__namespace.forwardRef(
6445
6580
  expanded,
6446
6581
  colors,
6447
6582
  disableScrollTranslation: true,
6448
- disableLayoutAnimation: true
6583
+ disableLayoutAnimation: true,
6584
+ className: className ? cn("h-full", className) : void 0
6449
6585
  }, props)
6450
6586
  ) : /* @__PURE__ */ jsxRuntime.jsx(
6451
6587
  VerticalFloatingToolbar,
@@ -6453,7 +6589,8 @@ var FloatingToolbarWithFabBase = React36__namespace.forwardRef(
6453
6589
  expanded,
6454
6590
  colors,
6455
6591
  disableScrollTranslation: true,
6456
- disableLayoutAnimation: true
6592
+ disableLayoutAnimation: true,
6593
+ className: className ? cn("w-full", className) : void 0
6457
6594
  }, props)
6458
6595
  )
6459
6596
  },
@@ -6483,7 +6620,7 @@ var ToolbarDivider = ({
6483
6620
  "aria-orientation": isHorizontalToolbar ? "vertical" : "horizontal",
6484
6621
  className: cn(
6485
6622
  "shrink-0 bg-current opacity-30 border-none",
6486
- isHorizontalToolbar ? "w-px h-8 self-center mx-2" : "h-px w-8 self-center my-2",
6623
+ isHorizontalToolbar ? "w-px h-8 self-center mx-1" : "h-px w-8 self-center my-1",
6487
6624
  className
6488
6625
  ),
6489
6626
  style: {
@@ -6506,20 +6643,47 @@ var VARIANT_TO_COLOR_STYLE = {
6506
6643
  };
6507
6644
  var ToolbarIconButton = React36__namespace.forwardRef(
6508
6645
  (_a, ref) => {
6509
- var _b = _a, { emphasis = "standard", toolbarSize = "default", className } = _b, props = __objRest(_b, ["emphasis", "toolbarSize", "className"]);
6646
+ var _b = _a, {
6647
+ emphasis = "standard",
6648
+ toolbarSize = "default",
6649
+ selected,
6650
+ asChild,
6651
+ className
6652
+ } = _b, props = __objRest(_b, [
6653
+ "emphasis",
6654
+ "toolbarSize",
6655
+ "selected",
6656
+ "asChild",
6657
+ "className"
6658
+ ]);
6659
+ const context = useToolbarContext();
6510
6660
  const widthClass = TOOLBAR_ICON_BUTTON_WIDTH[toolbarSize];
6511
6661
  const colorStyle = VARIANT_TO_COLOR_STYLE[emphasis];
6662
+ const iconButtonProps = selected !== void 0 ? {
6663
+ variant: "toggle",
6664
+ selected: Boolean(selected)
6665
+ } : {
6666
+ variant: "default"
6667
+ };
6512
6668
  return /* @__PURE__ */ jsxRuntime.jsx(
6513
6669
  IconButton,
6514
- __spreadValues({
6670
+ __spreadValues(__spreadProps(__spreadValues({
6515
6671
  ref,
6516
- variant: "default",
6672
+ asChild,
6517
6673
  colorStyle,
6518
6674
  size: "md",
6519
6675
  shape: "round",
6520
- iconSize: ToolbarIconButtonTokens.IconSize,
6521
- className: cn("h-[48px]", widthClass, className)
6522
- }, props)
6676
+ iconSize: ToolbarIconButtonTokens.IconSize
6677
+ }, iconButtonProps), {
6678
+ className: cn(
6679
+ "h-[48px]",
6680
+ widthClass,
6681
+ emphasis === "standard" && !selected && "text-current hover:bg-current/8 active:bg-current/12",
6682
+ emphasis === "standard" && selected && "bg-current/16 text-current hover:bg-current/20 active:bg-current/24",
6683
+ context == null ? void 0 : context.itemClassName,
6684
+ className
6685
+ )
6686
+ }), props)
6523
6687
  );
6524
6688
  }
6525
6689
  );
@@ -6590,6 +6754,195 @@ function useFloatingToolbarScrollBehavior(options = {}) {
6590
6754
  exitDirection
6591
6755
  };
6592
6756
  }
6757
+ var MOTION_PROP_KEYS = [
6758
+ "animate",
6759
+ "exit",
6760
+ "initial",
6761
+ "transition",
6762
+ "variants",
6763
+ "whileHover",
6764
+ "whileTap",
6765
+ "whileFocus",
6766
+ "whileDrag",
6767
+ "whileInView",
6768
+ "onAnimationStart",
6769
+ "onAnimationComplete",
6770
+ "onUpdate",
6771
+ "onDragStart",
6772
+ "onDragEnd",
6773
+ "onDrag",
6774
+ "onDirectionLock",
6775
+ "onDragTransitionEnd",
6776
+ "layout",
6777
+ "layoutId",
6778
+ "onLayoutAnimationComplete"
6779
+ ];
6780
+ var ToolbarToggleButton = React36__namespace.forwardRef(
6781
+ (_a, ref) => {
6782
+ var _b = _a, {
6783
+ emphasis = "standard",
6784
+ selected = false,
6785
+ icon,
6786
+ children,
6787
+ pressScale = 0.95,
6788
+ pressBounceOffset = 6,
6789
+ ripple = true,
6790
+ asChild = false,
6791
+ className,
6792
+ type = "button",
6793
+ disabled,
6794
+ onPointerDown: onPointerDownProp
6795
+ } = _b, props = __objRest(_b, [
6796
+ "emphasis",
6797
+ "selected",
6798
+ "icon",
6799
+ "children",
6800
+ "pressScale",
6801
+ "pressBounceOffset",
6802
+ "ripple",
6803
+ "asChild",
6804
+ "className",
6805
+ "type",
6806
+ "disabled",
6807
+ "onPointerDown"
6808
+ ]);
6809
+ const context = useToolbarContext();
6810
+ const {
6811
+ ripples,
6812
+ onPointerDown: handleRipplePointerDown,
6813
+ removeRipple
6814
+ } = useRippleState({
6815
+ disabled: Boolean(disabled) || !ripple
6816
+ });
6817
+ const handlePointerDown = React36__namespace.useCallback(
6818
+ (e) => {
6819
+ if (!disabled && ripple) {
6820
+ handleRipplePointerDown(e);
6821
+ }
6822
+ onPointerDownProp == null ? void 0 : onPointerDownProp(e);
6823
+ },
6824
+ [disabled, ripple, handleRipplePointerDown, onPointerDownProp]
6825
+ );
6826
+ const baseClasses = "relative overflow-hidden inline-flex items-center justify-center min-w-[95px] h-[48px] px-4 rounded-full text-sm font-medium transition-colors select-none focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-current/40 disabled:pointer-events-none disabled:opacity-38";
6827
+ const variantClasses = {
6828
+ standard: selected ? "bg-current/16 text-current hover:bg-current/20 active:bg-current/24" : "bg-transparent text-current hover:bg-current/8 active:bg-current/12",
6829
+ tonal: selected ? "bg-m3-secondary-container text-m3-on-secondary-container hover:shadow-sm" : "bg-m3-surface-container-high text-m3-on-surface hover:bg-m3-surface-container-highest",
6830
+ filled: selected ? "bg-m3-primary text-m3-on-primary hover:shadow-sm" : "bg-m3-surface-container-highest text-m3-on-surface hover:bg-m3-surface-container-high"
6831
+ };
6832
+ const combinedClassName = cn(
6833
+ baseClasses,
6834
+ variantClasses[emphasis],
6835
+ context == null ? void 0 : context.itemClassName,
6836
+ className
6837
+ );
6838
+ const whileTapConfig = React36__namespace.useMemo(
6839
+ () => ({
6840
+ scale: pressScale,
6841
+ x: pressBounceOffset ? [
6842
+ 0,
6843
+ -pressBounceOffset,
6844
+ pressBounceOffset,
6845
+ -pressBounceOffset / 2,
6846
+ pressBounceOffset / 2,
6847
+ 0
6848
+ ] : 0
6849
+ }),
6850
+ [pressScale, pressBounceOffset]
6851
+ );
6852
+ const transitionConfig = React36__namespace.useMemo(
6853
+ () => ({
6854
+ scale: FAST_SPATIAL_SPRING,
6855
+ x: {
6856
+ duration: 0.35,
6857
+ ease: "easeInOut"
6858
+ }
6859
+ }),
6860
+ []
6861
+ );
6862
+ const mainContent = /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "inline-flex items-center justify-center h-full gap-2", children: [
6863
+ icon && /* @__PURE__ */ jsxRuntime.jsx(
6864
+ "span",
6865
+ {
6866
+ className: "shrink-0 inline-flex items-center justify-center",
6867
+ style: {
6868
+ width: ToolbarToggleButtonTokens.IconSize,
6869
+ height: ToolbarToggleButtonTokens.IconSize
6870
+ },
6871
+ children: icon
6872
+ }
6873
+ ),
6874
+ children && (typeof children === "string" || typeof children === "number" ? /* @__PURE__ */ jsxRuntime.jsx("span", { children }) : children)
6875
+ ] });
6876
+ if (asChild) {
6877
+ const child = React36__namespace.Children.only(children);
6878
+ const childContent = child.props.children;
6879
+ const innerChildContent = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
6880
+ ripple && /* @__PURE__ */ jsxRuntime.jsx(
6881
+ Ripple,
6882
+ {
6883
+ ripples,
6884
+ onRippleDone: removeRipple,
6885
+ disabled
6886
+ }
6887
+ ),
6888
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-flex items-center justify-center h-full gap-2", children: icon ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
6889
+ /* @__PURE__ */ jsxRuntime.jsx(
6890
+ "span",
6891
+ {
6892
+ className: "shrink-0 inline-flex items-center justify-center",
6893
+ style: {
6894
+ width: ToolbarToggleButtonTokens.IconSize,
6895
+ height: ToolbarToggleButtonTokens.IconSize
6896
+ },
6897
+ children: icon
6898
+ }
6899
+ ),
6900
+ typeof childContent === "string" || typeof childContent === "number" ? /* @__PURE__ */ jsxRuntime.jsx("span", { children: childContent }) : childContent
6901
+ ] }) : childContent })
6902
+ ] });
6903
+ const strippedProps = __spreadValues({}, props);
6904
+ for (const key of MOTION_PROP_KEYS) delete strippedProps[key];
6905
+ delete strippedProps.children;
6906
+ return /* @__PURE__ */ jsxRuntime.jsx(react.LazyMotion, { features: react.domMax, strict: true, children: /* @__PURE__ */ jsxRuntime.jsx(
6907
+ reactSlot.Slot,
6908
+ __spreadProps(__spreadValues({
6909
+ ref,
6910
+ "aria-pressed": selected,
6911
+ className: combinedClassName,
6912
+ onPointerDown: handlePointerDown
6913
+ }, strippedProps), {
6914
+ children: React36__namespace.cloneElement(child, { children: innerChildContent })
6915
+ })
6916
+ ) });
6917
+ }
6918
+ return /* @__PURE__ */ jsxRuntime.jsx(react.LazyMotion, { features: react.domMax, strict: true, children: /* @__PURE__ */ jsxRuntime.jsxs(
6919
+ react.m.button,
6920
+ __spreadProps(__spreadValues({
6921
+ ref,
6922
+ type,
6923
+ "aria-pressed": selected,
6924
+ disabled,
6925
+ whileTap: whileTapConfig,
6926
+ transition: transitionConfig,
6927
+ onPointerDown: handlePointerDown,
6928
+ className: combinedClassName
6929
+ }, props), {
6930
+ children: [
6931
+ ripple && /* @__PURE__ */ jsxRuntime.jsx(
6932
+ Ripple,
6933
+ {
6934
+ ripples,
6935
+ onRippleDone: removeRipple,
6936
+ disabled
6937
+ }
6938
+ ),
6939
+ mainContent
6940
+ ]
6941
+ })
6942
+ ) });
6943
+ }
6944
+ );
6945
+ ToolbarToggleButton.displayName = "ToolbarToggleButton";
6593
6946
 
6594
6947
  exports.APP_BAR_BOTTOM_SPRING = APP_BAR_BOTTOM_SPRING;
6595
6948
  exports.APP_BAR_COLORS = APP_BAR_COLORS;
@@ -6665,6 +7018,8 @@ exports.ToolbarDivider = ToolbarDivider;
6665
7018
  exports.ToolbarDividerTokens = ToolbarDividerTokens;
6666
7019
  exports.ToolbarIconButton = ToolbarIconButton;
6667
7020
  exports.ToolbarIconButtonTokens = ToolbarIconButtonTokens;
7021
+ exports.ToolbarToggleButton = ToolbarToggleButton;
7022
+ exports.ToolbarToggleButtonTokens = ToolbarToggleButtonTokens;
6668
7023
  exports.VIBRANT_COLORS = VIBRANT_COLORS;
6669
7024
  exports.VerticalFloatingToolbar = VerticalFloatingToolbar;
6670
7025
  exports.VerticalFloatingToolbarWithFab = VerticalFloatingToolbarWithFab;
@@ -6673,12 +7028,17 @@ exports.VerticalMenuContent = VerticalMenuContent;
6673
7028
  exports.VerticalMenuDivider = VerticalMenuDivider;
6674
7029
  exports.VerticalMenuGroup = VerticalMenuGroup;
6675
7030
  exports.appBarTypography = appBarTypography;
7031
+ exports.getToolbarColors = getToolbarColors;
6676
7032
  exports.standardFloatingToolbarColors = standardFloatingToolbarColors;
7033
+ exports.surfaceContainerHighFloatingToolbarColors = surfaceContainerHighFloatingToolbarColors;
7034
+ exports.surfaceContainerHighestFloatingToolbarColors = surfaceContainerHighestFloatingToolbarColors;
7035
+ exports.tertiaryContainerFloatingToolbarColors = tertiaryContainerFloatingToolbarColors;
6677
7036
  exports.useAppBarScroll = useAppBarScroll;
6678
7037
  exports.useFloatingToolbarScrollBehavior = useFloatingToolbarScrollBehavior;
6679
7038
  exports.useMenuContext = useMenuContext;
6680
7039
  exports.useSearch = useSearch;
6681
7040
  exports.useSearchKeyboard = useSearchKeyboard;
6682
7041
  exports.vibrantFloatingToolbarColors = vibrantFloatingToolbarColors;
7042
+ exports.xrFloatingToolbarColors = xrFloatingToolbarColors;
6683
7043
  //# sourceMappingURL=navigation.js.map
6684
7044
  //# sourceMappingURL=navigation.js.map