eddev 0.2.0-beta.9 → 0.2.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 (120) hide show
  1. package/build/build-favicon.d.ts +1 -0
  2. package/build/build-favicon.js +71 -0
  3. package/build/create-serverless-dev-worker.d.ts +3 -0
  4. package/build/create-serverless-dev-worker.js +99 -0
  5. package/build/get-webpack-config.js +11 -1
  6. package/build/manifests/manifest-views.js +1 -1
  7. package/build/reporter.js +0 -109
  8. package/build/serverless/create-next-app.d.ts +2 -0
  9. package/build/serverless/create-next-app.js +243 -47
  10. package/build/state/serverless-state.d.ts +26 -0
  11. package/{config/schema.js → build/state/serverless-state.js} +0 -0
  12. package/build/workers/codegen-worker-script.js +33 -0
  13. package/{config/schema.d.ts → build/workers/serverless-worker-dev-script.d.ts} +0 -0
  14. package/build/workers/serverless-worker-dev-script.js +21 -0
  15. package/cli/build.dev.js +34 -6
  16. package/cli/build.prod.js +13 -1
  17. package/cli/cli.js +32 -17
  18. package/cli/display/components/DevCLIDisplay.d.ts +3 -0
  19. package/cli/display/components/DevCLIDisplay.js +20 -1
  20. package/cli/display/components/ServerlessDisplay.d.ts +9 -0
  21. package/cli/display/components/ServerlessDisplay.js +68 -0
  22. package/cli/preinstall.d.ts +1 -0
  23. package/cli/preinstall.js +14 -0
  24. package/components/NextRouter.js +3 -2
  25. package/config/config-schema.d.ts +17 -9
  26. package/config/config-schema.js +3 -1
  27. package/config/get-config.d.ts +39 -0
  28. package/config/get-config.js +32 -0
  29. package/config/parse-config.d.ts +8 -4
  30. package/config/print-zod-errors.d.ts +2 -0
  31. package/config/print-zod-errors.js +14 -0
  32. package/dev-ui/components/BreakpointColumnHeader.d.ts +11 -0
  33. package/dev-ui/components/BreakpointColumnHeader.js +47 -0
  34. package/dev-ui/components/BreakpointIndicator.d.ts +2 -0
  35. package/dev-ui/components/BreakpointIndicator.js +138 -0
  36. package/dev-ui/components/DevUI.d.ts +2 -0
  37. package/dev-ui/components/DevUI.js +28 -0
  38. package/dev-ui/components/Launcher.d.ts +98 -0
  39. package/dev-ui/components/Launcher.js +94 -0
  40. package/dev-ui/components/PanelWrapper.d.ts +8 -0
  41. package/dev-ui/components/PanelWrapper.js +37 -0
  42. package/dev-ui/components/ResponsiveLerpControl.d.ts +8 -0
  43. package/dev-ui/components/ResponsiveLerpControl.js +177 -0
  44. package/dev-ui/components/ResponsiveScaleEditor.d.ts +26 -0
  45. package/dev-ui/components/ResponsiveScaleEditor.js +233 -0
  46. package/dev-ui/components/atoms/Button.d.ts +47 -0
  47. package/dev-ui/components/atoms/Button.js +67 -0
  48. package/dev-ui/components/atoms/Dropdown.d.ts +13 -0
  49. package/dev-ui/components/atoms/Dropdown.js +50 -0
  50. package/dev-ui/components/atoms/NumberField.d.ts +12 -0
  51. package/dev-ui/components/atoms/NumberField.js +111 -0
  52. package/dev-ui/components/atoms/Spacer.d.ts +42 -0
  53. package/dev-ui/components/atoms/Spacer.js +8 -0
  54. package/dev-ui/components/atoms/Text.d.ts +45 -0
  55. package/dev-ui/components/atoms/Text.js +39 -0
  56. package/dev-ui/components/atoms/ToggleButton.d.ts +8 -0
  57. package/dev-ui/components/atoms/ToggleButton.js +41 -0
  58. package/dev-ui/components/atoms/Tooltip.d.ts +9 -0
  59. package/dev-ui/components/atoms/Tooltip.js +66 -0
  60. package/dev-ui/components/panels/PageDataDebugger.d.ts +2 -0
  61. package/dev-ui/components/panels/PageDataDebugger.js +30 -0
  62. package/dev-ui/components/panels/SpacingEditor.d.ts +2 -0
  63. package/dev-ui/components/panels/SpacingEditor.js +88 -0
  64. package/dev-ui/components/panels/TypographyEditor.d.ts +2 -0
  65. package/dev-ui/components/panels/TypographyEditor.js +88 -0
  66. package/dev-ui/hooks/useBreakpoint.d.ts +11 -0
  67. package/dev-ui/hooks/useBreakpoint.js +59 -0
  68. package/dev-ui/hooks/usePersistState.d.ts +1 -0
  69. package/dev-ui/hooks/usePersistState.js +36 -0
  70. package/dev-ui/hooks/useStylesheet.d.ts +4 -0
  71. package/dev-ui/hooks/useStylesheet.js +31 -0
  72. package/dev-ui/icons.d.ts +15 -0
  73. package/dev-ui/icons.js +29 -0
  74. package/dev-ui/index.d.ts +1 -0
  75. package/dev-ui/index.js +13 -0
  76. package/dev-ui/loader.d.ts +2 -0
  77. package/dev-ui/loader.js +42 -0
  78. package/dev-ui/panels.d.ts +11 -0
  79. package/dev-ui/panels.js +33 -0
  80. package/dev-ui/theme.d.ts +151 -0
  81. package/dev-ui/theme.js +50 -0
  82. package/entry/Root.d.ts +3 -1
  83. package/entry/Root.js +18 -6
  84. package/hooks/index.d.ts +1 -0
  85. package/hooks/index.js +1 -0
  86. package/{serverless/create-rpc-client.d.ts → hooks/useRPC.d.ts} +18 -18
  87. package/hooks/useRPC.js +18 -0
  88. package/package.json +15 -7
  89. package/routing/routing.js +1 -1
  90. package/serverless/define-rpc-router.d.ts +5 -1
  91. package/serverless/define-rpc-router.js +11 -3
  92. package/serverless/index.d.ts +2 -1
  93. package/serverless/index.js +3 -1
  94. package/serverless-template/_utils/PageMeta.tsx +44 -0
  95. package/serverless-template/_utils/fetch-wordpress-props.ts +14 -3
  96. package/serverless-template/_utils/fetch-wp.ts +16 -0
  97. package/serverless-template/global.d.ts +7 -1
  98. package/serverless-template/next.config.js +10 -3
  99. package/serverless-template/package.json +5 -3
  100. package/serverless-template/pages/404.tsx +12 -0
  101. package/serverless-template/pages/[...slug].tsx +7 -2
  102. package/serverless-template/pages/_app.tsx +32 -12
  103. package/serverless-template/pages/_document.tsx +19 -0
  104. package/serverless-template/pages/api/rest/{[...method].ts → [method].ts} +4 -2
  105. package/serverless-template/pages/api/trpc/[...trpc].ts +26 -0
  106. package/serverless-template/pages/index.tsx +2 -2
  107. package/style/createStitches.d.ts +71 -1
  108. package/style/createStitches.js +151 -45
  109. package/utils/getRepoName.js +13 -5
  110. package/utils/updateEnvFile.d.ts +1 -0
  111. package/utils/updateEnvFile.js +76 -0
  112. package/cli/prepare-next.d.ts +0 -0
  113. package/cli/prepare-next.js +0 -1
  114. package/entry/entry.serverless.dev.d.ts +0 -0
  115. package/entry/entry.serverless.dev.js +0 -2
  116. package/fields/ImageWell.d.ts +0 -8
  117. package/fields/ImageWell.js +0 -64
  118. package/serverless/create-rpc-client.js +0 -20
  119. package/serverless-template/package-lock.json +0 -641
  120. package/serverless-template/pages/api/hello.ts +0 -10
@@ -0,0 +1,233 @@
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 __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.ResponsiveScaleEditor = exports.RESPONSIVE_ROW_HEIGHT = exports.RESPONSIVE_COLUMN_WIDTH = void 0;
18
+ var jsx_runtime_1 = require("react/jsx-runtime");
19
+ var style_1 = require("../../style");
20
+ var theme_1 = require("../theme");
21
+ var NumberField_1 = require("./atoms/NumberField");
22
+ var ResponsiveLerpControl_1 = require("./ResponsiveLerpControl");
23
+ var Text_1 = require("./atoms/Text");
24
+ var ToggleButton_1 = require("./atoms/ToggleButton");
25
+ var Tooltip_1 = require("./atoms/Tooltip");
26
+ var react_1 = require("react");
27
+ var immer_1 = __importDefault(require("immer"));
28
+ // @ts-ignore
29
+ var _theme_1 = require("@theme");
30
+ exports.RESPONSIVE_COLUMN_WIDTH = "110px";
31
+ exports.RESPONSIVE_ROW_HEIGHT = "20px";
32
+ function ResponsiveScaleEditor(props) {
33
+ var values = props.data;
34
+ var rows = (0, react_1.useMemo)(function () {
35
+ return Object.entries(props.data).map(function (_a) {
36
+ var key = _a[0], row = _a[1];
37
+ var info = (0, style_1.parseResponsiveObject)(props.breakpoints, row);
38
+ return {
39
+ token: key,
40
+ row: info,
41
+ };
42
+ });
43
+ }, [props.data]);
44
+ var general = (0, react_1.useMemo)(function () {
45
+ return props.data[0];
46
+ }, [props.data]);
47
+ var onChangeValue = function (item, value, token) {
48
+ props.onChange((0, immer_1.default)(values, function (draft) {
49
+ var subvalue = item.type === "px" ? value + "px" : item.type === "multiplier" ? "x" + value : undefined;
50
+ if (item.lerpStart && typeof subvalue === "string") {
51
+ subvalue = [subvalue];
52
+ }
53
+ if (subvalue === undefined) {
54
+ delete draft[token]["@" + item.breakpoint];
55
+ }
56
+ else {
57
+ draft[token]["@" + item.breakpoint] = subvalue;
58
+ }
59
+ }));
60
+ };
61
+ var onChangeUnits = function (breakpoint, token) {
62
+ var sampleValue = rows.find(function (r) { return r.token === token; }).row.find(function (item) { return item.breakpoint === breakpoint; });
63
+ var nextType = props.modes[(props.modes.indexOf(sampleValue.type) + 1) % props.modes.length];
64
+ props.onChange((0, immer_1.default)(values, function (draft) {
65
+ var updateToken = function (rowIndex) {
66
+ var token = rows[rowIndex].token;
67
+ var item = rows[rowIndex].row.find(function (i) { return i.breakpoint === breakpoint; });
68
+ var base = rows[rowIndex].row.find(function (i) { return i.breakpoint === item.lastBreakpoint; });
69
+ var nextValue;
70
+ if (item.type === "px" && nextType === "multiplier") {
71
+ if (base) {
72
+ console.log(item.value, base.concreteValue);
73
+ nextValue = "x" + item.value / (base === null || base === void 0 ? void 0 : base.concreteValue);
74
+ }
75
+ }
76
+ else if (item.type === "multiplier" && nextType === "px") {
77
+ nextValue = item.value * (base === null || base === void 0 ? void 0 : base.concreteValue) + "px";
78
+ }
79
+ if (nextValue) {
80
+ if (item.lerpStart) {
81
+ nextValue = [nextValue];
82
+ }
83
+ draft[token]["@" + item.breakpoint] = nextValue;
84
+ }
85
+ };
86
+ if (props.related) {
87
+ for (var i = 0; i < rows.length; i++) {
88
+ updateToken(i);
89
+ }
90
+ }
91
+ }));
92
+ };
93
+ var onToggleLerping = function (breakpoint, lerping) {
94
+ props.onChange((0, immer_1.default)(values, function (values) {
95
+ for (var token in values) {
96
+ var subval = values[token]["@" + breakpoint];
97
+ if (Array.isArray(subval)) {
98
+ subval = subval[0];
99
+ }
100
+ values[token]["@" + breakpoint] = lerping ? [subval] : subval;
101
+ }
102
+ }));
103
+ };
104
+ var onToggleBreakpoint = function (item, enabled) {
105
+ var breakpoint = item.breakpoint;
106
+ if (!enabled) {
107
+ props.onChange((0, immer_1.default)(values, function (values) {
108
+ for (var token in values) {
109
+ delete values[token]["@" + breakpoint];
110
+ }
111
+ }));
112
+ }
113
+ else {
114
+ props.onChange((0, immer_1.default)(values, function (values) {
115
+ for (var token in values) {
116
+ var original = _theme_1.originalConfig.responsive.space[token]["@" + breakpoint];
117
+ var value = original;
118
+ if (!value) {
119
+ value = values[token]["@" + item.baseBreakpoint];
120
+ }
121
+ if (!value)
122
+ value = "1px";
123
+ values[token]["@" + breakpoint] = value;
124
+ }
125
+ }));
126
+ }
127
+ };
128
+ return ((0, jsx_runtime_1.jsxs)(Wrapper, __assign({ css: { $$total: props.data.length, $$labelWidth: props.labelWidth } }, { children: [props.showBreakpointName && ((0, jsx_runtime_1.jsx)(Row, __assign({ heading: true }, { children: rows[0].row.map(function (item, i) {
129
+ var bp = props.breakpoints[i];
130
+ return ((0, jsx_runtime_1.jsx)(Col, __assign({ css: { textAlign: "center" } }, { children: (0, jsx_runtime_1.jsx)(Tooltip_1.Tooltip, __assign({ label: "".concat(bp.min, " to ").concat(bp.max || "∞"), mono: true, nowrap: true }, { children: (0, jsx_runtime_1.jsx)(ToggleButton_1.ToggleButton, { checked: item.defined, onChange: function (checked) {
131
+ onToggleBreakpoint === null || onToggleBreakpoint === void 0 ? void 0 : onToggleBreakpoint(item, checked);
132
+ }, label: (0, jsx_runtime_1.jsx)(Text_1.Text, __assign({ as: "span", variant: "monoBold" }, { children: item.breakpoint }), void 0) }, void 0) }), void 0) }), i));
133
+ }) }), void 0)), props.showRange && ((0, jsx_runtime_1.jsx)(Row, __assign({ heading: true }, { children: (0, jsx_runtime_1.jsx)(ResponsiveLerpControl_1.ResponsiveLerpControl, { onToggleLerping: onToggleLerping, data: rows[0].row }, void 0) }), void 0)), props.showValues && ((0, jsx_runtime_1.jsx)(react_1.Fragment, { children: rows.map(function (_a, rowIndex) {
134
+ var token = _a.token, row = _a.row;
135
+ return ((0, jsx_runtime_1.jsxs)(Row, __assign({ hoverable: true, labelIndent: false }, { children: [(0, jsx_runtime_1.jsx)(RowLabel, { children: (0, jsx_runtime_1.jsx)(Text_1.Text, __assign({ variant: "monoBold" }, { children: token }), void 0) }, void 0), row.map(function (item, i) {
136
+ var tabIndex = 500 + (props.tabIndexStart || 0) + i * 100;
137
+ return ((0, jsx_runtime_1.jsxs)(Col, { children: [(0, jsx_runtime_1.jsx)(Field, { children: item.type === "multiplier" ||
138
+ item.type === "number" ||
139
+ item.type === "px" ||
140
+ item.type === "percent" ? ((0, jsx_runtime_1.jsx)(NumberField_1.NumberField, { tabIndex: tabIndex, prefix: item.type === "multiplier" ? "x" : "", suffix: item.type === "px" ? "px" : item.type === "percent" ? "%" : "", value: item.value, onChange: function (value) {
141
+ onChangeValue(item, value, token);
142
+ }, increment: item.type === "px" ? 1 : 0.1 }, void 0)) : null }, void 0), item.defined && (!props.related || rowIndex === 0) && ((0, jsx_runtime_1.jsx)(ToolbarButton, __assign({ onClick: function () {
143
+ onChangeUnits(item.breakpoint, token);
144
+ } }, { children: item.type === "px" ? "px" : "multiplier" }), void 0))] }, i));
145
+ })] }), rowIndex));
146
+ }) }, void 0))] }), void 0));
147
+ }
148
+ exports.ResponsiveScaleEditor = ResponsiveScaleEditor;
149
+ var Wrapper = (0, theme_1.styled)("div", {
150
+ position: "relative",
151
+ width: "calc(".concat(exports.RESPONSIVE_COLUMN_WIDTH, " * $$total)"),
152
+ $$lineColor: "$colors$bgLine",
153
+ });
154
+ var Row = (0, theme_1.styled)("div", {
155
+ display: "flex",
156
+ borderBottom: "1px solid $$lineColor",
157
+ paddingLeft: "$$labelWidth",
158
+ variants: {
159
+ heading: {
160
+ true: {
161
+ $$lineColor: "transparent",
162
+ },
163
+ },
164
+ labelIndent: {
165
+ false: {
166
+ paddingLeft: "0",
167
+ },
168
+ },
169
+ hoverable: {
170
+ true: {
171
+ "&:hover": {
172
+ backgroundColor: "$colors$bgLine",
173
+ },
174
+ },
175
+ },
176
+ },
177
+ });
178
+ var Col = (0, theme_1.styled)("div", {
179
+ position: "relative",
180
+ width: exports.RESPONSIVE_COLUMN_WIDTH,
181
+ height: exports.RESPONSIVE_ROW_HEIGHT,
182
+ boxSizing: "border-box",
183
+ borderLeft: "1px solid $$lineColor",
184
+ display: "flex",
185
+ alignItems: "center",
186
+ justifyContent: "center",
187
+ paddingRight: "4px",
188
+ variants: {
189
+ autoHeight: {
190
+ true: {
191
+ height: "auto",
192
+ },
193
+ },
194
+ },
195
+ });
196
+ var Field = (0, theme_1.styled)("div", {
197
+ flex: "1 1 auto",
198
+ });
199
+ // const Start = styled("div", {
200
+ // position: "absolute",
201
+ // })
202
+ // const End = styled("div", {
203
+ // position: "absolute",
204
+ // right: 2,
205
+ // })
206
+ var RowLabel = (0, theme_1.styled)("div", {
207
+ width: "$$labelWidth",
208
+ height: exports.RESPONSIVE_ROW_HEIGHT,
209
+ boxSizing: "border-box",
210
+ flex: "0 0 auto",
211
+ });
212
+ var Toolbar = (0, theme_1.styled)("div", {
213
+ display: "flex",
214
+ textAlign: "left",
215
+ width: "100%",
216
+ paddingLeft: "4px",
217
+ paddingBottom: "4px",
218
+ button: {
219
+ marginRight: "3px",
220
+ },
221
+ });
222
+ var ToolbarButton = (0, theme_1.styled)("button", {
223
+ fontSize: "9px",
224
+ appearance: "none",
225
+ border: 0,
226
+ backgroundColor: "$colors$button",
227
+ color: "$colors$fg",
228
+ borderRadius: "4px",
229
+ padding: "0px 4px",
230
+ "&:hover": {
231
+ backgroundColor: "$colors$buttonHover",
232
+ },
233
+ });
@@ -0,0 +1,47 @@
1
+ export declare const Button: import("@stitches/react/types/styled-component").StyledComponent<"button", {
2
+ state?: "active" | "inactive" | undefined;
3
+ color?: "default" | "black" | undefined;
4
+ small?: boolean | "true" | undefined;
5
+ tiny?: boolean | "true" | undefined;
6
+ }, {}, import("@stitches/react/types/css-util").CSS<{}, {
7
+ space: {
8
+ smallButtonHeight: string;
9
+ buttonHeight: string;
10
+ 0: string;
11
+ 1: string;
12
+ 2: string;
13
+ 3: string;
14
+ 4: string;
15
+ 5: string;
16
+ 6: string;
17
+ };
18
+ colors: {
19
+ bg: string;
20
+ bgHover: string;
21
+ bgHoverLight: string;
22
+ bgLine: string;
23
+ bgLineStrong: string;
24
+ button: string;
25
+ buttonHover: string;
26
+ fg: string;
27
+ fgFaded: string;
28
+ };
29
+ fontSizes: {
30
+ sm: string;
31
+ md: string;
32
+ lg: string;
33
+ xl: string;
34
+ };
35
+ fonts: {
36
+ body: string;
37
+ mono: string;
38
+ };
39
+ radii: {
40
+ sm: string;
41
+ md: string;
42
+ lg: string;
43
+ };
44
+ transitions: {
45
+ default: string;
46
+ };
47
+ }, import("@stitches/react/types/config").DefaultThemeMap, {}>>;
@@ -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
+ });
@@ -0,0 +1,45 @@
1
+ export declare const Text: import("@stitches/react/types/styled-component").StyledComponent<"div", {
2
+ variant?: "h1" | "mono" | "monoBold" | "monoTiny" | undefined;
3
+ align?: "left" | "right" | "center" | undefined;
4
+ }, {}, import("@stitches/react/types/css-util").CSS<{}, {
5
+ space: {
6
+ smallButtonHeight: string;
7
+ buttonHeight: string;
8
+ 0: string;
9
+ 1: string;
10
+ 2: string;
11
+ 3: string;
12
+ 4: string;
13
+ 5: string;
14
+ 6: string;
15
+ };
16
+ colors: {
17
+ bg: string;
18
+ bgHover: string;
19
+ bgHoverLight: string;
20
+ bgLine: string;
21
+ bgLineStrong: string;
22
+ button: string;
23
+ buttonHover: string;
24
+ fg: string;
25
+ fgFaded: string;
26
+ };
27
+ fontSizes: {
28
+ sm: string;
29
+ md: string;
30
+ lg: string;
31
+ xl: string;
32
+ };
33
+ fonts: {
34
+ body: string;
35
+ mono: string;
36
+ };
37
+ radii: {
38
+ sm: string;
39
+ md: string;
40
+ lg: string;
41
+ };
42
+ transitions: {
43
+ default: string;
44
+ };
45
+ }, import("@stitches/react/types/config").DefaultThemeMap, {}>>;
@@ -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 {};