@rozenite/network-activity-plugin 1.8.1 → 1.10.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.
- package/CHANGELOG.md +56 -0
- package/dist/devtools/App.html +2 -2
- package/dist/devtools/assets/{App-m6xge0az.css → App-CUXU0mup.css} +152 -2
- package/dist/devtools/assets/{App-B3xlUjs6.js → App-DsimzJvx.js} +6833 -966
- package/dist/react-native/chunks/boot-recording.cjs +156 -28
- package/dist/react-native/chunks/boot-recording.js +156 -28
- package/dist/react-native/chunks/get-nitro-module.cjs +12 -0
- package/dist/react-native/chunks/get-nitro-module.js +13 -0
- package/dist/react-native/chunks/useNetworkActivityDevTools.require.cjs +20 -1
- package/dist/react-native/chunks/useNetworkActivityDevTools.require.js +20 -1
- package/dist/react-native/index.d.ts +39 -3
- package/dist/rozenite.json +1 -1
- package/dist/sdk/index.d.ts +37 -1
- package/package.json +12 -7
- package/src/react-native/agent/use-network-activity-agent-tools.ts +22 -4
- package/src/react-native/http/__tests__/http-utils.test.ts +228 -0
- package/src/react-native/http/http-utils.ts +209 -25
- package/src/react-native/network-inspector.ts +2 -2
- package/src/react-native/nitro-fetch/get-nitro-module.ts +13 -0
- package/src/react-native/nitro-fetch/nitro-network-inspector.ts +10 -11
- package/src/shared/http-events.ts +40 -1
- package/src/ui/components/CodeBlock.tsx +45 -1
- package/src/ui/components/FilterBar.tsx +366 -58
- package/src/ui/components/HexView.tsx +54 -0
- package/src/ui/components/MetadataCard.tsx +95 -0
- package/src/ui/components/RequestList.tsx +192 -34
- package/src/ui/components/SidePanel.tsx +42 -1
- package/src/ui/components/ViewToggle.tsx +44 -0
- package/src/ui/components/XmlTree.tsx +160 -0
- package/src/ui/components/__tests__/CodeBlock.test.tsx +89 -0
- package/src/ui/components/__tests__/HexView.test.tsx +41 -0
- package/src/ui/components/__tests__/MetadataCard.test.tsx +107 -0
- package/src/ui/components/__tests__/ViewToggle.test.tsx +80 -0
- package/src/ui/components/__tests__/XmlTree.test.tsx +149 -0
- package/src/ui/response-renderers/__tests__/binary-too-large.test.tsx +56 -0
- package/src/ui/response-renderers/__tests__/binary.test.tsx +96 -0
- package/src/ui/response-renderers/__tests__/dispatch.test.ts +124 -0
- package/src/ui/response-renderers/__tests__/html.test.tsx +101 -0
- package/src/ui/response-renderers/__tests__/image.test.tsx +73 -0
- package/src/ui/response-renderers/__tests__/json.test.tsx +95 -0
- package/src/ui/response-renderers/__tests__/svg.test.tsx +46 -0
- package/src/ui/response-renderers/__tests__/xml.test.tsx +100 -0
- package/src/ui/response-renderers/binary-too-large.tsx +36 -0
- package/src/ui/response-renderers/binary.tsx +31 -0
- package/src/ui/response-renderers/empty.tsx +14 -0
- package/src/ui/response-renderers/html.tsx +36 -0
- package/src/ui/response-renderers/image.tsx +37 -0
- package/src/ui/response-renderers/index.ts +55 -0
- package/src/ui/response-renderers/json.tsx +40 -0
- package/src/ui/response-renderers/svg.tsx +27 -0
- package/src/ui/response-renderers/text-fallback.tsx +14 -0
- package/src/ui/response-renderers/types.ts +38 -0
- package/src/ui/response-renderers/unknown.tsx +18 -0
- package/src/ui/response-renderers/xml.tsx +46 -0
- package/src/ui/state/derived.ts +12 -0
- package/src/ui/state/model.ts +6 -1
- package/src/ui/state/store.ts +39 -2
- package/src/ui/tabs/InitiatorTab.tsx +230 -0
- package/src/ui/tabs/ResponseTab.tsx +80 -96
- package/src/ui/tabs/__tests__/ResponseTab.test.tsx +102 -0
- package/src/ui/utils/__tests__/download.test.ts +115 -0
- package/src/ui/utils/__tests__/hex.test.ts +84 -0
- package/src/ui/utils/__tests__/symbolication.test.ts +207 -0
- package/src/ui/utils/download.ts +154 -0
- package/src/ui/utils/hex.ts +59 -0
- package/src/ui/utils/initiator.ts +136 -0
- package/src/ui/utils/symbolication.ts +248 -0
- package/src/ui/views/InspectorView.tsx +8 -5
- package/src/utils/__tests__/getContentTypeMimeType.test.ts +65 -0
- package/src/utils/getContentTypeMimeType.ts +28 -0
- package/vite.config.ts +9 -1
- package/vitest.setup.ts +31 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,61 @@
|
|
|
1
1
|
# @rozenite/network-activity-plugin
|
|
2
2
|
|
|
3
|
+
## 1.10.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#271](https://github.com/callstackincubator/rozenite/pull/271) [`3a77ccf`](https://github.com/callstackincubator/rozenite/commit/3a77ccfce710a45c674c7cd05ca9a7f6aa422f4f) Thanks [@burczu](https://github.com/burczu)! - Image responses now render inline in the Network Activity panel. PNG, JPEG, GIF, WebP, and SVG show up as previews under a new Preview/Raw sub-tab. The Raw tab shows Content-Type and decoded size; for SVG, the Raw tab shows the source XML. Image responses above an in-capture 5 MB cap show a "Response too large for preview" message instead of crossing the bridge.
|
|
8
|
+
|
|
9
|
+
Adds a Preview/Raw axis that subsequent response-viewer improvements (rendered HTML, formatted XML, JSON Raw, ...) will extend. The toggle is adaptive — hidden for formats with only one meaningful view. The user's last toggle choice sticks across responses within a panel session.
|
|
10
|
+
|
|
11
|
+
The `response-body` bridge event's wire shape is extended additively to a discriminated union (`string | { kind: 'binary'; base64 } | { kind: 'binary-too-large'; size } | null`). Existing consumers that only handle the string variant continue to work unchanged.
|
|
12
|
+
|
|
13
|
+
- [#266](https://github.com/callstackincubator/rozenite/pull/266) [`3adbe11`](https://github.com/callstackincubator/rozenite/commit/3adbe117d38b00455b864a60bdc86b3cd151cbab) Thanks [@draggie](https://github.com/draggie)! - Add advanced request filters to Network Activity.
|
|
14
|
+
|
|
15
|
+
- [#263](https://github.com/callstackincubator/rozenite/pull/263) [`340b779`](https://github.com/callstackincubator/rozenite/commit/340b779c43b43702959dd9a29ed77041b73b970c) Thanks [@draggie](https://github.com/draggie)! - Show source-mapped request initiator details in Network Activity.
|
|
16
|
+
|
|
17
|
+
- [#274](https://github.com/callstackincubator/rozenite/pull/274) [`032ff3e`](https://github.com/callstackincubator/rozenite/commit/032ff3eb9795c7cb0c747d52b73d341a2871185e) Thanks [@burczu](https://github.com/burczu)! - Non-image binary responses now render with a metadata card + virtualized hex viewer, replacing the "Binary content not shown" placeholder. PDFs, fonts, audio, video, archives, and `application/octet-stream` payloads show their bytes in the classic offset / hex / ASCII layout, with a Download button on the metadata card that saves the file using a sensibly-derived name (`Content-Disposition` filename → URL last segment → `response.<ext>` from a small content-type map).
|
|
18
|
+
|
|
19
|
+
Image responses get the same upgrade in their Raw tab — was metadata-only, now metadata + hex view + Download.
|
|
20
|
+
|
|
21
|
+
The `getResponseBody` capture widens to cover everything that isn't text: arraybuffer responses and non-text non-image blobs now arrive at the panel as base64-encoded binary via the existing wire union, with chunked encoding so large payloads don't blow up `String.fromCharCode`. The 5 MB cap continues to apply uniformly; oversized responses surface as "Response too large for preview" with the Download button disabled.
|
|
22
|
+
|
|
23
|
+
Post-this-release invariant: `body === null` on the wire means only "the plugin could not read the body at all" — every other shape arrives as a typed variant of the discriminated union.
|
|
24
|
+
|
|
25
|
+
- [#279](https://github.com/callstackincubator/rozenite/pull/279) [`571d273`](https://github.com/callstackincubator/rozenite/commit/571d2730a570016c60b018f7523945aaee03e15a) Thanks [@burczu](https://github.com/burczu)! - Virtualize large code blocks in the Network Activity panel.
|
|
26
|
+
|
|
27
|
+
Text response bodies above 50,000 characters now render inside a virtualized 500 px scrollable window instead of an unbounded `<pre>` element. Smaller bodies and tree views (JSON, XML) are unaffected. This keeps the panel snappy on multi-megabyte responses (pretty-printed JSON, minified bundles served as text, large logs) without truncating any content.
|
|
28
|
+
|
|
29
|
+
- [#275](https://github.com/callstackincubator/rozenite/pull/275) [`c18dc0f`](https://github.com/callstackincubator/rozenite/commit/c18dc0fb335f4fc472b8392f5e6af72e658edde6) Thanks [@burczu](https://github.com/burczu)! - Render HTML responses in the Network Activity panel via a sandboxed iframe. The Preview tab shows the page with `sandbox=""` (scripts blocked) and a Content-Security-Policy that disallows external subresources (no outbound requests to images, stylesheets, or fonts referenced by the captured HTML). The Raw tab shows the HTML source.
|
|
30
|
+
|
|
31
|
+
- [#277](https://github.com/callstackincubator/rozenite/pull/277) [`e82fa22`](https://github.com/callstackincubator/rozenite/commit/e82fa2201d6e68c0e300a08c2bc49b640aa6fd69) Thanks [@burczu](https://github.com/burczu)! - Render XML responses in the Network Activity panel and add a Raw view to JSON responses.
|
|
32
|
+
|
|
33
|
+
XML responses (`application/xml`, `text/xml`, and RFC 7303 composite types like `application/atom+xml`, `application/rss+xml`, `application/soap+xml`, `application/xhtml+xml`, ...) now render as a collapsible tree with copy affordances on elements, text, and CDATA values in the Preview tab; the Raw tab shows the XML source verbatim. Malformed XML falls back to source with a warning. The capture path was also extended so `application/xml` and `+xml` composite bodies actually reach the panel — previously they were dropped on the wire.
|
|
34
|
+
|
|
35
|
+
JSON responses gain a Preview/Raw toggle: Preview keeps the existing tree, Raw shows the body pretty-printed with 2-space indent regardless of how the wire response was formatted, so minified JSON is readable without leaving the panel.
|
|
36
|
+
|
|
37
|
+
### Patch Changes
|
|
38
|
+
|
|
39
|
+
- [#273](https://github.com/callstackincubator/rozenite/pull/273) [`60a157e`](https://github.com/callstackincubator/rozenite/commit/60a157e4eb3a2b894bafa50decc1e04eb8b19374) Thanks [@V3RON](https://github.com/V3RON)! - Resolve the optional `react-native-nitro-fetch` dependency before React Native finishes initializing so Metro 0.82 does not show an error overlay when the package is not installed.
|
|
40
|
+
|
|
41
|
+
- Updated dependencies []:
|
|
42
|
+
- @rozenite/agent-bridge@1.10.0
|
|
43
|
+
- @rozenite/agent-shared@1.10.0
|
|
44
|
+
- @rozenite/plugin-bridge@1.10.0
|
|
45
|
+
|
|
46
|
+
## 1.9.0
|
|
47
|
+
|
|
48
|
+
### Patch Changes
|
|
49
|
+
|
|
50
|
+
- [#240](https://github.com/callstackincubator/rozenite/pull/240) [`0e2a4db`](https://github.com/callstackincubator/rozenite/commit/0e2a4db7943f004b7f52422fbe23b679829e5b57) Thanks [@V3RON](https://github.com/V3RON)! - Rozenite now treats `application/*+json` responses as JSON in Network Activity, so vendor-specific JSON payloads render correctly instead of falling back to plain text.
|
|
51
|
+
|
|
52
|
+
- [#260](https://github.com/callstackincubator/rozenite/pull/260) [`9cea370`](https://github.com/callstackincubator/rozenite/commit/9cea370c441595eba266f800901656370bb608f8) Thanks [@V3RON](https://github.com/V3RON)! - Fix `react-native-nitro-fetch` not being resolved correctly in Metro by isolating the optional dependency import into its own bundle chunk. This ensures the network inspector works reliably even when `react-native-nitro-fetch` is not installed.
|
|
53
|
+
|
|
54
|
+
- Updated dependencies []:
|
|
55
|
+
- @rozenite/agent-bridge@1.9.0
|
|
56
|
+
- @rozenite/agent-shared@1.9.0
|
|
57
|
+
- @rozenite/plugin-bridge@1.9.0
|
|
58
|
+
|
|
3
59
|
## 1.8.1
|
|
4
60
|
|
|
5
61
|
### Patch Changes
|
package/dist/devtools/App.html
CHANGED
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
<script>
|
|
23
23
|
var __ROZENITE_PANEL__ = true;
|
|
24
24
|
</script>
|
|
25
|
-
<script type="module" crossorigin src="../devtools/assets/App-
|
|
26
|
-
<link rel="stylesheet" crossorigin href="../devtools/assets/App-
|
|
25
|
+
<script type="module" crossorigin src="../devtools/assets/App-DsimzJvx.js"></script>
|
|
26
|
+
<link rel="stylesheet" crossorigin href="../devtools/assets/App-CUXU0mup.css">
|
|
27
27
|
</head>
|
|
28
28
|
<body>
|
|
29
29
|
<div id="root"></div>
|
|
@@ -541,6 +541,45 @@ video {
|
|
|
541
541
|
background-color: hsl(var(--background));
|
|
542
542
|
color: hsl(var(--foreground));
|
|
543
543
|
}
|
|
544
|
+
.container {
|
|
545
|
+
width: 100%;
|
|
546
|
+
}
|
|
547
|
+
@media (min-width: 640px) {
|
|
548
|
+
|
|
549
|
+
.container {
|
|
550
|
+
max-width: 640px;
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
@media (min-width: 768px) {
|
|
554
|
+
|
|
555
|
+
.container {
|
|
556
|
+
max-width: 768px;
|
|
557
|
+
}
|
|
558
|
+
}
|
|
559
|
+
@media (min-width: 1024px) {
|
|
560
|
+
|
|
561
|
+
.container {
|
|
562
|
+
max-width: 1024px;
|
|
563
|
+
}
|
|
564
|
+
}
|
|
565
|
+
@media (min-width: 1280px) {
|
|
566
|
+
|
|
567
|
+
.container {
|
|
568
|
+
max-width: 1280px;
|
|
569
|
+
}
|
|
570
|
+
}
|
|
571
|
+
@media (min-width: 1536px) {
|
|
572
|
+
|
|
573
|
+
.container {
|
|
574
|
+
max-width: 1536px;
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
.visible {
|
|
578
|
+
visibility: visible;
|
|
579
|
+
}
|
|
580
|
+
.collapse {
|
|
581
|
+
visibility: collapse;
|
|
582
|
+
}
|
|
544
583
|
.absolute {
|
|
545
584
|
position: absolute;
|
|
546
585
|
}
|
|
@@ -579,6 +618,9 @@ video {
|
|
|
579
618
|
margin-top: 0.25rem;
|
|
580
619
|
margin-bottom: 0.25rem;
|
|
581
620
|
}
|
|
621
|
+
.-ml-5 {
|
|
622
|
+
margin-left: -1.25rem;
|
|
623
|
+
}
|
|
582
624
|
.mb-2 {
|
|
583
625
|
margin-bottom: 0.5rem;
|
|
584
626
|
}
|
|
@@ -609,15 +651,24 @@ video {
|
|
|
609
651
|
.ms-2 {
|
|
610
652
|
margin-inline-start: 0.5rem;
|
|
611
653
|
}
|
|
654
|
+
.mt-0\.5 {
|
|
655
|
+
margin-top: 0.125rem;
|
|
656
|
+
}
|
|
612
657
|
.mt-1 {
|
|
613
658
|
margin-top: 0.25rem;
|
|
614
659
|
}
|
|
615
660
|
.mt-2 {
|
|
616
661
|
margin-top: 0.5rem;
|
|
617
662
|
}
|
|
663
|
+
.block {
|
|
664
|
+
display: block;
|
|
665
|
+
}
|
|
618
666
|
.inline-block {
|
|
619
667
|
display: inline-block;
|
|
620
668
|
}
|
|
669
|
+
.inline {
|
|
670
|
+
display: inline;
|
|
671
|
+
}
|
|
621
672
|
.flex {
|
|
622
673
|
display: flex;
|
|
623
674
|
}
|
|
@@ -630,6 +681,9 @@ video {
|
|
|
630
681
|
.grid {
|
|
631
682
|
display: grid;
|
|
632
683
|
}
|
|
684
|
+
.hidden {
|
|
685
|
+
display: none;
|
|
686
|
+
}
|
|
633
687
|
.h-10 {
|
|
634
688
|
height: 2.5rem;
|
|
635
689
|
}
|
|
@@ -669,6 +723,9 @@ video {
|
|
|
669
723
|
.h-\[1px\] {
|
|
670
724
|
height: 1px;
|
|
671
725
|
}
|
|
726
|
+
.h-\[500px\] {
|
|
727
|
+
height: 500px;
|
|
728
|
+
}
|
|
672
729
|
.h-full {
|
|
673
730
|
height: 100%;
|
|
674
731
|
}
|
|
@@ -681,6 +738,9 @@ video {
|
|
|
681
738
|
.max-h-96 {
|
|
682
739
|
max-height: 24rem;
|
|
683
740
|
}
|
|
741
|
+
.max-h-\[400px\] {
|
|
742
|
+
max-height: 400px;
|
|
743
|
+
}
|
|
684
744
|
.min-h-0 {
|
|
685
745
|
min-height: 0px;
|
|
686
746
|
}
|
|
@@ -714,6 +774,9 @@ video {
|
|
|
714
774
|
.w-8 {
|
|
715
775
|
width: 2rem;
|
|
716
776
|
}
|
|
777
|
+
.w-80 {
|
|
778
|
+
width: 20rem;
|
|
779
|
+
}
|
|
717
780
|
.w-\[1px\] {
|
|
718
781
|
width: 1px;
|
|
719
782
|
}
|
|
@@ -729,6 +792,9 @@ video {
|
|
|
729
792
|
.max-w-24 {
|
|
730
793
|
max-width: 6rem;
|
|
731
794
|
}
|
|
795
|
+
.max-w-full {
|
|
796
|
+
max-width: 100%;
|
|
797
|
+
}
|
|
732
798
|
.max-w-xs {
|
|
733
799
|
max-width: 20rem;
|
|
734
800
|
}
|
|
@@ -772,11 +838,17 @@ video {
|
|
|
772
838
|
-moz-user-select: none;
|
|
773
839
|
user-select: none;
|
|
774
840
|
}
|
|
841
|
+
.grid-cols-1 {
|
|
842
|
+
grid-template-columns: repeat(1, minmax(0, 1fr));
|
|
843
|
+
}
|
|
775
844
|
.grid-cols-2 {
|
|
776
845
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
777
846
|
}
|
|
778
|
-
.grid-cols-
|
|
779
|
-
grid-template-columns: repeat(
|
|
847
|
+
.grid-cols-4 {
|
|
848
|
+
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
849
|
+
}
|
|
850
|
+
.grid-cols-6 {
|
|
851
|
+
grid-template-columns: repeat(6, minmax(0, 1fr));
|
|
780
852
|
}
|
|
781
853
|
.grid-cols-\[minmax\(7rem\2c 25\%\)_minmax\(3rem\2c 1fr\)\] {
|
|
782
854
|
grid-template-columns: minmax(7rem,25%) minmax(3rem,1fr);
|
|
@@ -784,6 +856,9 @@ video {
|
|
|
784
856
|
.flex-col {
|
|
785
857
|
flex-direction: column;
|
|
786
858
|
}
|
|
859
|
+
.items-start {
|
|
860
|
+
align-items: flex-start;
|
|
861
|
+
}
|
|
787
862
|
.items-center {
|
|
788
863
|
align-items: center;
|
|
789
864
|
}
|
|
@@ -799,6 +874,9 @@ video {
|
|
|
799
874
|
.gap-2 {
|
|
800
875
|
gap: 0.5rem;
|
|
801
876
|
}
|
|
877
|
+
.gap-3 {
|
|
878
|
+
gap: 0.75rem;
|
|
879
|
+
}
|
|
802
880
|
.gap-4 {
|
|
803
881
|
gap: 1rem;
|
|
804
882
|
}
|
|
@@ -846,6 +924,9 @@ video {
|
|
|
846
924
|
.overflow-y-auto {
|
|
847
925
|
overflow-y: auto;
|
|
848
926
|
}
|
|
927
|
+
.overscroll-contain {
|
|
928
|
+
overscroll-behavior: contain;
|
|
929
|
+
}
|
|
849
930
|
.truncate {
|
|
850
931
|
overflow: hidden;
|
|
851
932
|
text-overflow: ellipsis;
|
|
@@ -921,9 +1002,16 @@ video {
|
|
|
921
1002
|
--tw-border-opacity: 1;
|
|
922
1003
|
border-color: rgb(192 132 252 / var(--tw-border-opacity, 1));
|
|
923
1004
|
}
|
|
1005
|
+
.border-red-900\/70 {
|
|
1006
|
+
border-color: rgb(127 29 29 / 0.7);
|
|
1007
|
+
}
|
|
924
1008
|
.border-transparent {
|
|
925
1009
|
border-color: transparent;
|
|
926
1010
|
}
|
|
1011
|
+
.border-violet-500 {
|
|
1012
|
+
--tw-border-opacity: 1;
|
|
1013
|
+
border-color: rgb(139 92 246 / var(--tw-border-opacity, 1));
|
|
1014
|
+
}
|
|
927
1015
|
.border-yellow-400 {
|
|
928
1016
|
--tw-border-opacity: 1;
|
|
929
1017
|
border-color: rgb(250 204 21 / var(--tw-border-opacity, 1));
|
|
@@ -937,6 +1025,9 @@ video {
|
|
|
937
1025
|
.bg-background {
|
|
938
1026
|
background-color: hsl(var(--background));
|
|
939
1027
|
}
|
|
1028
|
+
.bg-blue-500\/30 {
|
|
1029
|
+
background-color: rgb(59 130 246 / 0.3);
|
|
1030
|
+
}
|
|
940
1031
|
.bg-blue-600 {
|
|
941
1032
|
--tw-bg-opacity: 1;
|
|
942
1033
|
background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1));
|
|
@@ -965,10 +1056,17 @@ video {
|
|
|
965
1056
|
--tw-bg-opacity: 1;
|
|
966
1057
|
background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));
|
|
967
1058
|
}
|
|
1059
|
+
.bg-gray-800\/60 {
|
|
1060
|
+
background-color: rgb(31 41 55 / 0.6);
|
|
1061
|
+
}
|
|
968
1062
|
.bg-gray-900 {
|
|
969
1063
|
--tw-bg-opacity: 1;
|
|
970
1064
|
background-color: rgb(17 24 39 / var(--tw-bg-opacity, 1));
|
|
971
1065
|
}
|
|
1066
|
+
.bg-gray-950 {
|
|
1067
|
+
--tw-bg-opacity: 1;
|
|
1068
|
+
background-color: rgb(3 7 18 / var(--tw-bg-opacity, 1));
|
|
1069
|
+
}
|
|
972
1070
|
.bg-green-600 {
|
|
973
1071
|
--tw-bg-opacity: 1;
|
|
974
1072
|
background-color: rgb(22 163 74 / var(--tw-bg-opacity, 1));
|
|
@@ -991,6 +1089,9 @@ video {
|
|
|
991
1089
|
--tw-bg-opacity: 1;
|
|
992
1090
|
background-color: rgb(147 51 234 / var(--tw-bg-opacity, 1));
|
|
993
1091
|
}
|
|
1092
|
+
.bg-red-950\/30 {
|
|
1093
|
+
background-color: rgb(69 10 10 / 0.3);
|
|
1094
|
+
}
|
|
994
1095
|
.bg-secondary {
|
|
995
1096
|
background-color: hsl(var(--secondary));
|
|
996
1097
|
}
|
|
@@ -998,6 +1099,10 @@ video {
|
|
|
998
1099
|
--tw-bg-opacity: 1;
|
|
999
1100
|
background-color: rgb(196 181 253 / var(--tw-bg-opacity, 1));
|
|
1000
1101
|
}
|
|
1102
|
+
.bg-white {
|
|
1103
|
+
--tw-bg-opacity: 1;
|
|
1104
|
+
background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
|
|
1105
|
+
}
|
|
1001
1106
|
.bg-yellow-600 {
|
|
1002
1107
|
--tw-bg-opacity: 1;
|
|
1003
1108
|
background-color: rgb(202 138 4 / var(--tw-bg-opacity, 1));
|
|
@@ -1005,6 +1110,10 @@ video {
|
|
|
1005
1110
|
.fill-current {
|
|
1006
1111
|
fill: currentColor;
|
|
1007
1112
|
}
|
|
1113
|
+
.object-contain {
|
|
1114
|
+
-o-object-fit: contain;
|
|
1115
|
+
object-fit: contain;
|
|
1116
|
+
}
|
|
1008
1117
|
.p-0 {
|
|
1009
1118
|
padding: 0px;
|
|
1010
1119
|
}
|
|
@@ -1023,6 +1132,10 @@ video {
|
|
|
1023
1132
|
.p-\[1px\] {
|
|
1024
1133
|
padding: 1px;
|
|
1025
1134
|
}
|
|
1135
|
+
.px-1 {
|
|
1136
|
+
padding-left: 0.25rem;
|
|
1137
|
+
padding-right: 0.25rem;
|
|
1138
|
+
}
|
|
1026
1139
|
.px-1\.5 {
|
|
1027
1140
|
padding-left: 0.375rem;
|
|
1028
1141
|
padding-right: 0.375rem;
|
|
@@ -1115,12 +1228,23 @@ video {
|
|
|
1115
1228
|
.italic {
|
|
1116
1229
|
font-style: italic;
|
|
1117
1230
|
}
|
|
1231
|
+
.leading-snug {
|
|
1232
|
+
line-height: 1.375;
|
|
1233
|
+
}
|
|
1118
1234
|
.tracking-wide {
|
|
1119
1235
|
letter-spacing: 0.025em;
|
|
1120
1236
|
}
|
|
1121
1237
|
.tracking-widest {
|
|
1122
1238
|
letter-spacing: 0.1em;
|
|
1123
1239
|
}
|
|
1240
|
+
.text-amber-400 {
|
|
1241
|
+
--tw-text-opacity: 1;
|
|
1242
|
+
color: rgb(251 191 36 / var(--tw-text-opacity, 1));
|
|
1243
|
+
}
|
|
1244
|
+
.text-blue-100 {
|
|
1245
|
+
--tw-text-opacity: 1;
|
|
1246
|
+
color: rgb(219 234 254 / var(--tw-text-opacity, 1));
|
|
1247
|
+
}
|
|
1124
1248
|
.text-blue-300 {
|
|
1125
1249
|
--tw-text-opacity: 1;
|
|
1126
1250
|
color: rgb(147 197 253 / var(--tw-text-opacity, 1));
|
|
@@ -1196,6 +1320,14 @@ video {
|
|
|
1196
1320
|
--tw-text-opacity: 1;
|
|
1197
1321
|
color: rgb(168 85 247 / var(--tw-text-opacity, 1));
|
|
1198
1322
|
}
|
|
1323
|
+
.text-red-200 {
|
|
1324
|
+
--tw-text-opacity: 1;
|
|
1325
|
+
color: rgb(254 202 202 / var(--tw-text-opacity, 1));
|
|
1326
|
+
}
|
|
1327
|
+
.text-red-300 {
|
|
1328
|
+
--tw-text-opacity: 1;
|
|
1329
|
+
color: rgb(252 165 165 / var(--tw-text-opacity, 1));
|
|
1330
|
+
}
|
|
1199
1331
|
.text-red-400 {
|
|
1200
1332
|
--tw-text-opacity: 1;
|
|
1201
1333
|
color: rgb(248 113 113 / var(--tw-text-opacity, 1));
|
|
@@ -1207,6 +1339,10 @@ video {
|
|
|
1207
1339
|
.text-secondary-foreground {
|
|
1208
1340
|
color: hsl(var(--secondary-foreground));
|
|
1209
1341
|
}
|
|
1342
|
+
.text-violet-200 {
|
|
1343
|
+
--tw-text-opacity: 1;
|
|
1344
|
+
color: rgb(221 214 254 / var(--tw-text-opacity, 1));
|
|
1345
|
+
}
|
|
1210
1346
|
.text-violet-300 {
|
|
1211
1347
|
--tw-text-opacity: 1;
|
|
1212
1348
|
color: rgb(196 181 253 / var(--tw-text-opacity, 1));
|
|
@@ -1304,6 +1440,14 @@ video {
|
|
|
1304
1440
|
--tw-text-opacity: 1;
|
|
1305
1441
|
color: rgb(156 163 175 / var(--tw-text-opacity, 1));
|
|
1306
1442
|
}
|
|
1443
|
+
.placeholder\:text-gray-500::-moz-placeholder {
|
|
1444
|
+
--tw-text-opacity: 1;
|
|
1445
|
+
color: rgb(107 114 128 / var(--tw-text-opacity, 1));
|
|
1446
|
+
}
|
|
1447
|
+
.placeholder\:text-gray-500::placeholder {
|
|
1448
|
+
--tw-text-opacity: 1;
|
|
1449
|
+
color: rgb(107 114 128 / var(--tw-text-opacity, 1));
|
|
1450
|
+
}
|
|
1307
1451
|
.placeholder\:text-muted-foreground::-moz-placeholder {
|
|
1308
1452
|
color: hsl(var(--muted-foreground));
|
|
1309
1453
|
}
|
|
@@ -1339,6 +1483,9 @@ video {
|
|
|
1339
1483
|
.hover\:bg-secondary\/80:hover {
|
|
1340
1484
|
background-color: hsl(var(--secondary) / 0.8);
|
|
1341
1485
|
}
|
|
1486
|
+
.hover\:bg-violet-900\/40:hover {
|
|
1487
|
+
background-color: rgb(76 29 149 / 0.4);
|
|
1488
|
+
}
|
|
1342
1489
|
.hover\:text-accent-foreground:hover {
|
|
1343
1490
|
color: hsl(var(--accent-foreground));
|
|
1344
1491
|
}
|
|
@@ -1416,6 +1563,9 @@ video {
|
|
|
1416
1563
|
.disabled\:opacity-50:disabled {
|
|
1417
1564
|
opacity: 0.5;
|
|
1418
1565
|
}
|
|
1566
|
+
.disabled\:hover\:bg-transparent:hover:disabled {
|
|
1567
|
+
background-color: transparent;
|
|
1568
|
+
}
|
|
1419
1569
|
.group:hover .group-hover\:opacity-100 {
|
|
1420
1570
|
opacity: 1;
|
|
1421
1571
|
}
|