quicksnack 2.0.0 → 3.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/components/Box/Box.d.ts +1 -1
  2. package/dist/components/Box/Box.js +1 -1
  3. package/dist/components/Floater/Floater.d.ts +8 -0
  4. package/dist/components/Floater/Floater.js +41 -0
  5. package/dist/components/Floater/FloaterItem.d.ts +7 -0
  6. package/dist/components/Floater/FloaterItem.js +38 -0
  7. package/dist/components/Menu/HamburgerButton.js +1 -1
  8. package/dist/components/Menu/MenuCloseButton.js +1 -1
  9. package/dist/components/Menu/SideBar.js +1 -1
  10. package/dist/components/Menu/SideBarHeader.js +2 -2
  11. package/dist/components/Paginator/Paginator.js +3 -1
  12. package/dist/components/Panel/Panel.js +1 -1
  13. package/dist/components/Section/Section.js +1 -1
  14. package/dist/components/Table/Table.js +1 -1
  15. package/dist/form/Button/Button.d.ts +1 -0
  16. package/dist/form/Button/Button.js +11 -9
  17. package/dist/form/ScaffoldForm/FormGrid/FormGrid.d.ts +1 -1
  18. package/dist/form/ScaffoldForm/FormGrid/FormGrid.js +1 -1
  19. package/dist/form/ScaffoldForm/FormGrid/FormGridCell.d.ts +1 -1
  20. package/dist/form/ScaffoldForm/FormGrid/FormGridCell.js +1 -1
  21. package/dist/form/ScaffoldForm/scaffoldProps.d.ts +1 -1
  22. package/dist/form/ScaffoldForm/scaffoldProps.js +1 -1
  23. package/dist/form/ScaffoldForm/utils/FormPositioner.d.ts +1 -1
  24. package/dist/form/ScaffoldForm/utils/FormPositioner.js +1 -1
  25. package/dist/index.d.ts +3 -1
  26. package/dist/index.js +3 -1
  27. package/dist/layouts/BasicLayout/BasicLayout.js +2 -2
  28. package/dist/layouts/FloatingPanelLayout/FloatingPanelLayout.js +2 -2
  29. package/dist/layouts/constants.d.ts +2 -1
  30. package/dist/layouts/constants.js +3 -2
  31. package/dist/{form/ScaffoldForm/utils → responsiveness}/responsiveProps.d.ts +1 -0
  32. package/dist/{form/ScaffoldForm/utils → responsiveness}/responsiveProps.js +4 -4
  33. package/dist/responsiveness/useResponsiveBreakpoints.d.ts +6 -0
  34. package/dist/responsiveness/useResponsiveBreakpoints.js +24 -0
  35. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { Responsive } from "../../form/ScaffoldForm/utils/responsiveProps";
1
+ import { Responsive } from "../../responsiveness/responsiveProps";
2
2
  export interface BoxProps {
3
3
  p?: Responsive<number>;
4
4
  pt?: Responsive<number>;
@@ -24,7 +24,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.Box = void 0;
27
- var responsiveProps_1 = require("../../form/ScaffoldForm/utils/responsiveProps");
27
+ var responsiveProps_1 = require("../../responsiveness/responsiveProps");
28
28
  var styled_components_1 = __importStar(require("styled-components"));
29
29
  exports.Box = styled_components_1.default.div(templateObject_18 || (templateObject_18 = __makeTemplateObject(["\n box-sizing: border-box;\n \n ", "\n"], ["\n box-sizing: border-box;\n \n ", "\n"])), function (props) { return (0, responsiveProps_1.responsiveProps)(props, {
30
30
  "p": function (unit) { return (0, styled_components_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["padding: ", ";"], ["padding: ", ";"])), props.theme.spacing(unit)); },
@@ -0,0 +1,8 @@
1
+ import { BoxProps } from "../Box/Box";
2
+ import React from "react";
3
+ interface Props extends BoxProps {
4
+ stretch?: boolean;
5
+ items: Array<JSX.Element | false>;
6
+ }
7
+ export declare const Floater: React.FC<Props>;
8
+ export {};
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __rest = (this && this.__rest) || function (s, e) {
14
+ var t = {};
15
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16
+ t[p] = s[p];
17
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
18
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
20
+ t[p[i]] = s[p[i]];
21
+ }
22
+ return t;
23
+ };
24
+ var __importDefault = (this && this.__importDefault) || function (mod) {
25
+ return (mod && mod.__esModule) ? mod : { "default": mod };
26
+ };
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ exports.Floater = void 0;
29
+ var Box_1 = require("../Box/Box");
30
+ var react_1 = __importDefault(require("react"));
31
+ var FloaterItem_1 = require("./FloaterItem");
32
+ var horizontalMargin = { laptop: -1 };
33
+ var verticalMargin = { mobile: -1, laptop: 0 };
34
+ var display = { mobile: "block", laptop: "flex" };
35
+ var Floater = function (_a) {
36
+ var items = _a.items, _b = _a.stretch, stretch = _b === void 0 ? false : _b, props = __rest(_a, ["items", "stretch"]);
37
+ return react_1.default.createElement(Box_1.Box, __assign({ mb: verticalMargin, mt: verticalMargin, ml: horizontalMargin, mr: horizontalMargin, display: display }, props), items
38
+ .filter(Boolean)
39
+ .map(function (item, i) { return react_1.default.createElement(FloaterItem_1.FloaterItem, { key: i, stretch: stretch }, item); }));
40
+ };
41
+ exports.Floater = Floater;
@@ -0,0 +1,7 @@
1
+ import { BoxProps } from "../Box/Box";
2
+ import React from "react";
3
+ interface Props extends BoxProps {
4
+ stretch: boolean;
5
+ }
6
+ export declare const FloaterItem: React.FC<Props>;
7
+ export {};
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __rest = (this && this.__rest) || function (s, e) {
14
+ var t = {};
15
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16
+ t[p] = s[p];
17
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
18
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
20
+ t[p[i]] = s[p[i]];
21
+ }
22
+ return t;
23
+ };
24
+ var __importDefault = (this && this.__importDefault) || function (mod) {
25
+ return (mod && mod.__esModule) ? mod : { "default": mod };
26
+ };
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ exports.FloaterItem = void 0;
29
+ var Box_1 = require("../Box/Box");
30
+ var react_1 = __importDefault(require("react"));
31
+ var horizontalPadding = { laptop: 1 };
32
+ var verticalPadding = { mobile: 1, laptop: 0 };
33
+ var flexGrow = { laptop: 1 };
34
+ var FloaterItem = function (_a) {
35
+ var stretch = _a.stretch, props = __rest(_a, ["stretch"]);
36
+ return react_1.default.createElement(Box_1.Box, __assign({ flexGrow: stretch ? flexGrow : undefined, pt: verticalPadding, pb: verticalPadding, pl: horizontalPadding, pr: horizontalPadding }, props));
37
+ };
38
+ exports.FloaterItem = FloaterItem;
@@ -10,6 +10,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.HamburgerButton = void 0;
11
11
  var styled_components_1 = __importDefault(require("styled-components"));
12
12
  var Button_1 = require("../../form/Button/Button");
13
- var responsiveProps_1 = require("../../form/ScaffoldForm/utils/responsiveProps");
13
+ var responsiveProps_1 = require("../../responsiveness/responsiveProps");
14
14
  exports.HamburgerButton = (0, styled_components_1.default)(Button_1.Button)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n margin-right: ", "; \n ", " \n"], ["\n margin-right: ", "; \n ", " \n"])), function (props) { return props.theme.spacing(3); }, (0, responsiveProps_1.mq)("laptop", "display: none;"));
15
15
  var templateObject_1;
@@ -10,6 +10,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.MenuCloseButton = void 0;
11
11
  var styled_components_1 = __importDefault(require("styled-components"));
12
12
  var Button_1 = require("../../form/Button/Button");
13
- var responsiveProps_1 = require("../../form/ScaffoldForm/utils/responsiveProps");
13
+ var responsiveProps_1 = require("../../responsiveness/responsiveProps");
14
14
  exports.MenuCloseButton = (0, styled_components_1.default)(Button_1.Button)(templateObject_1 || (templateObject_1 = __makeTemplateObject([" \n ", " \n"], [" \n ", " \n"])), (0, responsiveProps_1.mq)("laptop", "display: none;"));
15
15
  var templateObject_1;
@@ -26,6 +26,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.SideBar = void 0;
27
27
  var styled_components_1 = __importStar(require("styled-components"));
28
28
  var Box_1 = require("../Box/Box");
29
- var responsiveProps_1 = require("../../form/ScaffoldForm/utils/responsiveProps");
29
+ var responsiveProps_1 = require("../../responsiveness/responsiveProps");
30
30
  exports.SideBar = (0, styled_components_1.default)(Box_1.Box)(templateObject_2 || (templateObject_2 = __makeTemplateObject([" \n height: auto;\n width: 100%; \n \n background-color: #243646;\n \n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n \n z-index: 900;\n \n display: ", "; \n \n ", " \n"], [" \n height: auto;\n width: 100%; \n \n background-color: #243646;\n \n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n \n z-index: 900;\n \n display: ", "; \n \n ", " \n"])), function (props) { return props.isOpen ? 'block' : 'none'; }, (0, responsiveProps_1.mq)("laptop", (0, styled_components_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n position: static; \n display: block;\n width: ", "; \n "], ["\n position: static; \n display: block;\n width: ", "; \n "])), function (props) { return props.theme.spacing(props.width || 50); })));
31
31
  var templateObject_1, templateObject_2;
@@ -31,11 +31,11 @@ var react_1 = __importDefault(require("react"));
31
31
  var styled_components_1 = __importStar(require("styled-components"));
32
32
  var Box_1 = require("../Box/Box");
33
33
  var constants_1 = require("../../layouts/constants");
34
- var responsiveProps_1 = require("../../form/ScaffoldForm/utils/responsiveProps");
34
+ var responsiveProps_1 = require("../../responsiveness/responsiveProps");
35
35
  var StyledBox = (0, styled_components_1.default)(Box_1.Box)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n box-sizing: border-box; \n color: ", ";\n font-weight: bold; \n \n display: flex;\n // flex-direction: column;\n // justify-content: center;\n \n // font-size: ", ";\n // color: ", "; \n text-align: center;\n \n font-size: 14px;\n font-weight: bold;\n letter-spacing: 1px; \n line-height: 1em;\n \n background-color: rgba(0,0,0,.2);\n \n ", " \n"], ["\n box-sizing: border-box; \n color: ", ";\n font-weight: bold; \n \n display: flex;\n // flex-direction: column;\n // justify-content: center;\n \n // font-size: ", ";\n // color: ", "; \n text-align: center;\n \n font-size: 14px;\n font-weight: bold;\n letter-spacing: 1px; \n line-height: 1em;\n \n background-color: rgba(0,0,0,.2);\n \n ", " \n"])), function (props) { return props.theme.palette.button.text.idle.text; }, function (props) { return props.theme.spacing(5); }, function (props) { return props.theme.palette.common.white; }, (0, responsiveProps_1.mq)('laptop', (0, styled_components_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n min-height: ", ";\n "], ["\n min-height: ", ";\n "])), function (props) { return props.theme.spacing(12); })));
36
36
  var SideBarHeader = function (_a) {
37
37
  var children = _a.children, right = _a.right;
38
- return (react_1.default.createElement(StyledBox, { mb: constants_1.VerticalRhythm },
38
+ return (react_1.default.createElement(StyledBox, { mb: constants_1.VerticalRhythmLaptop },
39
39
  react_1.default.createElement(Box_1.Box, { flexGrow: 1, display: "flex" },
40
40
  react_1.default.createElement(Box_1.Box, { flexGrow: 1, display: "flex", flexDirection: "column", justifyContent: "center" }, children)),
41
41
  right && react_1.default.createElement(Box_1.Box, null, right)));
@@ -10,9 +10,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.Paginator = void 0;
11
11
  var react_1 = __importDefault(require("react"));
12
12
  var styled_components_1 = __importDefault(require("styled-components"));
13
+ var useResponsiveBreakpoints_1 = require("../../responsiveness/useResponsiveBreakpoints");
13
14
  var Wrapper = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n"], ["\n display: flex;\n"])));
14
15
  var Button = styled_components_1.default.button(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n user-select:none;\n cursor: pointer;\n\n min-height: ", ";\n padding: .2em 1.3em .2em;\n margin: 0;\n line-height: 1em; \n outline: 0;\n border: 1px solid rgba(34,36,38,.15);\n \n font-family: Lato, \"Helvetica Neue\", Arial, Helvetica, sans-serif; \n background-color: ", ";\n \n &:not(:first-of-type) {\n border-left: 0;\n }\n \n ", " \n"], ["\n user-select:none;\n cursor: pointer;\n\n min-height: ", ";\n padding: .2em 1.3em .2em;\n margin: 0;\n line-height: 1em; \n outline: 0;\n border: 1px solid rgba(34,36,38,.15);\n \n font-family: Lato, \"Helvetica Neue\", Arial, Helvetica, sans-serif; \n background-color: ", ";\n \n &:not(:first-of-type) {\n border-left: 0;\n }\n \n ", " \n"])), function (props) { return props.theme.spacing(8); }, function (props) { return props.active ? '#F2F2F2' : '#fff'; }, function (props) { return !props.disabled && ("\n &:hover { \n background-color: #E9E9E9; \n }\n "); });
15
- var clamSize = 2;
16
16
  var range = function (start, end) {
17
17
  var nums = [];
18
18
  for (var i = start; i < end; i++) {
@@ -21,8 +21,10 @@ var range = function (start, end) {
21
21
  return nums;
22
22
  };
23
23
  var Paginator = function (props) {
24
+ var isTablet = (0, useResponsiveBreakpoints_1.useResponsiveBreakpoints)().isTablet;
24
25
  var pageCount = props.pageCount, onChange = props.onChange;
25
26
  var currentPage = Math.min(Math.max(props.currentPage, 0), pageCount);
27
+ var clamSize = isTablet ? 2 : 0;
26
28
  var clamLower = Math.max(1, currentPage - clamSize);
27
29
  var clamUpper = Math.min(pageCount, currentPage + clamSize);
28
30
  return (react_1.default.createElement(Wrapper, null,
@@ -31,7 +31,7 @@ var react_1 = __importDefault(require("react"));
31
31
  var styled_components_1 = __importStar(require("styled-components"));
32
32
  var Box_1 = require("../Box/Box");
33
33
  var Header_1 = require("../../typography/Header/Header");
34
- var Wrapper = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject([" \n background-color: ", "; \n"], [" \n background-color: ", "; \n"])), function (props) { return props.theme.palette.common.white; });
34
+ var Wrapper = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject([" \n background-color: ", "; \n"], [" \n background-color: ", "; \n"])), function (props) { return props.theme.palette.common.white; });
35
35
  var Meta = (0, styled_components_1.default)(Box_1.Box)(templateObject_2 || (templateObject_2 = __makeTemplateObject([" \n font-size: 12px;\n font-style: italic; \n"], [" \n font-size: 12px;\n font-style: italic; \n"])));
36
36
  var Title = (0, styled_components_1.default)(Box_1.Box)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n ", "\n \n ", " \n"], ["\n ", "\n \n ", " \n"])), function (props) { return props.panelHasChildren && (0, styled_components_1.css)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n border-radius: 4px; \n border-bottom: 1px solid rgba(34,36,38,.15);\n "], ["\n border-radius: 4px; \n border-bottom: 1px solid rgba(34,36,38,.15);\n "]))); }, function (props) { return !!props.onClick && (0, styled_components_1.css)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n cursor: pointer;\n user-select: none;\n "], ["\n cursor: pointer;\n user-select: none;\n "]))); });
37
37
  var Footer = (0, styled_components_1.default)(Box_1.Box)(templateObject_6 || (templateObject_6 = __makeTemplateObject([" \n border-radius: 4px; \n background-color: #FFF;\n border-top: 1px solid rgba(34,36,38,.15);\n"], [" \n border-radius: 4px; \n background-color: #FFF;\n border-top: 1px solid rgba(34,36,38,.15);\n"])));
@@ -18,5 +18,5 @@ exports.Section = void 0;
18
18
  var react_1 = __importDefault(require("react"));
19
19
  var Box_1 = require("../Box/Box");
20
20
  var constants_1 = require("../../layouts/constants");
21
- var Section = function (props) { return (react_1.default.createElement(Box_1.Box, __assign({ pb: constants_1.VerticalRhythm }, props))); };
21
+ var Section = function (props) { return (react_1.default.createElement(Box_1.Box, __assign({ pb: { laptop: constants_1.VerticalRhythmLaptop, mobile: constants_1.VerticalRhythmMobile } }, props))); };
22
22
  exports.Section = Section;
@@ -51,7 +51,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
51
51
  exports.Table = exports.StyledTable = void 0;
52
52
  var react_1 = __importDefault(require("react"));
53
53
  var styled_components_1 = __importStar(require("styled-components"));
54
- var responsiveProps_1 = require("../../form/ScaffoldForm/utils/responsiveProps");
54
+ var responsiveProps_1 = require("../../responsiveness/responsiveProps");
55
55
  exports.StyledTable = styled_components_1.default.table(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n border-radius: 4px;\n width: 100%;\n border-collapse: separate;\n border-spacing: 0; \n"], ["\n border-radius: 4px;\n width: 100%;\n border-collapse: separate;\n border-spacing: 0; \n"])));
56
56
  var StyledTableRow = styled_components_1.default.tr(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n & > td {\n transition: background-color .1s ease, color .1s ease;\n }\n ", " \n"], ["\n & > td {\n transition: background-color .1s ease, color .1s ease;\n }\n ", " \n"])), function (props) { return Object.entries(props.theme.palette.pane).map(function (_a) {
57
57
  var variant = _a[0], value = _a[1];
@@ -5,6 +5,7 @@ export interface ButtonProps extends React.ButtonHTMLAttributes<any> {
5
5
  icon?: JSX.Element;
6
6
  variant?: Variant;
7
7
  hasChildren?: boolean;
8
+ actionButton?: boolean;
8
9
  }
9
10
  export declare const Button: React.FC<ButtonProps>;
10
11
  export {};
@@ -52,11 +52,13 @@ exports.Button = void 0;
52
52
  var react_1 = __importDefault(require("react"));
53
53
  var styled_components_1 = __importStar(require("styled-components"));
54
54
  var theme_1 = require("../../theme");
55
- var Wrapper = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject([" \n margin: ", "; \n"], [" \n margin: ", "; \n"])), function (props) { return props.theme.spacing(0, 2, 0, 0); });
56
- var StyledButton = styled_components_1.default.button(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n font-size: 14px;\n font-weight: bold;\n letter-spacing: 1px; \n line-height: 1em; \n outline: 0;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n text-decoration: none;\n font-family: \"Open Sans\", Lato, \"Helvetica Neue\", Arial, Helvetica, sans-serif; \n transition: background-color .1s ease, color .1s ease; \n display: flex;\n flex-direction: row;\n align-items: center;\n user-select: none;\n min-height: 38px; \n \n ", " \n \n &:focus {\n background-blend-mode: darken;\n } \n \n ", "\n \n ", " \n"], ["\n font-size: 14px;\n font-weight: bold;\n letter-spacing: 1px; \n line-height: 1em; \n outline: 0;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n text-decoration: none;\n font-family: \"Open Sans\", Lato, \"Helvetica Neue\", Arial, Helvetica, sans-serif; \n transition: background-color .1s ease, color .1s ease; \n display: flex;\n flex-direction: row;\n align-items: center;\n user-select: none;\n min-height: 38px; \n \n ", " \n \n &:focus {\n background-blend-mode: darken;\n } \n \n ", "\n \n ", " \n"])), function (props) { return props.variant !== 'text'
55
+ var responsiveProps_1 = require("../../responsiveness/responsiveProps");
56
+ var Wrapper = styled_components_1.default.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n ", " \n"], ["\n ", " \n"])), function (props) { return props.actionButton
57
+ ? (0, styled_components_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["margin: 0;"], ["margin: 0;"]))) : (0, styled_components_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["margin: ", ";"], ["margin: ", ";"])), function (props) { return props.theme.spacing(0, 2, 0, 0); }); });
58
+ var StyledButton = styled_components_1.default.button(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n font-size: 14px;\n font-weight: bold;\n letter-spacing: 1px; \n line-height: 1em; \n outline: 0;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n text-decoration: none;\n font-family: \"Open Sans\", Lato, \"Helvetica Neue\", Arial, Helvetica, sans-serif; \n transition: background-color .1s ease, color .1s ease; \n display: flex;\n flex-direction: row;\n align-items: center;\n user-select: none;\n min-height: 38px; \n \n ", "\n \n ", " \n \n &:focus {\n background-blend-mode: darken;\n } \n \n ", "\n \n ", " \n"], ["\n font-size: 14px;\n font-weight: bold;\n letter-spacing: 1px; \n line-height: 1em; \n outline: 0;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n text-decoration: none;\n font-family: \"Open Sans\", Lato, \"Helvetica Neue\", Arial, Helvetica, sans-serif; \n transition: background-color .1s ease, color .1s ease; \n display: flex;\n flex-direction: row;\n align-items: center;\n user-select: none;\n min-height: 38px; \n \n ", "\n \n ", " \n \n &:focus {\n background-blend-mode: darken;\n } \n \n ", "\n \n ", " \n"])), function (props) { return props.actionButton && (0, styled_components_1.css)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n width: 100%; \n ", "\n "], ["\n width: 100%; \n ", "\n "])), (0, responsiveProps_1.mq)('laptop', "width: auto")); }, function (props) { return props.variant !== 'text'
57
59
  ? !props.icon
58
- ? (0, styled_components_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["padding: ", "; min-width: ", ";"], ["padding: ", "; min-width: ", ";"])), props.theme.spacing(3, 5), function (props) { return props.theme.spacing(10); }) : props.hasChildren && (0, styled_components_1.css)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["position: relative; padding: ", ";"], ["position: relative; padding: ", ";"])), props.theme.spacing(3, 5, 3, 13))
59
- : (0, styled_components_1.css)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["font-weight: 700; padding: 0;"], ["font-weight: 700; padding: 0;"]))); }, function (props) {
60
+ ? (0, styled_components_1.css)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["padding: ", "; min-width: ", ";"], ["padding: ", "; min-width: ", ";"])), props.theme.spacing(3, 5), function (props) { return props.theme.spacing(10); }) : props.hasChildren && (0, styled_components_1.css)(templateObject_6 || (templateObject_6 = __makeTemplateObject(["position: relative; padding: ", ";"], ["position: relative; padding: ", ";"])), props.theme.spacing(3, 5, 3, 13))
61
+ : (0, styled_components_1.css)(templateObject_7 || (templateObject_7 = __makeTemplateObject(["font-weight: 700; padding: 0;"], ["font-weight: 700; padding: 0;"]))); }, function (props) {
60
62
  if (props.variant === "basic") {
61
63
  return "\n border: 1px solid rgba(34,36,38,.15);\n ";
62
64
  }
@@ -65,14 +67,14 @@ var StyledButton = styled_components_1.default.button(templateObject_5 || (templ
65
67
  var _b = theme_1.theme.palette.button[(_a = props.variant) !== null && _a !== void 0 ? _a : 'default'], idle = _b.idle, hover = _b.hover, active = _b.active;
66
68
  return "\n color: ".concat(idle.text, ";\n background-color: ").concat(idle.background, "; \n \n &:hover, &:focus {\n color: ").concat(hover.text, ";\n background-color: ").concat(hover.background, "; \n } \n\n &:active {\n color: ").concat(active.text, ";\n background-color: ").concat(active.background, "; \n } \n ");
67
69
  });
68
- var IconWrapper = styled_components_1.default.span(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n ", "\n \n ", " \n"], ["\n ", "\n \n ", " \n"])), function (props) { return props.variant !== "text" && (0, styled_components_1.css)(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n min-width: ", ";\n "], ["\n min-width: ", ";\n "])), props.theme.spacing(10)); }, function (props) { return props.variant === "text"
69
- ? props.hasChildren && (0, styled_components_1.css)(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n padding-right: ", ";\n "], ["\n padding-right: ", ";\n "])), props.theme.spacing(2))
70
- : props.hasChildren && (0, styled_components_1.css)(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n position: absolute;\n left: 0;\n top: 0;\n width: ", ";\n height: 100%;\n background-color: rgba(0,0,0,.05);\n \n & > svg {\n transform: translate(-50%, -50%);\n position: absolute;\n top: 50%;\n left: 50%;\n }\n "], ["\n position: absolute;\n left: 0;\n top: 0;\n width: ", ";\n height: 100%;\n background-color: rgba(0,0,0,.05);\n \n & > svg {\n transform: translate(-50%, -50%);\n position: absolute;\n top: 50%;\n left: 50%;\n }\n "])), function (props) { return props.theme.spacing(10); }); });
70
+ var IconWrapper = styled_components_1.default.span(templateObject_12 || (templateObject_12 = __makeTemplateObject(["\n ", "\n \n ", " \n"], ["\n ", "\n \n ", " \n"])), function (props) { return props.variant !== "text" && (0, styled_components_1.css)(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n min-width: ", ";\n "], ["\n min-width: ", ";\n "])), props.theme.spacing(10)); }, function (props) { return props.variant === "text"
71
+ ? props.hasChildren && (0, styled_components_1.css)(templateObject_10 || (templateObject_10 = __makeTemplateObject(["\n padding-right: ", ";\n "], ["\n padding-right: ", ";\n "])), props.theme.spacing(2))
72
+ : props.hasChildren && (0, styled_components_1.css)(templateObject_11 || (templateObject_11 = __makeTemplateObject(["\n position: absolute;\n left: 0;\n top: 0;\n width: ", ";\n height: 100%;\n background-color: rgba(0,0,0,.05);\n \n & > svg {\n transform: translate(-50%, -50%);\n position: absolute;\n top: 50%;\n left: 50%;\n }\n "], ["\n position: absolute;\n left: 0;\n top: 0;\n width: ", ";\n height: 100%;\n background-color: rgba(0,0,0,.05);\n \n & > svg {\n transform: translate(-50%, -50%);\n position: absolute;\n top: 50%;\n left: 50%;\n }\n "])), function (props) { return props.theme.spacing(10); }); });
71
73
  exports.Button = react_1.default.forwardRef(function (_a, ref) {
72
74
  var children = _a.children, icon = _a.icon, props = __rest(_a, ["children", "icon"]);
73
- return (react_1.default.createElement(Wrapper, null,
75
+ return (react_1.default.createElement(Wrapper, { actionButton: props.actionButton },
74
76
  react_1.default.createElement(StyledButton, __assign({ ref: ref, icon: icon, hasChildren: !!children }, props),
75
77
  icon && (react_1.default.createElement(IconWrapper, { variant: props.variant, hasChildren: !!children }, icon)),
76
78
  children)));
77
79
  });
78
- var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9;
80
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10, templateObject_11, templateObject_12;
@@ -1,4 +1,4 @@
1
- import { Responsive } from "../utils/responsiveProps";
1
+ import { Responsive } from "../../../responsiveness/responsiveProps";
2
2
  export declare type FormGridProps = {
3
3
  columns?: Responsive<string>;
4
4
  };
@@ -24,7 +24,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  var styled_components_1 = __importStar(require("styled-components"));
27
- var responsiveProps_1 = require("../utils/responsiveProps");
27
+ var responsiveProps_1 = require("../../../responsiveness/responsiveProps");
28
28
  var FormGrid = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n margin: 0 -8px -16px -8px;\n\n display: -ms-grid;\n display: grid;\n\n -ms-grid-columns: 1fr; \n \n ", "\n"], ["\n margin: 0 -8px -16px -8px;\n\n display: -ms-grid;\n display: grid;\n\n -ms-grid-columns: 1fr; \n \n ", "\n"])), function (props) { return (0, responsiveProps_1.responsiveProps)(props, {
29
29
  columns: function (string) { return (0, styled_components_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n -ms-grid-columns: ", "; \n grid-template-columns: ", ";\n "], ["\n -ms-grid-columns: ", "; \n grid-template-columns: ", ";\n "])), string, string); }
30
30
  }); });
@@ -1,4 +1,4 @@
1
- import { Responsive } from "../utils/responsiveProps";
1
+ import { Responsive } from "../../../responsiveness/responsiveProps";
2
2
  export declare type Dimensions = {
3
3
  row?: number;
4
4
  rowSpan?: number;
@@ -25,7 +25,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.FormGridCell = void 0;
27
27
  var styled_components_1 = __importStar(require("styled-components"));
28
- var responsiveProps_1 = require("../utils/responsiveProps");
28
+ var responsiveProps_1 = require("../../../responsiveness/responsiveProps");
29
29
  var NUM_ROWS_PER_FIELD = 2;
30
30
  // NOTE:
31
31
  //
@@ -75,5 +75,5 @@ export declare const scaffoldProps: {
75
75
  };
76
76
  };
77
77
  };
78
- columns: import("./utils/responsiveProps").Responsive<string>;
78
+ columns: import("../..").Responsive<string>;
79
79
  };
@@ -77,7 +77,7 @@ exports.scaffoldProps = new FormPositioner_1.FormPositioner({
77
77
  }
78
78
  }
79
79
  })
80
- .setHorizontal('mobile')
80
+ .setVertical('mobile')
81
81
  .setGrid('tablet', '1fr 1fr', [
82
82
  ['firstName', 'lastName'],
83
83
  ['description', 'avatar'],
@@ -1,4 +1,4 @@
1
- import { BreakPoint, Responsive } from "./responsiveProps";
1
+ import { BreakPoint, Responsive } from "../../../responsiveness/responsiveProps";
2
2
  import { Fields } from "../types";
3
3
  export declare class FormPositioner<T extends Fields, K extends keyof T> {
4
4
  protected fields: T;
@@ -8,7 +8,7 @@ var immer_1 = __importDefault(require("immer"));
8
8
  var chunk_1 = __importDefault(require("lodash/chunk"));
9
9
  var Grid_1 = require("./Grid");
10
10
  var assertGridIsValid_1 = require("./assertGridIsValid");
11
- var responsiveProps_1 = require("./responsiveProps");
11
+ var responsiveProps_1 = require("../../../responsiveness/responsiveProps");
12
12
  var equalColumns_1 = require("./equalColumns");
13
13
  var FormPositioner = /** @class */ (function () {
14
14
  function FormPositioner(fields, columns // -> ignore property, its used to pass along internally.
package/dist/index.d.ts CHANGED
@@ -10,6 +10,7 @@ export * from './components/ConfirmModal/ConfirmModal';
10
10
  export * from './components/Details/Details';
11
11
  export * from './components/Dropdown/Dropdown';
12
12
  export * from './components/Dropzone/Dropzone';
13
+ export * from './components/Floater/Floater';
13
14
  export * from './components/Footer/Footer';
14
15
  export * from './components/Menu/HamburgerButton';
15
16
  export * from './components/Menu/Menu';
@@ -38,7 +39,8 @@ export * from './form/ScaffoldForm/ScaffoldForm';
38
39
  export * from './form/ScaffoldForm/ScaffoldField';
39
40
  export * from './form/ScaffoldForm/ScaffoldFormProvider';
40
41
  export * from './form/ScaffoldForm/types';
41
- export * from './form/ScaffoldForm/utils/responsiveProps';
42
+ export * from './responsiveness/responsiveProps';
43
+ export * from './responsiveness/useResponsiveBreakpoints';
42
44
  export * from './typography/Header/Header';
43
45
  export * from './typography/Paragraph/Paragraph';
44
46
  export * from './theme';
package/dist/index.js CHANGED
@@ -22,6 +22,7 @@ __exportStar(require("./components/ConfirmModal/ConfirmModal"), exports);
22
22
  __exportStar(require("./components/Details/Details"), exports);
23
23
  __exportStar(require("./components/Dropdown/Dropdown"), exports);
24
24
  __exportStar(require("./components/Dropzone/Dropzone"), exports);
25
+ __exportStar(require("./components/Floater/Floater"), exports);
25
26
  __exportStar(require("./components/Footer/Footer"), exports);
26
27
  __exportStar(require("./components/Menu/HamburgerButton"), exports);
27
28
  __exportStar(require("./components/Menu/Menu"), exports);
@@ -50,7 +51,8 @@ __exportStar(require("./form/ScaffoldForm/ScaffoldForm"), exports);
50
51
  __exportStar(require("./form/ScaffoldForm/ScaffoldField"), exports);
51
52
  __exportStar(require("./form/ScaffoldForm/ScaffoldFormProvider"), exports);
52
53
  __exportStar(require("./form/ScaffoldForm/types"), exports);
53
- __exportStar(require("./form/ScaffoldForm/utils/responsiveProps"), exports);
54
+ __exportStar(require("./responsiveness/responsiveProps"), exports);
55
+ __exportStar(require("./responsiveness/useResponsiveBreakpoints"), exports);
54
56
  __exportStar(require("./typography/Header/Header"), exports);
55
57
  __exportStar(require("./typography/Paragraph/Paragraph"), exports);
56
58
  __exportStar(require("./theme"), exports);
@@ -25,7 +25,7 @@ var TopBar_1 = require("../../components/TopBar/TopBar");
25
25
  var Box_1 = require("../../components/Box/Box");
26
26
  var Footer_1 = require("../../components/Footer/Footer");
27
27
  var constants_1 = require("../constants");
28
- var responsiveProps_1 = require("../../form/ScaffoldForm/utils/responsiveProps");
28
+ var responsiveProps_1 = require("../../responsiveness/responsiveProps");
29
29
  var Button_1 = require("../../form/Button/Button");
30
30
  var SideBar_1 = require("../../components/Menu/SideBar");
31
31
  var Wrapper = (0, styled_components_1.default)(Box_1.Box)(templateObject_1 || (templateObject_1 = __makeTemplateObject([" \n background-color: #F3F3F4;\n"], [" \n background-color: #F3F3F4;\n"])));
@@ -37,7 +37,7 @@ var BasicLayout = function (_a) {
37
37
  sideBarProps && (react_1.default.createElement(SideBar_1.SideBar, __assign({}, sideBarProps))),
38
38
  react_1.default.createElement(Box_1.Box, { flexGrow: 1, display: "flex", flexDirection: "column" },
39
39
  react_1.default.createElement(TopBar_1.TopBar, __assign({}, topBarProps)),
40
- react_1.default.createElement(Box_1.Box, { p: constants_1.VerticalRhythm, flexGrow: 1 }, isLoading && loader
40
+ react_1.default.createElement(Box_1.Box, { p: { laptop: constants_1.VerticalRhythmLaptop, mobile: constants_1.VerticalRhythmMobile }, flexGrow: 1 }, isLoading && loader
41
41
  ? loader
42
42
  : children),
43
43
  react_1.default.createElement(Footer_1.Footer, __assign({}, footerProps))))));
@@ -25,7 +25,7 @@ var Box_1 = require("../../components/Box/Box");
25
25
  var Panel_1 = require("../../components/Panel/Panel");
26
26
  var SlideInFromTop_1 = require("../../animation/SlideInFromTop/SlideInFromTop");
27
27
  var constants_1 = require("../constants");
28
- var responsiveProps_1 = require("../../form/ScaffoldForm/utils/responsiveProps");
28
+ var responsiveProps_1 = require("../../responsiveness/responsiveProps");
29
29
  var Wrapper = (0, styled_components_1.default)(Box_1.Box)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n position: absolute;\n min-width: 100%;\n min-height: 100%;\n background: url(\"", "\");\n background-size: cover;\n"], ["\n position: absolute;\n min-width: 100%;\n min-height: 100%;\n background: url(\"", "\");\n background-size: cover;\n"])), function (props) { return props.imageUrl; });
30
30
  var StyledAnimation = (0, styled_components_1.default)(SlideInFromTop_1.SlideInFromTop)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n margin: auto auto;\n"], ["\n margin: auto auto;\n"])));
31
31
  var StyledPanel = (0, styled_components_1.default)(Panel_1.Panel)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n box-shadow: 0 8px 8px 0 rgba(34,36,38,.15); \n min-width: 280px; \n"], ["\n box-shadow: 0 8px 8px 0 rgba(34,36,38,.15); \n min-width: 280px; \n"])));
@@ -35,7 +35,7 @@ var FloatingPanelLayout = function (_a) {
35
35
  return (react_1.default.createElement(Wrapper, { display: "flex", alignItems: "center", imageUrl: imageUrl },
36
36
  logoUrl && (react_1.default.createElement(Logo, { src: logoUrl, alt: "Logo" })),
37
37
  react_1.default.createElement(StyledAnimation, null,
38
- alert && (react_1.default.createElement(Box_1.Box, { pb: constants_1.VerticalRhythm }, alert)),
38
+ alert && (react_1.default.createElement(Box_1.Box, { pb: constants_1.VerticalRhythmLaptop }, alert)),
39
39
  react_1.default.createElement(StyledPanel, __assign({}, panelProps)))));
40
40
  };
41
41
  exports.FloatingPanelLayout = FloatingPanelLayout;
@@ -1 +1,2 @@
1
- export declare const VerticalRhythm = 7;
1
+ export declare const VerticalRhythmLaptop = 7;
2
+ export declare const VerticalRhythmMobile = 4;
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.VerticalRhythm = void 0;
4
- exports.VerticalRhythm = 7;
3
+ exports.VerticalRhythmMobile = exports.VerticalRhythmLaptop = void 0;
4
+ exports.VerticalRhythmLaptop = 7;
5
+ exports.VerticalRhythmMobile = 4;
@@ -1,4 +1,5 @@
1
1
  export declare type BreakPoint = "mobile" | "tablet" | "laptop" | "desktop";
2
+ export declare const BreakPointValues: Record<BreakPoint, number>;
2
3
  export declare type OnlyResponsive<T> = {
3
4
  [key in BreakPoint]?: T;
4
5
  };
@@ -13,7 +13,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
13
13
  return to.concat(ar || Array.prototype.slice.call(from));
14
14
  };
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.responsiveProps = exports.isResponsiveObject = exports.mq = void 0;
16
+ exports.responsiveProps = exports.isResponsiveObject = exports.mq = exports.BreakPointValues = void 0;
17
17
  var styled_components_1 = require("styled-components");
18
18
  var breakPoints = [
19
19
  "mobile",
@@ -21,8 +21,8 @@ var breakPoints = [
21
21
  "laptop",
22
22
  "desktop",
23
23
  ];
24
- var BreakPointValues = {
25
- mobile: 414,
24
+ exports.BreakPointValues = {
25
+ mobile: 0,
26
26
  tablet: 768,
27
27
  laptop: 1024,
28
28
  desktop: 1430,
@@ -30,7 +30,7 @@ var BreakPointValues = {
30
30
  /**
31
31
  * Wraps given cssRules in the corresponding media-query:
32
32
  */
33
- var mq = function (bk, cssRules) { return (0, styled_components_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n @media screen and (min-width: ", "px) {\n ", " \n } \n"], ["\n @media screen and (min-width: ", "px) {\n ", " \n } \n"])), BreakPointValues[bk], cssRules); };
33
+ var mq = function (bk, cssRules) { return (0, styled_components_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n @media screen and (min-width: ", "px) {\n ", " \n } \n"], ["\n @media screen and (min-width: ", "px) {\n ", " \n } \n"])), exports.BreakPointValues[bk], cssRules); };
34
34
  exports.mq = mq;
35
35
  var isResponsiveObject = function (obj) {
36
36
  if (typeof obj !== "object") {
@@ -0,0 +1,6 @@
1
+ export declare const useResponsiveBreakpoints: () => {
2
+ isMobile: boolean;
3
+ isTablet: boolean;
4
+ isLaptop: boolean;
5
+ isDesktop: boolean;
6
+ };
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.useResponsiveBreakpoints = void 0;
7
+ var react_1 = __importDefault(require("react"));
8
+ var responsiveProps_1 = require("./responsiveProps");
9
+ var useResponsiveBreakpoints = function () {
10
+ var _a = react_1.default.useState(window.innerWidth), windowWidth = _a[0], setWindowWidth = _a[1];
11
+ react_1.default.useEffect(function () {
12
+ var onResize = function () { return setWindowWidth(window.innerWidth); };
13
+ window.addEventListener('resize', onResize);
14
+ return function () { return window.removeEventListener('resize', onResize); };
15
+ }, []);
16
+ var responsiveMap = react_1.default.useMemo(function () { return ({
17
+ isMobile: windowWidth >= responsiveProps_1.BreakPointValues.mobile,
18
+ isTablet: windowWidth >= responsiveProps_1.BreakPointValues.tablet,
19
+ isLaptop: windowWidth >= responsiveProps_1.BreakPointValues.laptop,
20
+ isDesktop: windowWidth >= responsiveProps_1.BreakPointValues.desktop
21
+ }); }, [windowWidth]);
22
+ return responsiveMap;
23
+ };
24
+ exports.useResponsiveBreakpoints = useResponsiveBreakpoints;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "quicksnack",
3
3
  "description": "Quickly create beautiful admin layouts using react",
4
- "version": "2.0.0",
4
+ "version": "3.1.1",
5
5
  "private": false,
6
6
  "files": [
7
7
  "dist/**"