This commit is contained in:
parent
cfe3a01c1e
commit
c7dd20a46b
68
.gitea/workflows/hckrnws.yaml
Normal file
68
.gitea/workflows/hckrnws.yaml
Normal file
@ -0,0 +1,68 @@
|
||||
name: hckrnws
|
||||
run-name: hckrnws
|
||||
env:
|
||||
REPO_NAME: hckrnws
|
||||
REMOTE_REPO: https://github.com/rajatkulkarni95/hckrnws.git
|
||||
BUILD_PLATFORM: linux/arm64
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 0 1 */3 *" # every 3 months
|
||||
push:
|
||||
paths:
|
||||
- ".gitea/workflows/hckrnws.yaml"
|
||||
- "dockerfiles/hckrnws.Dockerfile"
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: runner
|
||||
container:
|
||||
image: git.opnxng.com/opnxng/docker-buildx:latest
|
||||
steps:
|
||||
- name: Check latest upstream commit
|
||||
run: |
|
||||
STORED_COMMIT=$(curl -H "Authorization: Bearer ${{ secrets.NT }}" -s "https://nt.opnxng.com/${REPO_NAME}/raw?poll=1" | tail -n 1)
|
||||
LATEST_COMMIT=$(git ls-remote ${REMOTE_REPO} | awk '{print $1}' | head -1)
|
||||
echo "STORED_COMMIT=${STORED_COMMIT}" >> "$GITHUB_ENV"
|
||||
echo "LATEST_COMMIT=${LATEST_COMMIT}" >> "$GITHUB_ENV"
|
||||
echo "Stored Commit: ${STORED_COMMIT}"
|
||||
echo "Latest Commit: ${LATEST_COMMIT}"
|
||||
|
||||
- name: Build and push Docker image
|
||||
run: |
|
||||
if [ "$STORED_COMMIT" != "$LATEST_COMMIT" ]; then
|
||||
echo "Found a new commit, building new image"
|
||||
# Create and use Docker Buildx builder
|
||||
docker buildx create --use --name buildx
|
||||
# Login to Package Registry
|
||||
echo "${{ secrets.TOKEN }}" | docker login git.opnxng.com -u ${{ gitea.repository_owner }} --password-stdin
|
||||
# Build and push Docker image
|
||||
mkdir temp
|
||||
cd temp
|
||||
git clone ${REMOTE_REPO} .
|
||||
curl -JL https://git.opnxng.com/opnxng/docker-images/raw/branch/main/copy/globals.css -o ./src/styles/globals.css
|
||||
curl -JL https://git.opnxng.com/opnxng/docker-images/raw/branch/main/dockerfiles/hckrnws.Dockerfile -o Dockerfile
|
||||
docker buildx build \
|
||||
--platform ${BUILD_PLATFORM} \
|
||||
-t git.opnxng.com/${{ gitea.repository_owner }}/${REPO_NAME}:latest \
|
||||
-f ./Dockerfile \
|
||||
--push . && \
|
||||
curl -H prio:low -d "Built and pushed ${REPO_NAME}" https://ntfy.opnxng.com/build || \
|
||||
{ curl -H tags:warning -H prio:high -d "Built and pushed ${REPO_NAME} failed!" https://ntfy.opnxng.com/build ; exit 1; }
|
||||
# Remove Docker Buildx builder
|
||||
docker buildx rm buildx
|
||||
else
|
||||
echo "No new commit, skipped build"
|
||||
fi
|
||||
|
||||
- name: Update stored commit
|
||||
run: |
|
||||
if [ "$STORED_COMMIT" != "$LATEST_COMMIT" ]; then
|
||||
curl -H "Authorization: Bearer ${{ secrets.NT }}" -d $(git ls-remote ${REMOTE_REPO} | awk '{print $1}' | head -1) "https://nt.opnxng.com/${REPO_NAME}"
|
||||
STORED_COMMIT=$(curl -H "Authorization: Bearer ${{ secrets.NT }}" -s "https://nt.opnxng.com/${REPO_NAME}/raw?poll=1" | tail -n 1)
|
||||
echo "STORED_COMMIT=${STORED_COMMIT}" >> "$GITHUB_ENV"
|
||||
else
|
||||
curl -H "Authorization: Bearer ${{ secrets.NT }}" -d $(git ls-remote ${REMOTE_REPO} | awk '{print $1}' | head -1) "https://nt.opnxng.com/${REPO_NAME}"
|
||||
STORED_COMMIT=$(curl -H "Authorization: Bearer ${{ secrets.NT }}" -s "https://nt.opnxng.com/${REPO_NAME}/raw?poll=1" | tail -n 1)
|
||||
echo "STORED_COMMIT=${STORED_COMMIT}" >> "$GITHUB_ENV"
|
||||
exit 1
|
||||
fi
|
857
copy/globals.css
Normal file
857
copy/globals.css
Normal file
@ -0,0 +1,857 @@
|
||||
/*
|
||||
! tailwindcss v3.2.7 | MIT License | https://tailwindcss.com
|
||||
*/*,
|
||||
:after,
|
||||
:before {
|
||||
box-sizing:border-box;
|
||||
border:0 solid #e5e7eb
|
||||
}
|
||||
:after,
|
||||
:before {
|
||||
--tw-content:""
|
||||
}
|
||||
html {
|
||||
line-height:1.5;
|
||||
-webkit-text-size-adjust:100%;
|
||||
-moz-tab-size:4;
|
||||
-o-tab-size:4;
|
||||
tab-size:4;
|
||||
font-family:Karla,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;
|
||||
font-feature-settings:normal
|
||||
}
|
||||
body {
|
||||
margin:0;
|
||||
line-height:inherit
|
||||
}
|
||||
hr {
|
||||
height:0;
|
||||
color:inherit;
|
||||
border-top-width:1px
|
||||
}
|
||||
abbr:where([title]) {
|
||||
-webkit-text-decoration:underline dotted;
|
||||
text-decoration:underline dotted
|
||||
}
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
font-size:inherit;
|
||||
font-weight:inherit
|
||||
}
|
||||
a {
|
||||
color:inherit;
|
||||
text-decoration:inherit
|
||||
}
|
||||
b,
|
||||
strong {
|
||||
font-weight:bolder
|
||||
}
|
||||
code,
|
||||
kbd,
|
||||
pre,
|
||||
samp {
|
||||
font-family:Space Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;
|
||||
font-size:1em
|
||||
}
|
||||
small {
|
||||
font-size:80%
|
||||
}
|
||||
sub,
|
||||
sup {
|
||||
font-size:75%;
|
||||
line-height:0;
|
||||
position:relative;
|
||||
vertical-align:baseline
|
||||
}
|
||||
sub {
|
||||
bottom:-.25em
|
||||
}
|
||||
sup {
|
||||
top:-.5em
|
||||
}
|
||||
table {
|
||||
text-indent:0;
|
||||
border-color:inherit;
|
||||
border-collapse:collapse
|
||||
}
|
||||
button,
|
||||
input,
|
||||
optgroup,
|
||||
select,
|
||||
textarea {
|
||||
font-family:inherit;
|
||||
font-size:100%;
|
||||
font-weight:inherit;
|
||||
line-height:inherit;
|
||||
color:inherit;
|
||||
margin:0;
|
||||
padding:0
|
||||
}
|
||||
button,
|
||||
select {
|
||||
text-transform:none
|
||||
}
|
||||
[type=button],
|
||||
[type=reset],
|
||||
[type=submit],
|
||||
button {
|
||||
-webkit-appearance:button;
|
||||
background-color:transparent;
|
||||
background-image:none
|
||||
}
|
||||
:-moz-focusring {
|
||||
outline:auto
|
||||
}
|
||||
:-moz-ui-invalid {
|
||||
box-shadow:none
|
||||
}
|
||||
progress {
|
||||
vertical-align:baseline
|
||||
}
|
||||
::-webkit-inner-spin-button,
|
||||
::-webkit-outer-spin-button {
|
||||
height:auto
|
||||
}
|
||||
[type=search] {
|
||||
-webkit-appearance:textfield;
|
||||
outline-offset:-2px
|
||||
}
|
||||
::-webkit-search-decoration {
|
||||
-webkit-appearance:none
|
||||
}
|
||||
::-webkit-file-upload-button {
|
||||
-webkit-appearance:button;
|
||||
font:inherit
|
||||
}
|
||||
summary {
|
||||
display:list-item
|
||||
}
|
||||
blockquote,
|
||||
dd,
|
||||
dl,
|
||||
figure,
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6,
|
||||
hr,
|
||||
p,
|
||||
pre {
|
||||
margin:0
|
||||
}
|
||||
fieldset {
|
||||
margin:0
|
||||
}
|
||||
fieldset,
|
||||
legend {
|
||||
padding:0
|
||||
}
|
||||
menu,
|
||||
ol,
|
||||
ul {
|
||||
list-style:none;
|
||||
margin:0;
|
||||
padding:0
|
||||
}
|
||||
textarea {
|
||||
resize:vertical
|
||||
}
|
||||
input::-moz-placeholder,
|
||||
textarea::-moz-placeholder {
|
||||
opacity:1;
|
||||
color:#9ca3af
|
||||
}
|
||||
input::placeholder,
|
||||
textarea::placeholder {
|
||||
opacity:1;
|
||||
color:#9ca3af
|
||||
}
|
||||
[role=button],
|
||||
button {
|
||||
cursor:pointer
|
||||
}
|
||||
:disabled {
|
||||
cursor:default
|
||||
}
|
||||
audio,
|
||||
canvas,
|
||||
embed,
|
||||
iframe,
|
||||
img,
|
||||
object,
|
||||
svg,
|
||||
video {
|
||||
display:block;
|
||||
vertical-align:middle
|
||||
}
|
||||
img,
|
||||
video {
|
||||
max-width:100%;
|
||||
height:auto
|
||||
}
|
||||
[hidden] {
|
||||
display:none
|
||||
}
|
||||
*,
|
||||
:after,
|
||||
:before {
|
||||
--tw-border-spacing-x:0;
|
||||
--tw-border-spacing-y:0;
|
||||
--tw-translate-x:0;
|
||||
--tw-translate-y:0;
|
||||
--tw-rotate:0;
|
||||
--tw-skew-x:0;
|
||||
--tw-skew-y:0;
|
||||
--tw-scale-x:1;
|
||||
--tw-scale-y:1;
|
||||
--tw-pan-x: ;
|
||||
--tw-pan-y: ;
|
||||
--tw-pinch-zoom: ;
|
||||
--tw-scroll-snap-strictness:proximity;
|
||||
--tw-ordinal: ;
|
||||
--tw-slashed-zero: ;
|
||||
--tw-numeric-figure: ;
|
||||
--tw-numeric-spacing: ;
|
||||
--tw-numeric-fraction: ;
|
||||
--tw-ring-inset: ;
|
||||
--tw-ring-offset-width:0px;
|
||||
--tw-ring-offset-color:#fff;
|
||||
--tw-ring-color:rgba(59,130,246,.5);
|
||||
--tw-ring-offset-shadow:0 0 #0000;
|
||||
--tw-ring-shadow:0 0 #0000;
|
||||
--tw-shadow:0 0 #0000;
|
||||
--tw-shadow-colored:0 0 #0000;
|
||||
--tw-blur: ;
|
||||
--tw-brightness: ;
|
||||
--tw-contrast: ;
|
||||
--tw-grayscale: ;
|
||||
--tw-hue-rotate: ;
|
||||
--tw-invert: ;
|
||||
--tw-saturate: ;
|
||||
--tw-sepia: ;
|
||||
--tw-drop-shadow: ;
|
||||
--tw-backdrop-blur: ;
|
||||
--tw-backdrop-brightness: ;
|
||||
--tw-backdrop-contrast: ;
|
||||
--tw-backdrop-grayscale: ;
|
||||
--tw-backdrop-hue-rotate: ;
|
||||
--tw-backdrop-invert: ;
|
||||
--tw-backdrop-opacity: ;
|
||||
--tw-backdrop-saturate: ;
|
||||
--tw-backdrop-sepia:
|
||||
}
|
||||
::backdrop {
|
||||
--tw-border-spacing-x:0;
|
||||
--tw-border-spacing-y:0;
|
||||
--tw-translate-x:0;
|
||||
--tw-translate-y:0;
|
||||
--tw-rotate:0;
|
||||
--tw-skew-x:0;
|
||||
--tw-skew-y:0;
|
||||
--tw-scale-x:1;
|
||||
--tw-scale-y:1;
|
||||
--tw-pan-x: ;
|
||||
--tw-pan-y: ;
|
||||
--tw-pinch-zoom: ;
|
||||
--tw-scroll-snap-strictness:proximity;
|
||||
--tw-ordinal: ;
|
||||
--tw-slashed-zero: ;
|
||||
--tw-numeric-figure: ;
|
||||
--tw-numeric-spacing: ;
|
||||
--tw-numeric-fraction: ;
|
||||
--tw-ring-inset: ;
|
||||
--tw-ring-offset-width:0px;
|
||||
--tw-ring-offset-color:#fff;
|
||||
--tw-ring-color:rgba(59,130,246,.5);
|
||||
--tw-ring-offset-shadow:0 0 #0000;
|
||||
--tw-ring-shadow:0 0 #0000;
|
||||
--tw-shadow:0 0 #0000;
|
||||
--tw-shadow-colored:0 0 #0000;
|
||||
--tw-blur: ;
|
||||
--tw-brightness: ;
|
||||
--tw-contrast: ;
|
||||
--tw-grayscale: ;
|
||||
--tw-hue-rotate: ;
|
||||
--tw-invert: ;
|
||||
--tw-saturate: ;
|
||||
--tw-sepia: ;
|
||||
--tw-drop-shadow: ;
|
||||
--tw-backdrop-blur: ;
|
||||
--tw-backdrop-brightness: ;
|
||||
--tw-backdrop-contrast: ;
|
||||
--tw-backdrop-grayscale: ;
|
||||
--tw-backdrop-hue-rotate: ;
|
||||
--tw-backdrop-invert: ;
|
||||
--tw-backdrop-opacity: ;
|
||||
--tw-backdrop-saturate: ;
|
||||
--tw-backdrop-sepia:
|
||||
}
|
||||
.relative {
|
||||
position:relative
|
||||
}
|
||||
.m-0 {
|
||||
margin:0
|
||||
}
|
||||
.mx-auto {
|
||||
margin-left:auto;
|
||||
margin-right:auto
|
||||
}
|
||||
.my-2 {
|
||||
margin-top:.5rem;
|
||||
margin-bottom:.5rem
|
||||
}
|
||||
.mb-0 {
|
||||
margin-bottom:0
|
||||
}
|
||||
.mb-0\.5 {
|
||||
margin-bottom:.125rem
|
||||
}
|
||||
.mb-1 {
|
||||
margin-bottom:.25rem
|
||||
}
|
||||
.mb-2 {
|
||||
margin-bottom:.5rem
|
||||
}
|
||||
.mb-3 {
|
||||
margin-bottom:.75rem
|
||||
}
|
||||
.mb-8 {
|
||||
margin-bottom:2rem
|
||||
}
|
||||
.ml-0 {
|
||||
margin-left:0
|
||||
}
|
||||
.ml-0\.5 {
|
||||
margin-left:.125rem
|
||||
}
|
||||
.ml-1 {
|
||||
margin-left:.25rem
|
||||
}
|
||||
.ml-2 {
|
||||
margin-left:.5rem
|
||||
}
|
||||
.ml-auto {
|
||||
margin-left:auto
|
||||
}
|
||||
.mr-1 {
|
||||
margin-right:.25rem
|
||||
}
|
||||
.mr-2 {
|
||||
margin-right:.5rem
|
||||
}
|
||||
.mr-3 {
|
||||
margin-right:.75rem
|
||||
}
|
||||
.mt-0 {
|
||||
margin-top:0
|
||||
}
|
||||
.mt-0\.5 {
|
||||
margin-top:.125rem
|
||||
}
|
||||
.mt-1 {
|
||||
margin-top:.25rem
|
||||
}
|
||||
.mt-3 {
|
||||
margin-top:.75rem
|
||||
}
|
||||
.mt-4 {
|
||||
margin-top:1rem
|
||||
}
|
||||
.mt-8 {
|
||||
margin-top:2rem
|
||||
}
|
||||
.mt-auto {
|
||||
margin-top:auto
|
||||
}
|
||||
.flex {
|
||||
display:flex
|
||||
}
|
||||
.hidden {
|
||||
display:none
|
||||
}
|
||||
.h-3 {
|
||||
height:.75rem
|
||||
}
|
||||
.h-4 {
|
||||
height:1rem
|
||||
}
|
||||
.min-h-screen {
|
||||
min-height:100vh
|
||||
}
|
||||
.w-20 {
|
||||
width:5rem
|
||||
}
|
||||
.w-3 {
|
||||
width:.75rem
|
||||
}
|
||||
.w-32 {
|
||||
width:8rem
|
||||
}
|
||||
.w-4 {
|
||||
width:1rem
|
||||
}
|
||||
.w-fit {
|
||||
width:-moz-fit-content;
|
||||
width:fit-content
|
||||
}
|
||||
.w-full {
|
||||
width:100%
|
||||
}
|
||||
.max-w-\[128px\] {
|
||||
max-width:128px
|
||||
}
|
||||
.max-w-\[156px\] {
|
||||
max-width:156px
|
||||
}
|
||||
.flex-1 {
|
||||
flex:1 1 0%
|
||||
}
|
||||
.flex-none {
|
||||
flex:none
|
||||
}
|
||||
.cursor-default {
|
||||
cursor:default
|
||||
}
|
||||
.flex-col {
|
||||
flex-direction:column
|
||||
}
|
||||
.items-center {
|
||||
align-items:center
|
||||
}
|
||||
.justify-start {
|
||||
justify-content:flex-start
|
||||
}
|
||||
.justify-end {
|
||||
justify-content:flex-end
|
||||
}
|
||||
.justify-center {
|
||||
justify-content:center
|
||||
}
|
||||
.justify-between {
|
||||
justify-content:space-between
|
||||
}
|
||||
.overflow-x-hidden {
|
||||
overflow-x:hidden
|
||||
}
|
||||
.truncate {
|
||||
overflow:hidden;
|
||||
text-overflow:ellipsis
|
||||
}
|
||||
.truncate,
|
||||
.whitespace-nowrap {
|
||||
white-space:nowrap
|
||||
}
|
||||
.whitespace-pre-line {
|
||||
white-space:pre-line
|
||||
}
|
||||
.rounded {
|
||||
border-radius:.25rem
|
||||
}
|
||||
.rounded-full {
|
||||
border-radius:9999px
|
||||
}
|
||||
.rounded-md {
|
||||
border-radius:.375rem
|
||||
}
|
||||
.rounded-l-full {
|
||||
border-top-left-radius:9999px;
|
||||
border-bottom-left-radius:9999px
|
||||
}
|
||||
.rounded-r-full {
|
||||
border-top-right-radius:9999px;
|
||||
border-bottom-right-radius:9999px
|
||||
}
|
||||
.border {
|
||||
border-width:1px
|
||||
}
|
||||
.border-b {
|
||||
border-bottom-width:1px
|
||||
}
|
||||
.border-l-2 {
|
||||
border-left-width:2px
|
||||
}
|
||||
.border-r {
|
||||
border-right-width:1px
|
||||
}
|
||||
.border-none {
|
||||
border-style:none
|
||||
}
|
||||
.border-primary {
|
||||
border-color:var(--color-border-primary)
|
||||
}
|
||||
.bg-op {
|
||||
background-color:var(--color-bg-op)
|
||||
}
|
||||
.bg-primary {
|
||||
background-color:var(--color-bg-primary)
|
||||
}
|
||||
.bg-secondary {
|
||||
background-color:var(--color-bg-secondary)
|
||||
}
|
||||
.bg-tertiary {
|
||||
background-color:var(--color-bg-tertiary)
|
||||
}
|
||||
.bg-transparent {
|
||||
background-color:transparent
|
||||
}
|
||||
.p-0 {
|
||||
padding:0
|
||||
}
|
||||
.p-0\.5 {
|
||||
padding:.125rem
|
||||
}
|
||||
.p-1 {
|
||||
padding:.25rem
|
||||
}
|
||||
.p-1\.5 {
|
||||
padding:.375rem
|
||||
}
|
||||
.p-4 {
|
||||
padding:1rem
|
||||
}
|
||||
.px-1 {
|
||||
padding-left:.25rem;
|
||||
padding-right:.25rem
|
||||
}
|
||||
.px-1\.5 {
|
||||
padding-left:.375rem;
|
||||
padding-right:.375rem
|
||||
}
|
||||
.px-2 {
|
||||
padding-left:.5rem;
|
||||
padding-right:.5rem
|
||||
}
|
||||
.px-3 {
|
||||
padding-left:.75rem;
|
||||
padding-right:.75rem
|
||||
}
|
||||
.px-4 {
|
||||
padding-left:1rem;
|
||||
padding-right:1rem
|
||||
}
|
||||
.py-0 {
|
||||
padding-top:0;
|
||||
padding-bottom:0
|
||||
}
|
||||
.py-0\.5 {
|
||||
padding-top:.125rem;
|
||||
padding-bottom:.125rem
|
||||
}
|
||||
.py-1 {
|
||||
padding-top:.25rem;
|
||||
padding-bottom:.25rem
|
||||
}
|
||||
.py-1\.5 {
|
||||
padding-top:.375rem;
|
||||
padding-bottom:.375rem
|
||||
}
|
||||
.py-2 {
|
||||
padding-top:.5rem;
|
||||
padding-bottom:.5rem
|
||||
}
|
||||
.py-3 {
|
||||
padding-top:.75rem;
|
||||
padding-bottom:.75rem
|
||||
}
|
||||
.pb-1 {
|
||||
padding-bottom:.25rem
|
||||
}
|
||||
.pl-0 {
|
||||
padding-left:0
|
||||
}
|
||||
.pl-3 {
|
||||
padding-left:.75rem
|
||||
}
|
||||
.pr-2 {
|
||||
padding-right:.5rem
|
||||
}
|
||||
.pt-0 {
|
||||
padding-top:0
|
||||
}
|
||||
.text-center {
|
||||
text-align:center
|
||||
}
|
||||
.font-mono {
|
||||
font-family:Space Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace
|
||||
}
|
||||
.font-sans {
|
||||
font-family:Karla,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji
|
||||
}
|
||||
.text-\[10px\] {
|
||||
font-size:10px
|
||||
}
|
||||
.text-base {
|
||||
font-size:1rem;
|
||||
line-height:1.5rem
|
||||
}
|
||||
.text-lg {
|
||||
font-size:1.125rem;
|
||||
line-height:1.75rem
|
||||
}
|
||||
.text-sm {
|
||||
font-size:.875rem;
|
||||
line-height:1.25rem
|
||||
}
|
||||
.text-xl {
|
||||
font-size:1.25rem;
|
||||
line-height:1.75rem
|
||||
}
|
||||
.text-xs {
|
||||
font-size:.75rem;
|
||||
line-height:1rem
|
||||
}
|
||||
.font-medium {
|
||||
font-weight:500
|
||||
}
|
||||
.font-normal {
|
||||
font-weight:400
|
||||
}
|
||||
.font-semibold {
|
||||
font-weight:600
|
||||
}
|
||||
.text-amber-400 {
|
||||
--tw-text-opacity:1;
|
||||
color:rgb(251 191 36/var(--tw-text-opacity))
|
||||
}
|
||||
.text-icon {
|
||||
color:var(--color-text-icon)
|
||||
}
|
||||
.text-primary {
|
||||
color:var(--color-text-secondary)
|
||||
}
|
||||
.text-secondary {
|
||||
color:var(--color-text-secondary)
|
||||
}
|
||||
.text-tertiary {
|
||||
color:var(--color-text-tertiary)
|
||||
}
|
||||
.antialiased {
|
||||
-webkit-font-smoothing:antialiased;
|
||||
-moz-osx-font-smoothing:grayscale
|
||||
}
|
||||
.shadow-sm {
|
||||
--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);
|
||||
--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);
|
||||
box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)
|
||||
}
|
||||
.outline-none {
|
||||
outline:2px solid transparent;
|
||||
outline-offset:2px
|
||||
}
|
||||
.ring-0 {
|
||||
--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
|
||||
--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
|
||||
box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)
|
||||
}
|
||||
.filter {
|
||||
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)
|
||||
}
|
||||
.duration-100 {
|
||||
transition-duration:.1s
|
||||
}
|
||||
.duration-150 {
|
||||
transition-duration:.15s
|
||||
}
|
||||
* {
|
||||
box-sizing:border-box
|
||||
}
|
||||
a,
|
||||
button {
|
||||
outline:none
|
||||
}
|
||||
.quotes {
|
||||
margin-top:1rem!important;
|
||||
margin-bottom:1rem!important;
|
||||
border-left-width:2px;
|
||||
border-color:var(--color-border-secondary);
|
||||
padding-left:1rem;
|
||||
padding-right:1rem;
|
||||
color:var(--color-text-tertiary)
|
||||
}
|
||||
/* App Themes */
|
||||
|
||||
[data-theme="light"] {
|
||||
--color-text-primary: #1C1B1A; /* 950 (dark gray) */
|
||||
--color-text-secondary: #1C1B1A; /* 950 (dark gray) */
|
||||
--color-text-tertiary: #CECDC3; /* 200 (light gray) */
|
||||
--color-text-code: #100F0F; /* black */
|
||||
--color-text-icon: #403E3C; /* 800 (dark gray) */
|
||||
--color-text-btn: #F0F0F0; /* modified to a pure light gray */
|
||||
--color-text-link: #4385BE; /* blue */
|
||||
|
||||
--color-bg-primary: #F0F0F0; /* modified to a pure light gray (formerly paper) */
|
||||
--color-bg-secondary: #E0E0E0; /* modified to a more neutral light gray */
|
||||
--color-bg-tertiary: #D0D0D0; /* modified to a very light gray */
|
||||
--color-bg-hover: #E0E0E0; /* modified (similar to secondary) */
|
||||
--color-bg-tooltip: #F2F2F2; /* adjusted for a neutral light gray */
|
||||
--color-bg-code: #CECDC3; /* 200 (light gray) */
|
||||
--color-bg-op: #D0A215; /* still yellow but usually used in context */
|
||||
--color-bg-btn: #100F0F; /* black */
|
||||
|
||||
--color-border-primary: #B7B5AC; /* 300 (light gray) */
|
||||
--color-border-secondary: #878580; /* 500 (medium gray) */
|
||||
}
|
||||
|
||||
[data-theme="dark"] {
|
||||
--color-text-primary: #E0E0E0; /* modified to a light gray (formerly paper) */
|
||||
--color-text-secondary: #B7B5AC; /* 300 (medium gray) */
|
||||
--color-text-tertiary: #CECDC3; /* 200 (light gray) */
|
||||
--color-text-code: #E0E0E0; /* modified to a light gray (formerly paper) */
|
||||
--color-text-icon: #6F6E69; /* 600 (dark gray) */
|
||||
--color-text-btn: #100F0F; /* black */
|
||||
--color-text-link: #4385BE; /* blue */
|
||||
|
||||
--color-bg-primary: #100F0F; /* black */
|
||||
--color-bg-secondary: #1C1B1A; /* 950 (dark gray) */
|
||||
--color-bg-tertiary: #282726; /* 900 (dark gray) */
|
||||
--color-bg-hover: #181818; /* darkened color for hover */
|
||||
--color-bg-tooltip: #1A1A1A; /* dark gray */
|
||||
--color-bg-code: #403E3C; /* 800 (dark gray) */
|
||||
--color-bg-op: #5E409D; /* purple */
|
||||
--color-bg-btn: #E0E0E0; /* modified to a light gray (formerly paper) */
|
||||
|
||||
--color-border-primary: #1C1B1A; /* 950 (dark gray) */
|
||||
--color-border-secondary: #343331; /* 850 (dark gray) */
|
||||
}
|
||||
|
||||
[data-theme="andromeda"] {
|
||||
--color-text-primary: #100F0F; /* black */
|
||||
--color-text-secondary: #A5ABA8; /* still using adapted gray */
|
||||
--color-text-tertiary: #AEABB1; /* still using adapted gray */
|
||||
--color-text-code: #E0E0E0; /* light gray */
|
||||
--color-text-icon: #403E3C; /* 800 (dark gray) */
|
||||
|
||||
--color-bg-primary: #100F0F; /* black */
|
||||
--color-bg-secondary: #282726; /* 900 (dark gray) */
|
||||
--color-bg-tertiary: #343331; /* 850 (dark gray) */
|
||||
--color-bg-hover: #262930; /* darkened for hover */
|
||||
--color-bg-code: #1E2025; /* blackish tone for the code */
|
||||
--color-bg-tooltip: #1A1A1A; /* dark gray */
|
||||
|
||||
--color-border-primary: #2B2E37; /* adapted */
|
||||
--color-border-secondary: #24262D; /* adapted */
|
||||
}
|
||||
.hover\:border-secondary:hover {
|
||||
border-color:var(--color-border-secondary)
|
||||
}
|
||||
.hover\:bg-hover:hover {
|
||||
background-color:var(--color-bg-hover)
|
||||
}
|
||||
.hover\:bg-secondary:hover {
|
||||
background-color:var(--color-bg-secondary)
|
||||
}
|
||||
.hover\:bg-tertiary:hover {
|
||||
background-color:var(--color-bg-tertiary)
|
||||
}
|
||||
.hover\:text-primary:hover {
|
||||
color:var(--color-text-primary)
|
||||
}
|
||||
.focus-visible\:ring-1:focus-visible {
|
||||
--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
|
||||
--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
|
||||
box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)
|
||||
}
|
||||
.focus-visible\:ring-blue-500:focus-visible {
|
||||
--tw-ring-opacity:1;
|
||||
--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity))
|
||||
}
|
||||
.enabled\:hover\:bg-btn:hover:enabled {
|
||||
background-color:var(--color-bg-btn)
|
||||
}
|
||||
.disabled\:cursor-not-allowed:disabled {
|
||||
cursor:not-allowed
|
||||
}
|
||||
.disabled\:opacity-40:disabled {
|
||||
opacity:.4
|
||||
}
|
||||
.group:hover .group-hover\:text-btn {
|
||||
color:var(--color-text-btn)
|
||||
}
|
||||
.group:hover .group-hover\:text-primary {
|
||||
color:var(--color-text-primary)
|
||||
}
|
||||
@media (min-width:768px) {
|
||||
.md\:w-5\/6 {
|
||||
width:83.333333%
|
||||
}
|
||||
.md\:max-w-full {
|
||||
max-width:100%
|
||||
}
|
||||
.md\:overflow-visible {
|
||||
overflow:visible
|
||||
}
|
||||
.md\:whitespace-normal {
|
||||
white-space:normal
|
||||
}
|
||||
.md\:text-2xl {
|
||||
font-size:1.5rem;
|
||||
line-height:2rem
|
||||
}
|
||||
.md\:text-xl {
|
||||
font-size:1.25rem;
|
||||
line-height:1.75rem
|
||||
}
|
||||
}
|
||||
@media (min-width:1280px) {
|
||||
.xl\:w-\[900px\] {
|
||||
width:900px
|
||||
}
|
||||
}
|
||||
.\[\&\>p\>a\]\:whitespace-pre-line>p>a {
|
||||
white-space:pre-line
|
||||
}
|
||||
.\[\&\>p\>a\]\:text-link>p>a {
|
||||
color:var(--color-text-link)
|
||||
}
|
||||
.\[\&\>p\>a\]\:underline>p>a {
|
||||
text-decoration-line:underline
|
||||
}
|
||||
.\[\&\>p\]\:mb-1>p {
|
||||
margin-bottom:.25rem
|
||||
}
|
||||
.\[\&\>p\]\:whitespace-pre-line>p {
|
||||
white-space:pre-line
|
||||
}
|
||||
.\[\&\>pre\>code\]\:font-mono>pre>code {
|
||||
font-family:Space Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace
|
||||
}
|
||||
.\[\&\>pre\>code\]\:text-xs>pre>code {
|
||||
font-size:.75rem;
|
||||
line-height:1rem
|
||||
}
|
||||
@media (min-width:768px) {
|
||||
.md\:\[\&\>pre\>code\]\:text-sm>pre>code {
|
||||
font-size:.875rem;
|
||||
line-height:1.25rem
|
||||
}
|
||||
}
|
||||
.\[\&\>pre\]\:my-2>pre {
|
||||
margin-top:.5rem;
|
||||
margin-bottom:.5rem
|
||||
}
|
||||
.\[\&\>pre\]\:overflow-x-auto>pre {
|
||||
overflow-x:auto
|
||||
}
|
||||
.\[\&\>pre\]\:whitespace-pre-line>pre {
|
||||
white-space:pre-line
|
||||
}
|
||||
.\[\&\>pre\]\:rounded>pre {
|
||||
border-radius:.25rem
|
||||
}
|
||||
.\[\&\>pre\]\:border>pre {
|
||||
border-width:1px
|
||||
}
|
||||
.\[\&\>pre\]\:border-primary>pre {
|
||||
border-color:var(--color-border-primary)
|
||||
}
|
||||
.\[\&\>pre\]\:bg-code>pre {
|
||||
background-color:var(--color-bg-code)
|
||||
}
|
||||
.\[\&\>pre\]\:p-2>pre {
|
||||
padding:.5rem
|
||||
}
|
23
dockerfiles/hckrnws.Dockerfile
Executable file
23
dockerfiles/hckrnws.Dockerfile
Executable file
@ -0,0 +1,23 @@
|
||||
# Use the official Node.js image
|
||||
FROM node:lts-slim
|
||||
|
||||
# Set the working directory in the container
|
||||
WORKDIR /app
|
||||
|
||||
# Copy package.json and pnpm-lock.yaml for installing dependencies
|
||||
COPY package.json pnpm-lock.yaml ./
|
||||
|
||||
# Install pnpm
|
||||
RUN npm install -g pnpm
|
||||
|
||||
# Install project dependencies
|
||||
RUN pnpm install
|
||||
|
||||
# Copy the rest of the application code
|
||||
COPY . .
|
||||
|
||||
# Expose the port
|
||||
EXPOSE 3000
|
||||
|
||||
# Command to run the application
|
||||
CMD ["pnpm", "run", "dev"]
|
Loading…
Reference in New Issue
Block a user