@solidjs/start 2.0.3 → 2.0.4

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 (44) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/shared/dev-toolbar/error-viewer/CodeView.jsx +9 -4
  3. package/dist/shared/dev-toolbar/error-viewer/create-stack-frame.d.ts +2 -1
  4. package/dist/shared/dev-toolbar/error-viewer/create-stack-frame.js +29 -19
  5. package/dist/shared/dev-toolbar/error-viewer/get-source-map.d.ts +2 -2
  6. package/dist/shared/dev-toolbar/error-viewer/get-source-map.js +3 -2
  7. package/dist/shared/dev-toolbar/error-viewer/index.jsx +52 -35
  8. package/dist/shared/dev-toolbar/error-viewer/styles.css +91 -43
  9. package/dist/shared/dev-toolbar/functions/BlobViewer.css +50 -2
  10. package/dist/shared/dev-toolbar/functions/BlobViewer.jsx +23 -4
  11. package/dist/shared/dev-toolbar/functions/FormDataViewer.jsx +9 -6
  12. package/dist/shared/dev-toolbar/functions/HeadersViewer.css +0 -4
  13. package/dist/shared/dev-toolbar/functions/HeadersViewer.jsx +9 -7
  14. package/dist/shared/dev-toolbar/functions/HexViewer.css +36 -17
  15. package/dist/shared/dev-toolbar/functions/HexViewer.jsx +7 -6
  16. package/dist/shared/dev-toolbar/functions/SerovalValue.css +21 -0
  17. package/dist/shared/dev-toolbar/functions/SerovalValue.d.ts +1 -0
  18. package/dist/shared/dev-toolbar/functions/SerovalValue.jsx +4 -2
  19. package/dist/shared/dev-toolbar/functions/SerovalViewer.css +98 -36
  20. package/dist/shared/dev-toolbar/functions/SerovalViewer.jsx +268 -279
  21. package/dist/shared/dev-toolbar/functions/URLSearchParamsViewer.jsx +9 -6
  22. package/dist/shared/dev-toolbar/functions/index.jsx +96 -69
  23. package/dist/shared/dev-toolbar/functions/styles.css +143 -10
  24. package/dist/shared/dev-toolbar/index.css +54 -14
  25. package/dist/shared/dev-toolbar/index.jsx +8 -1
  26. package/dist/shared/ui/Badge.css +21 -10
  27. package/dist/shared/ui/Button.css +7 -6
  28. package/dist/shared/ui/IconButton.css +16 -10
  29. package/dist/shared/ui/Placeholder.css +2 -0
  30. package/dist/shared/ui/Section.css +42 -3
  31. package/dist/shared/ui/Section.d.ts +3 -1
  32. package/dist/shared/ui/Section.jsx +14 -6
  33. package/dist/shared/ui/Select.css +11 -4
  34. package/dist/shared/ui/Tabs.css +30 -16
  35. package/package.json +5 -5
  36. package/dist/shared/ui/Cascade.css +0 -29
  37. package/dist/shared/ui/Cascade.d.ts +0 -4
  38. package/dist/shared/ui/Cascade.jsx +0 -4
  39. package/dist/shared/ui/Dialog.css +0 -25
  40. package/dist/shared/ui/Dialog.d.ts +0 -5
  41. package/dist/shared/ui/Dialog.jsx +0 -5
  42. package/dist/shared/ui/Table.css +0 -22
  43. package/dist/shared/ui/Table.d.ts +0 -11
  44. package/dist/shared/ui/Table.jsx +0 -13
@@ -2,7 +2,3 @@
2
2
  font-size: 0.75rem;
3
3
  line-height: 1rem;
4
4
  }
5
-
6
- [data-start-headers-viewer] > [data-start-property] > *:first-child {
7
- text-transform: capitalize;
8
- }
@@ -1,14 +1,16 @@
1
1
  import { For } from "solid-js";
2
- import { PropertySeparator, SerovalValue } from "./SerovalValue.jsx";
3
- import "./HeadersViewer.css";
4
2
  import { Text } from "../../ui/Text.jsx";
3
+ import "./HeadersViewer.css";
5
4
  export function HeadersViewer(props) {
6
- return (<div data-start-headers-viewer data-start-properties>
5
+ return (<div data-start-headers-viewer data-start-kv-table>
7
6
  <For each={Array.from(props.headers.entries())}>
8
- {([key, value]) => (<div data-start-property>
9
- <Text options={{ size: "xs", weight: "semibold", wrap: "nowrap" }}>{key}</Text>
10
- <PropertySeparator />
11
- <SerovalValue value={value}/>
7
+ {([key, value]) => (<div data-start-property data-start-kv-row>
8
+ <Text data-start-kv-key options={{ size: "xs", weight: "semibold", font: "mono", wrap: "nowrap" }}>
9
+ {key}
10
+ </Text>
11
+ <Text data-start-kv-value options={{ size: "xs", font: "mono", wrap: "wrap" }}>
12
+ {value}
13
+ </Text>
12
14
  </div>)}
13
15
  </For>
14
16
  </div>);
@@ -1,34 +1,53 @@
1
1
  [data-start-hex-viewer] {
2
- display: flex;
3
- border: 1px oklch(87% 0.065 274.039) solid;
4
- overflow: auto;
5
- }
6
-
7
- [data-start-hex-viewer-bytes] {
8
- flex: 1;
9
2
  display: flex;
10
3
  flex-direction: column;
11
- gap: 0.5rem;
12
- padding: 0.5rem;
13
- }
14
4
 
15
- [data-start-hex-viewer-text] {
16
- flex: 1;
17
- display: flex;
18
- flex-direction: column;
19
- gap: 0.5rem;
20
- padding: 0.5rem;
21
- border-left: 1px oklch(87% 0.065 274.039) solid;
5
+ border: 1px var(--start-dt-border-soft, oklch(87% 0.065 274.039)) solid;
6
+ border-radius: 0.5rem;
7
+ background-color: var(--start-dt-surface, transparent);
8
+
9
+ overflow: auto;
10
+
11
+ font-family:
12
+ ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New",
13
+ monospace;
22
14
  }
23
15
 
24
16
  [data-start-hex-row] {
25
17
  display: flex;
26
18
  align-items: center;
27
19
  gap: 1rem;
20
+
21
+ padding: 0.125rem 0.625rem;
22
+
23
+ white-space: nowrap;
24
+ }
25
+
26
+ [data-start-hex-row]:nth-child(even) {
27
+ background-color: oklch(1 0 0 / 0.03);
28
+ }
29
+
30
+ [data-start-hex-row]:hover {
31
+ background-color: var(--start-dt-surface-hover, transparent);
32
+ }
33
+
34
+ [data-start-hex-offset] {
35
+ color: var(--start-dt-text-muted, inherit);
36
+ }
37
+
38
+ [data-start-hex-chunk] {
39
+ letter-spacing: 0.05em;
40
+ color: var(--start-dt-text, inherit);
28
41
  }
29
42
 
30
43
  [data-start-hex-text] {
31
44
  display: flex;
32
45
  align-items: center;
33
46
  justify-content: start;
47
+
48
+ margin-left: auto;
49
+ padding-left: 1rem;
50
+ border-left: 1px var(--start-dt-border-soft, oklch(87% 0.065 274.039)) solid;
51
+
52
+ color: oklch(0.78 0.11 150);
34
53
  }
@@ -22,10 +22,14 @@ function HexRow(props) {
22
22
  const chunk3 = createMemo(() => props.bytes.subarray(8, 12));
23
23
  const chunk4 = createMemo(() => props.bytes.subarray(12, 16));
24
24
  return (<div data-start-hex-row>
25
+ <Text data-start-hex-offset options={{ size: "xs", weight: "semibold", wrap: "nowrap" }}>
26
+ {toHex(props.offset, 8)}
27
+ </Text>
25
28
  <HexChunk bytes={chunk1()}/>
26
29
  <HexChunk bytes={chunk2()}/>
27
30
  <HexChunk bytes={chunk3()}/>
28
31
  <HexChunk bytes={chunk4()}/>
32
+ <HexText bytes={props.bytes}/>
29
33
  </div>);
30
34
  }
31
35
  function replaceString(string) {
@@ -54,12 +58,9 @@ export function HexViewerInner(props) {
54
58
  return arrays;
55
59
  });
56
60
  return (<div data-start-hex-viewer>
57
- <div data-start-hex-viewer-bytes>
58
- <For each={rows()}>{current => <HexRow bytes={current}/>}</For>
59
- </div>
60
- <div data-start-hex-viewer-text>
61
- <For each={rows()}>{current => <HexText bytes={current}/>}</For>
62
- </div>
61
+ <For each={rows()}>
62
+ {(current, index) => <HexRow bytes={current} offset={index() * 16}/>}
63
+ </For>
63
64
  </div>);
64
65
  }
65
66
  export function HexViewer(props) {
@@ -3,3 +3,24 @@
3
3
  gap: 0.25rem;
4
4
  align-items: center;
5
5
  }
6
+
7
+ [data-start-seroval-value="key"] {
8
+ color: oklch(0.78 0.1 305);
9
+ }
10
+
11
+ [data-start-seroval-value="string"] {
12
+ color: oklch(0.78 0.11 150);
13
+ }
14
+
15
+ [data-start-seroval-value="number"] {
16
+ color: oklch(0.8 0.11 80);
17
+ }
18
+
19
+ [data-start-seroval-value="keyword"] {
20
+ color: oklch(0.74 0.1 250);
21
+ font-style: italic;
22
+ }
23
+
24
+ [data-start-seroval-separator] {
25
+ color: var(--start-dt-text-muted);
26
+ }
@@ -1,6 +1,7 @@
1
1
  import "./SerovalValue.css";
2
2
  interface SerovalValueProps {
3
3
  value: string | number | boolean | undefined | null;
4
+ kind?: "key" | "string" | "number" | "keyword";
4
5
  }
5
6
  export declare function SerovalValue(props: SerovalValueProps): import("solid-js").JSX.Element;
6
7
  export declare function PropertySeparator(): import("solid-js").JSX.Element;
@@ -1,10 +1,12 @@
1
1
  import { Text } from "../../ui/Text.jsx";
2
2
  import "./SerovalValue.css";
3
3
  export function SerovalValue(props) {
4
- return (<Text data-start-seroval-value options={{ size: "xs", weight: "semibold", wrap: "nowrap" }}>
4
+ return (<Text data-start-seroval-value={props.kind ?? "plain"} options={{ size: "xs", weight: "semibold", font: "mono", wrap: "nowrap" }}>
5
5
  {`${props.value}`}
6
6
  </Text>);
7
7
  }
8
8
  export function PropertySeparator() {
9
- return <Text options={{ size: "xs", weight: "semibold", wrap: "nowrap" }}>:</Text>;
9
+ return (<Text data-start-seroval-separator options={{ size: "xs", weight: "semibold", wrap: "nowrap" }}>
10
+ :
11
+ </Text>);
10
12
  }
@@ -1,70 +1,132 @@
1
1
  [data-start-seroval-viewer] {
2
- display: grid;
3
- grid-template-columns: 1fr 2fr;
2
+ height: 100%;
3
+ min-height: 12rem;
4
+
5
+ overflow: auto;
6
+
7
+ padding: 0.375rem 0.5rem;
8
+
9
+ border: 1px var(--start-dt-border-soft, oklch(87% 0.065 274.039)) solid;
10
+ border-radius: 0.5rem;
11
+ background-color: var(--start-dt-surface, transparent);
12
+
13
+ color: var(--start-dt-text, rgb(249 250 251));
14
+ font-family:
15
+ ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New",
16
+ monospace;
4
17
  }
5
18
 
6
- [data-start-seroval-promise] {
19
+ [data-start-seroval-tree-node] {
7
20
  display: flex;
8
- gap: 0.5rem;
9
- align-items: center;
21
+ flex-direction: column;
10
22
  }
11
23
 
12
- [data-start-seroval-renderer] {
24
+ [data-start-seroval-tree-row] {
13
25
  display: flex;
14
- border-top: 1px oklch(87% 0.065 274.039) solid;
15
- border-bottom: 1px oklch(87% 0.065 274.039) solid;
26
+ align-items: center;
27
+ gap: 0.375rem;
28
+
29
+ padding: 0.125rem 0.25rem;
30
+ border-radius: 0.25rem;
31
+
32
+ min-width: 0;
33
+ width: 100%;
34
+
35
+ border: none;
36
+ background: none;
37
+ color: inherit;
38
+ font: inherit;
39
+ text-align: left;
40
+ outline: none;
16
41
  }
17
42
 
18
- [data-start-seroval-renderer] > * {
19
- border-left: 1px oklch(87% 0.065 274.039) solid;
43
+ button[data-start-seroval-tree-row] {
44
+ cursor: pointer;
20
45
  }
21
46
 
22
- [data-start-seroval-renderer]:last-child {
23
- border-right: 1px oklch(87% 0.065 274.039) solid;
47
+ button[data-start-seroval-tree-row]:hover,
48
+ button[data-start-seroval-tree-row]:focus-visible {
49
+ background-color: var(--start-dt-surface-hover, transparent);
24
50
  }
25
51
 
26
- [data-start-seroval-node] {
27
- display: flex;
28
- flex-direction: column;
29
- gap: 0.25rem;
30
- padding: 0.25rem;
52
+ [data-start-seroval-tree-chevron] {
53
+ display: inline-flex;
54
+ align-items: center;
55
+ justify-content: center;
31
56
 
32
- width: 100%;
33
- max-width: 16rem;
57
+ width: 0.875rem;
58
+ flex-shrink: 0;
59
+
60
+ color: var(--start-dt-text-muted, inherit);
34
61
  }
35
62
 
36
- [data-start-seroval-node-header] {
37
- position: sticky;
38
- top: 0;
39
- display: flex;
40
- align-items: center;
41
- justify-content: space-between;
42
- color: rgb(249 250 251);
63
+ [data-start-seroval-tree-chevron]::before {
64
+ content: "";
65
+
66
+ width: 0.3125rem;
67
+ height: 0.3125rem;
68
+
69
+ border-right: 1.5px currentColor solid;
70
+ border-bottom: 1.5px currentColor solid;
71
+
72
+ transform: rotate(-45deg);
73
+ transition: transform 150ms cubic-bezier(0.4, 0, 0.2, 1);
74
+ }
75
+
76
+ [data-start-seroval-tree-chevron][data-leaf]::before {
77
+ content: none;
78
+ }
79
+
80
+ [data-start-seroval-tree-row][data-expanded] > [data-start-seroval-tree-chevron]::before {
81
+ transform: rotate(45deg);
43
82
  }
44
83
 
45
- [data-start-seroval-node-content] {
84
+ [data-start-seroval-tree-children] {
46
85
  display: flex;
47
86
  flex-direction: column;
48
- gap: 0.25rem;
49
- }
50
87
 
51
- [data-start-seroval-value] {
52
- color: rgb(249 250 251);
88
+ margin-left: 0.6875rem;
89
+ padding-left: 0.625rem;
90
+
91
+ border-left: 1px var(--start-dt-border-soft, oklch(87% 0.065 274.039)) solid;
53
92
  }
54
93
 
55
- [data-start-seroval-value-wrapper] {
94
+ [data-start-seroval-tree-key] {
56
95
  display: inline-flex;
57
- gap: 0.25rem;
58
96
  align-items: center;
97
+ gap: 0.125rem;
98
+
99
+ flex-shrink: 0;
59
100
  }
60
101
 
61
- [data-start-seroval-link] {
102
+ [data-start-seroval-tree-preview] {
103
+ color: var(--start-dt-text-muted, inherit);
104
+ font-size: 0.75rem;
105
+ line-height: 1rem;
106
+
107
+ min-width: 0;
108
+ overflow: hidden;
109
+ text-overflow: ellipsis;
110
+ white-space: nowrap;
111
+ }
112
+
113
+ [data-start-seroval-tree-circular] {
62
114
  display: inline-flex;
63
- gap: 0.25rem;
64
115
  align-items: center;
116
+ gap: 0.25rem;
65
117
  }
66
118
 
67
- [data-start-seroval-link] > svg {
119
+ [data-start-seroval-tree-circular] > svg {
68
120
  width: 1rem;
69
121
  height: 1rem;
122
+
123
+ color: var(--start-dt-accent, currentColor);
124
+ }
125
+
126
+ [data-start-seroval-tree-raw] {
127
+ padding: 0.25rem 0;
128
+ }
129
+
130
+ [data-start-seroval-value="plain"] {
131
+ color: var(--start-dt-text, rgb(249 250 251));
70
132
  }