detached b84433b

Switch from UnoCSS to Tailwind because unocss@cli is a mess

scp

spc

scp
commit
b84433b49cd915727fef86e1855e66f4683f7a4a
author
bnema · · 2023-09-03 14:06 UTC
committer
bnema · · 2023-09-04 06:59 UTC
parent
3278bce
signature
unsigned
16 files · +2124 -116

this diff is incomplete: 1 file is too large to show. the totals above count everything; clone the repository to read the rest.

M .gitignore +2 -1
@@ -1,2 +1,3 @@
11 .env
2-node_modules/⏎̸
2+node_modules/
3+tmp/⏎̸
@@ -1,2 +1,3 @@
1 .env1 .env
2-node_modules/⏎̸2+node_modules/
3+tmp/⏎̸
M go.mod +1 -3
@@ -5,18 +5,16 @@ go 1.21.0
55 require (
66 github.com/PuerkitoBio/goquery v1.8.1
77 github.com/labstack/echo/v4 v4.11.1
8+ gopkg.in/yaml.v3 v3.0.1
89 )
910
1011 require (
1112 github.com/andybalholm/cascadia v1.3.1 // indirect
1213 github.com/golang-jwt/jwt v3.2.2+incompatible // indirect
13- github.com/google/safehtml v0.1.0 // indirect
1414 golang.org/x/time v0.3.0 // indirect
15- gopkg.in/yaml.v3 v3.0.1 // indirect
1615 )
1716
1817 require (
19- github.com/go-chi/chi v1.5.4
2018 github.com/labstack/gommon v0.4.0 // indirect
2119 github.com/mattn/go-colorable v0.1.13 // indirect
2220 github.com/mattn/go-isatty v0.0.19 // indirect
@@ -5,18 +5,16 @@ go 1.21.0
5 require (5 require (
6 github.com/PuerkitoBio/goquery v1.8.16 github.com/PuerkitoBio/goquery v1.8.1
7 github.com/labstack/echo/v4 v4.11.17 github.com/labstack/echo/v4 v4.11.1
8+ gopkg.in/yaml.v3 v3.0.1
8 )9 )
9 10
10 require (11 require (
11 github.com/andybalholm/cascadia v1.3.1 // indirect12 github.com/andybalholm/cascadia v1.3.1 // indirect
12 github.com/golang-jwt/jwt v3.2.2+incompatible // indirect13 github.com/golang-jwt/jwt v3.2.2+incompatible // indirect
13- github.com/google/safehtml v0.1.0 // indirect
14 golang.org/x/time v0.3.0 // indirect14 golang.org/x/time v0.3.0 // indirect
15- gopkg.in/yaml.v3 v3.0.1 // indirect
16 )15 )
17 16
18 require (17 require (
19- github.com/go-chi/chi v1.5.4
20 github.com/labstack/gommon v0.4.0 // indirect18 github.com/labstack/gommon v0.4.0 // indirect
21 github.com/mattn/go-colorable v0.1.13 // indirect19 github.com/mattn/go-colorable v0.1.13 // indirect
22 github.com/mattn/go-isatty v0.0.19 // indirect20 github.com/mattn/go-isatty v0.0.19 // indirect
M go.sum +1 -4 generated file: collapsed
M internal/ui/public/assets/css/custom.css +100 -24
@@ -1,26 +1,74 @@
1-/* Path: internal/ui/public/assets/css/custom.css */
1+/**
2+ * Path: internal/ui/public/assets/css/custom.css
3+ *
4+ * @format
5+ */
6+
27 /* Embeded path : assets/css/cutsom.css */
3-.fade-me-out.htmx-swapping {
4- opacity: 0;
5- transition: opacity 1s ease-out;
6- }
78
9+@tailwind base;
10+@tailwind components;
11+@tailwind utilities;
12+
13+/* Import IBM Plex Fonts */
14+@font-face {
15+ font-family: "IBMPlexSans-Bold";
16+ src: url("assets/fonts/IBMPlex/IBMPlexSans-Bold.woff2") format("woff2");
17+ font-weight: bold;
18+ font-style: normal;
19+}
20+
21+@font-face {
22+ font-family: "IBMPlexSans-Regular";
23+ src: url("assets/fonts/IBMPlex/IBMPlexSans-Regular.woff2") format("woff2");
24+ font-weight: normal;
25+ font-style: normal;
26+}
27+
28+/* Import Jetbrains Mono Nerd Font */
29+@font-face {
30+ font-family: "JetBrainsMono-Nerd-Font-Regular";
31+ src: url("assets/fonts/JetBrainsMonoNerd/JetBrainsMonoNerdFontMono-Regular.woff2")
32+ format("woff2");
33+ font-weight: normal;
34+ font-style: normal;
35+}
36+
37+@font-face {
38+ font-family: "LilitaOne-Regular";
39+ src: url("assets/fonts/LilitaOne/LilitaOne-Regular.woff2") format("woff2");
40+ font-weight: normal;
41+ font-style: normal;
42+}
43+
44+.fade-me-out.htmx-swapping {
45+ opacity: 0;
46+ transition: opacity 1s ease-out;
47+}
848
949 /* View transition */
1050 @keyframes fade-in {
11- from { opacity: 0; }
51+ from {
52+ opacity: 0;
53+ }
1254 }
1355
1456 @keyframes fade-out {
15- to { opacity: 0; }
57+ to {
58+ opacity: 0;
59+ }
1660 }
1761
1862 @keyframes slide-from-right {
19- from { transform: translateX(90px); }
63+ from {
64+ transform: translateX(90px);
65+ }
2066 }
2167
2268 @keyframes slide-to-left {
23- to { transform: translateX(-90px); }
69+ to {
70+ transform: translateX(-90px);
71+ }
2472 }
2573
2674 .slide-it {
@@ -29,13 +77,38 @@
2977
3078 ::view-transition-old(slide-it) {
3179 animation: 180ms cubic-bezier(0.4, 0, 1, 1) both fade-out,
32- 600ms cubic-bezier(0.4, 0, 0.2, 1) both slide-to-left;
80+ 600ms cubic-bezier(0.4, 0, 0.2, 1) both slide-to-left;
3381 }
3482 ::view-transition-new(slide-it) {
3583 animation: 420ms cubic-bezier(0, 0, 0.2, 1) 90ms both fade-in,
36- 600ms cubic-bezier(0.4, 0, 0.2, 1) both slide-from-right;
84+ 600ms cubic-bezier(0.4, 0, 0.2, 1) both slide-from-right;
85+}
86+h1,
87+h2,
88+h3,
89+h4,
90+h5,
91+h6 {
92+ font-family: "IBMPlexSans-Bold", sans-serif;
93+ font-style: normal;
94+ color: #000000;
95+ margin: 0;
96+ padding: 0;
97+}
98+.gordon-title {
99+ font-family: "LilitaOne-Regular", sans-serif;
100+ font-style: normal;
101+ color: #000000;
102+ margin: 0;
103+ padding: 0;
104+}
105+.gordon-v-subtitle {
106+ font-family: "IBMPlexSans-Regular", sans-serif;
107+ font-style: normal;
108+ color: #000000;
109+ margin: 0;
110+ padding: 0;
37111 }
38-
39112
40113 .circle-shadow {
41114 width: 100%;
@@ -43,15 +116,18 @@
43116 }
44117
45118 .circle-shadow::after {
46- position: absolute;
47- width: 50%;
48- height: 0.4rem;
49- margin: auto;
50- background: rgba(0, 0, 0, 0.1);
51- border-radius: 50%;
52- z-index: -1;
53- bottom: 2%;
54- content: "";
55- box-shadow: 0 0 1px 0.3rem rgba(0, 0, 0, 0.1);
56-
57-}⏎̸
119+ position: absolute;
120+ width: 50%;
121+ height: 0.4rem;
122+ margin: auto;
123+ background: rgba(0, 0, 0, 0.1);
124+ border-radius: 50%;
125+ z-index: -1;
126+ bottom: 2%;
127+ content: "";
128+ box-shadow: 0 0 1px 0.3rem rgba(0, 0, 0, 0.1);
129+}
130+
131+.iconoir {
132+ margin-right: 8px;
133+}
@@ -1,26 +1,74 @@
1-/* Path: internal/ui/public/assets/css/custom.css */1+/**
2+ * Path: internal/ui/public/assets/css/custom.css
3+ *
4+ * @format
5+ */
6+
2 /* Embeded path : assets/css/cutsom.css */7 /* Embeded path : assets/css/cutsom.css */
3-.fade-me-out.htmx-swapping {
4- opacity: 0;
5- transition: opacity 1s ease-out;
6- }
7 8
9+@tailwind base;
10+@tailwind components;
11+@tailwind utilities;
12+
13+/* Import IBM Plex Fonts */
14+@font-face {
15+ font-family: "IBMPlexSans-Bold";
16+ src: url("assets/fonts/IBMPlex/IBMPlexSans-Bold.woff2") format("woff2");
17+ font-weight: bold;
18+ font-style: normal;
19+}
20+
21+@font-face {
22+ font-family: "IBMPlexSans-Regular";
23+ src: url("assets/fonts/IBMPlex/IBMPlexSans-Regular.woff2") format("woff2");
24+ font-weight: normal;
25+ font-style: normal;
26+}
27+
28+/* Import Jetbrains Mono Nerd Font */
29+@font-face {
30+ font-family: "JetBrainsMono-Nerd-Font-Regular";
31+ src: url("assets/fonts/JetBrainsMonoNerd/JetBrainsMonoNerdFontMono-Regular.woff2")
32+ format("woff2");
33+ font-weight: normal;
34+ font-style: normal;
35+}
36+
37+@font-face {
38+ font-family: "LilitaOne-Regular";
39+ src: url("assets/fonts/LilitaOne/LilitaOne-Regular.woff2") format("woff2");
40+ font-weight: normal;
41+ font-style: normal;
42+}
43+
44+.fade-me-out.htmx-swapping {
45+ opacity: 0;
46+ transition: opacity 1s ease-out;
47+}
8 48
9 /* View transition */49 /* View transition */
10 @keyframes fade-in {50 @keyframes fade-in {
11- from { opacity: 0; }51+ from {
52+ opacity: 0;
53+ }
12 }54 }
13 55
14 @keyframes fade-out {56 @keyframes fade-out {
15- to { opacity: 0; }57+ to {
58+ opacity: 0;
59+ }
16 }60 }
17 61
18 @keyframes slide-from-right {62 @keyframes slide-from-right {
19- from { transform: translateX(90px); }63+ from {
64+ transform: translateX(90px);
65+ }
20 }66 }
21 67
22 @keyframes slide-to-left {68 @keyframes slide-to-left {
23- to { transform: translateX(-90px); }69+ to {
70+ transform: translateX(-90px);
71+ }
24 }72 }
25 73
26 .slide-it {74 .slide-it {
@@ -29,13 +77,38 @@
29 77
30 ::view-transition-old(slide-it) {78 ::view-transition-old(slide-it) {
31 animation: 180ms cubic-bezier(0.4, 0, 1, 1) both fade-out,79 animation: 180ms cubic-bezier(0.4, 0, 1, 1) both fade-out,
32- 600ms cubic-bezier(0.4, 0, 0.2, 1) both slide-to-left;80+ 600ms cubic-bezier(0.4, 0, 0.2, 1) both slide-to-left;
33 }81 }
34 ::view-transition-new(slide-it) {82 ::view-transition-new(slide-it) {
35 animation: 420ms cubic-bezier(0, 0, 0.2, 1) 90ms both fade-in,83 animation: 420ms cubic-bezier(0, 0, 0.2, 1) 90ms both fade-in,
36- 600ms cubic-bezier(0.4, 0, 0.2, 1) both slide-from-right;84+ 600ms cubic-bezier(0.4, 0, 0.2, 1) both slide-from-right;
85+}
86+h1,
87+h2,
88+h3,
89+h4,
90+h5,
91+h6 {
92+ font-family: "IBMPlexSans-Bold", sans-serif;
93+ font-style: normal;
94+ color: #000000;
95+ margin: 0;
96+ padding: 0;
97+}
98+.gordon-title {
99+ font-family: "LilitaOne-Regular", sans-serif;
100+ font-style: normal;
101+ color: #000000;
102+ margin: 0;
103+ padding: 0;
104+}
105+.gordon-v-subtitle {
106+ font-family: "IBMPlexSans-Regular", sans-serif;
107+ font-style: normal;
108+ color: #000000;
109+ margin: 0;
110+ padding: 0;
37 }111 }
38-
39 112
40 .circle-shadow {113 .circle-shadow {
41 width: 100%;114 width: 100%;
@@ -43,15 +116,18 @@
43 }116 }
44 117
45 .circle-shadow::after {118 .circle-shadow::after {
46- position: absolute;119+ position: absolute;
47- width: 50%;120+ width: 50%;
48- height: 0.4rem;121+ height: 0.4rem;
49- margin: auto;122+ margin: auto;
50- background: rgba(0, 0, 0, 0.1);123+ background: rgba(0, 0, 0, 0.1);
51- border-radius: 50%;124+ border-radius: 50%;
52- z-index: -1;125+ z-index: -1;
53- bottom: 2%;126+ bottom: 2%;
54- content: "";127+ content: "";
55- box-shadow: 0 0 1px 0.3rem rgba(0, 0, 0, 0.1);128+ box-shadow: 0 0 1px 0.3rem rgba(0, 0, 0, 0.1);
56-129+}
57-}⏎̸130+
131+.iconoir {
132+ margin-right: 8px;
133+}
A internal/ui/public/assets/css/tailwind.css +912 -0
@@ -0,0 +1,912 @@
1+/**
2+ * Path: internal/ui/public/assets/css/custom.css
3+ *
4+ * @format
5+ */
6+
7+/* Embeded path : assets/css/cutsom.css */
8+
9+/*! tailwindcss v3.3.3 | MIT License | https://tailwindcss.com
10+ */
11+
12+/*
13+1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
14+2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
15+*/
16+
17+*,
18+::before,
19+::after {
20+ box-sizing: border-box;
21+ /* 1 */
22+ border-width: 0;
23+ /* 2 */
24+ border-style: solid;
25+ /* 2 */
26+ border-color: #e5e7eb;
27+ /* 2 */
28+}
29+
30+::before,
31+::after {
32+ --tw-content: '';
33+}
34+
35+/*
36+1. Use a consistent sensible line-height in all browsers.
37+2. Prevent adjustments of font size after orientation changes in iOS.
38+3. Use a more readable tab size.
39+4. Use the user's configured `sans` font-family by default.
40+5. Use the user's configured `sans` font-feature-settings by default.
41+6. Use the user's configured `sans` font-variation-settings by default.
42+*/
43+
44+html {
45+ line-height: 1.5;
46+ /* 1 */
47+ -webkit-text-size-adjust: 100%;
48+ /* 2 */
49+ -moz-tab-size: 4;
50+ /* 3 */
51+ -o-tab-size: 4;
52+ tab-size: 4;
53+ /* 3 */
54+ font-family: 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";
55+ /* 4 */
56+ font-feature-settings: normal;
57+ /* 5 */
58+ font-variation-settings: normal;
59+ /* 6 */
60+}
61+
62+/*
63+1. Remove the margin in all browsers.
64+2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
65+*/
66+
67+body {
68+ margin: 0;
69+ /* 1 */
70+ line-height: inherit;
71+ /* 2 */
72+}
73+
74+/*
75+1. Add the correct height in Firefox.
76+2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
77+3. Ensure horizontal rules are visible by default.
78+*/
79+
80+hr {
81+ height: 0;
82+ /* 1 */
83+ color: inherit;
84+ /* 2 */
85+ border-top-width: 1px;
86+ /* 3 */
87+}
88+
89+/*
90+Add the correct text decoration in Chrome, Edge, and Safari.
91+*/
92+
93+abbr:where([title]) {
94+ -webkit-text-decoration: underline dotted;
95+ text-decoration: underline dotted;
96+}
97+
98+/*
99+Remove the default font size and weight for headings.
100+*/
101+
102+h1,
103+h2,
104+h3,
105+h4,
106+h5,
107+h6 {
108+ font-size: inherit;
109+ font-weight: inherit;
110+}
111+
112+/*
113+Reset links to optimize for opt-in styling instead of opt-out.
114+*/
115+
116+a {
117+ color: inherit;
118+ text-decoration: inherit;
119+}
120+
121+/*
122+Add the correct font weight in Edge and Safari.
123+*/
124+
125+b,
126+strong {
127+ font-weight: bolder;
128+}
129+
130+/*
131+1. Use the user's configured `mono` font family by default.
132+2. Correct the odd `em` font sizing in all browsers.
133+*/
134+
135+code,
136+kbd,
137+samp,
138+pre {
139+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
140+ /* 1 */
141+ font-size: 1em;
142+ /* 2 */
143+}
144+
145+/*
146+Add the correct font size in all browsers.
147+*/
148+
149+small {
150+ font-size: 80%;
151+}
152+
153+/*
154+Prevent `sub` and `sup` elements from affecting the line height in all browsers.
155+*/
156+
157+sub,
158+sup {
159+ font-size: 75%;
160+ line-height: 0;
161+ position: relative;
162+ vertical-align: baseline;
163+}
164+
165+sub {
166+ bottom: -0.25em;
167+}
168+
169+sup {
170+ top: -0.5em;
171+}
172+
173+/*
174+1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
175+2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
176+3. Remove gaps between table borders by default.
177+*/
178+
179+table {
180+ text-indent: 0;
181+ /* 1 */
182+ border-color: inherit;
183+ /* 2 */
184+ border-collapse: collapse;
185+ /* 3 */
186+}
187+
188+/*
189+1. Change the font styles in all browsers.
190+2. Remove the margin in Firefox and Safari.
191+3. Remove default padding in all browsers.
192+*/
193+
194+button,
195+input,
196+optgroup,
197+select,
198+textarea {
199+ font-family: inherit;
200+ /* 1 */
201+ font-feature-settings: inherit;
202+ /* 1 */
203+ font-variation-settings: inherit;
204+ /* 1 */
205+ font-size: 100%;
206+ /* 1 */
207+ font-weight: inherit;
208+ /* 1 */
209+ line-height: inherit;
210+ /* 1 */
211+ color: inherit;
212+ /* 1 */
213+ margin: 0;
214+ /* 2 */
215+ padding: 0;
216+ /* 3 */
217+}
218+
219+/*
220+Remove the inheritance of text transform in Edge and Firefox.
221+*/
222+
223+button,
224+select {
225+ text-transform: none;
226+}
227+
228+/*
229+1. Correct the inability to style clickable types in iOS and Safari.
230+2. Remove default button styles.
231+*/
232+
233+button,
234+[type='button'],
235+[type='reset'],
236+[type='submit'] {
237+ -webkit-appearance: button;
238+ /* 1 */
239+ background-color: transparent;
240+ /* 2 */
241+ background-image: none;
242+ /* 2 */
243+}
244+
245+/*
246+Use the modern Firefox focus style for all focusable elements.
247+*/
248+
249+:-moz-focusring {
250+ outline: auto;
251+}
252+
253+/*
254+Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
255+*/
256+
257+:-moz-ui-invalid {
258+ box-shadow: none;
259+}
260+
261+/*
262+Add the correct vertical alignment in Chrome and Firefox.
263+*/
264+
265+progress {
266+ vertical-align: baseline;
267+}
268+
269+/*
270+Correct the cursor style of increment and decrement buttons in Safari.
271+*/
272+
273+::-webkit-inner-spin-button,
274+::-webkit-outer-spin-button {
275+ height: auto;
276+}
277+
278+/*
279+1. Correct the odd appearance in Chrome and Safari.
280+2. Correct the outline style in Safari.
281+*/
282+
283+[type='search'] {
284+ -webkit-appearance: textfield;
285+ /* 1 */
286+ outline-offset: -2px;
287+ /* 2 */
288+}
289+
290+/*
291+Remove the inner padding in Chrome and Safari on macOS.
292+*/
293+
294+::-webkit-search-decoration {
295+ -webkit-appearance: none;
296+}
297+
298+/*
299+1. Correct the inability to style clickable types in iOS and Safari.
300+2. Change font properties to `inherit` in Safari.
301+*/
302+
303+::-webkit-file-upload-button {
304+ -webkit-appearance: button;
305+ /* 1 */
306+ font: inherit;
307+ /* 2 */
308+}
309+
310+/*
311+Add the correct display in Chrome and Safari.
312+*/
313+
314+summary {
315+ display: list-item;
316+}
317+
318+/*
319+Removes the default spacing and border for appropriate elements.
320+*/
321+
322+blockquote,
323+dl,
324+dd,
325+h1,
326+h2,
327+h3,
328+h4,
329+h5,
330+h6,
331+hr,
332+figure,
333+p,
334+pre {
335+ margin: 0;
336+}
337+
338+fieldset {
339+ margin: 0;
340+ padding: 0;
341+}
342+
343+legend {
344+ padding: 0;
345+}
346+
347+ol,
348+ul,
349+menu {
350+ list-style: none;
351+ margin: 0;
352+ padding: 0;
353+}
354+
355+/*
356+Reset default styling for dialogs.
357+*/
358+
359+dialog {
360+ padding: 0;
361+}
362+
363+/*
364+Prevent resizing textareas horizontally by default.
365+*/
366+
367+textarea {
368+ resize: vertical;
369+}
370+
371+/*
372+1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
373+2. Set the default placeholder color to the user's configured gray 400 color.
374+*/
375+
376+input::-moz-placeholder, textarea::-moz-placeholder {
377+ opacity: 1;
378+ /* 1 */
379+ color: #9ca3af;
380+ /* 2 */
381+}
382+
383+input::placeholder,
384+textarea::placeholder {
385+ opacity: 1;
386+ /* 1 */
387+ color: #9ca3af;
388+ /* 2 */
389+}
390+
391+/*
392+Set the default cursor for buttons.
393+*/
394+
395+button,
396+[role="button"] {
397+ cursor: pointer;
398+}
399+
400+/*
401+Make sure disabled buttons don't get the pointer cursor.
402+*/
403+
404+:disabled {
405+ cursor: default;
406+}
407+
408+/*
409+1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
410+2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
411+ This can trigger a poorly considered lint error in some tools but is included by design.
412+*/
413+
414+img,
415+svg,
416+video,
417+canvas,
418+audio,
419+iframe,
420+embed,
421+object {
422+ display: block;
423+ /* 1 */
424+ vertical-align: middle;
425+ /* 2 */
426+}
427+
428+/*
429+Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
430+*/
431+
432+img,
433+video {
434+ max-width: 100%;
435+ height: auto;
436+}
437+
438+/* Make elements with the HTML hidden attribute stay hidden by default */
439+
440+[hidden] {
441+ display: none;
442+}
443+
444+*, ::before, ::after {
445+ --tw-border-spacing-x: 0;
446+ --tw-border-spacing-y: 0;
447+ --tw-translate-x: 0;
448+ --tw-translate-y: 0;
449+ --tw-rotate: 0;
450+ --tw-skew-x: 0;
451+ --tw-skew-y: 0;
452+ --tw-scale-x: 1;
453+ --tw-scale-y: 1;
454+ --tw-pan-x: ;
455+ --tw-pan-y: ;
456+ --tw-pinch-zoom: ;
457+ --tw-scroll-snap-strictness: proximity;
458+ --tw-gradient-from-position: ;
459+ --tw-gradient-via-position: ;
460+ --tw-gradient-to-position: ;
461+ --tw-ordinal: ;
462+ --tw-slashed-zero: ;
463+ --tw-numeric-figure: ;
464+ --tw-numeric-spacing: ;
465+ --tw-numeric-fraction: ;
466+ --tw-ring-inset: ;
467+ --tw-ring-offset-width: 0px;
468+ --tw-ring-offset-color: #fff;
469+ --tw-ring-color: rgb(59 130 246 / 0.5);
470+ --tw-ring-offset-shadow: 0 0 #0000;
471+ --tw-ring-shadow: 0 0 #0000;
472+ --tw-shadow: 0 0 #0000;
473+ --tw-shadow-colored: 0 0 #0000;
474+ --tw-blur: ;
475+ --tw-brightness: ;
476+ --tw-contrast: ;
477+ --tw-grayscale: ;
478+ --tw-hue-rotate: ;
479+ --tw-invert: ;
480+ --tw-saturate: ;
481+ --tw-sepia: ;
482+ --tw-drop-shadow: ;
483+ --tw-backdrop-blur: ;
484+ --tw-backdrop-brightness: ;
485+ --tw-backdrop-contrast: ;
486+ --tw-backdrop-grayscale: ;
487+ --tw-backdrop-hue-rotate: ;
488+ --tw-backdrop-invert: ;
489+ --tw-backdrop-opacity: ;
490+ --tw-backdrop-saturate: ;
491+ --tw-backdrop-sepia: ;
492+}
493+
494+::backdrop {
495+ --tw-border-spacing-x: 0;
496+ --tw-border-spacing-y: 0;
497+ --tw-translate-x: 0;
498+ --tw-translate-y: 0;
499+ --tw-rotate: 0;
500+ --tw-skew-x: 0;
501+ --tw-skew-y: 0;
502+ --tw-scale-x: 1;
503+ --tw-scale-y: 1;
504+ --tw-pan-x: ;
505+ --tw-pan-y: ;
506+ --tw-pinch-zoom: ;
507+ --tw-scroll-snap-strictness: proximity;
508+ --tw-gradient-from-position: ;
509+ --tw-gradient-via-position: ;
510+ --tw-gradient-to-position: ;
511+ --tw-ordinal: ;
512+ --tw-slashed-zero: ;
513+ --tw-numeric-figure: ;
514+ --tw-numeric-spacing: ;
515+ --tw-numeric-fraction: ;
516+ --tw-ring-inset: ;
517+ --tw-ring-offset-width: 0px;
518+ --tw-ring-offset-color: #fff;
519+ --tw-ring-color: rgb(59 130 246 / 0.5);
520+ --tw-ring-offset-shadow: 0 0 #0000;
521+ --tw-ring-shadow: 0 0 #0000;
522+ --tw-shadow: 0 0 #0000;
523+ --tw-shadow-colored: 0 0 #0000;
524+ --tw-blur: ;
525+ --tw-brightness: ;
526+ --tw-contrast: ;
527+ --tw-grayscale: ;
528+ --tw-hue-rotate: ;
529+ --tw-invert: ;
530+ --tw-saturate: ;
531+ --tw-sepia: ;
532+ --tw-drop-shadow: ;
533+ --tw-backdrop-blur: ;
534+ --tw-backdrop-brightness: ;
535+ --tw-backdrop-contrast: ;
536+ --tw-backdrop-grayscale: ;
537+ --tw-backdrop-hue-rotate: ;
538+ --tw-backdrop-invert: ;
539+ --tw-backdrop-opacity: ;
540+ --tw-backdrop-saturate: ;
541+ --tw-backdrop-sepia: ;
542+}
543+
544+.mb-4 {
545+ margin-bottom: 1rem;
546+}
547+
548+.ml-4 {
549+ margin-left: 1rem;
550+}
551+
552+.flex {
553+ display: flex;
554+}
555+
556+.h-10 {
557+ height: 2.5rem;
558+}
559+
560+.h-24 {
561+ height: 6rem;
562+}
563+
564+.h-32 {
565+ height: 8rem;
566+}
567+
568+.h-44 {
569+ height: 11rem;
570+}
571+
572+.h-full {
573+ height: 100%;
574+}
575+
576+.w-1\/5 {
577+ width: 20%;
578+}
579+
580+.w-2\/6 {
581+ width: 33.333333%;
582+}
583+
584+.w-4\/6 {
585+ width: 66.666667%;
586+}
587+
588+.w-72 {
589+ width: 18rem;
590+}
591+
592+.w-full {
593+ width: 100%;
594+}
595+
596+.flex-1 {
597+ flex: 1 1 0%;
598+}
599+
600+.flex-grow {
601+ flex-grow: 1;
602+}
603+
604+.flex-col {
605+ flex-direction: column;
606+}
607+
608+.items-center {
609+ align-items: center;
610+}
611+
612+.justify-end {
613+ justify-content: flex-end;
614+}
615+
616+.justify-center {
617+ justify-content: center;
618+}
619+
620+.justify-between {
621+ justify-content: space-between;
622+}
623+
624+.space-x-4 > :not([hidden]) ~ :not([hidden]) {
625+ --tw-space-x-reverse: 0;
626+ margin-right: calc(1rem * var(--tw-space-x-reverse));
627+ margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));
628+}
629+
630+.space-y-2 > :not([hidden]) ~ :not([hidden]) {
631+ --tw-space-y-reverse: 0;
632+ margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
633+ margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
634+}
635+
636+.space-y-4 > :not([hidden]) ~ :not([hidden]) {
637+ --tw-space-y-reverse: 0;
638+ margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
639+ margin-bottom: calc(1rem * var(--tw-space-y-reverse));
640+}
641+
642+.rounded-lg {
643+ border-radius: 0.5rem;
644+}
645+
646+.rounded-md {
647+ border-radius: 0.375rem;
648+}
649+
650+.rounded-sm {
651+ border-radius: 0.125rem;
652+}
653+
654+.bg-gray-300 {
655+ --tw-bg-opacity: 1;
656+ background-color: rgb(209 213 219 / var(--tw-bg-opacity));
657+}
658+
659+.bg-transparent {
660+ background-color: transparent;
661+}
662+
663+.bg-white {
664+ --tw-bg-opacity: 1;
665+ background-color: rgb(255 255 255 / var(--tw-bg-opacity));
666+}
667+
668+.bg-zinc-200 {
669+ --tw-bg-opacity: 1;
670+ background-color: rgb(228 228 231 / var(--tw-bg-opacity));
671+}
672+
673+.p-4 {
674+ padding: 1rem;
675+}
676+
677+.px-2 {
678+ padding-left: 0.5rem;
679+ padding-right: 0.5rem;
680+}
681+
682+.text-2xl {
683+ font-size: 1.5rem;
684+ line-height: 2rem;
685+}
686+
687+.text-5xl {
688+ font-size: 3rem;
689+ line-height: 1;
690+}
691+
692+.text-sm {
693+ font-size: 0.875rem;
694+ line-height: 1.25rem;
695+}
696+
697+.text-xs {
698+ font-size: 0.75rem;
699+ line-height: 1rem;
700+}
701+
702+.font-bold {
703+ font-weight: 700;
704+}
705+
706+.font-semibold {
707+ font-weight: 600;
708+}
709+
710+.leading-3 {
711+ line-height: .75rem;
712+}
713+
714+.tracking-tighter {
715+ letter-spacing: -0.05em;
716+}
717+
718+.text-gray-300 {
719+ --tw-text-opacity: 1;
720+ color: rgb(209 213 219 / var(--tw-text-opacity));
721+}
722+
723+.text-sky-950 {
724+ --tw-text-opacity: 1;
725+ color: rgb(8 47 73 / var(--tw-text-opacity));
726+}
727+
728+.shadow {
729+ --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
730+ --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
731+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
732+}
733+
734+.outline-none {
735+ outline: 2px solid transparent;
736+ outline-offset: 2px;
737+}
738+
739+/* Import IBM Plex Fonts */
740+
741+@font-face {
742+ font-family: "IBMPlexSans-Bold";
743+
744+ src: url("assets/fonts/IBMPlex/IBMPlexSans-Bold.woff2") format("woff2");
745+
746+ font-weight: bold;
747+
748+ font-style: normal;
749+}
750+
751+@font-face {
752+ font-family: "IBMPlexSans-Regular";
753+
754+ src: url("assets/fonts/IBMPlex/IBMPlexSans-Regular.woff2") format("woff2");
755+
756+ font-weight: normal;
757+
758+ font-style: normal;
759+}
760+
761+/* Import Jetbrains Mono Nerd Font */
762+
763+@font-face {
764+ font-family: "JetBrainsMono-Nerd-Font-Regular";
765+
766+ src: url("assets/fonts/JetBrainsMonoNerd/JetBrainsMonoNerdFontMono-Regular.woff2")
767+ format("woff2");
768+
769+ font-weight: normal;
770+
771+ font-style: normal;
772+}
773+
774+@font-face {
775+ font-family: "LilitaOne-Regular";
776+
777+ src: url("assets/fonts/LilitaOne/LilitaOne-Regular.woff2") format("woff2");
778+
779+ font-weight: normal;
780+
781+ font-style: normal;
782+}
783+
784+.fade-me-out.htmx-swapping {
785+ opacity: 0;
786+ transition: opacity 1s ease-out;
787+}
788+
789+/* View transition */
790+
791+@keyframes fade-in {
792+ from {
793+ opacity: 0;
794+ }
795+}
796+
797+@keyframes fade-out {
798+ to {
799+ opacity: 0;
800+ }
801+}
802+
803+@keyframes slide-from-right {
804+ from {
805+ transform: translateX(90px);
806+ }
807+}
808+
809+@keyframes slide-to-left {
810+ to {
811+ transform: translateX(-90px);
812+ }
813+}
814+
815+.slide-it {
816+ view-transition-name: slide-it;
817+}
818+
819+::view-transition-old(slide-it) {
820+ animation: 180ms cubic-bezier(0.4, 0, 1, 1) both fade-out,
821+ 600ms cubic-bezier(0.4, 0, 0.2, 1) both slide-to-left;
822+}
823+
824+::view-transition-new(slide-it) {
825+ animation: 420ms cubic-bezier(0, 0, 0.2, 1) 90ms both fade-in,
826+ 600ms cubic-bezier(0.4, 0, 0.2, 1) both slide-from-right;
827+}
828+
829+h1,
830+h2,
831+h3,
832+h4,
833+h5,
834+h6 {
835+ font-family: "IBMPlexSans-Bold", sans-serif;
836+ font-style: normal;
837+ color: #000000;
838+ margin: 0;
839+ padding: 0;
840+}
841+
842+.gordon-title {
843+ font-family: "LilitaOne-Regular", sans-serif;
844+ font-style: normal;
845+ color: #000000;
846+ margin: 0;
847+ padding: 0;
848+}
849+
850+.gordon-v-subtitle {
851+ font-family: "IBMPlexSans-Regular", sans-serif;
852+ font-style: normal;
853+ color: #000000;
854+ margin: 0;
855+ padding: 0;
856+}
857+
858+.circle-shadow {
859+ width: 100%;
860+ position: relative;
861+}
862+
863+.circle-shadow::after {
864+ position: absolute;
865+ width: 50%;
866+ height: 0.4rem;
867+ margin: auto;
868+ background: rgba(0, 0, 0, 0.1);
869+ border-radius: 50%;
870+ z-index: -1;
871+ bottom: 2%;
872+ content: "";
873+ box-shadow: 0 0 1px 0.3rem rgba(0, 0, 0, 0.1);
874+}
875+
876+.iconoir {
877+ margin-right: 8px;
878+}
879+
880+@media (min-width: 640px) {
881+ .sm\:h-24 {
882+ height: 6rem;
883+ }
884+}
885+
886+@media (min-width: 768px) {
887+ .md\:p-8 {
888+ padding: 2rem;
889+ }
890+
891+ .md\:pt-10 {
892+ padding-top: 2.5rem;
893+ }
894+}
895+
896+@media (min-width: 1024px) {
897+ .lg\:text-4xl {
898+ font-size: 2.25rem;
899+ line-height: 2.5rem;
900+ }
901+}
902+
903+@media (min-width: 1280px) {
904+ .xl\:h-48 {
905+ height: 12rem;
906+ }
907+
908+ .xl\:text-5xl {
909+ font-size: 3rem;
910+ line-height: 1;
911+ }
912+}
@@ -0,0 +1,912 @@
1+/**
2+ * Path: internal/ui/public/assets/css/custom.css
3+ *
4+ * @format
5+ */
6+
7+/* Embeded path : assets/css/cutsom.css */
8+
9+/*! tailwindcss v3.3.3 | MIT License | https://tailwindcss.com
10+ */
11+
12+/*
13+1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
14+2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
15+*/
16+
17+*,
18+::before,
19+::after {
20+ box-sizing: border-box;
21+ /* 1 */
22+ border-width: 0;
23+ /* 2 */
24+ border-style: solid;
25+ /* 2 */
26+ border-color: #e5e7eb;
27+ /* 2 */
28+}
29+
30+::before,
31+::after {
32+ --tw-content: '';
33+}
34+
35+/*
36+1. Use a consistent sensible line-height in all browsers.
37+2. Prevent adjustments of font size after orientation changes in iOS.
38+3. Use a more readable tab size.
39+4. Use the user's configured `sans` font-family by default.
40+5. Use the user's configured `sans` font-feature-settings by default.
41+6. Use the user's configured `sans` font-variation-settings by default.
42+*/
43+
44+html {
45+ line-height: 1.5;
46+ /* 1 */
47+ -webkit-text-size-adjust: 100%;
48+ /* 2 */
49+ -moz-tab-size: 4;
50+ /* 3 */
51+ -o-tab-size: 4;
52+ tab-size: 4;
53+ /* 3 */
54+ font-family: 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";
55+ /* 4 */
56+ font-feature-settings: normal;
57+ /* 5 */
58+ font-variation-settings: normal;
59+ /* 6 */
60+}
61+
62+/*
63+1. Remove the margin in all browsers.
64+2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
65+*/
66+
67+body {
68+ margin: 0;
69+ /* 1 */
70+ line-height: inherit;
71+ /* 2 */
72+}
73+
74+/*
75+1. Add the correct height in Firefox.
76+2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
77+3. Ensure horizontal rules are visible by default.
78+*/
79+
80+hr {
81+ height: 0;
82+ /* 1 */
83+ color: inherit;
84+ /* 2 */
85+ border-top-width: 1px;
86+ /* 3 */
87+}
88+
89+/*
90+Add the correct text decoration in Chrome, Edge, and Safari.
91+*/
92+
93+abbr:where([title]) {
94+ -webkit-text-decoration: underline dotted;
95+ text-decoration: underline dotted;
96+}
97+
98+/*
99+Remove the default font size and weight for headings.
100+*/
101+
102+h1,
103+h2,
104+h3,
105+h4,
106+h5,
107+h6 {
108+ font-size: inherit;
109+ font-weight: inherit;
110+}
111+
112+/*
113+Reset links to optimize for opt-in styling instead of opt-out.
114+*/
115+
116+a {
117+ color: inherit;
118+ text-decoration: inherit;
119+}
120+
121+/*
122+Add the correct font weight in Edge and Safari.
123+*/
124+
125+b,
126+strong {
127+ font-weight: bolder;
128+}
129+
130+/*
131+1. Use the user's configured `mono` font family by default.
132+2. Correct the odd `em` font sizing in all browsers.
133+*/
134+
135+code,
136+kbd,
137+samp,
138+pre {
139+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
140+ /* 1 */
141+ font-size: 1em;
142+ /* 2 */
143+}
144+
145+/*
146+Add the correct font size in all browsers.
147+*/
148+
149+small {
150+ font-size: 80%;
151+}
152+
153+/*
154+Prevent `sub` and `sup` elements from affecting the line height in all browsers.
155+*/
156+
157+sub,
158+sup {
159+ font-size: 75%;
160+ line-height: 0;
161+ position: relative;
162+ vertical-align: baseline;
163+}
164+
165+sub {
166+ bottom: -0.25em;
167+}
168+
169+sup {
170+ top: -0.5em;
171+}
172+
173+/*
174+1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
175+2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
176+3. Remove gaps between table borders by default.
177+*/
178+
179+table {
180+ text-indent: 0;
181+ /* 1 */
182+ border-color: inherit;
183+ /* 2 */
184+ border-collapse: collapse;
185+ /* 3 */
186+}
187+
188+/*
189+1. Change the font styles in all browsers.
190+2. Remove the margin in Firefox and Safari.
191+3. Remove default padding in all browsers.
192+*/
193+
194+button,
195+input,
196+optgroup,
197+select,
198+textarea {
199+ font-family: inherit;
200+ /* 1 */
201+ font-feature-settings: inherit;
202+ /* 1 */
203+ font-variation-settings: inherit;
204+ /* 1 */
205+ font-size: 100%;
206+ /* 1 */
207+ font-weight: inherit;
208+ /* 1 */
209+ line-height: inherit;
210+ /* 1 */
211+ color: inherit;
212+ /* 1 */
213+ margin: 0;
214+ /* 2 */
215+ padding: 0;
216+ /* 3 */
217+}
218+
219+/*
220+Remove the inheritance of text transform in Edge and Firefox.
221+*/
222+
223+button,
224+select {
225+ text-transform: none;
226+}
227+
228+/*
229+1. Correct the inability to style clickable types in iOS and Safari.
230+2. Remove default button styles.
231+*/
232+
233+button,
234+[type='button'],
235+[type='reset'],
236+[type='submit'] {
237+ -webkit-appearance: button;
238+ /* 1 */
239+ background-color: transparent;
240+ /* 2 */
241+ background-image: none;
242+ /* 2 */
243+}
244+
245+/*
246+Use the modern Firefox focus style for all focusable elements.
247+*/
248+
249+:-moz-focusring {
250+ outline: auto;
251+}
252+
253+/*
254+Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
255+*/
256+
257+:-moz-ui-invalid {
258+ box-shadow: none;
259+}
260+
261+/*
262+Add the correct vertical alignment in Chrome and Firefox.
263+*/
264+
265+progress {
266+ vertical-align: baseline;
267+}
268+
269+/*
270+Correct the cursor style of increment and decrement buttons in Safari.
271+*/
272+
273+::-webkit-inner-spin-button,
274+::-webkit-outer-spin-button {
275+ height: auto;
276+}
277+
278+/*
279+1. Correct the odd appearance in Chrome and Safari.
280+2. Correct the outline style in Safari.
281+*/
282+
283+[type='search'] {
284+ -webkit-appearance: textfield;
285+ /* 1 */
286+ outline-offset: -2px;
287+ /* 2 */
288+}
289+
290+/*
291+Remove the inner padding in Chrome and Safari on macOS.
292+*/
293+
294+::-webkit-search-decoration {
295+ -webkit-appearance: none;
296+}
297+
298+/*
299+1. Correct the inability to style clickable types in iOS and Safari.
300+2. Change font properties to `inherit` in Safari.
301+*/
302+
303+::-webkit-file-upload-button {
304+ -webkit-appearance: button;
305+ /* 1 */
306+ font: inherit;
307+ /* 2 */
308+}
309+
310+/*
311+Add the correct display in Chrome and Safari.
312+*/
313+
314+summary {
315+ display: list-item;
316+}
317+
318+/*
319+Removes the default spacing and border for appropriate elements.
320+*/
321+
322+blockquote,
323+dl,
324+dd,
325+h1,
326+h2,
327+h3,
328+h4,
329+h5,
330+h6,
331+hr,
332+figure,
333+p,
334+pre {
335+ margin: 0;
336+}
337+
338+fieldset {
339+ margin: 0;
340+ padding: 0;
341+}
342+
343+legend {
344+ padding: 0;
345+}
346+
347+ol,
348+ul,
349+menu {
350+ list-style: none;
351+ margin: 0;
352+ padding: 0;
353+}
354+
355+/*
356+Reset default styling for dialogs.
357+*/
358+
359+dialog {
360+ padding: 0;
361+}
362+
363+/*
364+Prevent resizing textareas horizontally by default.
365+*/
366+
367+textarea {
368+ resize: vertical;
369+}
370+
371+/*
372+1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
373+2. Set the default placeholder color to the user's configured gray 400 color.
374+*/
375+
376+input::-moz-placeholder, textarea::-moz-placeholder {
377+ opacity: 1;
378+ /* 1 */
379+ color: #9ca3af;
380+ /* 2 */
381+}
382+
383+input::placeholder,
384+textarea::placeholder {
385+ opacity: 1;
386+ /* 1 */
387+ color: #9ca3af;
388+ /* 2 */
389+}
390+
391+/*
392+Set the default cursor for buttons.
393+*/
394+
395+button,
396+[role="button"] {
397+ cursor: pointer;
398+}
399+
400+/*
401+Make sure disabled buttons don't get the pointer cursor.
402+*/
403+
404+:disabled {
405+ cursor: default;
406+}
407+
408+/*
409+1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
410+2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
411+ This can trigger a poorly considered lint error in some tools but is included by design.
412+*/
413+
414+img,
415+svg,
416+video,
417+canvas,
418+audio,
419+iframe,
420+embed,
421+object {
422+ display: block;
423+ /* 1 */
424+ vertical-align: middle;
425+ /* 2 */
426+}
427+
428+/*
429+Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
430+*/
431+
432+img,
433+video {
434+ max-width: 100%;
435+ height: auto;
436+}
437+
438+/* Make elements with the HTML hidden attribute stay hidden by default */
439+
440+[hidden] {
441+ display: none;
442+}
443+
444+*, ::before, ::after {
445+ --tw-border-spacing-x: 0;
446+ --tw-border-spacing-y: 0;
447+ --tw-translate-x: 0;
448+ --tw-translate-y: 0;
449+ --tw-rotate: 0;
450+ --tw-skew-x: 0;
451+ --tw-skew-y: 0;
452+ --tw-scale-x: 1;
453+ --tw-scale-y: 1;
454+ --tw-pan-x: ;
455+ --tw-pan-y: ;
456+ --tw-pinch-zoom: ;
457+ --tw-scroll-snap-strictness: proximity;
458+ --tw-gradient-from-position: ;
459+ --tw-gradient-via-position: ;
460+ --tw-gradient-to-position: ;
461+ --tw-ordinal: ;
462+ --tw-slashed-zero: ;
463+ --tw-numeric-figure: ;
464+ --tw-numeric-spacing: ;
465+ --tw-numeric-fraction: ;
466+ --tw-ring-inset: ;
467+ --tw-ring-offset-width: 0px;
468+ --tw-ring-offset-color: #fff;
469+ --tw-ring-color: rgb(59 130 246 / 0.5);
470+ --tw-ring-offset-shadow: 0 0 #0000;
471+ --tw-ring-shadow: 0 0 #0000;
472+ --tw-shadow: 0 0 #0000;
473+ --tw-shadow-colored: 0 0 #0000;
474+ --tw-blur: ;
475+ --tw-brightness: ;
476+ --tw-contrast: ;
477+ --tw-grayscale: ;
478+ --tw-hue-rotate: ;
479+ --tw-invert: ;
480+ --tw-saturate: ;
481+ --tw-sepia: ;
482+ --tw-drop-shadow: ;
483+ --tw-backdrop-blur: ;
484+ --tw-backdrop-brightness: ;
485+ --tw-backdrop-contrast: ;
486+ --tw-backdrop-grayscale: ;
487+ --tw-backdrop-hue-rotate: ;
488+ --tw-backdrop-invert: ;
489+ --tw-backdrop-opacity: ;
490+ --tw-backdrop-saturate: ;
491+ --tw-backdrop-sepia: ;
492+}
493+
494+::backdrop {
495+ --tw-border-spacing-x: 0;
496+ --tw-border-spacing-y: 0;
497+ --tw-translate-x: 0;
498+ --tw-translate-y: 0;
499+ --tw-rotate: 0;
500+ --tw-skew-x: 0;
501+ --tw-skew-y: 0;
502+ --tw-scale-x: 1;
503+ --tw-scale-y: 1;
504+ --tw-pan-x: ;
505+ --tw-pan-y: ;
506+ --tw-pinch-zoom: ;
507+ --tw-scroll-snap-strictness: proximity;
508+ --tw-gradient-from-position: ;
509+ --tw-gradient-via-position: ;
510+ --tw-gradient-to-position: ;
511+ --tw-ordinal: ;
512+ --tw-slashed-zero: ;
513+ --tw-numeric-figure: ;
514+ --tw-numeric-spacing: ;
515+ --tw-numeric-fraction: ;
516+ --tw-ring-inset: ;
517+ --tw-ring-offset-width: 0px;
518+ --tw-ring-offset-color: #fff;
519+ --tw-ring-color: rgb(59 130 246 / 0.5);
520+ --tw-ring-offset-shadow: 0 0 #0000;
521+ --tw-ring-shadow: 0 0 #0000;
522+ --tw-shadow: 0 0 #0000;
523+ --tw-shadow-colored: 0 0 #0000;
524+ --tw-blur: ;
525+ --tw-brightness: ;
526+ --tw-contrast: ;
527+ --tw-grayscale: ;
528+ --tw-hue-rotate: ;
529+ --tw-invert: ;
530+ --tw-saturate: ;
531+ --tw-sepia: ;
532+ --tw-drop-shadow: ;
533+ --tw-backdrop-blur: ;
534+ --tw-backdrop-brightness: ;
535+ --tw-backdrop-contrast: ;
536+ --tw-backdrop-grayscale: ;
537+ --tw-backdrop-hue-rotate: ;
538+ --tw-backdrop-invert: ;
539+ --tw-backdrop-opacity: ;
540+ --tw-backdrop-saturate: ;
541+ --tw-backdrop-sepia: ;
542+}
543+
544+.mb-4 {
545+ margin-bottom: 1rem;
546+}
547+
548+.ml-4 {
549+ margin-left: 1rem;
550+}
551+
552+.flex {
553+ display: flex;
554+}
555+
556+.h-10 {
557+ height: 2.5rem;
558+}
559+
560+.h-24 {
561+ height: 6rem;
562+}
563+
564+.h-32 {
565+ height: 8rem;
566+}
567+
568+.h-44 {
569+ height: 11rem;
570+}
571+
572+.h-full {
573+ height: 100%;
574+}
575+
576+.w-1\/5 {
577+ width: 20%;
578+}
579+
580+.w-2\/6 {
581+ width: 33.333333%;
582+}
583+
584+.w-4\/6 {
585+ width: 66.666667%;
586+}
587+
588+.w-72 {
589+ width: 18rem;
590+}
591+
592+.w-full {
593+ width: 100%;
594+}
595+
596+.flex-1 {
597+ flex: 1 1 0%;
598+}
599+
600+.flex-grow {
601+ flex-grow: 1;
602+}
603+
604+.flex-col {
605+ flex-direction: column;
606+}
607+
608+.items-center {
609+ align-items: center;
610+}
611+
612+.justify-end {
613+ justify-content: flex-end;
614+}
615+
616+.justify-center {
617+ justify-content: center;
618+}
619+
620+.justify-between {
621+ justify-content: space-between;
622+}
623+
624+.space-x-4 > :not([hidden]) ~ :not([hidden]) {
625+ --tw-space-x-reverse: 0;
626+ margin-right: calc(1rem * var(--tw-space-x-reverse));
627+ margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));
628+}
629+
630+.space-y-2 > :not([hidden]) ~ :not([hidden]) {
631+ --tw-space-y-reverse: 0;
632+ margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
633+ margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
634+}
635+
636+.space-y-4 > :not([hidden]) ~ :not([hidden]) {
637+ --tw-space-y-reverse: 0;
638+ margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
639+ margin-bottom: calc(1rem * var(--tw-space-y-reverse));
640+}
641+
642+.rounded-lg {
643+ border-radius: 0.5rem;
644+}
645+
646+.rounded-md {
647+ border-radius: 0.375rem;
648+}
649+
650+.rounded-sm {
651+ border-radius: 0.125rem;
652+}
653+
654+.bg-gray-300 {
655+ --tw-bg-opacity: 1;
656+ background-color: rgb(209 213 219 / var(--tw-bg-opacity));
657+}
658+
659+.bg-transparent {
660+ background-color: transparent;
661+}
662+
663+.bg-white {
664+ --tw-bg-opacity: 1;
665+ background-color: rgb(255 255 255 / var(--tw-bg-opacity));
666+}
667+
668+.bg-zinc-200 {
669+ --tw-bg-opacity: 1;
670+ background-color: rgb(228 228 231 / var(--tw-bg-opacity));
671+}
672+
673+.p-4 {
674+ padding: 1rem;
675+}
676+
677+.px-2 {
678+ padding-left: 0.5rem;
679+ padding-right: 0.5rem;
680+}
681+
682+.text-2xl {
683+ font-size: 1.5rem;
684+ line-height: 2rem;
685+}
686+
687+.text-5xl {
688+ font-size: 3rem;
689+ line-height: 1;
690+}
691+
692+.text-sm {
693+ font-size: 0.875rem;
694+ line-height: 1.25rem;
695+}
696+
697+.text-xs {
698+ font-size: 0.75rem;
699+ line-height: 1rem;
700+}
701+
702+.font-bold {
703+ font-weight: 700;
704+}
705+
706+.font-semibold {
707+ font-weight: 600;
708+}
709+
710+.leading-3 {
711+ line-height: .75rem;
712+}
713+
714+.tracking-tighter {
715+ letter-spacing: -0.05em;
716+}
717+
718+.text-gray-300 {
719+ --tw-text-opacity: 1;
720+ color: rgb(209 213 219 / var(--tw-text-opacity));
721+}
722+
723+.text-sky-950 {
724+ --tw-text-opacity: 1;
725+ color: rgb(8 47 73 / var(--tw-text-opacity));
726+}
727+
728+.shadow {
729+ --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
730+ --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
731+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
732+}
733+
734+.outline-none {
735+ outline: 2px solid transparent;
736+ outline-offset: 2px;
737+}
738+
739+/* Import IBM Plex Fonts */
740+
741+@font-face {
742+ font-family: "IBMPlexSans-Bold";
743+
744+ src: url("assets/fonts/IBMPlex/IBMPlexSans-Bold.woff2") format("woff2");
745+
746+ font-weight: bold;
747+
748+ font-style: normal;
749+}
750+
751+@font-face {
752+ font-family: "IBMPlexSans-Regular";
753+
754+ src: url("assets/fonts/IBMPlex/IBMPlexSans-Regular.woff2") format("woff2");
755+
756+ font-weight: normal;
757+
758+ font-style: normal;
759+}
760+
761+/* Import Jetbrains Mono Nerd Font */
762+
763+@font-face {
764+ font-family: "JetBrainsMono-Nerd-Font-Regular";
765+
766+ src: url("assets/fonts/JetBrainsMonoNerd/JetBrainsMonoNerdFontMono-Regular.woff2")
767+ format("woff2");
768+
769+ font-weight: normal;
770+
771+ font-style: normal;
772+}
773+
774+@font-face {
775+ font-family: "LilitaOne-Regular";
776+
777+ src: url("assets/fonts/LilitaOne/LilitaOne-Regular.woff2") format("woff2");
778+
779+ font-weight: normal;
780+
781+ font-style: normal;
782+}
783+
784+.fade-me-out.htmx-swapping {
785+ opacity: 0;
786+ transition: opacity 1s ease-out;
787+}
788+
789+/* View transition */
790+
791+@keyframes fade-in {
792+ from {
793+ opacity: 0;
794+ }
795+}
796+
797+@keyframes fade-out {
798+ to {
799+ opacity: 0;
800+ }
801+}
802+
803+@keyframes slide-from-right {
804+ from {
805+ transform: translateX(90px);
806+ }
807+}
808+
809+@keyframes slide-to-left {
810+ to {
811+ transform: translateX(-90px);
812+ }
813+}
814+
815+.slide-it {
816+ view-transition-name: slide-it;
817+}
818+
819+::view-transition-old(slide-it) {
820+ animation: 180ms cubic-bezier(0.4, 0, 1, 1) both fade-out,
821+ 600ms cubic-bezier(0.4, 0, 0.2, 1) both slide-to-left;
822+}
823+
824+::view-transition-new(slide-it) {
825+ animation: 420ms cubic-bezier(0, 0, 0.2, 1) 90ms both fade-in,
826+ 600ms cubic-bezier(0.4, 0, 0.2, 1) both slide-from-right;
827+}
828+
829+h1,
830+h2,
831+h3,
832+h4,
833+h5,
834+h6 {
835+ font-family: "IBMPlexSans-Bold", sans-serif;
836+ font-style: normal;
837+ color: #000000;
838+ margin: 0;
839+ padding: 0;
840+}
841+
842+.gordon-title {
843+ font-family: "LilitaOne-Regular", sans-serif;
844+ font-style: normal;
845+ color: #000000;
846+ margin: 0;
847+ padding: 0;
848+}
849+
850+.gordon-v-subtitle {
851+ font-family: "IBMPlexSans-Regular", sans-serif;
852+ font-style: normal;
853+ color: #000000;
854+ margin: 0;
855+ padding: 0;
856+}
857+
858+.circle-shadow {
859+ width: 100%;
860+ position: relative;
861+}
862+
863+.circle-shadow::after {
864+ position: absolute;
865+ width: 50%;
866+ height: 0.4rem;
867+ margin: auto;
868+ background: rgba(0, 0, 0, 0.1);
869+ border-radius: 50%;
870+ z-index: -1;
871+ bottom: 2%;
872+ content: "";
873+ box-shadow: 0 0 1px 0.3rem rgba(0, 0, 0, 0.1);
874+}
875+
876+.iconoir {
877+ margin-right: 8px;
878+}
879+
880+@media (min-width: 640px) {
881+ .sm\:h-24 {
882+ height: 6rem;
883+ }
884+}
885+
886+@media (min-width: 768px) {
887+ .md\:p-8 {
888+ padding: 2rem;
889+ }
890+
891+ .md\:pt-10 {
892+ padding-top: 2.5rem;
893+ }
894+}
895+
896+@media (min-width: 1024px) {
897+ .lg\:text-4xl {
898+ font-size: 2.25rem;
899+ line-height: 2.5rem;
900+ }
901+}
902+
903+@media (min-width: 1280px) {
904+ .xl\:h-48 {
905+ height: 12rem;
906+ }
907+
908+ .xl\:text-5xl {
909+ font-size: 3rem;
910+ line-height: 1;
911+ }
912+}
R internal/ui/public/assets/fonts/JetBrainsMonoNerdFont/JetBrainsMonoNerdFont-Bold.woff2 → internal/ui/public/assets/fonts/JetBrainsMonoNerd/JetBrainsMonoNerdFont-Bold.woff2 +0 -0 binary file: no text diff · renamed, 100% similar

binary file: no text diff · renamed, 100% similar

R internal/ui/public/assets/fonts/JetBrainsMonoNerdFont/JetBrainsMonoNerdFont-Regular.woff2 → internal/ui/public/assets/fonts/JetBrainsMonoNerd/JetBrainsMonoNerdFont-Regular.woff2 +0 -0 binary file: no text diff · renamed, 100% similar

binary file: no text diff · renamed, 100% similar

A internal/ui/public/assets/fonts/JetBrainsMonoNerd/JetBrainsMonoNerdFontMono-Regular.ttf +0 -0 binary file: no text diff

binary file: no text diff

A internal/ui/public/assets/fonts/LilitaOne/LilitaOne-Regular.woff2 +0 -0 binary file: no text diff

binary file: no text diff

M internal/ui/public/index.gohtml +88 -50
@@ -8,71 +8,109 @@
88 <title>{{ .header.meta.title }}</title>
99 <meta name="description" content="{{ .Header.Meta.Description }}" />
1010 <meta name="keywords" content="{{ .Header.Meta.Keywords }}" />
11- <!-- Custom CSS from assets/css -->
12- <link rel="stylesheet" href="assets/css/custom.css" />
11+ <!-- Custom CSS + Tailwind -->
12+ <link rel="stylesheet" href="assets/css/tailwind.css" />
13+ <!-- Iconoir -->
14+ <link rel="stylesheet" href="libs/iconoir.css" />
1315 <!-- Alpine -->
1416 <script src="libs/alpine.min.js"></script>
1517 <!-- HTMX min js -->
1618 <script src="libs/htmx.min.js"></script>
17- <!-- UnoCSS (need to embed locally) -->
18- <script src="https://cdn.jsdelivr.net/npm/@unocss/runtime"></script>
19- <!-- color -->
2019 <!-- Custom JS from assets/js -->
2120 <script src="assets/js/custom.js"></script>
2221 </head>
23-<body class="bg-zinc-200 md:p-8 flex">
24-
25-<!-- Left Menu (Navigation) -->
26-<div class="w-1/5 flex flex-col space-evenly">
22+ <body class="bg-zinc-200 md:p-8 flex">
23+ <!-- Left Menu -->
24+ <div class="w-1/5 flex flex-col space-evenly">
25+ <!-- Logo -->
26+ <div id="logo-mascot-leftnav" class="flex justify-center p-4">
27+ <div class="circle-shadow flex justify-center w-100">
28+ <img
29+ src="assets/imgs/gordon-mascot-hq-trsp.png"
30+ alt="logo"
31+ class="sm:h-24 h-32 xl:h-48"
32+ />
33+ </div>
34+ </div>
35+ <!-- Site Name + Version -->
36+ <div class="p-4 flex flex-col bg-white rounded-lg shadow space-y-4">
37+ <div class="w-full flex justify-center">
38+ <h1
39+ class="gordon-title text-2xl lg:text-4xl xl:text-5xl text-sky-950 font-bold tracking-tighter"
40+ >
41+ Gordon
42+ </h1>
43+ <span class="gordon-v-subtitle text-gray-300 text-xs">v0.0.1</span>
44+ </div>
45+ <!--(Navigation) -->
46+ <div id="menu-leftnav" class="w-full">
47+ <ul class="flex flex-col space-y-2 leading-3 font-semibold text-sm">
48+ <li>
49+ <i class="iconoir-dashboard-speed"></i>
50+ <a href="index.html">Dashboard</a>
51+ </li>
52+ <li>
53+ <i class="iconoir-server"></i>
54+ <a href="#manager">Manager</a>
55+ </li>
56+ <li>
57+ <i class="iconoir-community"></i>
58+ <a href="#users">Users</a>
59+ </li>
60+ <li>
61+ <i class="iconoir-database-settings"></i>
62+ <a href="#gordon-settings">Settings</a>
63+ </li>
64+ </ul>
65+ </div>
2766
28-<!-- Logo -->
29-<div id="logo-mascot-leftnav" class="flex justify-center h-30 mb-4">
30- <div class="circle-shadow flex justify-center sd:hidden">
31- <img src="assets/imgs/gordon-mascot-hq-trsp.png" alt="logo" class="">
67+ <div class="w-full h-24 bg-gray-300 rounded-sm"></div>
68+ <!-- Mock menu item -->
69+ </div>
3270 </div>
33-</div>
34- <div class="p-4 flex flex-col bg-white rounded-3 shadow space-y-4">
35- <div class="w-full h-24 bg-gray-300 rounded-2 "></div> <!-- Mock menu item -->
36- <div class="w-full h-24 bg-gray-300 rounded-2 "></div> <!-- Mock menu item -->
37- <div class="w-full h-24 bg-gray-300 rounded-2 "></div> <!-- Mock menu item -->
38- </div>
39-</div>
4071
41-<!-- Main Content -->
42-<div class="flex-1 flex flex-col md:pt-10 space-y-4 ml-4">
43- <!-- Search Nav within the main content -->
44- <div class="bg-white p-4 rounded-3 shadow mb-4 flex justify-between">
45- <div class="w-24 h-8 bg-gray-300 rounded-2 "></div> <!-- Mock search or other element -->
46- </div>
47-
48- <!-- Cards section -->
49- <div class="flex space-x-4 flex-grow">
72+ <!-- Main Content -->
73+ <div class="flex-1 flex flex-col md:pt-10 space-y-4 ml-4">
74+ <!-- Search Nav within the main content -->
75+ <div class="mb-4 flex justify-end">
76+ <div class="w-72 h-10 bg-gray-300 rounded-lg">
77+ <!-- Search input with iconir search -->
78+ <div class="flex justify-between items-center h-full px-2">
79+ <input
80+ type="text"
81+ class="w-full h-full bg-transparent outline-none"
82+ placeholder="Search"
83+ />
84+ <i class="iconoir-search"></i>
85+ </div>
86+ </div>
87+ <!-- Mock search or other element -->
88+ </div>
89+
90+ <!-- Cards section -->
91+ <div class="flex space-x-4 flex-grow">
5092 <!-- Main Card on the Left -->
51- <div class="w-4/6 bg-white p-4 rounded-3 shadow mb-4">
52- <div class="w-full rounded-2 bg-gray-300"></div> <!-- Mock main card -->
93+ <div class="w-4/6 bg-white p-4 rounded-md shadow mb-4">
94+ <div class="w-full rounded-sm bg-gray-300"></div>
95+ <!-- Mock main card -->
5396 </div>
5497
5598 <!-- Two Cards on the Right -->
5699 <div class="w-2/6 flex flex-col flex-justify-start">
57- <div class="bg-white p-4 rounded-3 shadow mb-4">
58- <div class="w-full h-44 rounded-2 bg-gray-300"></div> <!-- Mock card -->
59- </div>
60- <div class="bg-white p-4 rounded-3 shadow mb-4">
61- <div class="w-full h-44 rounded-2 bg-gray-300"></div> <!-- Mock card -->
62- </div>
63- <div class="bg-white p-4 rounded-3 shadow mb-4">
64- <div class="w-full h-44 rounded-2 bg-gray-300"></div> <!-- Mock card -->
65- </div>
100+ <div class="bg-white p-4 rounded-md shadow mb-4">
101+ <div class="w-full h-44 rounded-sm bg-gray-300"></div>
102+ <!-- Mock card -->
103+ </div>
104+ <div class="bg-white p-4 rounded-md shadow mb-4">
105+ <div class="w-full h-44 rounded-sm bg-gray-300"></div>
106+ <!-- Mock card -->
107+ </div>
108+ <div class="bg-white p-4 rounded-md shadow mb-4">
109+ <div class="w-full h-44 rounded-sm bg-gray-300"></div>
110+ <!-- Mock card -->
111+ </div>
66112 </div>
113+ </div>
67114 </div>
68-</div>
69-
70-</body>
71-</html>
72-
73-
74-
75-
76-</html>
77-
115+ </body>
78116 </html>
@@ -8,71 +8,109 @@
8 <title>{{ .header.meta.title }}</title>8 <title>{{ .header.meta.title }}</title>
9 <meta name="description" content="{{ .Header.Meta.Description }}" />9 <meta name="description" content="{{ .Header.Meta.Description }}" />
10 <meta name="keywords" content="{{ .Header.Meta.Keywords }}" />10 <meta name="keywords" content="{{ .Header.Meta.Keywords }}" />
11- <!-- Custom CSS from assets/css -->11+ <!-- Custom CSS + Tailwind -->
12- <link rel="stylesheet" href="assets/css/custom.css" />12+ <link rel="stylesheet" href="assets/css/tailwind.css" />
13+ <!-- Iconoir -->
14+ <link rel="stylesheet" href="libs/iconoir.css" />
13 <!-- Alpine -->15 <!-- Alpine -->
14 <script src="libs/alpine.min.js"></script>16 <script src="libs/alpine.min.js"></script>
15 <!-- HTMX min js -->17 <!-- HTMX min js -->
16 <script src="libs/htmx.min.js"></script>18 <script src="libs/htmx.min.js"></script>
17- <!-- UnoCSS (need to embed locally) -->
18- <script src="https://cdn.jsdelivr.net/npm/@unocss/runtime"></script>
19- <!-- color -->
20 <!-- Custom JS from assets/js -->19 <!-- Custom JS from assets/js -->
21 <script src="assets/js/custom.js"></script>20 <script src="assets/js/custom.js"></script>
22 </head>21 </head>
23-<body class="bg-zinc-200 md:p-8 flex">22+ <body class="bg-zinc-200 md:p-8 flex">
24-23+ <!-- Left Menu -->
25-<!-- Left Menu (Navigation) -->24+ <div class="w-1/5 flex flex-col space-evenly">
26-<div class="w-1/5 flex flex-col space-evenly">25+ <!-- Logo -->
26+ <div id="logo-mascot-leftnav" class="flex justify-center p-4">
27+ <div class="circle-shadow flex justify-center w-100">
28+ <img
29+ src="assets/imgs/gordon-mascot-hq-trsp.png"
30+ alt="logo"
31+ class="sm:h-24 h-32 xl:h-48"
32+ />
33+ </div>
34+ </div>
35+ <!-- Site Name + Version -->
36+ <div class="p-4 flex flex-col bg-white rounded-lg shadow space-y-4">
37+ <div class="w-full flex justify-center">
38+ <h1
39+ class="gordon-title text-2xl lg:text-4xl xl:text-5xl text-sky-950 font-bold tracking-tighter"
40+ >
41+ Gordon
42+ </h1>
43+ <span class="gordon-v-subtitle text-gray-300 text-xs">v0.0.1</span>
44+ </div>
45+ <!--(Navigation) -->
46+ <div id="menu-leftnav" class="w-full">
47+ <ul class="flex flex-col space-y-2 leading-3 font-semibold text-sm">
48+ <li>
49+ <i class="iconoir-dashboard-speed"></i>
50+ <a href="index.html">Dashboard</a>
51+ </li>
52+ <li>
53+ <i class="iconoir-server"></i>
54+ <a href="#manager">Manager</a>
55+ </li>
56+ <li>
57+ <i class="iconoir-community"></i>
58+ <a href="#users">Users</a>
59+ </li>
60+ <li>
61+ <i class="iconoir-database-settings"></i>
62+ <a href="#gordon-settings">Settings</a>
63+ </li>
64+ </ul>
65+ </div>
27 66
28-<!-- Logo -->67+ <div class="w-full h-24 bg-gray-300 rounded-sm"></div>
29-<div id="logo-mascot-leftnav" class="flex justify-center h-30 mb-4">68+ <!-- Mock menu item -->
30- <div class="circle-shadow flex justify-center sd:hidden">69+ </div>
31- <img src="assets/imgs/gordon-mascot-hq-trsp.png" alt="logo" class="">
32 </div>70 </div>
33-</div>
34- <div class="p-4 flex flex-col bg-white rounded-3 shadow space-y-4">
35- <div class="w-full h-24 bg-gray-300 rounded-2 "></div> <!-- Mock menu item -->
36- <div class="w-full h-24 bg-gray-300 rounded-2 "></div> <!-- Mock menu item -->
37- <div class="w-full h-24 bg-gray-300 rounded-2 "></div> <!-- Mock menu item -->
38- </div>
39-</div>
40 71
41-<!-- Main Content -->72+ <!-- Main Content -->
42-<div class="flex-1 flex flex-col md:pt-10 space-y-4 ml-4">73+ <div class="flex-1 flex flex-col md:pt-10 space-y-4 ml-4">
43- <!-- Search Nav within the main content -->74+ <!-- Search Nav within the main content -->
44- <div class="bg-white p-4 rounded-3 shadow mb-4 flex justify-between">75+ <div class="mb-4 flex justify-end">
45- <div class="w-24 h-8 bg-gray-300 rounded-2 "></div> <!-- Mock search or other element -->76+ <div class="w-72 h-10 bg-gray-300 rounded-lg">
46- </div>77+ <!-- Search input with iconir search -->
47- 78+ <div class="flex justify-between items-center h-full px-2">
48- <!-- Cards section -->79+ <input
49- <div class="flex space-x-4 flex-grow">80+ type="text"
81+ class="w-full h-full bg-transparent outline-none"
82+ placeholder="Search"
83+ />
84+ <i class="iconoir-search"></i>
85+ </div>
86+ </div>
87+ <!-- Mock search or other element -->
88+ </div>
89+
90+ <!-- Cards section -->
91+ <div class="flex space-x-4 flex-grow">
50 <!-- Main Card on the Left -->92 <!-- Main Card on the Left -->
51- <div class="w-4/6 bg-white p-4 rounded-3 shadow mb-4">93+ <div class="w-4/6 bg-white p-4 rounded-md shadow mb-4">
52- <div class="w-full rounded-2 bg-gray-300"></div> <!-- Mock main card -->94+ <div class="w-full rounded-sm bg-gray-300"></div>
95+ <!-- Mock main card -->
53 </div>96 </div>
54 97
55 <!-- Two Cards on the Right -->98 <!-- Two Cards on the Right -->
56 <div class="w-2/6 flex flex-col flex-justify-start">99 <div class="w-2/6 flex flex-col flex-justify-start">
57- <div class="bg-white p-4 rounded-3 shadow mb-4">100+ <div class="bg-white p-4 rounded-md shadow mb-4">
58- <div class="w-full h-44 rounded-2 bg-gray-300"></div> <!-- Mock card -->101+ <div class="w-full h-44 rounded-sm bg-gray-300"></div>
59- </div>102+ <!-- Mock card -->
60- <div class="bg-white p-4 rounded-3 shadow mb-4">103+ </div>
61- <div class="w-full h-44 rounded-2 bg-gray-300"></div> <!-- Mock card -->104+ <div class="bg-white p-4 rounded-md shadow mb-4">
62- </div>105+ <div class="w-full h-44 rounded-sm bg-gray-300"></div>
63- <div class="bg-white p-4 rounded-3 shadow mb-4">106+ <!-- Mock card -->
64- <div class="w-full h-44 rounded-2 bg-gray-300"></div> <!-- Mock card -->107+ </div>
65- </div>108+ <div class="bg-white p-4 rounded-md shadow mb-4">
109+ <div class="w-full h-44 rounded-sm bg-gray-300"></div>
110+ <!-- Mock card -->
111+ </div>
66 </div>112 </div>
113+ </div>
67 </div>114 </div>
68-</div>115+ </body>
69-
70-</body>
71-</html>
72-
73-
74-
75-
76-</html>
77-
78 </html>116 </html>
A internal/ui/public/libs/iconoir.css +22 -0 too large to show in the browser

too large to show in the browser view raw

D internal/ui/public/libs/uno.css +0 -2
@@ -1,2 +0,0 @@
1-/* layer: preflights */
2-*,::before,::after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgba(0,0,0,0);--un-ring-shadow:0 0 rgba(0,0,0,0);--un-shadow-inset: ;--un-shadow:0 0 rgba(0,0,0,0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,0.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: ;}::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgba(0,0,0,0);--un-ring-shadow:0 0 rgba(0,0,0,0);--un-shadow-inset: ;--un-shadow:0 0 rgba(0,0,0,0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,0.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: ;}⏎̸
@@ -1,2 +0,0 @@
1-/* layer: preflights */
2-*,::before,::after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgba(0,0,0,0);--un-ring-shadow:0 0 rgba(0,0,0,0);--un-shadow-inset: ;--un-shadow:0 0 rgba(0,0,0,0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,0.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: ;}::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgba(0,0,0,0);--un-ring-shadow:0 0 rgba(0,0,0,0);--un-shadow-inset: ;--un-shadow:0 0 rgba(0,0,0,0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,0.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: ;}⏎̸
A package-lock.json +981 -0
@@ -0,0 +1,981 @@
1+{
2+ "name": "gordon-echo",
3+ "lockfileVersion": 3,
4+ "requires": true,
5+ "packages": {
6+ "": {
7+ "devDependencies": {
8+ "tailwindcss": "^3.3.3"
9+ }
10+ },
11+ "node_modules/@alloc/quick-lru": {
12+ "version": "5.2.0",
13+ "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
14+ "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
15+ "dev": true,
16+ "engines": {
17+ "node": ">=10"
18+ },
19+ "funding": {
20+ "url": "https://github.com/sponsors/sindresorhus"
21+ }
22+ },
23+ "node_modules/@jridgewell/gen-mapping": {
24+ "version": "0.3.3",
25+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
26+ "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
27+ "dev": true,
28+ "dependencies": {
29+ "@jridgewell/set-array": "^1.0.1",
30+ "@jridgewell/sourcemap-codec": "^1.4.10",
31+ "@jridgewell/trace-mapping": "^0.3.9"
32+ },
33+ "engines": {
34+ "node": ">=6.0.0"
35+ }
36+ },
37+ "node_modules/@jridgewell/resolve-uri": {
38+ "version": "3.1.1",
39+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
40+ "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
41+ "dev": true,
42+ "engines": {
43+ "node": ">=6.0.0"
44+ }
45+ },
46+ "node_modules/@jridgewell/set-array": {
47+ "version": "1.1.2",
48+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
49+ "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
50+ "dev": true,
51+ "engines": {
52+ "node": ">=6.0.0"
53+ }
54+ },
55+ "node_modules/@jridgewell/sourcemap-codec": {
56+ "version": "1.4.15",
57+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
58+ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
59+ "dev": true
60+ },
61+ "node_modules/@jridgewell/trace-mapping": {
62+ "version": "0.3.19",
63+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz",
64+ "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==",
65+ "dev": true,
66+ "dependencies": {
67+ "@jridgewell/resolve-uri": "^3.1.0",
68+ "@jridgewell/sourcemap-codec": "^1.4.14"
69+ }
70+ },
71+ "node_modules/@nodelib/fs.scandir": {
72+ "version": "2.1.5",
73+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
74+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
75+ "dev": true,
76+ "dependencies": {
77+ "@nodelib/fs.stat": "2.0.5",
78+ "run-parallel": "^1.1.9"
79+ },
80+ "engines": {
81+ "node": ">= 8"
82+ }
83+ },
84+ "node_modules/@nodelib/fs.stat": {
85+ "version": "2.0.5",
86+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
87+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
88+ "dev": true,
89+ "engines": {
90+ "node": ">= 8"
91+ }
92+ },
93+ "node_modules/@nodelib/fs.walk": {
94+ "version": "1.2.8",
95+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
96+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
97+ "dev": true,
98+ "dependencies": {
99+ "@nodelib/fs.scandir": "2.1.5",
100+ "fastq": "^1.6.0"
101+ },
102+ "engines": {
103+ "node": ">= 8"
104+ }
105+ },
106+ "node_modules/any-promise": {
107+ "version": "1.3.0",
108+ "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
109+ "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
110+ "dev": true
111+ },
112+ "node_modules/anymatch": {
113+ "version": "3.1.3",
114+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
115+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
116+ "dev": true,
117+ "dependencies": {
118+ "normalize-path": "^3.0.0",
119+ "picomatch": "^2.0.4"
120+ },
121+ "engines": {
122+ "node": ">= 8"
123+ }
124+ },
125+ "node_modules/arg": {
126+ "version": "5.0.2",
127+ "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
128+ "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
129+ "dev": true
130+ },
131+ "node_modules/balanced-match": {
132+ "version": "1.0.2",
133+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
134+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
135+ "dev": true
136+ },
137+ "node_modules/binary-extensions": {
138+ "version": "2.2.0",
139+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
140+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
141+ "dev": true,
142+ "engines": {
143+ "node": ">=8"
144+ }
145+ },
146+ "node_modules/brace-expansion": {
147+ "version": "1.1.11",
148+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
149+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
150+ "dev": true,
151+ "dependencies": {
152+ "balanced-match": "^1.0.0",
153+ "concat-map": "0.0.1"
154+ }
155+ },
156+ "node_modules/braces": {
157+ "version": "3.0.2",
158+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
159+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
160+ "dev": true,
161+ "dependencies": {
162+ "fill-range": "^7.0.1"
163+ },
164+ "engines": {
165+ "node": ">=8"
166+ }
167+ },
168+ "node_modules/camelcase-css": {
169+ "version": "2.0.1",
170+ "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
171+ "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
172+ "dev": true,
173+ "engines": {
174+ "node": ">= 6"
175+ }
176+ },
177+ "node_modules/chokidar": {
178+ "version": "3.5.3",
179+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
180+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
181+ "dev": true,
182+ "funding": [
183+ {
184+ "type": "individual",
185+ "url": "https://paulmillr.com/funding/"
186+ }
187+ ],
188+ "dependencies": {
189+ "anymatch": "~3.1.2",
190+ "braces": "~3.0.2",
191+ "glob-parent": "~5.1.2",
192+ "is-binary-path": "~2.1.0",
193+ "is-glob": "~4.0.1",
194+ "normalize-path": "~3.0.0",
195+ "readdirp": "~3.6.0"
196+ },
197+ "engines": {
198+ "node": ">= 8.10.0"
199+ },
200+ "optionalDependencies": {
201+ "fsevents": "~2.3.2"
202+ }
203+ },
204+ "node_modules/chokidar/node_modules/glob-parent": {
205+ "version": "5.1.2",
206+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
207+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
208+ "dev": true,
209+ "dependencies": {
210+ "is-glob": "^4.0.1"
211+ },
212+ "engines": {
213+ "node": ">= 6"
214+ }
215+ },
216+ "node_modules/commander": {
217+ "version": "4.1.1",
218+ "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
219+ "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
220+ "dev": true,
221+ "engines": {
222+ "node": ">= 6"
223+ }
224+ },
225+ "node_modules/concat-map": {
226+ "version": "0.0.1",
227+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
228+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
229+ "dev": true
230+ },
231+ "node_modules/cssesc": {
232+ "version": "3.0.0",
233+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
234+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
235+ "dev": true,
236+ "bin": {
237+ "cssesc": "bin/cssesc"
238+ },
239+ "engines": {
240+ "node": ">=4"
241+ }
242+ },
243+ "node_modules/didyoumean": {
244+ "version": "1.2.2",
245+ "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
246+ "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
247+ "dev": true
248+ },
249+ "node_modules/dlv": {
250+ "version": "1.1.3",
251+ "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
252+ "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
253+ "dev": true
254+ },
255+ "node_modules/fast-glob": {
256+ "version": "3.3.1",
257+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz",
258+ "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==",
259+ "dev": true,
260+ "dependencies": {
261+ "@nodelib/fs.stat": "^2.0.2",
262+ "@nodelib/fs.walk": "^1.2.3",
263+ "glob-parent": "^5.1.2",
264+ "merge2": "^1.3.0",
265+ "micromatch": "^4.0.4"
266+ },
267+ "engines": {
268+ "node": ">=8.6.0"
269+ }
270+ },
271+ "node_modules/fast-glob/node_modules/glob-parent": {
272+ "version": "5.1.2",
273+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
274+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
275+ "dev": true,
276+ "dependencies": {
277+ "is-glob": "^4.0.1"
278+ },
279+ "engines": {
280+ "node": ">= 6"
281+ }
282+ },
283+ "node_modules/fastq": {
284+ "version": "1.15.0",
285+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
286+ "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
287+ "dev": true,
288+ "dependencies": {
289+ "reusify": "^1.0.4"
290+ }
291+ },
292+ "node_modules/fill-range": {
293+ "version": "7.0.1",
294+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
295+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
296+ "dev": true,
297+ "dependencies": {
298+ "to-regex-range": "^5.0.1"
299+ },
300+ "engines": {
301+ "node": ">=8"
302+ }
303+ },
304+ "node_modules/fs.realpath": {
305+ "version": "1.0.0",
306+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
307+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
308+ "dev": true
309+ },
310+ "node_modules/fsevents": {
311+ "version": "2.3.3",
312+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
313+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
314+ "dev": true,
315+ "hasInstallScript": true,
316+ "optional": true,
317+ "os": [
318+ "darwin"
319+ ],
320+ "engines": {
321+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
322+ }
323+ },
324+ "node_modules/function-bind": {
325+ "version": "1.1.1",
326+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
327+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
328+ "dev": true
329+ },
330+ "node_modules/glob": {
331+ "version": "7.1.6",
332+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
333+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
334+ "dev": true,
335+ "dependencies": {
336+ "fs.realpath": "^1.0.0",
337+ "inflight": "^1.0.4",
338+ "inherits": "2",
339+ "minimatch": "^3.0.4",
340+ "once": "^1.3.0",
341+ "path-is-absolute": "^1.0.0"
342+ },
343+ "engines": {
344+ "node": "*"
345+ },
346+ "funding": {
347+ "url": "https://github.com/sponsors/isaacs"
348+ }
349+ },
350+ "node_modules/glob-parent": {
351+ "version": "6.0.2",
352+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
353+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
354+ "dev": true,
355+ "dependencies": {
356+ "is-glob": "^4.0.3"
357+ },
358+ "engines": {
359+ "node": ">=10.13.0"
360+ }
361+ },
362+ "node_modules/has": {
363+ "version": "1.0.3",
364+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
365+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
366+ "dev": true,
367+ "dependencies": {
368+ "function-bind": "^1.1.1"
369+ },
370+ "engines": {
371+ "node": ">= 0.4.0"
372+ }
373+ },
374+ "node_modules/inflight": {
375+ "version": "1.0.6",
376+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
377+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
378+ "dev": true,
379+ "dependencies": {
380+ "once": "^1.3.0",
381+ "wrappy": "1"
382+ }
383+ },
384+ "node_modules/inherits": {
385+ "version": "2.0.4",
386+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
387+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
388+ "dev": true
389+ },
390+ "node_modules/is-binary-path": {
391+ "version": "2.1.0",
392+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
393+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
394+ "dev": true,
395+ "dependencies": {
396+ "binary-extensions": "^2.0.0"
397+ },
398+ "engines": {
399+ "node": ">=8"
400+ }
401+ },
402+ "node_modules/is-core-module": {
403+ "version": "2.13.0",
404+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz",
405+ "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==",
406+ "dev": true,
407+ "dependencies": {
408+ "has": "^1.0.3"
409+ },
410+ "funding": {
411+ "url": "https://github.com/sponsors/ljharb"
412+ }
413+ },
414+ "node_modules/is-extglob": {
415+ "version": "2.1.1",
416+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
417+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
418+ "dev": true,
419+ "engines": {
420+ "node": ">=0.10.0"
421+ }
422+ },
423+ "node_modules/is-glob": {
424+ "version": "4.0.3",
425+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
426+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
427+ "dev": true,
428+ "dependencies": {
429+ "is-extglob": "^2.1.1"
430+ },
431+ "engines": {
432+ "node": ">=0.10.0"
433+ }
434+ },
435+ "node_modules/is-number": {
436+ "version": "7.0.0",
437+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
438+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
439+ "dev": true,
440+ "engines": {
441+ "node": ">=0.12.0"
442+ }
443+ },
444+ "node_modules/jiti": {
445+ "version": "1.19.3",
446+ "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.19.3.tgz",
447+ "integrity": "sha512-5eEbBDQT/jF1xg6l36P+mWGGoH9Spuy0PCdSr2dtWRDGC6ph/w9ZCL4lmESW8f8F7MwT3XKescfP0wnZWAKL9w==",
448+ "dev": true,
449+ "bin": {
450+ "jiti": "bin/jiti.js"
451+ }
452+ },
453+ "node_modules/lilconfig": {
454+ "version": "2.1.0",
455+ "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
456+ "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
457+ "dev": true,
458+ "engines": {
459+ "node": ">=10"
460+ }
461+ },
462+ "node_modules/lines-and-columns": {
463+ "version": "1.2.4",
464+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
465+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
466+ "dev": true
467+ },
468+ "node_modules/merge2": {
469+ "version": "1.4.1",
470+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
471+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
472+ "dev": true,
473+ "engines": {
474+ "node": ">= 8"
475+ }
476+ },
477+ "node_modules/micromatch": {
478+ "version": "4.0.5",
479+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
480+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
481+ "dev": true,
482+ "dependencies": {
483+ "braces": "^3.0.2",
484+ "picomatch": "^2.3.1"
485+ },
486+ "engines": {
487+ "node": ">=8.6"
488+ }
489+ },
490+ "node_modules/minimatch": {
491+ "version": "3.1.2",
492+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
493+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
494+ "dev": true,
495+ "dependencies": {
496+ "brace-expansion": "^1.1.7"
497+ },
498+ "engines": {
499+ "node": "*"
500+ }
501+ },
502+ "node_modules/mz": {
503+ "version": "2.7.0",
504+ "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
505+ "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
506+ "dev": true,
507+ "dependencies": {
508+ "any-promise": "^1.0.0",
509+ "object-assign": "^4.0.1",
510+ "thenify-all": "^1.0.0"
511+ }
512+ },
513+ "node_modules/nanoid": {
514+ "version": "3.3.6",
515+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
516+ "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
517+ "dev": true,
518+ "funding": [
519+ {
520+ "type": "github",
521+ "url": "https://github.com/sponsors/ai"
522+ }
523+ ],
524+ "bin": {
525+ "nanoid": "bin/nanoid.cjs"
526+ },
527+ "engines": {
528+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
529+ }
530+ },
531+ "node_modules/normalize-path": {
532+ "version": "3.0.0",
533+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
534+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
535+ "dev": true,
536+ "engines": {
537+ "node": ">=0.10.0"
538+ }
539+ },
540+ "node_modules/object-assign": {
541+ "version": "4.1.1",
542+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
543+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
544+ "dev": true,
545+ "engines": {
546+ "node": ">=0.10.0"
547+ }
548+ },
549+ "node_modules/object-hash": {
550+ "version": "3.0.0",
551+ "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
552+ "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
553+ "dev": true,
554+ "engines": {
555+ "node": ">= 6"
556+ }
557+ },
558+ "node_modules/once": {
559+ "version": "1.4.0",
560+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
561+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
562+ "dev": true,
563+ "dependencies": {
564+ "wrappy": "1"
565+ }
566+ },
567+ "node_modules/path-is-absolute": {
568+ "version": "1.0.1",
569+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
570+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
571+ "dev": true,
572+ "engines": {
573+ "node": ">=0.10.0"
574+ }
575+ },
576+ "node_modules/path-parse": {
577+ "version": "1.0.7",
578+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
579+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
580+ "dev": true
581+ },
582+ "node_modules/picocolors": {
583+ "version": "1.0.0",
584+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
585+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
586+ "dev": true
587+ },
588+ "node_modules/picomatch": {
589+ "version": "2.3.1",
590+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
591+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
592+ "dev": true,
593+ "engines": {
594+ "node": ">=8.6"
595+ },
596+ "funding": {
597+ "url": "https://github.com/sponsors/jonschlinkert"
598+ }
599+ },
600+ "node_modules/pify": {
601+ "version": "2.3.0",
602+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
603+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
604+ "dev": true,
605+ "engines": {
606+ "node": ">=0.10.0"
607+ }
608+ },
609+ "node_modules/pirates": {
610+ "version": "4.0.6",
611+ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
612+ "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
613+ "dev": true,
614+ "engines": {
615+ "node": ">= 6"
616+ }
617+ },
618+ "node_modules/postcss": {
619+ "version": "8.4.29",
620+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.29.tgz",
621+ "integrity": "sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==",
622+ "dev": true,
623+ "funding": [
624+ {
625+ "type": "opencollective",
626+ "url": "https://opencollective.com/postcss/"
627+ },
628+ {
629+ "type": "tidelift",
630+ "url": "https://tidelift.com/funding/github/npm/postcss"
631+ },
632+ {
633+ "type": "github",
634+ "url": "https://github.com/sponsors/ai"
635+ }
636+ ],
637+ "dependencies": {
638+ "nanoid": "^3.3.6",
639+ "picocolors": "^1.0.0",
640+ "source-map-js": "^1.0.2"
641+ },
642+ "engines": {
643+ "node": "^10 || ^12 || >=14"
644+ }
645+ },
646+ "node_modules/postcss-import": {
647+ "version": "15.1.0",
648+ "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
649+ "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
650+ "dev": true,
651+ "dependencies": {
652+ "postcss-value-parser": "^4.0.0",
653+ "read-cache": "^1.0.0",
654+ "resolve": "^1.1.7"
655+ },
656+ "engines": {
657+ "node": ">=14.0.0"
658+ },
659+ "peerDependencies": {
660+ "postcss": "^8.0.0"
661+ }
662+ },
663+ "node_modules/postcss-js": {
664+ "version": "4.0.1",
665+ "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz",
666+ "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==",
667+ "dev": true,
668+ "dependencies": {
669+ "camelcase-css": "^2.0.1"
670+ },
671+ "engines": {
672+ "node": "^12 || ^14 || >= 16"
673+ },
674+ "funding": {
675+ "type": "opencollective",
676+ "url": "https://opencollective.com/postcss/"
677+ },
678+ "peerDependencies": {
679+ "postcss": "^8.4.21"
680+ }
681+ },
682+ "node_modules/postcss-load-config": {
683+ "version": "4.0.1",
684+ "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz",
685+ "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==",
686+ "dev": true,
687+ "dependencies": {
688+ "lilconfig": "^2.0.5",
689+ "yaml": "^2.1.1"
690+ },
691+ "engines": {
692+ "node": ">= 14"
693+ },
694+ "funding": {
695+ "type": "opencollective",
696+ "url": "https://opencollective.com/postcss/"
697+ },
698+ "peerDependencies": {
699+ "postcss": ">=8.0.9",
700+ "ts-node": ">=9.0.0"
701+ },
702+ "peerDependenciesMeta": {
703+ "postcss": {
704+ "optional": true
705+ },
706+ "ts-node": {
707+ "optional": true
708+ }
709+ }
710+ },
711+ "node_modules/postcss-nested": {
712+ "version": "6.0.1",
713+ "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz",
714+ "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==",
715+ "dev": true,
716+ "dependencies": {
717+ "postcss-selector-parser": "^6.0.11"
718+ },
719+ "engines": {
720+ "node": ">=12.0"
721+ },
722+ "funding": {
723+ "type": "opencollective",
724+ "url": "https://opencollective.com/postcss/"
725+ },
726+ "peerDependencies": {
727+ "postcss": "^8.2.14"
728+ }
729+ },
730+ "node_modules/postcss-selector-parser": {
731+ "version": "6.0.13",
732+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz",
733+ "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==",
734+ "dev": true,
735+ "dependencies": {
736+ "cssesc": "^3.0.0",
737+ "util-deprecate": "^1.0.2"
738+ },
739+ "engines": {
740+ "node": ">=4"
741+ }
742+ },
743+ "node_modules/postcss-value-parser": {
744+ "version": "4.2.0",
745+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
746+ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
747+ "dev": true
748+ },
749+ "node_modules/queue-microtask": {
750+ "version": "1.2.3",
751+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
752+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
753+ "dev": true,
754+ "funding": [
755+ {
756+ "type": "github",
757+ "url": "https://github.com/sponsors/feross"
758+ },
759+ {
760+ "type": "patreon",
761+ "url": "https://www.patreon.com/feross"
762+ },
763+ {
764+ "type": "consulting",
765+ "url": "https://feross.org/support"
766+ }
767+ ]
768+ },
769+ "node_modules/read-cache": {
770+ "version": "1.0.0",
771+ "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
772+ "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
773+ "dev": true,
774+ "dependencies": {
775+ "pify": "^2.3.0"
776+ }
777+ },
778+ "node_modules/readdirp": {
779+ "version": "3.6.0",
780+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
781+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
782+ "dev": true,
783+ "dependencies": {
784+ "picomatch": "^2.2.1"
785+ },
786+ "engines": {
787+ "node": ">=8.10.0"
788+ }
789+ },
790+ "node_modules/resolve": {
791+ "version": "1.22.4",
792+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz",
793+ "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==",
794+ "dev": true,
795+ "dependencies": {
796+ "is-core-module": "^2.13.0",
797+ "path-parse": "^1.0.7",
798+ "supports-preserve-symlinks-flag": "^1.0.0"
799+ },
800+ "bin": {
801+ "resolve": "bin/resolve"
802+ },
803+ "funding": {
804+ "url": "https://github.com/sponsors/ljharb"
805+ }
806+ },
807+ "node_modules/reusify": {
808+ "version": "1.0.4",
809+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
810+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
811+ "dev": true,
812+ "engines": {
813+ "iojs": ">=1.0.0",
814+ "node": ">=0.10.0"
815+ }
816+ },
817+ "node_modules/run-parallel": {
818+ "version": "1.2.0",
819+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
820+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
821+ "dev": true,
822+ "funding": [
823+ {
824+ "type": "github",
825+ "url": "https://github.com/sponsors/feross"
826+ },
827+ {
828+ "type": "patreon",
829+ "url": "https://www.patreon.com/feross"
830+ },
831+ {
832+ "type": "consulting",
833+ "url": "https://feross.org/support"
834+ }
835+ ],
836+ "dependencies": {
837+ "queue-microtask": "^1.2.2"
838+ }
839+ },
840+ "node_modules/source-map-js": {
841+ "version": "1.0.2",
842+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
843+ "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
844+ "dev": true,
845+ "engines": {
846+ "node": ">=0.10.0"
847+ }
848+ },
849+ "node_modules/sucrase": {
850+ "version": "3.34.0",
851+ "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz",
852+ "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==",
853+ "dev": true,
854+ "dependencies": {
855+ "@jridgewell/gen-mapping": "^0.3.2",
856+ "commander": "^4.0.0",
857+ "glob": "7.1.6",
858+ "lines-and-columns": "^1.1.6",
859+ "mz": "^2.7.0",
860+ "pirates": "^4.0.1",
861+ "ts-interface-checker": "^0.1.9"
862+ },
863+ "bin": {
864+ "sucrase": "bin/sucrase",
865+ "sucrase-node": "bin/sucrase-node"
866+ },
867+ "engines": {
868+ "node": ">=8"
869+ }
870+ },
871+ "node_modules/supports-preserve-symlinks-flag": {
872+ "version": "1.0.0",
873+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
874+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
875+ "dev": true,
876+ "engines": {
877+ "node": ">= 0.4"
878+ },
879+ "funding": {
880+ "url": "https://github.com/sponsors/ljharb"
881+ }
882+ },
883+ "node_modules/tailwindcss": {
884+ "version": "3.3.3",
885+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.3.tgz",
886+ "integrity": "sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==",
887+ "dev": true,
888+ "dependencies": {
889+ "@alloc/quick-lru": "^5.2.0",
890+ "arg": "^5.0.2",
891+ "chokidar": "^3.5.3",
892+ "didyoumean": "^1.2.2",
893+ "dlv": "^1.1.3",
894+ "fast-glob": "^3.2.12",
895+ "glob-parent": "^6.0.2",
896+ "is-glob": "^4.0.3",
897+ "jiti": "^1.18.2",
898+ "lilconfig": "^2.1.0",
899+ "micromatch": "^4.0.5",
900+ "normalize-path": "^3.0.0",
901+ "object-hash": "^3.0.0",
902+ "picocolors": "^1.0.0",
903+ "postcss": "^8.4.23",
904+ "postcss-import": "^15.1.0",
905+ "postcss-js": "^4.0.1",
906+ "postcss-load-config": "^4.0.1",
907+ "postcss-nested": "^6.0.1",
908+ "postcss-selector-parser": "^6.0.11",
909+ "resolve": "^1.22.2",
910+ "sucrase": "^3.32.0"
911+ },
912+ "bin": {
913+ "tailwind": "lib/cli.js",
914+ "tailwindcss": "lib/cli.js"
915+ },
916+ "engines": {
917+ "node": ">=14.0.0"
918+ }
919+ },
920+ "node_modules/thenify": {
921+ "version": "3.3.1",
922+ "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
923+ "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
924+ "dev": true,
925+ "dependencies": {
926+ "any-promise": "^1.0.0"
927+ }
928+ },
929+ "node_modules/thenify-all": {
930+ "version": "1.6.0",
931+ "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
932+ "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
933+ "dev": true,
934+ "dependencies": {
935+ "thenify": ">= 3.1.0 < 4"
936+ },
937+ "engines": {
938+ "node": ">=0.8"
939+ }
940+ },
941+ "node_modules/to-regex-range": {
942+ "version": "5.0.1",
943+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
944+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
945+ "dev": true,
946+ "dependencies": {
947+ "is-number": "^7.0.0"
948+ },
949+ "engines": {
950+ "node": ">=8.0"
951+ }
952+ },
953+ "node_modules/ts-interface-checker": {
954+ "version": "0.1.13",
955+ "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
956+ "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
957+ "dev": true
958+ },
959+ "node_modules/util-deprecate": {
960+ "version": "1.0.2",
961+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
962+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
963+ "dev": true
964+ },
965+ "node_modules/wrappy": {
966+ "version": "1.0.2",
967+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
968+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
969+ "dev": true
970+ },
971+ "node_modules/yaml": {
972+ "version": "2.3.2",
973+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.2.tgz",
974+ "integrity": "sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==",
975+ "dev": true,
976+ "engines": {
977+ "node": ">= 14"
978+ }
979+ }
980+ }
981+}
@@ -0,0 +1,981 @@
1+{
2+ "name": "gordon-echo",
3+ "lockfileVersion": 3,
4+ "requires": true,
5+ "packages": {
6+ "": {
7+ "devDependencies": {
8+ "tailwindcss": "^3.3.3"
9+ }
10+ },
11+ "node_modules/@alloc/quick-lru": {
12+ "version": "5.2.0",
13+ "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
14+ "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
15+ "dev": true,
16+ "engines": {
17+ "node": ">=10"
18+ },
19+ "funding": {
20+ "url": "https://github.com/sponsors/sindresorhus"
21+ }
22+ },
23+ "node_modules/@jridgewell/gen-mapping": {
24+ "version": "0.3.3",
25+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
26+ "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
27+ "dev": true,
28+ "dependencies": {
29+ "@jridgewell/set-array": "^1.0.1",
30+ "@jridgewell/sourcemap-codec": "^1.4.10",
31+ "@jridgewell/trace-mapping": "^0.3.9"
32+ },
33+ "engines": {
34+ "node": ">=6.0.0"
35+ }
36+ },
37+ "node_modules/@jridgewell/resolve-uri": {
38+ "version": "3.1.1",
39+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
40+ "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
41+ "dev": true,
42+ "engines": {
43+ "node": ">=6.0.0"
44+ }
45+ },
46+ "node_modules/@jridgewell/set-array": {
47+ "version": "1.1.2",
48+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
49+ "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
50+ "dev": true,
51+ "engines": {
52+ "node": ">=6.0.0"
53+ }
54+ },
55+ "node_modules/@jridgewell/sourcemap-codec": {
56+ "version": "1.4.15",
57+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
58+ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
59+ "dev": true
60+ },
61+ "node_modules/@jridgewell/trace-mapping": {
62+ "version": "0.3.19",
63+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz",
64+ "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==",
65+ "dev": true,
66+ "dependencies": {
67+ "@jridgewell/resolve-uri": "^3.1.0",
68+ "@jridgewell/sourcemap-codec": "^1.4.14"
69+ }
70+ },
71+ "node_modules/@nodelib/fs.scandir": {
72+ "version": "2.1.5",
73+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
74+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
75+ "dev": true,
76+ "dependencies": {
77+ "@nodelib/fs.stat": "2.0.5",
78+ "run-parallel": "^1.1.9"
79+ },
80+ "engines": {
81+ "node": ">= 8"
82+ }
83+ },
84+ "node_modules/@nodelib/fs.stat": {
85+ "version": "2.0.5",
86+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
87+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
88+ "dev": true,
89+ "engines": {
90+ "node": ">= 8"
91+ }
92+ },
93+ "node_modules/@nodelib/fs.walk": {
94+ "version": "1.2.8",
95+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
96+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
97+ "dev": true,
98+ "dependencies": {
99+ "@nodelib/fs.scandir": "2.1.5",
100+ "fastq": "^1.6.0"
101+ },
102+ "engines": {
103+ "node": ">= 8"
104+ }
105+ },
106+ "node_modules/any-promise": {
107+ "version": "1.3.0",
108+ "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
109+ "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
110+ "dev": true
111+ },
112+ "node_modules/anymatch": {
113+ "version": "3.1.3",
114+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
115+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
116+ "dev": true,
117+ "dependencies": {
118+ "normalize-path": "^3.0.0",
119+ "picomatch": "^2.0.4"
120+ },
121+ "engines": {
122+ "node": ">= 8"
123+ }
124+ },
125+ "node_modules/arg": {
126+ "version": "5.0.2",
127+ "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
128+ "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
129+ "dev": true
130+ },
131+ "node_modules/balanced-match": {
132+ "version": "1.0.2",
133+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
134+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
135+ "dev": true
136+ },
137+ "node_modules/binary-extensions": {
138+ "version": "2.2.0",
139+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
140+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
141+ "dev": true,
142+ "engines": {
143+ "node": ">=8"
144+ }
145+ },
146+ "node_modules/brace-expansion": {
147+ "version": "1.1.11",
148+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
149+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
150+ "dev": true,
151+ "dependencies": {
152+ "balanced-match": "^1.0.0",
153+ "concat-map": "0.0.1"
154+ }
155+ },
156+ "node_modules/braces": {
157+ "version": "3.0.2",
158+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
159+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
160+ "dev": true,
161+ "dependencies": {
162+ "fill-range": "^7.0.1"
163+ },
164+ "engines": {
165+ "node": ">=8"
166+ }
167+ },
168+ "node_modules/camelcase-css": {
169+ "version": "2.0.1",
170+ "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
171+ "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
172+ "dev": true,
173+ "engines": {
174+ "node": ">= 6"
175+ }
176+ },
177+ "node_modules/chokidar": {
178+ "version": "3.5.3",
179+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
180+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
181+ "dev": true,
182+ "funding": [
183+ {
184+ "type": "individual",
185+ "url": "https://paulmillr.com/funding/"
186+ }
187+ ],
188+ "dependencies": {
189+ "anymatch": "~3.1.2",
190+ "braces": "~3.0.2",
191+ "glob-parent": "~5.1.2",
192+ "is-binary-path": "~2.1.0",
193+ "is-glob": "~4.0.1",
194+ "normalize-path": "~3.0.0",
195+ "readdirp": "~3.6.0"
196+ },
197+ "engines": {
198+ "node": ">= 8.10.0"
199+ },
200+ "optionalDependencies": {
201+ "fsevents": "~2.3.2"
202+ }
203+ },
204+ "node_modules/chokidar/node_modules/glob-parent": {
205+ "version": "5.1.2",
206+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
207+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
208+ "dev": true,
209+ "dependencies": {
210+ "is-glob": "^4.0.1"
211+ },
212+ "engines": {
213+ "node": ">= 6"
214+ }
215+ },
216+ "node_modules/commander": {
217+ "version": "4.1.1",
218+ "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
219+ "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
220+ "dev": true,
221+ "engines": {
222+ "node": ">= 6"
223+ }
224+ },
225+ "node_modules/concat-map": {
226+ "version": "0.0.1",
227+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
228+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
229+ "dev": true
230+ },
231+ "node_modules/cssesc": {
232+ "version": "3.0.0",
233+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
234+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
235+ "dev": true,
236+ "bin": {
237+ "cssesc": "bin/cssesc"
238+ },
239+ "engines": {
240+ "node": ">=4"
241+ }
242+ },
243+ "node_modules/didyoumean": {
244+ "version": "1.2.2",
245+ "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
246+ "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
247+ "dev": true
248+ },
249+ "node_modules/dlv": {
250+ "version": "1.1.3",
251+ "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
252+ "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
253+ "dev": true
254+ },
255+ "node_modules/fast-glob": {
256+ "version": "3.3.1",
257+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz",
258+ "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==",
259+ "dev": true,
260+ "dependencies": {
261+ "@nodelib/fs.stat": "^2.0.2",
262+ "@nodelib/fs.walk": "^1.2.3",
263+ "glob-parent": "^5.1.2",
264+ "merge2": "^1.3.0",
265+ "micromatch": "^4.0.4"
266+ },
267+ "engines": {
268+ "node": ">=8.6.0"
269+ }
270+ },
271+ "node_modules/fast-glob/node_modules/glob-parent": {
272+ "version": "5.1.2",
273+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
274+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
275+ "dev": true,
276+ "dependencies": {
277+ "is-glob": "^4.0.1"
278+ },
279+ "engines": {
280+ "node": ">= 6"
281+ }
282+ },
283+ "node_modules/fastq": {
284+ "version": "1.15.0",
285+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
286+ "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
287+ "dev": true,
288+ "dependencies": {
289+ "reusify": "^1.0.4"
290+ }
291+ },
292+ "node_modules/fill-range": {
293+ "version": "7.0.1",
294+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
295+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
296+ "dev": true,
297+ "dependencies": {
298+ "to-regex-range": "^5.0.1"
299+ },
300+ "engines": {
301+ "node": ">=8"
302+ }
303+ },
304+ "node_modules/fs.realpath": {
305+ "version": "1.0.0",
306+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
307+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
308+ "dev": true
309+ },
310+ "node_modules/fsevents": {
311+ "version": "2.3.3",
312+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
313+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
314+ "dev": true,
315+ "hasInstallScript": true,
316+ "optional": true,
317+ "os": [
318+ "darwin"
319+ ],
320+ "engines": {
321+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
322+ }
323+ },
324+ "node_modules/function-bind": {
325+ "version": "1.1.1",
326+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
327+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
328+ "dev": true
329+ },
330+ "node_modules/glob": {
331+ "version": "7.1.6",
332+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
333+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
334+ "dev": true,
335+ "dependencies": {
336+ "fs.realpath": "^1.0.0",
337+ "inflight": "^1.0.4",
338+ "inherits": "2",
339+ "minimatch": "^3.0.4",
340+ "once": "^1.3.0",
341+ "path-is-absolute": "^1.0.0"
342+ },
343+ "engines": {
344+ "node": "*"
345+ },
346+ "funding": {
347+ "url": "https://github.com/sponsors/isaacs"
348+ }
349+ },
350+ "node_modules/glob-parent": {
351+ "version": "6.0.2",
352+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
353+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
354+ "dev": true,
355+ "dependencies": {
356+ "is-glob": "^4.0.3"
357+ },
358+ "engines": {
359+ "node": ">=10.13.0"
360+ }
361+ },
362+ "node_modules/has": {
363+ "version": "1.0.3",
364+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
365+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
366+ "dev": true,
367+ "dependencies": {
368+ "function-bind": "^1.1.1"
369+ },
370+ "engines": {
371+ "node": ">= 0.4.0"
372+ }
373+ },
374+ "node_modules/inflight": {
375+ "version": "1.0.6",
376+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
377+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
378+ "dev": true,
379+ "dependencies": {
380+ "once": "^1.3.0",
381+ "wrappy": "1"
382+ }
383+ },
384+ "node_modules/inherits": {
385+ "version": "2.0.4",
386+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
387+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
388+ "dev": true
389+ },
390+ "node_modules/is-binary-path": {
391+ "version": "2.1.0",
392+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
393+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
394+ "dev": true,
395+ "dependencies": {
396+ "binary-extensions": "^2.0.0"
397+ },
398+ "engines": {
399+ "node": ">=8"
400+ }
401+ },
402+ "node_modules/is-core-module": {
403+ "version": "2.13.0",
404+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz",
405+ "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==",
406+ "dev": true,
407+ "dependencies": {
408+ "has": "^1.0.3"
409+ },
410+ "funding": {
411+ "url": "https://github.com/sponsors/ljharb"
412+ }
413+ },
414+ "node_modules/is-extglob": {
415+ "version": "2.1.1",
416+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
417+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
418+ "dev": true,
419+ "engines": {
420+ "node": ">=0.10.0"
421+ }
422+ },
423+ "node_modules/is-glob": {
424+ "version": "4.0.3",
425+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
426+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
427+ "dev": true,
428+ "dependencies": {
429+ "is-extglob": "^2.1.1"
430+ },
431+ "engines": {
432+ "node": ">=0.10.0"
433+ }
434+ },
435+ "node_modules/is-number": {
436+ "version": "7.0.0",
437+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
438+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
439+ "dev": true,
440+ "engines": {
441+ "node": ">=0.12.0"
442+ }
443+ },
444+ "node_modules/jiti": {
445+ "version": "1.19.3",
446+ "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.19.3.tgz",
447+ "integrity": "sha512-5eEbBDQT/jF1xg6l36P+mWGGoH9Spuy0PCdSr2dtWRDGC6ph/w9ZCL4lmESW8f8F7MwT3XKescfP0wnZWAKL9w==",
448+ "dev": true,
449+ "bin": {
450+ "jiti": "bin/jiti.js"
451+ }
452+ },
453+ "node_modules/lilconfig": {
454+ "version": "2.1.0",
455+ "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
456+ "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
457+ "dev": true,
458+ "engines": {
459+ "node": ">=10"
460+ }
461+ },
462+ "node_modules/lines-and-columns": {
463+ "version": "1.2.4",
464+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
465+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
466+ "dev": true
467+ },
468+ "node_modules/merge2": {
469+ "version": "1.4.1",
470+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
471+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
472+ "dev": true,
473+ "engines": {
474+ "node": ">= 8"
475+ }
476+ },
477+ "node_modules/micromatch": {
478+ "version": "4.0.5",
479+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
480+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
481+ "dev": true,
482+ "dependencies": {
483+ "braces": "^3.0.2",
484+ "picomatch": "^2.3.1"
485+ },
486+ "engines": {
487+ "node": ">=8.6"
488+ }
489+ },
490+ "node_modules/minimatch": {
491+ "version": "3.1.2",
492+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
493+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
494+ "dev": true,
495+ "dependencies": {
496+ "brace-expansion": "^1.1.7"
497+ },
498+ "engines": {
499+ "node": "*"
500+ }
501+ },
502+ "node_modules/mz": {
503+ "version": "2.7.0",
504+ "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
505+ "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
506+ "dev": true,
507+ "dependencies": {
508+ "any-promise": "^1.0.0",
509+ "object-assign": "^4.0.1",
510+ "thenify-all": "^1.0.0"
511+ }
512+ },
513+ "node_modules/nanoid": {
514+ "version": "3.3.6",
515+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
516+ "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
517+ "dev": true,
518+ "funding": [
519+ {
520+ "type": "github",
521+ "url": "https://github.com/sponsors/ai"
522+ }
523+ ],
524+ "bin": {
525+ "nanoid": "bin/nanoid.cjs"
526+ },
527+ "engines": {
528+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
529+ }
530+ },
531+ "node_modules/normalize-path": {
532+ "version": "3.0.0",
533+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
534+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
535+ "dev": true,
536+ "engines": {
537+ "node": ">=0.10.0"
538+ }
539+ },
540+ "node_modules/object-assign": {
541+ "version": "4.1.1",
542+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
543+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
544+ "dev": true,
545+ "engines": {
546+ "node": ">=0.10.0"
547+ }
548+ },
549+ "node_modules/object-hash": {
550+ "version": "3.0.0",
551+ "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
552+ "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
553+ "dev": true,
554+ "engines": {
555+ "node": ">= 6"
556+ }
557+ },
558+ "node_modules/once": {
559+ "version": "1.4.0",
560+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
561+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
562+ "dev": true,
563+ "dependencies": {
564+ "wrappy": "1"
565+ }
566+ },
567+ "node_modules/path-is-absolute": {
568+ "version": "1.0.1",
569+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
570+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
571+ "dev": true,
572+ "engines": {
573+ "node": ">=0.10.0"
574+ }
575+ },
576+ "node_modules/path-parse": {
577+ "version": "1.0.7",
578+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
579+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
580+ "dev": true
581+ },
582+ "node_modules/picocolors": {
583+ "version": "1.0.0",
584+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
585+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
586+ "dev": true
587+ },
588+ "node_modules/picomatch": {
589+ "version": "2.3.1",
590+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
591+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
592+ "dev": true,
593+ "engines": {
594+ "node": ">=8.6"
595+ },
596+ "funding": {
597+ "url": "https://github.com/sponsors/jonschlinkert"
598+ }
599+ },
600+ "node_modules/pify": {
601+ "version": "2.3.0",
602+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
603+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
604+ "dev": true,
605+ "engines": {
606+ "node": ">=0.10.0"
607+ }
608+ },
609+ "node_modules/pirates": {
610+ "version": "4.0.6",
611+ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
612+ "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
613+ "dev": true,
614+ "engines": {
615+ "node": ">= 6"
616+ }
617+ },
618+ "node_modules/postcss": {
619+ "version": "8.4.29",
620+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.29.tgz",
621+ "integrity": "sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==",
622+ "dev": true,
623+ "funding": [
624+ {
625+ "type": "opencollective",
626+ "url": "https://opencollective.com/postcss/"
627+ },
628+ {
629+ "type": "tidelift",
630+ "url": "https://tidelift.com/funding/github/npm/postcss"
631+ },
632+ {
633+ "type": "github",
634+ "url": "https://github.com/sponsors/ai"
635+ }
636+ ],
637+ "dependencies": {
638+ "nanoid": "^3.3.6",
639+ "picocolors": "^1.0.0",
640+ "source-map-js": "^1.0.2"
641+ },
642+ "engines": {
643+ "node": "^10 || ^12 || >=14"
644+ }
645+ },
646+ "node_modules/postcss-import": {
647+ "version": "15.1.0",
648+ "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
649+ "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
650+ "dev": true,
651+ "dependencies": {
652+ "postcss-value-parser": "^4.0.0",
653+ "read-cache": "^1.0.0",
654+ "resolve": "^1.1.7"
655+ },
656+ "engines": {
657+ "node": ">=14.0.0"
658+ },
659+ "peerDependencies": {
660+ "postcss": "^8.0.0"
661+ }
662+ },
663+ "node_modules/postcss-js": {
664+ "version": "4.0.1",
665+ "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz",
666+ "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==",
667+ "dev": true,
668+ "dependencies": {
669+ "camelcase-css": "^2.0.1"
670+ },
671+ "engines": {
672+ "node": "^12 || ^14 || >= 16"
673+ },
674+ "funding": {
675+ "type": "opencollective",
676+ "url": "https://opencollective.com/postcss/"
677+ },
678+ "peerDependencies": {
679+ "postcss": "^8.4.21"
680+ }
681+ },
682+ "node_modules/postcss-load-config": {
683+ "version": "4.0.1",
684+ "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz",
685+ "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==",
686+ "dev": true,
687+ "dependencies": {
688+ "lilconfig": "^2.0.5",
689+ "yaml": "^2.1.1"
690+ },
691+ "engines": {
692+ "node": ">= 14"
693+ },
694+ "funding": {
695+ "type": "opencollective",
696+ "url": "https://opencollective.com/postcss/"
697+ },
698+ "peerDependencies": {
699+ "postcss": ">=8.0.9",
700+ "ts-node": ">=9.0.0"
701+ },
702+ "peerDependenciesMeta": {
703+ "postcss": {
704+ "optional": true
705+ },
706+ "ts-node": {
707+ "optional": true
708+ }
709+ }
710+ },
711+ "node_modules/postcss-nested": {
712+ "version": "6.0.1",
713+ "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz",
714+ "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==",
715+ "dev": true,
716+ "dependencies": {
717+ "postcss-selector-parser": "^6.0.11"
718+ },
719+ "engines": {
720+ "node": ">=12.0"
721+ },
722+ "funding": {
723+ "type": "opencollective",
724+ "url": "https://opencollective.com/postcss/"
725+ },
726+ "peerDependencies": {
727+ "postcss": "^8.2.14"
728+ }
729+ },
730+ "node_modules/postcss-selector-parser": {
731+ "version": "6.0.13",
732+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz",
733+ "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==",
734+ "dev": true,
735+ "dependencies": {
736+ "cssesc": "^3.0.0",
737+ "util-deprecate": "^1.0.2"
738+ },
739+ "engines": {
740+ "node": ">=4"
741+ }
742+ },
743+ "node_modules/postcss-value-parser": {
744+ "version": "4.2.0",
745+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
746+ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
747+ "dev": true
748+ },
749+ "node_modules/queue-microtask": {
750+ "version": "1.2.3",
751+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
752+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
753+ "dev": true,
754+ "funding": [
755+ {
756+ "type": "github",
757+ "url": "https://github.com/sponsors/feross"
758+ },
759+ {
760+ "type": "patreon",
761+ "url": "https://www.patreon.com/feross"
762+ },
763+ {
764+ "type": "consulting",
765+ "url": "https://feross.org/support"
766+ }
767+ ]
768+ },
769+ "node_modules/read-cache": {
770+ "version": "1.0.0",
771+ "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
772+ "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
773+ "dev": true,
774+ "dependencies": {
775+ "pify": "^2.3.0"
776+ }
777+ },
778+ "node_modules/readdirp": {
779+ "version": "3.6.0",
780+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
781+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
782+ "dev": true,
783+ "dependencies": {
784+ "picomatch": "^2.2.1"
785+ },
786+ "engines": {
787+ "node": ">=8.10.0"
788+ }
789+ },
790+ "node_modules/resolve": {
791+ "version": "1.22.4",
792+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz",
793+ "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==",
794+ "dev": true,
795+ "dependencies": {
796+ "is-core-module": "^2.13.0",
797+ "path-parse": "^1.0.7",
798+ "supports-preserve-symlinks-flag": "^1.0.0"
799+ },
800+ "bin": {
801+ "resolve": "bin/resolve"
802+ },
803+ "funding": {
804+ "url": "https://github.com/sponsors/ljharb"
805+ }
806+ },
807+ "node_modules/reusify": {
808+ "version": "1.0.4",
809+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
810+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
811+ "dev": true,
812+ "engines": {
813+ "iojs": ">=1.0.0",
814+ "node": ">=0.10.0"
815+ }
816+ },
817+ "node_modules/run-parallel": {
818+ "version": "1.2.0",
819+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
820+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
821+ "dev": true,
822+ "funding": [
823+ {
824+ "type": "github",
825+ "url": "https://github.com/sponsors/feross"
826+ },
827+ {
828+ "type": "patreon",
829+ "url": "https://www.patreon.com/feross"
830+ },
831+ {
832+ "type": "consulting",
833+ "url": "https://feross.org/support"
834+ }
835+ ],
836+ "dependencies": {
837+ "queue-microtask": "^1.2.2"
838+ }
839+ },
840+ "node_modules/source-map-js": {
841+ "version": "1.0.2",
842+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
843+ "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
844+ "dev": true,
845+ "engines": {
846+ "node": ">=0.10.0"
847+ }
848+ },
849+ "node_modules/sucrase": {
850+ "version": "3.34.0",
851+ "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz",
852+ "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==",
853+ "dev": true,
854+ "dependencies": {
855+ "@jridgewell/gen-mapping": "^0.3.2",
856+ "commander": "^4.0.0",
857+ "glob": "7.1.6",
858+ "lines-and-columns": "^1.1.6",
859+ "mz": "^2.7.0",
860+ "pirates": "^4.0.1",
861+ "ts-interface-checker": "^0.1.9"
862+ },
863+ "bin": {
864+ "sucrase": "bin/sucrase",
865+ "sucrase-node": "bin/sucrase-node"
866+ },
867+ "engines": {
868+ "node": ">=8"
869+ }
870+ },
871+ "node_modules/supports-preserve-symlinks-flag": {
872+ "version": "1.0.0",
873+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
874+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
875+ "dev": true,
876+ "engines": {
877+ "node": ">= 0.4"
878+ },
879+ "funding": {
880+ "url": "https://github.com/sponsors/ljharb"
881+ }
882+ },
883+ "node_modules/tailwindcss": {
884+ "version": "3.3.3",
885+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.3.tgz",
886+ "integrity": "sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==",
887+ "dev": true,
888+ "dependencies": {
889+ "@alloc/quick-lru": "^5.2.0",
890+ "arg": "^5.0.2",
891+ "chokidar": "^3.5.3",
892+ "didyoumean": "^1.2.2",
893+ "dlv": "^1.1.3",
894+ "fast-glob": "^3.2.12",
895+ "glob-parent": "^6.0.2",
896+ "is-glob": "^4.0.3",
897+ "jiti": "^1.18.2",
898+ "lilconfig": "^2.1.0",
899+ "micromatch": "^4.0.5",
900+ "normalize-path": "^3.0.0",
901+ "object-hash": "^3.0.0",
902+ "picocolors": "^1.0.0",
903+ "postcss": "^8.4.23",
904+ "postcss-import": "^15.1.0",
905+ "postcss-js": "^4.0.1",
906+ "postcss-load-config": "^4.0.1",
907+ "postcss-nested": "^6.0.1",
908+ "postcss-selector-parser": "^6.0.11",
909+ "resolve": "^1.22.2",
910+ "sucrase": "^3.32.0"
911+ },
912+ "bin": {
913+ "tailwind": "lib/cli.js",
914+ "tailwindcss": "lib/cli.js"
915+ },
916+ "engines": {
917+ "node": ">=14.0.0"
918+ }
919+ },
920+ "node_modules/thenify": {
921+ "version": "3.3.1",
922+ "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
923+ "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
924+ "dev": true,
925+ "dependencies": {
926+ "any-promise": "^1.0.0"
927+ }
928+ },
929+ "node_modules/thenify-all": {
930+ "version": "1.6.0",
931+ "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
932+ "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
933+ "dev": true,
934+ "dependencies": {
935+ "thenify": ">= 3.1.0 < 4"
936+ },
937+ "engines": {
938+ "node": ">=0.8"
939+ }
940+ },
941+ "node_modules/to-regex-range": {
942+ "version": "5.0.1",
943+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
944+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
945+ "dev": true,
946+ "dependencies": {
947+ "is-number": "^7.0.0"
948+ },
949+ "engines": {
950+ "node": ">=8.0"
951+ }
952+ },
953+ "node_modules/ts-interface-checker": {
954+ "version": "0.1.13",
955+ "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
956+ "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
957+ "dev": true
958+ },
959+ "node_modules/util-deprecate": {
960+ "version": "1.0.2",
961+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
962+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
963+ "dev": true
964+ },
965+ "node_modules/wrappy": {
966+ "version": "1.0.2",
967+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
968+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
969+ "dev": true
970+ },
971+ "node_modules/yaml": {
972+ "version": "2.3.2",
973+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.2.tgz",
974+ "integrity": "sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==",
975+ "dev": true,
976+ "engines": {
977+ "node": ">= 14"
978+ }
979+ }
980+ }
981+}
A package.json +9 -0
@@ -0,0 +1,9 @@
1+{
2+ "devDependencies": {
3+ "tailwindcss": "^3.3.3"
4+ },
5+ "scripts": {
6+ "build:css": "tailwindcss build src/styles.css -o dist/styles.css",
7+ "dev:css": "tailwindcss -i internal/ui/public/assets/css/custom.css -o internal/ui/public/assets/css/tailwind.css --watch"
8+ }
9+}
@@ -0,0 +1,9 @@
1+{
2+ "devDependencies": {
3+ "tailwindcss": "^3.3.3"
4+ },
5+ "scripts": {
6+ "build:css": "tailwindcss build src/styles.css -o dist/styles.css",
7+ "dev:css": "tailwindcss -i internal/ui/public/assets/css/custom.css -o internal/ui/public/assets/css/tailwind.css --watch"
8+ }
9+}
A tailwind.config.js +8 -0
@@ -0,0 +1,8 @@
1+/** @type {import('tailwindcss').Config} */
2+module.exports = {
3+ content: ["./internal/ui/**/*.{gohtml,go}"],
4+ theme: {
5+ extend: {},
6+ },
7+ plugins: [],
8+}
@@ -0,0 +1,8 @@
1+/** @type {import('tailwindcss').Config} */
2+module.exports = {
3+ content: ["./internal/ui/**/*.{gohtml,go}"],
4+ theme: {
5+ extend: {},
6+ },
7+ plugins: [],
8+}
D uno.config.ts +0 -32
@@ -1,32 +0,0 @@
1-// uno.config.ts
2-import {
3- defineConfig, presetAttributify, presetIcons,
4- presetTypography, presetUno, presetWebFonts,
5- transformerDirectives, transformerVariantGroup
6-} from 'unocss'
7-
8-export default defineConfig({
9- shortcuts: [
10- // ...
11- ],
12- theme: {
13- colors: {
14- // ...
15- }
16- },
17- presets: [
18- presetUno(),
19- presetAttributify(),
20- presetIcons(),
21- presetTypography(),
22- presetWebFonts({
23- fonts: {
24- // ...
25- },
26- }),
27- ],
28- transformers: [
29- transformerDirectives(),
30- transformerVariantGroup(),
31- ],
32-})⏎̸
@@ -1,32 +0,0 @@
1-// uno.config.ts
2-import {
3- defineConfig, presetAttributify, presetIcons,
4- presetTypography, presetUno, presetWebFonts,
5- transformerDirectives, transformerVariantGroup
6-} from 'unocss'
7-
8-export default defineConfig({
9- shortcuts: [
10- // ...
11- ],
12- theme: {
13- colors: {
14- // ...
15- }
16- },
17- presets: [
18- presetUno(),
19- presetAttributify(),
20- presetIcons(),
21- presetTypography(),
22- presetWebFonts({
23- fonts: {
24- // ...
25- },
26- }),
27- ],
28- transformers: [
29- transformerDirectives(),
30- transformerVariantGroup(),
31- ],
32-})⏎̸

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 7

Tags 106

↑↓ moveenter openesc close