@basic-ui/material 1.0.0-alpha.7 → 1.0.0-alpha.8

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 (52) hide show
  1. package/build/cjs/index.js +152 -8
  2. package/build/cjs/index.js.map +1 -1
  3. package/build/esm/Alert/Alert.d.ts +1 -1
  4. package/build/esm/BottomSheet/BottomSheet.d.ts +1 -1
  5. package/build/esm/Button/Button.d.ts +1 -1
  6. package/build/esm/Button/ButtonGroup.d.ts +1 -1
  7. package/build/esm/Button/FilledButton.d.ts +1 -1
  8. package/build/esm/Button/FilledButton.js +6 -8
  9. package/build/esm/Button/FilledButton.js.map +1 -1
  10. package/build/esm/Button/OutlinedButton.d.ts +1 -1
  11. package/build/esm/Button/TransparentButton.d.ts +1 -1
  12. package/build/esm/Chip/ButtonChip.d.ts +1 -1
  13. package/build/esm/Chip/ChipBase.d.ts +1 -1
  14. package/build/esm/Chip/ChoiceChip.d.ts +1 -1
  15. package/build/esm/Combobox/Combobox.d.ts +7 -7
  16. package/build/esm/Dialog/Dialog.d.ts +1 -1
  17. package/build/esm/Dialog/Scrim.d.ts +1 -1
  18. package/build/esm/Divider/Divider.d.ts +1 -1
  19. package/build/esm/Link/Link.d.ts +1 -1
  20. package/build/esm/ListItem/ListItem.d.ts +1 -1
  21. package/build/esm/NavRail/NavRailItem.d.ts +5 -4
  22. package/build/esm/NavRail/NavRailItem.js +14 -8
  23. package/build/esm/NavRail/NavRailItem.js.map +1 -1
  24. package/build/esm/Paper/Paper.d.ts +1 -1
  25. package/build/esm/Select/Select.d.ts +1 -1
  26. package/build/esm/Select/SelectIcon.d.ts +1 -1
  27. package/build/esm/SelectionControl/SelectionControlText.d.ts +1 -1
  28. package/build/esm/Skeleton/Skeleton.d.ts +1 -1
  29. package/build/esm/Tab/Tab.d.ts +1 -1
  30. package/build/esm/Table/TableHead.d.ts +1 -1
  31. package/build/esm/Table/TableRow.d.ts +1 -1
  32. package/build/esm/TextField/FilledContainer.d.ts +1 -1
  33. package/build/esm/TextField/HelperText.d.ts +1 -1
  34. package/build/esm/TextField/Input.d.ts +1 -1
  35. package/build/esm/TextField/TextField.d.ts +1 -1
  36. package/build/esm/Tooltip/Tooltip.d.ts +1 -1
  37. package/build/esm/color.d.ts +2 -0
  38. package/build/esm/color.js +8 -3
  39. package/build/esm/color.js.map +1 -1
  40. package/build/esm/index.d.ts +1 -0
  41. package/build/esm/index.js +1 -0
  42. package/build/esm/index.js.map +1 -1
  43. package/build/tsconfig.tsbuildinfo +1 -1
  44. package/package.json +3 -3
  45. package/src/Button/Button.story.tsx +6 -1
  46. package/src/Button/FilledButton.tsx +4 -9
  47. package/src/NavRail/NavRail.story.tsx +93 -13
  48. package/src/NavRail/NavRailItem.tsx +45 -35
  49. package/src/ThemeExplorer/ThemeBuilder.story.tsx +27 -23
  50. package/src/color.ts +25 -4
  51. package/src/index.ts +1 -0
  52. package/src/ThemeExplorer/ThemeExplorer.story.tsx +0 -43
@@ -689,11 +689,16 @@ const alpha = (colorString, alphaValue) => theme => {
689
689
  const rgb = polished.parseToRgb(color);
690
690
  return `rgba(${rgb.red},${rgb.green},${rgb.blue},${alphaValue})`;
691
691
  };
692
+ function mixColor(baseColor, overlayColor, overlayOpacity) {
693
+ return theme => {
694
+ baseColor = css.get(theme, `colors.${baseColor}`, baseColor);
695
+ overlayColor = overlayOpacity ? alpha(overlayColor, overlayOpacity)(theme) : css.get(theme, `colors.${overlayColor}`, overlayColor);
696
+ return `linear-gradient(${overlayColor}, ${overlayColor}), ${baseColor}`;
697
+ };
698
+ }
692
699
  function getColorOverlay(theme, baseColor, overlayColor, overlayOpacity) {
693
- baseColor = css.get(theme, `colors.${baseColor}`) || baseColor;
694
- overlayColor = alpha(overlayColor, overlayOpacity)(theme);
695
700
  return {
696
- background: `linear-gradient(${overlayColor}, ${overlayColor}), ${baseColor}`
701
+ background: mixColor(baseColor, overlayColor, overlayOpacity)(theme)
697
702
  };
698
703
  }
699
704
  function getBackgroundOverlay(theme, backgroundOverlay, overlayColor = 'on.surface') {
@@ -931,10 +936,10 @@ const FilledButton = /*#__PURE__*/_styled__default['default'](BaseButton, proces
931
936
  outlineOffset: '2px'
932
937
  }
933
938
  }), ({
934
- color = 'primary',
935
- elevation = 'none',
936
- theme
937
- }) => color === 'surface' && _extends__default['default']({}, getBackgroundOverlay(theme, css.get(theme, `buttons.elevations.${elevation}.boxShadow`, 0), 'primary')), ({
939
+ color = 'primary'
940
+ }) => color === 'surface' && css.css({
941
+ background: mixColor('surface', 'primary', 0.05)
942
+ }), ({
938
943
  color = 'primary',
939
944
  theme,
940
945
  isGroupedButton = false
@@ -960,7 +965,7 @@ const FilledButton = /*#__PURE__*/_styled__default['default'](BaseButton, proces
960
965
  borderLeftWidth: 0
961
966
  }
962
967
  }
963
- }, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkZpbGxlZEJ1dHRvbi50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUTRCIiwiZmlsZSI6IkZpbGxlZEJ1dHRvbi50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyByZWFkYWJsZUNvbG9yLCByZW0gfSBmcm9tICdwb2xpc2hlZCc7XG5pbXBvcnQgeyBnZXQsIGNzcyB9IGZyb20gJ0BzdHlsZWQtc3lzdGVtL2Nzcyc7XG5cbmltcG9ydCB7IEJhc2VCdXR0b24gfSBmcm9tICcuL0Jhc2VCdXR0b24nO1xuaW1wb3J0IHR5cGUgeyBUaGVtZSB9IGZyb20gJy4uL3RoZW1lJztcbmltcG9ydCB7IGFscGhhLCBnZXRCYWNrZ3JvdW5kT3ZlcmxheSB9IGZyb20gJy4uL2NvbG9yJztcblxuZXhwb3J0IGNvbnN0IEZpbGxlZEJ1dHRvbiA9IHN0eWxlZChCYXNlQnV0dG9uKShcbiAgKHsgY29sb3IgPSAncHJpbWFyeScsIHRoZW1lIH0pID0+XG4gICAgY3NzKHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogZ2V0KHRoZW1lLCBgY29sb3JzLiR7U3RyaW5nKGNvbG9yKX1gKSB8fCBjb2xvcixcbiAgICAgIGNvbG9yOlxuICAgICAgICBnZXQodGhlbWUsIGBjb2xvcnMub24uJHtTdHJpbmcoY29sb3IpfWApIHx8XG4gICAgICAgICh0eXBlb2YgY29sb3IgPT09ICdzdHJpbmcnID8gcmVhZGFibGVDb2xvcihjb2xvcikgOiB1bmRlZmluZWQpLFxuICAgICAgJyY6ZGlzYWJsZWQnOiB7XG4gICAgICAgIGNvbG9yOiBhbHBoYSgnb24uc3VyZmFjZScsIDAuMzgpLFxuICAgICAgICBiYWNrZ3JvdW5kOiBgbGluZWFyLWdyYWRpZW50KCR7Z2V0KHRoZW1lLCAnY29sb3JzLnN1cmZhY2UnKX0sICR7Z2V0KFxuICAgICAgICAgIHRoZW1lLFxuICAgICAgICAgICdjb2xvcnMuc3VyZmFjZSdcbiAgICAgICAgKX0pLCAke2FscGhhKCdvbi5zdXJmYWNlJywgMC4xMikodGhlbWUpfWAsXG4gICAgICAgIGJhY2tncm91bmRCbGVuZE1vZGU6ICdvdmVybGF5JyxcbiAgICAgICAgY3Vyc29yOiAnZGVmYXVsdCcsXG4gICAgICB9LFxuICAgICAgJyY6Zm9jdXMtdmlzaWJsZSc6IHtcbiAgICAgICAgb3V0bGluZUNvbG9yOiBnZXQodGhlbWUsIGBjb2xvcnMuJHtTdHJpbmcoY29sb3IpfWApIHx8IGNvbG9yLFxuICAgICAgICBvdXRsaW5lV2lkdGg6IDIsXG4gICAgICAgIG91dGxpbmVTdHlsZTogJ2F1dG8nLFxuICAgICAgICBvdXRsaW5lT2Zmc2V0OiAnMnB4JyxcbiAgICAgIH0sXG4gICAgfSksXG4gICh7IGNvbG9yID0gJ3ByaW1hcnknLCBlbGV2YXRpb24gPSAnbm9uZScsIHRoZW1lIH0pID0+XG4gICAgY29sb3IgPT09ICdzdXJmYWNlJyAmJiB7XG4gICAgICAuLi5nZXRCYWNrZ3JvdW5kT3ZlcmxheShcbiAgICAgICAgdGhlbWUsXG4gICAgICAgIGdldCh0aGVtZSwgYGJ1dHRvbnMuZWxldmF0aW9ucy4ke2VsZXZhdGlvbn0uYm94U2hhZG93YCwgMCksXG4gICAgICAgICdwcmltYXJ5J1xuICAgICAgKSxcbiAgICB9LFxuICAoeyBjb2xvciA9ICdwcmltYXJ5JywgdGhlbWUsIGlzR3JvdXBlZEJ1dHRvbiA9IGZhbHNlIH0pID0+XG4gICAgaXNHcm91cGVkQnV0dG9uICYmIHtcbiAgICAgICdbZGF0YS1idXR0b24tZ3JvdXA9XCJcIl0gJic6IHtcbiAgICAgICAgYm9yZGVyQ29sb3I6XG4gICAgICAgICAgZ2V0KHRoZW1lLCBgY29sb3JzLm9uLiR7U3RyaW5nKGNvbG9yKX1gKSB8fFxuICAgICAgICAgICh0eXBlb2YgY29sb3IgPT09ICdzdHJpbmcnID8gcmVhZGFibGVDb2xvcihjb2xvcikgOiB1bmRlZmluZWQpLFxuICAgICAgICAnOmZpcnN0LW9mLXR5cGUnOiB7XG4gICAgICAgICAgYm9yZGVyVG9wUmlnaHRSYWRpdXM6IDAsXG4gICAgICAgICAgYm9yZGVyQm90dG9tUmlnaHRSYWRpdXM6IDAsXG4gICAgICAgICAgYm9yZGVyUmlnaHRTdHlsZTogJ3NvbGlkJyxcbiAgICAgICAgICBib3JkZXJSaWdodFdpZHRoOiByZW0oMSksXG4gICAgICAgIH0sXG4gICAgICAgICc6bm90KDpmaXJzdC1vZi10eXBlKTpub3QoOmxhc3Qtb2YtdHlwZSknOiB7XG4gICAgICAgICAgYm9yZGVyUmFkaXVzOiAwLFxuICAgICAgICB9LFxuICAgICAgICAnOmxhc3Qtb2YtdHlwZSc6IHtcbiAgICAgICAgICBib3JkZXJUb3BMZWZ0UmFkaXVzOiAwLFxuICAgICAgICAgIGJvcmRlckJvdHRvbUxlZnRSYWRpdXM6IDAsXG4gICAgICAgICAgYm9yZGVyTGVmdFN0eWxlOiAnc29saWQnLFxuICAgICAgICAgIGJvcmRlckxlZnRXaWR0aDogcmVtKDEpLFxuICAgICAgICB9LFxuICAgICAgICAnOmxhc3Qtb2YtdHlwZTpudGgtb2YtdHlwZSgyKSc6IHtcbiAgICAgICAgICBib3JkZXJMZWZ0V2lkdGg6IDAsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH1cbik7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSaXBwbGVQcm9wZXJ0aWVzKHRoZW1lOiBUaGVtZSkge1xuICByZXR1cm4ge1xuICAgIGhvdmVyT3BhY2l0eTogZ2V0KHRoZW1lLCBgYnV0dG9ucy5vdmVybGF5cy5maWxsZWQuaG92ZXIub3BhY2l0eWApLFxuICAgIGZvY3VzT3BhY2l0eTogZ2V0KHRoZW1lLCBgYnV0dG9ucy5vdmVybGF5cy5maWxsZWQuZm9jdXMub3BhY2l0eWApLFxuICAgIHByZXNzZWRPcGFjaXR5OiBnZXQodGhlbWUsIGBidXR0b25zLm92ZXJsYXlzLmZpbGxlZC5wcmVzc2VkLm9wYWNpdHlgKSxcbiAgICByaXBwbGVFbmFibGVkOiBmYWxzZSxcbiAgfTtcbn1cbiJdfQ== */");
968
+ }, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkZpbGxlZEJ1dHRvbi50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUTRCIiwiZmlsZSI6IkZpbGxlZEJ1dHRvbi50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyByZWFkYWJsZUNvbG9yLCByZW0gfSBmcm9tICdwb2xpc2hlZCc7XG5pbXBvcnQgeyBnZXQsIGNzcyB9IGZyb20gJ0BzdHlsZWQtc3lzdGVtL2Nzcyc7XG5cbmltcG9ydCB7IEJhc2VCdXR0b24gfSBmcm9tICcuL0Jhc2VCdXR0b24nO1xuaW1wb3J0IHR5cGUgeyBUaGVtZSB9IGZyb20gJy4uL3RoZW1lJztcbmltcG9ydCB7IGFscGhhLCBtaXhDb2xvciB9IGZyb20gJy4uL2NvbG9yJztcblxuZXhwb3J0IGNvbnN0IEZpbGxlZEJ1dHRvbiA9IHN0eWxlZChCYXNlQnV0dG9uKShcbiAgKHsgY29sb3IgPSAncHJpbWFyeScsIHRoZW1lIH0pID0+XG4gICAgY3NzKHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogZ2V0KHRoZW1lLCBgY29sb3JzLiR7U3RyaW5nKGNvbG9yKX1gKSB8fCBjb2xvcixcbiAgICAgIGNvbG9yOlxuICAgICAgICBnZXQodGhlbWUsIGBjb2xvcnMub24uJHtTdHJpbmcoY29sb3IpfWApIHx8XG4gICAgICAgICh0eXBlb2YgY29sb3IgPT09ICdzdHJpbmcnID8gcmVhZGFibGVDb2xvcihjb2xvcikgOiB1bmRlZmluZWQpLFxuICAgICAgJyY6ZGlzYWJsZWQnOiB7XG4gICAgICAgIGNvbG9yOiBhbHBoYSgnb24uc3VyZmFjZScsIDAuMzgpLFxuICAgICAgICBiYWNrZ3JvdW5kOiBgbGluZWFyLWdyYWRpZW50KCR7Z2V0KHRoZW1lLCAnY29sb3JzLnN1cmZhY2UnKX0sICR7Z2V0KFxuICAgICAgICAgIHRoZW1lLFxuICAgICAgICAgICdjb2xvcnMuc3VyZmFjZSdcbiAgICAgICAgKX0pLCAke2FscGhhKCdvbi5zdXJmYWNlJywgMC4xMikodGhlbWUpfWAsXG4gICAgICAgIGJhY2tncm91bmRCbGVuZE1vZGU6ICdvdmVybGF5JyxcbiAgICAgICAgY3Vyc29yOiAnZGVmYXVsdCcsXG4gICAgICB9LFxuICAgICAgJyY6Zm9jdXMtdmlzaWJsZSc6IHtcbiAgICAgICAgb3V0bGluZUNvbG9yOiBnZXQodGhlbWUsIGBjb2xvcnMuJHtTdHJpbmcoY29sb3IpfWApIHx8IGNvbG9yLFxuICAgICAgICBvdXRsaW5lV2lkdGg6IDIsXG4gICAgICAgIG91dGxpbmVTdHlsZTogJ2F1dG8nLFxuICAgICAgICBvdXRsaW5lT2Zmc2V0OiAnMnB4JyxcbiAgICAgIH0sXG4gICAgfSksXG4gICh7IGNvbG9yID0gJ3ByaW1hcnknIH0pID0+XG4gICAgY29sb3IgPT09ICdzdXJmYWNlJyAmJlxuICAgIGNzcyh7IGJhY2tncm91bmQ6IG1peENvbG9yKCdzdXJmYWNlJywgJ3ByaW1hcnknLCAwLjA1KSB9KSxcbiAgKHsgY29sb3IgPSAncHJpbWFyeScsIHRoZW1lLCBpc0dyb3VwZWRCdXR0b24gPSBmYWxzZSB9KSA9PlxuICAgIGlzR3JvdXBlZEJ1dHRvbiAmJiB7XG4gICAgICAnW2RhdGEtYnV0dG9uLWdyb3VwPVwiXCJdICYnOiB7XG4gICAgICAgIGJvcmRlckNvbG9yOlxuICAgICAgICAgIGdldCh0aGVtZSwgYGNvbG9ycy5vbi4ke1N0cmluZyhjb2xvcil9YCkgfHxcbiAgICAgICAgICAodHlwZW9mIGNvbG9yID09PSAnc3RyaW5nJyA/IHJlYWRhYmxlQ29sb3IoY29sb3IpIDogdW5kZWZpbmVkKSxcbiAgICAgICAgJzpmaXJzdC1vZi10eXBlJzoge1xuICAgICAgICAgIGJvcmRlclRvcFJpZ2h0UmFkaXVzOiAwLFxuICAgICAgICAgIGJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzOiAwLFxuICAgICAgICAgIGJvcmRlclJpZ2h0U3R5bGU6ICdzb2xpZCcsXG4gICAgICAgICAgYm9yZGVyUmlnaHRXaWR0aDogcmVtKDEpLFxuICAgICAgICB9LFxuICAgICAgICAnOm5vdCg6Zmlyc3Qtb2YtdHlwZSk6bm90KDpsYXN0LW9mLXR5cGUpJzoge1xuICAgICAgICAgIGJvcmRlclJhZGl1czogMCxcbiAgICAgICAgfSxcbiAgICAgICAgJzpsYXN0LW9mLXR5cGUnOiB7XG4gICAgICAgICAgYm9yZGVyVG9wTGVmdFJhZGl1czogMCxcbiAgICAgICAgICBib3JkZXJCb3R0b21MZWZ0UmFkaXVzOiAwLFxuICAgICAgICAgIGJvcmRlckxlZnRTdHlsZTogJ3NvbGlkJyxcbiAgICAgICAgICBib3JkZXJMZWZ0V2lkdGg6IHJlbSgxKSxcbiAgICAgICAgfSxcbiAgICAgICAgJzpsYXN0LW9mLXR5cGU6bnRoLW9mLXR5cGUoMiknOiB7XG4gICAgICAgICAgYm9yZGVyTGVmdFdpZHRoOiAwLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9XG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmlwcGxlUHJvcGVydGllcyh0aGVtZTogVGhlbWUpIHtcbiAgcmV0dXJuIHtcbiAgICBob3Zlck9wYWNpdHk6IGdldCh0aGVtZSwgYGJ1dHRvbnMub3ZlcmxheXMuZmlsbGVkLmhvdmVyLm9wYWNpdHlgKSxcbiAgICBmb2N1c09wYWNpdHk6IGdldCh0aGVtZSwgYGJ1dHRvbnMub3ZlcmxheXMuZmlsbGVkLmZvY3VzLm9wYWNpdHlgKSxcbiAgICBwcmVzc2VkT3BhY2l0eTogZ2V0KHRoZW1lLCBgYnV0dG9ucy5vdmVybGF5cy5maWxsZWQucHJlc3NlZC5vcGFjaXR5YCksXG4gICAgcmlwcGxlRW5hYmxlZDogZmFsc2UsXG4gIH07XG59XG4iXX0= */");
964
969
  function getRippleProperties$2(theme) {
965
970
  return {
966
971
  hoverOpacity: css.get(theme, `buttons.overlays.filled.hover.opacity`),
@@ -3751,6 +3756,141 @@ const MenuPopover = /*#__PURE__*/react$1.forwardRef((_ref4, ref) => {
3751
3756
  }, props));
3752
3757
  });
3753
3758
 
3759
+ const NavRailIndicator = /*#__PURE__*/react$1.forwardRef(function NavRailIndicator(props, forwardedRef) {
3760
+ const {
3761
+ as = 'div',
3762
+ children,
3763
+ __css
3764
+ } = props,
3765
+ otherProps = _objectWithoutPropertiesLoose__default['default'](props, ["as", "children", "__css"]);
3766
+
3767
+ return /*#__PURE__*/jsxRuntime.jsx(Box, _extends__default['default']({
3768
+ color: "currentColor",
3769
+ ref: forwardedRef,
3770
+ as: as,
3771
+ "data-nav-rail-item-indicator": ""
3772
+ }, otherProps, {
3773
+ __css: _extends__default['default']({
3774
+ width: '100%',
3775
+ height: '100%',
3776
+ maxWidth: "3.5rem",
3777
+ maxHeight: "3.5rem",
3778
+ borderRadius: 'full',
3779
+ bg: 'var(--indicator-background-color)',
3780
+ display: 'flex',
3781
+ alignItems: 'center',
3782
+ justifyContent: 'center',
3783
+ minHeight: "2rem",
3784
+ transition: 'background-color .2s cubic-bezier(.4,0,.2,1)',
3785
+ pointerEvents: 'none'
3786
+ }, __css),
3787
+ children: children
3788
+ }));
3789
+ });
3790
+ const NavRailLabel = /*#__PURE__*/react$1.forwardRef(function NavRailLabel(props, forwardedRef) {
3791
+ const {
3792
+ as = 'div',
3793
+ children,
3794
+ __css
3795
+ } = props,
3796
+ otherProps = _objectWithoutPropertiesLoose__default['default'](props, ["as", "children", "__css"]);
3797
+
3798
+ return /*#__PURE__*/jsxRuntime.jsx(Text, _extends__default['default']({
3799
+ ref: forwardedRef,
3800
+ as: as,
3801
+ variant: "caption",
3802
+ lineHeight: 1
3803
+ }, otherProps, {
3804
+ __css: _extends__default['default']({
3805
+ pt: "0.25rem",
3806
+ pb: "0.75rem",
3807
+ color: 'inherit',
3808
+ pointerEvents: 'none'
3809
+ }, __css),
3810
+ children: children
3811
+ }));
3812
+ });
3813
+ const NavRailItem = /*#__PURE__*/react$1.forwardRef(function NavRailItem(props, forwardedRef) {
3814
+ const {
3815
+ as = 'button',
3816
+ children,
3817
+ color = 'primary-container',
3818
+ selected = false,
3819
+ disabled = false,
3820
+ style,
3821
+ onKeyDown,
3822
+ onPointerDown,
3823
+ __css
3824
+ } = props,
3825
+ otherProps = _objectWithoutPropertiesLoose__default['default'](props, ["as", "children", "color", "selected", "disabled", "style", "onKeyDown", "onPointerDown", "__css"]);
3826
+
3827
+ const theme = useTheme();
3828
+ const baseOpacity = 0,
3829
+ hoverOpacity = 0.04,
3830
+ focusOpacity = 0.12,
3831
+ pressedOpacity = 0.12;
3832
+ const ripple = useRippleSurface({
3833
+ rippleColor: 'currentColor',
3834
+ onKeyDown,
3835
+ onPointerDown,
3836
+ baseOpacity,
3837
+ hoverOpacity,
3838
+ focusOpacity,
3839
+ pressedOpacity
3840
+ }); // Apply ripple from nav item to nav indicator
3841
+
3842
+ const rippleCss = react$1.useMemo(() => {
3843
+ const ret = {};
3844
+ const keys = Object.keys(ripple.__css);
3845
+
3846
+ for (const key of keys) {
3847
+ if (!key.startsWith('&')) {
3848
+ ret['& [data-nav-rail-item-indicator]'] = ret['& [data-nav-rail-item-indicator]'] || {};
3849
+ ret['& [data-nav-rail-item-indicator]'][key] = ripple.__css[key];
3850
+ continue;
3851
+ }
3852
+
3853
+ const newKey = key.replace(/(.+?)::(before|after)/g, '$1 [data-nav-rail-item-indicator]::$2');
3854
+ ret[newKey] = ripple.__css[key];
3855
+ }
3856
+
3857
+ return ret;
3858
+ }, [ripple.__css]);
3859
+ return /*#__PURE__*/jsxRuntime.jsx(Box, _extends__default['default']({
3860
+ ref: forwardedRef,
3861
+ as: as
3862
+ }, otherProps, {
3863
+ onPointerDown: ripple.onPointerDown,
3864
+ onKeyDown: ripple.onKeyDown,
3865
+ "aria-pressed": selected,
3866
+ type: "button",
3867
+ style: _extends__default['default']({}, ripple.style, style),
3868
+ disabled: disabled,
3869
+ __css: _extends__default['default']({
3870
+ display: 'flex',
3871
+ flexDirection: 'column',
3872
+ alignItems: 'center',
3873
+ transition: 'color .2s cubic-bezier(.4,0,.2,1)',
3874
+ color: selected ? `on.${color}` : 'on.surface-variant',
3875
+ '--indicator-background-color': selected ? styledSystem.get(theme, `colors.${color}`) : 'transparent',
3876
+ border: 'none',
3877
+ ':focus': {
3878
+ outline: 'none'
3879
+ },
3880
+ backgroundColor: 'transparent',
3881
+ margin: 0,
3882
+ padding: 0,
3883
+ px: "0.75rem",
3884
+ minHeight: "3.75rem",
3885
+ height: "3.75rem",
3886
+ cursor: 'pointer',
3887
+ textDecoration: 'none',
3888
+ WebkitTapHighlightColor: 'transparent'
3889
+ }, rippleCss, __css),
3890
+ children: children
3891
+ }));
3892
+ });
3893
+
3754
3894
  const innerDivRotate = react.keyframes({
3755
3895
  '0%': {
3756
3896
  transformOrigin: '50% 50%'
@@ -5366,6 +5506,9 @@ exports.MenuButton = MenuButton;
5366
5506
  exports.MenuItem = MenuItem;
5367
5507
  exports.MenuList = MenuList;
5368
5508
  exports.MenuPopover = MenuPopover;
5509
+ exports.NavRailIndicator = NavRailIndicator;
5510
+ exports.NavRailItem = NavRailItem;
5511
+ exports.NavRailLabel = NavRailLabel;
5369
5512
  exports.NotchedOutline = NotchedOutline;
5370
5513
  exports.OutlinedContainer = OutlinedContainer;
5371
5514
  exports.Paper = Paper;
@@ -5401,6 +5544,7 @@ exports.getBackgroundOverlay = getBackgroundOverlay;
5401
5544
  exports.getColorOverlay = getColorOverlay;
5402
5545
  exports.getDarkThemeBackgroundOverlay = getDarkThemeBackgroundOverlay;
5403
5546
  exports.getTheme = getTheme;
5547
+ exports.mixColor = mixColor;
5404
5548
  exports.rippleStyle = rippleStyle;
5405
5549
  exports.sx = sx;
5406
5550
  exports.theme = theme;