@matbea-ui/matbea-ui 0.2.0-dev.709240 → 0.2.0-dev.937765

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.
@@ -167,6 +167,7 @@ const StyledButton = styled.button `
167
167
  const IconSlot = styled.span `
168
168
  display: inline-flex;
169
169
  align-items: center;
170
+ width: max-content;
170
171
  justify-content: center;
171
172
  line-height: 0;
172
173
  ${({ $iconOnly }) => $iconOnly &&
@@ -574,8 +575,14 @@ const StyledTypography = styled.styled.span `
574
575
 
575
576
  const Typography = ({ as = "span", forwardedAs, variant = "body-m-semibold", color, align, uppercase = false, truncate = false, inline = false, children, ...rest }) => (jsxRuntime.jsx(StyledTypography, { as: as, forwardedAs: forwardedAs, "$variant": variant, "$color": color, "$align": align, "$uppercase": uppercase, "$truncate": truncate, "$inline": inline, ...rest, children: children }));
576
577
 
578
+ const IconStyled = styled.styled.svg `
579
+ display: inline-flex;
580
+ width: ${({ $width }) => $width}px;
581
+ height: ${({ $height }) => $height}px;
582
+ `;
583
+
577
584
  const Icon = ({ size = 24, children, ...rest }) => {
578
- return (jsxRuntime.jsx("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...rest, children: children }));
585
+ return (jsxRuntime.jsx(IconStyled, { "$height": size, "$width": size, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...rest, children: children }));
579
586
  };
580
587
 
581
588
  const LogoAbankIcon = (props) => (jsxRuntime.jsxs(Icon, { ...props, children: [jsxRuntime.jsxs("g", { "clip-path": "url(#clip0_348_2416)", children: [jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "12", fill: "#F5F5F5" }), jsxRuntime.jsx("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M11.2589 7.98674C7.53128 8.31962 6.81257 6.30884 6.3125 3.00224C10.4015 2.97341 12.2754 3.18291 12.1754 5.99132C12.1172 6.06513 12.0622 6.1397 12.0098 6.2162C11.4594 5.19946 10.2518 4.30843 7.75728 3.83024C9.57266 4.44681 10.9399 5.69495 11.3993 7.37362C11.3396 7.57351 11.2938 7.77724 11.2589 7.98674ZM11.6388 9.04691C11.7904 7.71881 12.2529 6.60021 13.4042 5.75569C13.9803 5.33323 14.7726 5.87101 13.9469 6.35919C12.9495 6.94771 11.9955 8.32385 11.8459 9.03922C11.7783 9.05701 11.7076 9.05963 11.6388 9.04691Z", fill: "#007F2D" }), jsxRuntime.jsx("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M11.1018 9.30787C11.3545 9.34554 11.565 9.36169 11.7693 9.35131C11.9775 9.33977 12.1888 9.30057 12.4427 9.2283C13.9274 8.80469 15.8889 9.07146 17.153 9.96942C18.7727 11.1192 19.2064 13.078 18.9161 15.0273C18.5672 17.3706 16.2785 21.9634 13.3339 20.8202C12.9703 20.6795 12.6144 20.5638 12.2178 20.5773C11.803 20.5911 11.6383 20.7249 11.0328 20.8717C7.71099 21.6751 5.31607 17.1969 5.0389 14.5514C4.86058 12.8447 5.28079 11.1964 6.6023 10.1797C7.7513 9.2948 9.69848 8.96729 11.1018 9.30787Z", fill: "#65B32E" })] }), jsxRuntime.jsx("defs", { children: jsxRuntime.jsx("clipPath", { id: "clip0_348_2416", children: jsxRuntime.jsx("rect", { width: "24", height: "24", fill: "white" }) }) })] }));
@@ -928,14 +935,13 @@ const Informer = ({ label, description, type, icon, }) => {
928
935
  const Wrapper$1 = styled.styled.div `
929
936
  display: flex;
930
937
  flex-direction: column;
931
- gap: 4px;
938
+ gap: 12px;
932
939
  width: 100%;
933
940
  `;
934
941
  const Label$2 = styled.styled(Typography).attrs({
935
- variant: "form-input",
936
942
  forwardedAs: "label",
937
943
  }) `
938
- color: ${({ theme }) => theme.colors.primary.darkBlue};
944
+ color: ${({ theme, $color }) => $color || theme.colors.primary.darkBlue};
939
945
  `;
940
946
  const FieldContainer$1 = styled.styled.div `
941
947
  display: flex;
@@ -1008,7 +1014,7 @@ const ErrorText$1 = styled.styled.span `
1008
1014
  color: ${({ theme }) => theme.colors.accent.red};
1009
1015
  `;
1010
1016
 
1011
- const TextField = react.forwardRef(({ value, defaultValue, placeholder = "Text", label, error, disabled = false, icon, action, name, type = "text", onChange, onFocus, onBlur, className, }, ref) => {
1017
+ const TextField = react.forwardRef(({ value, defaultValue, placeholder = "Text", label, error, disabled = false, icon, action, name, type = "text", onChange, onFocus, onBlur, className, labelVariant, labelColor, }, ref) => {
1012
1018
  const [focused, setFocused] = react.useState(false);
1013
1019
  const hasError = Boolean(error);
1014
1020
  const handleFocus = (evt) => {
@@ -1019,7 +1025,7 @@ const TextField = react.forwardRef(({ value, defaultValue, placeholder = "Text",
1019
1025
  setFocused(false);
1020
1026
  onBlur?.(evt);
1021
1027
  };
1022
- return (jsxRuntime.jsxs(Wrapper$1, { className: className, children: [label && jsxRuntime.jsx(Label$2, { children: label }), jsxRuntime.jsxs(FieldContainer$1, { "$hasError": hasError, "$disabled": disabled, "data-state": hasError ? "error" : focused ? "active" : undefined, children: [icon && jsxRuntime.jsx(LeadingIcon$1, { children: icon }), jsxRuntime.jsx(Input, { ref: ref, type: type, name: name, value: value, defaultValue: defaultValue, placeholder: placeholder, disabled: disabled, onChange: onChange, onFocus: handleFocus, onBlur: handleBlur }), action && jsxRuntime.jsx(ActionSlot, { children: action })] }), error && jsxRuntime.jsx(ErrorText$1, { children: error })] }));
1028
+ return (jsxRuntime.jsxs(Wrapper$1, { className: className, children: [label && (jsxRuntime.jsx(Label$2, { variant: labelVariant || "form-input", "$color": labelColor, children: label })), jsxRuntime.jsxs(FieldContainer$1, { "$hasError": hasError, "$disabled": disabled, "data-state": hasError ? "error" : focused ? "active" : undefined, children: [icon && jsxRuntime.jsx(LeadingIcon$1, { children: icon }), jsxRuntime.jsx(Input, { ref: ref, type: type, name: name, value: value, defaultValue: defaultValue, placeholder: placeholder, disabled: disabled, onChange: onChange, onFocus: handleFocus, onBlur: handleBlur }), action && jsxRuntime.jsx(ActionSlot, { children: action })] }), error && jsxRuntime.jsx(ErrorText$1, { children: error })] }));
1023
1029
  });
1024
1030
  TextField.displayName = "TextField";
1025
1031
 
@@ -2161,7 +2167,10 @@ const ButtonSwitcher = ({ active, leftButtonLabel, rightButtonLabel, }) => {
2161
2167
  return (jsxRuntime.jsxs(ButtonSwitcherStyled, { children: [jsxRuntime.jsx(ButtonSwitcherItem, { "data-active": !active, children: leftButtonLabel }), jsxRuntime.jsx(ButtonSwitcherItem, { "data-active": active, children: rightButtonLabel })] }));
2162
2168
  };
2163
2169
 
2164
- const AvatarStyled = styled.styled.div `
2170
+ const AvatarStyled = styled.styled(Typography).attrs({
2171
+ forwardedAs: "div",
2172
+ variant: "avatar-basic",
2173
+ }) `
2165
2174
  display: flex;
2166
2175
  align-items: center;
2167
2176
  justify-content: center;
@@ -2170,6 +2179,7 @@ const AvatarStyled = styled.styled.div `
2170
2179
  width: 40px;
2171
2180
  height: 40px;
2172
2181
  border-radius: 50%;
2182
+ color: ${({ theme }) => theme.colors.primary.white};
2173
2183
  background-color: ${({ theme, $color }) => {
2174
2184
  if (!$color)
2175
2185
  return theme.colors.primary.hoverBlue;
@@ -2694,46 +2704,197 @@ const StyledProvider = ({ children }) => {
2694
2704
  return (jsxRuntime.jsx(styled.StyleSheetManager, { stylisPlugins: [adaptiveScalePlugin], children: children }));
2695
2705
  };
2696
2706
 
2697
- const breakpoints = {
2698
- mobile: { max: 576, scale: 0.7 },
2699
- tablet: { min: 577, max: 768, scale: 0.85 },
2700
- desktop: { min: 769, max: 1024, scale: 1 },
2701
- wide: { min: 1025, scale: 1.15 },
2702
- };
2703
2707
  const GlobalStyles = styled.createGlobalStyle `
2704
2708
  :root {
2705
2709
  --adaptive-scale: 1;
2706
2710
  --adaptive-vh: 1vh;
2707
2711
  }
2708
2712
 
2709
- /* Mobile */
2710
- @media (max-width: ${breakpoints.mobile.max}px) {
2713
+ /* ============ MOBILE ============ */
2714
+
2715
+ /* Ultra small (iPhone SE 1st gen, старые Android) */
2716
+ @media (max-width: 320px) {
2717
+ :root {
2718
+ --adaptive-scale: 0.75;
2719
+ }
2720
+ }
2721
+
2722
+ /* Small mobile */
2723
+ @media (min-width: 321px) and (max-width: 359px) {
2724
+ :root {
2725
+ --adaptive-scale: 0.82;
2726
+ }
2727
+ }
2728
+
2729
+ /* Medium mobile */
2730
+ @media (min-width: 360px) and (max-width: 374px) {
2731
+ :root {
2732
+ --adaptive-scale: 0.9;
2733
+ }
2734
+ }
2735
+
2736
+ /* Mobile base (iPhone X/11/12/13 mini) */
2737
+ @media (min-width: 375px) and (max-width: 389px) {
2738
+ :root {
2739
+ --adaptive-scale: 1;
2740
+ }
2741
+ }
2742
+
2743
+ /* Large mobile (iPhone 12/13/14/15) */
2744
+ @media (min-width: 390px) and (max-width: 429px) {
2745
+ :root {
2746
+ --adaptive-scale: 1;
2747
+ }
2748
+ }
2749
+
2750
+ /* Extra large mobile (iPhone 14 Plus/Max) */
2751
+ @media (min-width: 430px) and (max-width: 576px) {
2752
+ :root {
2753
+ --adaptive-scale: 1;
2754
+ }
2755
+ }
2756
+
2757
+ /* ============ TABLET ============ */
2758
+
2759
+ /* Small tablet / Large phone landscape */
2760
+ @media (min-width: 577px) and (max-width: 639px) {
2761
+ :root {
2762
+ --adaptive-scale: 0.75;
2763
+ }
2764
+ }
2765
+
2766
+ /* Medium small tablet */
2767
+ @media (min-width: 640px) and (max-width: 719px) {
2768
+ :root {
2769
+ --adaptive-scale: 0.83;
2770
+ }
2771
+ }
2772
+
2773
+ /* Medium tablet */
2774
+ @media (min-width: 720px) and (max-width: 767px) {
2711
2775
  :root {
2712
- --adaptive-scale: ${breakpoints.mobile.scale};
2776
+ --adaptive-scale: 0.9;
2713
2777
  }
2714
2778
  }
2715
2779
 
2716
- /* Tablet */
2717
- @media (min-width: ${breakpoints.tablet.min}px) and (max-width: ${breakpoints.tablet.max}px) {
2780
+ /* Tablet base (iPad Mini/Air portrait) */
2781
+ @media (min-width: 768px) and (max-width: 833px) {
2718
2782
  :root {
2719
- --adaptive-scale: ${breakpoints.tablet.scale};
2783
+ --adaptive-scale: 1;
2720
2784
  }
2721
2785
  }
2722
2786
 
2723
- /* Desktop */
2724
- @media (min-width: ${breakpoints.desktop.min}px) and (max-width: ${breakpoints.desktop.max}px) {
2787
+ /* Large tablet (iPad Pro 11" portrait) */
2788
+ @media (min-width: 834px) and (max-width: 899px) {
2725
2789
  :root {
2726
- --adaptive-scale: ${breakpoints.desktop.scale};
2790
+ --adaptive-scale: 1;
2727
2791
  }
2728
2792
  }
2729
2793
 
2730
- /* Wide */
2731
- @media (min-width: ${breakpoints.wide.min}px) {
2794
+ /* Extra large tablet */
2795
+ @media (min-width: 900px) and (max-width: 1023px) {
2732
2796
  :root {
2733
- --adaptive-scale: ${breakpoints.wide.scale};
2797
+ --adaptive-scale: 1;
2734
2798
  }
2735
2799
  }
2736
2800
 
2801
+ /* Tablet landscape (iPad Pro landscape) */
2802
+ @media (min-width: 1024px) and (max-width: 1100px) {
2803
+ :root {
2804
+ --adaptive-scale: 0.71;
2805
+ }
2806
+ }
2807
+
2808
+ /* ============ DESKTOP ============ */
2809
+
2810
+ /* Small desktop / Laptop 13" */
2811
+ @media (min-width: 1101px) and (max-width: 1279px) {
2812
+ :root {
2813
+ --adaptive-scale: 0.77;
2814
+ }
2815
+ }
2816
+
2817
+ /* Medium desktop / Laptop 14" */
2818
+ @media (min-width: 1280px) and (max-width: 1365px) {
2819
+ :root {
2820
+ --adaptive-scale: 0.85;
2821
+ }
2822
+ }
2823
+
2824
+ /* Large laptop 15" */
2825
+ @media (min-width: 1366px) and (max-width: 1439px) {
2826
+ :root {
2827
+ --adaptive-scale: 0.92;
2828
+ }
2829
+ }
2830
+
2831
+ /* Desktop base (MacBook Pro 16", gaming monitors) */
2832
+ @media (min-width: 1440px) and (max-width: 1599px) {
2833
+ :root {
2834
+ --adaptive-scale: 1;
2835
+ }
2836
+ }
2837
+
2838
+ /* Large desktop */
2839
+ @media (min-width: 1600px) and (max-width: 1799px) {
2840
+ :root {
2841
+ --adaptive-scale: 1;
2842
+ }
2843
+ }
2844
+
2845
+ /* Extra large desktop */
2846
+ @media (min-width: 1800px) and (max-width: 1919px) {
2847
+ :root {
2848
+ --adaptive-scale: 1;
2849
+ }
2850
+ }
2851
+
2852
+ /* ============ WIDE (с увеличением) ============ */
2853
+
2854
+ /* Full HD base (1920x1080) */
2855
+ @media (min-width: 1920px) and (max-width: 2047px) {
2856
+ :root {
2857
+ --adaptive-scale: 1;
2858
+ }
2859
+ }
2860
+
2861
+ /* 2K */
2862
+ @media (min-width: 2048px) and (max-width: 2559px) {
2863
+ :root {
2864
+ --adaptive-scale: 1.1;
2865
+ }
2866
+ }
2867
+
2868
+ /* QHD / 2.5K */
2869
+ @media (min-width: 2560px) and (max-width: 3199px) {
2870
+ :root {
2871
+ --adaptive-scale: 1.25;
2872
+ }
2873
+ }
2874
+
2875
+ /* 3K */
2876
+ @media (min-width: 3200px) and (max-width: 3839px) {
2877
+ :root {
2878
+ --adaptive-scale: 1.4;
2879
+ }
2880
+ }
2881
+
2882
+ /* 4K (3840x2160) */
2883
+ @media (min-width: 3840px) and (max-width: 5119px) {
2884
+ :root {
2885
+ --adaptive-scale: 1.6;
2886
+ }
2887
+ }
2888
+
2889
+ /* 5K и выше */
2890
+ @media (min-width: 5120px) {
2891
+ :root {
2892
+ --adaptive-scale: 2;
2893
+ }
2894
+ }
2895
+
2896
+ /* ============ ДОПОЛНИТЕЛЬНО ============ */
2897
+
2737
2898
  /* Фикс для мобильных браузеров (100vh с учетом адресной строки) */
2738
2899
  @supports (-webkit-touch-callout: none) {
2739
2900
  :root {
@@ -2942,7 +3103,6 @@ exports.ZcashSmallIcon = ZcashSmallIcon;
2942
3103
  exports.ZilliqaIcon = ZilliqaIcon;
2943
3104
  exports.ZrxIcon = ZrxIcon;
2944
3105
  exports.adaptiveScalePlugin = adaptiveScalePlugin;
2945
- exports.breakpoints = breakpoints;
2946
3106
  exports.copyToClipboard = copyToClipboard;
2947
3107
  exports.createAdaptiveScalePlugin = createAdaptiveScalePlugin;
2948
3108
  exports.formatCardNumber = formatCardNumber;