react-asc 25.3.1 → 25.4.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.
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
+ import { TooltipPlacement } from './tooltip.enums';
2
3
  export interface ITooltipProps extends React.ComponentProps<'div'> {
3
- placement?: 'top' | 'bottom' | 'right' | 'left';
4
+ placement?: TooltipPlacement;
4
5
  text?: string;
5
6
  delay?: number;
6
7
  isOpen?: boolean;
@@ -0,0 +1,6 @@
1
+ export declare enum TooltipPlacement {
2
+ top = "top",
3
+ bottom = "bottom",
4
+ right = "right",
5
+ left = "left"
6
+ }
package/index.es.js CHANGED
@@ -2022,12 +2022,20 @@ const NumberSelect = (props) => {
2022
2022
  return (React.createElement(Select, { id: id, name: name, className: getCssClasses(), options: numberOptions, onChange: (e) => handleOnChange(parseInt(e)), disabled: disabled, value: newValue.toString() }));
2023
2023
  };
2024
2024
 
2025
- var css_248z$l = ".Tooltip-module_tooltipContainer__9ZWx3 {\n display: inline;\n}\n\n.Tooltip-module_tooltip__x5HOu {\n background-color: #333;\n color: white;\n padding: 5px 10px;\n border-radius: 4px;\n font-size: 13px;\n position: absolute;\n left: -1000000px;\n z-index: 1100;\n}\n.Tooltip-module_tooltip__x5HOu #Tooltip-module_arrow__B6lfe,\n.Tooltip-module_tooltip__x5HOu #Tooltip-module_arrow__B6lfe::before {\n position: absolute;\n width: 8px;\n height: 8px;\n z-index: -1;\n}\n.Tooltip-module_tooltip__x5HOu #Tooltip-module_arrow__B6lfe::before {\n content: \"\";\n transform: rotate(45deg);\n background: #333;\n}\n.Tooltip-module_tooltip__x5HOu[data-popper-placement^=top] > #Tooltip-module_arrow__B6lfe {\n bottom: -4px;\n}\n.Tooltip-module_tooltip__x5HOu[data-popper-placement^=bottom] > #Tooltip-module_arrow__B6lfe {\n top: -4px;\n}\n.Tooltip-module_tooltip__x5HOu[data-popper-placement^=left] > #Tooltip-module_arrow__B6lfe {\n right: -4px;\n}\n.Tooltip-module_tooltip__x5HOu[data-popper-placement^=right] > #Tooltip-module_arrow__B6lfe {\n left: -4px;\n}";
2026
- var styles$l = {"tooltipContainer":"Tooltip-module_tooltipContainer__9ZWx3","tooltip":"Tooltip-module_tooltip__x5HOu","arrow":"Tooltip-module_arrow__B6lfe"};
2025
+ var css_248z$l = ".Tooltip-module_tooltipContainer__9ZWx3 {\n display: inline;\n}\n\n.Tooltip-module_tooltip__x5HOu {\n background-color: #333;\n color: white;\n padding: 5px 10px;\n border-radius: 4px;\n font-size: 13px;\n position: absolute;\n left: -1000000px;\n z-index: 1100;\n}\n\n.Tooltip-module_arrow__B6lfe, .Tooltip-module_arrow__B6lfe::before {\n position: absolute;\n width: 8px;\n height: 8px;\n z-index: -1;\n}\n.Tooltip-module_arrow__B6lfe::before {\n content: \"\";\n transform: rotate(45deg);\n background: #333;\n}\n.Tooltip-module_arrow__B6lfe.Tooltip-module_placement-top__h5aww {\n bottom: -4px;\n}\n.Tooltip-module_arrow__B6lfe.Tooltip-module_placement-bottom__dYc5B {\n top: -4px;\n}\n.Tooltip-module_arrow__B6lfe.Tooltip-module_placement-left__8-2Jw {\n right: -4px;\n}\n.Tooltip-module_arrow__B6lfe.Tooltip-module_placement-right__v4h4z {\n left: -4px;\n}";
2026
+ var styles$l = {"tooltipContainer":"Tooltip-module_tooltipContainer__9ZWx3","tooltip":"Tooltip-module_tooltip__x5HOu","arrow":"Tooltip-module_arrow__B6lfe","placement-top":"Tooltip-module_placement-top__h5aww","placement-bottom":"Tooltip-module_placement-bottom__dYc5B","placement-left":"Tooltip-module_placement-left__8-2Jw","placement-right":"Tooltip-module_placement-right__v4h4z"};
2027
2027
  styleInject(css_248z$l);
2028
2028
 
2029
+ var TooltipPlacement;
2030
+ (function (TooltipPlacement) {
2031
+ TooltipPlacement["top"] = "top";
2032
+ TooltipPlacement["bottom"] = "bottom";
2033
+ TooltipPlacement["right"] = "right";
2034
+ TooltipPlacement["left"] = "left";
2035
+ })(TooltipPlacement || (TooltipPlacement = {}));
2036
+
2029
2037
  const Tooltip = (props) => {
2030
- const { children, text, placement = 'bottom', isOpen = false, isShowClose = false, delay = 0 } = props;
2038
+ const { children, text, placement = TooltipPlacement.bottom, isOpen = false, isShowClose = false, delay = 0 } = props;
2031
2039
  const [popperInstance, setPopperInstance] = useState();
2032
2040
  const [debounce, setDebounce] = useState(delay);
2033
2041
  const [open, setOpen] = useState(isOpen);
@@ -2047,21 +2055,27 @@ const Tooltip = (props) => {
2047
2055
  }, [delay]);
2048
2056
  useEffect(() => {
2049
2057
  if (open === true && refChild && refChild.current && refTooltip && refTooltip.current) {
2050
- const popperInstance = createPopper(refChild.current, refTooltip.current, {
2051
- placement: placement,
2052
- modifiers: [
2053
- {
2054
- name: 'offset',
2055
- options: { offset: [0, 8] }
2056
- },
2057
- ]
2058
- });
2059
- setPopperInstance(popperInstance);
2058
+ showTooltip();
2060
2059
  }
2061
2060
  else {
2062
- popperInstance?.destroy();
2061
+ hideTooltip();
2063
2062
  }
2064
2063
  }, [open]);
2064
+ const showTooltip = () => {
2065
+ const popperInstance = createPopper(refChild.current, refTooltip.current, {
2066
+ placement: placement,
2067
+ modifiers: [
2068
+ {
2069
+ name: 'offset',
2070
+ options: { offset: [0, 8] }
2071
+ },
2072
+ ]
2073
+ });
2074
+ setPopperInstance(popperInstance);
2075
+ };
2076
+ const hideTooltip = () => {
2077
+ popperInstance?.destroy();
2078
+ };
2065
2079
  const handleMouseOver = () => {
2066
2080
  setShow(true);
2067
2081
  };
@@ -2078,18 +2092,24 @@ const Tooltip = (props) => {
2078
2092
  setShow(false);
2079
2093
  };
2080
2094
  useOnDestroy(() => {
2081
- popperInstance?.destroy();
2095
+ hideTooltip();
2082
2096
  });
2097
+ const getArrowStyles = () => {
2098
+ const cssClasses = [];
2099
+ cssClasses.push(styles$l.arrow);
2100
+ placement && cssClasses.push(styles$l[`placement-${placement}`]);
2101
+ return cssClasses.filter(css => css).join(' ');
2102
+ };
2083
2103
  return (React.createElement(React.Fragment, null,
2084
2104
  React.createElement("div", { ref: refChild, className: styles$l.tooltipContainer, onMouseOver: handleMouseOver, onMouseLeave: handleMouseLeave, onFocus: handleFocus, onBlur: handleBlur }, children),
2085
2105
  open && text &&
2086
- React.createElement("div", { className: styles$l.tooltip, ref: refTooltip, id: "tooltip" },
2106
+ React.createElement("div", { className: styles$l.tooltip, ref: refTooltip },
2087
2107
  React.createElement("div", { className: 'd-flex align-items-center' },
2088
2108
  text,
2089
2109
  showClose &&
2090
2110
  React.createElement(Icon, { className: 'ml-1', onClick: handleClickClose },
2091
2111
  React.createElement(TimesSolidIcon, null))),
2092
- React.createElement("div", { id: "arrow", "data-popper-arrow": true }))));
2112
+ React.createElement("div", { className: getArrowStyles(), "data-popper-arrow": true }))));
2093
2113
  };
2094
2114
 
2095
2115
  var css_248z$k = ":root {\n --progress-height: 0.5rem;\n --progress-bg: #e9ecef;\n --progress-box-shadow: var(--shadow);\n --progress-bar-color: #fff;\n --progress-bar-bg: var(--primary);\n --progress-bar-transition: width 0.6s ease;\n}\n\n.ProgressBar-module_progressBarContainer__vtbBw {\n display: flex;\n height: var(--progress-height);\n overflow: hidden;\n background-color: var(--progress-bg);\n}\n\n.ProgressBar-module_progressBar__hr8I8 {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: var(--progress-bar-color);\n text-align: center;\n white-space: nowrap;\n transition: var(--progress-bar-transition);\n background-color: var(--progress-bar-bg);\n}\n.ProgressBar-module_progressBar__hr8I8.ProgressBar-module_indeterminate__WcQdD {\n width: 100%;\n height: 100%;\n animation: ProgressBar-module_indeterminateAnimation__SlBFt 1s infinite linear;\n transform-origin: 0% 50%;\n}\n\n@keyframes ProgressBar-module_indeterminateAnimation__SlBFt {\n 0% {\n transform: translateX(0) scaleX(0);\n }\n 40% {\n transform: translateX(0) scaleX(0.4);\n }\n 100% {\n transform: translateX(100%) scaleX(0.5);\n }\n}";
package/index.js CHANGED
@@ -2031,12 +2031,20 @@ const NumberSelect = (props) => {
2031
2031
  return (React__default["default"].createElement(Select, { id: id, name: name, className: getCssClasses(), options: numberOptions, onChange: (e) => handleOnChange(parseInt(e)), disabled: disabled, value: newValue.toString() }));
2032
2032
  };
2033
2033
 
2034
- var css_248z$l = ".Tooltip-module_tooltipContainer__9ZWx3 {\n display: inline;\n}\n\n.Tooltip-module_tooltip__x5HOu {\n background-color: #333;\n color: white;\n padding: 5px 10px;\n border-radius: 4px;\n font-size: 13px;\n position: absolute;\n left: -1000000px;\n z-index: 1100;\n}\n.Tooltip-module_tooltip__x5HOu #Tooltip-module_arrow__B6lfe,\n.Tooltip-module_tooltip__x5HOu #Tooltip-module_arrow__B6lfe::before {\n position: absolute;\n width: 8px;\n height: 8px;\n z-index: -1;\n}\n.Tooltip-module_tooltip__x5HOu #Tooltip-module_arrow__B6lfe::before {\n content: \"\";\n transform: rotate(45deg);\n background: #333;\n}\n.Tooltip-module_tooltip__x5HOu[data-popper-placement^=top] > #Tooltip-module_arrow__B6lfe {\n bottom: -4px;\n}\n.Tooltip-module_tooltip__x5HOu[data-popper-placement^=bottom] > #Tooltip-module_arrow__B6lfe {\n top: -4px;\n}\n.Tooltip-module_tooltip__x5HOu[data-popper-placement^=left] > #Tooltip-module_arrow__B6lfe {\n right: -4px;\n}\n.Tooltip-module_tooltip__x5HOu[data-popper-placement^=right] > #Tooltip-module_arrow__B6lfe {\n left: -4px;\n}";
2035
- var styles$l = {"tooltipContainer":"Tooltip-module_tooltipContainer__9ZWx3","tooltip":"Tooltip-module_tooltip__x5HOu","arrow":"Tooltip-module_arrow__B6lfe"};
2034
+ var css_248z$l = ".Tooltip-module_tooltipContainer__9ZWx3 {\n display: inline;\n}\n\n.Tooltip-module_tooltip__x5HOu {\n background-color: #333;\n color: white;\n padding: 5px 10px;\n border-radius: 4px;\n font-size: 13px;\n position: absolute;\n left: -1000000px;\n z-index: 1100;\n}\n\n.Tooltip-module_arrow__B6lfe, .Tooltip-module_arrow__B6lfe::before {\n position: absolute;\n width: 8px;\n height: 8px;\n z-index: -1;\n}\n.Tooltip-module_arrow__B6lfe::before {\n content: \"\";\n transform: rotate(45deg);\n background: #333;\n}\n.Tooltip-module_arrow__B6lfe.Tooltip-module_placement-top__h5aww {\n bottom: -4px;\n}\n.Tooltip-module_arrow__B6lfe.Tooltip-module_placement-bottom__dYc5B {\n top: -4px;\n}\n.Tooltip-module_arrow__B6lfe.Tooltip-module_placement-left__8-2Jw {\n right: -4px;\n}\n.Tooltip-module_arrow__B6lfe.Tooltip-module_placement-right__v4h4z {\n left: -4px;\n}";
2035
+ var styles$l = {"tooltipContainer":"Tooltip-module_tooltipContainer__9ZWx3","tooltip":"Tooltip-module_tooltip__x5HOu","arrow":"Tooltip-module_arrow__B6lfe","placement-top":"Tooltip-module_placement-top__h5aww","placement-bottom":"Tooltip-module_placement-bottom__dYc5B","placement-left":"Tooltip-module_placement-left__8-2Jw","placement-right":"Tooltip-module_placement-right__v4h4z"};
2036
2036
  styleInject(css_248z$l);
2037
2037
 
2038
+ var TooltipPlacement;
2039
+ (function (TooltipPlacement) {
2040
+ TooltipPlacement["top"] = "top";
2041
+ TooltipPlacement["bottom"] = "bottom";
2042
+ TooltipPlacement["right"] = "right";
2043
+ TooltipPlacement["left"] = "left";
2044
+ })(TooltipPlacement || (TooltipPlacement = {}));
2045
+
2038
2046
  const Tooltip = (props) => {
2039
- const { children, text, placement = 'bottom', isOpen = false, isShowClose = false, delay = 0 } = props;
2047
+ const { children, text, placement = TooltipPlacement.bottom, isOpen = false, isShowClose = false, delay = 0 } = props;
2040
2048
  const [popperInstance, setPopperInstance] = React.useState();
2041
2049
  const [debounce, setDebounce] = React.useState(delay);
2042
2050
  const [open, setOpen] = React.useState(isOpen);
@@ -2056,21 +2064,27 @@ const Tooltip = (props) => {
2056
2064
  }, [delay]);
2057
2065
  React.useEffect(() => {
2058
2066
  if (open === true && refChild && refChild.current && refTooltip && refTooltip.current) {
2059
- const popperInstance = core.createPopper(refChild.current, refTooltip.current, {
2060
- placement: placement,
2061
- modifiers: [
2062
- {
2063
- name: 'offset',
2064
- options: { offset: [0, 8] }
2065
- },
2066
- ]
2067
- });
2068
- setPopperInstance(popperInstance);
2067
+ showTooltip();
2069
2068
  }
2070
2069
  else {
2071
- popperInstance?.destroy();
2070
+ hideTooltip();
2072
2071
  }
2073
2072
  }, [open]);
2073
+ const showTooltip = () => {
2074
+ const popperInstance = core.createPopper(refChild.current, refTooltip.current, {
2075
+ placement: placement,
2076
+ modifiers: [
2077
+ {
2078
+ name: 'offset',
2079
+ options: { offset: [0, 8] }
2080
+ },
2081
+ ]
2082
+ });
2083
+ setPopperInstance(popperInstance);
2084
+ };
2085
+ const hideTooltip = () => {
2086
+ popperInstance?.destroy();
2087
+ };
2074
2088
  const handleMouseOver = () => {
2075
2089
  setShow(true);
2076
2090
  };
@@ -2087,18 +2101,24 @@ const Tooltip = (props) => {
2087
2101
  setShow(false);
2088
2102
  };
2089
2103
  useOnDestroy(() => {
2090
- popperInstance?.destroy();
2104
+ hideTooltip();
2091
2105
  });
2106
+ const getArrowStyles = () => {
2107
+ const cssClasses = [];
2108
+ cssClasses.push(styles$l.arrow);
2109
+ placement && cssClasses.push(styles$l[`placement-${placement}`]);
2110
+ return cssClasses.filter(css => css).join(' ');
2111
+ };
2092
2112
  return (React__default["default"].createElement(React__default["default"].Fragment, null,
2093
2113
  React__default["default"].createElement("div", { ref: refChild, className: styles$l.tooltipContainer, onMouseOver: handleMouseOver, onMouseLeave: handleMouseLeave, onFocus: handleFocus, onBlur: handleBlur }, children),
2094
2114
  open && text &&
2095
- React__default["default"].createElement("div", { className: styles$l.tooltip, ref: refTooltip, id: "tooltip" },
2115
+ React__default["default"].createElement("div", { className: styles$l.tooltip, ref: refTooltip },
2096
2116
  React__default["default"].createElement("div", { className: 'd-flex align-items-center' },
2097
2117
  text,
2098
2118
  showClose &&
2099
2119
  React__default["default"].createElement(Icon, { className: 'ml-1', onClick: handleClickClose },
2100
2120
  React__default["default"].createElement(TimesSolidIcon, null))),
2101
- React__default["default"].createElement("div", { id: "arrow", "data-popper-arrow": true }))));
2121
+ React__default["default"].createElement("div", { className: getArrowStyles(), "data-popper-arrow": true }))));
2102
2122
  };
2103
2123
 
2104
2124
  var css_248z$k = ":root {\n --progress-height: 0.5rem;\n --progress-bg: #e9ecef;\n --progress-box-shadow: var(--shadow);\n --progress-bar-color: #fff;\n --progress-bar-bg: var(--primary);\n --progress-bar-transition: width 0.6s ease;\n}\n\n.ProgressBar-module_progressBarContainer__vtbBw {\n display: flex;\n height: var(--progress-height);\n overflow: hidden;\n background-color: var(--progress-bg);\n}\n\n.ProgressBar-module_progressBar__hr8I8 {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: var(--progress-bar-color);\n text-align: center;\n white-space: nowrap;\n transition: var(--progress-bar-transition);\n background-color: var(--progress-bar-bg);\n}\n.ProgressBar-module_progressBar__hr8I8.ProgressBar-module_indeterminate__WcQdD {\n width: 100%;\n height: 100%;\n animation: ProgressBar-module_indeterminateAnimation__SlBFt 1s infinite linear;\n transform-origin: 0% 50%;\n}\n\n@keyframes ProgressBar-module_indeterminateAnimation__SlBFt {\n 0% {\n transform: translateX(0) scaleX(0);\n }\n 40% {\n transform: translateX(0) scaleX(0.4);\n }\n 100% {\n transform: translateX(100%) scaleX(0.5);\n }\n}";
package/package.json CHANGED
@@ -1,28 +1,28 @@
1
- {
2
- "name": "react-asc",
3
- "version": "25.3.1",
4
- "description": "handcrafted react components",
5
- "main": "index.js",
6
- "module": "index.es.js",
7
- "jsnext:main": "index.es.js",
8
- "author": "Ardian Shala",
9
- "homepage": "https://react-asc.netlify.app",
10
- "license": "MIT",
11
- "dependencies": {
12
- "@popperjs/core": "2.11.5",
13
- "react": "18.2.0",
14
- "react-dom": "18.2.0",
15
- "modern-normalize": "1.1.0"
16
- },
17
- "scripts": {
18
- "pub": "npm publish --access public"
19
- },
20
- "keywords": [
21
- "react",
22
- "component library",
23
- "ui library",
24
- "components",
25
- "library",
26
- "material"
27
- ]
28
- }
1
+ {
2
+ "name": "react-asc",
3
+ "version": "25.4.1",
4
+ "description": "handcrafted react components",
5
+ "main": "index.js",
6
+ "module": "index.es.js",
7
+ "jsnext:main": "index.es.js",
8
+ "author": "Ardian Shala",
9
+ "homepage": "https://react-asc.netlify.app",
10
+ "license": "MIT",
11
+ "dependencies": {
12
+ "@popperjs/core": "2.11.5",
13
+ "react": "18.2.0",
14
+ "react-dom": "18.2.0",
15
+ "modern-normalize": "1.1.0"
16
+ },
17
+ "scripts": {
18
+ "pub": "npm publish --access public"
19
+ },
20
+ "keywords": [
21
+ "react",
22
+ "component library",
23
+ "ui library",
24
+ "components",
25
+ "library",
26
+ "material"
27
+ ]
28
+ }
package/react-asc.scss CHANGED
@@ -1,354 +1,354 @@
1
- :root {
2
- --breakpoint-xs: 0;
3
- --breakpoint-sm: 576px;
4
- --breakpoint-md: 768px;
5
- --breakpoint-lg: 992px;
6
- --breakpoint-xl: 1200px;
7
- --breakpoint-xxl: 1400px;
8
- }
9
-
10
- :root {
11
- --buttonMinWidth: 62px;
12
- --buttonPadding: 11px 15px;
13
- }
14
-
15
- :root {
16
- --primary-light: #6573c3;
17
- --primary: #3f51b5;
18
- --primary-dark: #2c387e;
19
- --primary-contrast-text: #fff;
20
- --primary-highlight: #d6dbf7;
21
-
22
- --secondary-light: #e5e7eb;
23
- --secondary: #8f8f8f;
24
- --secondary-dark: #9c9da1;
25
- --secondary-contrast-text: #fff;
26
- --secondary-highlight: rgb(233, 233, 233);
27
-
28
- --accent-light: #fd96b8;
29
- --accent: #ff4081;
30
- --accent-dark: #fd2c72;
31
- --accent-contrast-text: #fff;
32
- --accent-highlight: #fca9c5;
33
-
34
- // rename!?
35
- --light-light: #ffffff;
36
- --light: #f8f9fa;
37
- --light-dark: #ebebeb;
38
- --light-contrast-text: #212529;
39
- --light-highlight: #f8f9fa;
40
-
41
- --dark-light: #616468;
42
- --dark: #343a40;
43
- --dark-dark: #343a40;
44
- --dark-contrast-text: #fff;
45
- --dark-highlight: #5e6164;
46
-
47
- --white: #fff;
48
-
49
- --bodyBg: white;
50
- --bodyColor: #212529;
51
-
52
- --highlight: rgba(204, 216, 224, 0.2); // ???
53
-
54
- --shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14),
55
- 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
56
-
57
- --shadowColor: rgba(0, 0, 0, 0.12);
58
-
59
- --muted: #6c757d !important;
60
- }
61
-
62
- :root {
63
- --fontFamily: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans",
64
- sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
65
- --fontSize: 16px;
66
- --fontWeight: 400;
67
-
68
- --fontLineHeight: 1.5;
69
-
70
- --textBody1FontSize: 13px;
71
- --textBody1LineHeight: 18px;
72
-
73
- --textBody2FontSize: 13px;
74
- --textBody2LineHeight: 18px;
75
-
76
- --textOverlineFontSize: 13px;
77
- --textOverlineLineHeight: 18px;
78
- --textOverlineTransform: uppercase;
79
- }
80
-
81
- :root {
82
- .ml-0 {
83
- margin-left: var(--0);
84
- }
85
-
86
- .ml-1 {
87
- margin-left: var(--1);
88
- }
89
-
90
- .ml-2 {
91
- margin-left: var(--2);
92
- }
93
-
94
- .ml-3 {
95
- margin-left: var(--3);
96
- }
97
-
98
- .ml-auto {
99
- margin-left: var(--auto);
100
- }
101
-
102
- .mr-0 {
103
- margin-right: var(--0);
104
- }
105
-
106
- .mr-1 {
107
- margin-right: var(--1);
108
- }
109
-
110
- .mr-2 {
111
- margin-right: var(--2);
112
- }
113
-
114
- .mr-3 {
115
- margin-right: var(--3);
116
- }
117
-
118
- .mr-auto {
119
- margin-right: var(--auto);
120
- }
121
-
122
- .mt-0 {
123
- margin-top: var(--0);
124
- }
125
-
126
- .mt-1 {
127
- margin-top: var(--1);
128
- }
129
-
130
- .mt-2 {
131
- margin-top: var(--2);
132
- }
133
-
134
- .mt-3 {
135
- margin-top: var(--3);
136
- }
137
-
138
- .mt-4 {
139
- margin-top: var(--4);
140
- }
141
-
142
- .mb-0 {
143
- margin-bottom: var(--0);
144
- }
145
-
146
- .mb-1 {
147
- margin-bottom: var(--1);
148
- }
149
-
150
- .mb-2 {
151
- margin-bottom: var(--2);
152
- }
153
-
154
- .mb-3 {
155
- margin-bottom: var(--3);
156
- }
157
- }
158
-
159
- :root {
160
- .pt-1 {
161
- padding-top: var(--1);
162
- }
163
-
164
- .pt-2 {
165
- padding-top: var(--2);
166
- }
167
-
168
- .pt-3 {
169
- padding-top: var(--3);
170
- }
171
-
172
- .pb-1 {
173
- padding-bottom: var(--1);
174
- }
175
-
176
- .pb-2 {
177
- padding-bottom: var(--2);
178
- }
179
-
180
- .pb-3 {
181
- padding-bottom: var(--3);
182
- }
183
-
184
- .pb-4 {
185
- padding-bottom: var(--4);
186
- }
187
-
188
- .p-3 {
189
- padding: var(--3);
190
- }
191
-
192
- .p-1 {
193
- padding: var(--1);
194
- }
195
-
196
- .p-2 {
197
- padding: var(--2);
198
- }
199
-
200
- .p-3 {
201
- padding: var(--3);
202
- }
203
-
204
- .p-4 {
205
- padding: var(--3);
206
- }
207
-
208
- .pt-0 {
209
- padding-top: var(--0);
210
- }
211
-
212
- .pb-0 {
213
- padding-bottom: var(--0);
214
- }
215
- }
216
-
217
- :root {
218
- --borderRadius: 5px;
219
- --0: 0px !important;
220
- --1: 15px !important;
221
- --2: 25px !important;
222
- --3: 35px !important;
223
- --4: 45px !important;
224
- --auto: auto !important;
225
- }
226
-
227
- .input-group-append {
228
- .btn {
229
- min-width: auto;
230
-
231
- .svg-icon {
232
- margin-left: 0;
233
- margin-right: 0;
234
- }
235
- }
236
- }
237
-
238
- .text-muted {
239
- color: var(--muted);
240
- }
241
-
242
- .flex-1 {
243
- flex: 1;
244
- }
245
-
246
- .d-flex {
247
- display: flex !important;
248
- }
249
-
250
- .justify-content-center {
251
- justify-content: center !important;
252
- }
253
-
254
- .align-items-center {
255
- align-items: center !important;
256
- }
257
-
258
- .flex-wrap {
259
- flex-wrap: wrap;
260
- }
261
-
262
- .flex-row {
263
- flex-direction: row;
264
- }
265
-
266
- .flex-row-reverse {
267
- flex-direction: row-reverse;
268
- }
269
-
270
- .flex-column {
271
- flex-direction: column;
272
- }
273
-
274
- .flex-column-reverse {
275
- flex-direction: column-reverse;
276
- }
277
-
278
- .w-100 {
279
- width: 100%;
280
- }
281
-
282
- .h-100 {
283
- height: 100%;
284
- }
285
-
286
- .text-center {
287
- text-align: center;
288
- }
289
-
290
- .text-uppercase {
291
- text-transform: uppercase;
292
- }
293
-
294
- .rounded-pill {
295
- border-radius: 50rem !important;
296
- }
297
-
298
- .fw-bold {
299
- font-weight: 700!important;
300
- }
301
-
302
- @media (max-width: 576px) {
303
- .flex-row {
304
- flex-direction: column !important;
305
- }
306
- }
307
- @media (min-width: 768px) {
308
- .justify-content-md-center {
309
- justify-content: center !important;
310
- }
311
- .align-items-md-center {
312
- align-items: center !important;
313
- }
314
- }
315
-
316
- .modal-open {
317
- overflow: hidden !important;
318
- }
319
-
320
-
321
- * {
322
- min-width: 0;
323
- min-height: 0;
324
- }
325
-
326
- label.required {
327
- &::after {
328
- display: inline-block;
329
- line-height: 0.8;
330
- content: "*";
331
- vertical-align: text-top;
332
- }
333
- }
334
-
335
- .overline {
336
- font-size: var(--textOverlineFontSize) !important;
337
- line-height: var(--textOverlineLineHeight) !important;
338
- text-transform: var(--textOverlineTransform) !important;
339
- font-weight: bold;
340
- }
341
-
342
- .body1 {
343
- font-size: var(--textBody1FontSize) !important;
344
- line-height: var(--textBody1LineHeight) !important;
345
- }
346
-
347
- .body2 {
348
- font-size: var(--textBody2FontSize) !important;
349
- line-height: var(--textBody2LineHeight) !important;
350
- }
351
-
352
- .uppercase {
353
- text-transform: uppercase !important;
354
- }
1
+ :root {
2
+ --breakpoint-xs: 0;
3
+ --breakpoint-sm: 576px;
4
+ --breakpoint-md: 768px;
5
+ --breakpoint-lg: 992px;
6
+ --breakpoint-xl: 1200px;
7
+ --breakpoint-xxl: 1400px;
8
+ }
9
+
10
+ :root {
11
+ --buttonMinWidth: 62px;
12
+ --buttonPadding: 11px 15px;
13
+ }
14
+
15
+ :root {
16
+ --primary-light: #6573c3;
17
+ --primary: #3f51b5;
18
+ --primary-dark: #2c387e;
19
+ --primary-contrast-text: #fff;
20
+ --primary-highlight: #d6dbf7;
21
+
22
+ --secondary-light: #e5e7eb;
23
+ --secondary: #8f8f8f;
24
+ --secondary-dark: #9c9da1;
25
+ --secondary-contrast-text: #fff;
26
+ --secondary-highlight: rgb(233, 233, 233);
27
+
28
+ --accent-light: #fd96b8;
29
+ --accent: #ff4081;
30
+ --accent-dark: #fd2c72;
31
+ --accent-contrast-text: #fff;
32
+ --accent-highlight: #fca9c5;
33
+
34
+ // rename!?
35
+ --light-light: #ffffff;
36
+ --light: #f8f9fa;
37
+ --light-dark: #ebebeb;
38
+ --light-contrast-text: #212529;
39
+ --light-highlight: #f8f9fa;
40
+
41
+ --dark-light: #616468;
42
+ --dark: #343a40;
43
+ --dark-dark: #343a40;
44
+ --dark-contrast-text: #fff;
45
+ --dark-highlight: #5e6164;
46
+
47
+ --white: #fff;
48
+
49
+ --bodyBg: white;
50
+ --bodyColor: #212529;
51
+
52
+ --highlight: rgba(204, 216, 224, 0.2); // ???
53
+
54
+ --shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14),
55
+ 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
56
+
57
+ --shadowColor: rgba(0, 0, 0, 0.12);
58
+
59
+ --muted: #6c757d !important;
60
+ }
61
+
62
+ :root {
63
+ --fontFamily: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans",
64
+ sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
65
+ --fontSize: 16px;
66
+ --fontWeight: 400;
67
+
68
+ --fontLineHeight: 1.5;
69
+
70
+ --textBody1FontSize: 13px;
71
+ --textBody1LineHeight: 18px;
72
+
73
+ --textBody2FontSize: 13px;
74
+ --textBody2LineHeight: 18px;
75
+
76
+ --textOverlineFontSize: 13px;
77
+ --textOverlineLineHeight: 18px;
78
+ --textOverlineTransform: uppercase;
79
+ }
80
+
81
+ :root {
82
+ .ml-0 {
83
+ margin-left: var(--0);
84
+ }
85
+
86
+ .ml-1 {
87
+ margin-left: var(--1);
88
+ }
89
+
90
+ .ml-2 {
91
+ margin-left: var(--2);
92
+ }
93
+
94
+ .ml-3 {
95
+ margin-left: var(--3);
96
+ }
97
+
98
+ .ml-auto {
99
+ margin-left: var(--auto);
100
+ }
101
+
102
+ .mr-0 {
103
+ margin-right: var(--0);
104
+ }
105
+
106
+ .mr-1 {
107
+ margin-right: var(--1);
108
+ }
109
+
110
+ .mr-2 {
111
+ margin-right: var(--2);
112
+ }
113
+
114
+ .mr-3 {
115
+ margin-right: var(--3);
116
+ }
117
+
118
+ .mr-auto {
119
+ margin-right: var(--auto);
120
+ }
121
+
122
+ .mt-0 {
123
+ margin-top: var(--0);
124
+ }
125
+
126
+ .mt-1 {
127
+ margin-top: var(--1);
128
+ }
129
+
130
+ .mt-2 {
131
+ margin-top: var(--2);
132
+ }
133
+
134
+ .mt-3 {
135
+ margin-top: var(--3);
136
+ }
137
+
138
+ .mt-4 {
139
+ margin-top: var(--4);
140
+ }
141
+
142
+ .mb-0 {
143
+ margin-bottom: var(--0);
144
+ }
145
+
146
+ .mb-1 {
147
+ margin-bottom: var(--1);
148
+ }
149
+
150
+ .mb-2 {
151
+ margin-bottom: var(--2);
152
+ }
153
+
154
+ .mb-3 {
155
+ margin-bottom: var(--3);
156
+ }
157
+ }
158
+
159
+ :root {
160
+ .pt-1 {
161
+ padding-top: var(--1);
162
+ }
163
+
164
+ .pt-2 {
165
+ padding-top: var(--2);
166
+ }
167
+
168
+ .pt-3 {
169
+ padding-top: var(--3);
170
+ }
171
+
172
+ .pb-1 {
173
+ padding-bottom: var(--1);
174
+ }
175
+
176
+ .pb-2 {
177
+ padding-bottom: var(--2);
178
+ }
179
+
180
+ .pb-3 {
181
+ padding-bottom: var(--3);
182
+ }
183
+
184
+ .pb-4 {
185
+ padding-bottom: var(--4);
186
+ }
187
+
188
+ .p-3 {
189
+ padding: var(--3);
190
+ }
191
+
192
+ .p-1 {
193
+ padding: var(--1);
194
+ }
195
+
196
+ .p-2 {
197
+ padding: var(--2);
198
+ }
199
+
200
+ .p-3 {
201
+ padding: var(--3);
202
+ }
203
+
204
+ .p-4 {
205
+ padding: var(--3);
206
+ }
207
+
208
+ .pt-0 {
209
+ padding-top: var(--0);
210
+ }
211
+
212
+ .pb-0 {
213
+ padding-bottom: var(--0);
214
+ }
215
+ }
216
+
217
+ :root {
218
+ --borderRadius: 5px;
219
+ --0: 0px !important;
220
+ --1: 15px !important;
221
+ --2: 25px !important;
222
+ --3: 35px !important;
223
+ --4: 45px !important;
224
+ --auto: auto !important;
225
+ }
226
+
227
+ .input-group-append {
228
+ .btn {
229
+ min-width: auto;
230
+
231
+ .svg-icon {
232
+ margin-left: 0;
233
+ margin-right: 0;
234
+ }
235
+ }
236
+ }
237
+
238
+ .text-muted {
239
+ color: var(--muted);
240
+ }
241
+
242
+ .flex-1 {
243
+ flex: 1;
244
+ }
245
+
246
+ .d-flex {
247
+ display: flex !important;
248
+ }
249
+
250
+ .justify-content-center {
251
+ justify-content: center !important;
252
+ }
253
+
254
+ .align-items-center {
255
+ align-items: center !important;
256
+ }
257
+
258
+ .flex-wrap {
259
+ flex-wrap: wrap;
260
+ }
261
+
262
+ .flex-row {
263
+ flex-direction: row;
264
+ }
265
+
266
+ .flex-row-reverse {
267
+ flex-direction: row-reverse;
268
+ }
269
+
270
+ .flex-column {
271
+ flex-direction: column;
272
+ }
273
+
274
+ .flex-column-reverse {
275
+ flex-direction: column-reverse;
276
+ }
277
+
278
+ .w-100 {
279
+ width: 100%;
280
+ }
281
+
282
+ .h-100 {
283
+ height: 100%;
284
+ }
285
+
286
+ .text-center {
287
+ text-align: center;
288
+ }
289
+
290
+ .text-uppercase {
291
+ text-transform: uppercase;
292
+ }
293
+
294
+ .rounded-pill {
295
+ border-radius: 50rem !important;
296
+ }
297
+
298
+ .fw-bold {
299
+ font-weight: 700!important;
300
+ }
301
+
302
+ @media (max-width: 576px) {
303
+ .flex-row {
304
+ flex-direction: column !important;
305
+ }
306
+ }
307
+ @media (min-width: 768px) {
308
+ .justify-content-md-center {
309
+ justify-content: center !important;
310
+ }
311
+ .align-items-md-center {
312
+ align-items: center !important;
313
+ }
314
+ }
315
+
316
+ .modal-open {
317
+ overflow: hidden !important;
318
+ }
319
+
320
+
321
+ * {
322
+ min-width: 0;
323
+ min-height: 0;
324
+ }
325
+
326
+ label.required {
327
+ &::after {
328
+ display: inline-block;
329
+ line-height: 0.8;
330
+ content: "*";
331
+ vertical-align: text-top;
332
+ }
333
+ }
334
+
335
+ .overline {
336
+ font-size: var(--textOverlineFontSize) !important;
337
+ line-height: var(--textOverlineLineHeight) !important;
338
+ text-transform: var(--textOverlineTransform) !important;
339
+ font-weight: bold;
340
+ }
341
+
342
+ .body1 {
343
+ font-size: var(--textBody1FontSize) !important;
344
+ line-height: var(--textBody1LineHeight) !important;
345
+ }
346
+
347
+ .body2 {
348
+ font-size: var(--textBody2FontSize) !important;
349
+ line-height: var(--textBody2LineHeight) !important;
350
+ }
351
+
352
+ .uppercase {
353
+ text-transform: uppercase !important;
354
+ }
package/readme.md CHANGED
@@ -1,91 +1,91 @@
1
- # react-asc
2
-
3
- handcrafted components inspired by Material Design and bundled with rollup.
4
-
5
- ## showcase
6
-
7
- react-asc interactive showcase [link](https://react-asc.netlify.app)
8
-
9
- ## usage
10
-
11
- ### install package
12
-
13
- `npm install react-asc`
14
-
15
- ### install modern-normalize
16
-
17
- `npm install modern-normalize`
18
-
19
- ### Include styles
20
-
21
- ```scss
22
- @import "modern-normalize";
23
- @import "react-asc/react-asc.scss";
24
- ```
25
-
26
- ### Usage
27
-
28
- ```js
29
- import React from "react";
30
- import { Button } from "react-asc";
31
-
32
- const MyApp = () => {
33
- return <Button>some button</Button>;
34
- };
35
- ```
36
-
37
-
38
- ## TypeScript
39
- react-asc provides built-in ts definition
40
-
41
-
42
- ## Included Components
43
-
44
- - Alert (beta)
45
- - AppBar
46
- - AutoComplete (beta)
47
- - Backdrop
48
- - Badge
49
- - Breadcrumb
50
- - Button
51
- - ButtonGroup
52
- - Card
53
- - Checkbox
54
- - Chip
55
- - CssTransition
56
- - ConditionalWrapper
57
- - DateSelect
58
- - Drawer
59
- - ExpansionPanel
60
- - FileInput
61
- - FloatingActionButton
62
- - Form (beta)
63
- - Grid
64
- - Icon
65
- - IconButton
66
- - Link
67
- - List
68
- - LoadingIndicator
69
- - Menu
70
- - Modal + ModalService
71
- - NumberSelect
72
- Portal
73
- - Select
74
- - Sidebar
75
- - Skeleton (Avatar, Image, Text, SkeletonFooter)
76
- - Snackbar + SnackbarService
77
- - SpeedDial
78
- - Stepper (beta)
79
- - Table (beta)
80
- - Tabs
81
- - Textarea
82
- - TimeSelect
83
- - Tooltip
84
- - TreeView (beta)
85
- - Typography
86
-
87
-
88
- ## Credit
89
-
90
- uses fontawesome icons as SVGs
91
- https://fontawesome.com/license
1
+ # react-asc
2
+
3
+ handcrafted components inspired by Material Design and bundled with rollup.
4
+
5
+ ## showcase
6
+
7
+ react-asc interactive showcase [link](https://react-asc.netlify.app)
8
+
9
+ ## usage
10
+
11
+ ### install package
12
+
13
+ `npm install react-asc`
14
+
15
+ ### install modern-normalize
16
+
17
+ `npm install modern-normalize`
18
+
19
+ ### Include styles
20
+
21
+ ```scss
22
+ @import "modern-normalize";
23
+ @import "react-asc/react-asc.scss";
24
+ ```
25
+
26
+ ### Usage
27
+
28
+ ```js
29
+ import React from "react";
30
+ import { Button } from "react-asc";
31
+
32
+ const MyApp = () => {
33
+ return <Button>some button</Button>;
34
+ };
35
+ ```
36
+
37
+
38
+ ## TypeScript
39
+ react-asc provides built-in ts definition
40
+
41
+
42
+ ## Included Components
43
+
44
+ - Alert (beta)
45
+ - AppBar
46
+ - AutoComplete (beta)
47
+ - Backdrop
48
+ - Badge
49
+ - Breadcrumb
50
+ - Button
51
+ - ButtonGroup
52
+ - Card
53
+ - Checkbox
54
+ - Chip
55
+ - CssTransition
56
+ - ConditionalWrapper
57
+ - DateSelect
58
+ - Drawer
59
+ - ExpansionPanel
60
+ - FileInput
61
+ - FloatingActionButton
62
+ - Form (beta)
63
+ - Grid
64
+ - Icon
65
+ - IconButton
66
+ - Link
67
+ - List
68
+ - LoadingIndicator
69
+ - Menu
70
+ - Modal + ModalService
71
+ - NumberSelect
72
+ Portal
73
+ - Select
74
+ - Sidebar
75
+ - Skeleton (Avatar, Image, Text, SkeletonFooter)
76
+ - Snackbar + SnackbarService
77
+ - SpeedDial
78
+ - Stepper (beta)
79
+ - Table (beta)
80
+ - Tabs
81
+ - Textarea
82
+ - TimeSelect
83
+ - Tooltip
84
+ - TreeView (beta)
85
+ - Typography
86
+
87
+
88
+ ## Credit
89
+
90
+ uses fontawesome icons as SVGs
91
+ https://fontawesome.com/license