@pie-element/number-line 13.1.1 → 13.1.2-next.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 (191) hide show
  1. package/configure.js +2 -0
  2. package/controller.js +1 -0
  3. package/dist/_virtual/_rolldown/runtime.js +11 -0
  4. package/dist/author/arrows.d.ts +28 -0
  5. package/dist/author/arrows.js +69 -0
  6. package/dist/author/card-bar.d.ts +20 -0
  7. package/dist/author/card-bar.js +41 -0
  8. package/dist/author/defaults.d.ts +178 -0
  9. package/dist/author/defaults.js +144 -0
  10. package/dist/author/domain.d.ts +15 -0
  11. package/dist/author/domain.js +54 -0
  12. package/dist/author/index.d.ts +23 -0
  13. package/dist/author/index.js +89 -0
  14. package/dist/author/main.d.ts +44 -0
  15. package/dist/author/main.js +485 -0
  16. package/dist/author/number-text-field.d.ts +13 -0
  17. package/dist/author/number-text-field.js +13 -0
  18. package/dist/author/point-config.d.ts +25 -0
  19. package/dist/author/point-config.js +69 -0
  20. package/dist/author/size.d.ts +24 -0
  21. package/dist/author/size.js +48 -0
  22. package/dist/author/ticks.d.ts +22 -0
  23. package/dist/author/ticks.js +115 -0
  24. package/dist/author/utils.d.ts +9 -0
  25. package/dist/author/utils.js +4 -0
  26. package/dist/browser/author/index.js +40259 -0
  27. package/dist/browser/author/index.js.map +1 -0
  28. package/dist/browser/controller/index.js +569 -0
  29. package/dist/browser/controller/index.js.map +1 -0
  30. package/dist/browser/delivery/index.js +2 -0
  31. package/dist/browser/delivery-Ci_kZyOM.js +17903 -0
  32. package/dist/browser/delivery-Ci_kZyOM.js.map +1 -0
  33. package/dist/browser/dist-D5T-OaLo.js +19038 -0
  34. package/dist/browser/dist-D5T-OaLo.js.map +1 -0
  35. package/dist/browser/impureFunctionsAny.generated-Bqfato71.js +10162 -0
  36. package/dist/browser/impureFunctionsAny.generated-Bqfato71.js.map +1 -0
  37. package/dist/browser/number-line.css +2 -0
  38. package/dist/controller/defaults.d.ts +58 -0
  39. package/dist/controller/defaults.js +50 -0
  40. package/dist/controller/index.d.ts +47 -0
  41. package/dist/controller/index.js +165 -0
  42. package/dist/controller/tickUtils.d.ts +21 -0
  43. package/dist/controller/tickUtils.js +252 -0
  44. package/dist/controller/utils.d.ts +9 -0
  45. package/dist/controller/utils.js +68 -0
  46. package/dist/delivery/data-converter.d.ts +64 -0
  47. package/dist/delivery/data-converter.js +70 -0
  48. package/dist/delivery/draggable/index.d.ts +33 -0
  49. package/dist/delivery/draggable/index.js +39 -0
  50. package/dist/delivery/index.d.ts +35 -0
  51. package/dist/delivery/index.js +109 -0
  52. package/dist/delivery/number-line/colors.d.ts +11 -0
  53. package/dist/delivery/number-line/colors.js +5 -0
  54. package/dist/delivery/number-line/feedback.d.ts +19 -0
  55. package/dist/delivery/number-line/feedback.js +57 -0
  56. package/dist/delivery/number-line/graph/arrow.d.ts +30 -0
  57. package/dist/delivery/number-line/graph/arrow.js +27 -0
  58. package/dist/delivery/number-line/graph/elements/base.d.ts +16 -0
  59. package/dist/delivery/number-line/graph/elements/base.js +11 -0
  60. package/dist/delivery/number-line/graph/elements/builder.d.ts +33 -0
  61. package/dist/delivery/number-line/graph/elements/builder.js +30 -0
  62. package/dist/delivery/number-line/graph/elements/line.d.ts +51 -0
  63. package/dist/delivery/number-line/graph/elements/line.js +188 -0
  64. package/dist/delivery/number-line/graph/elements/point.d.ts +43 -0
  65. package/dist/delivery/number-line/graph/elements/point.js +127 -0
  66. package/dist/delivery/number-line/graph/elements/ray.d.ts +43 -0
  67. package/dist/delivery/number-line/graph/elements/ray.js +130 -0
  68. package/dist/delivery/number-line/graph/index.d.ts +59 -0
  69. package/dist/delivery/number-line/graph/index.js +196 -0
  70. package/dist/delivery/number-line/graph/line.d.ts +46 -0
  71. package/dist/delivery/number-line/graph/line.js +27 -0
  72. package/dist/delivery/number-line/graph/stacks.d.ts +10 -0
  73. package/dist/delivery/number-line/graph/stacks.js +40 -0
  74. package/dist/delivery/number-line/graph/tick-utils.d.ts +80 -0
  75. package/dist/delivery/number-line/graph/tick-utils.js +295 -0
  76. package/dist/delivery/number-line/graph/ticks.d.ts +46 -0
  77. package/dist/delivery/number-line/graph/ticks.js +115 -0
  78. package/dist/delivery/number-line/index.d.ts +35 -0
  79. package/dist/delivery/number-line/index.js +215 -0
  80. package/dist/delivery/number-line/point-chooser/button.d.ts +31 -0
  81. package/dist/delivery/number-line/point-chooser/button.js +36 -0
  82. package/dist/delivery/number-line/point-chooser/img.d.ts +10 -0
  83. package/dist/delivery/number-line/point-chooser/img.js +4 -0
  84. package/dist/delivery/number-line/point-chooser/index.d.ts +37 -0
  85. package/dist/delivery/number-line/point-chooser/index.js +154 -0
  86. package/dist/delivery/number-line/point-chooser/styles.d.ts +192 -0
  87. package/dist/delivery/number-line/transitions/fade.d.ts +34 -0
  88. package/dist/delivery/number-line/transitions/fade.js +75 -0
  89. package/dist/delivery/number-line/transitions/index.d.ts +10 -0
  90. package/dist/index.d.ts +1 -0
  91. package/dist/index.iife.d.ts +8 -0
  92. package/dist/index.iife.js +197 -0
  93. package/dist/index.js +2 -0
  94. package/dist/runtime-support.d.ts +12 -0
  95. package/dist/runtime-support.js +12 -0
  96. package/package.json +87 -21
  97. package/CHANGELOG.json +0 -1247
  98. package/CHANGELOG.md +0 -2435
  99. package/LICENSE.md +0 -5
  100. package/README.md +0 -28
  101. package/configure/CHANGELOG.json +0 -827
  102. package/configure/CHANGELOG.md +0 -2082
  103. package/configure/lib/arrows.js +0 -89
  104. package/configure/lib/arrows.js.map +0 -1
  105. package/configure/lib/card-bar.js +0 -57
  106. package/configure/lib/card-bar.js.map +0 -1
  107. package/configure/lib/defaults.js +0 -177
  108. package/configure/lib/defaults.js.map +0 -1
  109. package/configure/lib/domain.js +0 -87
  110. package/configure/lib/domain.js.map +0 -1
  111. package/configure/lib/index.js +0 -176
  112. package/configure/lib/index.js.map +0 -1
  113. package/configure/lib/main.js +0 -815
  114. package/configure/lib/main.js.map +0 -1
  115. package/configure/lib/number-text-field.js +0 -26
  116. package/configure/lib/number-text-field.js.map +0 -1
  117. package/configure/lib/point-config.js +0 -84
  118. package/configure/lib/point-config.js.map +0 -1
  119. package/configure/lib/size.js +0 -66
  120. package/configure/lib/size.js.map +0 -1
  121. package/configure/lib/ticks.js +0 -234
  122. package/configure/lib/ticks.js.map +0 -1
  123. package/configure/lib/utils.js +0 -12
  124. package/configure/lib/utils.js.map +0 -1
  125. package/configure/package.json +0 -20
  126. package/controller/CHANGELOG.json +0 -332
  127. package/controller/CHANGELOG.md +0 -1360
  128. package/controller/lib/defaults.js +0 -56
  129. package/controller/lib/defaults.js.map +0 -1
  130. package/controller/lib/index.js +0 -430
  131. package/controller/lib/index.js.map +0 -1
  132. package/controller/lib/tickUtils.js +0 -294
  133. package/controller/lib/tickUtils.js.map +0 -1
  134. package/controller/lib/utils.js +0 -168
  135. package/controller/lib/utils.js.map +0 -1
  136. package/controller/package.json +0 -20
  137. package/demo.gif +0 -0
  138. package/docs/config-schema.json +0 -2532
  139. package/docs/config-schema.json.md +0 -1844
  140. package/docs/demo/config.js +0 -8
  141. package/docs/demo/generate.js +0 -39
  142. package/docs/demo/index.html +0 -1
  143. package/docs/pie-schema.json +0 -2461
  144. package/docs/pie-schema.json.md +0 -1228
  145. package/docs/schemas/config.json +0 -256
  146. package/lib/data-converter.js +0 -96
  147. package/lib/data-converter.js.map +0 -1
  148. package/lib/draggable/index.js +0 -114
  149. package/lib/draggable/index.js.map +0 -1
  150. package/lib/index.js +0 -196
  151. package/lib/index.js.map +0 -1
  152. package/lib/number-line/colors.js +0 -11
  153. package/lib/number-line/colors.js.map +0 -1
  154. package/lib/number-line/feedback.js +0 -92
  155. package/lib/number-line/feedback.js.map +0 -1
  156. package/lib/number-line/graph/arrow.js +0 -44
  157. package/lib/number-line/graph/arrow.js.map +0 -1
  158. package/lib/number-line/graph/elements/base.js +0 -20
  159. package/lib/number-line/graph/elements/base.js.map +0 -1
  160. package/lib/number-line/graph/elements/builder.js +0 -37
  161. package/lib/number-line/graph/elements/builder.js.map +0 -1
  162. package/lib/number-line/graph/elements/line.js +0 -259
  163. package/lib/number-line/graph/elements/line.js.map +0 -1
  164. package/lib/number-line/graph/elements/point.js +0 -204
  165. package/lib/number-line/graph/elements/point.js.map +0 -1
  166. package/lib/number-line/graph/elements/ray.js +0 -190
  167. package/lib/number-line/graph/elements/ray.js.map +0 -1
  168. package/lib/number-line/graph/index.js +0 -262
  169. package/lib/number-line/graph/index.js.map +0 -1
  170. package/lib/number-line/graph/line.js +0 -38
  171. package/lib/number-line/graph/line.js.map +0 -1
  172. package/lib/number-line/graph/stacks.js +0 -78
  173. package/lib/number-line/graph/stacks.js.map +0 -1
  174. package/lib/number-line/graph/tick-utils.js +0 -347
  175. package/lib/number-line/graph/tick-utils.js.map +0 -1
  176. package/lib/number-line/graph/ticks.js +0 -188
  177. package/lib/number-line/graph/ticks.js.map +0 -1
  178. package/lib/number-line/index.js +0 -384
  179. package/lib/number-line/index.js.map +0 -1
  180. package/lib/number-line/point-chooser/button.js +0 -49
  181. package/lib/number-line/point-chooser/button.js.map +0 -1
  182. package/lib/number-line/point-chooser/img.js +0 -8
  183. package/lib/number-line/point-chooser/img.js.map +0 -1
  184. package/lib/number-line/point-chooser/index.js +0 -197
  185. package/lib/number-line/point-chooser/index.js.map +0 -1
  186. package/lib/number-line/point-chooser/styles.js +0 -77
  187. package/lib/number-line/point-chooser/styles.js.map +0 -1
  188. package/lib/number-line/transitions/fade.js +0 -88
  189. package/lib/number-line/transitions/fade.js.map +0 -1
  190. package/lib/number-line/transitions/index.js +0 -14
  191. package/lib/number-line/transitions/index.js.map +0 -1
@@ -0,0 +1,188 @@
1
+ import { Draggable as e } from "../../../draggable/index.js";
2
+ import t from "./point.js";
3
+ import { basePropTypes as n } from "./base.js";
4
+ import r from "react";
5
+ import { styled as i } from "@mui/material/styles";
6
+ import a from "prop-types";
7
+ import { jsx as o, jsxs as s } from "react/jsx-runtime";
8
+ import { isEqual as c, isNumber as l } from "@pie-element/shared-lodash";
9
+ import { color as u } from "@pie-lib/render-ui";
10
+ //#region src/delivery/number-line/graph/elements/line.tsx
11
+ var d = "150ms", f = i("g")(({ $disabled: e, $selected: t, $correct: n }) => ({
12
+ "& .line-handle": {
13
+ stroke: u.primary(),
14
+ cursor: "pointer",
15
+ strokeWidth: "5px",
16
+ transition: `opacity ${d} linear,
17
+ stroke-width ${d} linear,
18
+ stroke ${d} linear`
19
+ },
20
+ "&.dnd-kit-dragging": {
21
+ opacity: .6,
22
+ "& .line-handle": {
23
+ opacity: 1,
24
+ strokeWidth: "12px"
25
+ }
26
+ },
27
+ ...e && {
28
+ cursor: "not-allowed",
29
+ opacity: .8
30
+ },
31
+ ...t && { "& .line-handle": { stroke: u.primaryDark() } },
32
+ ...n === !0 && { "& .line-handle": {
33
+ cursor: "inherit",
34
+ stroke: u.correct()
35
+ } },
36
+ ...n === !1 && { "& .line-handle": {
37
+ cursor: "inherit",
38
+ stroke: u.incorrect()
39
+ } }
40
+ })), p = class extends r.Component {
41
+ static propTypes = {
42
+ ...n(),
43
+ empty: a.shape({
44
+ left: a.bool.isRequired,
45
+ right: a.bool.isRequired
46
+ }).isRequired,
47
+ position: a.shape({
48
+ left: a.number.isRequired,
49
+ right: a.number.isRequired
50
+ }).isRequired,
51
+ y: a.number,
52
+ selected: a.bool,
53
+ disabled: a.bool,
54
+ correct: a.bool,
55
+ onMoveLine: a.func.isRequired,
56
+ onToggleSelect: a.func.isRequired,
57
+ onDragStart: a.func,
58
+ onDragStop: a.func
59
+ };
60
+ static defaultProps = {
61
+ selected: !1,
62
+ y: 0,
63
+ disabled: !1,
64
+ correct: void 0
65
+ };
66
+ static contextTypes = {
67
+ xScale: a.func.isRequired,
68
+ snapValue: a.func.isRequired
69
+ };
70
+ constructor(e) {
71
+ super(e), this.state = {
72
+ left: null,
73
+ right: null
74
+ };
75
+ }
76
+ UNSAFE_componentWillReceiveProps(e) {
77
+ if (e) {
78
+ let { position: t } = e;
79
+ this.setState({
80
+ left: t.left,
81
+ right: t.right
82
+ });
83
+ }
84
+ }
85
+ onDrag(e, t) {
86
+ let { domain: n } = this.props;
87
+ if (t >= n.min && t <= n.max) {
88
+ let n = {};
89
+ n[e] = t, this.setState(n);
90
+ }
91
+ }
92
+ onMove(e, t) {
93
+ let { position: n } = this.props, r = {
94
+ left: n.left,
95
+ right: n.right
96
+ };
97
+ r[e] = t, this.props.onMoveLine(r);
98
+ }
99
+ render() {
100
+ let { interval: n, empty: r, position: i, domain: a, y: u, selected: d, disabled: p, correct: m } = this.props, { xScale: h } = this.context, { onDrag: g, onMove: _ } = this, v = _.bind(this, "left"), y = _.bind(this, "right"), b = g.bind(this, "left"), x = g.bind(this, "right"), S = l(this.state.left) ? this.state.left : i.left, C = l(this.state.right) ? this.state.right : i.right, w = h(n) - h(0), T = (e) => e.nativeEvent.preventDefault(), E = () => {
101
+ this.props.onToggleSelect();
102
+ }, D = () => {
103
+ this.props.onToggleSelect();
104
+ }, O = (e) => {
105
+ if (Math.abs(e) < w / 10) {
106
+ this.props.onToggleSelect();
107
+ return;
108
+ }
109
+ let t = h.invert(e + h(0)), n = {
110
+ left: i.left + t,
111
+ right: i.right + t
112
+ };
113
+ c(n, this.props.position) || this.props.onMoveLine(n);
114
+ }, k = {
115
+ left: (a.min - i.left) / n * w,
116
+ right: (a.max - i.right) / n * w
117
+ }, A = {
118
+ interval: n,
119
+ selected: d,
120
+ disabled: p,
121
+ correct: m
122
+ };
123
+ return /* @__PURE__ */ o(e, {
124
+ id: `line-${i.left}-${i.right}-${u}`,
125
+ disabled: p,
126
+ grid: [w],
127
+ bounds: k,
128
+ onMouseDown: T,
129
+ onDragEnd: O,
130
+ children: ({ setNodeRef: e, attributes: n, listeners: c, translateX: l, isDragging: g, onMouseDown: _ }) => /* @__PURE__ */ o(f, {
131
+ ref: e,
132
+ $disabled: p,
133
+ $selected: d,
134
+ $correct: m,
135
+ className: g ? "dnd-kit-dragging" : void 0,
136
+ onMouseDown: _,
137
+ ...n,
138
+ children: /* @__PURE__ */ s("g", {
139
+ transform: `translate(${l}, ${u})`,
140
+ children: [
141
+ /* @__PURE__ */ o("rect", {
142
+ x: h(S),
143
+ width: Math.abs(h(C) - h(S)),
144
+ fill: "red",
145
+ fillOpacity: "0.0",
146
+ y: "-8",
147
+ height: 16,
148
+ onClick: D
149
+ }),
150
+ /* @__PURE__ */ o("line", {
151
+ className: "line-handle",
152
+ x1: h(S),
153
+ x2: h(C),
154
+ onClick: E,
155
+ ...c
156
+ }),
157
+ /* @__PURE__ */ o(t, {
158
+ ...A,
159
+ empty: r.left,
160
+ bounds: {
161
+ left: a.min - i.left,
162
+ right: a.max - i.left
163
+ },
164
+ position: i.left,
165
+ onDrag: b,
166
+ onMove: v,
167
+ onClick: D
168
+ }),
169
+ /* @__PURE__ */ o(t, {
170
+ ...A,
171
+ empty: r.right,
172
+ bounds: {
173
+ left: a.min - i.right,
174
+ right: a.max - i.right
175
+ },
176
+ position: i.right,
177
+ onDrag: x,
178
+ onMove: y,
179
+ onClick: D
180
+ })
181
+ ]
182
+ })
183
+ })
184
+ });
185
+ }
186
+ };
187
+ //#endregion
188
+ export { p as default };
@@ -0,0 +1,43 @@
1
+ /**
2
+ * @synced-from pie-elements/packages/number-line/src/number-line/graph/elements/point.jsx
3
+ * @auto-generated
4
+ *
5
+ * This file is automatically synced from pie-elements and converted to TypeScript.
6
+ * Manual edits will be overwritten on next sync.
7
+ * To make changes, edit the upstream JavaScript file and run sync again.
8
+ */
9
+ import React from 'react';
10
+ import PropTypes from 'prop-types';
11
+ export declare class Point extends React.Component {
12
+ static defaultProps: {
13
+ y: number;
14
+ selected: boolean;
15
+ empty: boolean;
16
+ disabled: boolean;
17
+ correct: undefined;
18
+ };
19
+ static propTypes: {
20
+ interval: PropTypes.Validator<number>;
21
+ position: PropTypes.Validator<number>;
22
+ bounds: PropTypes.Requireable<PropTypes.InferProps<{
23
+ left: PropTypes.Validator<number>;
24
+ right: PropTypes.Validator<number>;
25
+ }>>;
26
+ selected: PropTypes.Requireable<boolean>;
27
+ disabled: PropTypes.Requireable<boolean>;
28
+ correct: PropTypes.Requireable<boolean>;
29
+ empty: PropTypes.Requireable<boolean>;
30
+ y: PropTypes.Requireable<number>;
31
+ onMove: PropTypes.Validator<(...args: any[]) => any>;
32
+ onClick: PropTypes.Requireable<(...args: any[]) => any>;
33
+ onDrag: PropTypes.Requireable<(...args: any[]) => any>;
34
+ onDragStop: PropTypes.Requireable<(...args: any[]) => any>;
35
+ onDragStart: PropTypes.Requireable<(...args: any[]) => any>;
36
+ };
37
+ static contextTypes: {
38
+ xScale: PropTypes.Validator<(...args: any[]) => any>;
39
+ snapValue: PropTypes.Validator<(...args: any[]) => any>;
40
+ };
41
+ render(): React.JSX.Element;
42
+ }
43
+ export default Point;
@@ -0,0 +1,127 @@
1
+ import { Draggable as e } from "../../../draggable/index.js";
2
+ import t from "react";
3
+ import { styled as n } from "@mui/material/styles";
4
+ import r from "prop-types";
5
+ import { jsx as i, jsxs as a } from "react/jsx-runtime";
6
+ import { color as o } from "@pie-lib/render-ui";
7
+ //#region src/delivery/number-line/graph/elements/point.tsx
8
+ var s = "150ms", c = n("circle")(({ $selected: e, $disabled: t, $correct: n, $empty: r }) => ({
9
+ cursor: "pointer",
10
+ transition: `r ${s} linear,
11
+ opacity ${s} linear,
12
+ fill ${s} linear,
13
+ stroke ${s} linear`,
14
+ stroke: o.primary(),
15
+ fill: o.primary(),
16
+ "&.dnd-kit-dragging": {
17
+ opacity: .25,
18
+ r: "10px"
19
+ },
20
+ "&:hover": { stroke: o.primaryDark() },
21
+ ...e && { stroke: o.primaryDark() },
22
+ ...t && {
23
+ cursor: "not-allowed",
24
+ opacity: .8
25
+ },
26
+ ...n === !0 && {
27
+ cursor: "inherit",
28
+ stroke: o.correct(),
29
+ fill: o.correct()
30
+ },
31
+ ...n === !1 && {
32
+ cursor: "inherit",
33
+ stroke: o.incorrect(),
34
+ fill: o.incorrect()
35
+ },
36
+ ...r && { fill: "white" }
37
+ })), l = class extends t.Component {
38
+ static defaultProps = {
39
+ y: 0,
40
+ selected: !1,
41
+ empty: !1,
42
+ disabled: !1,
43
+ correct: void 0
44
+ };
45
+ static propTypes = {
46
+ interval: r.number.isRequired,
47
+ position: r.number.isRequired,
48
+ bounds: r.shape({
49
+ left: r.number.isRequired,
50
+ right: r.number.isRequired
51
+ }),
52
+ selected: r.bool,
53
+ disabled: r.bool,
54
+ correct: r.bool,
55
+ empty: r.bool,
56
+ y: r.number,
57
+ onMove: r.func.isRequired,
58
+ onClick: r.func,
59
+ onDrag: r.func,
60
+ onDragStop: r.func,
61
+ onDragStart: r.func
62
+ };
63
+ static contextTypes = {
64
+ xScale: r.func.isRequired,
65
+ snapValue: r.func.isRequired
66
+ };
67
+ render() {
68
+ let { onDragStop: t, onDragStart: n, onDrag: r, onClick: s, onMove: l, interval: u, y: d, bounds: f, selected: p, position: m, disabled: h, correct: g, empty: _ } = this.props, { snapValue: v, xScale: y } = this.context, b = y(u) - y(0), x = (e) => {
69
+ let t = e + y(0);
70
+ return v(m + y.invert(t));
71
+ }, S = f ? {
72
+ left: f.left / u * b,
73
+ right: f.right / u * b
74
+ } : null;
75
+ return /* @__PURE__ */ i(e, {
76
+ id: `point-${m}-${d}`,
77
+ disabled: h,
78
+ grid: [b],
79
+ bounds: S,
80
+ onMouseDown: (e) => e.nativeEvent.preventDefault(),
81
+ onDragStart: () => {
82
+ n && n();
83
+ },
84
+ onDragMove: (e) => {
85
+ let t = x(e);
86
+ r && r(t);
87
+ },
88
+ onDragEnd: (e) => {
89
+ if (t && t(), Math.abs(e) < b / 10) {
90
+ s && s();
91
+ return;
92
+ }
93
+ l(x(e));
94
+ },
95
+ children: ({ setNodeRef: e, attributes: t, listeners: n, translateX: r, isDragging: s, onMouseDown: l }) => /* @__PURE__ */ a("g", {
96
+ ref: e,
97
+ onMouseDown: l,
98
+ transform: `translate(${r}, 0)`,
99
+ ...t,
100
+ ...n,
101
+ children: [/* @__PURE__ */ i("circle", {
102
+ r: "20",
103
+ strokeWidth: "3",
104
+ style: {
105
+ fill: "transparent",
106
+ pointerEvents: "visibleStroke"
107
+ },
108
+ cx: y(m),
109
+ cy: d,
110
+ stroke: p ? o.primaryDark() : "none"
111
+ }), /* @__PURE__ */ i(c, {
112
+ r: "5",
113
+ strokeWidth: "3",
114
+ cx: y(m),
115
+ cy: d,
116
+ $selected: p,
117
+ $disabled: h,
118
+ $correct: g,
119
+ $empty: _,
120
+ className: s ? "dnd-kit-dragging" : void 0
121
+ })]
122
+ })
123
+ });
124
+ }
125
+ };
126
+ //#endregion
127
+ export { l as default };
@@ -0,0 +1,43 @@
1
+ /**
2
+ * @synced-from pie-elements/packages/number-line/src/number-line/graph/elements/ray.jsx
3
+ * @auto-generated
4
+ *
5
+ * This file is automatically synced from pie-elements and converted to TypeScript.
6
+ * Manual edits will be overwritten on next sync.
7
+ * To make changes, edit the upstream JavaScript file and run sync again.
8
+ */
9
+ import React from 'react';
10
+ import PropTypes from 'prop-types';
11
+ export declare class Ray extends React.Component {
12
+ static propTypes: {
13
+ width: PropTypes.Validator<number>;
14
+ selected: PropTypes.Requireable<boolean>;
15
+ disabled: PropTypes.Requireable<boolean>;
16
+ empty: PropTypes.Requireable<boolean>;
17
+ direction: PropTypes.Requireable<string>;
18
+ y: PropTypes.Requireable<number>;
19
+ position: PropTypes.Validator<number>;
20
+ onMove: PropTypes.Validator<(...args: any[]) => any>;
21
+ onToggleSelect: PropTypes.Validator<(...args: any[]) => any>;
22
+ interval: PropTypes.Validator<number>;
23
+ domain: PropTypes.Requireable<PropTypes.InferProps<{
24
+ min: PropTypes.Validator<number>;
25
+ max: PropTypes.Validator<number>;
26
+ }>>;
27
+ };
28
+ static defaultProps: {
29
+ selected: boolean;
30
+ direction: string;
31
+ y: number;
32
+ disabled: boolean;
33
+ };
34
+ static contextTypes: {
35
+ xScale: PropTypes.Validator<(...args: any[]) => any>;
36
+ snapValue: PropTypes.Validator<(...args: any[]) => any>;
37
+ };
38
+ constructor(props: any);
39
+ drag(p: any): void;
40
+ stopDrag(): void;
41
+ render(): React.JSX.Element;
42
+ }
43
+ export default Ray;
@@ -0,0 +1,130 @@
1
+ import e from "./point.js";
2
+ import { basePropTypes as t } from "./base.js";
3
+ import { correct as n, incorrect as r, selected as i } from "../../colors.js";
4
+ import a from "../arrow.js";
5
+ import o from "react";
6
+ import { styled as s } from "@mui/material/styles";
7
+ import c from "prop-types";
8
+ import { jsx as l, jsxs as u } from "react/jsx-runtime";
9
+ import { isNumber as d } from "@pie-element/shared-lodash";
10
+ import { color as f } from "@pie-lib/render-ui";
11
+ //#region src/delivery/number-line/graph/elements/ray.tsx
12
+ var p = s("g")(({ $selected: e, $correct: t }) => ({
13
+ "& line": {
14
+ cursor: "pointer",
15
+ strokeWidth: "5px",
16
+ stroke: f.primary()
17
+ },
18
+ "& line, & .arrow": { transition: "stroke 150ms linear, fill 150ms linear" },
19
+ ...e && {
20
+ "& line": { stroke: i },
21
+ "& .arrow": {
22
+ fill: i,
23
+ strokeWidth: "1px",
24
+ stroke: i
25
+ }
26
+ },
27
+ ...t === !0 && {
28
+ "& line": { stroke: n },
29
+ "& .arrow": {
30
+ fill: n,
31
+ strokeWidth: "1px",
32
+ stroke: n
33
+ }
34
+ },
35
+ ...t === !1 && {
36
+ "& line": { stroke: r },
37
+ "& .arrow": {
38
+ fill: r,
39
+ strokeWidth: "1px",
40
+ stroke: r
41
+ }
42
+ }
43
+ })), m = s(a)(({ $correct: e, $selected: t }) => ({
44
+ fill: f.primary(),
45
+ ...e === !0 && {
46
+ fill: n,
47
+ "--arrow-color": n
48
+ },
49
+ ...e === !1 && {
50
+ fill: r,
51
+ "--arrow-color": r
52
+ },
53
+ ...t && {
54
+ fill: i,
55
+ "--arrow-color": i
56
+ }
57
+ })), h = class extends o.Component {
58
+ static propTypes = {
59
+ ...t(),
60
+ width: c.number.isRequired,
61
+ selected: c.bool,
62
+ disabled: c.bool,
63
+ empty: c.bool,
64
+ direction: c.oneOf(["positive", "negative"]),
65
+ y: c.number,
66
+ position: c.number.isRequired,
67
+ onMove: c.func.isRequired,
68
+ onToggleSelect: c.func.isRequired
69
+ };
70
+ static defaultProps = {
71
+ selected: !1,
72
+ direction: "positive",
73
+ y: 0,
74
+ disabled: !1
75
+ };
76
+ static contextTypes = {
77
+ xScale: c.func.isRequired,
78
+ snapValue: c.func.isRequired
79
+ };
80
+ constructor(e) {
81
+ super(e), this.state = { dragPosition: null };
82
+ }
83
+ drag(e) {
84
+ let { domain: t } = this.props;
85
+ e >= t.min && e <= t.max && this.setState({ dragPosition: e });
86
+ }
87
+ stopDrag() {
88
+ this.setState({ dragPosition: null });
89
+ }
90
+ render() {
91
+ let { interval: t, empty: n, position: r, direction: i, domain: a, y: o, selected: s, disabled: c, width: f, correct: h } = this.props, { xScale: g } = this.context, _ = this.drag.bind(this), v = this.stopDrag.bind(this), y = d(this.state.dragPosition) ? this.state.dragPosition : r, b = i === "positive", x = b ? y : a.min, S = b ? a.max : y, C = b ? g(x) : 8, w = b ? f - 8 : g(S), T = b ? f : 0, E = b ? "right" : "left";
92
+ return /* @__PURE__ */ u(p, {
93
+ $selected: s,
94
+ $correct: h,
95
+ transform: `translate(0, ${o})`,
96
+ children: [
97
+ /* @__PURE__ */ l("line", {
98
+ onClick: c ? () => {} : this.props.onToggleSelect,
99
+ className: "line-handle",
100
+ x1: C,
101
+ x2: w
102
+ }),
103
+ /* @__PURE__ */ l(e, {
104
+ disabled: c,
105
+ correct: h,
106
+ selected: s,
107
+ empty: n,
108
+ interval: t,
109
+ bounds: {
110
+ left: a.min - r,
111
+ right: a.max - r
112
+ },
113
+ position: r,
114
+ onDrag: _,
115
+ onDragStop: v,
116
+ onMove: this.props.onMove,
117
+ onClick: this.props.onToggleSelect
118
+ }),
119
+ /* @__PURE__ */ l(m, {
120
+ x: T,
121
+ $correct: h,
122
+ $selected: s,
123
+ direction: E
124
+ })
125
+ ]
126
+ });
127
+ }
128
+ };
129
+ //#endregion
130
+ export { h as default };
@@ -0,0 +1,59 @@
1
+ /**
2
+ * @synced-from pie-elements/packages/number-line/src/number-line/graph/index.jsx
3
+ * @auto-generated
4
+ *
5
+ * This file is automatically synced from pie-elements and converted to TypeScript.
6
+ * Manual edits will be overwritten on next sync.
7
+ * To make changes, edit the upstream JavaScript file and run sync again.
8
+ */
9
+ import React from 'react';
10
+ import PropTypes from 'prop-types';
11
+ export declare class NumberLineGraph extends React.Component {
12
+ static childContextTypes: {
13
+ xScale: PropTypes.Validator<(...args: any[]) => any>;
14
+ snapValue: PropTypes.Validator<(...args: any[]) => any>;
15
+ };
16
+ static propTypes: {
17
+ domain: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
18
+ min: PropTypes.Validator<number>;
19
+ max: PropTypes.Validator<number>;
20
+ }>>>;
21
+ ticks: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
22
+ minor: PropTypes.Requireable<number>;
23
+ major: PropTypes.Requireable<number>;
24
+ }>>>;
25
+ fraction: PropTypes.Requireable<boolean>;
26
+ width: PropTypes.Validator<number>;
27
+ height: PropTypes.Validator<number>;
28
+ onToggleElement: PropTypes.Validator<(...args: any[]) => any>;
29
+ onMoveElement: PropTypes.Validator<(...args: any[]) => any>;
30
+ onAddElement: PropTypes.Validator<(...args: any[]) => any>;
31
+ debug: PropTypes.Requireable<boolean>;
32
+ elements: PropTypes.Requireable<any[]>;
33
+ disabled: PropTypes.Requireable<boolean>;
34
+ onDeselectElements: PropTypes.Requireable<(...args: any[]) => any>;
35
+ arrows: PropTypes.Requireable<PropTypes.InferProps<{
36
+ left: PropTypes.Requireable<boolean>;
37
+ right: PropTypes.Requireable<boolean>;
38
+ }>>;
39
+ };
40
+ static defaultProps: {
41
+ debug: boolean;
42
+ };
43
+ constructor(props: any);
44
+ xScaleFn(): any;
45
+ snapValueFn(): (value: any) => number;
46
+ getChildContext(): {
47
+ xScale: any;
48
+ snapValue: (value: any) => number;
49
+ };
50
+ /**
51
+ * Note: we use d3 click + pointer to give us domain values directly.
52
+ * Saves us having to calculate them ourselves from a MouseEvent.
53
+ */
54
+ onRectClick(event: any): void;
55
+ componentDidMount(): void;
56
+ addElement(x: any): void;
57
+ render(): React.JSX.Element;
58
+ }
59
+ export default NumberLineGraph;