tgui-core 1.1.11 → 1.1.13

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 (292) hide show
  1. package/dist/ProgressBar.module-BkAFfFy0.js +29 -0
  2. package/dist/Section.module-CLVHJ4yA.js +15 -0
  3. package/dist/assets/BlockQuote.css +1 -0
  4. package/dist/assets/Button.css +1 -0
  5. package/dist/assets/ColorBox.css +1 -0
  6. package/dist/assets/Dialog.css +1 -0
  7. package/dist/assets/Dimmer.css +1 -0
  8. package/dist/assets/Divider.css +1 -0
  9. package/dist/assets/Flex.css +1 -0
  10. package/dist/assets/Icon.css +6 -0
  11. package/dist/assets/Input.css +1 -0
  12. package/dist/assets/Knob.css +1 -0
  13. package/dist/assets/LabeledList.css +1 -0
  14. package/dist/assets/MenuBar.css +1 -0
  15. package/dist/assets/Modal.css +1 -0
  16. package/dist/assets/NoticeBox.css +1 -0
  17. package/dist/assets/NumberInput.css +1 -0
  18. package/dist/assets/ProgressBar.css +1 -0
  19. package/dist/assets/RoundGauge.css +1 -0
  20. package/dist/assets/Section.css +1 -0
  21. package/dist/assets/Slider.css +1 -0
  22. package/dist/assets/Stack.css +1 -0
  23. package/dist/assets/Table.css +1 -0
  24. package/dist/assets/Tabs.css +1 -0
  25. package/dist/assets/TextArea.css +1 -0
  26. package/dist/assets/Tooltip.css +1 -0
  27. package/dist/common/assets.d.ts +4 -0
  28. package/dist/common/assets.js +25 -0
  29. package/dist/common/collections.d.ts +10 -0
  30. package/dist/common/collections.js +15 -0
  31. package/dist/common/color.d.ts +25 -0
  32. package/dist/common/color.js +69 -0
  33. package/dist/common/constants.d.ts +102 -0
  34. package/dist/common/constants.js +312 -0
  35. package/dist/common/events.d.ts +33 -0
  36. package/dist/common/events.js +147 -0
  37. package/{lib/common/exhaustive.ts → dist/common/exhaustive.d.ts} +1 -3
  38. package/dist/common/exhaustive.js +6 -0
  39. package/dist/common/format.d.ts +11 -0
  40. package/dist/common/format.js +114 -0
  41. package/{lib/common/fp.ts → dist/common/fp.d.ts} +2 -16
  42. package/dist/common/fp.js +9 -0
  43. package/dist/common/hotkeys.d.ts +25 -0
  44. package/dist/common/hotkeys.js +112 -0
  45. package/dist/common/http.d.ts +4 -0
  46. package/dist/common/http.js +10 -0
  47. package/dist/common/keycodes.d.ts +85 -0
  48. package/dist/common/keycodes.js +88 -0
  49. package/{lib/common/keys.ts → dist/common/keys.d.ts} +21 -24
  50. package/dist/common/keys.js +8 -0
  51. package/dist/common/math.d.ts +39 -0
  52. package/dist/common/math.js +41 -0
  53. package/dist/common/perf.d.ts +24 -0
  54. package/dist/common/perf.js +33 -0
  55. package/dist/common/random.d.ts +16 -0
  56. package/dist/common/random.js +18 -0
  57. package/dist/common/react.d.ts +23 -0
  58. package/dist/common/react.js +30 -0
  59. package/dist/common/redux.d.ts +64 -0
  60. package/dist/common/redux.js +72 -0
  61. package/dist/common/storage.d.ts +24 -0
  62. package/dist/common/storage.js +133 -0
  63. package/dist/common/string.d.ts +65 -0
  64. package/dist/common/string.js +83 -0
  65. package/dist/common/timer.d.ts +18 -0
  66. package/dist/common/timer.js +28 -0
  67. package/dist/common/type-utils.d.ts +9 -0
  68. package/dist/common/type-utils.js +25 -0
  69. package/dist/common/uuid.d.ts +9 -0
  70. package/dist/common/uuid.js +10 -0
  71. package/dist/components/AnimatedNumber.d.ts +60 -0
  72. package/dist/components/AnimatedNumber.js +76 -0
  73. package/dist/components/Autofocus.d.ts +4 -0
  74. package/dist/components/Autofocus.js +17 -0
  75. package/dist/components/Blink.d.ts +26 -0
  76. package/dist/components/Blink.js +56 -0
  77. package/dist/components/BlockQuote.d.ts +3 -0
  78. package/dist/components/BlockQuote.js +13 -0
  79. package/dist/components/BodyZoneSelector.d.ts +28 -0
  80. package/dist/components/BodyZoneSelector.js +115 -0
  81. package/dist/components/Box.d.ts +91 -0
  82. package/dist/components/Box.js +133 -0
  83. package/dist/components/Button.d.ts +93 -0
  84. package/dist/components/Button.js +298 -0
  85. package/dist/components/ByondUi.js +73 -0
  86. package/dist/components/Chart.d.ts +28 -0
  87. package/dist/components/Chart.js +95 -0
  88. package/dist/components/Collapsible.d.ts +15 -0
  89. package/dist/components/Collapsible.js +27 -0
  90. package/dist/components/ColorBox.d.ts +8 -0
  91. package/dist/components/ColorBox.js +24 -0
  92. package/dist/components/Dialog.d.ts +24 -0
  93. package/dist/components/Dialog.js +67 -0
  94. package/dist/components/Dimmer.d.ts +3 -0
  95. package/dist/components/Dimmer.js +13 -0
  96. package/dist/components/Divider.d.ts +6 -0
  97. package/dist/components/Divider.js +22 -0
  98. package/dist/components/DmIcon.d.ts +33 -0
  99. package/dist/components/DmIcon.js +29 -0
  100. package/dist/components/DraggableControl.js +176 -0
  101. package/dist/components/Dropdown.d.ts +48 -0
  102. package/dist/components/Dropdown.js +152 -0
  103. package/dist/components/FakeTerminal.js +38 -0
  104. package/dist/components/FitText.d.ts +22 -0
  105. package/dist/components/FitText.js +63 -0
  106. package/dist/components/Flex.d.ts +93 -0
  107. package/dist/components/Flex.js +72 -0
  108. package/dist/components/Icon.d.ts +30 -0
  109. package/dist/components/Icon.js +51 -0
  110. package/dist/components/Image.d.ts +14 -0
  111. package/dist/components/Image.js +35 -0
  112. package/dist/components/InfinitePlane.js +139 -0
  113. package/dist/components/Input.d.ts +61 -0
  114. package/dist/components/Input.js +89 -0
  115. package/dist/components/KeyListener.d.ts +15 -0
  116. package/dist/components/KeyListener.js +23 -0
  117. package/dist/components/Knob.d.ts +49 -0
  118. package/dist/components/Knob.js +162 -0
  119. package/dist/components/LabeledControls.d.ts +11 -0
  120. package/dist/components/LabeledControls.js +39 -0
  121. package/dist/components/LabeledList.d.ts +57 -0
  122. package/dist/components/LabeledList.js +94 -0
  123. package/dist/components/MenuBar.d.ts +28 -0
  124. package/dist/components/MenuBar.js +174 -0
  125. package/dist/components/Modal.d.ts +3 -0
  126. package/dist/components/Modal.js +25 -0
  127. package/dist/components/NoticeBox.d.ts +20 -0
  128. package/dist/components/NoticeBox.js +49 -0
  129. package/dist/components/NumberInput.d.ts +45 -0
  130. package/dist/components/NumberInput.js +221 -0
  131. package/dist/components/Popper.d.ts +27 -0
  132. package/dist/components/Popper.js +177 -0
  133. package/dist/components/ProgressBar.d.ts +46 -0
  134. package/dist/components/ProgressBar.js +37 -0
  135. package/dist/components/RestrictedInput.js +155 -0
  136. package/dist/components/RoundGauge.d.ts +53 -0
  137. package/dist/components/RoundGauge.js +147 -0
  138. package/dist/components/Section.d.ts +63 -0
  139. package/dist/components/Section.js +62 -0
  140. package/dist/components/Slider.d.ts +46 -0
  141. package/dist/components/Slider.js +124 -0
  142. package/dist/components/Stack.d.ts +27 -0
  143. package/dist/components/Stack.js +67 -0
  144. package/dist/components/StyleableSection.d.ts +11 -0
  145. package/dist/components/StyleableSection.js +16 -0
  146. package/dist/components/Table.d.ts +29 -0
  147. package/dist/components/Table.js +67 -0
  148. package/dist/components/Tabs.d.ts +23 -0
  149. package/dist/components/Tabs.js +89 -0
  150. package/dist/components/TextArea.d.ts +39 -0
  151. package/dist/components/TextArea.js +118 -0
  152. package/dist/components/TimeDisplay.js +34 -0
  153. package/dist/components/Tooltip.d.ts +29 -0
  154. package/dist/components/Tooltip.js +83 -0
  155. package/dist/components/TrackOutsideClicks.d.ts +13 -0
  156. package/dist/components/TrackOutsideClicks.js +24 -0
  157. package/dist/components/VirtualList.d.ts +8 -0
  158. package/dist/components/VirtualList.js +34 -0
  159. package/dist/components/index.js +92 -0
  160. package/dist/popper-CiqSDJTE.js +906 -0
  161. package/package.json +8 -10
  162. package/lib/common/assets.ts +0 -38
  163. package/lib/common/collections.ts +0 -27
  164. package/lib/common/color.ts +0 -88
  165. package/lib/common/constants.ts +0 -349
  166. package/lib/common/events.ts +0 -262
  167. package/lib/common/format.ts +0 -167
  168. package/lib/common/hotkeys.ts +0 -207
  169. package/lib/common/http.ts +0 -16
  170. package/lib/common/keycodes.ts +0 -86
  171. package/lib/common/math.ts +0 -76
  172. package/lib/common/perf.ts +0 -72
  173. package/lib/common/random.ts +0 -32
  174. package/lib/common/react.ts +0 -59
  175. package/lib/common/redux.ts +0 -187
  176. package/lib/common/storage.ts +0 -207
  177. package/lib/common/string.ts +0 -169
  178. package/lib/common/timer.ts +0 -63
  179. package/lib/common/type-utils.ts +0 -41
  180. package/lib/common/types.d.ts +0 -12
  181. package/lib/common/uuid.ts +0 -18
  182. package/lib/components/AnimatedNumber.tsx +0 -180
  183. package/lib/components/Autofocus.tsx +0 -23
  184. package/lib/components/Blink.tsx +0 -91
  185. package/lib/components/BlockQuote.tsx +0 -9
  186. package/lib/components/BodyZoneSelector.tsx +0 -149
  187. package/lib/components/Box.tsx +0 -252
  188. package/lib/components/Button.tsx +0 -425
  189. package/lib/components/ByondUi.jsx +0 -110
  190. package/lib/components/Chart.tsx +0 -155
  191. package/lib/components/Collapsible.tsx +0 -43
  192. package/lib/components/ColorBox.tsx +0 -29
  193. package/lib/components/Dialog.tsx +0 -81
  194. package/lib/components/Dimmer.tsx +0 -13
  195. package/lib/components/Divider.tsx +0 -20
  196. package/lib/components/DmIcon.tsx +0 -86
  197. package/lib/components/DraggableControl.jsx +0 -276
  198. package/lib/components/Dropdown.tsx +0 -246
  199. package/lib/components/FakeTerminal.jsx +0 -52
  200. package/lib/components/FitText.tsx +0 -99
  201. package/lib/components/Flex.tsx +0 -159
  202. package/lib/components/Icon.tsx +0 -95
  203. package/lib/components/Image.tsx +0 -54
  204. package/lib/components/InfinitePlane.jsx +0 -192
  205. package/lib/components/Input.tsx +0 -176
  206. package/lib/components/KeyListener.tsx +0 -40
  207. package/lib/components/Knob.tsx +0 -178
  208. package/lib/components/LabeledControls.tsx +0 -44
  209. package/lib/components/LabeledList.tsx +0 -154
  210. package/lib/components/MenuBar.tsx +0 -228
  211. package/lib/components/Modal.tsx +0 -23
  212. package/lib/components/NoticeBox.tsx +0 -45
  213. package/lib/components/NumberInput.tsx +0 -328
  214. package/lib/components/Popper.tsx +0 -100
  215. package/lib/components/ProgressBar.tsx +0 -105
  216. package/lib/components/RestrictedInput.jsx +0 -301
  217. package/lib/components/RoundGauge.tsx +0 -180
  218. package/lib/components/Section.tsx +0 -120
  219. package/lib/components/Slider.tsx +0 -169
  220. package/lib/components/Stack.tsx +0 -96
  221. package/lib/components/StyleableSection.tsx +0 -33
  222. package/lib/components/Table.tsx +0 -84
  223. package/lib/components/Tabs.tsx +0 -89
  224. package/lib/components/TextArea.tsx +0 -182
  225. package/lib/components/TimeDisplay.jsx +0 -64
  226. package/lib/components/Tooltip.tsx +0 -152
  227. package/lib/components/TrackOutsideClicks.tsx +0 -35
  228. package/lib/components/VirtualList.tsx +0 -69
  229. package/lib/styles/atomic/candystripe.scss +0 -8
  230. package/lib/styles/atomic/centered-image.scss +0 -7
  231. package/lib/styles/atomic/color.scss +0 -21
  232. package/lib/styles/atomic/debug-layout.scss +0 -17
  233. package/lib/styles/atomic/fit-text.scss +0 -14
  234. package/lib/styles/atomic/links.scss +0 -12
  235. package/lib/styles/atomic/outline.scss +0 -47
  236. package/lib/styles/atomic/text.scss +0 -44
  237. package/lib/styles/base.scss +0 -32
  238. package/lib/styles/colors.scss +0 -92
  239. package/lib/styles/components/BlockQuote.module.scss +0 -20
  240. package/lib/styles/components/BlockQuote.module.scss.d.ts +0 -4
  241. package/lib/styles/components/Button.module.scss +0 -157
  242. package/lib/styles/components/Button.module.scss.d.ts +0 -46
  243. package/lib/styles/components/ColorBox.module.scss +0 -12
  244. package/lib/styles/components/ColorBox.module.scss.d.ts +0 -4
  245. package/lib/styles/components/Dialog.module.scss +0 -60
  246. package/lib/styles/components/Dialog.module.scss.d.ts +0 -10
  247. package/lib/styles/components/Dimmer.module.scss +0 -22
  248. package/lib/styles/components/Dimmer.module.scss.d.ts +0 -4
  249. package/lib/styles/components/Divider.module.scss +0 -27
  250. package/lib/styles/components/Divider.module.scss.d.ts +0 -6
  251. package/lib/styles/components/Dropdown.scss +0 -72
  252. package/lib/styles/components/Flex.module.scss +0 -13
  253. package/lib/styles/components/Flex.module.scss.d.ts +0 -5
  254. package/lib/styles/components/Icon.module.scss +0 -25
  255. package/lib/styles/components/Icon.module.scss.d.ts +0 -5
  256. package/lib/styles/components/Input.module.scss +0 -64
  257. package/lib/styles/components/Input.module.scss.d.ts +0 -8
  258. package/lib/styles/components/Knob.module.scss +0 -131
  259. package/lib/styles/components/Knob.module.scss.d.ts +0 -33
  260. package/lib/styles/components/LabeledList.module.scss +0 -49
  261. package/lib/styles/components/LabeledList.module.scss.d.ts +0 -8
  262. package/lib/styles/components/MenuBar.module.scss +0 -75
  263. package/lib/styles/components/MenuBar.module.scss.d.ts +0 -14
  264. package/lib/styles/components/Modal.module.scss +0 -14
  265. package/lib/styles/components/Modal.module.scss.d.ts +0 -4
  266. package/lib/styles/components/NoticeBox.module.scss +0 -65
  267. package/lib/styles/components/NoticeBox.module.scss.d.ts +0 -27
  268. package/lib/styles/components/NumberInput.module.scss +0 -71
  269. package/lib/styles/components/NumberInput.module.scss.d.ts +0 -9
  270. package/lib/styles/components/ProgressBar.module.scss +0 -63
  271. package/lib/styles/components/ProgressBar.module.scss.d.ts +0 -27
  272. package/lib/styles/components/RoundGauge.module.scss +0 -85
  273. package/lib/styles/components/RoundGauge.module.scss.d.ts +0 -49
  274. package/lib/styles/components/Section.module.scss +0 -130
  275. package/lib/styles/components/Section.module.scss.d.ts +0 -13
  276. package/lib/styles/components/Slider.module.scss +0 -54
  277. package/lib/styles/components/Slider.module.scss.d.ts +0 -8
  278. package/lib/styles/components/Stack.module.scss +0 -60
  279. package/lib/styles/components/Stack.module.scss.d.ts +0 -12
  280. package/lib/styles/components/Table.module.scss +0 -44
  281. package/lib/styles/components/Table.module.scss.d.ts +0 -10
  282. package/lib/styles/components/Tabs.module.scss +0 -144
  283. package/lib/styles/components/Tabs.module.scss.d.ts +0 -35
  284. package/lib/styles/components/TextArea.module.scss +0 -86
  285. package/lib/styles/components/TextArea.module.scss.d.ts +0 -11
  286. package/lib/styles/components/Tooltip.module.scss +0 -24
  287. package/lib/styles/components/Tooltip.module.scss.d.ts +0 -4
  288. package/lib/styles/functions.scss +0 -79
  289. package/lib/styles/input.scss +0 -9
  290. package/lib/styles/main.scss +0 -20
  291. package/lib/styles/reset.scss +0 -68
  292. /package/{lib/components/index.ts → dist/components/index.d.ts} +0 -0
@@ -0,0 +1,45 @@
1
+ import { Component, FocusEventHandler, KeyboardEventHandler, MouseEventHandler, RefObject } from 'react';
2
+ import { BooleanLike } from '../common/react';
3
+
4
+ type Props = Required<{
5
+ maxValue: number;
6
+ minValue: number;
7
+ step: number;
8
+ value: number | string;
9
+ }> & Partial<{
10
+ animated: BooleanLike;
11
+ className: string;
12
+ disabled: BooleanLike;
13
+ fluid: BooleanLike;
14
+ fontSize: string;
15
+ format: (value: number) => string;
16
+ height: string;
17
+ lineHeight: string;
18
+ onChange: (value: number) => void;
19
+ onDrag: (value: number) => void;
20
+ stepPixelSize: number;
21
+ unit: string;
22
+ width: string;
23
+ }>;
24
+ type State = {
25
+ currentValue: number;
26
+ dragging: BooleanLike;
27
+ editing: BooleanLike;
28
+ origin: number;
29
+ previousValue: number;
30
+ };
31
+ export declare class NumberInput extends Component<Props, State> {
32
+ inputRef: RefObject<HTMLInputElement>;
33
+ dragTimeout: NodeJS.Timeout;
34
+ dragInterval: NodeJS.Timeout;
35
+ state: State;
36
+ constructor(props: Props);
37
+ componentDidMount(): void;
38
+ handleDragStart: MouseEventHandler<HTMLDivElement>;
39
+ handleDragMove: (event: MouseEvent) => void;
40
+ handleDragEnd: (_event: MouseEvent) => void;
41
+ handleBlur: FocusEventHandler<HTMLInputElement>;
42
+ handleKeyDown: KeyboardEventHandler<HTMLInputElement>;
43
+ render(): import("react/jsx-runtime").JSX.Element;
44
+ }
45
+ export {};
@@ -0,0 +1,221 @@
1
+ import '../assets/NumberInput.css';var w = Object.defineProperty;
2
+ var E = (c, d, e) => d in c ? w(c, d, { enumerable: !0, configurable: !0, writable: !0, value: e }) : c[d] = e;
3
+ var l = (c, d, e) => E(c, typeof d != "symbol" ? d + "" : d, e);
4
+ import { jsxs as _, jsx as g } from "react/jsx-runtime";
5
+ import { Component as I, createRef as D } from "react";
6
+ import { KEY as S } from "../common/keys.js";
7
+ import { clamp as h } from "../common/math.js";
8
+ import { classes as T } from "../common/react.js";
9
+ import { AnimatedNumber as F } from "./AnimatedNumber.js";
10
+ import { Box as M } from "./Box.js";
11
+ const R = "_numberInput_4xyrw_20", B = "_fluid_4xyrw_36", K = "_content_4xyrw_40", L = "_barContainer_4xyrw_44", Y = "_bar_4xyrw_44", j = "_inner_4xyrw_61", p = {
12
+ numberInput: R,
13
+ fluid: B,
14
+ content: K,
15
+ barContainer: L,
16
+ bar: Y,
17
+ inner: j
18
+ };
19
+ class $ extends I {
20
+ constructor(e) {
21
+ super(e);
22
+ // Ref to the input field to set focus & highlight
23
+ l(this, "inputRef", D());
24
+ // After this time has elapsed we are in drag mode so no editing when dragging ends
25
+ l(this, "dragTimeout");
26
+ // Call onDrag at this interval
27
+ l(this, "dragInterval");
28
+ // default values for the number input state
29
+ l(this, "state", {
30
+ editing: !1,
31
+ dragging: !1,
32
+ currentValue: 0,
33
+ previousValue: 0,
34
+ origin: 0
35
+ });
36
+ l(this, "handleDragStart", (e) => {
37
+ const { value: a, disabled: u } = this.props, { editing: n } = this.state;
38
+ if (u || n)
39
+ return;
40
+ document.body.style["pointer-events"] = "none";
41
+ const i = parseFloat(a.toString());
42
+ this.setState({
43
+ dragging: !1,
44
+ origin: e.screenY,
45
+ currentValue: i,
46
+ previousValue: i
47
+ }), this.dragTimeout = setTimeout(() => {
48
+ this.setState({
49
+ dragging: !0
50
+ });
51
+ }, 250), this.dragInterval = setInterval(() => {
52
+ const { dragging: o, currentValue: s, previousValue: t } = this.state, { onDrag: r } = this.props;
53
+ o && s !== t && (this.setState({
54
+ previousValue: s
55
+ }), r == null || r(s));
56
+ }, 400), document.addEventListener("mousemove", this.handleDragMove), document.addEventListener("mouseup", this.handleDragEnd);
57
+ });
58
+ l(this, "handleDragMove", (e) => {
59
+ const { minValue: a, maxValue: u, step: n, stepPixelSize: i, disabled: o } = this.props;
60
+ o || this.setState((s) => {
61
+ const t = { ...s }, r = t.origin - e.screenY;
62
+ if (s.dragging) {
63
+ const f = isFinite(a) ? a % n : 0;
64
+ t.currentValue = h(
65
+ t.currentValue + r * n / (i || 1),
66
+ a - n,
67
+ u + n
68
+ ), t.currentValue = h(
69
+ t.currentValue - t.currentValue % n + f,
70
+ a,
71
+ u
72
+ ), t.origin = e.screenY;
73
+ } else Math.abs(r) > 4 && (t.dragging = !0);
74
+ return t;
75
+ });
76
+ });
77
+ l(this, "handleDragEnd", (e) => {
78
+ const { dragging: a, currentValue: u } = this.state, { onDrag: n, onChange: i, disabled: o } = this.props;
79
+ if (!o) {
80
+ if (document.body.style["pointer-events"] = "auto", clearInterval(this.dragInterval), clearTimeout(this.dragTimeout), this.setState({
81
+ dragging: !1,
82
+ editing: !a,
83
+ previousValue: u
84
+ }), a)
85
+ i == null || i(u), n == null || n(u);
86
+ else if (this.inputRef) {
87
+ const s = this.inputRef.current;
88
+ s && (s.value = `${u}`, setTimeout(() => {
89
+ s.focus(), s.select();
90
+ }, 1));
91
+ }
92
+ document.removeEventListener("mousemove", this.handleDragMove), document.removeEventListener("mouseup", this.handleDragEnd);
93
+ }
94
+ });
95
+ l(this, "handleBlur", (e) => {
96
+ const { editing: a, previousValue: u } = this.state, { minValue: n, maxValue: i, onChange: o, onDrag: s, disabled: t } = this.props;
97
+ if (t || !a)
98
+ return;
99
+ const r = h(
100
+ parseFloat(e.target.value),
101
+ n,
102
+ i
103
+ );
104
+ if (isNaN(r)) {
105
+ this.setState({
106
+ editing: !1
107
+ });
108
+ return;
109
+ }
110
+ this.setState({
111
+ editing: !1,
112
+ currentValue: r,
113
+ previousValue: r
114
+ }), u !== r && (o == null || o(r), s == null || s(r));
115
+ });
116
+ l(this, "handleKeyDown", (e) => {
117
+ const { minValue: a, maxValue: u, onChange: n, onDrag: i, disabled: o } = this.props;
118
+ if (o)
119
+ return;
120
+ const { previousValue: s } = this.state;
121
+ if (e.key === S.Enter) {
122
+ const t = h(
123
+ parseFloat(e.currentTarget.value),
124
+ a,
125
+ u
126
+ );
127
+ if (isNaN(t)) {
128
+ this.setState({
129
+ editing: !1
130
+ });
131
+ return;
132
+ }
133
+ this.setState({
134
+ editing: !1,
135
+ currentValue: t,
136
+ previousValue: t
137
+ }), s !== t && (n == null || n(t), i == null || i(t));
138
+ } else e.key === S.Escape && this.setState({
139
+ editing: !1
140
+ });
141
+ });
142
+ }
143
+ componentDidMount() {
144
+ const e = parseFloat(this.props.value.toString());
145
+ this.setState({
146
+ currentValue: e,
147
+ previousValue: e
148
+ });
149
+ }
150
+ render() {
151
+ const { dragging: e, editing: a, currentValue: u } = this.state, {
152
+ className: n,
153
+ fluid: i,
154
+ animated: o,
155
+ unit: s,
156
+ value: t,
157
+ minValue: r,
158
+ maxValue: f,
159
+ height: v,
160
+ width: x,
161
+ lineHeight: b,
162
+ fontSize: y,
163
+ format: V
164
+ } = this.props;
165
+ let m = parseFloat(t.toString());
166
+ e && (m = u);
167
+ const N = /* @__PURE__ */ _("div", { className: p.content, children: [
168
+ o && !e ? /* @__PURE__ */ g(F, { value: m, format: V }) : V ? V(m) : m,
169
+ s ? " " + s : ""
170
+ ] });
171
+ return /* @__PURE__ */ _(
172
+ M,
173
+ {
174
+ className: T([
175
+ p.numberInput,
176
+ i && p.fluid,
177
+ n
178
+ ]),
179
+ minWidth: x,
180
+ minHeight: v,
181
+ lineHeight: b,
182
+ fontSize: y,
183
+ onMouseDown: this.handleDragStart,
184
+ children: [
185
+ /* @__PURE__ */ g("div", { className: p.barContainer, children: /* @__PURE__ */ g(
186
+ "div",
187
+ {
188
+ className: p.bar,
189
+ style: {
190
+ height: h(
191
+ (m - r) / (f - r) * 100,
192
+ 0,
193
+ 100
194
+ ) + "%"
195
+ }
196
+ }
197
+ ) }),
198
+ N,
199
+ /* @__PURE__ */ g(
200
+ "input",
201
+ {
202
+ ref: this.inputRef,
203
+ className: p.inner,
204
+ style: {
205
+ display: a ? "inline" : "none",
206
+ height: v,
207
+ lineHeight: b,
208
+ fontSize: y
209
+ },
210
+ onBlur: this.handleBlur,
211
+ onKeyDown: this.handleKeyDown
212
+ }
213
+ )
214
+ ]
215
+ }
216
+ );
217
+ }
218
+ }
219
+ export {
220
+ $ as NumberInput
221
+ };
@@ -0,0 +1,27 @@
1
+ import { Placement } from '@popperjs/core';
2
+ import { PropsWithChildren, ReactNode } from 'react';
3
+
4
+ type RequiredProps = {
5
+ /** The content to display in the popper */
6
+ content: ReactNode;
7
+ /** Whether the popper is open */
8
+ isOpen: boolean;
9
+ };
10
+ type OptionalProps = Partial<{
11
+ /** Base z-index of the popper div
12
+ * @default 5
13
+ */
14
+ baseZIndex: number;
15
+ /** Called when the user clicks outside the popper */
16
+ onClickOutside: () => void;
17
+ /** Where to place the popper relative to the reference element */
18
+ placement: Placement;
19
+ }>;
20
+ type Props = RequiredProps & OptionalProps;
21
+ /**
22
+ * ## Popper
23
+ * Popper lets you position elements so that they don't go out of the bounds of the window.
24
+ * @url https://popper.js.org/react-popper/ for more information.
25
+ */
26
+ export declare function Popper(props: PropsWithChildren<Props>): import("react/jsx-runtime").JSX.Element;
27
+ export {};
@@ -0,0 +1,177 @@
1
+ import { jsxs as M, Fragment as P, jsx as S } from "react/jsx-runtime";
2
+ import * as l from "react";
3
+ import { useState as E, useRef as g, useEffect as F } from "react";
4
+ import * as _ from "react-dom";
5
+ import { c as A } from "../popper-CiqSDJTE.js";
6
+ var j = function(r) {
7
+ return r.reduce(function(n, t) {
8
+ var o = t[0], u = t[1];
9
+ return n[o] = u, n;
10
+ }, {});
11
+ }, R = typeof window < "u" && window.document && window.document.createElement ? l.useLayoutEffect : l.useEffect;
12
+ function I(e) {
13
+ return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
14
+ }
15
+ var U = typeof Element < "u", x = typeof Map == "function", z = typeof Set == "function", B = typeof ArrayBuffer == "function" && !!ArrayBuffer.isView;
16
+ function w(e, r) {
17
+ if (e === r) return !0;
18
+ if (e && r && typeof e == "object" && typeof r == "object") {
19
+ if (e.constructor !== r.constructor) return !1;
20
+ var n, t, o;
21
+ if (Array.isArray(e)) {
22
+ if (n = e.length, n != r.length) return !1;
23
+ for (t = n; t-- !== 0; )
24
+ if (!w(e[t], r[t])) return !1;
25
+ return !0;
26
+ }
27
+ var u;
28
+ if (x && e instanceof Map && r instanceof Map) {
29
+ if (e.size !== r.size) return !1;
30
+ for (u = e.entries(); !(t = u.next()).done; )
31
+ if (!r.has(t.value[0])) return !1;
32
+ for (u = e.entries(); !(t = u.next()).done; )
33
+ if (!w(t.value[1], r.get(t.value[0]))) return !1;
34
+ return !0;
35
+ }
36
+ if (z && e instanceof Set && r instanceof Set) {
37
+ if (e.size !== r.size) return !1;
38
+ for (u = e.entries(); !(t = u.next()).done; )
39
+ if (!r.has(t.value[0])) return !1;
40
+ return !0;
41
+ }
42
+ if (B && ArrayBuffer.isView(e) && ArrayBuffer.isView(r)) {
43
+ if (n = e.length, n != r.length) return !1;
44
+ for (t = n; t-- !== 0; )
45
+ if (e[t] !== r[t]) return !1;
46
+ return !0;
47
+ }
48
+ if (e.constructor === RegExp) return e.source === r.source && e.flags === r.flags;
49
+ if (e.valueOf !== Object.prototype.valueOf && typeof e.valueOf == "function" && typeof r.valueOf == "function") return e.valueOf() === r.valueOf();
50
+ if (e.toString !== Object.prototype.toString && typeof e.toString == "function" && typeof r.toString == "function") return e.toString() === r.toString();
51
+ if (o = Object.keys(e), n = o.length, n !== Object.keys(r).length) return !1;
52
+ for (t = n; t-- !== 0; )
53
+ if (!Object.prototype.hasOwnProperty.call(r, o[t])) return !1;
54
+ if (U && e instanceof Element) return !1;
55
+ for (t = n; t-- !== 0; )
56
+ if (!((o[t] === "_owner" || o[t] === "__v" || o[t] === "__o") && e.$$typeof) && !w(e[o[t]], r[o[t]]))
57
+ return !1;
58
+ return !0;
59
+ }
60
+ return e !== e && r !== r;
61
+ }
62
+ var L = function(r, n) {
63
+ try {
64
+ return w(r, n);
65
+ } catch (t) {
66
+ if ((t.message || "").match(/stack|recursion/i))
67
+ return console.warn("react-fast-compare cannot handle circular refs"), !1;
68
+ throw t;
69
+ }
70
+ };
71
+ const q = /* @__PURE__ */ I(L);
72
+ var D = [], $ = function(r, n, t) {
73
+ t === void 0 && (t = {});
74
+ var o = l.useRef(null), u = {
75
+ onFirstUpdate: t.onFirstUpdate,
76
+ placement: t.placement || "bottom",
77
+ strategy: t.strategy || "absolute",
78
+ modifiers: t.modifiers || D
79
+ }, m = l.useState({
80
+ styles: {
81
+ popper: {
82
+ position: u.strategy,
83
+ left: "0",
84
+ top: "0"
85
+ },
86
+ arrow: {
87
+ position: "absolute"
88
+ }
89
+ },
90
+ attributes: {}
91
+ }), y = m[0], O = m[1], v = l.useMemo(function() {
92
+ return {
93
+ name: "updateState",
94
+ enabled: !0,
95
+ phase: "write",
96
+ fn: function(d) {
97
+ var i = d.state, f = Object.keys(i.elements);
98
+ _.flushSync(function() {
99
+ O({
100
+ styles: j(f.map(function(c) {
101
+ return [c, i.styles[c] || {}];
102
+ })),
103
+ attributes: j(f.map(function(c) {
104
+ return [c, i.attributes[c]];
105
+ }))
106
+ });
107
+ });
108
+ },
109
+ requires: ["computeStyles"]
110
+ };
111
+ }, []), p = l.useMemo(function() {
112
+ var a = {
113
+ onFirstUpdate: u.onFirstUpdate,
114
+ placement: u.placement,
115
+ strategy: u.strategy,
116
+ modifiers: [].concat(u.modifiers, [v, {
117
+ name: "applyStyles",
118
+ enabled: !1
119
+ }])
120
+ };
121
+ return q(o.current, a) ? o.current || a : (o.current = a, a);
122
+ }, [u.onFirstUpdate, u.placement, u.strategy, u.modifiers, v]), s = l.useRef();
123
+ return R(function() {
124
+ s.current && s.current.setOptions(p);
125
+ }, [p]), R(function() {
126
+ if (!(r == null || n == null)) {
127
+ var a = t.createPopper || A, d = a(r, n, p);
128
+ return s.current = d, function() {
129
+ d.destroy(), s.current = null;
130
+ };
131
+ }
132
+ }, [r, n, t.createPopper]), {
133
+ state: s.current ? s.current.state : null,
134
+ styles: y.styles,
135
+ attributes: y.attributes,
136
+ update: s.current ? s.current.update : null,
137
+ forceUpdate: s.current ? s.current.forceUpdate : null
138
+ };
139
+ };
140
+ function W(e) {
141
+ const { children: r, content: n, isOpen: t, onClickOutside: o, placement: u } = e, [m, y] = E(null), [O, v] = E(
142
+ null
143
+ ), p = g(null), s = g(null), { styles: a, attributes: d } = $(m, O, {
144
+ placement: u
145
+ });
146
+ function i(f) {
147
+ var c, h;
148
+ !((c = p.current) != null && c.contains(f.target)) && !((h = s.current) != null && h.contains(f.target)) && (o == null || o());
149
+ }
150
+ return F(() => (t ? document.addEventListener("mousedown", i) : document.removeEventListener("mousedown", i), () => {
151
+ document.removeEventListener("mousedown", i);
152
+ }), [t]), /* @__PURE__ */ M(P, { children: [
153
+ /* @__PURE__ */ S(
154
+ "div",
155
+ {
156
+ ref: (f) => {
157
+ y(f), s.current = f;
158
+ },
159
+ children: r
160
+ }
161
+ ),
162
+ t && /* @__PURE__ */ S(
163
+ "div",
164
+ {
165
+ ref: (f) => {
166
+ v(f), p.current = f;
167
+ },
168
+ style: { ...a.popper, zIndex: e.baseZIndex ?? 5 },
169
+ ...d.popper,
170
+ children: n
171
+ }
172
+ )
173
+ ] });
174
+ }
175
+ export {
176
+ W as Popper
177
+ };
@@ -0,0 +1,46 @@
1
+ import { PropsWithChildren } from 'react';
2
+ import { BoxProps } from './Box';
3
+
4
+ type Props = {
5
+ /**
6
+ * Current progress as a floating point number between `minValue` (default: 0) and `maxValue` (default: 1).
7
+ * Determines the percentage and how filled the bar is.
8
+ */
9
+ value: number;
10
+ } & Partial<{
11
+ /**
12
+ * Color of the progress bar. Can take any of the following formats:
13
+ * - `#ffffff` - Hex format
14
+ * - `rgb(r,g,b) / rgba(r,g,b,a)` - RGB format
15
+ * - `<name>` - the name of a `color-<name>` CSS class. See `CSS_COLORS` in `constants.js`.
16
+ * - `<name>` - the name of a base CSS color, if not overridden by the definitions above.
17
+ */
18
+ color: string;
19
+ /** Highest possible value. */
20
+ maxValue: number;
21
+ /** Lowest possible value. */
22
+ minValue: number;
23
+ /**
24
+ * Applies a `color` to the progress bar based on whether the value lands in the range between `from` and `to`.
25
+ * This takes an object with the following format:
26
+ * ```tsx
27
+ * {
28
+ * (colorname): [from, to]
29
+ * }
30
+ * ```
31
+ * For example:
32
+ * ```tsx
33
+ * <ProgressBar
34
+ * value={0.5}
35
+ * ranges={{
36
+ * bad: [0, 0.5],
37
+ * good: [0.5, 1],
38
+ * }}
39
+ * />
40
+ * ```
41
+ *
42
+ */
43
+ ranges: Record<string, [number, number]>;
44
+ }> & BoxProps & PropsWithChildren;
45
+ export declare function ProgressBar(props: Props): import("react/jsx-runtime").JSX.Element;
46
+ export {};
@@ -0,0 +1,37 @@
1
+ import { jsxs as g, jsx as n } from "react/jsx-runtime";
2
+ import { CSS_COLORS as v } from "../common/constants.js";
3
+ import { keyOfMatchingRange as y, toFixed as N, scale as _, clamp01 as B } from "../common/math.js";
4
+ import { classes as m } from "../common/react.js";
5
+ import { s as o } from "../ProgressBar.module-BkAFfFy0.js";
6
+ import { computeBoxProps as S, computeBoxClassName as O } from "./Box.js";
7
+ function w(d) {
8
+ const {
9
+ className: f,
10
+ value: r,
11
+ minValue: u = 0,
12
+ maxValue: p = 1,
13
+ color: C,
14
+ ranges: h = {},
15
+ children: l,
16
+ ...t
17
+ } = d, a = _(r, u, p), x = l !== void 0, s = C || y(r, h) || "default", e = S(t), c = [
18
+ o.progressBar,
19
+ f,
20
+ O(t)
21
+ ], i = {
22
+ width: B(a) * 100 + "%"
23
+ };
24
+ return v.includes(s) || s === "default" ? c.push(o["color__" + s]) : (e.style = { ...e.style, borderColor: s }, i.backgroundColor = s), /* @__PURE__ */ g("div", { className: m(c), ...e, children: [
25
+ /* @__PURE__ */ n(
26
+ "div",
27
+ {
28
+ className: m([o.fill, o.fill__animated]),
29
+ style: i
30
+ }
31
+ ),
32
+ /* @__PURE__ */ n("div", { className: o.content, children: x ? l : N(a * 100) + "%" })
33
+ ] });
34
+ }
35
+ export {
36
+ w as ProgressBar
37
+ };