@solidjs/start 0.7.1 → 0.7.2

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 (115) hide show
  1. package/config/index.js +4 -4
  2. package/config/server-components.js +1 -1
  3. package/dist/client/StartClient.d.ts +3 -0
  4. package/{client/StartClient.tsx → dist/client/StartClient.jsx} +4 -9
  5. package/{client/index.tsx → dist/client/index.d.ts} +0 -1
  6. package/dist/client/index.jsx +4 -0
  7. package/dist/client/islands.d.ts +3 -0
  8. package/{client/islands.ts → dist/client/islands.jsx} +1 -1
  9. package/dist/client/mount.d.ts +3 -0
  10. package/dist/client/mount.js +85 -0
  11. package/dist/client/spa/index.d.ts +5 -0
  12. package/dist/client/spa/index.jsx +6 -0
  13. package/dist/index.d.ts +4 -0
  14. package/dist/index.jsx +5 -0
  15. package/dist/middleware/index.d.ts +18 -0
  16. package/dist/middleware/index.js +40 -0
  17. package/dist/router/FileRoutes.d.ts +2 -0
  18. package/dist/router/FileRoutes.js +25 -0
  19. package/dist/router/index.jsx +2 -0
  20. package/dist/router/lazyRoute.d.ts +6 -0
  21. package/dist/router/lazyRoute.js +48 -0
  22. package/dist/router/routes.d.ts +25 -0
  23. package/dist/router/routes.js +51 -0
  24. package/dist/runtime/server-fns-runtime.d.ts +1 -0
  25. package/dist/runtime/server-fns-runtime.js +30 -0
  26. package/dist/runtime/server-handler.d.ts +2 -0
  27. package/dist/runtime/server-handler.js +242 -0
  28. package/dist/runtime/server-runtime.d.ts +3 -0
  29. package/dist/runtime/server-runtime.js +185 -0
  30. package/dist/server/StartServer.d.ts +5 -0
  31. package/dist/server/StartServer.jsx +78 -0
  32. package/dist/server/fetchEvent.d.ts +6 -0
  33. package/dist/server/fetchEvent.js +88 -0
  34. package/dist/server/handler.d.ts +3 -0
  35. package/dist/server/handler.js +98 -0
  36. package/dist/server/index.jsx +5 -0
  37. package/dist/server/islands/index.d.ts +19 -0
  38. package/dist/server/islands/index.jsx +62 -0
  39. package/dist/server/islands/utils.d.ts +1 -0
  40. package/dist/server/islands/utils.jsx +85 -0
  41. package/dist/server/pageEvent.d.ts +2 -0
  42. package/dist/server/pageEvent.js +43 -0
  43. package/dist/server/renderAsset.d.ts +2 -0
  44. package/dist/server/renderAsset.jsx +13 -0
  45. package/dist/server/serverFunction.d.ts +2 -0
  46. package/dist/server/serverFunction.jsx +4 -0
  47. package/dist/server/spa/StartServer.d.ts +5 -0
  48. package/dist/server/spa/StartServer.jsx +18 -0
  49. package/dist/server/spa/handler.d.ts +3 -0
  50. package/dist/server/spa/handler.js +17 -0
  51. package/{server/spa/index.tsx → dist/server/spa/index.d.ts} +0 -1
  52. package/dist/server/spa/index.jsx +4 -0
  53. package/dist/server/types.d.ts +79 -0
  54. package/dist/server/types.js +1 -0
  55. package/dist/shared/ErrorBoundary.d.ts +2 -0
  56. package/dist/shared/ErrorBoundary.jsx +16 -0
  57. package/dist/shared/GET.d.ts +1 -0
  58. package/dist/shared/GET.js +5 -0
  59. package/dist/shared/HttpHeader.d.ts +6 -0
  60. package/dist/shared/HttpHeader.jsx +32 -0
  61. package/dist/shared/HttpStatusCode.d.ts +5 -0
  62. package/dist/shared/HttpStatusCode.jsx +12 -0
  63. package/dist/shared/clientOnly.d.ts +6 -0
  64. package/dist/shared/clientOnly.jsx +19 -0
  65. package/dist/shared/dev-overlay/CodeView.d.ts +7 -0
  66. package/dist/shared/dev-overlay/CodeView.jsx +71 -0
  67. package/dist/shared/dev-overlay/DevOverlayDialog.d.ts +9 -0
  68. package/dist/shared/dev-overlay/DevOverlayDialog.jsx +209 -0
  69. package/dist/shared/dev-overlay/createStackFrame.d.ts +9 -0
  70. package/dist/shared/dev-overlay/createStackFrame.js +56 -0
  71. package/dist/shared/dev-overlay/download.d.ts +1 -0
  72. package/dist/shared/dev-overlay/download.js +6 -0
  73. package/dist/shared/dev-overlay/get-source-map.d.ts +2 -0
  74. package/dist/shared/dev-overlay/get-source-map.js +25 -0
  75. package/dist/shared/dev-overlay/icons.d.ts +28 -0
  76. package/{shared/dev-overlay/icons.tsx → dist/shared/dev-overlay/icons.jsx} +35 -173
  77. package/dist/shared/dev-overlay/index.d.ts +5 -0
  78. package/dist/shared/dev-overlay/index.jsx +37 -0
  79. package/package.json +20 -22
  80. package/client/mount.ts +0 -99
  81. package/client/spa/index.tsx +0 -10
  82. package/config/server-fns-runtime.ts +0 -28
  83. package/config/server-handler.ts +0 -261
  84. package/config/server-runtime.ts +0 -229
  85. package/middleware/index.ts +0 -70
  86. package/router/FileRoutes.ts +0 -35
  87. package/router/lazyRoute.ts +0 -55
  88. package/router/routes.ts +0 -87
  89. package/server/StartServer.tsx +0 -126
  90. package/server/fetchEvent.ts +0 -113
  91. package/server/handler.ts +0 -112
  92. package/server/islands/index.tsx +0 -103
  93. package/server/islands/utils.tsx +0 -89
  94. package/server/pageEvent.ts +0 -50
  95. package/server/renderAsset.tsx +0 -23
  96. package/server/serverFunction.tsx +0 -6
  97. package/server/spa/StartServer.tsx +0 -52
  98. package/server/spa/handler.ts +0 -24
  99. package/server/types.ts +0 -81
  100. package/shared/ErrorBoundary.tsx +0 -23
  101. package/shared/GET.ts +0 -5
  102. package/shared/HttpHeader.tsx +0 -35
  103. package/shared/HttpStatusCode.tsx +0 -19
  104. package/shared/clientOnly.tsx +0 -29
  105. package/shared/dev-overlay/CodeView.tsx +0 -95
  106. package/shared/dev-overlay/DevOverlayDialog.tsx +0 -280
  107. package/shared/dev-overlay/createStackFrame.ts +0 -77
  108. package/shared/dev-overlay/download.ts +0 -6
  109. package/shared/dev-overlay/env.d.ts +0 -4
  110. package/shared/dev-overlay/get-source-map.ts +0 -35
  111. package/shared/dev-overlay/index.tsx +0 -61
  112. package/shared/index.ts +0 -5
  113. /package/{router/index.ts → dist/router/index.d.ts} +0 -0
  114. /package/{server/index.tsx → dist/server/index.d.ts} +0 -0
  115. /package/{shared → dist/shared}/dev-overlay/styles.css +0 -0
@@ -0,0 +1,71 @@
1
+ import { getHighlighterCore, loadWasm } from 'shikiji/core';
2
+ import { createEffect, createResource } from 'solid-js';
3
+ import url from 'shikiji/onig.wasm?url';
4
+ import langJS from 'shikiji/langs/javascript.mjs';
5
+ import langJSX from 'shikiji/langs/jsx.mjs';
6
+ import langTSX from 'shikiji/langs/tsx.mjs';
7
+ import langTS from 'shikiji/langs/typescript.mjs';
8
+ import darkPlus from 'shikiji/themes/dark-plus.mjs';
9
+ let HIGHLIGHTER;
10
+ async function loadHighlighter() {
11
+ if (!HIGHLIGHTER) {
12
+ await loadWasm(await fetch(url));
13
+ HIGHLIGHTER = await getHighlighterCore({
14
+ themes: [
15
+ darkPlus,
16
+ ],
17
+ langs: [
18
+ langJS,
19
+ langJSX,
20
+ langTS,
21
+ langTSX,
22
+ ],
23
+ });
24
+ }
25
+ return HIGHLIGHTER;
26
+ }
27
+ const RANGE = 8;
28
+ export function CodeView(props) {
29
+ const lines = () => props.content.split('\n').map((item, index) => ({
30
+ index: index + 1,
31
+ line: item,
32
+ }));
33
+ const minLine = () => Math.max(props.line - (1 + RANGE), 0);
34
+ const maxLine = () => Math.min(props.line + RANGE, lines().length - 1);
35
+ let ref;
36
+ const [data] = createResource(() => (lines()
37
+ .slice(minLine(), maxLine())
38
+ .map(item => item.line)
39
+ .join('\n')), async (value) => {
40
+ const highlighter = await loadHighlighter();
41
+ const fileExtension = props.fileName
42
+ .split(/[#?]/)[0]
43
+ .split('.')
44
+ .pop()
45
+ ?.trim();
46
+ let lang = fileExtension;
47
+ if (fileExtension === 'mjs' || fileExtension === 'cjs') {
48
+ lang = 'js';
49
+ }
50
+ return highlighter.codeToHtml(value, {
51
+ theme: 'dark-plus',
52
+ lang,
53
+ });
54
+ });
55
+ createEffect(() => {
56
+ const result = data();
57
+ if (ref && result) {
58
+ ref.innerHTML = result;
59
+ const lines = ref.querySelectorAll('span[class="line"]');
60
+ for (let i = 0, len = lines.length; i < len; i++) {
61
+ const el = lines[i];
62
+ if ((props.line - minLine() - 1) === i) {
63
+ el.classList.add('dev-overlay-error-line');
64
+ }
65
+ }
66
+ }
67
+ });
68
+ return <div ref={ref} class="dev-overlay-code-view" style={{
69
+ '--dev-overlay-code-view-start': minLine() + 1,
70
+ }}/>;
71
+ }
@@ -0,0 +1,9 @@
1
+ import type { JSX } from 'solid-js';
2
+ import './styles.css';
3
+ export declare function classNames(...classes: (string | boolean | undefined)[]): string;
4
+ interface DevOverlayDialogProps {
5
+ errors: any[];
6
+ resetError: () => void;
7
+ }
8
+ export default function DevOverlayDialog(props: DevOverlayDialogProps): JSX.Element;
9
+ export {};
@@ -0,0 +1,209 @@
1
+ // @refresh skip
2
+ import ErrorStackParser from 'error-stack-parser';
3
+ import * as htmlToImage from 'html-to-image';
4
+ import { ErrorBoundary, For, Show, Suspense, createMemo, createSignal } from 'solid-js';
5
+ import { Portal } from 'solid-js/web';
6
+ import { Dialog, DialogOverlay, DialogPanel, Select, SelectOption } from 'terracotta';
7
+ import info from '../../../package.json';
8
+ import { CodeView } from './CodeView';
9
+ import { createStackFrame } from './createStackFrame';
10
+ import download from './download';
11
+ import { ArrowLeftIcon, ArrowRightIcon, CameraIcon, DiscordIcon, GithubIcon, RefreshIcon, SolidStartIcon, ViewCompiledIcon, ViewOriginalIcon } from './icons';
12
+ import './styles.css';
13
+ export function classNames(...classes) {
14
+ return classes.filter(Boolean).join(' ');
15
+ }
16
+ function ErrorInfo(props) {
17
+ return (<Show when={props.error instanceof Error && props.error} keyed fallback={<span>{props.error.toString()}</span>}>
18
+ {(current) => (<span class="dev-overlay-error-info">
19
+ <span class="dev-overlay-error-info-name">{current.name}</span>
20
+ <span class="dev-overlay-error-info-message">{current.message}</span>
21
+ </span>)}
22
+ </Show>);
23
+ }
24
+ function getFileName(source) {
25
+ try {
26
+ const path = source.startsWith('/') ? new URL(source, 'file://') : new URL(source);
27
+ const paths = path.pathname.split('/');
28
+ return paths[paths.length - 1];
29
+ }
30
+ catch (error) {
31
+ return getFileName(`/${source}`);
32
+ }
33
+ }
34
+ function getFilePath(source) {
35
+ const line = source.line ? `:${source.line}` : '';
36
+ const column = source.column ? `:${source.column}` : '';
37
+ return `${getFileName(source.source)}${line}${column}`;
38
+ }
39
+ function CodeFallback() {
40
+ return <div class="dev-overlay-stack-frames-code-fallback">
41
+ <span>Source not available.</span>
42
+ </div>;
43
+ }
44
+ function StackFramesContent(props) {
45
+ const stackframes = ErrorStackParser.parse(props.error);
46
+ const [selectedFrame, setSelectedFrame] = createSignal(stackframes[0]);
47
+ return (<div class="dev-overlay-stack-frames-content">
48
+ <div class="dev-overlay-stack-frames-code">
49
+ <ErrorBoundary fallback={null}>
50
+ {(() => {
51
+ const data = createStackFrame(selectedFrame(), () => props.isCompiled);
52
+ return (<Suspense fallback={<CodeFallback />}>
53
+ <Show when={data()} keyed fallback={<CodeFallback />}>
54
+ {(source) => (<>
55
+ <span class="dev-overlay-stack-frames-code-source">{source.source}</span>
56
+ <div class="dev-overlay-stack-frames-code-container">
57
+ <CodeView fileName={source.source} line={source.line} content={source.content}/>
58
+ </div>
59
+ </>)}
60
+ </Show>
61
+ </Suspense>);
62
+ })()}
63
+ </ErrorBoundary>
64
+ </div>
65
+ <Select class="dev-overlay-stack-frames" value={selectedFrame()} onChange={setSelectedFrame}>
66
+ <For each={stackframes}>
67
+ {(current) => (<ErrorBoundary fallback={(<div class="dev-overlay-stack-frame">
68
+ <span class="dev-overlay-stack-frame-function">{current.functionName ?? '<anonymous>'}</span>
69
+ <span class="dev-overlay-stack-frame-file">{getFilePath({
70
+ source: current.getFileName(),
71
+ content: '',
72
+ line: current.getLineNumber(),
73
+ column: current.getColumnNumber(),
74
+ name: current.getFunctionName(),
75
+ })}</span>
76
+ </div>)}>
77
+ {(() => {
78
+ const data = createStackFrame(current, () => props.isCompiled);
79
+ return (<Suspense>
80
+ <Show when={data()} keyed>
81
+ {(source) => (<SelectOption class="dev-overlay-stack-frame" value={current}>
82
+ <span class="dev-overlay-stack-frame-function">{source.name ?? '<anonymous>'}</span>
83
+ <span class="dev-overlay-stack-frame-file">{getFilePath(source)}</span>
84
+ </SelectOption>)}
85
+ </Show>
86
+ </Suspense>);
87
+ })()}
88
+ </ErrorBoundary>)}
89
+ </For>
90
+ </Select>
91
+ </div>);
92
+ }
93
+ function StackFrames(props) {
94
+ return (<Show when={props.error instanceof Error && props.error} keyed>
95
+ {(current) => (<StackFramesContent error={current} isCompiled={props.isCompiled}/>)}
96
+ </Show>);
97
+ }
98
+ const ISSUE_THREAD = 'https://github.com/solidjs/solid-start/issues/new';
99
+ const DISCORD_INVITE = 'https://discord.com/invite/solidjs';
100
+ export default function DevOverlayDialog(props) {
101
+ const [currentPage, setCurrentPage] = createSignal(1);
102
+ const [isCompiled, setIsCompiled] = createSignal(false);
103
+ const length = createMemo(() => props.errors.length);
104
+ const truncated = createMemo(() => {
105
+ return Math.min(currentPage(), length());
106
+ });
107
+ function goPrev() {
108
+ setCurrentPage((c) => {
109
+ if (c > 1) {
110
+ return c - 1;
111
+ }
112
+ return length();
113
+ });
114
+ }
115
+ function goNext() {
116
+ setCurrentPage((c) => {
117
+ if (c < length()) {
118
+ return c + 1;
119
+ }
120
+ return 1;
121
+ });
122
+ }
123
+ function toggleIsCompiled() {
124
+ setIsCompiled((c) => !c);
125
+ }
126
+ const [panel, setPanel] = createSignal();
127
+ function downloadScreenshot() {
128
+ const current = panel();
129
+ if (current) {
130
+ htmlToImage.toPng(current, {
131
+ style: {
132
+ transform: 'scale(0.75)',
133
+ },
134
+ }).then((url) => {
135
+ download(url, 'start-screenshot.png');
136
+ });
137
+ }
138
+ }
139
+ function redirectToGithub() {
140
+ const url = new URL(ISSUE_THREAD);
141
+ url.searchParams.append('labels', 'bug');
142
+ url.searchParams.append('labels', 'needs+triage');
143
+ url.searchParams.append('template', 'bug.yml');
144
+ url.searchParams.append('title', `[Bug?]:` + props.errors[truncated() - 1].toString());
145
+ window.open(url, '_blank').focus();
146
+ }
147
+ function redirectToDiscord() {
148
+ window.open(DISCORD_INVITE, '_blank').focus();
149
+ }
150
+ return (<Portal>
151
+ <Dialog class="dev-overlay" isOpen>
152
+ <div>
153
+ <DialogOverlay class="dev-overlay-background"/>
154
+ <DialogPanel ref={setPanel} class="dev-overlay-panel-container">
155
+ <div class="dev-overlay-panel">
156
+ <div class="dev-overlay-navbar">
157
+ <div class="dev-overlay-navbar-left">
158
+ <div class="dev-overlay-version">
159
+ <div>
160
+ <SolidStartIcon title="Solid Start Version"/>
161
+ </div>
162
+ <span>{info.version}</span>
163
+ </div>
164
+ <Show when={props.errors.length > 1}>
165
+ <div class="dev-overlay-pagination">
166
+ <button class="dev-overlay-button" onClick={goPrev} type="button">
167
+ <ArrowLeftIcon title="Go Previous"/>
168
+ </button>
169
+ <div class="dev-overlay-page-counter">
170
+ {`${truncated()} of ${props.errors.length}`}
171
+ </div>
172
+ <button class="dev-overlay-button" onClick={goNext} type="button">
173
+ <ArrowRightIcon title="Go Next"/>
174
+ </button>
175
+ </div>
176
+ </Show>
177
+ </div>
178
+ <div class="dev-overlay-controls">
179
+ <button class="dev-overlay-button" onClick={redirectToGithub} type="button">
180
+ <GithubIcon title="Create an issue thread on Github"/>
181
+ </button>
182
+ <button class="dev-overlay-button" onClick={redirectToDiscord} type="button">
183
+ <DiscordIcon title="Join our Discord Channel"/>
184
+ </button>
185
+ <button class="dev-overlay-button" onClick={downloadScreenshot} type="button">
186
+ <CameraIcon title="Capture Error Overlay"/>
187
+ </button>
188
+ <button class="dev-overlay-button" onClick={toggleIsCompiled} type="button">
189
+ <Show when={isCompiled()} fallback={(<ViewOriginalIcon title="View Original Source"/>)}>
190
+ <ViewCompiledIcon title="View Compiled Source"/>
191
+ </Show>
192
+ </button>
193
+ <button class="dev-overlay-button" onClick={props.resetError} type="button">
194
+ <RefreshIcon title="Reset Error"/>
195
+ </button>
196
+ </div>
197
+ </div>
198
+ <Show when={props.errors[truncated() - 1]} keyed>
199
+ {(current) => (<div class="dev-overlay-content">
200
+ <ErrorInfo error={current}/>
201
+ <StackFrames error={current} isCompiled={isCompiled()}/>
202
+ </div>)}
203
+ </Show>
204
+ </div>
205
+ </DialogPanel>
206
+ </div>
207
+ </Dialog>
208
+ </Portal>);
209
+ }
@@ -0,0 +1,9 @@
1
+ import { type Accessor } from "solid-js";
2
+ export interface StackFrameSource {
3
+ content: string;
4
+ source: string;
5
+ name?: string;
6
+ line: number;
7
+ column: number;
8
+ }
9
+ export declare function createStackFrame(stackframe: StackFrame, isCompiled: () => boolean): Accessor<StackFrameSource>;
@@ -0,0 +1,56 @@
1
+ import { createMemo, createResource } from "solid-js";
2
+ import getSourceMap from "./get-source-map";
3
+ function getActualFileSource(path) {
4
+ if (path.startsWith('file://')) {
5
+ return '/_build/@fs' + path.substring('file://'.length);
6
+ }
7
+ return path;
8
+ }
9
+ export function createStackFrame(stackframe, isCompiled) {
10
+ const [data] = createResource(() => ({
11
+ fileName: stackframe.fileName,
12
+ line: stackframe.lineNumber,
13
+ column: stackframe.columnNumber,
14
+ functionName: stackframe.functionName,
15
+ }), async (source) => {
16
+ if (!source.fileName) {
17
+ return null;
18
+ }
19
+ const response = await fetch(getActualFileSource(source.fileName));
20
+ if (!response.ok) {
21
+ return null;
22
+ }
23
+ const content = await response.text();
24
+ const sourceMap = await getSourceMap(source.fileName, content);
25
+ return {
26
+ source,
27
+ content,
28
+ sourceMap,
29
+ };
30
+ });
31
+ const info = createMemo(() => {
32
+ const current = data();
33
+ if (!current) {
34
+ return undefined;
35
+ }
36
+ const { source, content, sourceMap } = current;
37
+ if (!isCompiled() && source.line && source.column && sourceMap) {
38
+ const result = sourceMap.originalPositionFor({
39
+ line: source.line,
40
+ column: source.column,
41
+ });
42
+ return {
43
+ ...result,
44
+ content: sourceMap.sourceContentFor(result.source),
45
+ };
46
+ }
47
+ return {
48
+ source: source.fileName,
49
+ line: source.line,
50
+ column: source.column,
51
+ name: source.functionName,
52
+ content,
53
+ };
54
+ });
55
+ return info;
56
+ }
@@ -0,0 +1 @@
1
+ export default function download(dataurl: string, filename: string): void;
@@ -0,0 +1,6 @@
1
+ export default function download(dataurl, filename) {
2
+ const link = document.createElement("a");
3
+ link.href = dataurl;
4
+ link.download = filename;
5
+ link.click();
6
+ }
@@ -0,0 +1,2 @@
1
+ import { SourceMapConsumer } from 'source-map-js';
2
+ export default function getSourceMap(url: string, content: string): Promise<SourceMapConsumer | null>;
@@ -0,0 +1,25 @@
1
+ import { SourceMapConsumer } from 'source-map-js';
2
+ const INLINE_SOURCEMAP_REGEX = /^data:application\/json[^,]+base64,/;
3
+ const SOURCEMAP_REGEX = /(?:\/\/[@#][ \t]+sourceMappingURL=([^\s'"]+?)[ \t]*$)|(?:\/\*[@#][ \t]+sourceMappingURL=([^*]+?)[ \t]*(?:\*\/)[ \t]*$)/;
4
+ export default async function getSourceMap(url, content) {
5
+ const lines = content.split('\n');
6
+ let sourceMapUrl;
7
+ for (let i = lines.length - 1; i >= 0 && !sourceMapUrl; i--) {
8
+ const result = lines[i].match(SOURCEMAP_REGEX);
9
+ if (result) {
10
+ sourceMapUrl = result[1];
11
+ }
12
+ }
13
+ if (!sourceMapUrl) {
14
+ return null;
15
+ }
16
+ if (!(INLINE_SOURCEMAP_REGEX.test(sourceMapUrl) || sourceMapUrl.startsWith('/'))) {
17
+ // Resolve path if it's a relative access
18
+ const parsedURL = url.split('/');
19
+ parsedURL[parsedURL.length - 1] = sourceMapUrl;
20
+ sourceMapUrl = parsedURL.join('/');
21
+ }
22
+ const response = await fetch(sourceMapUrl);
23
+ const rawSourceMap = await response.json();
24
+ return new SourceMapConsumer(rawSourceMap);
25
+ }
@@ -0,0 +1,28 @@
1
+ import type { JSX } from 'solid-js';
2
+ export declare function ArrowRightIcon(props: JSX.IntrinsicElements['svg'] & {
3
+ title: string;
4
+ }): JSX.Element;
5
+ export declare function ArrowLeftIcon(props: JSX.IntrinsicElements['svg'] & {
6
+ title: string;
7
+ }): JSX.Element;
8
+ export declare function RefreshIcon(props: JSX.IntrinsicElements['svg'] & {
9
+ title: string;
10
+ }): JSX.Element;
11
+ export declare function ViewCompiledIcon(props: JSX.IntrinsicElements['svg'] & {
12
+ title: string;
13
+ }): JSX.Element;
14
+ export declare function ViewOriginalIcon(props: JSX.IntrinsicElements['svg'] & {
15
+ title: string;
16
+ }): JSX.Element;
17
+ export declare function CameraIcon(props: JSX.IntrinsicElements['svg'] & {
18
+ title: string;
19
+ }): JSX.Element;
20
+ export declare function DiscordIcon(props: JSX.IntrinsicElements['svg'] & {
21
+ title: string;
22
+ }): JSX.Element;
23
+ export declare function GithubIcon(props: JSX.IntrinsicElements['svg'] & {
24
+ title: string;
25
+ }): JSX.Element;
26
+ export declare function SolidStartIcon(props: JSX.IntrinsicElements['svg'] & {
27
+ title: string;
28
+ }): JSX.Element;
@@ -1,191 +1,55 @@
1
- // @refresh skip
2
- import type { JSX } from 'solid-js';
3
-
4
- export function ArrowRightIcon(
5
- props: JSX.IntrinsicElements['svg'] & { title: string },
6
- ): JSX.Element {
7
- return (
8
- <svg
9
- xmlns="http://www.w3.org/2000/svg"
10
- fill="none"
11
- viewBox="0 0 24 24"
12
- stroke="currentColor"
13
- {...props}
14
- >
1
+ export function ArrowRightIcon(props) {
2
+ return (<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" {...props}>
15
3
  <title>{props.title}</title>
16
- <path
17
- stroke-linecap="round"
18
- stroke-linejoin="round"
19
- stroke-width="2"
20
- d="M14 5l7 7m0 0l-7 7m7-7H3"
21
- />
22
- </svg>
23
- );
4
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M14 5l7 7m0 0l-7 7m7-7H3"/>
5
+ </svg>);
24
6
  }
25
-
26
- export function ArrowLeftIcon(
27
- props: JSX.IntrinsicElements['svg'] & { title: string },
28
- ): JSX.Element {
29
- return (
30
- <svg
31
- xmlns="http://www.w3.org/2000/svg"
32
- fill="none"
33
- viewBox="0 0 24 24"
34
- stroke="currentColor"
35
- {...props}
36
- >
7
+ export function ArrowLeftIcon(props) {
8
+ return (<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" {...props}>
37
9
  <title>{props.title}</title>
38
- <path
39
- stroke-linecap="round"
40
- stroke-linejoin="round"
41
- stroke-width="2"
42
- d="M10 19l-7-7m0 0l7-7m-7 7h18"
43
- />
44
- </svg>
45
- );
10
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 19l-7-7m0 0l7-7m-7 7h18"/>
11
+ </svg>);
46
12
  }
47
-
48
- export function RefreshIcon(
49
- props: JSX.IntrinsicElements['svg'] & { title: string },
50
- ): JSX.Element {
51
- return (
52
- <svg
53
- xmlns="http://www.w3.org/2000/svg"
54
- fill="none"
55
- viewBox="0 0 24 24"
56
- stroke="currentColor"
57
- {...props}
58
- >
13
+ export function RefreshIcon(props) {
14
+ return (<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" {...props}>
59
15
  <title>{props.title}</title>
60
- <path
61
- stroke-linecap="round"
62
- stroke-linejoin="round"
63
- stroke-width="2"
64
- d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"
65
- />
66
- </svg>
67
- );
16
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"/>
17
+ </svg>);
68
18
  }
69
-
70
- export function ViewCompiledIcon(
71
- props: JSX.IntrinsicElements['svg'] & { title: string },
72
- ): JSX.Element {
73
- return (
74
- <svg
75
- xmlns="http://www.w3.org/2000/svg"
76
- fill="none"
77
- viewBox="0 0 24 24"
78
- stroke="currentColor"
79
- {...props}
80
- >
19
+ export function ViewCompiledIcon(props) {
20
+ return (<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" {...props}>
81
21
  <title>{props.title}</title>
82
- <path
83
- stroke-linecap="round"
84
- stroke-linejoin="round"
85
- stroke-width="2"
86
- d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"
87
- />
88
- <path
89
- stroke-linecap="round"
90
- stroke-linejoin="round"
91
- stroke-width="2"
92
- d="M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"
93
- />
94
- </svg>
95
- );
22
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"/>
23
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"/>
24
+ </svg>);
96
25
  }
97
-
98
- export function ViewOriginalIcon(
99
- props: JSX.IntrinsicElements['svg'] & { title: string },
100
- ): JSX.Element {
101
- return (
102
- <svg
103
- xmlns="http://www.w3.org/2000/svg"
104
- fill="none"
105
- viewBox="0 0 24 24"
106
- stroke="currentColor"
107
- {...props}
108
- >
26
+ export function ViewOriginalIcon(props) {
27
+ return (<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" {...props}>
109
28
  <title>{props.title}</title>
110
- <path
111
- stroke-linecap="round"
112
- stroke-linejoin="round"
113
- stroke-width="2"
114
- d="M13.875 18.825A10.05 10.05 0 0112 19c-4.478 0-8.268-2.943-9.543-7a9.97 9.97 0 011.563-3.029m5.858.908a3 3 0 114.243 4.243M9.878 9.878l4.242 4.242M9.88 9.88l-3.29-3.29m7.532 7.532l3.29 3.29M3 3l3.59 3.59m0 0A9.953 9.953 0 0112 5c4.478 0 8.268 2.943 9.543 7a10.025 10.025 0 01-4.132 5.411m0 0L21 21"
115
- />
116
- </svg>
117
- );
29
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13.875 18.825A10.05 10.05 0 0112 19c-4.478 0-8.268-2.943-9.543-7a9.97 9.97 0 011.563-3.029m5.858.908a3 3 0 114.243 4.243M9.878 9.878l4.242 4.242M9.88 9.88l-3.29-3.29m7.532 7.532l3.29 3.29M3 3l3.59 3.59m0 0A9.953 9.953 0 0112 5c4.478 0 8.268 2.943 9.543 7a10.025 10.025 0 01-4.132 5.411m0 0L21 21"/>
30
+ </svg>);
118
31
  }
119
-
120
- export function CameraIcon(
121
- props: JSX.IntrinsicElements['svg'] & { title: string },
122
- ): JSX.Element {
123
- return (
124
- <svg
125
- xmlns="http://www.w3.org/2000/svg"
126
- fill="currentColor"
127
- viewBox="0 0 24 24"
128
- stroke="none"
129
- {...props}
130
- >
32
+ export function CameraIcon(props) {
33
+ return (<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24" stroke="none" {...props}>
131
34
  <title>{props.title}</title>
132
- <path
133
- d="M12 9a3.75 3.75 0 1 0 0 7.5A3.75 3.75 0 0 0 12 9Z"
134
- />
135
- <path
136
- fill-rule="evenodd"
137
- d="M9.344 3.071a49.52 49.52 0 0 1 5.312 0c.967.052 1.83.585 2.332 1.39l.821 1.317c.24.383.645.643 1.11.71.386.054.77.113 1.152.177 1.432.239 2.429 1.493 2.429 2.909V18a3 3 0 0 1-3 3h-15a3 3 0 0 1-3-3V9.574c0-1.416.997-2.67 2.429-2.909.382-.064.766-.123 1.151-.178a1.56 1.56 0 0 0 1.11-.71l.822-1.315a2.942 2.942 0 0 1 2.332-1.39ZM6.75 12.75a5.25 5.25 0 1 1 10.5 0 5.25 5.25 0 0 1-10.5 0Zm12-1.5a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Z"
138
- clip-rule="evenodd"
139
- />
140
- </svg>
141
- );
35
+ <path d="M12 9a3.75 3.75 0 1 0 0 7.5A3.75 3.75 0 0 0 12 9Z"/>
36
+ <path fill-rule="evenodd" d="M9.344 3.071a49.52 49.52 0 0 1 5.312 0c.967.052 1.83.585 2.332 1.39l.821 1.317c.24.383.645.643 1.11.71.386.054.77.113 1.152.177 1.432.239 2.429 1.493 2.429 2.909V18a3 3 0 0 1-3 3h-15a3 3 0 0 1-3-3V9.574c0-1.416.997-2.67 2.429-2.909.382-.064.766-.123 1.151-.178a1.56 1.56 0 0 0 1.11-.71l.822-1.315a2.942 2.942 0 0 1 2.332-1.39ZM6.75 12.75a5.25 5.25 0 1 1 10.5 0 5.25 5.25 0 0 1-10.5 0Zm12-1.5a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Z" clip-rule="evenodd"/>
37
+ </svg>);
142
38
  }
143
-
144
-
145
- export function DiscordIcon(
146
- props: JSX.IntrinsicElements['svg'] & { title: string },
147
- ): JSX.Element {
148
- return (
149
- <svg
150
- xmlns="http://www.w3.org/2000/svg"
151
- fill="currentColor"
152
- viewBox="0 0 24 24"
153
- stroke="none"
154
- {...props}
155
- >
39
+ export function DiscordIcon(props) {
40
+ return (<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24" stroke="none" {...props}>
156
41
  <title>{props.title}</title>
157
42
  <path d="M14.82 4.26a10.14 10.14 0 0 0-.53 1.1 14.66 14.66 0 0 0-4.58 0 10.14 10.14 0 0 0-.53-1.1 16 16 0 0 0-4.13 1.3 17.33 17.33 0 0 0-3 11.59 16.6 16.6 0 0 0 5.07 2.59A12.89 12.89 0 0 0 8.23 18a9.65 9.65 0 0 1-1.71-.83 3.39 3.39 0 0 0 .42-.33 11.66 11.66 0 0 0 10.12 0q.21.18.42.33a10.84 10.84 0 0 1-1.71.84 12.41 12.41 0 0 0 1.08 1.78 16.44 16.44 0 0 0 5.06-2.59 17.22 17.22 0 0 0-3-11.59 16.09 16.09 0 0 0-4.09-1.35zM8.68 14.81a1.94 1.94 0 0 1-1.8-2 1.93 1.93 0 0 1 1.8-2 1.93 1.93 0 0 1 1.8 2 1.93 1.93 0 0 1-1.8 2zm6.64 0a1.94 1.94 0 0 1-1.8-2 1.93 1.93 0 0 1 1.8-2 1.92 1.92 0 0 1 1.8 2 1.92 1.92 0 0 1-1.8 2z"></path>
158
- </svg>
159
- );
43
+ </svg>);
160
44
  }
161
-
162
- export function GithubIcon(
163
- props: JSX.IntrinsicElements['svg'] & { title: string },
164
- ): JSX.Element {
165
- return (
166
- <svg
167
- xmlns="http://www.w3.org/2000/svg"
168
- fill="currentColor"
169
- viewBox="0 0 24 24"
170
- stroke="none"
171
- {...props}
172
- >
45
+ export function GithubIcon(props) {
46
+ return (<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24" stroke="none" {...props}>
173
47
  <title>{props.title}</title>
174
48
  <path fill-rule="evenodd" clip-rule="evenodd" d="M12.026 2c-5.509 0-9.974 4.465-9.974 9.974 0 4.406 2.857 8.145 6.821 9.465.499.09.679-.217.679-.481 0-.237-.008-.865-.011-1.696-2.775.602-3.361-1.338-3.361-1.338-.452-1.152-1.107-1.459-1.107-1.459-.905-.619.069-.605.069-.605 1.002.07 1.527 1.028 1.527 1.028.89 1.524 2.336 1.084 2.902.829.091-.645.351-1.085.635-1.334-2.214-.251-4.542-1.107-4.542-4.93 0-1.087.389-1.979 1.024-2.675-.101-.253-.446-1.268.099-2.64 0 0 .837-.269 2.742 1.021a9.582 9.582 0 0 1 2.496-.336 9.554 9.554 0 0 1 2.496.336c1.906-1.291 2.742-1.021 2.742-1.021.545 1.372.203 2.387.099 2.64.64.696 1.024 1.587 1.024 2.675 0 3.833-2.33 4.675-4.552 4.922.355.308.675.916.675 1.846 0 1.334-.012 2.41-.012 2.737 0 .267.178.577.687.479C19.146 20.115 22 16.379 22 11.974 22 6.465 17.535 2 12.026 2z"></path>
175
- </svg>
176
- );
49
+ </svg>);
177
50
  }
178
-
179
- export function SolidStartIcon(
180
- props: JSX.IntrinsicElements['svg'] & { title: string },
181
- ): JSX.Element {
182
- return (
183
- <svg
184
- viewBox="0 0 701 701"
185
- fill="none"
186
- xmlns="http://www.w3.org/2000/svg"
187
- {...props}
188
- >
51
+ export function SolidStartIcon(props) {
52
+ return (<svg viewBox="0 0 701 701" fill="none" xmlns="http://www.w3.org/2000/svg" {...props}>
189
53
  <title>{props.title}</title>
190
54
  <g filter="url(#filter0_d_1_2)">
191
55
  <rect width="693" height="693" transform="translate(4)" fill="white"/>
@@ -282,7 +146,5 @@ export function SolidStartIcon(
282
146
  <stop offset="1" stop-color="#79CFFF"/>
283
147
  </linearGradient>
284
148
  </defs>
285
- </svg>
286
- );
149
+ </svg>);
287
150
  }
288
-