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
@@ -1,154 +0,0 @@
1
- import { PropsWithChildren, ReactNode } from 'react';
2
-
3
- import { BooleanLike, classes } from '../common/react';
4
- import styles from '../styles/components/LabeledList.module.scss';
5
- import { Box, unit } from './Box';
6
- import { Divider } from './Divider';
7
- import { Tooltip } from './Tooltip';
8
-
9
- export function LabeledList(props: PropsWithChildren) {
10
- const { children } = props;
11
- return <table className="LabeledList">{children}</table>;
12
- }
13
-
14
- type LabeledListItemProps = Partial<{
15
- /** Buttons to render aside the content. */
16
- buttons: ReactNode;
17
- /** Content of this labeled item. */
18
- children: ReactNode;
19
- /** Applies a CSS class to the element. */
20
- className: string | BooleanLike;
21
- /** Sets the color of the content text. */
22
- color: string;
23
- /** @deprecated */
24
- content: any;
25
- /**
26
- * Sometimes this does not properly register in TS.
27
- * See [react key docs](https://react.dev/learn/rendering-lists#keeping-list-items-in-order-with-key) for more info.
28
- */
29
- key: string | number;
30
- /** Item label. Appends a colon at the end. */
31
- label: ReactNode;
32
- /** Sets the color of the label. */
33
- labelColor: string;
34
- /** Lets the label wrap and makes it not take the minimum width. */
35
- labelWrap: boolean;
36
- /**
37
- * Align the content text.
38
- *
39
- * - `left` (default)
40
- * - `center`
41
- * - `right`
42
- */
43
- textAlign: string;
44
- /** Tooltip text. */
45
- tooltip: string;
46
- /**
47
- * Align both the label and the content vertically.
48
- *
49
- * - `baseline` (default)
50
- * - `top`
51
- * - `middle`
52
- * - `bottom`
53
- */
54
- verticalAlign: string;
55
- }>;
56
-
57
- function LabeledListItem(props: LabeledListItemProps) {
58
- const {
59
- className,
60
- label,
61
- labelColor = 'label',
62
- labelWrap,
63
- color,
64
- textAlign,
65
- buttons,
66
- content,
67
- children,
68
- verticalAlign = 'baseline',
69
- tooltip,
70
- } = props;
71
-
72
- let innerLabel;
73
- if (label) {
74
- innerLabel = label;
75
- if (typeof label === 'string') innerLabel += ':';
76
- }
77
-
78
- if (tooltip !== undefined) {
79
- innerLabel = (
80
- <Tooltip content={tooltip}>
81
- <Box
82
- as="span"
83
- style={{
84
- borderBottom: '2px dotted rgba(255, 255, 255, 0.8)',
85
- }}
86
- >
87
- {innerLabel}
88
- </Box>
89
- </Tooltip>
90
- );
91
- }
92
-
93
- const labelChild = (
94
- <Box
95
- as="td"
96
- color={labelColor}
97
- className={classes([
98
- styles.cell,
99
- // Kinda flipped because we want nowrap as default. Cleaner CSS this way though.
100
- !labelWrap && styles.label__nowrap,
101
- ])}
102
- verticalAlign={verticalAlign}
103
- >
104
- {innerLabel}
105
- </Box>
106
- );
107
-
108
- return (
109
- <tr className={classes([styles.row, className])}>
110
- {labelChild}
111
- <Box
112
- as="td"
113
- color={color}
114
- textAlign={textAlign}
115
- className={styles.cell}
116
- // @ts-ignore
117
- colSpan={buttons ? undefined : 2}
118
- verticalAlign={verticalAlign}
119
- >
120
- {content}
121
- {children}
122
- </Box>
123
- {buttons && (
124
- <td className={classes([styles.cell, styles.buttons])}>{buttons}</td>
125
- )}
126
- </tr>
127
- );
128
- }
129
-
130
- LabeledList.Item = LabeledListItem;
131
-
132
- type LabeledListDividerProps = {
133
- /** Size of the divider. */
134
- size?: number;
135
- };
136
-
137
- function LabeledListDivider(props: LabeledListDividerProps) {
138
- const padding = props.size ? unit(Math.max(0, props.size - 1)) : 0;
139
- return (
140
- <tr className="LabeledList__row">
141
- <td
142
- colSpan={3}
143
- style={{
144
- paddingTop: padding,
145
- paddingBottom: padding,
146
- }}
147
- >
148
- <Divider />
149
- </td>
150
- </tr>
151
- );
152
- }
153
-
154
- LabeledList.Divider = LabeledListDivider;
@@ -1,228 +0,0 @@
1
- /**
2
- * @file
3
- * @copyright 2022 Aleksej Komarov
4
- * @license MIT
5
- */
6
- import { Component, createRef, ReactNode, RefObject } from 'react';
7
-
8
- import { classes } from '../common/react';
9
- import styles from '../styles/components/MenuBar.module.scss';
10
- import { Box } from './Box';
11
- import { Icon } from './Icon';
12
-
13
- type MenuProps = {
14
- children: any;
15
- menuRef: RefObject<HTMLElement>;
16
- onOutsideClick: () => void;
17
- width: string;
18
- };
19
-
20
- class Menu extends Component<MenuProps> {
21
- private readonly handleClick: (event) => void;
22
-
23
- constructor(props) {
24
- super(props);
25
- this.handleClick = (event) => {
26
- if (!this.props.menuRef.current) {
27
- return;
28
- }
29
-
30
- if (!this.props.menuRef.current.contains(event.target)) {
31
- this.props.onOutsideClick();
32
- }
33
- };
34
- }
35
-
36
- componentWillMount() {
37
- window.addEventListener('click', this.handleClick);
38
- }
39
-
40
- componentWillUnmount() {
41
- window.removeEventListener('click', this.handleClick);
42
- }
43
-
44
- render() {
45
- const { width, children } = this.props;
46
- return (
47
- <div
48
- className={styles.menu}
49
- style={{
50
- width: width,
51
- }}
52
- >
53
- {children}
54
- </div>
55
- );
56
- }
57
- }
58
-
59
- type MenuBarDropdownProps = {
60
- children: any;
61
- className?: string;
62
- disabled?: boolean;
63
- display: any;
64
- onClick: () => void;
65
- onMouseOver: () => void;
66
- onOutsideClick: () => void;
67
- open: boolean;
68
- openWidth: string;
69
- };
70
-
71
- class MenuBarButton extends Component<MenuBarDropdownProps> {
72
- private readonly menuRef: RefObject<HTMLDivElement>;
73
-
74
- constructor(props) {
75
- super(props);
76
- this.menuRef = createRef();
77
- }
78
-
79
- render() {
80
- const { props } = this;
81
- const {
82
- open,
83
- openWidth,
84
- children,
85
- disabled,
86
- display,
87
- onMouseOver,
88
- onClick,
89
- onOutsideClick,
90
- ...boxProps
91
- } = props;
92
- const { className, ...rest } = boxProps;
93
-
94
- return (
95
- <div ref={this.menuRef}>
96
- <Box
97
- className={classes([
98
- styles.button,
99
- styles.font,
100
- styles.hover,
101
- className,
102
- ])}
103
- {...rest}
104
- onClick={disabled ? () => null : onClick}
105
- onMouseOver={onMouseOver}
106
- >
107
- <span className={styles.button__text}>{display}</span>
108
- </Box>
109
- {open && (
110
- <Menu
111
- width={openWidth}
112
- menuRef={this.menuRef}
113
- onOutsideClick={onOutsideClick}
114
- >
115
- {children}
116
- </Menu>
117
- )}
118
- </div>
119
- );
120
- }
121
- }
122
-
123
- type MenuBarItemProps = {
124
- children: any;
125
- className?: string;
126
- disabled?: boolean;
127
- display: ReactNode;
128
- entry: string;
129
- openMenuBar: string | null;
130
- openOnHover: boolean;
131
- openWidth: string;
132
- setOpenMenuBar: (entry: string | null) => void;
133
- setOpenOnHover: (flag: boolean) => void;
134
- };
135
-
136
- export function Dropdown(props: MenuBarItemProps) {
137
- const {
138
- entry,
139
- children,
140
- openWidth,
141
- display,
142
- setOpenMenuBar,
143
- openMenuBar,
144
- setOpenOnHover,
145
- openOnHover,
146
- disabled,
147
- className,
148
- } = props;
149
-
150
- return (
151
- <MenuBarButton
152
- openWidth={openWidth}
153
- display={display}
154
- disabled={disabled}
155
- open={openMenuBar === entry}
156
- className={className}
157
- onClick={() => {
158
- const open = openMenuBar === entry ? null : entry;
159
- setOpenMenuBar(open);
160
- setOpenOnHover(!openOnHover);
161
- }}
162
- onOutsideClick={() => {
163
- setOpenMenuBar(null);
164
- setOpenOnHover(false);
165
- }}
166
- onMouseOver={() => {
167
- if (openOnHover) {
168
- setOpenMenuBar(entry);
169
- }
170
- }}
171
- >
172
- {children}
173
- </MenuBarButton>
174
- );
175
- }
176
-
177
- function MenuItemToggle(props) {
178
- const { value, displayText, onClick, checked } = props;
179
- return (
180
- <Box
181
- className={classes([
182
- styles.font,
183
- styles.item,
184
- styles.toggle,
185
- styles.hover,
186
- ])}
187
- onClick={() => onClick(value)}
188
- >
189
- <div className={styles.toggle__check}>
190
- {checked && <Icon size={1.3} name="check" />}
191
- </div>
192
- {displayText}
193
- </Box>
194
- );
195
- }
196
-
197
- Dropdown.MenuItemToggle = MenuItemToggle;
198
-
199
- function MenuItem(props) {
200
- const { value, displayText, onClick } = props;
201
- return (
202
- <Box
203
- className={classes([styles.font, styles.item, styles.hover])}
204
- onClick={() => onClick(value)}
205
- >
206
- {displayText}
207
- </Box>
208
- );
209
- }
210
-
211
- Dropdown.MenuItem = MenuItem;
212
-
213
- function Separator() {
214
- return <div className={styles.separator} />;
215
- }
216
-
217
- Dropdown.Separator = Separator;
218
-
219
- type MenuBarProps = {
220
- children: any;
221
- };
222
-
223
- export function MenuBar(props: MenuBarProps) {
224
- const { children } = props;
225
- return <Box className={styles.menuBar}>{children}</Box>;
226
- }
227
-
228
- MenuBar.Dropdown = Dropdown;
@@ -1,23 +0,0 @@
1
- import { classes } from '../common/react';
2
- import styles from '../styles/components/Modal.module.scss';
3
- import { BoxProps, computeBoxClassName, computeBoxProps } from './Box';
4
- import { Dimmer } from './Dimmer';
5
-
6
- export function Modal(props: BoxProps) {
7
- const { className, children, ...rest } = props;
8
-
9
- return (
10
- <Dimmer>
11
- <div
12
- className={classes([
13
- styles.modal,
14
- className,
15
- computeBoxClassName(rest),
16
- ])}
17
- {...computeBoxProps(rest)}
18
- >
19
- {children}
20
- </div>
21
- </Dimmer>
22
- );
23
- }
@@ -1,45 +0,0 @@
1
- import { classes } from '../common/react';
2
- import styles from '../styles/components/NoticeBox.module.scss';
3
- import { Box, BoxProps } from './Box';
4
-
5
- type Props = ExclusiveProps & BoxProps;
6
-
7
- /** You MUST use only one or none */
8
- type NoticeType = 'info' | 'success' | 'danger';
9
-
10
- type None = {
11
- [K in NoticeType]?: undefined;
12
- };
13
-
14
- type ExclusiveProps =
15
- | None
16
- | (Omit<None, 'info'> & {
17
- /** Blue notice */
18
- info: boolean;
19
- })
20
- | (Omit<None, 'success'> & {
21
- /** Green notice */
22
- success: boolean;
23
- })
24
- | (Omit<None, 'danger'> & {
25
- /** Red notice */
26
- danger: boolean;
27
- });
28
-
29
- export function NoticeBox(props: Props) {
30
- const { className, color, info, success, danger, ...rest } = props;
31
-
32
- return (
33
- <Box
34
- className={classes([
35
- styles.noticeBox,
36
- color && styles['color__' + color],
37
- info && styles.info,
38
- success && styles.success,
39
- danger && styles.danger,
40
- className,
41
- ])}
42
- {...rest}
43
- />
44
- );
45
- }