@makeswift/runtime 0.0.20 → 0.1.0-next.0
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.
- package/dist/Box.cjs.js +502 -0
- package/dist/Box.cjs.js.map +1 -0
- package/dist/Box.es.js +496 -0
- package/dist/Box.es.js.map +1 -0
- package/dist/Button.cjs.js +308 -0
- package/dist/Button.cjs.js.map +1 -0
- package/dist/Button.es.js +301 -0
- package/dist/Button.es.js.map +1 -0
- package/dist/Carousel.cjs.js +487 -0
- package/dist/Carousel.cjs.js.map +1 -0
- package/dist/Carousel.es.js +481 -0
- package/dist/Carousel.es.js.map +1 -0
- package/dist/Countdown.cjs.js +340 -0
- package/dist/Countdown.cjs.js.map +1 -0
- package/dist/Countdown.es.js +334 -0
- package/dist/Countdown.es.js.map +1 -0
- package/dist/Divider.cjs.js +115 -0
- package/dist/Divider.cjs.js.map +1 -0
- package/dist/Divider.es.js +109 -0
- package/dist/Divider.es.js.map +1 -0
- package/dist/Embed.cjs.js +129 -0
- package/dist/Embed.cjs.js.map +1 -0
- package/dist/Embed.es.js +123 -0
- package/dist/Embed.es.js.map +1 -0
- package/dist/Form.cjs.js +1705 -0
- package/dist/Form.cjs.js.map +1 -0
- package/dist/Form.es.js +1677 -0
- package/dist/Form.es.js.map +1 -0
- package/dist/Image.cjs2.js +148 -0
- package/dist/Image.cjs2.js.map +1 -0
- package/dist/Image.es2.js +141 -0
- package/dist/Image.es2.js.map +1 -0
- package/dist/Navigation.cjs.js +736 -0
- package/dist/Navigation.cjs.js.map +1 -0
- package/dist/Navigation.es.js +710 -0
- package/dist/Navigation.es.js.map +1 -0
- package/dist/Root.cjs.js +143 -0
- package/dist/Root.cjs.js.map +1 -0
- package/dist/Root.es.js +137 -0
- package/dist/Root.es.js.map +1 -0
- package/dist/SocialLinks.cjs.js +900 -0
- package/dist/SocialLinks.cjs.js.map +1 -0
- package/dist/SocialLinks.es.js +874 -0
- package/dist/SocialLinks.es.js.map +1 -0
- package/dist/Text.cjs.js +475 -0
- package/dist/Text.cjs.js.map +1 -0
- package/dist/Text.es.js +467 -0
- package/dist/Text.es.js.map +1 -0
- package/dist/Video.cjs.js +121 -0
- package/dist/Video.cjs.js.map +1 -0
- package/dist/Video.es.js +114 -0
- package/dist/Video.es.js.map +1 -0
- package/dist/builder.cjs.js +1 -0
- package/dist/builder.cjs.js.map +1 -1
- package/dist/builder.es.js +1 -0
- package/dist/builder.es.js.map +1 -1
- package/dist/color.cjs.js +8 -0
- package/dist/color.cjs.js.map +1 -0
- package/dist/color.es.js +6 -0
- package/dist/color.es.js.map +1 -0
- package/dist/components.cjs.js +81 -58
- package/dist/components.cjs.js.map +1 -1
- package/dist/components.es.js +42 -18
- package/dist/components.es.js.map +1 -1
- package/dist/control-serialization.cjs.js +1 -0
- package/dist/control-serialization.cjs.js.map +1 -1
- package/dist/control-serialization.es.js +1 -0
- package/dist/control-serialization.es.js.map +1 -1
- package/dist/controls.cjs.js +7 -5
- package/dist/controls.cjs.js.map +1 -1
- package/dist/controls.es.js +2 -1
- package/dist/controls.es.js.map +1 -1
- package/dist/cssMediaRules.cjs.js +222 -0
- package/dist/cssMediaRules.cjs.js.map +1 -0
- package/dist/cssMediaRules.es.js +213 -0
- package/dist/cssMediaRules.es.js.map +1 -0
- package/dist/descriptors.cjs.js.map +1 -1
- package/dist/descriptors.es.js +1 -1
- package/dist/descriptors.es.js.map +1 -1
- package/dist/image.cjs.js +6 -6
- package/dist/image.cjs.js.map +1 -1
- package/dist/image.es.js +6 -5
- package/dist/image.es.js.map +1 -1
- package/dist/index.cjs.js +1454 -7774
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.cjs2.js +522 -0
- package/dist/index.cjs2.js.map +1 -0
- package/dist/index.cjs3.js +141 -0
- package/dist/index.cjs3.js.map +1 -0
- package/dist/index.cjs4.js +18 -0
- package/dist/index.cjs4.js.map +1 -0
- package/dist/index.es.js +1354 -7699
- package/dist/index.es.js.map +1 -1
- package/dist/index.es2.js +514 -0
- package/dist/index.es2.js.map +1 -0
- package/dist/index.es3.js +134 -0
- package/dist/index.es3.js.map +1 -0
- package/dist/index.es4.js +13 -0
- package/dist/index.es4.js.map +1 -0
- package/dist/main.cjs.js +1 -0
- package/dist/main.cjs.js.map +1 -1
- package/dist/main.es.js +1 -0
- package/dist/main.es.js.map +1 -1
- package/dist/next.cjs.js +20 -201
- package/dist/next.cjs.js.map +1 -1
- package/dist/next.es.js +13 -192
- package/dist/next.es.js.map +1 -1
- package/dist/placeholders.cjs.js +13 -0
- package/dist/placeholders.cjs.js.map +1 -0
- package/dist/placeholders.es.js +12 -0
- package/dist/placeholders.es.js.map +1 -0
- package/dist/react-builder-preview.cjs.js +23 -32
- package/dist/react-builder-preview.cjs.js.map +1 -1
- package/dist/react-builder-preview.es.js +13 -22
- package/dist/react-builder-preview.es.js.map +1 -1
- package/dist/react-page.cjs.js +5 -4
- package/dist/react-page.cjs.js.map +1 -1
- package/dist/react-page.es.js +3 -2
- package/dist/react-page.es.js.map +1 -1
- package/dist/react.cjs.js +17 -28
- package/dist/react.cjs.js.map +1 -1
- package/dist/react.es.js +9 -20
- package/dist/react.es.js.map +1 -1
- package/dist/types/components/builtin/Box/Box.d.ts +1 -4
- package/dist/types/components/builtin/Box/Box.d.ts.map +1 -1
- package/dist/types/components/builtin/Box/animations.d.ts +1 -8
- package/dist/types/components/builtin/Box/animations.d.ts.map +1 -1
- package/dist/types/components/builtin/Box/constants.d.ts +9 -0
- package/dist/types/components/builtin/Box/constants.d.ts.map +1 -0
- package/dist/types/components/builtin/Box/contants.d.ts +9 -0
- package/dist/types/components/builtin/Box/contants.d.ts.map +1 -0
- package/dist/types/components/builtin/Box/index.d.ts +2 -2
- package/dist/types/components/builtin/Box/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Box/register.d.ts +3 -0
- package/dist/types/components/builtin/Box/register.d.ts.map +1 -0
- package/dist/types/components/builtin/Button/Button.d.ts +1 -4
- package/dist/types/components/builtin/Button/Button.d.ts.map +1 -1
- package/dist/types/components/builtin/Button/constants.d.ts +2 -0
- package/dist/types/components/builtin/Button/constants.d.ts.map +1 -0
- package/dist/types/components/builtin/Button/contants.d.ts +2 -0
- package/dist/types/components/builtin/Button/contants.d.ts.map +1 -0
- package/dist/types/components/builtin/Button/index.d.ts +1 -1
- package/dist/types/components/builtin/Button/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Button/register.d.ts +3 -0
- package/dist/types/components/builtin/Button/register.d.ts.map +1 -0
- package/dist/types/components/builtin/Carousel/Carousel.d.ts +0 -3
- package/dist/types/components/builtin/Carousel/Carousel.d.ts.map +1 -1
- package/dist/types/components/builtin/Carousel/index.d.ts +1 -1
- package/dist/types/components/builtin/Carousel/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Carousel/register.d.ts +3 -0
- package/dist/types/components/builtin/Carousel/register.d.ts.map +1 -0
- package/dist/types/components/builtin/Countdown/Countdown.d.ts +0 -3
- package/dist/types/components/builtin/Countdown/Countdown.d.ts.map +1 -1
- package/dist/types/components/builtin/Countdown/index.d.ts +1 -1
- package/dist/types/components/builtin/Countdown/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Countdown/register.d.ts +3 -0
- package/dist/types/components/builtin/Countdown/register.d.ts.map +1 -0
- package/dist/types/components/builtin/Divider/Divider.d.ts +0 -3
- package/dist/types/components/builtin/Divider/Divider.d.ts.map +1 -1
- package/dist/types/components/builtin/Divider/index.d.ts +1 -1
- package/dist/types/components/builtin/Divider/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Divider/register.d.ts +3 -0
- package/dist/types/components/builtin/Divider/register.d.ts.map +1 -0
- package/dist/types/components/builtin/Embed/Embed.d.ts +0 -3
- package/dist/types/components/builtin/Embed/Embed.d.ts.map +1 -1
- package/dist/types/components/builtin/Embed/index.d.ts +1 -1
- package/dist/types/components/builtin/Embed/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Embed/register.d.ts +3 -0
- package/dist/types/components/builtin/Embed/register.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/Form.d.ts +1 -10
- package/dist/types/components/builtin/Form/Form.d.ts.map +1 -1
- package/dist/types/components/builtin/Form/constants.d.ts +1 -0
- package/dist/types/components/builtin/Form/constants.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/context/FormContext.d.ts +6 -0
- package/dist/types/components/builtin/Form/context/FormContext.d.ts.map +1 -1
- package/dist/types/components/builtin/Form/index.d.ts +1 -1
- package/dist/types/components/builtin/Form/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Form/register.d.ts +3 -0
- package/dist/types/components/builtin/Form/register.d.ts.map +1 -0
- package/dist/types/components/builtin/Image/Image.d.ts +0 -3
- package/dist/types/components/builtin/Image/Image.d.ts.map +1 -1
- package/dist/types/components/builtin/Image/index.d.ts +1 -1
- package/dist/types/components/builtin/Image/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Image/register.d.ts +3 -0
- package/dist/types/components/builtin/Image/register.d.ts.map +1 -0
- package/dist/types/components/builtin/Navigation/Navigation.d.ts +0 -3
- package/dist/types/components/builtin/Navigation/Navigation.d.ts.map +1 -1
- package/dist/types/components/builtin/Navigation/index.d.ts +1 -1
- package/dist/types/components/builtin/Navigation/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Navigation/register.d.ts +3 -0
- package/dist/types/components/builtin/Navigation/register.d.ts.map +1 -0
- package/dist/types/components/builtin/Root/Root.d.ts +0 -2
- package/dist/types/components/builtin/Root/Root.d.ts.map +1 -1
- package/dist/types/components/builtin/Root/index.d.ts +1 -1
- package/dist/types/components/builtin/Root/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Root/register.d.ts +3 -0
- package/dist/types/components/builtin/Root/register.d.ts.map +1 -0
- package/dist/types/components/builtin/SocialLinks/SocialLinks.d.ts +0 -3
- package/dist/types/components/builtin/SocialLinks/SocialLinks.d.ts.map +1 -1
- package/dist/types/components/builtin/SocialLinks/index.d.ts +1 -1
- package/dist/types/components/builtin/SocialLinks/index.d.ts.map +1 -1
- package/dist/types/components/builtin/SocialLinks/register.d.ts +3 -0
- package/dist/types/components/builtin/SocialLinks/register.d.ts.map +1 -0
- package/dist/types/components/builtin/Text/Text.d.ts +0 -3
- package/dist/types/components/builtin/Text/Text.d.ts.map +1 -1
- package/dist/types/components/builtin/Text/index.d.ts +1 -1
- package/dist/types/components/builtin/Text/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Text/register.d.ts +3 -0
- package/dist/types/components/builtin/Text/register.d.ts.map +1 -0
- package/dist/types/components/builtin/Video/Video.d.ts +0 -3
- package/dist/types/components/builtin/Video/Video.d.ts.map +1 -1
- package/dist/types/components/builtin/Video/index.d.ts +1 -1
- package/dist/types/components/builtin/Video/index.d.ts.map +1 -1
- package/dist/types/components/builtin/Video/register.d.ts +3 -0
- package/dist/types/components/builtin/Video/register.d.ts.map +1 -0
- package/dist/types/components/builtin/index.d.ts +1 -2
- package/dist/types/components/builtin/index.d.ts.map +1 -1
- package/dist/types/components/builtin/register.d.ts +3 -0
- package/dist/types/components/builtin/register.d.ts.map +1 -0
- package/dist/types/controls/image.d.ts +15 -3
- package/dist/types/controls/image.d.ts.map +1 -1
- package/dist/types/dynamic.d.ts +2 -0
- package/dist/types/dynamic.d.ts.map +1 -0
- package/dist/types/next/plugin.d.ts +3 -0
- package/dist/types/next/plugin.d.ts.map +1 -0
- package/dist/types/next.d.ts +12 -2
- package/dist/types/next.d.ts.map +1 -1
- package/dist/types/prop-controllers/descriptors.d.ts +2 -2
- package/dist/types/prop-controllers/descriptors.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/control.d.ts +2 -2
- package/dist/types/runtimes/react/controls/control.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/image.d.ts +12 -3
- package/dist/types/runtimes/react/controls/image.d.ts.map +1 -1
- package/dist/useBackgrounds.cjs.js +124 -0
- package/dist/useBackgrounds.cjs.js.map +1 -0
- package/dist/useBackgrounds.es.js +123 -0
- package/dist/useBackgrounds.es.js.map +1 -0
- package/dist/useBoxShadow.cjs.js +78 -0
- package/dist/useBoxShadow.cjs.js.map +1 -0
- package/dist/useBoxShadow.es.js +77 -0
- package/dist/useBoxShadow.es.js.map +1 -0
- package/dist/useMediaQuery.cjs.js +26 -0
- package/dist/useMediaQuery.cjs.js.map +1 -0
- package/dist/useMediaQuery.es.js +25 -0
- package/dist/useMediaQuery.es.js.map +1 -0
- package/dist/usePage.cjs.js +14 -0
- package/dist/usePage.cjs.js.map +1 -0
- package/dist/usePage.es.js +13 -0
- package/dist/usePage.es.js.map +1 -0
- package/dist/useTable.cjs.js +10 -0
- package/dist/useTable.cjs.js.map +1 -0
- package/dist/useTable.es.js +9 -0
- package/dist/useTable.es.js.map +1 -0
- package/next/plugin.js +1 -0
- package/package.json +4 -1
package/dist/controls.cjs.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
3
|
var textInput = require("./text-input.cjs.js");
|
|
4
|
-
var
|
|
4
|
+
var color = require("./color.cjs.js");
|
|
5
5
|
var shape = require("./shape.cjs.js");
|
|
6
|
+
var image = require("./image.cjs.js");
|
|
6
7
|
var style = require("./style.cjs.js");
|
|
7
8
|
exports.Checkbox = textInput.Checkbox;
|
|
8
9
|
exports.CheckboxControlType = textInput.CheckboxControlType;
|
|
@@ -14,16 +15,17 @@ exports.TextArea = textInput.TextArea;
|
|
|
14
15
|
exports.TextAreaControlType = textInput.TextAreaControlType;
|
|
15
16
|
exports.TextInput = textInput.TextInput;
|
|
16
17
|
exports.TextInputControlType = textInput.TextInputControlType;
|
|
17
|
-
exports.Color =
|
|
18
|
-
exports.ColorControlType =
|
|
19
|
-
exports.Image = image.Image;
|
|
20
|
-
exports.ImageControlType = image.ImageControlType;
|
|
18
|
+
exports.Color = color.Color;
|
|
19
|
+
exports.ColorControlType = color.ColorControlType;
|
|
21
20
|
exports.Combobox = shape.Combobox;
|
|
22
21
|
exports.ComboboxControlType = shape.ComboboxControlType;
|
|
23
22
|
exports.List = shape.List;
|
|
24
23
|
exports.ListControlType = shape.ListControlType;
|
|
25
24
|
exports.Shape = shape.Shape;
|
|
26
25
|
exports.ShapeControlType = shape.ShapeControlType;
|
|
26
|
+
exports.Image = image.Image;
|
|
27
|
+
exports.ImageControlType = image.ImageControlType;
|
|
28
|
+
exports.ImageControlValueFormat = image.ImageControlValueFormat;
|
|
27
29
|
exports.Style = style.Style;
|
|
28
30
|
exports.StyleControlProperty = style.StyleControlProperty;
|
|
29
31
|
exports.StyleControlType = style.StyleControlType;
|
package/dist/controls.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controls.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"controls.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/controls.es.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { b as Checkbox, C as CheckboxControlType, c as Number, N as NumberControlType, d as Select, S as SelectControlType, e as TextArea, T as TextAreaControlType, f as TextInput, a as TextInputControlType } from "./text-input.es.js";
|
|
2
|
-
export { a as Color, C as ColorControlType
|
|
2
|
+
export { a as Color, C as ColorControlType } from "./color.es.js";
|
|
3
3
|
export { a as Combobox, C as ComboboxControlType, b as List, L as ListControlType, c as Shape, S as ShapeControlType } from "./shape.es.js";
|
|
4
|
+
export { b as Image, I as ImageControlType, a as ImageControlValueFormat } from "./image.es.js";
|
|
4
5
|
export { b as Style, a as StyleControlProperty, S as StyleControlType } from "./style.es.js";
|
|
5
6
|
//# sourceMappingURL=controls.es.js.map
|
package/dist/controls.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controls.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"controls.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var styled = require("styled-components");
|
|
3
|
+
var next = require("./index.cjs.js");
|
|
4
|
+
const getIndexes = (spans, index) => {
|
|
5
|
+
const flattened = spans.reduce((a, s) => a.concat(s), []);
|
|
6
|
+
if (index < 0 || index > flattened.length)
|
|
7
|
+
throw new RangeError();
|
|
8
|
+
let remainder = index;
|
|
9
|
+
let rowIndex = 0;
|
|
10
|
+
while (rowIndex < spans.length - 1 && remainder >= spans[rowIndex].length) {
|
|
11
|
+
remainder -= spans[rowIndex].length;
|
|
12
|
+
rowIndex += 1;
|
|
13
|
+
}
|
|
14
|
+
return [rowIndex, remainder];
|
|
15
|
+
};
|
|
16
|
+
function cssMediaRules(responsiveValues, join, strategy) {
|
|
17
|
+
return (props) => next.join(typeof responsiveValues === "function" ? responsiveValues(props) : responsiveValues, join, strategy).reduce((acc, { deviceId, value }) => {
|
|
18
|
+
const device = next.getDevice(deviceId);
|
|
19
|
+
const mediaQuery = next.getDeviceMediaQuery(device);
|
|
20
|
+
return styled.css`
|
|
21
|
+
${acc}${mediaQuery} {
|
|
22
|
+
${value}
|
|
23
|
+
}
|
|
24
|
+
`;
|
|
25
|
+
}, styled.css``);
|
|
26
|
+
}
|
|
27
|
+
function cssWidth(defaultValue = "100%") {
|
|
28
|
+
return (props) => styled.css`
|
|
29
|
+
max-width: 100%;
|
|
30
|
+
${cssMediaRules([props.width], ([width = defaultValue]) => styled.css`
|
|
31
|
+
width: ${typeof width === "object" ? `${width.value}${width.unit}` : width};
|
|
32
|
+
`)}
|
|
33
|
+
`;
|
|
34
|
+
}
|
|
35
|
+
function getMarginSide(marginSide) {
|
|
36
|
+
return typeof marginSide === "object" ? `${marginSide.value}${marginSide.unit}` : marginSide;
|
|
37
|
+
}
|
|
38
|
+
function cssMargin(defaultValue = {}) {
|
|
39
|
+
const defaultMarginTop = defaultValue.marginTop === void 0 ? 0 : defaultValue.marginTop;
|
|
40
|
+
const defaultMarginRight = defaultValue.marginRight === void 0 ? "auto" : defaultValue.marginRight;
|
|
41
|
+
const defaultMarginBottom = defaultValue.marginBottom === void 0 ? 0 : defaultValue.marginBottom;
|
|
42
|
+
const defaultMarginLeft = defaultValue.marginLeft === void 0 ? "auto" : defaultValue.marginLeft;
|
|
43
|
+
return (props) => styled.css`
|
|
44
|
+
${cssMediaRules([props.margin], ([
|
|
45
|
+
{
|
|
46
|
+
marginTop,
|
|
47
|
+
marginRight,
|
|
48
|
+
marginBottom,
|
|
49
|
+
marginLeft
|
|
50
|
+
} = {}
|
|
51
|
+
]) => styled.css`
|
|
52
|
+
margin-top: ${getMarginSide(marginTop || defaultMarginTop)};
|
|
53
|
+
margin-right: ${getMarginSide(marginRight || defaultMarginRight)};
|
|
54
|
+
margin-bottom: ${getMarginSide(marginBottom || defaultMarginBottom)};
|
|
55
|
+
margin-left: ${getMarginSide(marginLeft || defaultMarginLeft)};
|
|
56
|
+
`)}
|
|
57
|
+
`;
|
|
58
|
+
}
|
|
59
|
+
function getPaddingSide(paddingSide) {
|
|
60
|
+
return typeof paddingSide === "object" ? `${paddingSide.value}${paddingSide.unit}` : paddingSide;
|
|
61
|
+
}
|
|
62
|
+
function cssPadding(defaultValue = {}) {
|
|
63
|
+
const defaultPaddingTop = defaultValue.paddingTop === void 0 ? 0 : defaultValue.paddingTop;
|
|
64
|
+
const defaultPaddingRight = defaultValue.paddingRight === void 0 ? 0 : defaultValue.paddingRight;
|
|
65
|
+
const defaultPaddingBottom = defaultValue.paddingBottom === void 0 ? 0 : defaultValue.paddingBottom;
|
|
66
|
+
const defaultPaddingLeft = defaultValue.paddingLeft === void 0 ? 0 : defaultValue.paddingLeft;
|
|
67
|
+
return (props) => styled.css`
|
|
68
|
+
${cssMediaRules([props.padding], ([
|
|
69
|
+
{
|
|
70
|
+
paddingTop,
|
|
71
|
+
paddingRight,
|
|
72
|
+
paddingBottom,
|
|
73
|
+
paddingLeft
|
|
74
|
+
} = {}
|
|
75
|
+
]) => styled.css`
|
|
76
|
+
padding-top: ${getPaddingSide(paddingTop || defaultPaddingTop)};
|
|
77
|
+
padding-right: ${getPaddingSide(paddingRight || defaultPaddingRight)};
|
|
78
|
+
padding-bottom: ${getPaddingSide(paddingBottom || defaultPaddingBottom)};
|
|
79
|
+
padding-left: ${getPaddingSide(paddingLeft || defaultPaddingLeft)};
|
|
80
|
+
`)}
|
|
81
|
+
`;
|
|
82
|
+
}
|
|
83
|
+
const defaultBorderSide = { width: 0, style: "solid", color: null };
|
|
84
|
+
const getBorderSide = ({ width, style, color }) => `${width != null ? width : 0}px ${style} ${color != null ? next.colorToString(color) : "black"}`;
|
|
85
|
+
function cssBorder(defaultValue = {}) {
|
|
86
|
+
const defaultBorderTop = defaultValue.borderTop === void 0 ? defaultBorderSide : defaultValue.borderTop;
|
|
87
|
+
const defaultBorderRight = defaultValue.borderRight === void 0 ? defaultBorderSide : defaultValue.borderRight;
|
|
88
|
+
const defaultBorderBottom = defaultValue.borderBottom === void 0 ? defaultBorderSide : defaultValue.borderBottom;
|
|
89
|
+
const defaultBorderLeft = defaultValue.borderLeft === void 0 ? defaultBorderSide : defaultValue.borderLeft;
|
|
90
|
+
return (props) => styled.css`
|
|
91
|
+
${cssMediaRules([props.border], ([
|
|
92
|
+
{
|
|
93
|
+
borderTop,
|
|
94
|
+
borderRight,
|
|
95
|
+
borderBottom,
|
|
96
|
+
borderLeft
|
|
97
|
+
} = {}
|
|
98
|
+
]) => styled.css`
|
|
99
|
+
border-top: ${getBorderSide(borderTop || defaultBorderTop)};
|
|
100
|
+
border-right: ${getBorderSide(borderRight || defaultBorderRight)};
|
|
101
|
+
border-bottom: ${getBorderSide(borderBottom || defaultBorderBottom)};
|
|
102
|
+
border-left: ${getBorderSide(borderLeft || defaultBorderLeft)};
|
|
103
|
+
`)}
|
|
104
|
+
`;
|
|
105
|
+
}
|
|
106
|
+
function getBorderRadiusCorner(borderRadiusCorner) {
|
|
107
|
+
return typeof borderRadiusCorner === "object" ? `${borderRadiusCorner.value}${borderRadiusCorner.unit}` : borderRadiusCorner;
|
|
108
|
+
}
|
|
109
|
+
function cssBorderRadius(defaultValue = {}) {
|
|
110
|
+
const defaultBorderTopLeftRadius = defaultValue.borderTopLeftRadius === void 0 ? 0 : defaultValue.borderTopLeftRadius;
|
|
111
|
+
const defaultBorderTopRightRadius = defaultValue.borderTopRightRadius === void 0 ? 0 : defaultValue.borderTopRightRadius;
|
|
112
|
+
const defaultPaddingBottom = defaultValue.borderBottomLeftRadius === void 0 ? 0 : defaultValue.borderBottomLeftRadius;
|
|
113
|
+
const defaultPaddingLeft = defaultValue.borderBottomRightRadius === void 0 ? 0 : defaultValue.borderBottomRightRadius;
|
|
114
|
+
return (props) => styled.css`
|
|
115
|
+
${cssMediaRules([props.borderRadius], ([
|
|
116
|
+
{
|
|
117
|
+
borderTopLeftRadius,
|
|
118
|
+
borderTopRightRadius,
|
|
119
|
+
borderBottomLeftRadius,
|
|
120
|
+
borderBottomRightRadius
|
|
121
|
+
} = {}
|
|
122
|
+
]) => styled.css`
|
|
123
|
+
border-top-left-radius: ${getBorderRadiusCorner(borderTopLeftRadius || defaultBorderTopLeftRadius)};
|
|
124
|
+
border-top-right-radius: ${getBorderRadiusCorner(borderTopRightRadius || defaultBorderTopRightRadius)};
|
|
125
|
+
border-bottom-left-radius: ${getBorderRadiusCorner(borderBottomLeftRadius || defaultPaddingBottom)};
|
|
126
|
+
border-bottom-right-radius: ${getBorderRadiusCorner(borderBottomRightRadius || defaultPaddingLeft)};
|
|
127
|
+
`)}
|
|
128
|
+
`;
|
|
129
|
+
}
|
|
130
|
+
const getBoxShadow = (shadows) => shadows.map(({ payload: { inset, offsetX, offsetY, blurRadius, spreadRadius, color } }) => `${inset ? "inset " : ""}${offsetX.toFixed(1)}px ${offsetY.toFixed(1)}px ${blurRadius}px ${spreadRadius}px ${color != null ? next.colorToString(color) : "rgba(0,0,0,0.2)"}`).filter(Boolean).join();
|
|
131
|
+
function cssBoxShadow(defaultValue = []) {
|
|
132
|
+
return (props) => styled.css`
|
|
133
|
+
${cssMediaRules([props.boxShadow], ([boxShadow = defaultValue]) => styled.css`
|
|
134
|
+
box-shadow: ${getBoxShadow(boxShadow)};
|
|
135
|
+
`)}
|
|
136
|
+
`;
|
|
137
|
+
}
|
|
138
|
+
const floor = (d) => (v) => Math.floor(10 ** d * v) / 10 ** d;
|
|
139
|
+
function cssGridItem() {
|
|
140
|
+
return (props) => styled.css`
|
|
141
|
+
display: flex;
|
|
142
|
+
|
|
143
|
+
/* TODO: A default span of 12 won't work once the column count is modifiable. */
|
|
144
|
+
${cssMediaRules([props.grid, props.columnGap, props.rowGap], ([
|
|
145
|
+
{ spans, count } = { spans: [[12]], count: 12 },
|
|
146
|
+
columnGap = { value: 0, unit: "px" },
|
|
147
|
+
rowGap = { value: 0, unit: "px" }
|
|
148
|
+
]) => {
|
|
149
|
+
const [rowIndex, columnIndex] = getIndexes(spans, props.index);
|
|
150
|
+
const firstCol = columnIndex === 0;
|
|
151
|
+
const lastCol = columnIndex === spans[rowIndex].length - 1;
|
|
152
|
+
const span = spans[rowIndex][columnIndex];
|
|
153
|
+
const fraction = floor(5)(span / count);
|
|
154
|
+
const width = `${fraction} * (100% + ${columnGap.value}${columnGap.unit})`;
|
|
155
|
+
const excessWidth = `${Number(firstCol) + Number(lastCol)} * ${columnGap.value}${columnGap.unit} / 2`;
|
|
156
|
+
const iePrecisionError = "0.01px";
|
|
157
|
+
const flexBasis = `calc(${width} - ${excessWidth} - ${iePrecisionError})`;
|
|
158
|
+
const firstRow = rowIndex === 0;
|
|
159
|
+
const lastRow = rowIndex === spans.length - 1;
|
|
160
|
+
return span === 0 ? { display: "none" } : {
|
|
161
|
+
flexBasis,
|
|
162
|
+
minWidth: flexBasis,
|
|
163
|
+
maxWidth: flexBasis,
|
|
164
|
+
paddingLeft: firstCol ? 0 : `${columnGap.value / 2}${columnGap.unit}`,
|
|
165
|
+
paddingRight: lastCol ? 0 : `${columnGap.value / 2}${columnGap.unit}`,
|
|
166
|
+
paddingTop: firstRow ? 0 : `${rowGap.value / 2}${rowGap.unit}`,
|
|
167
|
+
paddingBottom: lastRow ? 0 : `${rowGap.value / 2}${rowGap.unit}`
|
|
168
|
+
};
|
|
169
|
+
})}
|
|
170
|
+
`;
|
|
171
|
+
}
|
|
172
|
+
function cssTextStyle(defaultValue = {
|
|
173
|
+
fontFamily: null,
|
|
174
|
+
letterSpacing: null,
|
|
175
|
+
fontSize: null,
|
|
176
|
+
fontWeight: null,
|
|
177
|
+
textTransform: [],
|
|
178
|
+
fontStyle: []
|
|
179
|
+
}) {
|
|
180
|
+
return (props) => styled.css`
|
|
181
|
+
${cssMediaRules([props.textStyle], ([textStyle = defaultValue]) => {
|
|
182
|
+
const {
|
|
183
|
+
fontSize,
|
|
184
|
+
fontWeight,
|
|
185
|
+
fontStyle = [],
|
|
186
|
+
textTransform = [],
|
|
187
|
+
letterSpacing,
|
|
188
|
+
fontFamily
|
|
189
|
+
} = textStyle;
|
|
190
|
+
return styled.css`
|
|
191
|
+
${fontFamily != null ? styled.css`
|
|
192
|
+
font-family: '${fontFamily}';
|
|
193
|
+
` : ""};
|
|
194
|
+
${fontWeight != null ? styled.css`
|
|
195
|
+
font-weight: ${fontWeight};
|
|
196
|
+
` : ""};
|
|
197
|
+
${letterSpacing != null ? styled.css`
|
|
198
|
+
letter-spacing: ${letterSpacing}px;
|
|
199
|
+
` : ""};
|
|
200
|
+
${fontSize != null ? styled.css`
|
|
201
|
+
font-size: ${`${fontSize.value}${fontSize.unit}`};
|
|
202
|
+
` : ""};
|
|
203
|
+
${textTransform.includes("uppercase") ? styled.css`
|
|
204
|
+
text-transform: uppercase;
|
|
205
|
+
` : ""};
|
|
206
|
+
${fontStyle.includes("italic") ? styled.css`
|
|
207
|
+
font-style: italic;
|
|
208
|
+
` : ""};
|
|
209
|
+
`;
|
|
210
|
+
})}
|
|
211
|
+
`;
|
|
212
|
+
}
|
|
213
|
+
exports.cssBorder = cssBorder;
|
|
214
|
+
exports.cssBorderRadius = cssBorderRadius;
|
|
215
|
+
exports.cssBoxShadow = cssBoxShadow;
|
|
216
|
+
exports.cssGridItem = cssGridItem;
|
|
217
|
+
exports.cssMargin = cssMargin;
|
|
218
|
+
exports.cssMediaRules = cssMediaRules;
|
|
219
|
+
exports.cssPadding = cssPadding;
|
|
220
|
+
exports.cssTextStyle = cssTextStyle;
|
|
221
|
+
exports.cssWidth = cssWidth;
|
|
222
|
+
//# sourceMappingURL=cssMediaRules.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cssMediaRules.cjs.js","sources":["../src/components/utils/columns.ts","../src/components/utils/cssMediaRules.ts"],"sourcesContent":["export const getIndexes = (spans: Array<Array<number>>, index: number): [number, number] => {\n const flattened = spans.reduce((a, s) => a.concat(s), [])\n\n if (index < 0 || index > flattened.length) throw new RangeError()\n\n let remainder = index\n let rowIndex = 0\n\n while (rowIndex < spans.length - 1 && remainder >= spans[rowIndex].length) {\n remainder -= spans[rowIndex].length\n rowIndex += 1\n }\n\n return [rowIndex, remainder]\n}\n","import { css, CSSObject } from 'styled-components'\nimport {\n WidthProperty,\n MarginProperty,\n MarginTopProperty,\n MarginRightProperty,\n MarginBottomProperty,\n MarginLeftProperty,\n PaddingProperty,\n PaddingTopProperty,\n PaddingRightProperty,\n PaddingBottomProperty,\n PaddingLeftProperty,\n BorderRadiusProperty,\n BorderTopLeftRadiusProperty,\n BorderTopRightRadiusProperty,\n BorderBottomLeftRadiusProperty,\n BorderBottomRightRadiusProperty,\n} from 'csstype'\n\nimport {\n ResponsiveValue,\n ResponsiveValueType as ExtractResponsiveValue,\n Length as LengthValue,\n} from '../../prop-controllers'\nimport {\n FallbackStrategy,\n getDevice,\n getDeviceMediaQuery,\n join as joinResponsiveValues,\n} from './devices'\nimport { getIndexes } from './columns'\nimport {\n BorderRadiusValue,\n MarginValue,\n PaddingValue,\n TextStyleValue,\n WidthValue,\n} from '../../prop-controllers/descriptors'\nimport { colorToString } from './colorToString'\nimport {\n BorderSide,\n BorderPropControllerData,\n BoxShadowData,\n BoxShadowPropControllerData,\n} from '../hooks'\n\ntype CSSRules = ReturnType<typeof css>\n\nexport function cssMediaRules<V, A extends ReadonlyArray<ResponsiveValue<V> | null | undefined>, P>(\n responsiveValues: A | ((props: P) => A),\n join: (values: { [K in keyof A]: ExtractResponsiveValue<A[K]> | undefined }) =>\n | CSSRules\n | CSSObject,\n strategy?: FallbackStrategy<V>,\n): (props: P) => CSSRules {\n return props =>\n joinResponsiveValues(\n typeof responsiveValues === 'function' ? responsiveValues(props) : responsiveValues,\n join,\n strategy,\n ).reduce((acc, { deviceId, value }) => {\n const device = getDevice(deviceId)\n const mediaQuery = getDeviceMediaQuery(device)\n\n return css`\n ${acc}${mediaQuery} {\n ${value}\n }\n `\n }, css`` as CSSRules)\n}\n\nexport function cssWidth(\n defaultValue: LengthValue | WidthProperty<string | number> = '100%',\n): (props: { width?: WidthValue }) => CSSRules {\n return props => css`\n max-width: 100%;\n ${cssMediaRules(\n [props.width] as const,\n ([width = defaultValue]) => css`\n width: ${typeof width === 'object' ? `${width.value}${width.unit}` : width};\n `,\n )}\n `\n}\n\nfunction getMarginSide(marginSide: LengthValue | MarginProperty<string | number>) {\n return typeof marginSide === 'object' ? `${marginSide.value}${marginSide.unit}` : marginSide\n}\n\nexport function cssMargin(\n defaultValue: {\n marginTop?: LengthValue | MarginTopProperty<string | number>\n marginRight?: LengthValue | MarginRightProperty<string | number>\n marginBottom?: LengthValue | MarginBottomProperty<string | number>\n marginLeft?: LengthValue | MarginLeftProperty<string | number>\n } = {},\n): (props: { margin?: MarginValue }) => CSSRules {\n const defaultMarginTop = defaultValue.marginTop === undefined ? 0 : defaultValue.marginTop\n const defaultMarginRight =\n defaultValue.marginRight === undefined ? 'auto' : defaultValue.marginRight\n const defaultMarginBottom =\n defaultValue.marginBottom === undefined ? 0 : defaultValue.marginBottom\n const defaultMarginLeft = defaultValue.marginLeft === undefined ? 'auto' : defaultValue.marginLeft\n\n return props => css`\n ${cssMediaRules(\n [props.margin] as const,\n ([\n {\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n } = {} as ExtractResponsiveValue<MarginValue>,\n ]) => css`\n margin-top: ${getMarginSide(marginTop || defaultMarginTop)};\n margin-right: ${getMarginSide(marginRight || defaultMarginRight)};\n margin-bottom: ${getMarginSide(marginBottom || defaultMarginBottom)};\n margin-left: ${getMarginSide(marginLeft || defaultMarginLeft)};\n `,\n )}\n `\n}\n\nfunction getPaddingSide(paddingSide: LengthValue | PaddingProperty<string | number>) {\n return typeof paddingSide === 'object' ? `${paddingSide.value}${paddingSide.unit}` : paddingSide\n}\n\nexport function cssPadding(\n defaultValue: {\n paddingTop?: LengthValue | PaddingTopProperty<string | number>\n paddingRight?: LengthValue | PaddingRightProperty<string | number>\n paddingBottom?: LengthValue | PaddingBottomProperty<string | number>\n paddingLeft?: LengthValue | PaddingLeftProperty<string | number>\n } = {},\n): (props: { padding?: PaddingValue }) => CSSRules {\n const defaultPaddingTop = defaultValue.paddingTop === undefined ? 0 : defaultValue.paddingTop\n const defaultPaddingRight =\n defaultValue.paddingRight === undefined ? 0 : defaultValue.paddingRight\n const defaultPaddingBottom =\n defaultValue.paddingBottom === undefined ? 0 : defaultValue.paddingBottom\n const defaultPaddingLeft = defaultValue.paddingLeft === undefined ? 0 : defaultValue.paddingLeft\n\n return props => css`\n ${cssMediaRules(\n [props.padding] as const,\n ([\n {\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n } = {} as ExtractResponsiveValue<PaddingValue>,\n ]) => css`\n padding-top: ${getPaddingSide(paddingTop || defaultPaddingTop)};\n padding-right: ${getPaddingSide(paddingRight || defaultPaddingRight)};\n padding-bottom: ${getPaddingSide(paddingBottom || defaultPaddingBottom)};\n padding-left: ${getPaddingSide(paddingLeft || defaultPaddingLeft)};\n `,\n )}\n `\n}\n\nconst defaultBorderSide = { width: 0, style: 'solid', color: null }\n\nconst getBorderSide = ({ width, style, color }: BorderSide) =>\n `${width != null ? width : 0}px ${style} ${color != null ? colorToString(color) : 'black'}`\n\nexport function cssBorder(\n defaultValue: {\n borderTop?: BorderSide\n borderRight?: BorderSide\n borderBottom?: BorderSide\n borderLeft?: BorderSide\n } = {},\n): (props: { border?: BorderPropControllerData | null | undefined }) => CSSRules {\n const defaultBorderTop =\n defaultValue.borderTop === undefined ? defaultBorderSide : defaultValue.borderTop\n const defaultBorderRight =\n defaultValue.borderRight === undefined ? defaultBorderSide : defaultValue.borderRight\n const defaultBorderBottom =\n defaultValue.borderBottom === undefined ? defaultBorderSide : defaultValue.borderBottom\n const defaultBorderLeft =\n defaultValue.borderLeft === undefined ? defaultBorderSide : defaultValue.borderLeft\n\n return props => css`\n ${cssMediaRules(\n [props.border] as const,\n ([\n {\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n } = {} as ExtractResponsiveValue<BorderPropControllerData>,\n ]) => css`\n border-top: ${getBorderSide(borderTop || defaultBorderTop)};\n border-right: ${getBorderSide(borderRight || defaultBorderRight)};\n border-bottom: ${getBorderSide(borderBottom || defaultBorderBottom)};\n border-left: ${getBorderSide(borderLeft || defaultBorderLeft)};\n `,\n )}\n `\n}\n\nfunction getBorderRadiusCorner(\n borderRadiusCorner: LengthValue | BorderRadiusProperty<string | number>,\n) {\n return typeof borderRadiusCorner === 'object'\n ? `${borderRadiusCorner.value}${borderRadiusCorner.unit}`\n : borderRadiusCorner\n}\n\nexport function cssBorderRadius(\n defaultValue: {\n borderTopLeftRadius?: LengthValue | BorderTopLeftRadiusProperty<string | number>\n borderTopRightRadius?: LengthValue | BorderTopRightRadiusProperty<string | number>\n borderBottomLeftRadius?: LengthValue | BorderBottomLeftRadiusProperty<string | number>\n borderBottomRightRadius?: LengthValue | BorderBottomRightRadiusProperty<string | number>\n } = {},\n): (props: { borderRadius?: BorderRadiusValue }) => CSSRules {\n const defaultBorderTopLeftRadius =\n defaultValue.borderTopLeftRadius === undefined ? 0 : defaultValue.borderTopLeftRadius\n const defaultBorderTopRightRadius =\n defaultValue.borderTopRightRadius === undefined ? 0 : defaultValue.borderTopRightRadius\n const defaultPaddingBottom =\n defaultValue.borderBottomLeftRadius === undefined ? 0 : defaultValue.borderBottomLeftRadius\n const defaultPaddingLeft =\n defaultValue.borderBottomRightRadius === undefined ? 0 : defaultValue.borderBottomRightRadius\n\n return props => css`\n ${cssMediaRules(\n [props.borderRadius] as const,\n ([\n {\n borderTopLeftRadius,\n borderTopRightRadius,\n borderBottomLeftRadius,\n borderBottomRightRadius,\n } = {} as ExtractResponsiveValue<BorderRadiusValue>,\n ]) => css`\n border-top-left-radius: ${getBorderRadiusCorner(\n borderTopLeftRadius || defaultBorderTopLeftRadius,\n )};\n border-top-right-radius: ${getBorderRadiusCorner(\n borderTopRightRadius || defaultBorderTopRightRadius,\n )};\n border-bottom-left-radius: ${getBorderRadiusCorner(\n borderBottomLeftRadius || defaultPaddingBottom,\n )};\n border-bottom-right-radius: ${getBorderRadiusCorner(\n borderBottomRightRadius || defaultPaddingLeft,\n )};\n `,\n )}\n `\n}\n\nconst getBoxShadow = (shadows: BoxShadowData) =>\n shadows\n .map(\n ({ payload: { inset, offsetX, offsetY, blurRadius, spreadRadius, color } }) =>\n `${inset ? 'inset ' : ''}${offsetX.toFixed(1)}px ${offsetY.toFixed(\n 1,\n )}px ${blurRadius}px ${spreadRadius}px ${\n color != null ? colorToString(color) : 'rgba(0,0,0,0.2)'\n }`,\n )\n .filter(Boolean)\n .join()\n\nexport function cssBoxShadow(\n defaultValue: BoxShadowData = [],\n): (props: { boxShadow?: BoxShadowPropControllerData | null | undefined }) => CSSRules {\n return props => css`\n ${cssMediaRules(\n [props.boxShadow] as const,\n ([boxShadow = defaultValue]) => css`\n box-shadow: ${getBoxShadow(boxShadow)};\n `,\n )}\n `\n}\n\nconst floor =\n (d: number) =>\n (v: number): number =>\n Math.floor(10 ** d * v) / 10 ** d\n\nexport function cssGridItem(): (props: {\n grid: ResponsiveValue<{ spans: Array<Array<number>>; count: number }>\n index: number\n columnGap?: ResponsiveValue<LengthValue>\n rowGap?: ResponsiveValue<LengthValue>\n}) => CSSRules {\n return props => css`\n display: flex;\n\n /* TODO: A default span of 12 won't work once the column count is modifiable. */\n ${cssMediaRules(\n [props.grid, props.columnGap, props.rowGap] as const,\n ([\n { spans, count } = { spans: [[12]], count: 12 },\n columnGap = { value: 0, unit: 'px' },\n rowGap = { value: 0, unit: 'px' },\n ]) => {\n const [rowIndex, columnIndex] = getIndexes(spans, props.index)\n const firstCol = columnIndex === 0\n const lastCol = columnIndex === spans[rowIndex].length - 1\n const span = spans[rowIndex][columnIndex]\n const fraction = floor(5)(span / count)\n const width = `${fraction} * (100% + ${columnGap.value}${columnGap.unit})`\n const excessWidth = `${Number(firstCol) + Number(lastCol)} * ${columnGap.value}${\n columnGap.unit\n } / 2`\n const iePrecisionError = '0.01px'\n const flexBasis = `calc(${width} - ${excessWidth} - ${iePrecisionError})`\n const firstRow = rowIndex === 0\n const lastRow = rowIndex === spans.length - 1\n\n return span === 0\n ? { display: 'none' }\n : {\n flexBasis,\n minWidth: flexBasis,\n // NOTE: IE11 width breaks without max width\n // https://github.com/philipwalton/flexbugs/issues/3\n maxWidth: flexBasis,\n paddingLeft: firstCol ? 0 : `${columnGap.value / 2}${columnGap.unit}`,\n paddingRight: lastCol ? 0 : `${columnGap.value / 2}${columnGap.unit}`,\n paddingTop: firstRow ? 0 : `${rowGap.value / 2}${rowGap.unit}`,\n paddingBottom: lastRow ? 0 : `${rowGap.value / 2}${rowGap.unit}`,\n }\n },\n )}\n `\n}\n\nexport function cssTextStyle(\n defaultValue: {\n fontFamily?: string | null | undefined\n letterSpacing: number | null | undefined\n fontSize: LengthValue | null | undefined\n fontWeight: number | null | undefined\n textTransform: Array<'uppercase'>\n fontStyle: Array<'italic'>\n } = {\n fontFamily: null,\n letterSpacing: null,\n fontSize: null,\n fontWeight: null,\n textTransform: [],\n fontStyle: [],\n },\n): (arg0: { textStyle?: TextStyleValue | null | undefined }) => CSSRules {\n return props => css`\n ${cssMediaRules([props.textStyle], ([textStyle = defaultValue]) => {\n const {\n fontSize,\n fontWeight,\n fontStyle = [],\n textTransform = [],\n letterSpacing,\n fontFamily,\n } = textStyle\n\n return css`\n ${fontFamily != null\n ? css`\n font-family: '${fontFamily}';\n `\n : ''};\n ${fontWeight != null\n ? css`\n font-weight: ${fontWeight};\n `\n : ''};\n ${letterSpacing != null\n ? css`\n letter-spacing: ${letterSpacing}px;\n `\n : ''};\n ${fontSize != null\n ? css`\n font-size: ${`${fontSize.value}${fontSize.unit}`};\n `\n : ''};\n ${textTransform.includes('uppercase')\n ? css`\n text-transform: uppercase;\n `\n : ''};\n ${fontStyle.includes('italic')\n ? css`\n font-style: italic;\n `\n : ''};\n `\n })}\n `\n}\n"],"names":["joinResponsiveValues","getDevice","getDeviceMediaQuery","css","colorToString"],"mappings":"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"}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
import { css } from "styled-components";
|
|
2
|
+
import { H as join, I as getDevice, J as getDeviceMediaQuery, o as colorToString } from "./index.es.js";
|
|
3
|
+
const getIndexes = (spans, index) => {
|
|
4
|
+
const flattened = spans.reduce((a, s) => a.concat(s), []);
|
|
5
|
+
if (index < 0 || index > flattened.length)
|
|
6
|
+
throw new RangeError();
|
|
7
|
+
let remainder = index;
|
|
8
|
+
let rowIndex = 0;
|
|
9
|
+
while (rowIndex < spans.length - 1 && remainder >= spans[rowIndex].length) {
|
|
10
|
+
remainder -= spans[rowIndex].length;
|
|
11
|
+
rowIndex += 1;
|
|
12
|
+
}
|
|
13
|
+
return [rowIndex, remainder];
|
|
14
|
+
};
|
|
15
|
+
function cssMediaRules(responsiveValues, join$1, strategy) {
|
|
16
|
+
return (props) => join(typeof responsiveValues === "function" ? responsiveValues(props) : responsiveValues, join$1, strategy).reduce((acc, { deviceId, value }) => {
|
|
17
|
+
const device = getDevice(deviceId);
|
|
18
|
+
const mediaQuery = getDeviceMediaQuery(device);
|
|
19
|
+
return css`
|
|
20
|
+
${acc}${mediaQuery} {
|
|
21
|
+
${value}
|
|
22
|
+
}
|
|
23
|
+
`;
|
|
24
|
+
}, css``);
|
|
25
|
+
}
|
|
26
|
+
function cssWidth(defaultValue = "100%") {
|
|
27
|
+
return (props) => css`
|
|
28
|
+
max-width: 100%;
|
|
29
|
+
${cssMediaRules([props.width], ([width = defaultValue]) => css`
|
|
30
|
+
width: ${typeof width === "object" ? `${width.value}${width.unit}` : width};
|
|
31
|
+
`)}
|
|
32
|
+
`;
|
|
33
|
+
}
|
|
34
|
+
function getMarginSide(marginSide) {
|
|
35
|
+
return typeof marginSide === "object" ? `${marginSide.value}${marginSide.unit}` : marginSide;
|
|
36
|
+
}
|
|
37
|
+
function cssMargin(defaultValue = {}) {
|
|
38
|
+
const defaultMarginTop = defaultValue.marginTop === void 0 ? 0 : defaultValue.marginTop;
|
|
39
|
+
const defaultMarginRight = defaultValue.marginRight === void 0 ? "auto" : defaultValue.marginRight;
|
|
40
|
+
const defaultMarginBottom = defaultValue.marginBottom === void 0 ? 0 : defaultValue.marginBottom;
|
|
41
|
+
const defaultMarginLeft = defaultValue.marginLeft === void 0 ? "auto" : defaultValue.marginLeft;
|
|
42
|
+
return (props) => css`
|
|
43
|
+
${cssMediaRules([props.margin], ([
|
|
44
|
+
{
|
|
45
|
+
marginTop,
|
|
46
|
+
marginRight,
|
|
47
|
+
marginBottom,
|
|
48
|
+
marginLeft
|
|
49
|
+
} = {}
|
|
50
|
+
]) => css`
|
|
51
|
+
margin-top: ${getMarginSide(marginTop || defaultMarginTop)};
|
|
52
|
+
margin-right: ${getMarginSide(marginRight || defaultMarginRight)};
|
|
53
|
+
margin-bottom: ${getMarginSide(marginBottom || defaultMarginBottom)};
|
|
54
|
+
margin-left: ${getMarginSide(marginLeft || defaultMarginLeft)};
|
|
55
|
+
`)}
|
|
56
|
+
`;
|
|
57
|
+
}
|
|
58
|
+
function getPaddingSide(paddingSide) {
|
|
59
|
+
return typeof paddingSide === "object" ? `${paddingSide.value}${paddingSide.unit}` : paddingSide;
|
|
60
|
+
}
|
|
61
|
+
function cssPadding(defaultValue = {}) {
|
|
62
|
+
const defaultPaddingTop = defaultValue.paddingTop === void 0 ? 0 : defaultValue.paddingTop;
|
|
63
|
+
const defaultPaddingRight = defaultValue.paddingRight === void 0 ? 0 : defaultValue.paddingRight;
|
|
64
|
+
const defaultPaddingBottom = defaultValue.paddingBottom === void 0 ? 0 : defaultValue.paddingBottom;
|
|
65
|
+
const defaultPaddingLeft = defaultValue.paddingLeft === void 0 ? 0 : defaultValue.paddingLeft;
|
|
66
|
+
return (props) => css`
|
|
67
|
+
${cssMediaRules([props.padding], ([
|
|
68
|
+
{
|
|
69
|
+
paddingTop,
|
|
70
|
+
paddingRight,
|
|
71
|
+
paddingBottom,
|
|
72
|
+
paddingLeft
|
|
73
|
+
} = {}
|
|
74
|
+
]) => css`
|
|
75
|
+
padding-top: ${getPaddingSide(paddingTop || defaultPaddingTop)};
|
|
76
|
+
padding-right: ${getPaddingSide(paddingRight || defaultPaddingRight)};
|
|
77
|
+
padding-bottom: ${getPaddingSide(paddingBottom || defaultPaddingBottom)};
|
|
78
|
+
padding-left: ${getPaddingSide(paddingLeft || defaultPaddingLeft)};
|
|
79
|
+
`)}
|
|
80
|
+
`;
|
|
81
|
+
}
|
|
82
|
+
const defaultBorderSide = { width: 0, style: "solid", color: null };
|
|
83
|
+
const getBorderSide = ({ width, style, color }) => `${width != null ? width : 0}px ${style} ${color != null ? colorToString(color) : "black"}`;
|
|
84
|
+
function cssBorder(defaultValue = {}) {
|
|
85
|
+
const defaultBorderTop = defaultValue.borderTop === void 0 ? defaultBorderSide : defaultValue.borderTop;
|
|
86
|
+
const defaultBorderRight = defaultValue.borderRight === void 0 ? defaultBorderSide : defaultValue.borderRight;
|
|
87
|
+
const defaultBorderBottom = defaultValue.borderBottom === void 0 ? defaultBorderSide : defaultValue.borderBottom;
|
|
88
|
+
const defaultBorderLeft = defaultValue.borderLeft === void 0 ? defaultBorderSide : defaultValue.borderLeft;
|
|
89
|
+
return (props) => css`
|
|
90
|
+
${cssMediaRules([props.border], ([
|
|
91
|
+
{
|
|
92
|
+
borderTop,
|
|
93
|
+
borderRight,
|
|
94
|
+
borderBottom,
|
|
95
|
+
borderLeft
|
|
96
|
+
} = {}
|
|
97
|
+
]) => css`
|
|
98
|
+
border-top: ${getBorderSide(borderTop || defaultBorderTop)};
|
|
99
|
+
border-right: ${getBorderSide(borderRight || defaultBorderRight)};
|
|
100
|
+
border-bottom: ${getBorderSide(borderBottom || defaultBorderBottom)};
|
|
101
|
+
border-left: ${getBorderSide(borderLeft || defaultBorderLeft)};
|
|
102
|
+
`)}
|
|
103
|
+
`;
|
|
104
|
+
}
|
|
105
|
+
function getBorderRadiusCorner(borderRadiusCorner) {
|
|
106
|
+
return typeof borderRadiusCorner === "object" ? `${borderRadiusCorner.value}${borderRadiusCorner.unit}` : borderRadiusCorner;
|
|
107
|
+
}
|
|
108
|
+
function cssBorderRadius(defaultValue = {}) {
|
|
109
|
+
const defaultBorderTopLeftRadius = defaultValue.borderTopLeftRadius === void 0 ? 0 : defaultValue.borderTopLeftRadius;
|
|
110
|
+
const defaultBorderTopRightRadius = defaultValue.borderTopRightRadius === void 0 ? 0 : defaultValue.borderTopRightRadius;
|
|
111
|
+
const defaultPaddingBottom = defaultValue.borderBottomLeftRadius === void 0 ? 0 : defaultValue.borderBottomLeftRadius;
|
|
112
|
+
const defaultPaddingLeft = defaultValue.borderBottomRightRadius === void 0 ? 0 : defaultValue.borderBottomRightRadius;
|
|
113
|
+
return (props) => css`
|
|
114
|
+
${cssMediaRules([props.borderRadius], ([
|
|
115
|
+
{
|
|
116
|
+
borderTopLeftRadius,
|
|
117
|
+
borderTopRightRadius,
|
|
118
|
+
borderBottomLeftRadius,
|
|
119
|
+
borderBottomRightRadius
|
|
120
|
+
} = {}
|
|
121
|
+
]) => css`
|
|
122
|
+
border-top-left-radius: ${getBorderRadiusCorner(borderTopLeftRadius || defaultBorderTopLeftRadius)};
|
|
123
|
+
border-top-right-radius: ${getBorderRadiusCorner(borderTopRightRadius || defaultBorderTopRightRadius)};
|
|
124
|
+
border-bottom-left-radius: ${getBorderRadiusCorner(borderBottomLeftRadius || defaultPaddingBottom)};
|
|
125
|
+
border-bottom-right-radius: ${getBorderRadiusCorner(borderBottomRightRadius || defaultPaddingLeft)};
|
|
126
|
+
`)}
|
|
127
|
+
`;
|
|
128
|
+
}
|
|
129
|
+
const getBoxShadow = (shadows) => shadows.map(({ payload: { inset, offsetX, offsetY, blurRadius, spreadRadius, color } }) => `${inset ? "inset " : ""}${offsetX.toFixed(1)}px ${offsetY.toFixed(1)}px ${blurRadius}px ${spreadRadius}px ${color != null ? colorToString(color) : "rgba(0,0,0,0.2)"}`).filter(Boolean).join();
|
|
130
|
+
function cssBoxShadow(defaultValue = []) {
|
|
131
|
+
return (props) => css`
|
|
132
|
+
${cssMediaRules([props.boxShadow], ([boxShadow = defaultValue]) => css`
|
|
133
|
+
box-shadow: ${getBoxShadow(boxShadow)};
|
|
134
|
+
`)}
|
|
135
|
+
`;
|
|
136
|
+
}
|
|
137
|
+
const floor = (d) => (v) => Math.floor(10 ** d * v) / 10 ** d;
|
|
138
|
+
function cssGridItem() {
|
|
139
|
+
return (props) => css`
|
|
140
|
+
display: flex;
|
|
141
|
+
|
|
142
|
+
/* TODO: A default span of 12 won't work once the column count is modifiable. */
|
|
143
|
+
${cssMediaRules([props.grid, props.columnGap, props.rowGap], ([
|
|
144
|
+
{ spans, count } = { spans: [[12]], count: 12 },
|
|
145
|
+
columnGap = { value: 0, unit: "px" },
|
|
146
|
+
rowGap = { value: 0, unit: "px" }
|
|
147
|
+
]) => {
|
|
148
|
+
const [rowIndex, columnIndex] = getIndexes(spans, props.index);
|
|
149
|
+
const firstCol = columnIndex === 0;
|
|
150
|
+
const lastCol = columnIndex === spans[rowIndex].length - 1;
|
|
151
|
+
const span = spans[rowIndex][columnIndex];
|
|
152
|
+
const fraction = floor(5)(span / count);
|
|
153
|
+
const width = `${fraction} * (100% + ${columnGap.value}${columnGap.unit})`;
|
|
154
|
+
const excessWidth = `${Number(firstCol) + Number(lastCol)} * ${columnGap.value}${columnGap.unit} / 2`;
|
|
155
|
+
const iePrecisionError = "0.01px";
|
|
156
|
+
const flexBasis = `calc(${width} - ${excessWidth} - ${iePrecisionError})`;
|
|
157
|
+
const firstRow = rowIndex === 0;
|
|
158
|
+
const lastRow = rowIndex === spans.length - 1;
|
|
159
|
+
return span === 0 ? { display: "none" } : {
|
|
160
|
+
flexBasis,
|
|
161
|
+
minWidth: flexBasis,
|
|
162
|
+
maxWidth: flexBasis,
|
|
163
|
+
paddingLeft: firstCol ? 0 : `${columnGap.value / 2}${columnGap.unit}`,
|
|
164
|
+
paddingRight: lastCol ? 0 : `${columnGap.value / 2}${columnGap.unit}`,
|
|
165
|
+
paddingTop: firstRow ? 0 : `${rowGap.value / 2}${rowGap.unit}`,
|
|
166
|
+
paddingBottom: lastRow ? 0 : `${rowGap.value / 2}${rowGap.unit}`
|
|
167
|
+
};
|
|
168
|
+
})}
|
|
169
|
+
`;
|
|
170
|
+
}
|
|
171
|
+
function cssTextStyle(defaultValue = {
|
|
172
|
+
fontFamily: null,
|
|
173
|
+
letterSpacing: null,
|
|
174
|
+
fontSize: null,
|
|
175
|
+
fontWeight: null,
|
|
176
|
+
textTransform: [],
|
|
177
|
+
fontStyle: []
|
|
178
|
+
}) {
|
|
179
|
+
return (props) => css`
|
|
180
|
+
${cssMediaRules([props.textStyle], ([textStyle = defaultValue]) => {
|
|
181
|
+
const {
|
|
182
|
+
fontSize,
|
|
183
|
+
fontWeight,
|
|
184
|
+
fontStyle = [],
|
|
185
|
+
textTransform = [],
|
|
186
|
+
letterSpacing,
|
|
187
|
+
fontFamily
|
|
188
|
+
} = textStyle;
|
|
189
|
+
return css`
|
|
190
|
+
${fontFamily != null ? css`
|
|
191
|
+
font-family: '${fontFamily}';
|
|
192
|
+
` : ""};
|
|
193
|
+
${fontWeight != null ? css`
|
|
194
|
+
font-weight: ${fontWeight};
|
|
195
|
+
` : ""};
|
|
196
|
+
${letterSpacing != null ? css`
|
|
197
|
+
letter-spacing: ${letterSpacing}px;
|
|
198
|
+
` : ""};
|
|
199
|
+
${fontSize != null ? css`
|
|
200
|
+
font-size: ${`${fontSize.value}${fontSize.unit}`};
|
|
201
|
+
` : ""};
|
|
202
|
+
${textTransform.includes("uppercase") ? css`
|
|
203
|
+
text-transform: uppercase;
|
|
204
|
+
` : ""};
|
|
205
|
+
${fontStyle.includes("italic") ? css`
|
|
206
|
+
font-style: italic;
|
|
207
|
+
` : ""};
|
|
208
|
+
`;
|
|
209
|
+
})}
|
|
210
|
+
`;
|
|
211
|
+
}
|
|
212
|
+
export { cssWidth as a, cssMargin as b, cssMediaRules as c, cssPadding as d, cssBorder as e, cssBorderRadius as f, cssBoxShadow as g, cssGridItem as h, cssTextStyle as i };
|
|
213
|
+
//# sourceMappingURL=cssMediaRules.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cssMediaRules.es.js","sources":["../src/components/utils/columns.ts","../src/components/utils/cssMediaRules.ts"],"sourcesContent":["export const getIndexes = (spans: Array<Array<number>>, index: number): [number, number] => {\n const flattened = spans.reduce((a, s) => a.concat(s), [])\n\n if (index < 0 || index > flattened.length) throw new RangeError()\n\n let remainder = index\n let rowIndex = 0\n\n while (rowIndex < spans.length - 1 && remainder >= spans[rowIndex].length) {\n remainder -= spans[rowIndex].length\n rowIndex += 1\n }\n\n return [rowIndex, remainder]\n}\n","import { css, CSSObject } from 'styled-components'\nimport {\n WidthProperty,\n MarginProperty,\n MarginTopProperty,\n MarginRightProperty,\n MarginBottomProperty,\n MarginLeftProperty,\n PaddingProperty,\n PaddingTopProperty,\n PaddingRightProperty,\n PaddingBottomProperty,\n PaddingLeftProperty,\n BorderRadiusProperty,\n BorderTopLeftRadiusProperty,\n BorderTopRightRadiusProperty,\n BorderBottomLeftRadiusProperty,\n BorderBottomRightRadiusProperty,\n} from 'csstype'\n\nimport {\n ResponsiveValue,\n ResponsiveValueType as ExtractResponsiveValue,\n Length as LengthValue,\n} from '../../prop-controllers'\nimport {\n FallbackStrategy,\n getDevice,\n getDeviceMediaQuery,\n join as joinResponsiveValues,\n} from './devices'\nimport { getIndexes } from './columns'\nimport {\n BorderRadiusValue,\n MarginValue,\n PaddingValue,\n TextStyleValue,\n WidthValue,\n} from '../../prop-controllers/descriptors'\nimport { colorToString } from './colorToString'\nimport {\n BorderSide,\n BorderPropControllerData,\n BoxShadowData,\n BoxShadowPropControllerData,\n} from '../hooks'\n\ntype CSSRules = ReturnType<typeof css>\n\nexport function cssMediaRules<V, A extends ReadonlyArray<ResponsiveValue<V> | null | undefined>, P>(\n responsiveValues: A | ((props: P) => A),\n join: (values: { [K in keyof A]: ExtractResponsiveValue<A[K]> | undefined }) =>\n | CSSRules\n | CSSObject,\n strategy?: FallbackStrategy<V>,\n): (props: P) => CSSRules {\n return props =>\n joinResponsiveValues(\n typeof responsiveValues === 'function' ? responsiveValues(props) : responsiveValues,\n join,\n strategy,\n ).reduce((acc, { deviceId, value }) => {\n const device = getDevice(deviceId)\n const mediaQuery = getDeviceMediaQuery(device)\n\n return css`\n ${acc}${mediaQuery} {\n ${value}\n }\n `\n }, css`` as CSSRules)\n}\n\nexport function cssWidth(\n defaultValue: LengthValue | WidthProperty<string | number> = '100%',\n): (props: { width?: WidthValue }) => CSSRules {\n return props => css`\n max-width: 100%;\n ${cssMediaRules(\n [props.width] as const,\n ([width = defaultValue]) => css`\n width: ${typeof width === 'object' ? `${width.value}${width.unit}` : width};\n `,\n )}\n `\n}\n\nfunction getMarginSide(marginSide: LengthValue | MarginProperty<string | number>) {\n return typeof marginSide === 'object' ? `${marginSide.value}${marginSide.unit}` : marginSide\n}\n\nexport function cssMargin(\n defaultValue: {\n marginTop?: LengthValue | MarginTopProperty<string | number>\n marginRight?: LengthValue | MarginRightProperty<string | number>\n marginBottom?: LengthValue | MarginBottomProperty<string | number>\n marginLeft?: LengthValue | MarginLeftProperty<string | number>\n } = {},\n): (props: { margin?: MarginValue }) => CSSRules {\n const defaultMarginTop = defaultValue.marginTop === undefined ? 0 : defaultValue.marginTop\n const defaultMarginRight =\n defaultValue.marginRight === undefined ? 'auto' : defaultValue.marginRight\n const defaultMarginBottom =\n defaultValue.marginBottom === undefined ? 0 : defaultValue.marginBottom\n const defaultMarginLeft = defaultValue.marginLeft === undefined ? 'auto' : defaultValue.marginLeft\n\n return props => css`\n ${cssMediaRules(\n [props.margin] as const,\n ([\n {\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n } = {} as ExtractResponsiveValue<MarginValue>,\n ]) => css`\n margin-top: ${getMarginSide(marginTop || defaultMarginTop)};\n margin-right: ${getMarginSide(marginRight || defaultMarginRight)};\n margin-bottom: ${getMarginSide(marginBottom || defaultMarginBottom)};\n margin-left: ${getMarginSide(marginLeft || defaultMarginLeft)};\n `,\n )}\n `\n}\n\nfunction getPaddingSide(paddingSide: LengthValue | PaddingProperty<string | number>) {\n return typeof paddingSide === 'object' ? `${paddingSide.value}${paddingSide.unit}` : paddingSide\n}\n\nexport function cssPadding(\n defaultValue: {\n paddingTop?: LengthValue | PaddingTopProperty<string | number>\n paddingRight?: LengthValue | PaddingRightProperty<string | number>\n paddingBottom?: LengthValue | PaddingBottomProperty<string | number>\n paddingLeft?: LengthValue | PaddingLeftProperty<string | number>\n } = {},\n): (props: { padding?: PaddingValue }) => CSSRules {\n const defaultPaddingTop = defaultValue.paddingTop === undefined ? 0 : defaultValue.paddingTop\n const defaultPaddingRight =\n defaultValue.paddingRight === undefined ? 0 : defaultValue.paddingRight\n const defaultPaddingBottom =\n defaultValue.paddingBottom === undefined ? 0 : defaultValue.paddingBottom\n const defaultPaddingLeft = defaultValue.paddingLeft === undefined ? 0 : defaultValue.paddingLeft\n\n return props => css`\n ${cssMediaRules(\n [props.padding] as const,\n ([\n {\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n } = {} as ExtractResponsiveValue<PaddingValue>,\n ]) => css`\n padding-top: ${getPaddingSide(paddingTop || defaultPaddingTop)};\n padding-right: ${getPaddingSide(paddingRight || defaultPaddingRight)};\n padding-bottom: ${getPaddingSide(paddingBottom || defaultPaddingBottom)};\n padding-left: ${getPaddingSide(paddingLeft || defaultPaddingLeft)};\n `,\n )}\n `\n}\n\nconst defaultBorderSide = { width: 0, style: 'solid', color: null }\n\nconst getBorderSide = ({ width, style, color }: BorderSide) =>\n `${width != null ? width : 0}px ${style} ${color != null ? colorToString(color) : 'black'}`\n\nexport function cssBorder(\n defaultValue: {\n borderTop?: BorderSide\n borderRight?: BorderSide\n borderBottom?: BorderSide\n borderLeft?: BorderSide\n } = {},\n): (props: { border?: BorderPropControllerData | null | undefined }) => CSSRules {\n const defaultBorderTop =\n defaultValue.borderTop === undefined ? defaultBorderSide : defaultValue.borderTop\n const defaultBorderRight =\n defaultValue.borderRight === undefined ? defaultBorderSide : defaultValue.borderRight\n const defaultBorderBottom =\n defaultValue.borderBottom === undefined ? defaultBorderSide : defaultValue.borderBottom\n const defaultBorderLeft =\n defaultValue.borderLeft === undefined ? defaultBorderSide : defaultValue.borderLeft\n\n return props => css`\n ${cssMediaRules(\n [props.border] as const,\n ([\n {\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n } = {} as ExtractResponsiveValue<BorderPropControllerData>,\n ]) => css`\n border-top: ${getBorderSide(borderTop || defaultBorderTop)};\n border-right: ${getBorderSide(borderRight || defaultBorderRight)};\n border-bottom: ${getBorderSide(borderBottom || defaultBorderBottom)};\n border-left: ${getBorderSide(borderLeft || defaultBorderLeft)};\n `,\n )}\n `\n}\n\nfunction getBorderRadiusCorner(\n borderRadiusCorner: LengthValue | BorderRadiusProperty<string | number>,\n) {\n return typeof borderRadiusCorner === 'object'\n ? `${borderRadiusCorner.value}${borderRadiusCorner.unit}`\n : borderRadiusCorner\n}\n\nexport function cssBorderRadius(\n defaultValue: {\n borderTopLeftRadius?: LengthValue | BorderTopLeftRadiusProperty<string | number>\n borderTopRightRadius?: LengthValue | BorderTopRightRadiusProperty<string | number>\n borderBottomLeftRadius?: LengthValue | BorderBottomLeftRadiusProperty<string | number>\n borderBottomRightRadius?: LengthValue | BorderBottomRightRadiusProperty<string | number>\n } = {},\n): (props: { borderRadius?: BorderRadiusValue }) => CSSRules {\n const defaultBorderTopLeftRadius =\n defaultValue.borderTopLeftRadius === undefined ? 0 : defaultValue.borderTopLeftRadius\n const defaultBorderTopRightRadius =\n defaultValue.borderTopRightRadius === undefined ? 0 : defaultValue.borderTopRightRadius\n const defaultPaddingBottom =\n defaultValue.borderBottomLeftRadius === undefined ? 0 : defaultValue.borderBottomLeftRadius\n const defaultPaddingLeft =\n defaultValue.borderBottomRightRadius === undefined ? 0 : defaultValue.borderBottomRightRadius\n\n return props => css`\n ${cssMediaRules(\n [props.borderRadius] as const,\n ([\n {\n borderTopLeftRadius,\n borderTopRightRadius,\n borderBottomLeftRadius,\n borderBottomRightRadius,\n } = {} as ExtractResponsiveValue<BorderRadiusValue>,\n ]) => css`\n border-top-left-radius: ${getBorderRadiusCorner(\n borderTopLeftRadius || defaultBorderTopLeftRadius,\n )};\n border-top-right-radius: ${getBorderRadiusCorner(\n borderTopRightRadius || defaultBorderTopRightRadius,\n )};\n border-bottom-left-radius: ${getBorderRadiusCorner(\n borderBottomLeftRadius || defaultPaddingBottom,\n )};\n border-bottom-right-radius: ${getBorderRadiusCorner(\n borderBottomRightRadius || defaultPaddingLeft,\n )};\n `,\n )}\n `\n}\n\nconst getBoxShadow = (shadows: BoxShadowData) =>\n shadows\n .map(\n ({ payload: { inset, offsetX, offsetY, blurRadius, spreadRadius, color } }) =>\n `${inset ? 'inset ' : ''}${offsetX.toFixed(1)}px ${offsetY.toFixed(\n 1,\n )}px ${blurRadius}px ${spreadRadius}px ${\n color != null ? colorToString(color) : 'rgba(0,0,0,0.2)'\n }`,\n )\n .filter(Boolean)\n .join()\n\nexport function cssBoxShadow(\n defaultValue: BoxShadowData = [],\n): (props: { boxShadow?: BoxShadowPropControllerData | null | undefined }) => CSSRules {\n return props => css`\n ${cssMediaRules(\n [props.boxShadow] as const,\n ([boxShadow = defaultValue]) => css`\n box-shadow: ${getBoxShadow(boxShadow)};\n `,\n )}\n `\n}\n\nconst floor =\n (d: number) =>\n (v: number): number =>\n Math.floor(10 ** d * v) / 10 ** d\n\nexport function cssGridItem(): (props: {\n grid: ResponsiveValue<{ spans: Array<Array<number>>; count: number }>\n index: number\n columnGap?: ResponsiveValue<LengthValue>\n rowGap?: ResponsiveValue<LengthValue>\n}) => CSSRules {\n return props => css`\n display: flex;\n\n /* TODO: A default span of 12 won't work once the column count is modifiable. */\n ${cssMediaRules(\n [props.grid, props.columnGap, props.rowGap] as const,\n ([\n { spans, count } = { spans: [[12]], count: 12 },\n columnGap = { value: 0, unit: 'px' },\n rowGap = { value: 0, unit: 'px' },\n ]) => {\n const [rowIndex, columnIndex] = getIndexes(spans, props.index)\n const firstCol = columnIndex === 0\n const lastCol = columnIndex === spans[rowIndex].length - 1\n const span = spans[rowIndex][columnIndex]\n const fraction = floor(5)(span / count)\n const width = `${fraction} * (100% + ${columnGap.value}${columnGap.unit})`\n const excessWidth = `${Number(firstCol) + Number(lastCol)} * ${columnGap.value}${\n columnGap.unit\n } / 2`\n const iePrecisionError = '0.01px'\n const flexBasis = `calc(${width} - ${excessWidth} - ${iePrecisionError})`\n const firstRow = rowIndex === 0\n const lastRow = rowIndex === spans.length - 1\n\n return span === 0\n ? { display: 'none' }\n : {\n flexBasis,\n minWidth: flexBasis,\n // NOTE: IE11 width breaks without max width\n // https://github.com/philipwalton/flexbugs/issues/3\n maxWidth: flexBasis,\n paddingLeft: firstCol ? 0 : `${columnGap.value / 2}${columnGap.unit}`,\n paddingRight: lastCol ? 0 : `${columnGap.value / 2}${columnGap.unit}`,\n paddingTop: firstRow ? 0 : `${rowGap.value / 2}${rowGap.unit}`,\n paddingBottom: lastRow ? 0 : `${rowGap.value / 2}${rowGap.unit}`,\n }\n },\n )}\n `\n}\n\nexport function cssTextStyle(\n defaultValue: {\n fontFamily?: string | null | undefined\n letterSpacing: number | null | undefined\n fontSize: LengthValue | null | undefined\n fontWeight: number | null | undefined\n textTransform: Array<'uppercase'>\n fontStyle: Array<'italic'>\n } = {\n fontFamily: null,\n letterSpacing: null,\n fontSize: null,\n fontWeight: null,\n textTransform: [],\n fontStyle: [],\n },\n): (arg0: { textStyle?: TextStyleValue | null | undefined }) => CSSRules {\n return props => css`\n ${cssMediaRules([props.textStyle], ([textStyle = defaultValue]) => {\n const {\n fontSize,\n fontWeight,\n fontStyle = [],\n textTransform = [],\n letterSpacing,\n fontFamily,\n } = textStyle\n\n return css`\n ${fontFamily != null\n ? css`\n font-family: '${fontFamily}';\n `\n : ''};\n ${fontWeight != null\n ? css`\n font-weight: ${fontWeight};\n `\n : ''};\n ${letterSpacing != null\n ? css`\n letter-spacing: ${letterSpacing}px;\n `\n : ''};\n ${fontSize != null\n ? css`\n font-size: ${`${fontSize.value}${fontSize.unit}`};\n `\n : ''};\n ${textTransform.includes('uppercase')\n ? css`\n text-transform: uppercase;\n `\n : ''};\n ${fontStyle.includes('italic')\n ? css`\n font-style: italic;\n `\n : ''};\n `\n })}\n `\n}\n"],"names":["join","joinResponsiveValues"],"mappings":"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"}
|