tgui-core 1.0.2 → 1.0.4

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 (158) hide show
  1. package/{src/components → components}/AnimatedNumber.tsx +185 -185
  2. package/{src/components → components}/BlockQuote.tsx +15 -15
  3. package/{src/components → components}/BodyZoneSelector.tsx +149 -149
  4. package/{src/components → components}/Box.tsx +255 -255
  5. package/{src/components → components}/Button.tsx +415 -415
  6. package/{src/components → components}/ByondUi.jsx +121 -121
  7. package/{src/components → components}/Chart.tsx +160 -160
  8. package/{src/components → components}/ColorBox.tsx +30 -30
  9. package/{src/components → components}/Dimmer.tsx +19 -19
  10. package/{src/components → components}/Divider.tsx +26 -26
  11. package/{src/components → components}/DmIcon.tsx +72 -72
  12. package/{src/components → components}/DraggableControl.jsx +282 -282
  13. package/{src/components → components}/Dropdown.tsx +246 -246
  14. package/{src/components → components}/Flex.tsx +105 -105
  15. package/{src/components → components}/Icon.tsx +91 -91
  16. package/{src/components → components}/Input.tsx +181 -181
  17. package/{src/components → components}/KeyListener.tsx +40 -40
  18. package/{src/components → components}/Knob.tsx +185 -185
  19. package/{src/components → components}/LabeledList.tsx +130 -130
  20. package/{src/components → components}/MenuBar.tsx +233 -238
  21. package/{src/components → components}/Modal.tsx +25 -25
  22. package/{src/components → components}/NoticeBox.tsx +48 -48
  23. package/{src/components → components}/NumberInput.tsx +328 -328
  24. package/{src/components → components}/ProgressBar.tsx +79 -79
  25. package/{src/components → components}/RestrictedInput.jsx +301 -301
  26. package/{src/components → components}/RoundGauge.tsx +189 -189
  27. package/{src/components → components}/Section.tsx +125 -125
  28. package/{src/components → components}/Slider.tsx +173 -173
  29. package/{src/components → components}/Stack.tsx +101 -101
  30. package/{src/components → components}/Table.tsx +90 -90
  31. package/{src/components → components}/Tabs.tsx +90 -90
  32. package/{src/components → components}/TextArea.tsx +198 -198
  33. package/{src/components → components}/TimeDisplay.jsx +64 -64
  34. package/components/index.ts +51 -0
  35. package/{src/debug/KitchenSink.jsx → debug/KitchenSink.tsx} +56 -56
  36. package/{src/debug/actions.js → debug/actions.ts} +11 -11
  37. package/{src/debug/hooks.js → debug/hooks.ts} +10 -10
  38. package/{src/debug/middleware.js → debug/middleware.ts} +67 -86
  39. package/{src/debug/reducer.js → debug/reducer.ts} +27 -22
  40. package/{src/debug/selectors.js → debug/selectors.ts} +7 -7
  41. package/{src/layouts → layouts}/Layout.tsx +75 -75
  42. package/{src/layouts → layouts}/NtosWindow.tsx +162 -162
  43. package/{src/layouts → layouts}/Pane.tsx +56 -56
  44. package/{src/layouts → layouts}/Window.tsx +227 -227
  45. package/layouts/index.ts +10 -0
  46. package/package.json +3 -2
  47. package/src/assets.ts +43 -43
  48. package/src/backend.ts +368 -369
  49. package/src/drag.ts +280 -280
  50. package/src/events.ts +237 -237
  51. package/src/hotkeys.ts +212 -212
  52. package/src/renderer.ts +50 -50
  53. package/stories/Blink.stories.tsx +20 -0
  54. package/stories/BlockQuote.stories.tsx +23 -0
  55. package/stories/Box.stories.tsx +27 -0
  56. package/stories/Button.stories.tsx +68 -0
  57. package/stories/ByondUi.stories.tsx +45 -0
  58. package/stories/Collapsible.stories.tsx +23 -0
  59. package/stories/Flex.stories.tsx +68 -0
  60. package/stories/Input.stories.tsx +124 -0
  61. package/stories/LabeledList.stories.tsx +73 -0
  62. package/stories/Popper.stories.tsx +58 -0
  63. package/stories/ProgressBar.stories.tsx +58 -0
  64. package/stories/Stack.stories.tsx +55 -0
  65. package/stories/Storage.stories.tsx +46 -0
  66. package/stories/Themes.stories.tsx +30 -0
  67. package/stories/Tooltip.stories.tsx +48 -0
  68. package/stories/common.tsx +19 -0
  69. package/tsconfig.json +0 -21
  70. package/src/components/Grid.tsx +0 -44
  71. /package/{src/common → common}/collections.ts +0 -0
  72. /package/{src/common → common}/color.ts +0 -0
  73. /package/{src/common → common}/events.ts +0 -0
  74. /package/{src/common → common}/exhaustive.ts +0 -0
  75. /package/{src/common → common}/fp.ts +0 -0
  76. /package/{src/common → common}/keycodes.ts +0 -0
  77. /package/{src/common → common}/keys.ts +0 -0
  78. /package/{src/common → common}/math.ts +0 -0
  79. /package/{src/common → common}/perf.ts +0 -0
  80. /package/{src/common → common}/random.ts +0 -0
  81. /package/{src/common → common}/react.ts +0 -0
  82. /package/{src/common → common}/redux.ts +0 -0
  83. /package/{src/common → common}/storage.js +0 -0
  84. /package/{src/common → common}/string.ts +0 -0
  85. /package/{src/common → common}/timer.ts +0 -0
  86. /package/{src/common → common}/type-utils.ts +0 -0
  87. /package/{src/common → common}/types.ts +0 -0
  88. /package/{src/common → common}/uuid.ts +0 -0
  89. /package/{src/common → common}/vector.ts +0 -0
  90. /package/{src/components → components}/Autofocus.tsx +0 -0
  91. /package/{src/components → components}/Blink.jsx +0 -0
  92. /package/{src/components → components}/Collapsible.tsx +0 -0
  93. /package/{src/components → components}/Dialog.tsx +0 -0
  94. /package/{src/components → components}/FakeTerminal.jsx +0 -0
  95. /package/{src/components → components}/FitText.tsx +0 -0
  96. /package/{src/components → components}/Image.tsx +0 -0
  97. /package/{src/components → components}/InfinitePlane.jsx +0 -0
  98. /package/{src/components → components}/LabeledControls.tsx +0 -0
  99. /package/{src/components → components}/Popper.tsx +0 -0
  100. /package/{src/components → components}/StyleableSection.tsx +0 -0
  101. /package/{src/components → components}/Tooltip.tsx +0 -0
  102. /package/{src/components → components}/TrackOutsideClicks.tsx +0 -0
  103. /package/{src/components → components}/VirtualList.tsx +0 -0
  104. /package/{src/debug → debug}/index.ts +0 -0
  105. /package/{src/styles → styles}/base.scss +0 -0
  106. /package/{src/styles → styles}/colors.scss +0 -0
  107. /package/{src/styles → styles}/components/BlockQuote.scss +0 -0
  108. /package/{src/styles → styles}/components/Button.scss +0 -0
  109. /package/{src/styles → styles}/components/ColorBox.scss +0 -0
  110. /package/{src/styles → styles}/components/Dialog.scss +0 -0
  111. /package/{src/styles → styles}/components/Dimmer.scss +0 -0
  112. /package/{src/styles → styles}/components/Divider.scss +0 -0
  113. /package/{src/styles → styles}/components/Dropdown.scss +0 -0
  114. /package/{src/styles → styles}/components/Flex.scss +0 -0
  115. /package/{src/styles → styles}/components/Icon.scss +0 -0
  116. /package/{src/styles → styles}/components/Input.scss +0 -0
  117. /package/{src/styles → styles}/components/Knob.scss +0 -0
  118. /package/{src/styles → styles}/components/LabeledList.scss +0 -0
  119. /package/{src/styles → styles}/components/MenuBar.scss +0 -0
  120. /package/{src/styles → styles}/components/Modal.scss +0 -0
  121. /package/{src/styles → styles}/components/NoticeBox.scss +0 -0
  122. /package/{src/styles → styles}/components/NumberInput.scss +0 -0
  123. /package/{src/styles → styles}/components/ProgressBar.scss +0 -0
  124. /package/{src/styles → styles}/components/RoundGauge.scss +0 -0
  125. /package/{src/styles → styles}/components/Section.scss +0 -0
  126. /package/{src/styles → styles}/components/Slider.scss +0 -0
  127. /package/{src/styles → styles}/components/Stack.scss +0 -0
  128. /package/{src/styles → styles}/components/Table.scss +0 -0
  129. /package/{src/styles → styles}/components/Tabs.scss +0 -0
  130. /package/{src/styles → styles}/components/TextArea.scss +0 -0
  131. /package/{src/styles → styles}/components/Tooltip.scss +0 -0
  132. /package/{src/styles → styles}/functions.scss +0 -0
  133. /package/{src/styles → styles}/layouts/Layout.scss +0 -0
  134. /package/{src/styles → styles}/layouts/NtosHeader.scss +0 -0
  135. /package/{src/styles → styles}/layouts/NtosWindow.scss +0 -0
  136. /package/{src/styles → styles}/layouts/TitleBar.scss +0 -0
  137. /package/{src/styles → styles}/layouts/Window.scss +0 -0
  138. /package/{src/styles → styles}/main.scss +0 -0
  139. /package/{src/styles → styles}/reset.scss +0 -0
  140. /package/{src/styles → styles}/themes/abductor.scss +0 -0
  141. /package/{src/styles → styles}/themes/admin.scss +0 -0
  142. /package/{src/styles → styles}/themes/cardtable.scss +0 -0
  143. /package/{src/styles → styles}/themes/hackerman.scss +0 -0
  144. /package/{src/styles → styles}/themes/malfunction.scss +0 -0
  145. /package/{src/styles → styles}/themes/neutral.scss +0 -0
  146. /package/{src/styles → styles}/themes/ntOS95.scss +0 -0
  147. /package/{src/styles → styles}/themes/ntos.scss +0 -0
  148. /package/{src/styles → styles}/themes/ntos_cat.scss +0 -0
  149. /package/{src/styles → styles}/themes/ntos_darkmode.scss +0 -0
  150. /package/{src/styles → styles}/themes/ntos_lightmode.scss +0 -0
  151. /package/{src/styles → styles}/themes/ntos_spooky.scss +0 -0
  152. /package/{src/styles → styles}/themes/ntos_synth.scss +0 -0
  153. /package/{src/styles → styles}/themes/ntos_terminal.scss +0 -0
  154. /package/{src/styles → styles}/themes/paper.scss +0 -0
  155. /package/{src/styles → styles}/themes/retro.scss +0 -0
  156. /package/{src/styles → styles}/themes/spookyconsole.scss +0 -0
  157. /package/{src/styles → styles}/themes/syndicate.scss +0 -0
  158. /package/{src/styles → styles}/themes/wizard.scss +0 -0
@@ -1,79 +1,79 @@
1
- /**
2
- * @file
3
- * @copyright 2020 Aleksej Komarov
4
- * @license MIT
5
- */
6
-
7
- import { clamp01, keyOfMatchingRange, scale, toFixed } from '../common/math';
8
- import { classes } from '../common/react';
9
- import { PropsWithChildren } from 'react';
10
-
11
- import { CSS_COLORS } from '../constants';
12
- import { BoxProps, computeBoxClassName, computeBoxProps } from './Box';
13
-
14
- type Props = {
15
- value: number;
16
- } & Partial<{
17
- backgroundColor: string;
18
- className: string;
19
- color: string;
20
- height: string | number;
21
- maxValue: number;
22
- minValue: number;
23
- ranges: Record<string, [number, number]>;
24
- style: Partial<HTMLDivElement['style']>;
25
- title: string;
26
- width: string | number;
27
- }> &
28
- Partial<BoxProps> &
29
- PropsWithChildren;
30
-
31
- export const ProgressBar = (props: Props) => {
32
- const {
33
- className,
34
- value,
35
- minValue = 0,
36
- maxValue = 1,
37
- color,
38
- ranges = {},
39
- children,
40
- ...rest
41
- } = props;
42
- const scaledValue = scale(value, minValue, maxValue);
43
- const hasContent = children !== undefined;
44
-
45
- const effectiveColor =
46
- color || keyOfMatchingRange(value, ranges) || 'default';
47
-
48
- // We permit colors to be in hex format, rgb()/rgba() format,
49
- // a name for a color-<name> class, or a base CSS class.
50
- const outerProps = computeBoxProps(rest);
51
-
52
- const outerClasses = ['ProgressBar', className, computeBoxClassName(rest)];
53
- const fillStyles = {
54
- width: clamp01(scaledValue) * 100 + '%',
55
- };
56
- if (
57
- CSS_COLORS.includes(effectiveColor as any) ||
58
- effectiveColor === 'default'
59
- ) {
60
- // If the color is a color-<name> class, just use that.
61
- outerClasses.push('ProgressBar--color--' + effectiveColor);
62
- } else {
63
- // Otherwise, set styles directly.
64
- outerProps.style = { ...outerProps.style, borderColor: effectiveColor };
65
- fillStyles['backgroundColor'] = effectiveColor;
66
- }
67
-
68
- return (
69
- <div className={classes(outerClasses)} {...outerProps}>
70
- <div
71
- className="ProgressBar__fill ProgressBar__fill--animated"
72
- style={fillStyles}
73
- />
74
- <div className="ProgressBar__content">
75
- {hasContent ? children : toFixed(scaledValue * 100) + '%'}
76
- </div>
77
- </div>
78
- );
79
- };
1
+ /**
2
+ * @file
3
+ * @copyright 2020 Aleksej Komarov
4
+ * @license MIT
5
+ */
6
+
7
+ import { clamp01, keyOfMatchingRange, scale, toFixed } from '../common/math';
8
+ import { classes } from '../common/react';
9
+ import { PropsWithChildren } from 'react';
10
+
11
+ import { CSS_COLORS } from '../src/constants';
12
+ import { BoxProps, computeBoxClassName, computeBoxProps } from './Box';
13
+
14
+ type Props = {
15
+ value: number;
16
+ } & Partial<{
17
+ backgroundColor: string;
18
+ className: string;
19
+ color: string;
20
+ height: string | number;
21
+ maxValue: number;
22
+ minValue: number;
23
+ ranges: Record<string, [number, number]>;
24
+ style: Partial<HTMLDivElement['style']>;
25
+ title: string;
26
+ width: string | number;
27
+ }> &
28
+ Partial<BoxProps> &
29
+ PropsWithChildren;
30
+
31
+ export const ProgressBar = (props: Props) => {
32
+ const {
33
+ className,
34
+ value,
35
+ minValue = 0,
36
+ maxValue = 1,
37
+ color,
38
+ ranges = {},
39
+ children,
40
+ ...rest
41
+ } = props;
42
+ const scaledValue = scale(value, minValue, maxValue);
43
+ const hasContent = children !== undefined;
44
+
45
+ const effectiveColor =
46
+ color || keyOfMatchingRange(value, ranges) || 'default';
47
+
48
+ // We permit colors to be in hex format, rgb()/rgba() format,
49
+ // a name for a color-<name> class, or a base CSS class.
50
+ const outerProps = computeBoxProps(rest);
51
+
52
+ const outerClasses = ['ProgressBar', className, computeBoxClassName(rest)];
53
+ const fillStyles = {
54
+ width: clamp01(scaledValue) * 100 + '%',
55
+ };
56
+ if (
57
+ CSS_COLORS.includes(effectiveColor as any) ||
58
+ effectiveColor === 'default'
59
+ ) {
60
+ // If the color is a color-<name> class, just use that.
61
+ outerClasses.push('ProgressBar--color--' + effectiveColor);
62
+ } else {
63
+ // Otherwise, set styles directly.
64
+ outerProps.style = { ...outerProps.style, borderColor: effectiveColor };
65
+ fillStyles['backgroundColor'] = effectiveColor;
66
+ }
67
+
68
+ return (
69
+ <div className={classes(outerClasses)} {...outerProps}>
70
+ <div
71
+ className="ProgressBar__fill ProgressBar__fill--animated"
72
+ style={fillStyles}
73
+ />
74
+ <div className="ProgressBar__content">
75
+ {hasContent ? children : toFixed(scaledValue * 100) + '%'}
76
+ </div>
77
+ </div>
78
+ );
79
+ };