@contember/react-devbar 1.3.0-rc.3 → 2.0.0-alpha.10

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 (149) hide show
  1. package/api-extractor.json +3 -0
  2. package/dist/development/index.cjs +6 -6
  3. package/dist/development/index.js +6 -6
  4. package/dist/development/{DevErrorManager.cjs → src/DevErrorManager.cjs} +10 -13
  5. package/dist/development/src/DevErrorManager.cjs.map +1 -0
  6. package/dist/development/{DevErrorManager.js → src/DevErrorManager.js} +5 -8
  7. package/dist/development/src/DevErrorManager.js.map +1 -0
  8. package/dist/development/{errorHandling.cjs → src/errorHandling.cjs} +1 -1
  9. package/dist/development/src/errorHandling.cjs.map +1 -0
  10. package/dist/development/{errorHandling.js → src/errorHandling.js} +2 -2
  11. package/dist/development/src/errorHandling.js.map +1 -0
  12. package/dist/development/{hooks → src/hooks}/useParsedStacktrace.cjs +3 -3
  13. package/dist/development/src/hooks/useParsedStacktrace.cjs.map +1 -0
  14. package/dist/development/src/hooks/useParsedStacktrace.js.map +1 -0
  15. package/dist/development/{ui → src/ui}/DevBar/DevBar.cjs +31 -32
  16. package/dist/development/src/ui/DevBar/DevBar.cjs.map +1 -0
  17. package/dist/development/{ui → src/ui}/DevBar/DevBar.js +24 -25
  18. package/dist/development/src/ui/DevBar/DevBar.js.map +1 -0
  19. package/dist/development/src/ui/DevError/DevError.cjs +33 -0
  20. package/dist/development/src/ui/DevError/DevError.cjs.map +1 -0
  21. package/dist/development/src/ui/DevError/DevError.js +33 -0
  22. package/dist/development/src/ui/DevError/DevError.js.map +1 -0
  23. package/dist/development/{ui → src/ui}/DevError/DevErrorBadge.cjs +6 -7
  24. package/dist/development/src/ui/DevError/DevErrorBadge.cjs.map +1 -0
  25. package/dist/development/src/ui/DevError/DevErrorBadge.js +21 -0
  26. package/dist/development/src/ui/DevError/DevErrorBadge.js.map +1 -0
  27. package/dist/development/src/ui/DevError/DevErrorInner.cjs +79 -0
  28. package/dist/development/src/ui/DevError/DevErrorInner.cjs.map +1 -0
  29. package/dist/development/src/ui/DevError/DevErrorInner.js +79 -0
  30. package/dist/development/src/ui/DevError/DevErrorInner.js.map +1 -0
  31. package/dist/development/src/ui/DevError/DevErrorList.cjs +90 -0
  32. package/dist/development/src/ui/DevError/DevErrorList.cjs.map +1 -0
  33. package/dist/development/src/ui/DevError/DevErrorList.js +90 -0
  34. package/dist/development/src/ui/DevError/DevErrorList.js.map +1 -0
  35. package/dist/development/src/ui/DevError/StackTrace.cjs +82 -0
  36. package/dist/development/src/ui/DevError/StackTrace.cjs.map +1 -0
  37. package/dist/development/src/ui/DevError/StackTrace.js +82 -0
  38. package/dist/development/src/ui/DevError/StackTrace.js.map +1 -0
  39. package/dist/production/index.cjs +6 -6
  40. package/dist/production/index.js +6 -6
  41. package/dist/production/{errorHandling.cjs → src/errorHandling.cjs} +1 -0
  42. package/dist/production/src/errorHandling.cjs.map +1 -0
  43. package/dist/production/{errorHandling.js → src/errorHandling.js} +1 -0
  44. package/dist/production/src/errorHandling.js.map +1 -0
  45. package/dist/production/{hooks → src/hooks}/useParsedStacktrace.cjs +3 -3
  46. package/dist/production/src/hooks/useParsedStacktrace.cjs.map +1 -0
  47. package/dist/production/src/hooks/useParsedStacktrace.js.map +1 -0
  48. package/dist/production/{ui → src/ui}/DevBar/DevBar.cjs +10 -11
  49. package/dist/production/src/ui/DevBar/DevBar.cjs.map +1 -0
  50. package/dist/production/{ui → src/ui}/DevBar/DevBar.js +3 -4
  51. package/dist/production/src/ui/DevBar/DevBar.js.map +1 -0
  52. package/dist/production/src/ui/DevError/DevError.cjs +13 -0
  53. package/dist/production/src/ui/DevError/DevError.cjs.map +1 -0
  54. package/dist/production/src/ui/DevError/DevError.js +13 -0
  55. package/dist/production/src/ui/DevError/DevError.js.map +1 -0
  56. package/dist/production/{ui → src/ui}/DevError/DevErrorBadge.cjs +2 -3
  57. package/dist/production/src/ui/DevError/DevErrorBadge.cjs.map +1 -0
  58. package/dist/production/src/ui/DevError/DevErrorBadge.js +13 -0
  59. package/dist/production/src/ui/DevError/DevErrorBadge.js.map +1 -0
  60. package/dist/production/src/ui/DevError/DevErrorInner.cjs +23 -0
  61. package/dist/production/src/ui/DevError/DevErrorInner.cjs.map +1 -0
  62. package/dist/production/src/ui/DevError/DevErrorInner.js +23 -0
  63. package/dist/production/src/ui/DevError/DevErrorInner.js.map +1 -0
  64. package/dist/production/src/ui/DevError/DevErrorList.cjs +38 -0
  65. package/dist/production/src/ui/DevError/DevErrorList.cjs.map +1 -0
  66. package/dist/production/src/ui/DevError/DevErrorList.js +38 -0
  67. package/dist/production/src/ui/DevError/DevErrorList.js.map +1 -0
  68. package/dist/production/src/ui/DevError/StackTrace.cjs +39 -0
  69. package/dist/production/src/ui/DevError/StackTrace.cjs.map +1 -0
  70. package/dist/production/src/ui/DevError/StackTrace.js +39 -0
  71. package/dist/production/src/ui/DevError/StackTrace.js.map +1 -0
  72. package/dist/types/tsconfig.tsbuildinfo +1 -1
  73. package/dist/types/ui/DevBar/DevBar.d.ts.map +1 -1
  74. package/dist/types/ui/DevError/DevError.d.ts.map +1 -1
  75. package/dist/types/ui/DevError/DevErrorBadge.d.ts.map +1 -1
  76. package/dist/types/ui/DevError/DevErrorInner.d.ts.map +1 -1
  77. package/dist/types/ui/DevError/DevErrorList.d.ts.map +1 -1
  78. package/dist/types/ui/DevError/StackTrace.d.ts.map +1 -1
  79. package/package.json +7 -18
  80. package/src/DevErrorManager.tsx +4 -4
  81. package/src/index.css +385 -2
  82. package/src/tsconfig.json +5 -2
  83. package/src/ui/DevBar/DevBar.tsx +9 -10
  84. package/src/ui/DevError/DevError.tsx +6 -6
  85. package/src/ui/DevError/DevErrorBadge.tsx +5 -6
  86. package/src/ui/DevError/DevErrorInner.tsx +12 -11
  87. package/src/ui/DevError/DevErrorList.tsx +13 -15
  88. package/src/ui/DevError/StackTrace.tsx +11 -13
  89. package/tsconfig.json +7 -0
  90. package/tsdoc.json +6 -0
  91. package/dist/assets/index.css +0 -377
  92. package/dist/development/DevErrorManager.cjs.map +0 -1
  93. package/dist/development/DevErrorManager.js.map +0 -1
  94. package/dist/development/errorHandling.cjs.map +0 -1
  95. package/dist/development/errorHandling.js.map +0 -1
  96. package/dist/development/hooks/useParsedStacktrace.cjs.map +0 -1
  97. package/dist/development/hooks/useParsedStacktrace.js.map +0 -1
  98. package/dist/development/ui/DevBar/DevBar.cjs.map +0 -1
  99. package/dist/development/ui/DevBar/DevBar.js.map +0 -1
  100. package/dist/development/ui/DevError/DevError.cjs +0 -34
  101. package/dist/development/ui/DevError/DevError.cjs.map +0 -1
  102. package/dist/development/ui/DevError/DevError.js +0 -34
  103. package/dist/development/ui/DevError/DevError.js.map +0 -1
  104. package/dist/development/ui/DevError/DevErrorBadge.cjs.map +0 -1
  105. package/dist/development/ui/DevError/DevErrorBadge.js +0 -22
  106. package/dist/development/ui/DevError/DevErrorBadge.js.map +0 -1
  107. package/dist/development/ui/DevError/DevErrorInner.cjs +0 -80
  108. package/dist/development/ui/DevError/DevErrorInner.cjs.map +0 -1
  109. package/dist/development/ui/DevError/DevErrorInner.js +0 -80
  110. package/dist/development/ui/DevError/DevErrorInner.js.map +0 -1
  111. package/dist/development/ui/DevError/DevErrorList.cjs +0 -91
  112. package/dist/development/ui/DevError/DevErrorList.cjs.map +0 -1
  113. package/dist/development/ui/DevError/DevErrorList.js +0 -91
  114. package/dist/development/ui/DevError/DevErrorList.js.map +0 -1
  115. package/dist/development/ui/DevError/StackTrace.cjs +0 -84
  116. package/dist/development/ui/DevError/StackTrace.cjs.map +0 -1
  117. package/dist/development/ui/DevError/StackTrace.js +0 -84
  118. package/dist/development/ui/DevError/StackTrace.js.map +0 -1
  119. package/dist/production/errorHandling.cjs.map +0 -1
  120. package/dist/production/errorHandling.js.map +0 -1
  121. package/dist/production/hooks/useParsedStacktrace.cjs.map +0 -1
  122. package/dist/production/hooks/useParsedStacktrace.js.map +0 -1
  123. package/dist/production/ui/DevBar/DevBar.cjs.map +0 -1
  124. package/dist/production/ui/DevBar/DevBar.js.map +0 -1
  125. package/dist/production/ui/DevError/DevError.cjs +0 -14
  126. package/dist/production/ui/DevError/DevError.cjs.map +0 -1
  127. package/dist/production/ui/DevError/DevError.js +0 -14
  128. package/dist/production/ui/DevError/DevError.js.map +0 -1
  129. package/dist/production/ui/DevError/DevErrorBadge.cjs.map +0 -1
  130. package/dist/production/ui/DevError/DevErrorBadge.js +0 -14
  131. package/dist/production/ui/DevError/DevErrorBadge.js.map +0 -1
  132. package/dist/production/ui/DevError/DevErrorInner.cjs +0 -24
  133. package/dist/production/ui/DevError/DevErrorInner.cjs.map +0 -1
  134. package/dist/production/ui/DevError/DevErrorInner.js +0 -24
  135. package/dist/production/ui/DevError/DevErrorInner.js.map +0 -1
  136. package/dist/production/ui/DevError/DevErrorList.cjs +0 -39
  137. package/dist/production/ui/DevError/DevErrorList.cjs.map +0 -1
  138. package/dist/production/ui/DevError/DevErrorList.js +0 -39
  139. package/dist/production/ui/DevError/DevErrorList.js.map +0 -1
  140. package/dist/production/ui/DevError/StackTrace.cjs +0 -41
  141. package/dist/production/ui/DevError/StackTrace.cjs.map +0 -1
  142. package/dist/production/ui/DevError/StackTrace.js +0 -41
  143. package/dist/production/ui/DevError/StackTrace.js.map +0 -1
  144. package/src/ui/DevBar/index.css +0 -171
  145. package/src/ui/DevError/DevError.css +0 -191
  146. package/src/ui/DevError/DevErrorBadge.css +0 -16
  147. package/src/ui/DevError/index.css +0 -2
  148. /package/dist/development/{hooks → src/hooks}/useParsedStacktrace.js +0 -0
  149. /package/dist/production/{hooks → src/hooks}/useParsedStacktrace.js +0 -0
package/src/index.css CHANGED
@@ -1,2 +1,385 @@
1
- @import "./ui/DevBar/index.css";
2
- @import "./ui/DevError/index.css";
1
+ .cui-devBar {
2
+ align-items: center;
3
+ bottom: 0;
4
+ display: flex;
5
+ flex-direction: column;
6
+ position: fixed;
7
+ z-index: 1000;
8
+ left: 0;
9
+ right: 0;
10
+ opacity: 1;
11
+ padding: 1rem;
12
+ transition-property: opacity, transform;
13
+ transition-duration: 200ms;
14
+ transition-timing-function: ease-in-out;
15
+ }
16
+
17
+ .cui-devBar-content,
18
+ .cui-devBar-panel-content {
19
+ background: #eee;
20
+ color: #002251;
21
+ }
22
+
23
+ .cui-devBar-content {
24
+ align-self: center;
25
+ align-items: center;
26
+ border-radius: 1rem;
27
+ box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
28
+ display: flex;
29
+ gap: 1rem;
30
+ padding: 0.5rem;
31
+ margin: 0 auto;
32
+ }
33
+
34
+
35
+ .cui-devBar-close,
36
+ .cui-devBar-trigger-label,
37
+ .cui-devBar-brand {
38
+ align-items: center;
39
+ height: 2rem;
40
+ border-radius: 0.5rem;
41
+ justify-content: center;
42
+ max-height: 2rem;
43
+ min-height: 2rem;
44
+ white-space: nowrap;
45
+ }
46
+
47
+ .cui-devBar-close {
48
+ background: transparent;
49
+ cursor: pointer;
50
+ display: flex;
51
+ max-width: 2rem;
52
+ width: 2rem;
53
+ order: 999;
54
+ }
55
+
56
+
57
+ .cui-devBar-brand {
58
+ align-items: center;
59
+ display: flex;
60
+ gap: 1rem;
61
+ text-align: right;
62
+ }
63
+
64
+ .cui-devBar-brand svg {
65
+ max-height: 2rem;
66
+ }
67
+
68
+
69
+ .cui-devBar-panels {
70
+ display: flex;
71
+ gap: 1rem;
72
+ }
73
+
74
+ .cui-devBar-trigger {
75
+ display: flex;
76
+ }
77
+
78
+ .cui-devBar-trigger-label {
79
+ align-items: center;
80
+ color: inherit;
81
+ cursor: pointer;
82
+ display: inline-flex;
83
+ font-weight: normal;
84
+ gap: 0.3rem;
85
+ padding: 0 0.2rem;
86
+ }
87
+
88
+ .cui-devBar-trigger-label:hover {
89
+ background-color: #e0e0e0;
90
+ }
91
+
92
+
93
+ .cui-devBar-panel {
94
+ justify-content: center;
95
+ display: flex;
96
+ flex-direction: row;
97
+ gap: 1rem;
98
+ left: 0;
99
+ position: absolute;
100
+ right: 0;
101
+ bottom: 0;
102
+ padding: 2rem;
103
+ transform: translateY(-1rem);
104
+ }
105
+
106
+ .cui-devBar-trigger:not([data-expanded]) > .cui-devBar-panel {
107
+ display: none;
108
+ }
109
+
110
+ .cui-devBar-panel-content {
111
+ background: #fff;
112
+ border: 1px solid #ccc;
113
+ box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
114
+ border-radius: 0.5rem;
115
+ display: flex;
116
+ min-width: min(20rem, 100%);
117
+ max-width: 100%;
118
+ flex-direction: column;
119
+ flex-shrink: 1;
120
+ }
121
+
122
+ .cui-devBar-panel-content h2 {
123
+ font-weight: bold;
124
+ margin-bottom: 0;
125
+ padding: 0.4rem 1rem;
126
+ border-radius: 0.5rem 0.5rem 0 0;
127
+ background: #f8f8f8;
128
+ }
129
+
130
+ @media screen and (min-width: 768px) {
131
+ .cui-devBar-trigger {
132
+ position: relative;
133
+ }
134
+
135
+ .cui-devBar-panel-content {
136
+ min-width: unset;
137
+ max-width: unset;
138
+ }
139
+
140
+ .cui-devBar-panel-body {
141
+ min-width: 20rem;
142
+ }
143
+ }
144
+
145
+ .cui-devBar-panel-body {
146
+ border-top: 1px solid #ccc;
147
+ display: flex;
148
+ flex-direction: column;
149
+ gap: 1rem;
150
+ padding: 1rem;
151
+ }
152
+
153
+ .cui-devBar:not([data-expanded]) {
154
+ transform: translateY(2rem);
155
+ opacity: 0;
156
+ max-width: 5rem;
157
+ margin: auto;
158
+ }
159
+
160
+
161
+ .cui-devBar:not([data-expanded]):hover,
162
+ .cui-devBar:not([data-expanded]):focus-within {
163
+ transform: unset;
164
+ opacity: unset;
165
+ }
166
+
167
+ [id^="dev-bar-panel"]:not([data-expanded]) > * {
168
+ display: none;
169
+ }
170
+
171
+ .cui-devBar-panel .cui-table-wrapper {
172
+ overflow: auto;
173
+ }
174
+
175
+
176
+ .cui-devError {
177
+ position: absolute;
178
+ top: 0;
179
+ right: 0;
180
+ bottom: 0;
181
+ left: 0;
182
+ width: 100vw;
183
+ height: 100vh;
184
+ z-index: 99;
185
+ display: flex;
186
+ justify-content: center;
187
+ align-items: flex-start;
188
+ background: rgba(212, 212, 212, 0.66);
189
+ font-family: Poppins, Roboto, sans-serif;
190
+ }
191
+
192
+ .cui-devError-in {
193
+ z-index: 100;
194
+ width: 100%;
195
+ height: 100%;
196
+ color: #333;
197
+ background: #222;
198
+ box-shadow: 3px 3px 10px rgba(50, 50, 50, 0.5);
199
+ display: flex;
200
+ flex-direction: column;
201
+ overflow: auto;
202
+ }
203
+
204
+ .cui-devError-header {
205
+ background: #CD1818;
206
+ color: #FFF;
207
+ padding: 0.5em 1em;
208
+ }
209
+
210
+ .cui-devError-errorMessage,
211
+ .cui-devError-errorName,
212
+ .cui-devError-errorDetails {
213
+ margin: 0;
214
+ flex: 0 0 auto;
215
+ font-weight: 300;
216
+ white-space: pre-wrap;
217
+ overflow-wrap: break-word;
218
+ line-height: 130%;
219
+ }
220
+
221
+ .cui-devError-errorMessage {
222
+ font-family: monospace;
223
+ margin-top: 0.5em;
224
+ font-size: 1.7em;
225
+ }
226
+
227
+ .cui-devError-errorDetails {
228
+ font-family: monospace;
229
+ margin-top: 0.5em;
230
+ font-size: 1em;
231
+ white-space: pre;
232
+ overflow-x: scroll;
233
+ }
234
+
235
+ .cui-devError-causeLink {
236
+ color: #FFCC00;
237
+ text-decoration: underline;
238
+ }
239
+
240
+ .cui-devError-stack {
241
+ flex: 1 1 auto;
242
+ }
243
+
244
+ .cui-devError-stack-dump {
245
+ color: #fff;
246
+ margin-top: 1em;
247
+ padding: 1em;
248
+ white-space: pre-wrap;
249
+ }
250
+
251
+ .cui-devError-bar {
252
+ padding: 0.2em 0.2em 0.2em 1em;
253
+ background: #ac1616;
254
+ color: #eee;
255
+ display: flex;
256
+ }
257
+
258
+ .cui-devError-causedBy {
259
+ padding: 0.2em 0.2em 0.2em 1em;
260
+ background: #FFCC00;
261
+ color: #000;
262
+ display: flex;
263
+ }
264
+
265
+ .cui-devError-actions {
266
+ margin-left: auto;
267
+ display: flex;
268
+ }
269
+
270
+ .cui-devError-actions .cui-button {
271
+ color: #fff;
272
+ border-color: #cbcbcb;
273
+ }
274
+
275
+ .cui-devError-actions .cui-button:hover {
276
+ color: #fff;
277
+ }
278
+
279
+ .cui-devError-close {
280
+ margin-left: 1em;
281
+ }
282
+
283
+ .cui-devError-close .cui-button {
284
+ border-color: transparent;
285
+ }
286
+
287
+ .cui-devError-switcher {
288
+ display: flex;
289
+ align-items: center;
290
+ margin-left: 2em;
291
+ }
292
+
293
+
294
+ .cui-devError-switcherButtons {
295
+ display: flex;
296
+ align-items: center;
297
+ gap: 0.5em;
298
+ }
299
+
300
+ .cui-devError-closeButton,
301
+ .cui-devError-switcherButton {
302
+ border: 1px solid #cbcbcb;
303
+ border-radius: 0.2em;
304
+ padding: 0.2em 0.5em;
305
+ }
306
+
307
+ .cui-devError-errorCount {
308
+ margin: 0;
309
+ margin-right: 0.5em;
310
+ }
311
+
312
+ .cui-devError-stackFrame {
313
+ font-family: monospace;
314
+ }
315
+
316
+ .cui-devError-stackFrame:last-child {
317
+ border-bottom: 1px solid #666;
318
+ }
319
+
320
+ .cui-devError-stackFrameHeader {
321
+ display: flex;
322
+ padding: 0.5em 1em;
323
+ background: #333;
324
+ color: #fff;
325
+ border-bottom: 1px solid #666;
326
+ border-top: 1px solid #666;
327
+ }
328
+
329
+ .cui-devError-stackFrameSource {
330
+ margin-left: 0.2em;
331
+ }
332
+
333
+ .cui-devError-stackFrameCallee {
334
+ margin-left: 1em;
335
+ color: #a4ffa4;
336
+ }
337
+
338
+ .cui-devError-stackFrameCode {
339
+ background: #222;
340
+ color: #D5D5D5;
341
+ }
342
+
343
+ .cui-devError-stackFrameLine {
344
+ display: flex;
345
+ }
346
+
347
+ .cui-devError-stackFrameLine.is-active {
348
+ color: #fff;
349
+ background: #CD1818;
350
+ }
351
+
352
+ .cui-devError-stackFrameLine.is-active .cui-devError-stackFrameLineNumber {
353
+ color: #fff;
354
+ }
355
+
356
+ .cui-devError-stackFrameLineNumber {
357
+ color: #888;
358
+ flex: 0 0 50px;
359
+ text-align: right;
360
+ padding: 0.2em;
361
+ }
362
+
363
+ .cui-devError-stackFrameLineCode {
364
+ padding: 0.2em 1em;
365
+ white-space: pre-wrap;
366
+ tab-size: 4;
367
+ }
368
+
369
+
370
+ :where(.cui-devErrorBadge) {
371
+ position: fixed;
372
+ bottom: 20px;
373
+ left: 20px;
374
+ }
375
+
376
+ :where(.cui-devErrorBadge-button) {
377
+ display: block;
378
+ background: #CD1818;
379
+ color: #fff;
380
+ font-weight: 600;
381
+ box-shadow: 3px 3px 7px rgba(50, 50, 50, 0.5);
382
+ border-radius: 10px;
383
+ padding: 1em 2em;
384
+ cursor: pointer;
385
+ }
package/src/tsconfig.json CHANGED
@@ -1,10 +1,13 @@
1
1
  {
2
2
  "extends": "../../../tsconfig.settings.json",
3
3
  "compilerOptions": {
4
- "outDir": "../dist/types"
4
+ "outDir": "../dist/types",
5
+ "types": [
6
+ "vite/client"
7
+ ]
5
8
  },
6
9
  "references": [
7
10
  { "path": "../../react-utils/src" },
8
- { "path": "../../utilities/src" },
11
+ { "path": "../../utilities/src" }
9
12
  ]
10
13
  }
@@ -1,5 +1,4 @@
1
1
  import {
2
- useClassNameFactory,
3
2
  useId,
4
3
  useOnElementClickOutsideCallback,
5
4
  useOnElementMouseEnterDelayedCallback,
@@ -9,15 +8,16 @@ import {
9
8
  import { dataAttribute } from '@contember/utilities'
10
9
  import { PropsWithChildren, ReactNode, useEffect, useRef, useState } from 'react'
11
10
 
11
+ const className = (cls: string | null) => cls ? `cui-devBar-${cls}` : 'cui-devBar'
12
+
12
13
  export const DevBar = ({
13
14
  breakpoint = 768,
14
15
  children,
15
16
  brand,
16
17
  }: PropsWithChildren<{
17
- brand?: ReactNode;
18
- breakpoint?: number;
18
+ brand?: ReactNode
19
+ breakpoint?: number
19
20
  }>) => {
20
- const className = useClassNameFactory('devBar')
21
21
  const [expanded, setExpanded] = useState(true)
22
22
  const isSmallScreen = useWindowSize().width < breakpoint
23
23
  const toggleButtonRef = useRef<HTMLButtonElement>(null)
@@ -117,13 +117,12 @@ export const DevBar = ({
117
117
  }
118
118
 
119
119
  export const DevPanel = ({ heading, icon, children, preview }: {
120
- icon: ReactNode;
121
- heading: ReactNode,
122
- children: ReactNode,
120
+ icon: ReactNode
121
+ heading: ReactNode
122
+ children: ReactNode
123
123
  preview?: ReactNode
124
124
  }) => {
125
125
  const id = `cui-devBar-panel-${useId()}`
126
- const className = useClassNameFactory('devBar')
127
126
  const [expanded, setExpanded] = useState(false)
128
127
  const mouseEnterTimeStampRef = useRef<ReturnType<typeof Date.now> | undefined>(undefined)
129
128
 
@@ -171,8 +170,8 @@ export const DevPanel = ({ heading, icon, children, preview }: {
171
170
  <span className={className('trigger-label-text')}>{preview ?? heading}</span>
172
171
  </button>
173
172
  {expanded && (
174
- <div tabIndex={0} id={id} role="dialog" className={className('panel', 'dangerously-remove-native-focus-outline')}>
175
- <div className={className('panel-content', 'native-focus-outline-handler')}>
173
+ <div tabIndex={0} id={id} role="dialog" className={className('panel')}>
174
+ <div className={className('panel-content')}>
176
175
  <h2 className="h4">
177
176
  {heading}
178
177
  </h2>
@@ -1,18 +1,18 @@
1
- import { useClassNameFactory } from '@contember/react-utils'
2
1
  import { DevErrorInner, DevErrorInnerProps } from './DevErrorInner'
3
2
 
4
3
  export interface DevErrorProps extends DevErrorInnerProps {
5
4
  source: string
6
5
  }
7
6
 
7
+ const className = (cls?: string | null) => cls ? `cui-devError-${cls}` : 'cui-devError'
8
+
8
9
  export function DevError(props: DevErrorProps) {
9
- const componentClassName = useClassNameFactory('devError')
10
10
 
11
11
  return (
12
- <div className={componentClassName()}>
13
- <div className={componentClassName('in')}>
14
- <div className={componentClassName('bar')}>
15
- <div className={componentClassName('errorSource')}>{props.source}</div>
12
+ <div className={className()}>
13
+ <div className={className('in')}>
14
+ <div className={className('bar')}>
15
+ <div className={className('errorSource')}>{props.source}</div>
16
16
  </div>
17
17
  <DevErrorInner error={props.error} />
18
18
  </div>
@@ -1,16 +1,15 @@
1
- import { useClassNameFactory } from '@contember/react-utils'
2
-
3
1
  export interface DevErrorBadgeProps {
4
2
  onOpen: () => void
5
3
  errorCount: number
6
4
  }
7
5
 
8
- export function DevErrorBadge({ errorCount, onOpen }: DevErrorBadgeProps) {
9
- const componentClassName = useClassNameFactory('devErrorBadge')
10
6
 
7
+ const className = (cls?: string | null) => cls ? `cui-devErrorBadge-${cls}` : 'cui-devErrorBadge'
8
+
9
+ export function DevErrorBadge({ errorCount, onOpen }: DevErrorBadgeProps) {
11
10
  return (
12
- <div className={componentClassName()}>
13
- <a className={componentClassName('button')} onClick={onOpen}>
11
+ <div className={className()}>
12
+ <a className={className('button')} onClick={onOpen}>
14
13
  {errorCount} {errorCount > 1 ? 'errors' : 'error'}
15
14
  </a>
16
15
  </div>
@@ -1,4 +1,3 @@
1
- import { useClassNameFactory } from '@contember/react-utils'
2
1
  import { StackTrace } from './StackTrace'
3
2
  import type { ProcessedError } from './types'
4
3
 
@@ -7,35 +6,37 @@ export interface DevErrorInnerProps {
7
6
  level?: number
8
7
  }
9
8
 
9
+
10
+ const className = (cls?: string | null) => cls ? `cui-devError-${cls}` : 'cui-devError'
11
+
10
12
  export function DevErrorInner({ error, level = 1 }: DevErrorInnerProps) {
11
- const componentClassName = useClassNameFactory('devError')
12
13
 
13
14
  let errorObject: Error | undefined = error.error instanceof Error ? error.error : undefined
14
15
 
15
16
  return (
16
17
  <>
17
- <div className={componentClassName('header')}>
18
+ <div className={className('header')}>
18
19
  {errorObject ? (
19
20
  <>
20
- <h1 className={componentClassName('errorName')}>{errorObject.name}</h1>
21
- {error.cause && <a href={`#error-${level}`} className={componentClassName('causeLink')}>caused by &gt;</a>}
22
- {errorObject.message && <h2 className={componentClassName('errorMessage')}>{errorObject.message}</h2>}
23
- {'details' in errorObject && <h3 className={componentClassName('errorDetails')}>{(errorObject as any).details}</h3>}
21
+ <h1 className={className('errorName')}>{errorObject.name}</h1>
22
+ {error.cause && <a href={`#error-${level}`} className={className('causeLink')}>caused by &gt;</a>}
23
+ {errorObject.message && <h2 className={className('errorMessage')}>{errorObject.message}</h2>}
24
+ {'details' in errorObject && <h3 className={className('errorDetails')}>{(errorObject as any).details}</h3>}
24
25
  </>
25
26
  ) : (
26
- <h1 className={componentClassName('errorName')}>Unknown error</h1>
27
+ <h1 className={className('errorName')}>Unknown error</h1>
27
28
  )}
28
29
  </div>
29
30
  {error.parsedStackStrace ? (
30
31
  <StackTrace stackTrace={error.parsedStackStrace} />
31
32
  ) : errorObject?.stack ? (
32
- <div className={componentClassName('stack')}>
33
- <div className={componentClassName('stack-dump')}>{errorObject.stack}</div>
33
+ <div className={className('stack')}>
34
+ <div className={className('stack-dump')}>{errorObject.stack}</div>
34
35
  </div>
35
36
  ) : null}
36
37
  {error.cause ? (
37
38
  <>
38
- <div className={componentClassName('causedBy')} id={`error-${level}`}>
39
+ <div className={className('causedBy')} id={`error-${level}`}>
39
40
  Caused by
40
41
  </div>
41
42
  <DevErrorInner error={error.cause} level={level + 1} />
@@ -1,4 +1,3 @@
1
- import { useClassNameFactory } from '@contember/react-utils'
2
1
  import { DevErrorInner } from './DevErrorInner'
3
2
  import { ProcessedError } from './types'
4
3
 
@@ -12,6 +11,7 @@ export interface DevErrorListProps {
12
11
  onClose: () => void
13
12
  }
14
13
 
14
+ const className = (cls?: string | null) => cls ? `cui-devError-${cls}` : 'cui-devError'
15
15
 
16
16
  export function DevErrorList({
17
17
  currentError,
@@ -22,31 +22,29 @@ export function DevErrorList({
22
22
  onNext,
23
23
  onPrevious,
24
24
  }: DevErrorListProps) {
25
- const componentClassName = useClassNameFactory('devError')
26
-
27
25
  return (
28
- <div className={componentClassName()}>
29
- <div className={componentClassName('in')}>
30
- <div className={componentClassName('bar')}>
31
- <div className={componentClassName('errorSource')}>{currentErrorSource}</div>
32
- <div className={componentClassName('actions')}>
26
+ <div className={className()}>
27
+ <div className={className('in')}>
28
+ <div className={className('bar')}>
29
+ <div className={className('errorSource')}>{currentErrorSource}</div>
30
+ <div className={className('actions')}>
33
31
  {errorCount > 1 ? (
34
- <div className={componentClassName('switcher')}>
35
- <p className={componentClassName('errorCount')}>
32
+ <div className={className('switcher')}>
33
+ <p className={className('errorCount')}>
36
34
  Error {currentErrorIndex + 1} of {errorCount}
37
35
  </p>
38
- <div className={componentClassName('switcherButtons')}>
39
- <button className={componentClassName('switcherButton')} onClick={onPrevious}>
36
+ <div className={className('switcherButtons')}>
37
+ <button className={className('switcherButton')} onClick={onPrevious}>
40
38
  ᐊ
41
39
  </button>
42
- <button className={componentClassName('switcherButton')} onClick={onNext}>
40
+ <button className={className('switcherButton')} onClick={onNext}>
43
41
  ᐅ
44
42
  </button>
45
43
  </div>
46
44
  </div>
47
45
  ) : null}
48
- <div className={componentClassName('close')}>
49
- <button className={componentClassName('closeButton')} onClick={onClose}>
46
+ <div className={className('close')}>
47
+ <button className={className('closeButton')} onClick={onClose}>
50
48
  🗙
51
49
  </button>
52
50
  </div>
@@ -1,11 +1,10 @@
1
- import { useClassNameFactory } from '@contember/react-utils'
2
1
  import { ParsedStackFrame, ParsedStackTrace } from './types'
3
2
 
4
- export const StackTrace = ({ stackTrace }: { stackTrace: ParsedStackTrace }) => {
5
- const componentClassName = useClassNameFactory('devError')
6
3
 
4
+ const className = (cls?: string | null) => cls ? `cui-devError-${cls}` : 'cui-devError'
5
+ export const StackTrace = ({ stackTrace }: { stackTrace: ParsedStackTrace }) => {
7
6
  return (
8
- <div className={componentClassName('stack')}>
7
+ <div className={className('stack')}>
9
8
  {stackTrace.map((it, index) => (
10
9
  <StackFrame stackFrame={it} key={index} />
11
10
  ))}
@@ -14,19 +13,18 @@ export const StackTrace = ({ stackTrace }: { stackTrace: ParsedStackTrace }) =>
14
13
  }
15
14
 
16
15
  const StackFrame = ({ stackFrame }: { stackFrame: ParsedStackFrame }) => {
17
- const componentClassName = useClassNameFactory('devError')
18
16
  const line = stackFrame.line
19
17
 
20
18
  return (
21
- <div className={componentClassName('stackFrame')}>
22
- <div className={componentClassName('stackFrameHeader')}>
23
- <div className={componentClassName('stackFrameSource')}>
19
+ <div className={className('stackFrame')}>
20
+ <div className={className('stackFrameHeader')}>
21
+ <div className={className('stackFrameSource')}>
24
22
  {stackFrame.filename}:{line}
25
23
  </div>
26
- {stackFrame.callee && <div className={componentClassName('stackFrameCallee')}>{stackFrame.callee}</div>}
24
+ {stackFrame.callee && <div className={className('stackFrameCallee')}>{stackFrame.callee}</div>}
27
25
  </div>
28
26
  {line !== undefined && stackFrame.sourceCodeLines && (
29
- <div className={componentClassName('stackFrameCode')}>
27
+ <div className={className('stackFrameCode')}>
30
28
  {stackFrame.sourceCodeLines.map((it, index) => {
31
29
  const lineNumber = index + 1
32
30
  if (lineNumber + 5 < line || lineNumber - 3 > line) {
@@ -34,11 +32,11 @@ const StackFrame = ({ stackFrame }: { stackFrame: ParsedStackFrame }) => {
34
32
  }
35
33
  return (
36
34
  <div
37
- className={componentClassName('stackFrameLine', lineNumber === line && 'is-active')}
35
+ className={`${className('stackFrameLine')} ${lineNumber === line && 'is-active'}`}
38
36
  key={lineNumber}
39
37
  >
40
- <div className={componentClassName('stackFrameLineNumber')}>{lineNumber}</div>
41
- <div className={componentClassName('stackFrameLineCode')}>{it}</div>
38
+ <div className={className('stackFrameLineNumber')}>{lineNumber}</div>
39
+ <div className={className('stackFrameLineCode')}>{it}</div>
42
40
  </div>
43
41
  )
44
42
  })}
package/tsconfig.json ADDED
@@ -0,0 +1,7 @@
1
+ {
2
+ "files": [],
3
+ "include": [],
4
+ "references": [
5
+ { "path": "./src" },
6
+ ],
7
+ }
package/tsdoc.json ADDED
@@ -0,0 +1,6 @@
1
+ {
2
+ "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
3
+ "extends": [
4
+ "../../tsdoc.json"
5
+ ]
6
+ }