tgui-core 1.0.0

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 (152) hide show
  1. package/.editorconfig +10 -0
  2. package/.eslintrc.cjs +78 -0
  3. package/.gitattributes +4 -0
  4. package/.prettierrc.yml +1 -0
  5. package/.vscode/extensions.json +6 -0
  6. package/.vscode/settings.json +5 -0
  7. package/README.md +1 -0
  8. package/global.d.ts +173 -0
  9. package/package.json +25 -0
  10. package/src/assets.ts +43 -0
  11. package/src/backend.ts +369 -0
  12. package/src/common/collections.ts +349 -0
  13. package/src/common/color.ts +94 -0
  14. package/src/common/events.ts +45 -0
  15. package/src/common/exhaustive.ts +19 -0
  16. package/src/common/fp.ts +38 -0
  17. package/src/common/keycodes.ts +86 -0
  18. package/src/common/keys.ts +39 -0
  19. package/src/common/math.ts +98 -0
  20. package/src/common/perf.ts +72 -0
  21. package/src/common/random.ts +32 -0
  22. package/src/common/react.ts +65 -0
  23. package/src/common/redux.ts +196 -0
  24. package/src/common/storage.js +196 -0
  25. package/src/common/string.ts +173 -0
  26. package/src/common/timer.ts +68 -0
  27. package/src/common/type-utils.ts +41 -0
  28. package/src/common/types.ts +9 -0
  29. package/src/common/uuid.ts +24 -0
  30. package/src/common/vector.ts +51 -0
  31. package/src/components/AnimatedNumber.tsx +185 -0
  32. package/src/components/Autofocus.tsx +23 -0
  33. package/src/components/Blink.jsx +69 -0
  34. package/src/components/BlockQuote.tsx +15 -0
  35. package/src/components/BodyZoneSelector.tsx +149 -0
  36. package/src/components/Box.tsx +255 -0
  37. package/src/components/Button.tsx +415 -0
  38. package/src/components/ByondUi.jsx +121 -0
  39. package/src/components/Chart.tsx +160 -0
  40. package/src/components/Collapsible.tsx +45 -0
  41. package/src/components/ColorBox.tsx +30 -0
  42. package/src/components/Dialog.tsx +85 -0
  43. package/src/components/Dimmer.tsx +19 -0
  44. package/src/components/Divider.tsx +26 -0
  45. package/src/components/DmIcon.tsx +72 -0
  46. package/src/components/DraggableControl.jsx +282 -0
  47. package/src/components/Dropdown.tsx +246 -0
  48. package/src/components/FakeTerminal.jsx +52 -0
  49. package/src/components/FitText.tsx +99 -0
  50. package/src/components/Flex.tsx +105 -0
  51. package/src/components/Grid.tsx +44 -0
  52. package/src/components/Icon.tsx +91 -0
  53. package/src/components/Image.tsx +63 -0
  54. package/src/components/InfinitePlane.jsx +192 -0
  55. package/src/components/Input.tsx +181 -0
  56. package/src/components/KeyListener.tsx +40 -0
  57. package/src/components/Knob.tsx +185 -0
  58. package/src/components/LabeledControls.tsx +50 -0
  59. package/src/components/LabeledList.tsx +130 -0
  60. package/src/components/MenuBar.tsx +238 -0
  61. package/src/components/Modal.tsx +25 -0
  62. package/src/components/NoticeBox.tsx +48 -0
  63. package/src/components/NumberInput.tsx +328 -0
  64. package/src/components/Popper.tsx +100 -0
  65. package/src/components/ProgressBar.tsx +79 -0
  66. package/src/components/RestrictedInput.jsx +301 -0
  67. package/src/components/RoundGauge.tsx +189 -0
  68. package/src/components/Section.tsx +125 -0
  69. package/src/components/Slider.tsx +173 -0
  70. package/src/components/Stack.tsx +101 -0
  71. package/src/components/StyleableSection.tsx +30 -0
  72. package/src/components/Table.tsx +90 -0
  73. package/src/components/Tabs.tsx +90 -0
  74. package/src/components/TextArea.tsx +198 -0
  75. package/src/components/TimeDisplay.jsx +64 -0
  76. package/src/components/Tooltip.tsx +147 -0
  77. package/src/components/TrackOutsideClicks.tsx +35 -0
  78. package/src/components/VirtualList.tsx +69 -0
  79. package/src/constants.ts +355 -0
  80. package/src/debug/KitchenSink.jsx +56 -0
  81. package/src/debug/actions.js +11 -0
  82. package/src/debug/hooks.js +10 -0
  83. package/src/debug/index.ts +10 -0
  84. package/src/debug/middleware.js +86 -0
  85. package/src/debug/reducer.js +22 -0
  86. package/src/debug/selectors.js +7 -0
  87. package/src/drag.ts +280 -0
  88. package/src/events.ts +237 -0
  89. package/src/focus.ts +25 -0
  90. package/src/format.ts +173 -0
  91. package/src/hotkeys.ts +212 -0
  92. package/src/http.ts +16 -0
  93. package/src/layouts/Layout.tsx +75 -0
  94. package/src/layouts/NtosWindow.tsx +162 -0
  95. package/src/layouts/Pane.tsx +56 -0
  96. package/src/layouts/Window.tsx +227 -0
  97. package/src/renderer.ts +50 -0
  98. package/styles/base.scss +32 -0
  99. package/styles/colors.scss +92 -0
  100. package/styles/components/BlockQuote.scss +20 -0
  101. package/styles/components/Button.scss +175 -0
  102. package/styles/components/ColorBox.scss +12 -0
  103. package/styles/components/Dialog.scss +105 -0
  104. package/styles/components/Dimmer.scss +22 -0
  105. package/styles/components/Divider.scss +27 -0
  106. package/styles/components/Dropdown.scss +72 -0
  107. package/styles/components/Flex.scss +31 -0
  108. package/styles/components/Icon.scss +25 -0
  109. package/styles/components/Input.scss +68 -0
  110. package/styles/components/Knob.scss +131 -0
  111. package/styles/components/LabeledList.scss +49 -0
  112. package/styles/components/MenuBar.scss +75 -0
  113. package/styles/components/Modal.scss +14 -0
  114. package/styles/components/NoticeBox.scss +65 -0
  115. package/styles/components/NumberInput.scss +76 -0
  116. package/styles/components/ProgressBar.scss +63 -0
  117. package/styles/components/RoundGauge.scss +88 -0
  118. package/styles/components/Section.scss +143 -0
  119. package/styles/components/Slider.scss +54 -0
  120. package/styles/components/Stack.scss +59 -0
  121. package/styles/components/Table.scss +44 -0
  122. package/styles/components/Tabs.scss +144 -0
  123. package/styles/components/TextArea.scss +84 -0
  124. package/styles/components/Tooltip.scss +24 -0
  125. package/styles/functions.scss +79 -0
  126. package/styles/layouts/Layout.scss +57 -0
  127. package/styles/layouts/NtosHeader.scss +20 -0
  128. package/styles/layouts/NtosWindow.scss +26 -0
  129. package/styles/layouts/TitleBar.scss +111 -0
  130. package/styles/layouts/Window.scss +103 -0
  131. package/styles/main.scss +97 -0
  132. package/styles/reset.scss +68 -0
  133. package/styles/themes/abductor.scss +68 -0
  134. package/styles/themes/admin.scss +38 -0
  135. package/styles/themes/cardtable.scss +57 -0
  136. package/styles/themes/hackerman.scss +70 -0
  137. package/styles/themes/malfunction.scss +67 -0
  138. package/styles/themes/neutral.scss +50 -0
  139. package/styles/themes/ntOS95.scss +166 -0
  140. package/styles/themes/ntos.scss +44 -0
  141. package/styles/themes/ntos_cat.scss +148 -0
  142. package/styles/themes/ntos_darkmode.scss +44 -0
  143. package/styles/themes/ntos_lightmode.scss +67 -0
  144. package/styles/themes/ntos_spooky.scss +69 -0
  145. package/styles/themes/ntos_synth.scss +99 -0
  146. package/styles/themes/ntos_terminal.scss +112 -0
  147. package/styles/themes/paper.scss +184 -0
  148. package/styles/themes/retro.scss +72 -0
  149. package/styles/themes/spookyconsole.scss +73 -0
  150. package/styles/themes/syndicate.scss +67 -0
  151. package/styles/themes/wizard.scss +68 -0
  152. package/tsconfig.json +34 -0
@@ -0,0 +1,184 @@
1
+ /**
2
+ * Copyright (c) 2020 Paul Bruner
3
+ * SPDX-License-Identifier: MIT
4
+ */
5
+
6
+ @use 'sass:color';
7
+ @use 'sass:meta';
8
+
9
+ @use '../colors.scss' with (
10
+ $primary: #ffffff,
11
+ $bg-lightness: 25%,
12
+ $fg-lightness: -10%,
13
+ // Commenting out color maps will adjust all colors based on the lightness
14
+ // settings above, but will add extra 10KB to the theme.
15
+ $fg-map-keys: (),
16
+ $bg-map-keys: ()
17
+ );
18
+ @use '../base.scss' with (
19
+ $color-fg: #000000,
20
+ $color-bg: #dfdfdf,
21
+ $color-bg-grad-spread: 0%
22
+ );
23
+
24
+ $font-size: 24px;
25
+
26
+ // A fat warning to anyone who wants to use this: this only half works.
27
+ // It was made almost purely for the nuke ui, and requires a good amount of manual hacks to get it working as intended.
28
+ .theme-paper {
29
+ // Atomic classes
30
+ @include meta.load-css('../atomic/color.scss');
31
+
32
+ // Components
33
+ @include meta.load-css('../components/Tabs.scss');
34
+ @include meta.load-css(
35
+ '../components/Section.scss',
36
+ $with: ('background-color': rgba(0, 0, 0, 0.1))
37
+ );
38
+ @include meta.load-css(
39
+ '../components/Button.scss',
40
+ $with: (
41
+ 'color-default': #e8e4c9,
42
+ 'color-disabled': #363636,
43
+ 'color-selected': #9d0808,
44
+ 'color-caution': #be6209,
45
+ 'color-danger': #9a9d00,
46
+ 'color-transparent-text': rgba(0, 0, 0, 0.5)
47
+ )
48
+ );
49
+
50
+ // Layouts
51
+ @include meta.load-css(
52
+ '../layouts/Layout.scss',
53
+ $with: ('scrollbar-color-multiplier': -1)
54
+ );
55
+ @include meta.load-css('../layouts/Window.scss');
56
+ @include meta.load-css(
57
+ '../layouts/TitleBar.scss',
58
+ $with: (
59
+ 'text-color': rgba(0, 0, 0, 0.75),
60
+ 'background-color': base.$color-bg,
61
+ 'shadow-color-core': rgba(0, 0, 0, 0.25)
62
+ )
63
+ );
64
+
65
+ .PaperInput {
66
+ position: relative;
67
+ display: inline-block;
68
+ width: 120px;
69
+ border: none;
70
+ background: transparent;
71
+ border-bottom: 1px solid #000;
72
+ outline: none;
73
+ background-color: rgba(255, 255, 62, 0.8);
74
+ padding: 0 4px;
75
+ margin-right: 2px;
76
+ line-height: 17px;
77
+ overflow: visible;
78
+ }
79
+
80
+ .PaperInput__baseline {
81
+ display: inline-block;
82
+ color: transparent;
83
+ }
84
+
85
+ .PaperInput__input {
86
+ display: block;
87
+ position: absolute;
88
+ top: 0;
89
+ bottom: 0;
90
+ left: 0;
91
+ right: 0;
92
+ border: 0;
93
+ outline: 0;
94
+ width: 100%;
95
+ font-size: 12px;
96
+ line-height: 17px;
97
+ height: 17px;
98
+ margin: 0;
99
+ padding: 0 6px;
100
+ font-family: Verdana, sans-serif;
101
+ background-color: transparent;
102
+ color: #fff;
103
+ color: inherit;
104
+
105
+ &:-ms-input-placeholder {
106
+ font-style: italic;
107
+ color: #777;
108
+ color: rgba(255, 255, 255, 0.45);
109
+ }
110
+ }
111
+
112
+ .Layout__content {
113
+ background-image: none;
114
+ }
115
+
116
+ .Window {
117
+ background-image: none;
118
+ color: base.$color-fg;
119
+ }
120
+
121
+ .paper-text {
122
+ input:disabled {
123
+ position: relative;
124
+ display: inline-block;
125
+ border: none;
126
+ background: transparent;
127
+ border-bottom: 1px solid #000;
128
+ outline: none;
129
+ background-color: rgba(255, 255, 62, 0.8);
130
+ padding: 0 4px;
131
+ margin-right: 2px;
132
+ line-height: 17px;
133
+ overflow: visible;
134
+ }
135
+
136
+ input {
137
+ position: relative;
138
+ display: inline-block;
139
+ border: none;
140
+ background: transparent;
141
+ border-bottom: 1px solid #000;
142
+ outline: none;
143
+ background-color: rgba(255, 255, 62, 0.8);
144
+ padding: 0 4px;
145
+ margin-right: 2px;
146
+ line-height: 17px;
147
+ overflow: visible;
148
+ }
149
+ }
150
+
151
+ .Section__title {
152
+ border-bottom: none;
153
+ }
154
+
155
+ .paper-field {
156
+ position: relative;
157
+ display: inline-block;
158
+
159
+ border: none;
160
+ background: transparent;
161
+ border-bottom: 1px solid #000;
162
+ outline: none;
163
+ background-color: rgba(255, 255, 62, 0.8);
164
+ padding: 0 4px;
165
+ margin-right: 2px;
166
+ line-height: 17px;
167
+ overflow: visible;
168
+
169
+ input:disabled {
170
+ position: relative;
171
+ display: inline-block;
172
+
173
+ border: none;
174
+ background: transparent;
175
+ border-bottom: 1px solid #000;
176
+ outline: none;
177
+ background-color: rgba(255, 255, 62, 0.8);
178
+ padding: 0 4px;
179
+ margin-right: 2px;
180
+ line-height: 17px;
181
+ overflow: visible;
182
+ }
183
+ }
184
+ }
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Copyright (c) 2020 Aleksej Komarov
3
+ * SPDX-License-Identifier: MIT
4
+ */
5
+
6
+ @use 'sass:color';
7
+ @use 'sass:meta';
8
+
9
+ @use '../colors.scss' with (
10
+ $primary: #000000,
11
+ $fg-map-keys: (),
12
+ $bg-map-keys: ()
13
+ );
14
+ @use '../base.scss' with (
15
+ $color-bg: #e8e4c9,
16
+ $color-bg-grad-spread: 0%,
17
+ $border-radius: 0
18
+ );
19
+
20
+ // A fat warning to anyone who wants to use this: this only half works.
21
+ // It was made almost purely for the nuke ui, and requires a good amount of manual hacks to get it working as intended.
22
+ .theme-retro {
23
+ // Atomic classes
24
+ @include meta.load-css('../atomic/color.scss');
25
+
26
+ // Components
27
+ @include meta.load-css(
28
+ '../components/Button.scss',
29
+ $with: (
30
+ 'color-default': #e8e4c9,
31
+ 'color-disabled': #505046,
32
+ 'color-selected': #9d0808,
33
+ 'color-caution': #be6209,
34
+ 'color-danger': #9a9d00
35
+ )
36
+ );
37
+ @include meta.load-css(
38
+ '../components/ProgressBar.scss',
39
+ $with: ('background-color': rgba(0, 0, 0, 0.5))
40
+ );
41
+ @include meta.load-css('../components/Section.scss');
42
+
43
+ // Layouts
44
+ @include meta.load-css('../layouts/Layout.scss');
45
+ @include meta.load-css('../layouts/Window.scss');
46
+ @include meta.load-css(
47
+ '../layouts/TitleBar.scss',
48
+ $with: ('background-color': #585337)
49
+ );
50
+
51
+ .Button {
52
+ font-family: monospace;
53
+ color: #161613;
54
+ border: base.em(2px) outset #e8e4c9;
55
+ outline: base.em(1px) solid #161613;
56
+ }
57
+
58
+ .Button--disabled {
59
+ color: #c5c5c2;
60
+ font-family: monospace;
61
+ &:hover {
62
+ color: #ffffff;
63
+ }
64
+ &:focus {
65
+ color: #ffffff;
66
+ }
67
+ }
68
+
69
+ .Layout__content {
70
+ background-image: none;
71
+ }
72
+ }
@@ -0,0 +1,73 @@
1
+ @use 'sass:color';
2
+ @use 'sass:meta';
3
+ @use 'sass:map';
4
+
5
+ @use '../colors.scss' with (
6
+ $primary: #3f021a,
7
+ $good: #010005,
8
+ $bad: #970934,
9
+ $fg-map-keys: (),
10
+ $bg-map-keys: ()
11
+ );
12
+ @use '../base.scss' with (
13
+ $color-bg: #240101,
14
+ $color-bg-grad-spread: 12%
15
+ );
16
+
17
+ $updated-bg-map: colors.$bg-map !default;
18
+
19
+ $updated-bg-map: map.set($updated-bg-map, 'good', colors.$good);
20
+ $updated-bg-map: map.set($updated-bg-map, 'bad', colors.$bad);
21
+
22
+ .theme-spookyconsole {
23
+ // Atomic classes
24
+ @include meta.load-css(
25
+ '../atomic/color.scss',
26
+ $with: ('bg-map': $updated-bg-map)
27
+ );
28
+
29
+ // Components
30
+ @include meta.load-css(
31
+ '../components/Button.scss',
32
+ $with: (
33
+ 'color-default': #7e0322,
34
+ 'color-disabled': #363636,
35
+ 'color-selected': #610a0a,
36
+ 'color-caution': #1416a3,
37
+ 'color-danger': #5c1e80,
38
+ 'bg-map': $updated-bg-map
39
+ )
40
+ );
41
+ @include meta.load-css(
42
+ '../components/Dimmer.scss',
43
+ $with: ('background-dimness': 0.45)
44
+ );
45
+ @include meta.load-css(
46
+ '../components/Input.scss',
47
+ $with: ('border-color': #473a37)
48
+ );
49
+ @include meta.load-css('../components/Modal.scss');
50
+ @include meta.load-css(
51
+ '../components/NoticeBox.scss',
52
+ $with: ('background-color': #740707)
53
+ );
54
+ @include meta.load-css('../components/NumberInput.scss');
55
+ @include meta.load-css('../components/Section.scss');
56
+ @include meta.load-css('../components/Table.scss');
57
+ @include meta.load-css(
58
+ '../components/Tooltip.scss',
59
+ $with: ('background-color': #000000)
60
+ );
61
+
62
+ // Layouts
63
+ @include meta.load-css('../layouts/Layout.scss');
64
+ @include meta.load-css('../layouts/Window.scss');
65
+ @include meta.load-css(
66
+ '../layouts/TitleBar.scss',
67
+ $with: ('background-color': #6b0808)
68
+ );
69
+
70
+ .Layout__content {
71
+ background-image: url('../../assets/bg-spookycomp-compressed.svg');
72
+ }
73
+ }
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Copyright (c) 2020 Aleksej Komarov
3
+ * SPDX-License-Identifier: MIT
4
+ */
5
+
6
+ @use 'sass:color';
7
+ @use 'sass:meta';
8
+
9
+ @use '../colors.scss' with (
10
+ $primary: #397439,
11
+ $fg-map-keys: (),
12
+ $bg-map-keys: ()
13
+ );
14
+ @use '../base.scss' with (
15
+ $color-bg: #550202,
16
+ $color-bg-grad-spread: 6%
17
+ );
18
+
19
+ .theme-syndicate {
20
+ // Atomic classes
21
+ @include meta.load-css('../atomic/color.scss');
22
+
23
+ // Components
24
+ @include meta.load-css(
25
+ '../components/Button.scss',
26
+ $with: (
27
+ 'color-default': colors.$primary,
28
+ 'color-disabled': #363636,
29
+ 'color-selected': #9d0808,
30
+ 'color-caution': #be6209,
31
+ 'color-danger': #9a9d00
32
+ )
33
+ );
34
+ @include meta.load-css(
35
+ '../components/Input.scss',
36
+ $with: ('border-color': #87ce87)
37
+ );
38
+ @include meta.load-css(
39
+ '../components/NoticeBox.scss',
40
+ $with: ('background-color': #910101)
41
+ );
42
+ @include meta.load-css(
43
+ '../components/NumberInput.scss',
44
+ $with: ('border-color': #87ce87)
45
+ );
46
+ @include meta.load-css(
47
+ '../components/ProgressBar.scss',
48
+ $with: ('background-color': rgba(0, 0, 0, 0.5))
49
+ );
50
+ @include meta.load-css('../components/Section.scss');
51
+ @include meta.load-css(
52
+ '../components/Tooltip.scss',
53
+ $with: ('background-color': #4a0202)
54
+ );
55
+
56
+ // Layouts
57
+ @include meta.load-css('../layouts/Layout.scss');
58
+ @include meta.load-css('../layouts/Window.scss');
59
+ @include meta.load-css(
60
+ '../layouts/TitleBar.scss',
61
+ $with: ('background-color': #910101)
62
+ );
63
+
64
+ .Layout__content {
65
+ background-image: url('../../assets/bg-syndicate.svg');
66
+ }
67
+ }
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Copyright (c) 2020 Aleksej Komarov
3
+ * SPDX-License-Identifier: MIT
4
+ */
5
+
6
+ @use 'sass:color';
7
+ @use 'sass:meta';
8
+
9
+ @use '../colors.scss' with (
10
+ $primary: #1596b6,
11
+ $fg-map-keys: (),
12
+ $bg-map-keys: ()
13
+ );
14
+ @use '../base.scss' with (
15
+ $color-bg: #213e4e,
16
+ $color-bg-grad-spread: 6%,
17
+ $border-radius: 2px
18
+ );
19
+
20
+ .theme-wizard {
21
+ // Atomic classes
22
+ @include meta.load-css('../atomic/color.scss');
23
+
24
+ // Components
25
+ @include meta.load-css(
26
+ '../components/Button.scss',
27
+ $with: (
28
+ 'color-default': colors.$primary,
29
+ 'color-disabled': #02426d,
30
+ 'color-selected': #465899,
31
+ 'color-caution': #be6209,
32
+ 'color-danger': #b30707
33
+ )
34
+ );
35
+ @include meta.load-css(
36
+ '../components/Input.scss',
37
+ $with: ('border-color': #404b6e)
38
+ );
39
+ @include meta.load-css(
40
+ '../components/NoticeBox.scss',
41
+ $with: ('background-color': #a82d55)
42
+ );
43
+ @include meta.load-css(
44
+ '../components/NumberInput.scss',
45
+ $with: ('border-color': #404b6e)
46
+ );
47
+ @include meta.load-css(
48
+ '../components/ProgressBar.scss',
49
+ $with: ('background-color': rgba(0, 0, 0, 0.5))
50
+ );
51
+ @include meta.load-css('../components/Section.scss');
52
+ @include meta.load-css(
53
+ '../components/Tooltip.scss',
54
+ $with: ('background-color': #2da848)
55
+ );
56
+
57
+ // Layouts
58
+ @include meta.load-css('../layouts/Layout.scss');
59
+ @include meta.load-css('../layouts/Window.scss');
60
+ @include meta.load-css(
61
+ '../layouts/TitleBar.scss',
62
+ $with: ('background-color': #1b9e26)
63
+ );
64
+
65
+ .Layout__content {
66
+ background-image: url('../../assets/bg-wizard.svg');
67
+ }
68
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,34 @@
1
+ {
2
+ "compilerOptions": {
3
+ "allowJs": true,
4
+ "allowSyntheticDefaultImports": true,
5
+ "checkJs": false,
6
+ "esModuleInterop": true,
7
+ "forceConsistentCasingInFileNames": true,
8
+ "isolatedModules": false,
9
+ "jsx": "preserve",
10
+ "lib": [
11
+ "DOM",
12
+ "DOM.Iterable",
13
+ "ESNext",
14
+ "ScriptHost"
15
+ ],
16
+ "module": "ESNext",
17
+ "moduleResolution": "Node",
18
+ "noEmit": true,
19
+ "resolveJsonModule": true,
20
+ "skipLibCheck": true,
21
+ "strict": false,
22
+ "strictNullChecks": true,
23
+ "target": "ES5"
24
+ },
25
+ "include": [
26
+ ".eslintrc.cjs",
27
+ "global.d.ts",
28
+ "**/*.ts",
29
+ "**/*.tsx",
30
+ "**/*.cjs",
31
+ "**/*.js",
32
+ "**/*.jsx"
33
+ ],
34
+ }