eddev 0.2.0-beta.12 → 0.2.0-beta.16

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 (85) hide show
  1. package/build/get-webpack-config.js +1 -0
  2. package/build/serverless/create-next-app.js +60 -56
  3. package/cli/cli.js +4 -4
  4. package/components/PageHead.d.ts +1 -0
  5. package/components/PageHead.js +2 -0
  6. package/components/PageMeta.d.ts +1 -0
  7. package/components/PageMeta.js +2 -0
  8. package/components/PageMeta.monolith.d.ts +1 -0
  9. package/components/PageMeta.monolith.js +2 -0
  10. package/components/ServerlessPageMeta.d.ts +1 -0
  11. package/components/ServerlessPageMeta.js +2 -0
  12. package/config/config-schema.d.ts +5 -0
  13. package/config/config-schema.js +1 -0
  14. package/config/get-config.d.ts +3 -0
  15. package/config/parse-config.d.ts +2 -0
  16. package/dev-ui/components/{BreakpointItemHeader.d.ts → BreakpointColumnHeader.d.ts} +0 -0
  17. package/dev-ui/components/{BreakpointItemHeader.js → BreakpointColumnHeader.js} +3 -6
  18. package/dev-ui/components/BreakpointIndicator.d.ts +2 -0
  19. package/dev-ui/components/BreakpointIndicator.js +138 -0
  20. package/dev-ui/components/DevUI.d.ts +1 -1
  21. package/dev-ui/components/DevUI.js +13 -4
  22. package/dev-ui/components/Launcher.d.ts +90 -1
  23. package/dev-ui/components/Launcher.js +12 -36
  24. package/dev-ui/components/PanelWrapper.d.ts +6 -2
  25. package/dev-ui/components/PanelWrapper.js +22 -6
  26. package/dev-ui/components/ResponsiveLerpControl.d.ts +8 -0
  27. package/dev-ui/components/ResponsiveLerpControl.js +177 -0
  28. package/dev-ui/components/ResponsiveScaleEditor.d.ts +26 -0
  29. package/dev-ui/components/ResponsiveScaleEditor.js +233 -0
  30. package/dev-ui/components/atoms/Button.d.ts +47 -0
  31. package/dev-ui/components/atoms/Button.js +67 -0
  32. package/dev-ui/components/atoms/Dropdown.d.ts +13 -0
  33. package/dev-ui/components/atoms/Dropdown.js +50 -0
  34. package/dev-ui/components/atoms/NumberField.d.ts +12 -0
  35. package/dev-ui/components/atoms/NumberField.js +111 -0
  36. package/dev-ui/components/atoms/Spacer.d.ts +42 -0
  37. package/dev-ui/components/atoms/Spacer.js +8 -0
  38. package/dev-ui/components/{Text.d.ts → atoms/Text.d.ts} +7 -1
  39. package/dev-ui/components/atoms/Text.js +39 -0
  40. package/dev-ui/components/atoms/ToggleButton.d.ts +8 -0
  41. package/dev-ui/components/atoms/ToggleButton.js +41 -0
  42. package/dev-ui/components/atoms/Tooltip.d.ts +9 -0
  43. package/dev-ui/components/atoms/Tooltip.js +66 -0
  44. package/dev-ui/components/panels/PageDataDebugger.d.ts +2 -0
  45. package/dev-ui/components/panels/PageDataDebugger.js +30 -0
  46. package/dev-ui/components/panels/SpacingEditor.js +65 -33
  47. package/dev-ui/components/panels/TypographyEditor.d.ts +2 -0
  48. package/dev-ui/components/panels/TypographyEditor.js +88 -0
  49. package/dev-ui/hooks/useBreakpoint.d.ts +11 -0
  50. package/dev-ui/hooks/useBreakpoint.js +59 -0
  51. package/dev-ui/hooks/usePersistState.js +9 -1
  52. package/dev-ui/hooks/useStylesheet.d.ts +4 -0
  53. package/dev-ui/hooks/useStylesheet.js +31 -0
  54. package/dev-ui/icons.d.ts +4 -0
  55. package/dev-ui/icons.js +5 -1
  56. package/dev-ui/index.d.ts +1 -1
  57. package/dev-ui/index.js +11 -3
  58. package/dev-ui/loader.d.ts +2 -0
  59. package/dev-ui/loader.js +42 -0
  60. package/dev-ui/panels.js +9 -7
  61. package/dev-ui/theme.d.ts +16 -0
  62. package/dev-ui/theme.js +7 -2
  63. package/dynamic/dynamic-component.d.ts +1 -0
  64. package/entry/Root.js +2 -2
  65. package/package.json +12 -1
  66. package/serverless/create-rpc-client.d.ts +6 -17
  67. package/serverless-template/_utils/PageMeta.tsx +44 -0
  68. package/serverless-template/_utils/fetch-wordpress-props.ts +10 -3
  69. package/serverless-template/_utils/fetch-wp.ts +16 -0
  70. package/serverless-template/global.d.ts +1 -0
  71. package/serverless-template/next.config.js +2 -0
  72. package/serverless-template/pages/_app.tsx +7 -0
  73. package/style/createStitches.d.ts +14 -5
  74. package/style/createStitches.js +15 -51
  75. package/utils/updateEnvFile.d.ts +1 -0
  76. package/utils/updateEnvFile.js +76 -0
  77. package/build/workers/serverless-worker-script.d.ts +0 -0
  78. package/build/workers/serverless-worker-script.js +0 -1
  79. package/dev-ui/components/BreakpointList.d.ts +0 -6
  80. package/dev-ui/components/BreakpointList.js +0 -38
  81. package/dev-ui/components/Pill.d.ts +0 -0
  82. package/dev-ui/components/Pill.js +0 -1
  83. package/dev-ui/components/SpacingEditor.d.ts +0 -2
  84. package/dev-ui/components/SpacingEditor.js +0 -10
  85. package/dev-ui/components/Text.js +0 -13
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Button = void 0;
4
+ var theme_1 = require("../../theme");
5
+ exports.Button = (0, theme_1.styled)("button", {
6
+ appearance: "none",
7
+ border: "0px",
8
+ $$bg: "$colors$bg",
9
+ $$fg: "$colors$fg",
10
+ $$bgHover: "$colors$bgHover",
11
+ background: "$$bg",
12
+ color: "$$fg",
13
+ borderRadius: "100px",
14
+ whiteSpace: "nowrap",
15
+ padding: "4px 8px",
16
+ display: "flex",
17
+ alignItems: "center",
18
+ cursor: "pointer",
19
+ boxSizing: "border-box",
20
+ height: "$space$buttonHeight",
21
+ pointerEvents: "all",
22
+ fontSize: "$sm",
23
+ "&:hover": {
24
+ backgroundColor: "$$bgHover",
25
+ },
26
+ svg: {
27
+ display: "block",
28
+ fill: "currentColor",
29
+ marginRight: "5px",
30
+ width: "14px",
31
+ height: "14px",
32
+ },
33
+ variants: {
34
+ state: {
35
+ active: {},
36
+ inactive: {
37
+ $$fg: "$colors$fgFaded",
38
+ },
39
+ },
40
+ color: {
41
+ black: {
42
+ $$bg: "$colors$bg",
43
+ $$fg: "$colors$fg",
44
+ $$bgHover: "$colors$bgHover",
45
+ },
46
+ default: {
47
+ $$bg: "$colors$button",
48
+ $$fg: "$colors$fg",
49
+ $$bgHover: "$colors$buttonHover",
50
+ },
51
+ },
52
+ small: {
53
+ true: {
54
+ height: "$space$smallButtonHeight",
55
+ },
56
+ },
57
+ tiny: {
58
+ true: {
59
+ height: "10px",
60
+ fontSize: "10px",
61
+ },
62
+ },
63
+ },
64
+ defaultVariants: {
65
+ color: "default",
66
+ },
67
+ });
@@ -0,0 +1,13 @@
1
+ import { PropsWithChildren, ReactNode } from "react";
2
+ declare type MenuItem = {
3
+ icon?: ReactNode;
4
+ label: string;
5
+ onClick: () => void;
6
+ };
7
+ declare type Props = PropsWithChildren<{
8
+ items: MenuItem[];
9
+ mono?: boolean;
10
+ offset?: number;
11
+ }>;
12
+ export declare function Tooltip(props: Props): JSX.Element;
13
+ export {};
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.Tooltip = void 0;
5
+ var jsx_runtime_1 = require("react/jsx-runtime");
6
+ var theme_1 = require("../../theme");
7
+ function Tooltip(props) {
8
+ return ((0, jsx_runtime_1.jsxs)(Wrapper, { children: [(0, jsx_runtime_1.jsx)(MenuWrapper, { css: { $$offset: (typeof props.offset === "number" ? props.offset : 5) + "px" }, mono: props.mono }, void 0), props.children] }, void 0));
9
+ }
10
+ exports.Tooltip = Tooltip;
11
+ var MenuWrapper = (0, theme_1.styled)("div", {
12
+ position: "absolute",
13
+ bottom: "calc(100% + $$offset)",
14
+ left: "50%",
15
+ transform: "translateX(-50%)",
16
+ backgroundColor: "$fg",
17
+ color: "$bg",
18
+ borderRadius: "100px",
19
+ fontSize: "$sm",
20
+ padding: "3px 10px",
21
+ opacity: 0,
22
+ pointerEvents: "none",
23
+ whiteSpace: "nowrap",
24
+ "&:after": {
25
+ backgroundColor: "inherit",
26
+ content: '" "',
27
+ width: "5px",
28
+ height: "5px",
29
+ display: "block",
30
+ position: "absolute",
31
+ top: "0%",
32
+ left: "50%",
33
+ transform: "translate(-50%, -50%) rotate(45deg)",
34
+ },
35
+ variants: {
36
+ mono: {
37
+ true: {
38
+ fontFamily: "$mono",
39
+ },
40
+ },
41
+ },
42
+ });
43
+ var Wrapper = (0, theme_1.styled)("div", {
44
+ position: "relative",
45
+ "&:hover": (_a = {},
46
+ _a[MenuWrapper.toString()] = {
47
+ opacity: 1,
48
+ },
49
+ _a),
50
+ });
@@ -0,0 +1,12 @@
1
+ /// <reference types="react" />
2
+ declare type Props = {
3
+ prefix?: string;
4
+ suffix?: string;
5
+ value: number;
6
+ onChange: (value: number) => void;
7
+ faded?: boolean;
8
+ increment: number;
9
+ tabIndex?: number;
10
+ };
11
+ export declare function NumberField(props: Props): JSX.Element;
12
+ export {};
@@ -0,0 +1,111 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.NumberField = void 0;
15
+ var jsx_runtime_1 = require("react/jsx-runtime");
16
+ var react_1 = require("react");
17
+ var theme_1 = require("../../theme");
18
+ function NumberField(props) {
19
+ var ref = (0, react_1.useRef)(null);
20
+ var _a = (0, react_1.useState)(false), focused = _a[0], setFocused = _a[1];
21
+ var _b = (0, react_1.useState)(props.value), value = _b[0], setValue = _b[1];
22
+ var focusAll = function () {
23
+ var range = document.createRange();
24
+ range.selectNodeContents(ref.current);
25
+ var sel = window.getSelection();
26
+ sel === null || sel === void 0 ? void 0 : sel.removeAllRanges();
27
+ sel === null || sel === void 0 ? void 0 : sel.addRange(range);
28
+ };
29
+ var normalize = function (value) {
30
+ return parseFloat(Math.max(0, value).toFixed(4));
31
+ };
32
+ var setValueForced = function (value, changed) {
33
+ if (changed === void 0) { changed = false; }
34
+ var v = normalize(value);
35
+ setValue(v);
36
+ if (ref.current) {
37
+ if (ref.current.innerHTML !== v.toString()) {
38
+ ref.current.innerHTML = v.toString();
39
+ }
40
+ }
41
+ if (changed) {
42
+ props.onChange(value);
43
+ }
44
+ };
45
+ (0, react_1.useEffect)(function () {
46
+ setValueForced(props.value, false);
47
+ }, [props.value]);
48
+ (0, react_1.useEffect)(function () {
49
+ if (!focused) {
50
+ setValueForced(value);
51
+ }
52
+ }, [value, focused]);
53
+ return ((0, jsx_runtime_1.jsxs)(Field, __assign({ focused: focused, onMouseDown: function (e) {
54
+ var _a;
55
+ (_a = ref.current) === null || _a === void 0 ? void 0 : _a.focus();
56
+ if (!focused) {
57
+ focusAll();
58
+ e.preventDefault();
59
+ }
60
+ } }, { children: [props.prefix && (0, jsx_runtime_1.jsx)(Extra, { children: props.prefix }, void 0), (0, jsx_runtime_1.jsx)(Input, { ref: ref, contentEditable: !!props.onChange, tabIndex: props.tabIndex, onFocus: function () {
61
+ setFocused(true);
62
+ focusAll();
63
+ }, onBlur: function () { return setFocused(false); }, onInput: function (e) {
64
+ var value = parseFloat(e.currentTarget.innerText.replace(/[^0-9\.]/g, "")) || 0;
65
+ setValue(value);
66
+ props.onChange(value);
67
+ },
68
+ // onPasteCapture={(e) => {
69
+ // console.log(e.clipboardData.getData("text/plain"))
70
+ // e.preventDefault()
71
+ // }}
72
+ onKeyDown: function (e) {
73
+ var increment = props.increment * (e.shiftKey ? 10 : 1);
74
+ if (e.key === "ArrowUp") {
75
+ setValueForced(value + increment, true);
76
+ setTimeout(function () { return focusAll(); }, 1);
77
+ }
78
+ else if (e.key === "ArrowDown") {
79
+ setValueForced(value - increment, true);
80
+ setTimeout(function () { return focusAll(); }, 1);
81
+ }
82
+ else if (e.key === "Enter") {
83
+ e.preventDefault();
84
+ }
85
+ } }, void 0), props.suffix && (0, jsx_runtime_1.jsx)(Extra, { children: props.suffix }, void 0)] }), void 0));
86
+ }
87
+ exports.NumberField = NumberField;
88
+ var Field = (0, theme_1.styled)("div", {
89
+ display: "inline-flex",
90
+ fontFamily: "$mono",
91
+ fontSize: "$sm",
92
+ padding: "0 4px",
93
+ borderRadius: "$sm",
94
+ variants: {
95
+ focused: {
96
+ true: {
97
+ backgroundColor: "$bgHover",
98
+ },
99
+ },
100
+ },
101
+ });
102
+ var Input = (0, theme_1.styled)("span", {
103
+ outline: "0px",
104
+ "&::selection": {
105
+ background: "white",
106
+ color: "black",
107
+ },
108
+ });
109
+ var Extra = (0, theme_1.styled)("span", {
110
+ opacity: 0.7,
111
+ });
@@ -0,0 +1,42 @@
1
+ export declare const Spacer: import("@stitches/react/types/styled-component").StyledComponent<"div", {}, {}, import("@stitches/react/types/css-util").CSS<{}, {
2
+ space: {
3
+ smallButtonHeight: string;
4
+ buttonHeight: string;
5
+ 0: string;
6
+ 1: string;
7
+ 2: string;
8
+ 3: string;
9
+ 4: string;
10
+ 5: string;
11
+ 6: string;
12
+ };
13
+ colors: {
14
+ bg: string;
15
+ bgHover: string;
16
+ bgHoverLight: string;
17
+ bgLine: string;
18
+ bgLineStrong: string;
19
+ button: string;
20
+ buttonHover: string;
21
+ fg: string;
22
+ fgFaded: string;
23
+ };
24
+ fontSizes: {
25
+ sm: string;
26
+ md: string;
27
+ lg: string;
28
+ xl: string;
29
+ };
30
+ fonts: {
31
+ body: string;
32
+ mono: string;
33
+ };
34
+ radii: {
35
+ sm: string;
36
+ md: string;
37
+ lg: string;
38
+ };
39
+ transitions: {
40
+ default: string;
41
+ };
42
+ }, import("@stitches/react/types/config").DefaultThemeMap, {}>>;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Spacer = void 0;
4
+ var theme_1 = require("../../theme");
5
+ exports.Spacer = (0, theme_1.styled)("div", {
6
+ display: "block",
7
+ width: "$spaces$1",
8
+ });
@@ -1,7 +1,9 @@
1
1
  export declare const Text: import("@stitches/react/types/styled-component").StyledComponent<"div", {
2
- variant?: "h1" | undefined;
2
+ variant?: "h1" | "mono" | "monoBold" | "monoTiny" | undefined;
3
+ align?: "left" | "right" | "center" | undefined;
3
4
  }, {}, import("@stitches/react/types/css-util").CSS<{}, {
4
5
  space: {
6
+ smallButtonHeight: string;
5
7
  buttonHeight: string;
6
8
  0: string;
7
9
  1: string;
@@ -15,6 +17,10 @@ export declare const Text: import("@stitches/react/types/styled-component").Styl
15
17
  bg: string;
16
18
  bgHover: string;
17
19
  bgHoverLight: string;
20
+ bgLine: string;
21
+ bgLineStrong: string;
22
+ button: string;
23
+ buttonHover: string;
18
24
  fg: string;
19
25
  fgFaded: string;
20
26
  };
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Text = void 0;
4
+ var theme_1 = require("../../theme");
5
+ exports.Text = (0, theme_1.styled)("div", {
6
+ variants: {
7
+ variant: {
8
+ h1: {
9
+ fontSize: "$xl",
10
+ },
11
+ monoBold: {
12
+ fontFamily: "$mono",
13
+ fontSize: "$sm",
14
+ fontWeight: "bold",
15
+ lineHeight: "1.6",
16
+ },
17
+ mono: {
18
+ fontFamily: "$mono",
19
+ fontSize: "$sm",
20
+ lineHeight: "1.6",
21
+ },
22
+ monoTiny: {
23
+ fontSize: "8px",
24
+ fontFamily: "$mono",
25
+ },
26
+ },
27
+ align: {
28
+ left: {
29
+ textAlign: "left",
30
+ },
31
+ center: {
32
+ textAlign: "center",
33
+ },
34
+ right: {
35
+ textAlign: "right",
36
+ },
37
+ },
38
+ },
39
+ });
@@ -0,0 +1,8 @@
1
+ import { ReactNode } from "react";
2
+ declare type Props = {
3
+ checked: boolean;
4
+ label: ReactNode;
5
+ onChange: (value: boolean) => void;
6
+ };
7
+ export declare function ToggleButton(props: Props): JSX.Element;
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
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.ToggleButton = void 0;
15
+ var jsx_runtime_1 = require("react/jsx-runtime");
16
+ var icons_1 = require("../../icons");
17
+ var theme_1 = require("../../theme");
18
+ function ToggleButton(props) {
19
+ return ((0, jsx_runtime_1.jsxs)(ToggleButtonStyle, __assign({ onClick: function () { return props.onChange(!props.checked); } }, { children: [props.checked ? icons_1.checkFilled : icons_1.checkEmpty, props.label] }), void 0));
20
+ }
21
+ exports.ToggleButton = ToggleButton;
22
+ var ToggleButtonStyle = (0, theme_1.styled)("button", {
23
+ appearance: "none",
24
+ background: "transparent",
25
+ border: "0px",
26
+ padding: "3px",
27
+ height: "auto",
28
+ display: "inline-flex",
29
+ alignItems: "center",
30
+ justifyContent: "center",
31
+ color: "inherit",
32
+ "&:hover": {
33
+ // backgroundColor: "$bgHover",
34
+ },
35
+ svg: {
36
+ fill: "$fg",
37
+ width: "14px",
38
+ height: "14px",
39
+ display: "block",
40
+ },
41
+ });
@@ -0,0 +1,9 @@
1
+ import { PropsWithChildren, ReactNode } from "react";
2
+ declare type Props = PropsWithChildren<{
3
+ label: ReactNode;
4
+ mono?: boolean;
5
+ nowrap?: boolean;
6
+ offset?: number;
7
+ }>;
8
+ export declare function Tooltip(props: Props): JSX.Element;
9
+ export {};
@@ -0,0 +1,66 @@
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 _a;
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.Tooltip = void 0;
16
+ var jsx_runtime_1 = require("react/jsx-runtime");
17
+ var theme_1 = require("../../theme");
18
+ function Tooltip(props) {
19
+ return ((0, jsx_runtime_1.jsxs)(Wrapper, { children: [(0, jsx_runtime_1.jsx)(TooltipStyle, __assign({ css: { $$offset: (typeof props.offset === "number" ? props.offset : 5) + "px" }, nowrap: props.nowrap, mono: props.mono }, { children: props.label }), void 0), props.children] }, void 0));
20
+ }
21
+ exports.Tooltip = Tooltip;
22
+ var TooltipStyle = (0, theme_1.styled)("div", {
23
+ position: "absolute",
24
+ bottom: "calc(100% + $$offset)",
25
+ left: "50%",
26
+ transform: "translateX(-50%)",
27
+ backgroundColor: "#f0f0f0",
28
+ color: "#000000",
29
+ borderRadius: "100px",
30
+ fontSize: "$sm",
31
+ padding: "3px 10px",
32
+ opacity: 0,
33
+ pointerEvents: "none",
34
+ fontWeight: "normal",
35
+ "&:after": {
36
+ backgroundColor: "inherit",
37
+ content: '" "',
38
+ width: "5px",
39
+ height: "5px",
40
+ display: "block",
41
+ position: "absolute",
42
+ top: "100%",
43
+ left: "50%",
44
+ transform: "translate(-50%, -50%) rotate(45deg)",
45
+ },
46
+ variants: {
47
+ mono: {
48
+ true: {
49
+ fontFamily: "$mono",
50
+ },
51
+ },
52
+ nowrap: {
53
+ true: {
54
+ whiteSpace: "nowrap",
55
+ },
56
+ },
57
+ },
58
+ });
59
+ var Wrapper = (0, theme_1.styled)("div", {
60
+ position: "relative",
61
+ "&:hover": (_a = {},
62
+ _a[TooltipStyle.toString()] = {
63
+ opacity: 1,
64
+ },
65
+ _a),
66
+ });
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare function PageDataDebugger(): JSX.Element;
@@ -0,0 +1,30 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.PageDataDebugger = void 0;
15
+ var jsx_runtime_1 = require("react/jsx-runtime");
16
+ var react_inspector_1 = require("react-inspector");
17
+ var routing_1 = require("../../../routing");
18
+ var theme_1 = require("../../theme");
19
+ var PanelWrapper_1 = require("../PanelWrapper");
20
+ function PageDataDebugger() {
21
+ var _a;
22
+ var route = (0, routing_1.useRoute)();
23
+ return ((0, jsx_runtime_1.jsx)(PanelWrapper_1.PanelWrapper, __assign({ title: "Page Data" }, { children: (0, jsx_runtime_1.jsx)(Wrapper, { children: (0, jsx_runtime_1.jsx)(react_inspector_1.ObjectInspector, { theme: "chromeDark", data: (_a = route.data) === null || _a === void 0 ? void 0 : _a.viewData.data, expandLevel: 3 }, void 0) }, void 0) }), void 0));
24
+ }
25
+ exports.PageDataDebugger = PageDataDebugger;
26
+ var Wrapper = (0, theme_1.styled)("div", {
27
+ width: "500px",
28
+ maxHeight: "calc(100vh - 100px)",
29
+ overflowY: "auto",
30
+ });
@@ -17,40 +17,72 @@ var jsx_runtime_1 = require("react/jsx-runtime");
17
17
  var _theme_1 = require("@theme");
18
18
  var react_1 = require("react");
19
19
  var style_1 = require("../../../style");
20
- var theme_1 = require("../../theme");
21
- var BreakpointItemHeader_1 = require("../BreakpointItemHeader");
22
- var BreakpointList_1 = require("../BreakpointList");
20
+ var PanelWrapper_1 = require("../PanelWrapper");
21
+ var ResponsiveScaleEditor_1 = require("../ResponsiveScaleEditor");
22
+ var useStylesheet_1 = require("../../hooks/useStylesheet");
23
+ var Button_1 = require("../atoms/Button");
24
+ var icons_1 = require("../../icons");
25
+ var Spacer_1 = require("../atoms/Spacer");
26
+ function spaceToJSON(space) {
27
+ return ("{\n" +
28
+ Object.entries(space)
29
+ .map(function (_a) {
30
+ var token = _a[0], values = _a[1];
31
+ var tokenStr = Object.entries(values)
32
+ .map(function (_a) {
33
+ var breakpoint = _a[0], value = _a[1];
34
+ return "\"".concat(breakpoint, "\": ").concat(JSON.stringify(value));
35
+ })
36
+ .join(", ");
37
+ return " \"".concat(token, "\": { ").concat(tokenStr, " }");
38
+ })
39
+ .join(",\n") +
40
+ "\n}");
41
+ }
42
+ function spaceToCSS(space) {
43
+ var parsedBreakpoints = (0, style_1.parseBreakpoints)(_theme_1.originalConfig.breakpoints, _theme_1.originalConfig.media);
44
+ var globalResponsive = (0, style_1.parseResponsiveTokens)({
45
+ space: space,
46
+ }, parsedBreakpoints).globalResponsive;
47
+ var rules = [];
48
+ Object.entries(globalResponsive).forEach(function (_a) {
49
+ var breakpoint = _a[0], values = _a[1];
50
+ var rule = "";
51
+ var media = _theme_1.originalConfig.media[breakpoint.replace("@", "")];
52
+ var variables = [];
53
+ for (var key in values) {
54
+ variables.push(key + ": " + values[key]);
55
+ }
56
+ if (media) {
57
+ rules.push("@media " + media + " {\n:root {" + variables.join(";\n") + "}\n}");
58
+ }
59
+ else {
60
+ rules.push(":root {\n" + variables.join(";\n") + "\n}");
61
+ }
62
+ });
63
+ return rules.join("\n");
64
+ }
23
65
  function SpacingEditor() {
24
- // const [values, setValues] = usePersistState<ResponsiveSpace | undefined>("spacing", undefined)
25
- var _a = (0, react_1.useState)(function () {
26
- return __assign({}, _theme_1.originalConfig.responsive.space);
27
- }), values = _a[0], setValues = _a[1];
28
- console.log("CONFIG", _theme_1.originalConfig);
66
+ var _a = (0, react_1.useState)(function () { return _theme_1.originalConfig.responsive.space; }), values = _a[0], setValues = _a[1];
29
67
  var parsedBreakpoints = (0, style_1.parseBreakpoints)(_theme_1.originalConfig.breakpoints, _theme_1.originalConfig.media);
30
- console.log("A");
31
- var info = (0, style_1.parseResponsiveObject)(parsedBreakpoints, values ? values[0] : {});
32
- return ((0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsxs)(SpacingTable, { children: [(0, jsx_runtime_1.jsxs)(TableHeaderRow, { children: [(0, jsx_runtime_1.jsx)(TableCell, { children: "Token" }, void 0), (0, jsx_runtime_1.jsx)(TableCell, { children: (0, jsx_runtime_1.jsx)(BreakpointList_1.BreakpointList, { renderBreakpoint: function (bp, i) {
33
- var bpInfo = info.find(function (item) { return item.breakpoint === bp; });
34
- return (0, jsx_runtime_1.jsx)(BreakpointItemHeader_1.BreakpointColumnHeader, { name: bp, defined: !!(bpInfo === null || bpInfo === void 0 ? void 0 : bpInfo.defined) }, void 0);
35
- } }, void 0) }, void 0)] }, void 0), Object.entries(values || {}).map(function (_a) {
36
- var token = _a[0], value = _a[1];
37
- console.log("B", token, value);
38
- var info = (0, style_1.parseResponsiveObject)(parsedBreakpoints, value);
39
- return ((0, jsx_runtime_1.jsxs)(TableRow, { children: [(0, jsx_runtime_1.jsx)(TableCell, { children: token }, void 0), (0, jsx_runtime_1.jsx)(TableCell, { children: (0, jsx_runtime_1.jsx)(BreakpointList_1.BreakpointList, { renderBreakpoint: function (bp, i) {
40
- console.log("VALUE", value);
41
- var bpInfo = info.find(function (item) { return item.breakpoint === bp; });
42
- return value["@" + bp];
43
- } }, void 0) }, void 0)] }, token));
44
- })] }, void 0) }, void 0));
68
+ var stylesheet = (0, useStylesheet_1.useStylesheet)("spacing");
69
+ (0, react_1.useEffect)(function () {
70
+ stylesheet.set(spaceToCSS(values));
71
+ }, [values]);
72
+ return ((0, jsx_runtime_1.jsx)(react_1.Fragment, { children: (0, jsx_runtime_1.jsx)(PanelWrapper_1.PanelWrapper, __assign({ title: "Spacing Tokens", buttons: (0, jsx_runtime_1.jsxs)(react_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(Button_1.Button, __assign({ small: true, onClick: function () {
73
+ navigator.clipboard.writeText(spaceToJSON(values));
74
+ } }, { children: [icons_1.copy, "Copy"] }), void 0), (0, jsx_runtime_1.jsxs)(Button_1.Button, __assign({ small: true, onClick: function () {
75
+ navigator.clipboard.readText().then(function (text) {
76
+ try {
77
+ var data = JSON.parse(text);
78
+ setValues(data);
79
+ }
80
+ catch (err) {
81
+ alert("Error decoding pasted content: " + err.message + ". You pasted:\n" + text);
82
+ }
83
+ });
84
+ } }, { children: [icons_1.paste, "Paste"] }), void 0), (0, jsx_runtime_1.jsx)(Spacer_1.Spacer, {}, void 0), (0, jsx_runtime_1.jsxs)(Button_1.Button, __assign({ small: true, onClick: function () {
85
+ setValues(_theme_1.originalConfig.responsive.space);
86
+ } }, { children: [icons_1.trash, " Reset"] }), void 0)] }, void 0) }, { children: (0, jsx_runtime_1.jsx)(ResponsiveScaleEditor_1.ResponsiveScaleEditor, { editableRange: true, editableValues: true, breakpoints: parsedBreakpoints, data: values, showBreakpointName: true, showRange: true, showValues: true, related: true, labelWidth: "30px", onChange: setValues, modes: ["px", "multiplier"] }, void 0) }), void 0) }, void 0));
45
87
  }
46
88
  exports.SpacingEditor = SpacingEditor;
47
- var SpacingTable = (0, theme_1.styled)("div", {
48
- display: "table",
49
- });
50
- var TableRow = (0, theme_1.styled)("div", {
51
- display: "table-row",
52
- });
53
- var TableHeaderRow = (0, theme_1.styled)(TableRow, {});
54
- var TableCell = (0, theme_1.styled)("div", {
55
- display: "table-cell",
56
- });
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare function TypographyEditor(): JSX.Element;