@pie-lib/graphing-solution-set 5.0.1-next.20261004165705 → 5.0.1-next.20261004173930

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.
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -5,16 +5,16 @@ import { types as n } from "@pie-lib/plot";
5
5
  import { color as r } from "@pie-lib/render-ui";
6
6
  import { jsx as i } from "react/jsx-runtime";
7
7
  import { styled as a } from "@mui/material/styles";
8
- import o from "@mui/material/InputBase";
9
8
  //#region src/coordinates-label.tsx
10
- var s = a(o)(({ theme: e }) => ({
9
+ var o = a("div")(({ theme: e }) => ({
11
10
  fontFamily: e.typography.fontFamily,
12
11
  fontSize: e.typography.fontSize,
13
12
  borderRadius: "8px",
14
13
  background: e.palette.common.white,
15
14
  color: r.defaults.BLACK,
16
- "& .MuiInputBase-input": { padding: 0 }
17
- })), c = (e, t, n, r) => {
15
+ lineHeight: "1.4375em",
16
+ whiteSpace: "nowrap"
17
+ })), s = (e, t, n, r) => {
18
18
  let { scale: i, domain: a, range: o } = e, s = n === o.min ? 16 : n === o.max ? 0 : 8;
19
19
  return i.x(t) + r + 10 >= i.x(a.max) ? {
20
20
  left: i.x(t) - 10 - r,
@@ -23,24 +23,23 @@ var s = a(o)(({ theme: e }) => ({
23
23
  left: i.x(t) + 10,
24
24
  top: i.y(n) - s
25
25
  };
26
- }, l = ({ x: t, y: n, graphProps: r }) => {
27
- let a = `(${e(t)}, ${e(n)})`, o = (a.length || 0) * 6;
28
- return /* @__PURE__ */ i(s, {
26
+ }, c = ({ x: t, y: n, graphProps: r }) => {
27
+ let a = `(${e(t)}, ${e(n)})`, c = (a.length || 0) * 6;
28
+ return /* @__PURE__ */ i(o, {
29
29
  style: {
30
30
  position: "absolute",
31
31
  pointerEvents: "auto",
32
- width: o,
32
+ width: c,
33
33
  padding: 0,
34
- ...c(r, t, n, o)
34
+ ...s(r, t, n, c)
35
35
  },
36
- value: a,
37
- inputProps: { ariaLabel: "naked" }
36
+ children: a
38
37
  });
39
38
  };
40
- l.propTypes = {
39
+ c.propTypes = {
41
40
  graphProps: n.GraphPropsType,
42
41
  x: t.number,
43
42
  y: t.number
44
43
  };
45
44
  //#endregion
46
- export { l as CoordinatesLabel, l as default, c as getLabelPosition };
45
+ export { c as CoordinatesLabel, c as default, s as getLabelPosition };
@@ -1,31 +1,31 @@
1
1
  import { roundNumber as e } from "./utils.js";
2
2
  import { AutosizeInput as t } from "./autosize-input.js";
3
3
  import { useDebounce as n } from "./use-debounce.js";
4
- import { useCallback as r, useEffect as i, useState as a } from "react";
5
- import o from "prop-types";
6
- import { types as s } from "@pie-lib/plot";
7
- import { color as c } from "@pie-lib/render-ui";
8
- import l from "@pie-lib/translator";
9
- import { jsx as u } from "react/jsx-runtime";
10
- import { styled as d } from "@mui/material/styles";
4
+ import { useCallback as r, useEffect as i, useLayoutEffect as a, useState as o } from "react";
5
+ import s from "prop-types";
6
+ import { types as c } from "@pie-lib/plot";
7
+ import { color as l } from "@pie-lib/render-ui";
8
+ import u from "@pie-lib/translator";
9
+ import { jsx as d } from "react/jsx-runtime";
10
+ import { styled as f } from "@mui/material/styles";
11
11
  //#region src/mark-label.tsx
12
- var { translator: f } = l, p = d(t, { shouldForwardProp: (e) => !["disabled", "markDisabled"].includes(e) })(({ theme: e, disabled: t, markDisabled: n }) => ({ "& input": {
12
+ var { translator: p } = u, m = f(t, { shouldForwardProp: (e) => e !== "markDisabled" })(({ theme: e, disabled: t, markDisabled: n }) => ({ "& input": {
13
13
  float: "right",
14
14
  padding: e.spacing(.5),
15
15
  fontFamily: e.typography.fontFamily,
16
16
  fontSize: e.typography.fontSize,
17
- border: `solid 1px ${t ? c.defaults.PRIMARY_DARK : n ? c.disabled() : c.defaults.SECONDARY}`,
17
+ border: `solid 1px ${t ? l.defaults.PRIMARY_DARK : n ? l.disabled() : l.defaults.SECONDARY}`,
18
18
  borderRadius: "3px",
19
- color: n ? c.disabled() : c.defaults.PRIMARY_DARK,
19
+ color: n ? l.disabled() : l.defaults.PRIMARY_DARK,
20
20
  background: t || n ? e.palette.background.paper : "transparent"
21
- } })), m = (e, t, n) => {
21
+ } })), h = (e, t, n) => {
22
22
  n ||= {
23
23
  width: 0,
24
24
  height: 0
25
25
  };
26
26
  let { scale: r, domain: i, range: a } = e, o = r.x(t.x) + n.width + 10, s = r.y(t.y) + n.height + 10, c = o >= r.x(i.max) ? "left" : "right";
27
27
  return `${s >= r.y(a.min) ? "top" : "bottom"}-${c}`;
28
- }, h = (e, t, n, r) => {
28
+ }, g = (e, t, n, r) => {
29
29
  let { scale: i } = e;
30
30
  switch (n ||= {
31
31
  width: 0,
@@ -48,45 +48,60 @@ var { translator: f } = l, p = d(t, { shouldForwardProp: (e) => !["disabled", "m
48
48
  top: i.y(t.y) - 10 - n.height
49
49
  };
50
50
  }
51
- }, g = (t) => {
52
- let [o, s] = a(null), c = r((e) => s(e)), { mark: l, graphProps: d, disabled: g, inputRef: _, language: v } = t, [y, b] = a(l.label), x = (e) => b(e.target.value), S = n(y, 200);
53
- i(() => {
54
- b(l.label);
55
- }, [l.label]), i(() => {
56
- typeof S == "string" && S !== l.label && t.onChange(S);
57
- }, [S]);
58
- let C = o ? o.getBoundingClientRect() : {
51
+ }, _ = (e) => {
52
+ let [t, n] = o({
59
53
  width: 0,
60
54
  height: 0
61
- }, w = {
55
+ });
56
+ return a(() => {
57
+ if (!e) return;
58
+ let t = () => {
59
+ let { width: t, height: r } = e.getBoundingClientRect();
60
+ n((e) => e.width === t && e.height === r ? e : {
61
+ width: t,
62
+ height: r
63
+ });
64
+ };
65
+ if (t(), typeof ResizeObserver > "u") return;
66
+ let r = new ResizeObserver(t);
67
+ return r.observe(e), () => r.disconnect();
68
+ }, [e]), t;
69
+ }, v = (t) => {
70
+ let [a, s] = o(null), c = r((e) => s(e)), { mark: l, graphProps: u, disabled: f, inputRef: v, language: y } = t, [b, x] = o(l.label), S = (e) => x(e.target.value), C = n(b, 200);
71
+ i(() => {
72
+ x(l.label);
73
+ }, [l.label]), i(() => {
74
+ typeof C == "string" && C !== l.label && t.onChange(C);
75
+ }, [C]);
76
+ let w = _(a), T = {
62
77
  position: "fixed",
63
78
  pointerEvents: "auto",
64
- ...h(d, l, C, m(d, l, C))
65
- }, T = g || l.disabled;
66
- return /* @__PURE__ */ u(p, {
79
+ ...g(u, l, w, h(u, l, w))
80
+ }, E = f || l.disabled;
81
+ return /* @__PURE__ */ d(m, {
67
82
  inputRef: (e) => {
68
- c(e), _(e);
83
+ c(e), v(e);
69
84
  },
70
- "aria-label": Number.isFinite(l.x) && Number.isFinite(l.y) ? f.t("graphing.markLabel", {
71
- lng: v,
85
+ "aria-label": Number.isFinite(l.x) && Number.isFinite(l.y) ? p.t("graphing.markLabel", {
86
+ lng: y,
72
87
  x: e(l.x),
73
88
  y: e(l.y)
74
- }) : f.t("graphing.label", { lng: v }),
75
- disabled: T,
89
+ }) : p.t("graphing.label", { lng: y }),
90
+ disabled: E,
76
91
  markDisabled: l.disabled,
77
- value: y,
78
- style: w,
79
- onChange: x
92
+ value: b,
93
+ style: T,
94
+ onChange: S
80
95
  });
81
96
  };
82
- g.propTypes = {
83
- disabled: o.bool,
84
- onChange: o.func,
85
- graphProps: s.GraphPropsType,
86
- inputRef: o.func,
87
- language: o.string,
88
- mark: o.object,
89
- theme: o.object
97
+ v.propTypes = {
98
+ disabled: s.bool,
99
+ onChange: s.func,
100
+ graphProps: c.GraphPropsType,
101
+ inputRef: s.func,
102
+ language: s.string,
103
+ mark: s.object,
104
+ theme: s.object
90
105
  };
91
106
  //#endregion
92
- export { g as MarkLabel, g as default, h as coordinates, m as position };
107
+ export { v as MarkLabel, v as default, g as coordinates, h as position };
@@ -50,6 +50,7 @@ export declare class RawBaseComponent extends React.Component {
50
50
  middle: PropTypes.Requireable<object>;
51
51
  labelNode: PropTypes.Requireable<object>;
52
52
  labelModeEnabled: PropTypes.Requireable<boolean>;
53
+ language: PropTypes.Requireable<string>;
53
54
  onChangeLabelProps: PropTypes.Requireable<(...args: any[]) => any>;
54
55
  onChangeProps: PropTypes.Requireable<(...args: any[]) => any>;
55
56
  };
@@ -9,17 +9,17 @@ import l from "prop-types";
9
9
  import { chunk as u, isEmpty as d } from "@pie-element/shared-lodash";
10
10
  import { types as f } from "@pie-lib/plot";
11
11
  import p from "debug";
12
- import { jsx as m } from "react/jsx-runtime";
13
- import h from "react-dom";
12
+ import { jsx as m, jsxs as h } from "react/jsx-runtime";
13
+ import g from "react-dom";
14
14
  //#region src/tools/polygon/component.tsx
15
- var g = /* @__PURE__ */ e(t(), 1), _ = p("pie-lib:graphing-solution-set:polygon"), v = (e, ...t) => u(t, 2).reduce((e, t) => {
15
+ var _ = /* @__PURE__ */ e(t(), 1), v = p("pie-lib:graphing-solution-set:polygon"), y = (e, ...t) => u(t, 2).reduce((e, t) => {
16
16
  if (t.length === 2) {
17
17
  let [n, r] = t;
18
- (0, g.default)(Number.isFinite(n.index), "Index must be defined");
18
+ (0, _.default)(Number.isFinite(n.index), "Index must be defined");
19
19
  let i = n.index;
20
20
  return i >= 0 && e.splice(i, 1, r), e;
21
21
  } else return e;
22
- }, [...e]), y = class extends c.Component {
22
+ }, [...e]), b = class extends c.Component {
23
23
  static propTypes = {
24
24
  className: l.string,
25
25
  disabled: l.bool,
@@ -38,22 +38,23 @@ var g = /* @__PURE__ */ e(t(), 1), _ = p("pie-lib:graphing-solution-set:polygon"
38
38
  middle: l.object,
39
39
  labelNode: l.object,
40
40
  labelModeEnabled: l.bool,
41
+ language: l.string,
41
42
  onChangeLabelProps: l.func,
42
43
  onChangeProps: l.func
43
44
  };
44
45
  static defaultProps = { points: [] };
45
46
  dragPoint = (e, t, r) => {
46
- _("[dragPoint] from, to:", t, r);
47
+ v("[dragPoint] from, to:", t, r);
47
48
  let { onChange: i, points: a } = this.props, o = [...a], s = !!(a || []).find((e) => n(e, r));
48
49
  n(t, r) || s || (a[e].label && (r.label = a[e].label), o.splice(e, 1, r), i(o));
49
50
  };
50
51
  dragLine = (e, t) => {
51
- _("[dragLine]: ", e, t);
52
+ v("[dragLine]: ", e, t);
52
53
  let { onChange: n } = this.props;
53
- e.from.label && (t.from.label = e.from.label), e.to.label && (t.to.label = e.to.label), n(v(this.props.points, e.from, t.from, e.to, t.to));
54
+ e.from.label && (t.from.label = e.from.label), e.to.label && (t.to.label = e.to.label), n(y(this.props.points, e.from, t.from, e.to, t.to));
54
55
  };
55
56
  dragPoly = (e, t) => {
56
- _("[dragPoly] ", e, t);
57
+ v("[dragPoly] ", e, t);
57
58
  let { onChange: n } = this.props;
58
59
  t.forEach((n, r) => {
59
60
  e[r].label && (t[r].label = e[r].label);
@@ -61,7 +62,7 @@ var g = /* @__PURE__ */ e(t(), 1), _ = p("pie-lib:graphing-solution-set:polygon"
61
62
  };
62
63
  close = () => {
63
64
  let { points: e, onClosePolygon: t } = this.props;
64
- _("[close] ..."), e.length >= 3 ? t() : _("[close] - nope");
65
+ v("[close] ..."), e.length >= 3 ? t() : v("[close] - nope");
65
66
  };
66
67
  labelChange = (e, t) => {
67
68
  let { points: n, onChangeProps: r } = this.props, i = { ...e };
@@ -98,25 +99,26 @@ var g = /* @__PURE__ */ e(t(), 1), _ = p("pie-lib:graphing-solution-set:polygon"
98
99
  };
99
100
  input = {};
100
101
  render() {
101
- let { closed: e, graphProps: t, onChangeLabelProps: n, points: r, middle: i, labelNode: a, labelModeEnabled: l, isSolution: u = !1 } = this.props, d = r && r.length || 0;
102
- return a && i && Object.prototype.hasOwnProperty.call(i, "label") && h.createPortal(/* @__PURE__ */ m(s, {
103
- inputRef: (e) => this.input[d] = e,
102
+ let { closed: e, graphProps: t, onChangeLabelProps: n, points: r, middle: i, labelNode: a, labelModeEnabled: l, language: u, isSolution: d = !1 } = this.props, f = r && r.length || 0, p = null;
103
+ return a && i && Object.prototype.hasOwnProperty.call(i, "label") && (p = g.createPortal(/* @__PURE__ */ m(s, {
104
+ inputRef: (e) => this.input[f] = e,
104
105
  disabled: !l,
105
106
  mark: i,
106
107
  graphProps: t,
108
+ language: u,
107
109
  onChange: (e) => n({
108
110
  ...i,
109
111
  label: e
110
112
  })
111
- }), a), /* @__PURE__ */ m("g", { children: /* @__PURE__ */ m(c.Fragment, { children: /* @__PURE__ */ m(o, {
113
+ }), a)), /* @__PURE__ */ m("g", { children: /* @__PURE__ */ h(c.Fragment, { children: [/* @__PURE__ */ m(o, {
112
114
  points: r,
113
115
  closed: e,
114
- isSolution: u,
116
+ isSolution: d,
115
117
  graphProps: t,
116
- onClick: this.clickPoint.bind(this, i, d)
117
- }) }) });
118
+ onClick: this.clickPoint.bind(this, i, f)
119
+ }), p] }) });
118
120
  }
119
- }, b = y, x = class extends c.Component {
121
+ }, x = b, S = class extends c.Component {
120
122
  static propTypes = {
121
123
  ...a,
122
124
  graphProps: f.GraphPropsType.isRequired
@@ -157,7 +159,7 @@ var g = /* @__PURE__ */ e(t(), 1), _ = p("pie-lib:graphing-solution-set:polygon"
157
159
  });
158
160
  };
159
161
  closePolygon = () => {
160
- _("[closePolygon] ...");
162
+ v("[closePolygon] ...");
161
163
  let { onComplete: e, mark: t } = this.props;
162
164
  e(t, {
163
165
  ...t,
@@ -172,9 +174,9 @@ var g = /* @__PURE__ */ e(t(), 1), _ = p("pie-lib:graphing-solution-set:polygon"
172
174
  });
173
175
  };
174
176
  render() {
175
- let { coordinatesOnHover: e, mark: t, graphProps: n, onClick: r, isToolActive: i, labelNode: a, labelModeEnabled: o } = this.props, { mark: s } = this.state;
176
- return /* @__PURE__ */ m(b, {
177
- ...s || t,
177
+ let { coordinatesOnHover: e, mark: t, graphProps: n, onClick: r, isToolActive: i, labelNode: a, labelModeEnabled: o, language: s } = this.props, { mark: c } = this.state;
178
+ return /* @__PURE__ */ m(x, {
179
+ ...c || t,
178
180
  coordinatesOnHover: e,
179
181
  onChange: this.change,
180
182
  onChangeLabelProps: this.changeLabelProps,
@@ -186,9 +188,10 @@ var g = /* @__PURE__ */ e(t(), 1), _ = p("pie-lib:graphing-solution-set:polygon"
186
188
  graphProps: n,
187
189
  isToolActive: i,
188
190
  labelNode: a,
189
- labelModeEnabled: o
191
+ labelModeEnabled: o,
192
+ language: s
190
193
  });
191
194
  }
192
195
  };
193
196
  //#endregion
194
- export { b as BaseComponent, y as RawBaseComponent, x as default, v as swap };
197
+ export { x as BaseComponent, b as RawBaseComponent, S as default, y as swap };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-lib/graphing-solution-set",
3
- "version": "5.0.1-next.20261004165705",
3
+ "version": "5.0.1-next.20261004173930",
4
4
  "description": "Graphing components",
5
5
  "repository": {
6
6
  "type": "git",
@@ -14,13 +14,13 @@
14
14
  "@mapbox/point-geometry": "^1.1.0",
15
15
  "@mui/icons-material": "^7.3.4",
16
16
  "@mui/material": "^7.3.4",
17
- "@pie-lib/drag": "5.0.1-next.20261004165705",
18
- "@pie-lib/editable-html-tip-tap": "3.0.1-next.20261004165705",
17
+ "@pie-lib/drag": "5.0.1-next.20261004173930",
18
+ "@pie-lib/editable-html-tip-tap": "3.0.1-next.20261004173930",
19
19
  "@pie-lib/graphing-utils": "4.0.1-next.20261002233132",
20
- "@pie-lib/plot": "5.0.1-next.20261004165705",
20
+ "@pie-lib/plot": "5.0.1-next.20261004173930",
21
21
  "@pie-lib/render-ui": "8.0.1-next.20261004165705",
22
22
  "@pie-lib/tools": "3.0.1-next.20261002233132",
23
- "@pie-lib/translator": "5.0.1-next.20261004041321",
23
+ "@pie-lib/translator": "5.0.1-next.20261004173930",
24
24
  "@visx/axis": "^4.0.0",
25
25
  "@visx/clip-path": "^4.0.0",
26
26
  "@visx/curve": "^4.0.0",
@@ -40,7 +40,7 @@
40
40
  "redux-undo": "^1.1.0",
41
41
  "@pie-element/shared-lodash": "0.1.2-next.20261002215153",
42
42
  "clsx": "^2.1.1",
43
- "@pie-lib/config-ui": "14.0.1-next.20261004165705",
43
+ "@pie-lib/config-ui": "14.0.1-next.20261004173930",
44
44
  "@dnd-kit/core": "^6.3.1",
45
45
  "@dnd-kit/utilities": "^3.2.2",
46
46
  "d3-shape": "^3.2.0"