+6
-2
src/utils/copy.ts
+6
-2
src/utils/copy.ts
···
+1
-1
src/index.tsx
+1
-1
src/index.tsx
···
+1
-1
public/manifest.json
+1
-1
public/manifest.json
public/headers/sonic.jpg
public/headers/sonic.jpg
This is a binary file and will not be displayed.
+2
-10
src/components/backlinks.tsx
+2
-10
src/components/backlinks.tsx
······
+1
-1
src/components/text-input.tsx
+1
-1
src/components/text-input.tsx
···-"dark:bg-dark-100 dark:shadow-dark-700 rounded-lg border-[0.5px] border-neutral-300 bg-white px-2 py-1 shadow-xs select-none placeholder:text-sm focus:outline-[1px] focus:outline-neutral-600 dark:border-neutral-600 dark:focus:outline-neutral-400 " ++"dark:bg-dark-100 dark:inset-shadow-dark-200 rounded-lg border-[0.5px] border-neutral-300 bg-white px-2 py-1 inset-shadow-xs select-none placeholder:text-sm focus:outline-[1px] focus:outline-neutral-600 dark:border-neutral-600 dark:focus:outline-neutral-400 " +
+2
-2
src/views/stream.tsx
+2
-2
src/views/stream.tsx
···-class="dark:bg-dark-100 dark:shadow-dark-700 grow rounded-lg border-[0.5px] border-neutral-300 bg-white px-2 py-1 shadow-xs focus:outline-[1px] focus:outline-neutral-600 dark:border-neutral-600 dark:focus:outline-neutral-400"+class="dark:bg-dark-100 dark:inset-shadow-dark-200 grow rounded-lg border-[0.5px] border-neutral-300 bg-white px-2 py-1 inset-shadow-xs focus:outline-[1px] focus:outline-neutral-600 dark:border-neutral-600 dark:focus:outline-neutral-400"···-class="dark:bg-dark-100 dark:shadow-dark-700 grow rounded-lg border-[0.5px] border-neutral-300 bg-white px-2 py-1 shadow-xs focus:outline-[1px] focus:outline-neutral-600 dark:border-neutral-600 dark:focus:outline-neutral-400"+class="dark:bg-dark-100 dark:inset-shadow-dark-200 grow rounded-lg border-[0.5px] border-neutral-300 bg-white px-2 py-1 inset-shadow-xs focus:outline-[1px] focus:outline-neutral-600 dark:border-neutral-600 dark:focus:outline-neutral-400"
-66
src/utils/types/at-uri.ts
-66
src/utils/types/at-uri.ts
···-/^[a-zA-Z](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?:\.[a-zA-Z](?:[a-zA-Z0-9]{0,62})?)$/;-/^at:\/\/([a-zA-Z0-9._:%-]+)(?:\/([a-zA-Z0-9-.]+)(?:\/([a-zA-Z0-9._~:@!$&%')(*+,;=-]+))?)?(?:#(\/[a-zA-Z0-9._~:@!$&%')(*+,;=\-[\]/\\]*))?$/;
+2
-2
src/components/json.tsx
+2
-2
src/components/json.tsx
···src={`https://${pds()}/xrpc/com.atproto.sync.getBlob?did=${props.repo}&cid=${blob.ref.$link}`}···-class="absolute top-1 right-1 flex items-center rounded-lg bg-neutral-900/70 p-1.5 text-white opacity-100 backdrop-blur-sm transition-opacity hover:bg-neutral-900/80 active:bg-neutral-900/90 sm:opacity-0 sm:group-hover/media:opacity-100 dark:bg-neutral-100/70 dark:text-neutral-900 dark:hover:bg-neutral-100/80 dark:active:bg-neutral-100/90"+class="absolute top-1 right-1 flex items-center rounded-lg bg-neutral-900/70 p-1.5 text-white opacity-0 backdrop-blur-sm transition-opacity group-hover/media:opacity-100 hover:bg-neutral-900/80 active:bg-neutral-900/90 dark:bg-neutral-100/70 dark:text-neutral-900 dark:hover:bg-neutral-100/80 dark:active:bg-neutral-100/90"
+12
-9
src/views/home.tsx
+12
-9
src/views/home.tsx
···-class="font-pecita relative after:absolute after:bottom-0 after:left-0 after:h-px after:w-0 after:bg-current after:transition-[width] after:duration-300 after:ease-out hover:after:w-full"+class="font-pecita relative after:absolute after:bottom-0 after:left-0 after:h-px after:w-0 after:bg-current after:transition-[width] after:duration-300 after:ease-out hover:after:w-full"
+22
-1
vite.config.ts
+22
-1
vite.config.ts
·········
-10
src/utils/app-urls.ts
-10
src/utils/app-urls.ts
············
+1
-1
src/components/theme.tsx
+1
-1
src/components/theme.tsx
···+"border-neutral-200 dark:border-neutral-600 hover:bg-neutral-200/30 dark:hover:bg-neutral-800":
+7
-1
src/components/video-player.tsx
+7
-1
src/components/video-player.tsx
···-<video ref={video} class="max-h-80 max-w-[20rem]" controls playsinline onLoadedData={props.onLoad}>
+15
-15
src/utils/hooks/debounced.ts
+15
-15
src/utils/hooks/debounced.ts
···
+1
-1
src/components/notification.tsx
+1
-1
src/components/notification.tsx
···
+30
src/utils/key.ts
+30
src/utils/key.ts
···
+13
src/auth/oauth-config.ts
+13
src/auth/oauth-config.ts
···
+77
src/auth/scope-flow.ts
+77
src/auth/scope-flow.ts
···
+53
src/auth/scope-utils.ts
+53
src/auth/scope-utils.ts
···
+14
src/auth/state.ts
+14
src/auth/state.ts
···
-143
src/components/login.tsx
-143
src/components/login.tsx
···-<div class="dark:bg-dark-100 dark:inset-shadow-dark-200 flex grow items-center gap-2 rounded-lg border-[0.5px] border-neutral-300 bg-white px-2 inset-shadow-xs focus-within:outline-[1px] focus-within:outline-neutral-600 dark:border-neutral-600 dark:focus-within:outline-neutral-400">-class="flex items-center rounded-md p-1 hover:bg-neutral-100 active:bg-neutral-200 dark:hover:bg-neutral-600 dark:active:bg-neutral-500"
+2
-2
src/views/pds.tsx
+2
-2
src/views/pds.tsx
······
-2
index.html
-2
index.html
···
public/fonts/Figtree[wght].woff2
public/fonts/Figtree[wght].woff2
This is a binary file and will not be displayed.
+5
-1
src/auth/account.tsx
+5
-1
src/auth/account.tsx
···
+1
src/components/create.tsx
+1
src/components/create.tsx
···if (ev.target instanceof HTMLInputElement || ev.target instanceof HTMLTextAreaElement) return;
+109
src/components/create/file-upload.tsx
+109
src/components/create/file-upload.tsx
···+<div class="dark:bg-dark-300 dark:shadow-dark-700 absolute top-70 left-[50%] w-[20rem] -translate-x-1/2 rounded-lg border-[0.5px] border-neutral-300 bg-neutral-50 p-4 shadow-md transition-opacity duration-200 dark:border-neutral-700 starting:opacity-0">+class="dark:shadow-dark-700 flex items-center gap-1 rounded-lg bg-blue-500 px-2 py-1.5 text-xs text-white shadow-xs select-none hover:bg-blue-600 active:bg-blue-700 dark:bg-blue-600 dark:hover:bg-blue-500 dark:active:bg-blue-400"
+87
src/components/create/handle-input.tsx
+87
src/components/create/handle-input.tsx
···+<div class="dark:bg-dark-300 dark:shadow-dark-700 absolute top-70 left-[50%] w-[20rem] -translate-x-1/2 rounded-lg border-[0.5px] border-neutral-300 bg-neutral-50 p-4 shadow-md transition-opacity duration-200 dark:border-neutral-700 starting:opacity-0">+class="dark:shadow-dark-700 flex items-center gap-1 rounded-lg bg-blue-500 px-2 py-1.5 text-xs text-white shadow-xs select-none hover:bg-blue-600 active:bg-blue-700 dark:bg-blue-600 dark:hover:bg-blue-500 dark:active:bg-blue-400"
+4
src/components/create/state.ts
+4
src/components/create/state.ts
+1
src/components/editor.tsx
+1
src/components/editor.tsx
+29
-48
src/components/create/index.tsx
+29
-48
src/components/create/index.tsx
···························-class="flex items-center gap-1 rounded-sm p-1.5 text-xs hover:bg-neutral-200 active:bg-neutral-300 dark:hover:bg-neutral-700 dark:active:bg-neutral-600"
+2
-2
src/components/create/confirm-submit.tsx
+2
-2
src/components/create/confirm-submit.tsx
···<div class="dark:bg-dark-300 dark:shadow-dark-700 absolute top-70 left-[50%] w-[24rem] -translate-x-1/2 rounded-lg border-[0.5px] border-neutral-300 bg-neutral-50 p-4 shadow-md transition-opacity duration-200 dark:border-neutral-700 starting:opacity-0">···