@rozenite/network-activity-plugin 1.0.0-alpha.1 → 1.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 (134) hide show
  1. package/README.md +3 -5
  2. package/dist/{panel.html → App.html} +3 -3
  3. package/dist/assets/App-CA1Fbh0I.js +25364 -0
  4. package/dist/assets/App-DoHQsY5s.css +1276 -0
  5. package/dist/event-source.cjs +22 -0
  6. package/dist/event-source.js +23 -0
  7. package/dist/react-native.cjs +8 -1
  8. package/dist/react-native.d.ts +1 -5
  9. package/dist/react-native.js +6 -171
  10. package/dist/rozenite.config.d.ts +7 -0
  11. package/dist/rozenite.json +1 -1
  12. package/dist/src/react-native/http/network-inspector.d.ts +8 -0
  13. package/dist/src/react-native/http/network-requests-registry.d.ts +6 -0
  14. package/dist/src/react-native/http/xhr-interceptor.d.ts +38 -0
  15. package/dist/src/react-native/sse/event-source.d.ts +2 -0
  16. package/dist/src/react-native/sse/sse-inspector.d.ts +9 -0
  17. package/dist/src/react-native/sse/sse-interceptor.d.ts +36 -0
  18. package/dist/src/react-native/sse/types.d.ts +6 -0
  19. package/dist/src/react-native/useNetworkActivityDevTools.d.ts +2 -0
  20. package/dist/src/react-native/utils.d.ts +6 -0
  21. package/dist/src/react-native/websocket/websocket-inspector.d.ts +9 -0
  22. package/dist/src/react-native/websocket/websocket-interceptor.d.ts +74 -0
  23. package/dist/src/shared/client.d.ts +68 -0
  24. package/dist/src/shared/sse-events.d.ts +35 -0
  25. package/dist/src/shared/websocket-events.d.ts +60 -0
  26. package/dist/src/ui/App.d.ts +1 -0
  27. package/dist/src/ui/components/Badge.d.ts +9 -0
  28. package/dist/src/ui/components/Button.d.ts +11 -0
  29. package/dist/src/ui/components/Input.d.ts +3 -0
  30. package/dist/src/ui/components/JsonTree.d.ts +5 -0
  31. package/dist/src/ui/components/JsonTreeCopyableItem.d.ts +7 -0
  32. package/dist/src/ui/components/RequestList.d.ts +25 -0
  33. package/dist/src/ui/components/ScrollArea.d.ts +4 -0
  34. package/dist/src/ui/components/Separator.d.ts +3 -0
  35. package/dist/src/ui/components/SidePanel.d.ts +1 -0
  36. package/dist/src/ui/components/Toolbar.d.ts +1 -0
  37. package/dist/src/ui/hooks/useCopyToClipboard.d.ts +4 -0
  38. package/dist/src/ui/state/derived.d.ts +5 -0
  39. package/dist/src/ui/state/hooks.d.ts +17 -0
  40. package/dist/src/ui/state/model.d.ts +98 -0
  41. package/dist/src/ui/state/store.d.ts +24 -0
  42. package/dist/src/ui/tabs/CookiesTab.d.ts +5 -0
  43. package/dist/src/ui/tabs/HeadersTab.d.ts +5 -0
  44. package/dist/src/ui/tabs/MessagesTab.d.ts +5 -0
  45. package/dist/src/ui/tabs/RequestTab.d.ts +5 -0
  46. package/dist/src/ui/tabs/ResponseTab.d.ts +6 -0
  47. package/dist/src/ui/tabs/SSEMessagesTab.d.ts +5 -0
  48. package/dist/src/ui/tabs/TimingTab.d.ts +5 -0
  49. package/dist/src/ui/types.d.ts +26 -0
  50. package/dist/src/ui/utils/assert.d.ts +1 -0
  51. package/dist/src/ui/utils/cn.d.ts +2 -0
  52. package/dist/src/ui/utils/copyToClipboard.d.ts +1 -0
  53. package/dist/src/ui/utils/getHttpHeaderValue.d.ts +2 -0
  54. package/dist/src/ui/utils/getId.d.ts +1 -0
  55. package/dist/src/ui/utils/getStatusColor.d.ts +1 -0
  56. package/dist/src/ui/views/InspectorView.d.ts +5 -0
  57. package/dist/src/ui/views/LoadingView.d.ts +1 -0
  58. package/dist/useNetworkActivityDevTools.cjs +759 -0
  59. package/dist/useNetworkActivityDevTools.js +757 -0
  60. package/package.json +31 -10
  61. package/postcss.config.js +6 -0
  62. package/project.json +12 -0
  63. package/react-native.ts +2 -1
  64. package/rozenite.config.ts +2 -2
  65. package/src/css-modules.d.ts +1 -1
  66. package/src/react-native/http/network-inspector.ts +226 -0
  67. package/src/react-native/http/network-requests-registry.ts +52 -0
  68. package/src/react-native/http/xhr-interceptor.ts +211 -0
  69. package/src/react-native/http/xml-request.d.ts +34 -0
  70. package/src/react-native/sse/event-source.ts +25 -0
  71. package/src/react-native/sse/sse-inspector.ts +117 -0
  72. package/src/react-native/sse/sse-interceptor.ts +162 -0
  73. package/src/react-native/sse/types.ts +9 -0
  74. package/src/react-native/useNetworkActivityDevTools.ts +73 -210
  75. package/src/react-native/utils.ts +43 -0
  76. package/src/react-native/websocket/websocket-inspector.ts +180 -0
  77. package/src/react-native/websocket/websocket-interceptor.d.ts +4 -0
  78. package/src/react-native/websocket/websocket-interceptor.ts +166 -0
  79. package/src/shared/client.ts +86 -0
  80. package/src/shared/sse-events.ts +44 -0
  81. package/src/shared/websocket-events.ts +79 -0
  82. package/src/ui/App.tsx +19 -0
  83. package/src/ui/components/Badge.tsx +36 -0
  84. package/src/ui/components/Button.tsx +56 -0
  85. package/src/ui/components/Input.tsx +22 -0
  86. package/src/ui/components/JsonTree.tsx +50 -0
  87. package/src/ui/components/JsonTreeCopyableItem.tsx +33 -0
  88. package/src/ui/components/RequestList.tsx +295 -0
  89. package/src/ui/components/ScrollArea.tsx +48 -0
  90. package/src/ui/components/Separator.tsx +31 -0
  91. package/src/ui/components/SidePanel.tsx +323 -0
  92. package/src/ui/components/Tabs.tsx +55 -0
  93. package/src/ui/components/Toolbar.tsx +45 -0
  94. package/src/ui/globals.css +90 -0
  95. package/src/ui/hooks/useCopyToClipboard.ts +28 -0
  96. package/src/ui/state/derived.ts +112 -0
  97. package/src/ui/state/hooks.ts +44 -0
  98. package/src/ui/state/model.ts +129 -0
  99. package/src/ui/state/store.ts +559 -0
  100. package/src/ui/tabs/CookiesTab.tsx +279 -0
  101. package/src/ui/tabs/HeadersTab.tsx +110 -0
  102. package/src/ui/tabs/MessagesTab.tsx +276 -0
  103. package/src/ui/tabs/RequestTab.tsx +69 -0
  104. package/src/ui/tabs/ResponseTab.tsx +138 -0
  105. package/src/ui/tabs/SSEMessagesTab.tsx +213 -0
  106. package/src/ui/tabs/TimingTab.tsx +60 -0
  107. package/src/ui/types.ts +34 -0
  108. package/src/ui/utils/assert.ts +5 -0
  109. package/src/ui/utils/cn.ts +6 -0
  110. package/src/ui/utils/copyToClipboard.ts +3 -0
  111. package/src/ui/utils/getHttpHeaderValue.ts +14 -0
  112. package/src/ui/utils/getId.ts +10 -0
  113. package/src/ui/utils/getStatusColor.ts +15 -0
  114. package/src/ui/views/InspectorView.tsx +53 -0
  115. package/src/ui/views/LoadingView.tsx +19 -0
  116. package/tailwind.config.ts +96 -0
  117. package/tsconfig.json +13 -6
  118. package/tsconfig.tsbuildinfo +1 -0
  119. package/vite.config.ts +13 -1
  120. package/dist/assets/panel-C5YgUUj5.js +0 -54
  121. package/dist/assets/panel-NCVczPb1.css +0 -1
  122. package/src/types/network.ts +0 -153
  123. package/src/ui/components.module.css +0 -158
  124. package/src/ui/components.tsx +0 -219
  125. package/src/ui/network-details.module.css +0 -57
  126. package/src/ui/network-details.tsx +0 -134
  127. package/src/ui/network-list.module.css +0 -122
  128. package/src/ui/network-list.tsx +0 -145
  129. package/src/ui/network-toolbar.module.css +0 -9
  130. package/src/ui/network-toolbar.tsx +0 -40
  131. package/src/ui/panel.module.css +0 -61
  132. package/src/ui/panel.tsx +0 -201
  133. package/src/ui/tanstack-query.tsx +0 -197
  134. package/src/ui/utils.ts +0 -89
@@ -0,0 +1,1276 @@
1
+ *, ::before, ::after {
2
+ --tw-border-spacing-x: 0;
3
+ --tw-border-spacing-y: 0;
4
+ --tw-translate-x: 0;
5
+ --tw-translate-y: 0;
6
+ --tw-rotate: 0;
7
+ --tw-skew-x: 0;
8
+ --tw-skew-y: 0;
9
+ --tw-scale-x: 1;
10
+ --tw-scale-y: 1;
11
+ --tw-pan-x: ;
12
+ --tw-pan-y: ;
13
+ --tw-pinch-zoom: ;
14
+ --tw-scroll-snap-strictness: proximity;
15
+ --tw-gradient-from-position: ;
16
+ --tw-gradient-via-position: ;
17
+ --tw-gradient-to-position: ;
18
+ --tw-ordinal: ;
19
+ --tw-slashed-zero: ;
20
+ --tw-numeric-figure: ;
21
+ --tw-numeric-spacing: ;
22
+ --tw-numeric-fraction: ;
23
+ --tw-ring-inset: ;
24
+ --tw-ring-offset-width: 0px;
25
+ --tw-ring-offset-color: #fff;
26
+ --tw-ring-color: rgb(59 130 246 / 0.5);
27
+ --tw-ring-offset-shadow: 0 0 #0000;
28
+ --tw-ring-shadow: 0 0 #0000;
29
+ --tw-shadow: 0 0 #0000;
30
+ --tw-shadow-colored: 0 0 #0000;
31
+ --tw-blur: ;
32
+ --tw-brightness: ;
33
+ --tw-contrast: ;
34
+ --tw-grayscale: ;
35
+ --tw-hue-rotate: ;
36
+ --tw-invert: ;
37
+ --tw-saturate: ;
38
+ --tw-sepia: ;
39
+ --tw-drop-shadow: ;
40
+ --tw-backdrop-blur: ;
41
+ --tw-backdrop-brightness: ;
42
+ --tw-backdrop-contrast: ;
43
+ --tw-backdrop-grayscale: ;
44
+ --tw-backdrop-hue-rotate: ;
45
+ --tw-backdrop-invert: ;
46
+ --tw-backdrop-opacity: ;
47
+ --tw-backdrop-saturate: ;
48
+ --tw-backdrop-sepia: ;
49
+ --tw-contain-size: ;
50
+ --tw-contain-layout: ;
51
+ --tw-contain-paint: ;
52
+ --tw-contain-style: ;
53
+ }
54
+
55
+ ::backdrop {
56
+ --tw-border-spacing-x: 0;
57
+ --tw-border-spacing-y: 0;
58
+ --tw-translate-x: 0;
59
+ --tw-translate-y: 0;
60
+ --tw-rotate: 0;
61
+ --tw-skew-x: 0;
62
+ --tw-skew-y: 0;
63
+ --tw-scale-x: 1;
64
+ --tw-scale-y: 1;
65
+ --tw-pan-x: ;
66
+ --tw-pan-y: ;
67
+ --tw-pinch-zoom: ;
68
+ --tw-scroll-snap-strictness: proximity;
69
+ --tw-gradient-from-position: ;
70
+ --tw-gradient-via-position: ;
71
+ --tw-gradient-to-position: ;
72
+ --tw-ordinal: ;
73
+ --tw-slashed-zero: ;
74
+ --tw-numeric-figure: ;
75
+ --tw-numeric-spacing: ;
76
+ --tw-numeric-fraction: ;
77
+ --tw-ring-inset: ;
78
+ --tw-ring-offset-width: 0px;
79
+ --tw-ring-offset-color: #fff;
80
+ --tw-ring-color: rgb(59 130 246 / 0.5);
81
+ --tw-ring-offset-shadow: 0 0 #0000;
82
+ --tw-ring-shadow: 0 0 #0000;
83
+ --tw-shadow: 0 0 #0000;
84
+ --tw-shadow-colored: 0 0 #0000;
85
+ --tw-blur: ;
86
+ --tw-brightness: ;
87
+ --tw-contrast: ;
88
+ --tw-grayscale: ;
89
+ --tw-hue-rotate: ;
90
+ --tw-invert: ;
91
+ --tw-saturate: ;
92
+ --tw-sepia: ;
93
+ --tw-drop-shadow: ;
94
+ --tw-backdrop-blur: ;
95
+ --tw-backdrop-brightness: ;
96
+ --tw-backdrop-contrast: ;
97
+ --tw-backdrop-grayscale: ;
98
+ --tw-backdrop-hue-rotate: ;
99
+ --tw-backdrop-invert: ;
100
+ --tw-backdrop-opacity: ;
101
+ --tw-backdrop-saturate: ;
102
+ --tw-backdrop-sepia: ;
103
+ --tw-contain-size: ;
104
+ --tw-contain-layout: ;
105
+ --tw-contain-paint: ;
106
+ --tw-contain-style: ;
107
+ }/*
108
+ ! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com
109
+ *//*
110
+ 1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
111
+ 2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
112
+ */
113
+
114
+ *,
115
+ ::before,
116
+ ::after {
117
+ box-sizing: border-box; /* 1 */
118
+ border-width: 0; /* 2 */
119
+ border-style: solid; /* 2 */
120
+ border-color: #e5e7eb; /* 2 */
121
+ }
122
+
123
+ ::before,
124
+ ::after {
125
+ --tw-content: '';
126
+ }
127
+
128
+ /*
129
+ 1. Use a consistent sensible line-height in all browsers.
130
+ 2. Prevent adjustments of font size after orientation changes in iOS.
131
+ 3. Use a more readable tab size.
132
+ 4. Use the user's configured `sans` font-family by default.
133
+ 5. Use the user's configured `sans` font-feature-settings by default.
134
+ 6. Use the user's configured `sans` font-variation-settings by default.
135
+ 7. Disable tap highlights on iOS
136
+ */
137
+
138
+ html,
139
+ :host {
140
+ line-height: 1.5; /* 1 */
141
+ -webkit-text-size-adjust: 100%; /* 2 */
142
+ -moz-tab-size: 4; /* 3 */
143
+ -o-tab-size: 4;
144
+ tab-size: 4; /* 3 */
145
+ font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* 4 */
146
+ font-feature-settings: normal; /* 5 */
147
+ font-variation-settings: normal; /* 6 */
148
+ -webkit-tap-highlight-color: transparent; /* 7 */
149
+ }
150
+
151
+ /*
152
+ 1. Remove the margin in all browsers.
153
+ 2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
154
+ */
155
+
156
+ body {
157
+ margin: 0; /* 1 */
158
+ line-height: inherit; /* 2 */
159
+ }
160
+
161
+ /*
162
+ 1. Add the correct height in Firefox.
163
+ 2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
164
+ 3. Ensure horizontal rules are visible by default.
165
+ */
166
+
167
+ hr {
168
+ height: 0; /* 1 */
169
+ color: inherit; /* 2 */
170
+ border-top-width: 1px; /* 3 */
171
+ }
172
+
173
+ /*
174
+ Add the correct text decoration in Chrome, Edge, and Safari.
175
+ */
176
+
177
+ abbr:where([title]) {
178
+ -webkit-text-decoration: underline dotted;
179
+ text-decoration: underline dotted;
180
+ }
181
+
182
+ /*
183
+ Remove the default font size and weight for headings.
184
+ */
185
+
186
+ h1,
187
+ h2,
188
+ h3,
189
+ h4,
190
+ h5,
191
+ h6 {
192
+ font-size: inherit;
193
+ font-weight: inherit;
194
+ }
195
+
196
+ /*
197
+ Reset links to optimize for opt-in styling instead of opt-out.
198
+ */
199
+
200
+ a {
201
+ color: inherit;
202
+ text-decoration: inherit;
203
+ }
204
+
205
+ /*
206
+ Add the correct font weight in Edge and Safari.
207
+ */
208
+
209
+ b,
210
+ strong {
211
+ font-weight: bolder;
212
+ }
213
+
214
+ /*
215
+ 1. Use the user's configured `mono` font-family by default.
216
+ 2. Use the user's configured `mono` font-feature-settings by default.
217
+ 3. Use the user's configured `mono` font-variation-settings by default.
218
+ 4. Correct the odd `em` font sizing in all browsers.
219
+ */
220
+
221
+ code,
222
+ kbd,
223
+ samp,
224
+ pre {
225
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */
226
+ font-feature-settings: normal; /* 2 */
227
+ font-variation-settings: normal; /* 3 */
228
+ font-size: 1em; /* 4 */
229
+ }
230
+
231
+ /*
232
+ Add the correct font size in all browsers.
233
+ */
234
+
235
+ small {
236
+ font-size: 80%;
237
+ }
238
+
239
+ /*
240
+ Prevent `sub` and `sup` elements from affecting the line height in all browsers.
241
+ */
242
+
243
+ sub,
244
+ sup {
245
+ font-size: 75%;
246
+ line-height: 0;
247
+ position: relative;
248
+ vertical-align: baseline;
249
+ }
250
+
251
+ sub {
252
+ bottom: -0.25em;
253
+ }
254
+
255
+ sup {
256
+ top: -0.5em;
257
+ }
258
+
259
+ /*
260
+ 1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
261
+ 2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
262
+ 3. Remove gaps between table borders by default.
263
+ */
264
+
265
+ table {
266
+ text-indent: 0; /* 1 */
267
+ border-color: inherit; /* 2 */
268
+ border-collapse: collapse; /* 3 */
269
+ }
270
+
271
+ /*
272
+ 1. Change the font styles in all browsers.
273
+ 2. Remove the margin in Firefox and Safari.
274
+ 3. Remove default padding in all browsers.
275
+ */
276
+
277
+ button,
278
+ input,
279
+ optgroup,
280
+ select,
281
+ textarea {
282
+ font-family: inherit; /* 1 */
283
+ font-feature-settings: inherit; /* 1 */
284
+ font-variation-settings: inherit; /* 1 */
285
+ font-size: 100%; /* 1 */
286
+ font-weight: inherit; /* 1 */
287
+ line-height: inherit; /* 1 */
288
+ letter-spacing: inherit; /* 1 */
289
+ color: inherit; /* 1 */
290
+ margin: 0; /* 2 */
291
+ padding: 0; /* 3 */
292
+ }
293
+
294
+ /*
295
+ Remove the inheritance of text transform in Edge and Firefox.
296
+ */
297
+
298
+ button,
299
+ select {
300
+ text-transform: none;
301
+ }
302
+
303
+ /*
304
+ 1. Correct the inability to style clickable types in iOS and Safari.
305
+ 2. Remove default button styles.
306
+ */
307
+
308
+ button,
309
+ input:where([type='button']),
310
+ input:where([type='reset']),
311
+ input:where([type='submit']) {
312
+ -webkit-appearance: button; /* 1 */
313
+ background-color: transparent; /* 2 */
314
+ background-image: none; /* 2 */
315
+ }
316
+
317
+ /*
318
+ Use the modern Firefox focus style for all focusable elements.
319
+ */
320
+
321
+ :-moz-focusring {
322
+ outline: auto;
323
+ }
324
+
325
+ /*
326
+ Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
327
+ */
328
+
329
+ :-moz-ui-invalid {
330
+ box-shadow: none;
331
+ }
332
+
333
+ /*
334
+ Add the correct vertical alignment in Chrome and Firefox.
335
+ */
336
+
337
+ progress {
338
+ vertical-align: baseline;
339
+ }
340
+
341
+ /*
342
+ Correct the cursor style of increment and decrement buttons in Safari.
343
+ */
344
+
345
+ ::-webkit-inner-spin-button,
346
+ ::-webkit-outer-spin-button {
347
+ height: auto;
348
+ }
349
+
350
+ /*
351
+ 1. Correct the odd appearance in Chrome and Safari.
352
+ 2. Correct the outline style in Safari.
353
+ */
354
+
355
+ [type='search'] {
356
+ -webkit-appearance: textfield; /* 1 */
357
+ outline-offset: -2px; /* 2 */
358
+ }
359
+
360
+ /*
361
+ Remove the inner padding in Chrome and Safari on macOS.
362
+ */
363
+
364
+ ::-webkit-search-decoration {
365
+ -webkit-appearance: none;
366
+ }
367
+
368
+ /*
369
+ 1. Correct the inability to style clickable types in iOS and Safari.
370
+ 2. Change font properties to `inherit` in Safari.
371
+ */
372
+
373
+ ::-webkit-file-upload-button {
374
+ -webkit-appearance: button; /* 1 */
375
+ font: inherit; /* 2 */
376
+ }
377
+
378
+ /*
379
+ Add the correct display in Chrome and Safari.
380
+ */
381
+
382
+ summary {
383
+ display: list-item;
384
+ }
385
+
386
+ /*
387
+ Removes the default spacing and border for appropriate elements.
388
+ */
389
+
390
+ blockquote,
391
+ dl,
392
+ dd,
393
+ h1,
394
+ h2,
395
+ h3,
396
+ h4,
397
+ h5,
398
+ h6,
399
+ hr,
400
+ figure,
401
+ p,
402
+ pre {
403
+ margin: 0;
404
+ }
405
+
406
+ fieldset {
407
+ margin: 0;
408
+ padding: 0;
409
+ }
410
+
411
+ legend {
412
+ padding: 0;
413
+ }
414
+
415
+ ol,
416
+ ul,
417
+ menu {
418
+ list-style: none;
419
+ margin: 0;
420
+ padding: 0;
421
+ }
422
+
423
+ /*
424
+ Reset default styling for dialogs.
425
+ */
426
+ dialog {
427
+ padding: 0;
428
+ }
429
+
430
+ /*
431
+ Prevent resizing textareas horizontally by default.
432
+ */
433
+
434
+ textarea {
435
+ resize: vertical;
436
+ }
437
+
438
+ /*
439
+ 1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
440
+ 2. Set the default placeholder color to the user's configured gray 400 color.
441
+ */
442
+
443
+ input::-moz-placeholder, textarea::-moz-placeholder {
444
+ opacity: 1; /* 1 */
445
+ color: #9ca3af; /* 2 */
446
+ }
447
+
448
+ input::placeholder,
449
+ textarea::placeholder {
450
+ opacity: 1; /* 1 */
451
+ color: #9ca3af; /* 2 */
452
+ }
453
+
454
+ /*
455
+ Set the default cursor for buttons.
456
+ */
457
+
458
+ button,
459
+ [role="button"] {
460
+ cursor: pointer;
461
+ }
462
+
463
+ /*
464
+ Make sure disabled buttons don't get the pointer cursor.
465
+ */
466
+ :disabled {
467
+ cursor: default;
468
+ }
469
+
470
+ /*
471
+ 1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
472
+ 2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
473
+ This can trigger a poorly considered lint error in some tools but is included by design.
474
+ */
475
+
476
+ img,
477
+ svg,
478
+ video,
479
+ canvas,
480
+ audio,
481
+ iframe,
482
+ embed,
483
+ object {
484
+ display: block; /* 1 */
485
+ vertical-align: middle; /* 2 */
486
+ }
487
+
488
+ /*
489
+ Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
490
+ */
491
+
492
+ img,
493
+ video {
494
+ max-width: 100%;
495
+ height: auto;
496
+ }
497
+
498
+ /* Make elements with the HTML hidden attribute stay hidden by default */
499
+ [hidden]:where(:not([hidden="until-found"])) {
500
+ display: none;
501
+ }
502
+ :root {
503
+ --background: 0 0% 100%;
504
+ --foreground: 0 0% 3.9%;
505
+ --card: 0 0% 100%;
506
+ --card-foreground: 0 0% 3.9%;
507
+ --popover: 0 0% 100%;
508
+ --popover-foreground: 0 0% 3.9%;
509
+ --primary: 0 0% 9%;
510
+ --primary-foreground: 0 0% 98%;
511
+ --secondary: 0 0% 96.1%;
512
+ --secondary-foreground: 0 0% 9%;
513
+ --muted: 0 0% 96.1%;
514
+ --muted-foreground: 0 0% 45.1%;
515
+ --accent: 0 0% 96.1%;
516
+ --accent-foreground: 0 0% 9%;
517
+ --destructive: 0 84.2% 60.2%;
518
+ --destructive-foreground: 0 0% 98%;
519
+ --border: 0 0% 89.8%;
520
+ --input: 0 0% 89.8%;
521
+ --ring: 0 0% 3.9%;
522
+ --chart-1: 12 76% 61%;
523
+ --chart-2: 173 58% 39%;
524
+ --chart-3: 197 37% 24%;
525
+ --chart-4: 43 74% 66%;
526
+ --chart-5: 27 87% 67%;
527
+ --radius: 0.5rem;
528
+ --sidebar-background: 0 0% 98%;
529
+ --sidebar-foreground: 240 5.3% 26.1%;
530
+ --sidebar-primary: 240 5.9% 10%;
531
+ --sidebar-primary-foreground: 0 0% 98%;
532
+ --sidebar-accent: 240 4.8% 95.9%;
533
+ --sidebar-accent-foreground: 240 5.9% 10%;
534
+ --sidebar-border: 220 13% 91%;
535
+ --sidebar-ring: 217.2 91.2% 59.8%;
536
+ }
537
+ * {
538
+ border-color: hsl(var(--border));
539
+ }
540
+ body {
541
+ background-color: hsl(var(--background));
542
+ color: hsl(var(--foreground));
543
+ }
544
+ .relative {
545
+ position: relative;
546
+ }
547
+ .sticky {
548
+ position: sticky;
549
+ }
550
+ .top-0 {
551
+ top: 0px;
552
+ }
553
+ .z-10 {
554
+ z-index: 10;
555
+ }
556
+ .-m-2 {
557
+ margin: -0.5rem;
558
+ }
559
+ .m-0 {
560
+ margin: 0px;
561
+ }
562
+ .mb-2 {
563
+ margin-bottom: 0.5rem;
564
+ }
565
+ .mb-3 {
566
+ margin-bottom: 0.75rem;
567
+ }
568
+ .ml-0 {
569
+ margin-left: 0px;
570
+ }
571
+ .ml-2 {
572
+ margin-left: 0.5rem;
573
+ }
574
+ .mt-2 {
575
+ margin-top: 0.5rem;
576
+ }
577
+ .inline-block {
578
+ display: inline-block;
579
+ }
580
+ .flex {
581
+ display: flex;
582
+ }
583
+ .inline-flex {
584
+ display: inline-flex;
585
+ }
586
+ .table {
587
+ display: table;
588
+ }
589
+ .grid {
590
+ display: grid;
591
+ }
592
+ .h-10 {
593
+ height: 2.5rem;
594
+ }
595
+ .h-11 {
596
+ height: 2.75rem;
597
+ }
598
+ .h-12 {
599
+ height: 3rem;
600
+ }
601
+ .h-2\.5 {
602
+ height: 0.625rem;
603
+ }
604
+ .h-3 {
605
+ height: 0.75rem;
606
+ }
607
+ .h-4 {
608
+ height: 1rem;
609
+ }
610
+ .h-6 {
611
+ height: 1.5rem;
612
+ }
613
+ .h-8 {
614
+ height: 2rem;
615
+ }
616
+ .h-9 {
617
+ height: 2.25rem;
618
+ }
619
+ .h-\[1px\] {
620
+ height: 1px;
621
+ }
622
+ .h-full {
623
+ height: 100%;
624
+ }
625
+ .h-screen {
626
+ height: 100vh;
627
+ }
628
+ .max-h-96 {
629
+ max-height: 24rem;
630
+ }
631
+ .min-h-0 {
632
+ min-height: 0px;
633
+ }
634
+ .w-1\/2 {
635
+ width: 50%;
636
+ }
637
+ .w-10 {
638
+ width: 2.5rem;
639
+ }
640
+ .w-12 {
641
+ width: 3rem;
642
+ }
643
+ .w-2\.5 {
644
+ width: 0.625rem;
645
+ }
646
+ .w-3 {
647
+ width: 0.75rem;
648
+ }
649
+ .w-32 {
650
+ width: 8rem;
651
+ }
652
+ .w-4 {
653
+ width: 1rem;
654
+ }
655
+ .w-6 {
656
+ width: 1.5rem;
657
+ }
658
+ .w-8 {
659
+ width: 2rem;
660
+ }
661
+ .w-\[1px\] {
662
+ width: 1px;
663
+ }
664
+ .w-full {
665
+ width: 100%;
666
+ }
667
+ .min-w-0 {
668
+ min-width: 0px;
669
+ }
670
+ .max-w-xs {
671
+ max-width: 20rem;
672
+ }
673
+ .flex-1 {
674
+ flex: 1 1 0%;
675
+ }
676
+ .shrink-0 {
677
+ flex-shrink: 0;
678
+ }
679
+ .translate-y-0\.75 {
680
+ --tw-translate-y: 0.1875rem;
681
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
682
+ }
683
+ @keyframes spin {
684
+
685
+ to {
686
+ transform: rotate(360deg);
687
+ }
688
+ }
689
+ .animate-spin {
690
+ animation: spin 1s linear infinite;
691
+ }
692
+ .cursor-pointer {
693
+ cursor: pointer;
694
+ }
695
+ .touch-none {
696
+ touch-action: none;
697
+ }
698
+ .select-none {
699
+ -webkit-user-select: none;
700
+ -moz-user-select: none;
701
+ user-select: none;
702
+ }
703
+ .grid-cols-2 {
704
+ grid-template-columns: repeat(2, minmax(0, 1fr));
705
+ }
706
+ .grid-cols-5 {
707
+ grid-template-columns: repeat(5, minmax(0, 1fr));
708
+ }
709
+ .flex-col {
710
+ flex-direction: column;
711
+ }
712
+ .items-center {
713
+ align-items: center;
714
+ }
715
+ .justify-center {
716
+ justify-content: center;
717
+ }
718
+ .justify-between {
719
+ justify-content: space-between;
720
+ }
721
+ .gap-1 {
722
+ gap: 0.25rem;
723
+ }
724
+ .gap-2 {
725
+ gap: 0.5rem;
726
+ }
727
+ .gap-4 {
728
+ gap: 1rem;
729
+ }
730
+ .space-y-1 > :not([hidden]) ~ :not([hidden]) {
731
+ --tw-space-y-reverse: 0;
732
+ margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
733
+ margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));
734
+ }
735
+ .space-y-2 > :not([hidden]) ~ :not([hidden]) {
736
+ --tw-space-y-reverse: 0;
737
+ margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
738
+ margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
739
+ }
740
+ .space-y-3 > :not([hidden]) ~ :not([hidden]) {
741
+ --tw-space-y-reverse: 0;
742
+ margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));
743
+ margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));
744
+ }
745
+ .space-y-4 > :not([hidden]) ~ :not([hidden]) {
746
+ --tw-space-y-reverse: 0;
747
+ margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
748
+ margin-bottom: calc(1rem * var(--tw-space-y-reverse));
749
+ }
750
+ .space-y-6 > :not([hidden]) ~ :not([hidden]) {
751
+ --tw-space-y-reverse: 0;
752
+ margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));
753
+ margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));
754
+ }
755
+ .overflow-auto {
756
+ overflow: auto;
757
+ }
758
+ .overflow-hidden {
759
+ overflow: hidden;
760
+ }
761
+ .overflow-x-auto {
762
+ overflow-x: auto;
763
+ }
764
+ .overflow-y-auto {
765
+ overflow-y: auto;
766
+ }
767
+ .truncate {
768
+ overflow: hidden;
769
+ text-overflow: ellipsis;
770
+ white-space: nowrap;
771
+ }
772
+ .whitespace-nowrap {
773
+ white-space: nowrap;
774
+ }
775
+ .whitespace-pre-wrap {
776
+ white-space: pre-wrap;
777
+ }
778
+ .break-all {
779
+ word-break: break-all;
780
+ }
781
+ .rounded {
782
+ border-radius: 0.25rem;
783
+ }
784
+ .rounded-\[inherit\] {
785
+ border-radius: inherit;
786
+ }
787
+ .rounded-full {
788
+ border-radius: 9999px;
789
+ }
790
+ .rounded-md {
791
+ border-radius: calc(var(--radius) - 2px);
792
+ }
793
+ .rounded-none {
794
+ border-radius: 0px;
795
+ }
796
+ .rounded-sm {
797
+ border-radius: calc(var(--radius) - 4px);
798
+ }
799
+ .border {
800
+ border-width: 1px;
801
+ }
802
+ .border-b {
803
+ border-bottom-width: 1px;
804
+ }
805
+ .border-l {
806
+ border-left-width: 1px;
807
+ }
808
+ .border-r {
809
+ border-right-width: 1px;
810
+ }
811
+ .border-t {
812
+ border-top-width: 1px;
813
+ }
814
+ .border-current {
815
+ border-color: currentColor;
816
+ }
817
+ .border-gray-700 {
818
+ --tw-border-opacity: 1;
819
+ border-color: rgb(55 65 81 / var(--tw-border-opacity, 1));
820
+ }
821
+ .border-gray-800 {
822
+ --tw-border-opacity: 1;
823
+ border-color: rgb(31 41 55 / var(--tw-border-opacity, 1));
824
+ }
825
+ .border-input {
826
+ border-color: hsl(var(--input));
827
+ }
828
+ .border-purple-400 {
829
+ --tw-border-opacity: 1;
830
+ border-color: rgb(192 132 252 / var(--tw-border-opacity, 1));
831
+ }
832
+ .border-transparent {
833
+ border-color: transparent;
834
+ }
835
+ .border-yellow-400 {
836
+ --tw-border-opacity: 1;
837
+ border-color: rgb(250 204 21 / var(--tw-border-opacity, 1));
838
+ }
839
+ .border-l-transparent {
840
+ border-left-color: transparent;
841
+ }
842
+ .border-t-transparent {
843
+ border-top-color: transparent;
844
+ }
845
+ .bg-background {
846
+ background-color: hsl(var(--background));
847
+ }
848
+ .bg-blue-600 {
849
+ --tw-bg-opacity: 1;
850
+ background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1));
851
+ }
852
+ .bg-blue-900\/30 {
853
+ background-color: rgb(30 58 138 / 0.3);
854
+ }
855
+ .bg-border {
856
+ background-color: hsl(var(--border));
857
+ }
858
+ .bg-destructive {
859
+ background-color: hsl(var(--destructive));
860
+ }
861
+ .bg-gray-600 {
862
+ --tw-bg-opacity: 1;
863
+ background-color: rgb(75 85 99 / var(--tw-bg-opacity, 1));
864
+ }
865
+ .bg-gray-700 {
866
+ --tw-bg-opacity: 1;
867
+ background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));
868
+ }
869
+ .bg-gray-800 {
870
+ --tw-bg-opacity: 1;
871
+ background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));
872
+ }
873
+ .bg-gray-900 {
874
+ --tw-bg-opacity: 1;
875
+ background-color: rgb(17 24 39 / var(--tw-bg-opacity, 1));
876
+ }
877
+ .bg-green-600 {
878
+ --tw-bg-opacity: 1;
879
+ background-color: rgb(22 163 74 / var(--tw-bg-opacity, 1));
880
+ }
881
+ .bg-muted {
882
+ background-color: hsl(var(--muted));
883
+ }
884
+ .bg-orange-600 {
885
+ --tw-bg-opacity: 1;
886
+ background-color: rgb(234 88 12 / var(--tw-bg-opacity, 1));
887
+ }
888
+ .bg-pink-600 {
889
+ --tw-bg-opacity: 1;
890
+ background-color: rgb(219 39 119 / var(--tw-bg-opacity, 1));
891
+ }
892
+ .bg-primary {
893
+ background-color: hsl(var(--primary));
894
+ }
895
+ .bg-purple-600 {
896
+ --tw-bg-opacity: 1;
897
+ background-color: rgb(147 51 234 / var(--tw-bg-opacity, 1));
898
+ }
899
+ .bg-secondary {
900
+ background-color: hsl(var(--secondary));
901
+ }
902
+ .bg-yellow-600 {
903
+ --tw-bg-opacity: 1;
904
+ background-color: rgb(202 138 4 / var(--tw-bg-opacity, 1));
905
+ }
906
+ .fill-current {
907
+ fill: currentColor;
908
+ }
909
+ .p-0 {
910
+ padding: 0px;
911
+ }
912
+ .p-1 {
913
+ padding: 0.25rem;
914
+ }
915
+ .p-2 {
916
+ padding: 0.5rem;
917
+ }
918
+ .p-3 {
919
+ padding: 0.75rem;
920
+ }
921
+ .p-4 {
922
+ padding: 1rem;
923
+ }
924
+ .p-\[1px\] {
925
+ padding: 1px;
926
+ }
927
+ .px-2 {
928
+ padding-left: 0.5rem;
929
+ padding-right: 0.5rem;
930
+ }
931
+ .px-2\.5 {
932
+ padding-left: 0.625rem;
933
+ padding-right: 0.625rem;
934
+ }
935
+ .px-3 {
936
+ padding-left: 0.75rem;
937
+ padding-right: 0.75rem;
938
+ }
939
+ .px-4 {
940
+ padding-left: 1rem;
941
+ padding-right: 1rem;
942
+ }
943
+ .px-8 {
944
+ padding-left: 2rem;
945
+ padding-right: 2rem;
946
+ }
947
+ .py-0\.5 {
948
+ padding-top: 0.125rem;
949
+ padding-bottom: 0.125rem;
950
+ }
951
+ .py-1 {
952
+ padding-top: 0.25rem;
953
+ padding-bottom: 0.25rem;
954
+ }
955
+ .py-1\.5 {
956
+ padding-top: 0.375rem;
957
+ padding-bottom: 0.375rem;
958
+ }
959
+ .py-2 {
960
+ padding-top: 0.5rem;
961
+ padding-bottom: 0.5rem;
962
+ }
963
+ .pt-4 {
964
+ padding-top: 1rem;
965
+ }
966
+ .text-left {
967
+ text-align: left;
968
+ }
969
+ .text-center {
970
+ text-align: center;
971
+ }
972
+ .font-mono {
973
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
974
+ }
975
+ .text-base {
976
+ font-size: 1rem;
977
+ line-height: 1.5rem;
978
+ }
979
+ .text-sm {
980
+ font-size: 0.875rem;
981
+ line-height: 1.25rem;
982
+ }
983
+ .text-xl {
984
+ font-size: 1.25rem;
985
+ line-height: 1.75rem;
986
+ }
987
+ .text-xs {
988
+ font-size: 0.75rem;
989
+ line-height: 1rem;
990
+ }
991
+ .font-medium {
992
+ font-weight: 500;
993
+ }
994
+ .font-semibold {
995
+ font-weight: 600;
996
+ }
997
+ .capitalize {
998
+ text-transform: capitalize;
999
+ }
1000
+ .italic {
1001
+ font-style: italic;
1002
+ }
1003
+ .text-blue-400 {
1004
+ --tw-text-opacity: 1;
1005
+ color: rgb(96 165 250 / var(--tw-text-opacity, 1));
1006
+ }
1007
+ .text-blue-500 {
1008
+ --tw-text-opacity: 1;
1009
+ color: rgb(59 130 246 / var(--tw-text-opacity, 1));
1010
+ }
1011
+ .text-cyan-500 {
1012
+ --tw-text-opacity: 1;
1013
+ color: rgb(6 182 212 / var(--tw-text-opacity, 1));
1014
+ }
1015
+ .text-destructive-foreground {
1016
+ color: hsl(var(--destructive-foreground));
1017
+ }
1018
+ .text-foreground {
1019
+ color: hsl(var(--foreground));
1020
+ }
1021
+ .text-gray-100 {
1022
+ --tw-text-opacity: 1;
1023
+ color: rgb(243 244 246 / var(--tw-text-opacity, 1));
1024
+ }
1025
+ .text-gray-200 {
1026
+ --tw-text-opacity: 1;
1027
+ color: rgb(229 231 235 / var(--tw-text-opacity, 1));
1028
+ }
1029
+ .text-gray-300 {
1030
+ --tw-text-opacity: 1;
1031
+ color: rgb(209 213 219 / var(--tw-text-opacity, 1));
1032
+ }
1033
+ .text-gray-400 {
1034
+ --tw-text-opacity: 1;
1035
+ color: rgb(156 163 175 / var(--tw-text-opacity, 1));
1036
+ }
1037
+ .text-gray-500 {
1038
+ --tw-text-opacity: 1;
1039
+ color: rgb(107 114 128 / var(--tw-text-opacity, 1));
1040
+ }
1041
+ .text-green-400 {
1042
+ --tw-text-opacity: 1;
1043
+ color: rgb(74 222 128 / var(--tw-text-opacity, 1));
1044
+ }
1045
+ .text-green-500 {
1046
+ --tw-text-opacity: 1;
1047
+ color: rgb(34 197 94 / var(--tw-text-opacity, 1));
1048
+ }
1049
+ .text-muted-foreground {
1050
+ color: hsl(var(--muted-foreground));
1051
+ }
1052
+ .text-orange-500 {
1053
+ --tw-text-opacity: 1;
1054
+ color: rgb(249 115 22 / var(--tw-text-opacity, 1));
1055
+ }
1056
+ .text-pink-500 {
1057
+ --tw-text-opacity: 1;
1058
+ color: rgb(236 72 153 / var(--tw-text-opacity, 1));
1059
+ }
1060
+ .text-primary {
1061
+ color: hsl(var(--primary));
1062
+ }
1063
+ .text-primary-foreground {
1064
+ color: hsl(var(--primary-foreground));
1065
+ }
1066
+ .text-purple-400 {
1067
+ --tw-text-opacity: 1;
1068
+ color: rgb(192 132 252 / var(--tw-text-opacity, 1));
1069
+ }
1070
+ .text-purple-500 {
1071
+ --tw-text-opacity: 1;
1072
+ color: rgb(168 85 247 / var(--tw-text-opacity, 1));
1073
+ }
1074
+ .text-red-400 {
1075
+ --tw-text-opacity: 1;
1076
+ color: rgb(248 113 113 / var(--tw-text-opacity, 1));
1077
+ }
1078
+ .text-red-500 {
1079
+ --tw-text-opacity: 1;
1080
+ color: rgb(239 68 68 / var(--tw-text-opacity, 1));
1081
+ }
1082
+ .text-secondary-foreground {
1083
+ color: hsl(var(--secondary-foreground));
1084
+ }
1085
+ .text-yellow-400 {
1086
+ --tw-text-opacity: 1;
1087
+ color: rgb(250 204 21 / var(--tw-text-opacity, 1));
1088
+ }
1089
+ .text-yellow-500 {
1090
+ --tw-text-opacity: 1;
1091
+ color: rgb(234 179 8 / var(--tw-text-opacity, 1));
1092
+ }
1093
+ .underline-offset-4 {
1094
+ text-underline-offset: 4px;
1095
+ }
1096
+ .opacity-0 {
1097
+ opacity: 0;
1098
+ }
1099
+ .outline {
1100
+ outline-style: solid;
1101
+ }
1102
+ .ring-offset-background {
1103
+ --tw-ring-offset-color: hsl(var(--background));
1104
+ }
1105
+ .filter {
1106
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
1107
+ }
1108
+ .transition-all {
1109
+ transition-property: all;
1110
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1111
+ transition-duration: 150ms;
1112
+ }
1113
+ .transition-colors {
1114
+ transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
1115
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1116
+ transition-duration: 150ms;
1117
+ }
1118
+ @keyframes enter {
1119
+
1120
+ from {
1121
+ opacity: var(--tw-enter-opacity, 1);
1122
+ transform: translate3d(var(--tw-enter-translate-x, 0), var(--tw-enter-translate-y, 0), 0) scale3d(var(--tw-enter-scale, 1), var(--tw-enter-scale, 1), var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0));
1123
+ }
1124
+ }
1125
+ @keyframes exit {
1126
+
1127
+ to {
1128
+ opacity: var(--tw-exit-opacity, 1);
1129
+ transform: translate3d(var(--tw-exit-translate-x, 0), var(--tw-exit-translate-y, 0), 0) scale3d(var(--tw-exit-scale, 1), var(--tw-exit-scale, 1), var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0));
1130
+ }
1131
+ }
1132
+ .file\:border-0::file-selector-button {
1133
+ border-width: 0px;
1134
+ }
1135
+ .file\:bg-transparent::file-selector-button {
1136
+ background-color: transparent;
1137
+ }
1138
+ .file\:text-sm::file-selector-button {
1139
+ font-size: 0.875rem;
1140
+ line-height: 1.25rem;
1141
+ }
1142
+ .file\:font-medium::file-selector-button {
1143
+ font-weight: 500;
1144
+ }
1145
+ .file\:text-foreground::file-selector-button {
1146
+ color: hsl(var(--foreground));
1147
+ }
1148
+ .placeholder\:text-muted-foreground::-moz-placeholder {
1149
+ color: hsl(var(--muted-foreground));
1150
+ }
1151
+ .placeholder\:text-muted-foreground::placeholder {
1152
+ color: hsl(var(--muted-foreground));
1153
+ }
1154
+ .hover\:bg-accent:hover {
1155
+ background-color: hsl(var(--accent));
1156
+ }
1157
+ .hover\:bg-destructive\/80:hover {
1158
+ background-color: hsl(var(--destructive) / 0.8);
1159
+ }
1160
+ .hover\:bg-destructive\/90:hover {
1161
+ background-color: hsl(var(--destructive) / 0.9);
1162
+ }
1163
+ .hover\:bg-gray-700:hover {
1164
+ --tw-bg-opacity: 1;
1165
+ background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));
1166
+ }
1167
+ .hover\:bg-gray-800:hover {
1168
+ --tw-bg-opacity: 1;
1169
+ background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));
1170
+ }
1171
+ .hover\:bg-primary\/80:hover {
1172
+ background-color: hsl(var(--primary) / 0.8);
1173
+ }
1174
+ .hover\:bg-primary\/90:hover {
1175
+ background-color: hsl(var(--primary) / 0.9);
1176
+ }
1177
+ .hover\:bg-secondary\/80:hover {
1178
+ background-color: hsl(var(--secondary) / 0.8);
1179
+ }
1180
+ .hover\:text-accent-foreground:hover {
1181
+ color: hsl(var(--accent-foreground));
1182
+ }
1183
+ .hover\:text-blue-400:hover {
1184
+ --tw-text-opacity: 1;
1185
+ color: rgb(96 165 250 / var(--tw-text-opacity, 1));
1186
+ }
1187
+ .hover\:text-gray-100:hover {
1188
+ --tw-text-opacity: 1;
1189
+ color: rgb(243 244 246 / var(--tw-text-opacity, 1));
1190
+ }
1191
+ .hover\:text-gray-300:hover {
1192
+ --tw-text-opacity: 1;
1193
+ color: rgb(209 213 219 / var(--tw-text-opacity, 1));
1194
+ }
1195
+ .hover\:text-red-300:hover {
1196
+ --tw-text-opacity: 1;
1197
+ color: rgb(252 165 165 / var(--tw-text-opacity, 1));
1198
+ }
1199
+ .hover\:underline:hover {
1200
+ text-decoration-line: underline;
1201
+ }
1202
+ .focus\:outline-none:focus {
1203
+ outline: 2px solid transparent;
1204
+ outline-offset: 2px;
1205
+ }
1206
+ .focus\:ring-2:focus {
1207
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
1208
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
1209
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
1210
+ }
1211
+ .focus\:ring-ring:focus {
1212
+ --tw-ring-color: hsl(var(--ring));
1213
+ }
1214
+ .focus\:ring-offset-2:focus {
1215
+ --tw-ring-offset-width: 2px;
1216
+ }
1217
+ .focus-visible\:outline-none:focus-visible {
1218
+ outline: 2px solid transparent;
1219
+ outline-offset: 2px;
1220
+ }
1221
+ .focus-visible\:ring-2:focus-visible {
1222
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
1223
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
1224
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
1225
+ }
1226
+ .focus-visible\:ring-ring:focus-visible {
1227
+ --tw-ring-color: hsl(var(--ring));
1228
+ }
1229
+ .focus-visible\:ring-offset-2:focus-visible {
1230
+ --tw-ring-offset-width: 2px;
1231
+ }
1232
+ .disabled\:pointer-events-none:disabled {
1233
+ pointer-events: none;
1234
+ }
1235
+ .disabled\:cursor-not-allowed:disabled {
1236
+ cursor: not-allowed;
1237
+ }
1238
+ .disabled\:opacity-50:disabled {
1239
+ opacity: 0.5;
1240
+ }
1241
+ .group:hover .group-hover\:opacity-100 {
1242
+ opacity: 1;
1243
+ }
1244
+ .data-\[state\=active\]\:bg-background[data-state="active"] {
1245
+ background-color: hsl(var(--background));
1246
+ }
1247
+ .data-\[state\=active\]\:bg-gray-700[data-state="active"] {
1248
+ --tw-bg-opacity: 1;
1249
+ background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));
1250
+ }
1251
+ .data-\[state\=active\]\:text-gray-100[data-state="active"] {
1252
+ --tw-text-opacity: 1;
1253
+ color: rgb(243 244 246 / var(--tw-text-opacity, 1));
1254
+ }
1255
+ .data-\[state\=active\]\:shadow-sm[data-state="active"] {
1256
+ --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
1257
+ --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
1258
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
1259
+ }
1260
+ @media (min-width: 768px) {
1261
+
1262
+ .md\:text-sm {
1263
+ font-size: 0.875rem;
1264
+ line-height: 1.25rem;
1265
+ }
1266
+ }
1267
+ .\[\&_svg\]\:pointer-events-none svg {
1268
+ pointer-events: none;
1269
+ }
1270
+ .\[\&_svg\]\:size-4 svg {
1271
+ width: 1rem;
1272
+ height: 1rem;
1273
+ }
1274
+ .\[\&_svg\]\:shrink-0 svg {
1275
+ flex-shrink: 0;
1276
+ }