mirror of
https://github.com/LukeHagar/website.git
synced 2025-12-09 12:57:48 +00:00
Fix some missing prettier
This commit is contained in:
@@ -1,314 +1,314 @@
|
||||
{
|
||||
"apple": {
|
||||
"encodedCode": "\\ea01",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-apple",
|
||||
"unicode": ""
|
||||
},
|
||||
"appwrite": {
|
||||
"encodedCode": "\\ea02",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-appwrite",
|
||||
"unicode": ""
|
||||
},
|
||||
"arrow-down": {
|
||||
"encodedCode": "\\ea03",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-arrow-down",
|
||||
"unicode": ""
|
||||
},
|
||||
"arrow-ext-link": {
|
||||
"encodedCode": "\\ea04",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-arrow-ext-link",
|
||||
"unicode": ""
|
||||
},
|
||||
"arrow-left": {
|
||||
"encodedCode": "\\ea05",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-arrow-left",
|
||||
"unicode": ""
|
||||
},
|
||||
"arrow-right": {
|
||||
"encodedCode": "\\ea06",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-arrow-right",
|
||||
"unicode": ""
|
||||
},
|
||||
"arrow-up": {
|
||||
"encodedCode": "\\ea07",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-arrow-up",
|
||||
"unicode": ""
|
||||
},
|
||||
"calendar": {
|
||||
"encodedCode": "\\ea08",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-calendar",
|
||||
"unicode": ""
|
||||
},
|
||||
"check": {
|
||||
"encodedCode": "\\ea09",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-check",
|
||||
"unicode": ""
|
||||
},
|
||||
"chevron-down": {
|
||||
"encodedCode": "\\ea0a",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-chevron-down",
|
||||
"unicode": ""
|
||||
},
|
||||
"chevron-left": {
|
||||
"encodedCode": "\\ea0b",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-chevron-left",
|
||||
"unicode": ""
|
||||
},
|
||||
"chevron-right": {
|
||||
"encodedCode": "\\ea0c",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-chevron-right",
|
||||
"unicode": ""
|
||||
},
|
||||
"chevron-up": {
|
||||
"encodedCode": "\\ea0d",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-chevron-up",
|
||||
"unicode": ""
|
||||
},
|
||||
"close": {
|
||||
"encodedCode": "\\ea0e",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-close",
|
||||
"unicode": ""
|
||||
},
|
||||
"command": {
|
||||
"encodedCode": "\\ea0f",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-command",
|
||||
"unicode": ""
|
||||
},
|
||||
"copy": {
|
||||
"encodedCode": "\\ea10",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-copy",
|
||||
"unicode": ""
|
||||
},
|
||||
"daily-dev": {
|
||||
"encodedCode": "\\ea11",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-daily-dev",
|
||||
"unicode": ""
|
||||
},
|
||||
"dark": {
|
||||
"encodedCode": "\\ea12",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-dark",
|
||||
"unicode": ""
|
||||
},
|
||||
"discord": {
|
||||
"encodedCode": "\\ea13",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-discord",
|
||||
"unicode": ""
|
||||
},
|
||||
"divider-vertical": {
|
||||
"encodedCode": "\\ea14",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-divider-vertical",
|
||||
"unicode": ""
|
||||
},
|
||||
"download": {
|
||||
"encodedCode": "\\ea15",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-download",
|
||||
"unicode": ""
|
||||
},
|
||||
"ext-link": {
|
||||
"encodedCode": "\\ea16",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-ext-link",
|
||||
"unicode": ""
|
||||
},
|
||||
"firebase": {
|
||||
"encodedCode": "\\ea17",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-firebase",
|
||||
"unicode": ""
|
||||
},
|
||||
"github": {
|
||||
"encodedCode": "\\ea18",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-github",
|
||||
"unicode": ""
|
||||
},
|
||||
"google": {
|
||||
"encodedCode": "\\ea19",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-google",
|
||||
"unicode": ""
|
||||
},
|
||||
"hamburger-menu": {
|
||||
"encodedCode": "\\ea1a",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-hamburger-menu",
|
||||
"unicode": ""
|
||||
},
|
||||
"light": {
|
||||
"encodedCode": "\\ea1b",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-light",
|
||||
"unicode": ""
|
||||
},
|
||||
"linkedin": {
|
||||
"encodedCode": "\\ea1c",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-linkedin",
|
||||
"unicode": ""
|
||||
},
|
||||
"location": {
|
||||
"encodedCode": "\\ea1d",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-location",
|
||||
"unicode": ""
|
||||
},
|
||||
"logout-left": {
|
||||
"encodedCode": "\\ea1e",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-logout-left",
|
||||
"unicode": ""
|
||||
},
|
||||
"logout-right": {
|
||||
"encodedCode": "\\ea1f",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-logout-right",
|
||||
"unicode": ""
|
||||
},
|
||||
"mailgun": {
|
||||
"encodedCode": "\\ea20",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-mailgun",
|
||||
"unicode": ""
|
||||
},
|
||||
"message": {
|
||||
"encodedCode": "\\ea21",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-message",
|
||||
"unicode": ""
|
||||
},
|
||||
"microsoft": {
|
||||
"encodedCode": "\\ea22",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-microsoft",
|
||||
"unicode": ""
|
||||
},
|
||||
"minus": {
|
||||
"encodedCode": "\\ea23",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-minus",
|
||||
"unicode": ""
|
||||
},
|
||||
"nuxt": {
|
||||
"encodedCode": "\\ea24",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-nuxt",
|
||||
"unicode": ""
|
||||
},
|
||||
"platform": {
|
||||
"encodedCode": "\\ea25",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-platform",
|
||||
"unicode": ""
|
||||
},
|
||||
"play": {
|
||||
"encodedCode": "\\ea26",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-play",
|
||||
"unicode": ""
|
||||
},
|
||||
"plus": {
|
||||
"encodedCode": "\\ea27",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-plus",
|
||||
"unicode": ""
|
||||
},
|
||||
"product-hunt": {
|
||||
"encodedCode": "\\ea28",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-product-hunt",
|
||||
"unicode": ""
|
||||
},
|
||||
"refine": {
|
||||
"encodedCode": "\\ea29",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-refine",
|
||||
"unicode": ""
|
||||
},
|
||||
"rest": {
|
||||
"encodedCode": "\\ea2a",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-rest",
|
||||
"unicode": ""
|
||||
},
|
||||
"search": {
|
||||
"encodedCode": "\\ea2b",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-search",
|
||||
"unicode": ""
|
||||
},
|
||||
"sendgrid": {
|
||||
"encodedCode": "\\ea2c",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-sendgrid",
|
||||
"unicode": ""
|
||||
},
|
||||
"star": {
|
||||
"encodedCode": "\\ea2d",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-star",
|
||||
"unicode": ""
|
||||
},
|
||||
"system": {
|
||||
"encodedCode": "\\ea2e",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-system",
|
||||
"unicode": ""
|
||||
},
|
||||
"textmagic": {
|
||||
"encodedCode": "\\ea2f",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-textmagic",
|
||||
"unicode": ""
|
||||
},
|
||||
"twitter": {
|
||||
"encodedCode": "\\ea30",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-twitter",
|
||||
"unicode": ""
|
||||
},
|
||||
"vue": {
|
||||
"encodedCode": "\\ea31",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-vue",
|
||||
"unicode": ""
|
||||
},
|
||||
"x": {
|
||||
"encodedCode": "\\ea32",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-x",
|
||||
"unicode": ""
|
||||
},
|
||||
"ycombinator": {
|
||||
"encodedCode": "\\ea33",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-ycombinator",
|
||||
"unicode": ""
|
||||
},
|
||||
"youtube": {
|
||||
"encodedCode": "\\ea34",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-youtube",
|
||||
"unicode": ""
|
||||
}
|
||||
"apple": {
|
||||
"encodedCode": "\\ea01",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-apple",
|
||||
"unicode": ""
|
||||
},
|
||||
"appwrite": {
|
||||
"encodedCode": "\\ea02",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-appwrite",
|
||||
"unicode": ""
|
||||
},
|
||||
"arrow-down": {
|
||||
"encodedCode": "\\ea03",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-arrow-down",
|
||||
"unicode": ""
|
||||
},
|
||||
"arrow-ext-link": {
|
||||
"encodedCode": "\\ea04",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-arrow-ext-link",
|
||||
"unicode": ""
|
||||
},
|
||||
"arrow-left": {
|
||||
"encodedCode": "\\ea05",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-arrow-left",
|
||||
"unicode": ""
|
||||
},
|
||||
"arrow-right": {
|
||||
"encodedCode": "\\ea06",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-arrow-right",
|
||||
"unicode": ""
|
||||
},
|
||||
"arrow-up": {
|
||||
"encodedCode": "\\ea07",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-arrow-up",
|
||||
"unicode": ""
|
||||
},
|
||||
"calendar": {
|
||||
"encodedCode": "\\ea08",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-calendar",
|
||||
"unicode": ""
|
||||
},
|
||||
"check": {
|
||||
"encodedCode": "\\ea09",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-check",
|
||||
"unicode": ""
|
||||
},
|
||||
"chevron-down": {
|
||||
"encodedCode": "\\ea0a",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-chevron-down",
|
||||
"unicode": ""
|
||||
},
|
||||
"chevron-left": {
|
||||
"encodedCode": "\\ea0b",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-chevron-left",
|
||||
"unicode": ""
|
||||
},
|
||||
"chevron-right": {
|
||||
"encodedCode": "\\ea0c",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-chevron-right",
|
||||
"unicode": ""
|
||||
},
|
||||
"chevron-up": {
|
||||
"encodedCode": "\\ea0d",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-chevron-up",
|
||||
"unicode": ""
|
||||
},
|
||||
"close": {
|
||||
"encodedCode": "\\ea0e",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-close",
|
||||
"unicode": ""
|
||||
},
|
||||
"command": {
|
||||
"encodedCode": "\\ea0f",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-command",
|
||||
"unicode": ""
|
||||
},
|
||||
"copy": {
|
||||
"encodedCode": "\\ea10",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-copy",
|
||||
"unicode": ""
|
||||
},
|
||||
"daily-dev": {
|
||||
"encodedCode": "\\ea11",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-daily-dev",
|
||||
"unicode": ""
|
||||
},
|
||||
"dark": {
|
||||
"encodedCode": "\\ea12",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-dark",
|
||||
"unicode": ""
|
||||
},
|
||||
"discord": {
|
||||
"encodedCode": "\\ea13",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-discord",
|
||||
"unicode": ""
|
||||
},
|
||||
"divider-vertical": {
|
||||
"encodedCode": "\\ea14",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-divider-vertical",
|
||||
"unicode": ""
|
||||
},
|
||||
"download": {
|
||||
"encodedCode": "\\ea15",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-download",
|
||||
"unicode": ""
|
||||
},
|
||||
"ext-link": {
|
||||
"encodedCode": "\\ea16",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-ext-link",
|
||||
"unicode": ""
|
||||
},
|
||||
"firebase": {
|
||||
"encodedCode": "\\ea17",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-firebase",
|
||||
"unicode": ""
|
||||
},
|
||||
"github": {
|
||||
"encodedCode": "\\ea18",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-github",
|
||||
"unicode": ""
|
||||
},
|
||||
"google": {
|
||||
"encodedCode": "\\ea19",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-google",
|
||||
"unicode": ""
|
||||
},
|
||||
"hamburger-menu": {
|
||||
"encodedCode": "\\ea1a",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-hamburger-menu",
|
||||
"unicode": ""
|
||||
},
|
||||
"light": {
|
||||
"encodedCode": "\\ea1b",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-light",
|
||||
"unicode": ""
|
||||
},
|
||||
"linkedin": {
|
||||
"encodedCode": "\\ea1c",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-linkedin",
|
||||
"unicode": ""
|
||||
},
|
||||
"location": {
|
||||
"encodedCode": "\\ea1d",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-location",
|
||||
"unicode": ""
|
||||
},
|
||||
"logout-left": {
|
||||
"encodedCode": "\\ea1e",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-logout-left",
|
||||
"unicode": ""
|
||||
},
|
||||
"logout-right": {
|
||||
"encodedCode": "\\ea1f",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-logout-right",
|
||||
"unicode": ""
|
||||
},
|
||||
"mailgun": {
|
||||
"encodedCode": "\\ea20",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-mailgun",
|
||||
"unicode": ""
|
||||
},
|
||||
"message": {
|
||||
"encodedCode": "\\ea21",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-message",
|
||||
"unicode": ""
|
||||
},
|
||||
"microsoft": {
|
||||
"encodedCode": "\\ea22",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-microsoft",
|
||||
"unicode": ""
|
||||
},
|
||||
"minus": {
|
||||
"encodedCode": "\\ea23",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-minus",
|
||||
"unicode": ""
|
||||
},
|
||||
"nuxt": {
|
||||
"encodedCode": "\\ea24",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-nuxt",
|
||||
"unicode": ""
|
||||
},
|
||||
"platform": {
|
||||
"encodedCode": "\\ea25",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-platform",
|
||||
"unicode": ""
|
||||
},
|
||||
"play": {
|
||||
"encodedCode": "\\ea26",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-play",
|
||||
"unicode": ""
|
||||
},
|
||||
"plus": {
|
||||
"encodedCode": "\\ea27",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-plus",
|
||||
"unicode": ""
|
||||
},
|
||||
"product-hunt": {
|
||||
"encodedCode": "\\ea28",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-product-hunt",
|
||||
"unicode": ""
|
||||
},
|
||||
"refine": {
|
||||
"encodedCode": "\\ea29",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-refine",
|
||||
"unicode": ""
|
||||
},
|
||||
"rest": {
|
||||
"encodedCode": "\\ea2a",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-rest",
|
||||
"unicode": ""
|
||||
},
|
||||
"search": {
|
||||
"encodedCode": "\\ea2b",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-search",
|
||||
"unicode": ""
|
||||
},
|
||||
"sendgrid": {
|
||||
"encodedCode": "\\ea2c",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-sendgrid",
|
||||
"unicode": ""
|
||||
},
|
||||
"star": {
|
||||
"encodedCode": "\\ea2d",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-star",
|
||||
"unicode": ""
|
||||
},
|
||||
"system": {
|
||||
"encodedCode": "\\ea2e",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-system",
|
||||
"unicode": ""
|
||||
},
|
||||
"textmagic": {
|
||||
"encodedCode": "\\ea2f",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-textmagic",
|
||||
"unicode": ""
|
||||
},
|
||||
"twitter": {
|
||||
"encodedCode": "\\ea30",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-twitter",
|
||||
"unicode": ""
|
||||
},
|
||||
"vue": {
|
||||
"encodedCode": "\\ea31",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-vue",
|
||||
"unicode": ""
|
||||
},
|
||||
"x": {
|
||||
"encodedCode": "\\ea32",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-x",
|
||||
"unicode": ""
|
||||
},
|
||||
"ycombinator": {
|
||||
"encodedCode": "\\ea33",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-ycombinator",
|
||||
"unicode": ""
|
||||
},
|
||||
"youtube": {
|
||||
"encodedCode": "\\ea34",
|
||||
"prefix": "web-icon",
|
||||
"className": "web-icon-youtube",
|
||||
"unicode": ""
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,15 +1,18 @@
|
||||
@font-face {
|
||||
font-family: "web-icon";
|
||||
font-family: 'web-icon';
|
||||
font-display: swap;
|
||||
src: url('web-icon.eot'); /* IE9*/
|
||||
src: url('web-icon.eot#iefix') format('embedded-opentype'), /* IE6-IE8 */
|
||||
url("web-icon.woff2") format("woff2"),
|
||||
url("web-icon.woff") format("woff"),
|
||||
url('web-icon.ttf') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/
|
||||
url('web-icon.svg#web-icon') format('svg'); /* iOS 4.1- */
|
||||
src:
|
||||
url('web-icon.eot#iefix') format('embedded-opentype'),
|
||||
/* IE6-IE8 */ url('web-icon.woff2') format('woff2'),
|
||||
url('web-icon.woff') format('woff'),
|
||||
url('web-icon.ttf') format('truetype'),
|
||||
/* chrome, firefox, opera, Safari, Android, iOS 4.2+*/ url('web-icon.svg#web-icon')
|
||||
format('svg'); /* iOS 4.1- */
|
||||
}
|
||||
|
||||
[class^="web-icon-"], [class*=" web-icon-"] {
|
||||
[class^='web-icon-'],
|
||||
[class*=' web-icon-'] {
|
||||
font-family: 'web-icon' !important;
|
||||
font-size: 20px;
|
||||
font-style: normal;
|
||||
@@ -17,55 +20,159 @@
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
.web-icon-apple:before { content: "\ea01"; }
|
||||
.web-icon-appwrite:before { content: "\ea02"; }
|
||||
.web-icon-arrow-down:before { content: "\ea03"; }
|
||||
.web-icon-arrow-ext-link:before { content: "\ea04"; }
|
||||
.web-icon-arrow-left:before { content: "\ea05"; }
|
||||
.web-icon-arrow-right:before { content: "\ea06"; }
|
||||
.web-icon-arrow-up:before { content: "\ea07"; }
|
||||
.web-icon-calendar:before { content: "\ea08"; }
|
||||
.web-icon-check:before { content: "\ea09"; }
|
||||
.web-icon-chevron-down:before { content: "\ea0a"; }
|
||||
.web-icon-chevron-left:before { content: "\ea0b"; }
|
||||
.web-icon-chevron-right:before { content: "\ea0c"; }
|
||||
.web-icon-chevron-up:before { content: "\ea0d"; }
|
||||
.web-icon-close:before { content: "\ea0e"; }
|
||||
.web-icon-command:before { content: "\ea0f"; }
|
||||
.web-icon-copy:before { content: "\ea10"; }
|
||||
.web-icon-daily-dev:before { content: "\ea11"; }
|
||||
.web-icon-dark:before { content: "\ea12"; }
|
||||
.web-icon-discord:before { content: "\ea13"; }
|
||||
.web-icon-divider-vertical:before { content: "\ea14"; }
|
||||
.web-icon-download:before { content: "\ea15"; }
|
||||
.web-icon-ext-link:before { content: "\ea16"; }
|
||||
.web-icon-firebase:before { content: "\ea17"; }
|
||||
.web-icon-github:before { content: "\ea18"; }
|
||||
.web-icon-google:before { content: "\ea19"; }
|
||||
.web-icon-hamburger-menu:before { content: "\ea1a"; }
|
||||
.web-icon-light:before { content: "\ea1b"; }
|
||||
.web-icon-linkedin:before { content: "\ea1c"; }
|
||||
.web-icon-location:before { content: "\ea1d"; }
|
||||
.web-icon-logout-left:before { content: "\ea1e"; }
|
||||
.web-icon-logout-right:before { content: "\ea1f"; }
|
||||
.web-icon-mailgun:before { content: "\ea20"; }
|
||||
.web-icon-message:before { content: "\ea21"; }
|
||||
.web-icon-microsoft:before { content: "\ea22"; }
|
||||
.web-icon-minus:before { content: "\ea23"; }
|
||||
.web-icon-nuxt:before { content: "\ea24"; }
|
||||
.web-icon-platform:before { content: "\ea25"; }
|
||||
.web-icon-play:before { content: "\ea26"; }
|
||||
.web-icon-plus:before { content: "\ea27"; }
|
||||
.web-icon-product-hunt:before { content: "\ea28"; }
|
||||
.web-icon-refine:before { content: "\ea29"; }
|
||||
.web-icon-rest:before { content: "\ea2a"; }
|
||||
.web-icon-search:before { content: "\ea2b"; }
|
||||
.web-icon-sendgrid:before { content: "\ea2c"; }
|
||||
.web-icon-star:before { content: "\ea2d"; }
|
||||
.web-icon-system:before { content: "\ea2e"; }
|
||||
.web-icon-textmagic:before { content: "\ea2f"; }
|
||||
.web-icon-twitter:before { content: "\ea30"; }
|
||||
.web-icon-vue:before { content: "\ea31"; }
|
||||
.web-icon-x:before { content: "\ea32"; }
|
||||
.web-icon-ycombinator:before { content: "\ea33"; }
|
||||
.web-icon-youtube:before { content: "\ea34"; }
|
||||
.web-icon-apple:before {
|
||||
content: '\ea01';
|
||||
}
|
||||
.web-icon-appwrite:before {
|
||||
content: '\ea02';
|
||||
}
|
||||
.web-icon-arrow-down:before {
|
||||
content: '\ea03';
|
||||
}
|
||||
.web-icon-arrow-ext-link:before {
|
||||
content: '\ea04';
|
||||
}
|
||||
.web-icon-arrow-left:before {
|
||||
content: '\ea05';
|
||||
}
|
||||
.web-icon-arrow-right:before {
|
||||
content: '\ea06';
|
||||
}
|
||||
.web-icon-arrow-up:before {
|
||||
content: '\ea07';
|
||||
}
|
||||
.web-icon-calendar:before {
|
||||
content: '\ea08';
|
||||
}
|
||||
.web-icon-check:before {
|
||||
content: '\ea09';
|
||||
}
|
||||
.web-icon-chevron-down:before {
|
||||
content: '\ea0a';
|
||||
}
|
||||
.web-icon-chevron-left:before {
|
||||
content: '\ea0b';
|
||||
}
|
||||
.web-icon-chevron-right:before {
|
||||
content: '\ea0c';
|
||||
}
|
||||
.web-icon-chevron-up:before {
|
||||
content: '\ea0d';
|
||||
}
|
||||
.web-icon-close:before {
|
||||
content: '\ea0e';
|
||||
}
|
||||
.web-icon-command:before {
|
||||
content: '\ea0f';
|
||||
}
|
||||
.web-icon-copy:before {
|
||||
content: '\ea10';
|
||||
}
|
||||
.web-icon-daily-dev:before {
|
||||
content: '\ea11';
|
||||
}
|
||||
.web-icon-dark:before {
|
||||
content: '\ea12';
|
||||
}
|
||||
.web-icon-discord:before {
|
||||
content: '\ea13';
|
||||
}
|
||||
.web-icon-divider-vertical:before {
|
||||
content: '\ea14';
|
||||
}
|
||||
.web-icon-download:before {
|
||||
content: '\ea15';
|
||||
}
|
||||
.web-icon-ext-link:before {
|
||||
content: '\ea16';
|
||||
}
|
||||
.web-icon-firebase:before {
|
||||
content: '\ea17';
|
||||
}
|
||||
.web-icon-github:before {
|
||||
content: '\ea18';
|
||||
}
|
||||
.web-icon-google:before {
|
||||
content: '\ea19';
|
||||
}
|
||||
.web-icon-hamburger-menu:before {
|
||||
content: '\ea1a';
|
||||
}
|
||||
.web-icon-light:before {
|
||||
content: '\ea1b';
|
||||
}
|
||||
.web-icon-linkedin:before {
|
||||
content: '\ea1c';
|
||||
}
|
||||
.web-icon-location:before {
|
||||
content: '\ea1d';
|
||||
}
|
||||
.web-icon-logout-left:before {
|
||||
content: '\ea1e';
|
||||
}
|
||||
.web-icon-logout-right:before {
|
||||
content: '\ea1f';
|
||||
}
|
||||
.web-icon-mailgun:before {
|
||||
content: '\ea20';
|
||||
}
|
||||
.web-icon-message:before {
|
||||
content: '\ea21';
|
||||
}
|
||||
.web-icon-microsoft:before {
|
||||
content: '\ea22';
|
||||
}
|
||||
.web-icon-minus:before {
|
||||
content: '\ea23';
|
||||
}
|
||||
.web-icon-nuxt:before {
|
||||
content: '\ea24';
|
||||
}
|
||||
.web-icon-platform:before {
|
||||
content: '\ea25';
|
||||
}
|
||||
.web-icon-play:before {
|
||||
content: '\ea26';
|
||||
}
|
||||
.web-icon-plus:before {
|
||||
content: '\ea27';
|
||||
}
|
||||
.web-icon-product-hunt:before {
|
||||
content: '\ea28';
|
||||
}
|
||||
.web-icon-refine:before {
|
||||
content: '\ea29';
|
||||
}
|
||||
.web-icon-rest:before {
|
||||
content: '\ea2a';
|
||||
}
|
||||
.web-icon-search:before {
|
||||
content: '\ea2b';
|
||||
}
|
||||
.web-icon-sendgrid:before {
|
||||
content: '\ea2c';
|
||||
}
|
||||
.web-icon-star:before {
|
||||
content: '\ea2d';
|
||||
}
|
||||
.web-icon-system:before {
|
||||
content: '\ea2e';
|
||||
}
|
||||
.web-icon-textmagic:before {
|
||||
content: '\ea2f';
|
||||
}
|
||||
.web-icon-twitter:before {
|
||||
content: '\ea30';
|
||||
}
|
||||
.web-icon-vue:before {
|
||||
content: '\ea31';
|
||||
}
|
||||
.web-icon-x:before {
|
||||
content: '\ea32';
|
||||
}
|
||||
.web-icon-ycombinator:before {
|
||||
content: '\ea33';
|
||||
}
|
||||
.web-icon-youtube:before {
|
||||
content: '\ea34';
|
||||
}
|
||||
|
||||
@@ -199,7 +199,7 @@
|
||||
<a
|
||||
class="web-card is-white web-u-min-block-size-320 oss-card flex flex-col"
|
||||
id="oss-github"
|
||||
href="{GITHUB_REPO_LINK}"
|
||||
href={GITHUB_REPO_LINK}
|
||||
>
|
||||
<div class="flex flex-col justify-between gap-8">
|
||||
<span
|
||||
@@ -246,7 +246,7 @@
|
||||
<a
|
||||
class="web-card is-white web-u-min-block-size-320 oss-card flex flex-col"
|
||||
id="oss-commits"
|
||||
href="{GITHUB_REPO_LINK}"
|
||||
href={GITHUB_REPO_LINK}
|
||||
>
|
||||
<div class="flex flex-col justify-between gap-8">
|
||||
<span
|
||||
|
||||
@@ -101,7 +101,7 @@
|
||||
{#each Object.entries(links) as [title, items]}
|
||||
<li class="web-footer-nav-main-item web-is-not-mobile">
|
||||
<h2
|
||||
class="web-footer-nav-main-title web-is-not-mobile text-caption uppercase font-medium"
|
||||
class="web-footer-nav-main-title web-is-not-mobile text-caption font-medium uppercase"
|
||||
>
|
||||
{title}
|
||||
</h2>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
</div>
|
||||
<div class="web-side-nav-mobile-footer-buttons">
|
||||
<a
|
||||
href="{GITHUB_REPO_LINK}"
|
||||
href={GITHUB_REPO_LINK}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
class="web-button is-text web-u-inline-width-100-percent-mobile"
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
<img src="/images/bgs/pre-footer.png" alt="" class="web-pre-footer-bg" style="z-index:-1" />
|
||||
|
||||
<div class="web-u-row-gap-80 relative grid md:grid-cols-2 gap-8">
|
||||
<div class="web-u-row-gap-80 relative grid gap-8 md:grid-cols-2">
|
||||
<section class="web-hero flex items-center justify-center gap-y-8">
|
||||
<h2 class="text-display font-aeonik-pro text-primary max-w-[500px] text-center">
|
||||
Start building today
|
||||
|
||||
@@ -65,7 +65,9 @@
|
||||
}>;
|
||||
</script>
|
||||
|
||||
<ul class="web-u-margin-block-32-mobile web-u-margin-block-40-not-mobile flex flex-wrap gap-4 lg:max-w-[34rem]">
|
||||
<ul
|
||||
class="web-u-margin-block-32-mobile web-u-margin-block-40-not-mobile flex flex-wrap gap-4 lg:max-w-[34rem]"
|
||||
>
|
||||
{#each platforms as platform}
|
||||
<Tooltip>
|
||||
<li>
|
||||
|
||||
@@ -122,7 +122,7 @@
|
||||
};
|
||||
</script>
|
||||
|
||||
<div class="embla relative overflow-hidden web-carousel">
|
||||
<div class="embla web-carousel relative overflow-hidden">
|
||||
{#if hasPrev}
|
||||
<button class="web-carousel-button web-carousel-button-start" on:click={onPrev}>
|
||||
<span class="web-icon-arrow-left" aria-hidden="true"></span>
|
||||
|
||||
@@ -1,51 +1,51 @@
|
||||
<script lang="ts">
|
||||
import { classNames } from '$lib/utils/classnames';
|
||||
import type { HTMLButtonAttributes, HTMLAnchorAttributes } from 'svelte/elements';
|
||||
import { cva, type VariantProps } from 'cva';
|
||||
import InlineTag from './InlineTag.svelte';
|
||||
import { classNames } from '$lib/utils/classnames';
|
||||
import type { HTMLButtonAttributes, HTMLAnchorAttributes } from 'svelte/elements';
|
||||
import { cva, type VariantProps } from 'cva';
|
||||
import InlineTag from './InlineTag.svelte';
|
||||
|
||||
const button = cva(
|
||||
[
|
||||
'flex w-fit justify-center px-[0.875rem] h-10 transition-all text-center no-underline select-none min-w-10 bg-origin-border text-white font-medium items-center gap-2 rounded-lg border border-transparent button duration-200'
|
||||
],
|
||||
{
|
||||
variants: {
|
||||
variant: {
|
||||
primary: [
|
||||
'bg-[linear-gradient(135deg,_var(--color-accent)_0%,_var(--color-accent)_61%,_var(--color-secondary-100)_100%)]',
|
||||
'hover:shadow-[0_0_2rem_var(--color-accent-200)] active:not:disabled:shadow-[0_0_2rem_var(--color-accent-200)]'
|
||||
],
|
||||
secondary: [
|
||||
'bg-[#fd366e0a] relative',
|
||||
'hover:shadow-[0_-6px_10px_0px_rgba(253,54,110,0.08)_inset]'
|
||||
],
|
||||
text: [
|
||||
'bg-transparent border-transparent text-white',
|
||||
'hover:backdrop-blur-md hover:bg-[linear-gradient(135deg,_rgba(255,_255,_255,_0.06)_0%,_rgba(255,_255,_255,_0.10)_54.74%,_rgba(255,_255,_255,_0.06)_100%)]'
|
||||
]
|
||||
const button = cva(
|
||||
[
|
||||
'flex w-fit justify-center px-[0.875rem] h-10 transition-all text-center no-underline select-none min-w-10 bg-origin-border text-white font-medium items-center gap-2 rounded-lg border border-transparent button duration-200'
|
||||
],
|
||||
{
|
||||
variants: {
|
||||
variant: {
|
||||
primary: [
|
||||
'bg-[linear-gradient(135deg,_var(--color-accent)_0%,_var(--color-accent)_61%,_var(--color-secondary-100)_100%)]',
|
||||
'hover:shadow-[0_0_2rem_var(--color-accent-200)] active:not:disabled:shadow-[0_0_2rem_var(--color-accent-200)]'
|
||||
],
|
||||
secondary: [
|
||||
'bg-[#fd366e0a] relative',
|
||||
'hover:shadow-[0_-6px_10px_0px_rgba(253,54,110,0.08)_inset]'
|
||||
],
|
||||
text: [
|
||||
'bg-transparent border-transparent text-white',
|
||||
'hover:backdrop-blur-md hover:bg-[linear-gradient(135deg,_rgba(255,_255,_255,_0.06)_0%,_rgba(255,_255,_255,_0.10)_54.74%,_rgba(255,_255,_255,_0.06)_100%)]'
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
);
|
||||
|
||||
type ButtonProps =
|
||||
| (HTMLButtonAttributes & { href?: undefined })
|
||||
| (HTMLAnchorAttributes & { href: string });
|
||||
type ButtonProps =
|
||||
| (HTMLButtonAttributes & { href?: undefined })
|
||||
| (HTMLAnchorAttributes & { href: string });
|
||||
|
||||
type $$Props = ButtonProps & VariantProps<typeof button>;
|
||||
type $$Props = ButtonProps & VariantProps<typeof button>;
|
||||
|
||||
export let href: $$Props['href'] = undefined;
|
||||
export let variant: $$Props['variant'] = 'primary';
|
||||
const { class: classes, ...props } = $$restProps;
|
||||
export let href: $$Props['href'] = undefined;
|
||||
export let variant: $$Props['variant'] = 'primary';
|
||||
const { class: classes, ...props } = $$restProps;
|
||||
|
||||
const buttonClasses = classNames(button({ variant }), classes, {
|
||||
secondary: variant === 'secondary',
|
||||
'leading-tight': $$slots.icon
|
||||
});
|
||||
const buttonClasses = classNames(button({ variant }), classes, {
|
||||
secondary: variant === 'secondary',
|
||||
'leading-tight': $$slots.icon
|
||||
});
|
||||
</script>
|
||||
|
||||
{#if href}
|
||||
<a {...props} href={href} class={buttonClasses}>
|
||||
<a {...props} {href} class={buttonClasses}>
|
||||
{#if $$slots.icon}
|
||||
<slot name="icon" />
|
||||
{/if}
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
</h1>
|
||||
{#if $$slots.description}
|
||||
<div class="flex-1 self-end">
|
||||
<p class="text-secondary mt-6 text-description font-medium">
|
||||
<p class="text-secondary text-description mt-6 font-medium">
|
||||
<slot name="description" />
|
||||
</p>
|
||||
<slot name="cta" />
|
||||
|
||||
@@ -167,7 +167,7 @@
|
||||
<div class="web-main-header-end">
|
||||
<div class="flex gap-2">
|
||||
<a
|
||||
href="{GITHUB_REPO_LINK}"
|
||||
href={GITHUB_REPO_LINK}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
class="web-button is-text"
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
const firstStepItem: Tutorial | null = tutorials[0] ?? null;
|
||||
// currentStep starts from 1, the arrays start from 0.
|
||||
const currentStepItem = (tutorials[currentStep - 1] ?? firstStepItem);
|
||||
const currentStepItem = tutorials[currentStep - 1] ?? firstStepItem;
|
||||
|
||||
$: nextStep = tutorials.find((tutorial) => tutorial.step === currentStep + 1);
|
||||
$: prevStep = tutorials.find((tutorial) => tutorial.step === currentStep - 1);
|
||||
@@ -34,7 +34,7 @@
|
||||
if (!slotContent) return;
|
||||
|
||||
// dynamically modify all `label` headers to `body`.
|
||||
slotContent.querySelectorAll<HTMLHeadingElement>('h2.web-label').forEach(header => {
|
||||
slotContent.querySelectorAll<HTMLHeadingElement>('h2.web-label').forEach((header) => {
|
||||
header.classList.replace('web-label', 'web-main-body-500');
|
||||
});
|
||||
});
|
||||
@@ -78,8 +78,8 @@
|
||||
<span class="icon-cheveron-left" aria-hidden="true" />
|
||||
<span class="web-sub-body-500">
|
||||
Step {prevStep.step}<span class="web-is-not-mobile"
|
||||
>: {getCorrectTitle(prevStep, 1)}</span
|
||||
>
|
||||
>: {getCorrectTitle(prevStep, 1)}</span
|
||||
>
|
||||
</span>
|
||||
</a>
|
||||
{/if}
|
||||
@@ -91,8 +91,8 @@
|
||||
>
|
||||
<span class="web-sub-body-500">
|
||||
Step {nextStep.step}<span class="web-is-not-mobile"
|
||||
>: {nextStep.title}</span
|
||||
>
|
||||
>: {nextStep.title}</span
|
||||
>
|
||||
</span>
|
||||
<span class="icon-cheveron-right" aria-hidden="true" />
|
||||
</a>
|
||||
@@ -120,13 +120,15 @@
|
||||
>
|
||||
<span class="web-numeric-badge">{tutorial.step}</span>
|
||||
<!-- first item will always be introduction -->
|
||||
<span class="web-caption-400">{index === 0 ? 'Introduction' : tutorial.title}</span>
|
||||
<span class="web-caption-400"
|
||||
>{index === 0 ? 'Introduction' : tutorial.title}</span
|
||||
>
|
||||
</a>
|
||||
{#if isCurrentStep && toc.length}
|
||||
<ol
|
||||
class="web-references-menu-list u-margin-block-start-16 u-margin-inline-start-32"
|
||||
class="web-references-menu-list u-margin-block-start-16 u-margin-inline-start-32"
|
||||
>
|
||||
{#each toc.slice(1) as parent}
|
||||
{#each toc.slice(1) as parent}
|
||||
<li class="web-references-menu-item">
|
||||
<a
|
||||
href={parent.href}
|
||||
|
||||
@@ -140,15 +140,16 @@
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
return $scrollInfo.deltaDirChange < 200;
|
||||
})();
|
||||
|
||||
function updateSideNav() {
|
||||
if(browser) {
|
||||
if (browser) {
|
||||
const integrationsSide = document.getElementById('integrations-side');
|
||||
if (integrationsSide) {
|
||||
$isHeaderHidden ? integrationsSide.classList.remove('menu-visible') : integrationsSide.classList.add('menu-visible');
|
||||
$isHeaderHidden
|
||||
? integrationsSide.classList.remove('menu-visible')
|
||||
: integrationsSide.classList.add('menu-visible');
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -258,7 +259,7 @@
|
||||
</div>
|
||||
<div class="web-main-header-end">
|
||||
<a
|
||||
href="{GITHUB_REPO_LINK}"
|
||||
href={GITHUB_REPO_LINK}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
class="web-button is-text web-u-inline-width-100-percent-mobile"
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
{/if}
|
||||
{:else}
|
||||
{#if navGroup.label}
|
||||
<h2 class="web-side-nav-header text-micro uppercase whitespace-nowrap">
|
||||
<h2 class="web-side-nav-header text-micro whitespace-nowrap uppercase">
|
||||
{navGroup.label}
|
||||
</h2>
|
||||
{/if}
|
||||
@@ -116,7 +116,7 @@
|
||||
<IsLoggedIn />
|
||||
|
||||
<a
|
||||
href="{GITHUB_REPO_LINK}"
|
||||
href={GITHUB_REPO_LINK}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
class="web-button is-text web-u-inline-width-100-percent-mobile"
|
||||
|
||||
@@ -2,31 +2,31 @@ import { base } from '$app/paths';
|
||||
import type { Tutorial } from '$markdoc/layouts/Tutorial.svelte';
|
||||
|
||||
export function globToTutorial(data: { tutorials: Record<string, unknown>; pathname: string }) {
|
||||
let isFound = false;
|
||||
let difficulty, readtime;
|
||||
let isFound = false;
|
||||
let difficulty, readtime;
|
||||
|
||||
return Object.entries(data.tutorials)
|
||||
.map(([filepath, tutorial]) => {
|
||||
const { frontmatter } = tutorial as {
|
||||
frontmatter: Tutorial;
|
||||
};
|
||||
const slug = filepath.replace('./', '').replace('/+page.markdoc', '');
|
||||
const tutorialName = data.pathname.split('/').slice(0, -1).join('/');
|
||||
return Object.entries(data.tutorials)
|
||||
.map(([filepath, tutorial]) => {
|
||||
const { frontmatter } = tutorial as {
|
||||
frontmatter: Tutorial;
|
||||
};
|
||||
const slug = filepath.replace('./', '').replace('/+page.markdoc', '');
|
||||
const tutorialName = data.pathname.split('/').slice(0, -1).join('/');
|
||||
|
||||
if (!isFound && 'difficulty' in frontmatter && 'readtime' in frontmatter) {
|
||||
isFound = true;
|
||||
readtime = frontmatter.readtime;
|
||||
difficulty = frontmatter.difficulty;
|
||||
}
|
||||
if (!isFound && 'difficulty' in frontmatter && 'readtime' in frontmatter) {
|
||||
isFound = true;
|
||||
readtime = frontmatter.readtime;
|
||||
difficulty = frontmatter.difficulty;
|
||||
}
|
||||
|
||||
return {
|
||||
readtime,
|
||||
difficulty,
|
||||
...frontmatter,
|
||||
href: `${base}${tutorialName}/${slug}`
|
||||
};
|
||||
})
|
||||
.sort((a, b) => {
|
||||
return a.step - b.step;
|
||||
});
|
||||
return {
|
||||
readtime,
|
||||
difficulty,
|
||||
...frontmatter,
|
||||
href: `${base}${tutorialName}/${slug}`
|
||||
};
|
||||
})
|
||||
.sort((a, b) => {
|
||||
return a.step - b.step;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -284,7 +284,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pt-[7.5rem] relative overflow-hidden">
|
||||
<div class="relative overflow-hidden pt-[7.5rem]">
|
||||
<div class="container">
|
||||
<FooterNav />
|
||||
<MainFooter />
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
{/each}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="pt-[7.5rem] relative overflow-hidden">
|
||||
<div class="relative overflow-hidden pt-[7.5rem]">
|
||||
<div class="container">
|
||||
<FooterNav />
|
||||
<MainFooter />
|
||||
|
||||
@@ -113,7 +113,7 @@
|
||||
</div>
|
||||
<div class="l-grid-sidebar">
|
||||
<dl
|
||||
class="flex flex-col sidebar-desc gap-5"
|
||||
class="sidebar-desc flex flex-col gap-5"
|
||||
style:top={$isHeaderHidden ? '4rem' : '9rem'}
|
||||
>
|
||||
<div class="flex justify-between gap-2">
|
||||
@@ -157,7 +157,7 @@
|
||||
class="web-hero web-u-max-width-580 flex items-center justify-center gap-y-4"
|
||||
>
|
||||
<h2
|
||||
class="text-display font-aeonik-pro text-center text-primary max-w-[600px]"
|
||||
class="text-display font-aeonik-pro text-primary max-w-[600px] text-center"
|
||||
>
|
||||
Become a Technology Partner
|
||||
</h2>
|
||||
|
||||
@@ -150,7 +150,7 @@
|
||||
{/if}
|
||||
|
||||
<div class="share-post-section mt-4 flex items-center gap-4">
|
||||
<span class="text-micro uppercase pr-2" style:color="#adadb0">
|
||||
<span class="text-micro pr-2 uppercase" style:color="#adadb0">
|
||||
SHARE
|
||||
</span>
|
||||
|
||||
@@ -206,7 +206,7 @@
|
||||
|
||||
<div class="web-article-content mt-8">
|
||||
{#if lastUpdated}
|
||||
<span class="text-body font-medium last-updated-text">
|
||||
<span class="text-body last-updated-text font-medium">
|
||||
Updated:
|
||||
<time dateTime={lastUpdated}>
|
||||
{formatDate(lastUpdated)}
|
||||
@@ -260,7 +260,7 @@
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pt-[7.5rem] relative overflow-hidden">
|
||||
<div class="relative overflow-hidden pt-[7.5rem]">
|
||||
<div class="container">
|
||||
<Newsletter />
|
||||
<FooterNav />
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<a {href} class="web-card is-normal" style:margin-block-end="0">
|
||||
<img src={dark} alt="" class="web-u-only-dark" width="32" height="32" />
|
||||
<img src={light} alt="" class="web-u-only-light" width="32" height="32" />
|
||||
<h4 class="text-sub-body font-medium text-primary mt-2">
|
||||
<h4 class="text-sub-body text-primary mt-2 font-medium">
|
||||
{title}
|
||||
</h4>
|
||||
<p class="text-sub-body mt-1">
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
{#if icon}
|
||||
<span class="{icon} web-u-font-size-24" aria-hidden="true" />
|
||||
{/if}
|
||||
<h4 class="text-sub-body font-medium text-primary">
|
||||
<h4 class="text-sub-body text-primary font-medium">
|
||||
{title}
|
||||
</h4>
|
||||
</header>
|
||||
|
||||
@@ -4,6 +4,6 @@
|
||||
const el = title ? 'h3' : 'span';
|
||||
</script>
|
||||
|
||||
<svelte:element this={el} class="text-sub-body font-medium text-primary">
|
||||
<svelte:element this={el} class="text-sub-body text-primary font-medium">
|
||||
{title}
|
||||
</svelte:element>
|
||||
|
||||
@@ -4,6 +4,6 @@
|
||||
|
||||
<div class="web-inline-info">
|
||||
<span class="icon-info" aria-hidden="true" />
|
||||
<h5 class="text-sub-body font-medium text-primary">{title}</h5>
|
||||
<h5 class="text-sub-body text-primary font-medium">{title}</h5>
|
||||
<slot />
|
||||
</div>
|
||||
|
||||
@@ -26,12 +26,15 @@
|
||||
</script>
|
||||
|
||||
<div class="web-card is-normal mt-4" {...$root} use:root>
|
||||
<div class="tabs flex gap-4 overflow-scroll" style="scrollbar-width: none; -ms-overflow-style: none;">
|
||||
<div
|
||||
class="tabs flex gap-4 overflow-scroll"
|
||||
style="scrollbar-width: none; -ms-overflow-style: none;"
|
||||
>
|
||||
<ul class="tabs-list flex items-center gap-4" {...$list} use:list>
|
||||
{#each $ctx.triggers.entries() as [id, title]}
|
||||
<li class="tabs-item hover:bg-white/[0.04] rounded-t-[0.625rem]">
|
||||
<li class="tabs-item rounded-t-[0.625rem] hover:bg-white/[0.04]">
|
||||
<button
|
||||
class="tabs-button px-1 py-[0.625rem] font-light outline-none bg-clip-padding cursor-pointer"
|
||||
class="tabs-button cursor-pointer bg-clip-padding py-[0.625rem] px-1 font-light outline-none"
|
||||
class:is-selected={$value === id}
|
||||
{...$trigger(id)}
|
||||
use:trigger>{title}</button
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pt-[7.5rem] relative">
|
||||
<div class="relative pt-[7.5rem]">
|
||||
<div class="container">
|
||||
<FooterNav />
|
||||
<MainFooter />
|
||||
|
||||
@@ -126,11 +126,9 @@
|
||||
class="web-hero-banner-button mb-4"
|
||||
>
|
||||
<span class="web-icon-star shrink-0" aria-hidden="true" />
|
||||
<span class="text-caption font-medium shrink-0">New</span>
|
||||
<span class="text-caption shrink-0 font-medium">New</span>
|
||||
<div class="web-hero-banner-button-sep" />
|
||||
<span class="text-caption web-u-trim-1"
|
||||
>Introducing Console Roles</span
|
||||
>
|
||||
<span class="text-caption web-u-trim-1">Introducing Console Roles</span>
|
||||
<span class="web-icon-arrow-right shrink-0" aria-hidden="true" />
|
||||
</a>
|
||||
<Hero>
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
aria-hidden="true"
|
||||
/>
|
||||
</div>
|
||||
<p class="text-sub-body font-medium web-u-text-color-neutral-700">
|
||||
<p class="text-sub-body web-u-text-color-neutral-700 font-medium">
|
||||
<slot />
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -195,7 +195,9 @@
|
||||
</div>
|
||||
<section>
|
||||
<div class="web-flex flex-col gap-2">
|
||||
<h3 class="text-label text-primary mt-3 mb-4">Co-branding logotypes</h3>
|
||||
<h3 class="text-label text-primary mt-3 mb-4">
|
||||
Co-branding logotypes
|
||||
</h3>
|
||||
<p>
|
||||
Spacing is determined by the Appwrite mark. Unless otherwise
|
||||
noted by partner brands, each logo is optically equal as a
|
||||
@@ -302,7 +304,9 @@
|
||||
</div>
|
||||
<section id="">
|
||||
<div class="web-flex flex-col gap-2">
|
||||
<h3 class="text-label text-primary mt-3 mb-4">Co-branding lockups</h3>
|
||||
<h3 class="text-label text-primary mt-3 mb-4">
|
||||
Co-branding lockups
|
||||
</h3>
|
||||
<p>
|
||||
Spacing is determined by the Appwrite mark. Unless otherwise
|
||||
noted by partner brands, each logo is optically equal as a
|
||||
@@ -331,8 +335,8 @@
|
||||
</h2>
|
||||
<div class="flex flex-wrap gap-8">
|
||||
<div
|
||||
class="media-wrapper | flex aspect-square web-u-flex-basis-200 web-flex web-u-border-radius-8 web-u-text-color-neutral-900 web-u-bg-color-neutral-50
|
||||
web-u-min-block-size-160 flex-1 flex-col justify-center
|
||||
class="media-wrapper | web-u-flex-basis-200 web-flex web-u-border-radius-8 web-u-text-color-neutral-900 web-u-bg-color-neutral-50 web-u-min-block-size-160 flex
|
||||
aspect-square flex-1 flex-col justify-center
|
||||
gap-2 px-6"
|
||||
>
|
||||
<h3 class="text-label">Light Grey</h3>
|
||||
@@ -342,8 +346,8 @@
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="media-wrapper | aspect-square flex web-u-sep web-u-flex-basis-200 web-flex web-u-border-radius-8 web-u-min-block-size-160
|
||||
web-u-text-color-neutral-50 web-u-bg-color-neutral-900 flex-1 flex-col justify-center
|
||||
class="media-wrapper | web-u-sep web-u-flex-basis-200 web-flex web-u-border-radius-8 web-u-min-block-size-160 web-u-text-color-neutral-50 web-u-bg-color-neutral-900
|
||||
flex aspect-square flex-1 flex-col justify-center
|
||||
gap-2 px-6"
|
||||
>
|
||||
<h3 class="text-label">Dark Grey</h3>
|
||||
@@ -353,8 +357,8 @@
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="media-wrapper | flex aspect-square web-u-flex-basis-200 web-flex web-u-border-radius-8 web-u-text-color-neutral-50 web-u-bg-color-primary-500
|
||||
web-u-min-block-size-160 flex-1 flex-col justify-center
|
||||
class="media-wrapper | web-u-flex-basis-200 web-flex web-u-border-radius-8 web-u-text-color-neutral-50 web-u-bg-color-primary-500 web-u-min-block-size-160 flex
|
||||
aspect-square flex-1 flex-col justify-center
|
||||
gap-2 px-6"
|
||||
>
|
||||
<h3 class="text-label">Appwrite Pink</h3>
|
||||
@@ -616,13 +620,12 @@
|
||||
right: 1rem;
|
||||
bottom: 1rem;
|
||||
|
||||
&.visuals {
|
||||
justify-content: left;
|
||||
top: auto;
|
||||
position: relative;
|
||||
margin-top: 2rem;
|
||||
}
|
||||
&.visuals {
|
||||
justify-content: left;
|
||||
top: auto;
|
||||
position: relative;
|
||||
margin-top: 2rem;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
{data.title}
|
||||
</h1>
|
||||
<div class="share-post-section mt-4 flex items-center gap-4">
|
||||
<span class="text-micro uppercase pr-2" style:color="#adadb0">
|
||||
<span class="text-micro pr-2 uppercase" style:color="#adadb0">
|
||||
SHARE
|
||||
</span>
|
||||
|
||||
|
||||
@@ -178,7 +178,7 @@
|
||||
<span class="text">Join our Discord</span>
|
||||
</a>
|
||||
<a
|
||||
href="{GITHUB_REPO_LINK}"
|
||||
href={GITHUB_REPO_LINK}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
class="web-button is-secondary is-full-width-mobile"
|
||||
@@ -274,7 +274,7 @@
|
||||
>
|
||||
<div>
|
||||
<h3 class="text-label text-primary">Check our Open Issues</h3>
|
||||
<p class="text-body font-medium mt-1">
|
||||
<p class="text-body mt-1 font-medium">
|
||||
Anyone can join and help Appwrite become better.
|
||||
</p>
|
||||
<a
|
||||
@@ -295,7 +295,9 @@
|
||||
class="web-table-line-cell text-primary whitespace-nowrap text-start"
|
||||
>Issue #</th
|
||||
>
|
||||
<th class="web-table-line-cell text-primary text-start">Title</th>
|
||||
<th class="web-table-line-cell text-primary text-start"
|
||||
>Title</th
|
||||
>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="web-table-line-body">
|
||||
@@ -347,7 +349,7 @@
|
||||
<div
|
||||
class="web-card is-normal has-border-gradient web-u-gap-6 flex flex-col"
|
||||
>
|
||||
<div class="text-sub-body font-medium text-primary">
|
||||
<div class="text-sub-body text-primary font-medium">
|
||||
Create content
|
||||
</div>
|
||||
<div class="text-sub-body">
|
||||
@@ -359,7 +361,7 @@
|
||||
<div
|
||||
class="web-card is-normal has-border-gradient web-u-gap-6 flex flex-col"
|
||||
>
|
||||
<div class="text-sub-body font-medium text-primary">
|
||||
<div class="text-sub-body text-primary font-medium">
|
||||
Present at meetups
|
||||
</div>
|
||||
<div class="text-sub-body">
|
||||
@@ -371,7 +373,7 @@
|
||||
<div
|
||||
class="web-card is-normal has-border-gradient web-u-gap-6 flex flex-col"
|
||||
>
|
||||
<div class="text-sub-body font-medium text-primary">
|
||||
<div class="text-sub-body text-primary font-medium">
|
||||
Report bugs
|
||||
</div>
|
||||
<div class="text-sub-body">
|
||||
@@ -383,7 +385,7 @@
|
||||
<div
|
||||
class="web-card is-normal has-border-gradient web-u-gap-6 flex flex-col"
|
||||
>
|
||||
<div class="text-sub-body font-medium text-primary">
|
||||
<div class="text-sub-body text-primary font-medium">
|
||||
Submit new ideas
|
||||
</div>
|
||||
<div class="text-sub-body">
|
||||
@@ -395,7 +397,7 @@
|
||||
<div
|
||||
class="web-card is-normal has-border-gradient web-u-gap-6 flex flex-col"
|
||||
>
|
||||
<div class="text-sub-body font-medium text-primary">
|
||||
<div class="text-sub-body text-primary font-medium">
|
||||
Improve documentation
|
||||
</div>
|
||||
<div class="text-sub-body">
|
||||
@@ -407,7 +409,7 @@
|
||||
<div
|
||||
class="web-card is-normal has-border-gradient web-u-gap-6 flex flex-col"
|
||||
>
|
||||
<div class="text-sub-body font-medium text-primary">
|
||||
<div class="text-sub-body text-primary font-medium">
|
||||
Helping others
|
||||
</div>
|
||||
<div class="text-sub-body">
|
||||
@@ -527,7 +529,7 @@
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
href="{GITHUB_REPO_LINK}"
|
||||
href={GITHUB_REPO_LINK}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
class="web-card is-white web-u-min-block-size-320 flex flex-col"
|
||||
@@ -669,7 +671,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pt-[7.5rem] relative">
|
||||
<div class="relative pt-[7.5rem]">
|
||||
<div class="container">
|
||||
<PreFooter />
|
||||
<FooterNav />
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
<span class="">{location}</span>
|
||||
</li>
|
||||
</ul>
|
||||
<svelte:element this={headingTag} class="text-sub-body font-medium text-primary mt-1">
|
||||
<svelte:element this={headingTag} class="text-sub-body text-primary mt-1 font-medium">
|
||||
{title}
|
||||
</svelte:element>
|
||||
<p class="text-sub-body font-medium">
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
<div class="p-3">
|
||||
<h3 class="text-body font-medium text-primary">{title}</h3>
|
||||
<h3 class="text-body text-primary font-medium">{title}</h3>
|
||||
<p class="line-clamp-2">
|
||||
{description}
|
||||
</p>
|
||||
|
||||
@@ -376,7 +376,7 @@
|
||||
</h5>
|
||||
<ul class="web-grid-2c-4c mt-12">
|
||||
<li class="flex flex-col">
|
||||
<h6 class="text-body font-medium text-primary">Aaron Applebaum</h6>
|
||||
<h6 class="text-body text-primary font-medium">Aaron Applebaum</h6>
|
||||
<p class="text-body font-medium">Partner</p>
|
||||
<p class="text-body font-medium">MizMaa</p>
|
||||
<ul class="mt-auto flex gap-2 pt-4">
|
||||
@@ -405,7 +405,7 @@
|
||||
</ul>
|
||||
</li>
|
||||
<li class="flex flex-col">
|
||||
<h6 class="text-body font-medium text-primary">Ariel Maislos</h6>
|
||||
<h6 class="text-body text-primary font-medium">Ariel Maislos</h6>
|
||||
<p class="text-body font-medium">Angel Investor</p>
|
||||
<p class="text-body font-medium">Former Apple IL CEO</p>
|
||||
<ul class="mt-auto flex gap-2 pt-4">
|
||||
@@ -434,12 +434,12 @@
|
||||
</ul>
|
||||
</li>
|
||||
<li class="flex flex-col">
|
||||
<h6 class="text-body font-medium text-primary">Gilad Engel</h6>
|
||||
<h6 class="text-body text-primary font-medium">Gilad Engel</h6>
|
||||
<p class="text-body font-medium">Angel Investor</p>
|
||||
<ul class="mt-auto flex gap-2 pt-4" />
|
||||
</li>
|
||||
<li class="flex flex-col">
|
||||
<h6 class="text-body font-medium text-primary">Krishna Visvanathan</h6>
|
||||
<h6 class="text-body text-primary font-medium">Krishna Visvanathan</h6>
|
||||
<p class="text-body font-medium">Co-founder & Partner</p>
|
||||
<p class="text-body font-medium">Crane Venture Partners</p>
|
||||
<ul class="mt-auto flex gap-2 pt-4">
|
||||
@@ -457,7 +457,7 @@
|
||||
</ul>
|
||||
</li>
|
||||
<li class="flex flex-col">
|
||||
<h6 class="text-body font-medium text-primary">Ameet Patel</h6>
|
||||
<h6 class="text-body text-primary font-medium">Ameet Patel</h6>
|
||||
<p class="text-body font-medium">Angel Investor</p>
|
||||
<ul class="mt-auto flex gap-2 pt-4">
|
||||
<li>
|
||||
@@ -474,7 +474,7 @@
|
||||
</ul>
|
||||
</li>
|
||||
<li class="flex flex-col">
|
||||
<h6 class="text-body font-medium text-primary">Benno Jering</h6>
|
||||
<h6 class="text-body text-primary font-medium">Benno Jering</h6>
|
||||
<p class="text-body font-medium">Partner</p>
|
||||
<p class="text-body font-medium">Redline Capital</p>
|
||||
<ul class="mt-auto flex gap-2 pt-4">
|
||||
@@ -492,7 +492,7 @@
|
||||
</ul>
|
||||
</li>
|
||||
<li class="flex flex-col">
|
||||
<h6 class="text-body font-medium text-primary">James Lindenbaum</h6>
|
||||
<h6 class="text-body text-primary font-medium">James Lindenbaum</h6>
|
||||
<p class="text-body font-medium">Co-founder</p>
|
||||
<p class="text-body font-medium">Heroku</p>
|
||||
<ul class="mt-auto flex gap-2 pt-4">
|
||||
@@ -510,7 +510,7 @@
|
||||
</ul>
|
||||
</li>
|
||||
<li class="flex flex-col">
|
||||
<h6 class="text-body font-medium text-primary">Uri Boness</h6>
|
||||
<h6 class="text-body text-primary font-medium">Uri Boness</h6>
|
||||
<p class="text-body font-medium">Co-Founder</p>
|
||||
<p class="text-body font-medium">Elastic</p>
|
||||
<ul class="mt-auto flex gap-2 pt-4">
|
||||
|
||||
@@ -133,7 +133,7 @@
|
||||
>
|
||||
<div class="flex justify-end">
|
||||
<ul
|
||||
class="web-form-list grid md:grid-cols-2 web-u-max-width-580 web-u-max-inline-size-none-mobile w-full gap-4"
|
||||
class="web-form-list web-u-max-width-580 web-u-max-inline-size-none-mobile grid w-full gap-4 md:grid-cols-2"
|
||||
>
|
||||
<li class="web-form-item">
|
||||
<input
|
||||
|
||||
@@ -125,11 +125,11 @@
|
||||
<form
|
||||
method="post"
|
||||
on:submit|preventDefault={handleSubmit}
|
||||
class="flex flex-col gap-4 mt-4 lg:mt-0"
|
||||
class="mt-4 flex flex-col gap-4 lg:mt-0"
|
||||
>
|
||||
<div class="flex justify-end">
|
||||
<ul
|
||||
class="web-form-list grid md:grid-cols-2 web-u-max-width-580 web-u-max-inline-size-none-mobile w-full gap-4"
|
||||
class="web-form-list web-u-max-width-580 web-u-max-inline-size-none-mobile grid w-full gap-4 md:grid-cols-2"
|
||||
>
|
||||
<li class="web-form-item">
|
||||
<label class="u-block" for="name"
|
||||
@@ -196,9 +196,7 @@
|
||||
/>
|
||||
</div>
|
||||
</li>
|
||||
<li
|
||||
class="web-form-item md:col-span-2 flex-col gap-1"
|
||||
>
|
||||
<li class="web-form-item flex-col gap-1 md:col-span-2">
|
||||
<label class="u-block" for="companyWebsite"
|
||||
>Company website</label
|
||||
>
|
||||
@@ -212,7 +210,7 @@
|
||||
/>
|
||||
</li>
|
||||
<li
|
||||
class="web-form-item md:col-span-2 sm:col-span-1 flex-col gap-1"
|
||||
class="web-form-item flex-col gap-1 sm:col-span-1 md:col-span-2"
|
||||
>
|
||||
<label class="u-block" for="use-case"
|
||||
>Please share more information about your use
|
||||
@@ -229,10 +227,12 @@
|
||||
</ul>
|
||||
</div>
|
||||
<div
|
||||
class="flex flex-col gap-4 justify-between items-center sm:flex-col md:flex-col lg:flex-row"
|
||||
class="flex flex-col items-center justify-between gap-4 sm:flex-col md:flex-col lg:flex-row"
|
||||
>
|
||||
<p class="web-caption-400 self-start lg:self-center web-u-max-width-380">
|
||||
{#if error}
|
||||
<p
|
||||
class="web-caption-400 web-u-max-width-380 self-start lg:self-center"
|
||||
>
|
||||
{#if error}
|
||||
{error}
|
||||
{/if}
|
||||
</p>
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
|
||||
<main class="web-main-section relative overflow-x-hidden" id="main">
|
||||
<div class="absolute translate-x-96">
|
||||
<img src="/images/bgs/docs-blur-1.svg" alt=""/>
|
||||
<img src="/images/bgs/docs-blur-1.svg" alt="" />
|
||||
</div>
|
||||
|
||||
<div class="web-u-opacity-40-mobile absolute top-4 left-0">
|
||||
|
||||
@@ -21,10 +21,10 @@
|
||||
</div>
|
||||
<article class="web-grid-articles-item-content">
|
||||
<header class="web-articles-item-header">
|
||||
<h3 class="text-sub-body font-medium text-primary">{title}</h3>
|
||||
<h3 class="text-sub-body text-primary font-medium">{title}</h3>
|
||||
</header>
|
||||
<p
|
||||
class="web-articles-item-paragraph text-sub-body font-medium mt-1 line-clamp-2"
|
||||
class="web-articles-item-paragraph text-sub-body mt-1 line-clamp-2 font-medium"
|
||||
style="word-break: keep-all;"
|
||||
>
|
||||
{description}
|
||||
|
||||
@@ -197,7 +197,7 @@
|
||||
<main class="web-main-section" id="main">
|
||||
<article class="web-article">
|
||||
<header class="web-article-header">
|
||||
<div class="web-article-header-start flex flex-col web-u-cross-start">
|
||||
<div class="web-article-header-start web-u-cross-start flex flex-col">
|
||||
<div class="relative flex items-center">
|
||||
<h1 class="text-title font-aeonik-pro">Quick start</h1>
|
||||
</div>
|
||||
@@ -220,7 +220,7 @@
|
||||
class="{quickStart.icon} web-u-font-size-24"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
<h4 class="text-sub-body font-medium text-primary">
|
||||
<h4 class="text-sub-body text-primary font-medium">
|
||||
{quickStart.title}
|
||||
</h4>
|
||||
</header>
|
||||
|
||||
@@ -65,13 +65,13 @@
|
||||
<thead class="web-table-header">
|
||||
<tr class="web-table-row">
|
||||
<th class="web-table-head-col">
|
||||
<div class="text-micro uppercase text-primary">Time frame</div>
|
||||
<div class="text-micro text-primary uppercase">Time frame</div>
|
||||
</th>
|
||||
<th class="web-table-head-col">
|
||||
<div class="text-micro uppercase text-primary">Attempts</div>
|
||||
<div class="text-micro text-primary uppercase">Attempts</div>
|
||||
</th>
|
||||
<th class="web-table-head-col">
|
||||
<div class="text-micro uppercase text-primary">Key</div>
|
||||
<div class="text-micro text-primary uppercase">Key</div>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
<li>
|
||||
<article>
|
||||
<header class="flex items-baseline gap-2">
|
||||
<span class="text-micro uppercase text-primary">
|
||||
<span class="text-micro text-primary uppercase">
|
||||
{response.code}
|
||||
</span>
|
||||
<span class="text-caption">application/json</span>
|
||||
|
||||
@@ -110,9 +110,9 @@
|
||||
<div class="web-inline-code">{platformType}</div>
|
||||
</div>
|
||||
<div class="web-article-header-end">
|
||||
<div class="gap-6 flex flex-col md:flex-row text-primary">
|
||||
<div class="text-primary flex flex-col gap-6 md:flex-row">
|
||||
<div class="flex items-center gap-2">
|
||||
<label class="text-xs web-is-not-mobile" for="platform">Platform</label>
|
||||
<label class="web-is-not-mobile text-xs" for="platform">Platform</label>
|
||||
<Select
|
||||
--min-width="10rem"
|
||||
id="platform"
|
||||
@@ -138,7 +138,7 @@
|
||||
/>
|
||||
</div>
|
||||
<div class="flex items-center gap-2">
|
||||
<label class="text-xs web-is-not-mobile" for="version">Version</label>
|
||||
<label class="web-is-not-mobile text-xs" for="version">Version</label>
|
||||
|
||||
<Select
|
||||
nativeMobile
|
||||
@@ -162,7 +162,7 @@
|
||||
<!-- eslint-disable-next-line svelte/no-at-html-tags -->
|
||||
{@html parse(data.service?.description)}
|
||||
</div>
|
||||
<div class="web-article-content-grid-6-4-column-2 flex flex-col gap-8 j-end">
|
||||
<div class="web-article-content-grid-6-4-column-2 j-end flex flex-col gap-8">
|
||||
<Fence
|
||||
language="text"
|
||||
badge="Base URL"
|
||||
@@ -176,7 +176,7 @@
|
||||
<div class="web-article-content-grid-6-4-column-2 flex flex-col gap-8">
|
||||
<div class="web-inline-info">
|
||||
<span class="icon-info" aria-hidden="true" />
|
||||
<h5 class="text-sub-body font-medium text-primary">
|
||||
<h5 class="text-sub-body text-primary font-medium">
|
||||
No endpoint found for this version and platform
|
||||
</h5>
|
||||
Please switch to a newer version or different platform.
|
||||
@@ -211,7 +211,7 @@
|
||||
</Accordion>
|
||||
</div>
|
||||
<div class="web-article-content-grid-6-4-column-2 flex flex-col gap-8">
|
||||
<div class="contents dark">
|
||||
<div class="dark contents">
|
||||
<div
|
||||
class="sticky"
|
||||
style="--inset-block-start:var(--p-grid-huge-navs-secondary-sticky-position);"
|
||||
@@ -249,7 +249,7 @@
|
||||
</button>
|
||||
<div class="web-references-menu-content">
|
||||
<div
|
||||
class="web-references-menu-header flex justify-between items-center gap-4 mt-6"
|
||||
class="web-references-menu-header mt-6 flex items-center justify-between gap-4"
|
||||
>
|
||||
<h5 class="web-references-menu-title text-micro uppercase">On This Page</h5>
|
||||
<button class="web-icon-button" id="refClose" on:click={toggleReferences}>
|
||||
@@ -267,7 +267,7 @@
|
||||
</li>
|
||||
{/each}
|
||||
</ul>
|
||||
<div class="border-t border-greyscale-900/[0.04] web-u-padding-block-20">
|
||||
<div class="border-greyscale-900/[0.04] web-u-padding-block-20 border-t">
|
||||
<button class="web-link inline-flex items-center gap-2" use:scrollToTop>
|
||||
<span class="web-icon-arrow-up" aria-hidden="true" />
|
||||
<span class="text-caption">Back to top</span>
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
<main class="web-main-section" id="main">
|
||||
<article class="web-article">
|
||||
<header class="web-article-header">
|
||||
<div class="web-article-header-start flex flex-col web-u-cross-start">
|
||||
<div class="web-article-header-start web-u-cross-start flex flex-col">
|
||||
<div class="relative flex items-center">
|
||||
<h1 class="text-title font-aeonik-pro">Tutorials</h1>
|
||||
</div>
|
||||
@@ -70,7 +70,7 @@
|
||||
{#each data.tutorials as category}
|
||||
<section class="flex flex-col gap-6">
|
||||
<h2 class="text-micro uppercase">{category.title}</h2>
|
||||
<ul class="web-grid-row-4 web-grid-row-4-mobile-1 ">
|
||||
<ul class="web-grid-row-4 web-grid-row-4-mobile-1">
|
||||
{#each category.tutorials as tutorial}
|
||||
<li>
|
||||
{#if tutorial.draft === true}
|
||||
@@ -85,7 +85,7 @@
|
||||
class="{getIcon(tutorial)} web-u-font-size-24"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
<h3 class="text-sub-body font-medium text-primary">
|
||||
<h3 class="text-sub-body text-primary font-medium">
|
||||
{tutorial.framework}
|
||||
</h3>
|
||||
<span class="badge text-caption">Coming Soon</span>
|
||||
@@ -98,7 +98,7 @@
|
||||
class="{getIcon(tutorial)} web-u-font-size-24"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
<h3 class="text-sub-body font-medium text-primary">
|
||||
<h3 class="text-sub-body text-primary font-medium">
|
||||
{tutorial.framework}
|
||||
</h3>
|
||||
</header>
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
{#if hasReleased}
|
||||
<div class="day">
|
||||
<div class="circle" aria-hidden />
|
||||
<span class="text-micro uppercase text-primary"
|
||||
<span class="text-micro text-primary uppercase"
|
||||
>Day {number}<span class="web-u-color-text-accent">_</span></span
|
||||
>
|
||||
<h2 class="text-label text-primary">{day.title}</h2>
|
||||
@@ -31,7 +31,7 @@
|
||||
</div>
|
||||
{:else}
|
||||
<div class="release">
|
||||
<span class="text-micro uppercase text-primary"
|
||||
<span class="text-micro text-primary uppercase"
|
||||
>Day {number}<span class="web-u-color-text-accent">_</span></span
|
||||
>
|
||||
<div class="bottom">
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
$: hasReleased = now >= release;
|
||||
</script>
|
||||
|
||||
<h2 class="text-micro uppercase text-primary">
|
||||
<h2 class="text-micro text-primary uppercase">
|
||||
<div class="web-dot" />
|
||||
{#if day !== undefined}
|
||||
{day}<span class="web-u-color-text-accent">_</span>
|
||||
|
||||
@@ -197,7 +197,7 @@
|
||||
{:else if i === 4}
|
||||
<Day5 {date} release={day.release} />
|
||||
{:else}
|
||||
<h2 class="text-micro uppercase text-primary">
|
||||
<h2 class="text-micro text-primary uppercase">
|
||||
<div class="web-dot" />
|
||||
{date}
|
||||
<span class="web-u-color-text-accent">_</span>
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
const variants: TicketVariant[] = ['default', 'pink', 'rainbow'] as const;
|
||||
</script>
|
||||
|
||||
<div class="flex flex-col u-gap-4 u-margin-block-start-32">
|
||||
<div class="u-gap-4 u-margin-block-start-32 flex flex-col">
|
||||
<label for="name">Your name</label>
|
||||
<input
|
||||
class="web-input-text"
|
||||
@@ -105,7 +105,7 @@
|
||||
</button>
|
||||
{/if}
|
||||
{:else}
|
||||
<h2 class="text-sub-body font-medium text-primary">Integrate your GitHub account</h2>
|
||||
<h2 class="text-sub-body text-primary font-medium">Integrate your GitHub account</h2>
|
||||
<p class="text-sub-body font-medium" style:margin-block-start="0.25rem">
|
||||
Sign in with your GitHub account and see the magic happen in your ticket.
|
||||
</p>
|
||||
@@ -130,7 +130,7 @@
|
||||
Your ticket has been upgraded.
|
||||
</p>
|
||||
{:else}
|
||||
<h2 class="text-sub-body font-medium text-primary">Integrate your Appwrite account</h2>
|
||||
<h2 class="text-sub-body text-primary font-medium">Integrate your Appwrite account</h2>
|
||||
<p class="text-sub-body font-medium" style:margin-block-start="0.25rem">
|
||||
Sign in with your Appwrite account and see the magic happen in your ticket.
|
||||
</p>
|
||||
@@ -144,7 +144,7 @@
|
||||
{/if}
|
||||
<hr />
|
||||
|
||||
<h2 class="text-sub-body font-medium text-primary">Add your tribe</h2>
|
||||
<h2 class="text-sub-body text-primary font-medium">Add your tribe</h2>
|
||||
<p class="text-sub-body font-medium" style:margin-block-start="0.25rem">
|
||||
Customize your Init ticket with your technology.
|
||||
</p>
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
{:else}
|
||||
<div style:z-index="10" style="margin-top: auto; margin-bottom: 0;">
|
||||
<span
|
||||
class="text-primary text-micro uppercase web-u-uppercase"
|
||||
class="text-primary text-micro web-u-uppercase uppercase"
|
||||
style:margin-bottom="-8px"
|
||||
style:display="block"
|
||||
>
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
</li>
|
||||
{/if}
|
||||
</ul>
|
||||
<svelte:element this={headingTag} class="text-sub-body font-medium text-primary mt-1">
|
||||
<svelte:element this={headingTag} class="text-sub-body text-primary mt-1 font-medium">
|
||||
{title}
|
||||
</svelte:element>
|
||||
<p class="text-sub-body font-medium">
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
$: hasReleased = now >= release;
|
||||
</script>
|
||||
|
||||
<h2 class="text-micro uppercase text-primary">
|
||||
<h2 class="text-micro text-primary uppercase">
|
||||
<div class="web-dot" />
|
||||
{#if day !== undefined}
|
||||
{day}<span class="web-u-color-text-accent">_</span>
|
||||
|
||||
@@ -107,7 +107,7 @@
|
||||
{:else if i === 4}
|
||||
<Day4 release={day.release} />
|
||||
{:else}
|
||||
<h2 class="text-micro uppercase text-primary">
|
||||
<h2 class="text-micro text-primary uppercase">
|
||||
<div class="web-dot" />
|
||||
{date}
|
||||
<span class="web-u-color-text-accent">_</span>
|
||||
|
||||
@@ -23,9 +23,9 @@ export type IntegrationCategory = {
|
||||
slug: string;
|
||||
heading: string;
|
||||
description: string;
|
||||
}
|
||||
};
|
||||
|
||||
const categoryDescriptions : IntegrationCategory[] = [
|
||||
const categoryDescriptions: IntegrationCategory[] = [
|
||||
{
|
||||
slug: 'ai',
|
||||
heading: 'AI',
|
||||
@@ -71,7 +71,7 @@ const categoryDescriptions : IntegrationCategory[] = [
|
||||
heading: 'Deployments',
|
||||
description: 'Seamlessly deploy your code'
|
||||
}
|
||||
]
|
||||
];
|
||||
|
||||
export const load = () => {
|
||||
const integrationsGlob = import.meta.glob('./**/*.markdoc', {
|
||||
@@ -90,7 +90,10 @@ export const load = () => {
|
||||
const integrationName = slug.slice(slug.lastIndexOf('/') + 1);
|
||||
|
||||
frontmatter.platform.map((platform) => platforms.push(platform));
|
||||
categories.push(categoryDescriptions.find((i) => i.slug === frontmatter.category) ?? {} as IntegrationCategory);
|
||||
categories.push(
|
||||
categoryDescriptions.find((i) => i.slug === frontmatter.category) ??
|
||||
({} as IntegrationCategory)
|
||||
);
|
||||
|
||||
return {
|
||||
...frontmatter,
|
||||
@@ -103,7 +106,7 @@ export const load = () => {
|
||||
const integrationsWithDescriptions = Object.entries(groupedIntegrations).map(
|
||||
([category, integrations]) => {
|
||||
const integrationCategory = categoryDescriptions.find(
|
||||
( key ) => key.slug === category.toLowerCase()
|
||||
(key) => key.slug === category.toLowerCase()
|
||||
);
|
||||
return {
|
||||
category,
|
||||
@@ -119,7 +122,7 @@ export const load = () => {
|
||||
const featuredIntegrationsWithCategoryHeadings = Object.entries(featuredIntegrations).map(
|
||||
([_, integration]) => {
|
||||
const integrationCategory = categoryDescriptions.find(
|
||||
( key ) => key.slug === integration.category.toLowerCase()
|
||||
(key) => key.slug === integration.category.toLowerCase()
|
||||
);
|
||||
return {
|
||||
heading: integrationCategory?.heading,
|
||||
|
||||
@@ -79,7 +79,7 @@
|
||||
<Main>
|
||||
<div class="web-big-padding-section">
|
||||
<div id="form" class="overflow-hidden p-0 pt-10">
|
||||
<div class="pt-[7.5rem] relative">
|
||||
<div class="relative pt-[7.5rem]">
|
||||
<div class="relative">
|
||||
<div class="container relative">
|
||||
<!-- before submit -->
|
||||
|
||||
@@ -70,14 +70,16 @@
|
||||
>
|
||||
<div class="web-pricing-cards-item">
|
||||
<header class="web-pricing-cards-header">
|
||||
<h2 id="starter" class="text-label font-aeonik-pro">Free</h2>
|
||||
<h2 id="starter" class="text-label font-aeonik-pro">
|
||||
Free
|
||||
</h2>
|
||||
<div
|
||||
class="text-title font-aeonik-pro text-primary mt-2"
|
||||
>
|
||||
$0
|
||||
</div>
|
||||
<div class="mt-1"> </div>
|
||||
<p class="text-body mt-4 font-medium h-[5rem]">
|
||||
<p class="text-body mt-4 h-[5rem] font-medium">
|
||||
For personal hobby projects and students.
|
||||
</p>
|
||||
<a
|
||||
@@ -122,7 +124,9 @@
|
||||
<div class="web-pricing-cards-item">
|
||||
<header class="web-pricing-cards-header">
|
||||
<header class="flex gap-3">
|
||||
<h2 id="pro" class="text-label font-aeonik-pro">Pro</h2>
|
||||
<h2 id="pro" class="text-label font-aeonik-pro">
|
||||
Pro
|
||||
</h2>
|
||||
<div class="web-inline-tag is-pink">Popular</div>
|
||||
</header>
|
||||
<div
|
||||
@@ -131,7 +135,7 @@
|
||||
$15
|
||||
</div>
|
||||
<div class="mt-1">per member/month</div>
|
||||
<p class="text-body mt-4 font-medium h-[5rem]">
|
||||
<p class="text-body mt-4 h-[5rem] font-medium">
|
||||
For pro developers and teams that need to scale
|
||||
their products.
|
||||
</p>
|
||||
@@ -156,7 +160,9 @@
|
||||
<li><span>200K monthly active users</span></li>
|
||||
<li><span>Organization roles</span></li>
|
||||
<li><span>Email support</span></li>
|
||||
<li><span>Daily backups stored for 7 days</span></li>
|
||||
<li>
|
||||
<span>Daily backups stored for 7 days</span>
|
||||
</li>
|
||||
<li><span>Add-ons</span></li>
|
||||
<li>
|
||||
<span
|
||||
@@ -175,14 +181,16 @@
|
||||
>
|
||||
<div class="web-pricing-cards-item">
|
||||
<header class="web-pricing-cards-header">
|
||||
<h2 id="scale" class="text-label font-aeonik-pro">Scale</h2>
|
||||
<h2 id="scale" class="text-label font-aeonik-pro">
|
||||
Scale
|
||||
</h2>
|
||||
<div
|
||||
class="text-title font-aeonik-pro text-primary mt-2"
|
||||
>
|
||||
$599
|
||||
</div>
|
||||
<div class="mt-1">per organization/month</div>
|
||||
<p class="text-body mt-4 font-medium h-[5rem]">
|
||||
<p class="text-body mt-4 h-[5rem] font-medium">
|
||||
For scaling teams and agencies that need dedicated
|
||||
support.
|
||||
</p>
|
||||
@@ -206,7 +214,7 @@
|
||||
<li><span>Custom organization roles</span></li>
|
||||
<li><span>SSO</span></li>
|
||||
<li><span>Activity logs</span></li>
|
||||
<li><span>Custom backup policies</span></li>
|
||||
<li><span>Custom backup policies</span></li>
|
||||
<li><span>Priority support</span></li>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -220,14 +228,16 @@
|
||||
>
|
||||
<div class="web-pricing-cards-item">
|
||||
<header class="web-pricing-cards-header">
|
||||
<h2 id="enterprise" class="text-label font-aeonik-pro">Enterprise</h2>
|
||||
<h2 id="enterprise" class="text-label font-aeonik-pro">
|
||||
Enterprise
|
||||
</h2>
|
||||
<div
|
||||
class="text-title font-aeonik-pro text-primary mt-2"
|
||||
>
|
||||
Custom
|
||||
</div>
|
||||
<div class="mt-1">per organization/month</div>
|
||||
<p class="text-body mt-4 font-medium h-[5rem]">
|
||||
<p class="text-body mt-4 h-[5rem] font-medium">
|
||||
For enterprises that need more power and premium
|
||||
support.
|
||||
</p>
|
||||
@@ -260,53 +270,53 @@
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- <ul class="web-grid-1-1-opt-2 mt-20 gap-8">-->
|
||||
<!-- <li>-->
|
||||
<!-- <article-->
|
||||
<!-- class="web-card is-transparent has-border-gradient min-h-full"-->
|
||||
<!-- style="background:rgba(35, 35, 37, 0.90);"-->
|
||||
<!-- >-->
|
||||
<!-- <header class="flex gap-3">-->
|
||||
<!-- <h3 id="enterprises" class="text-body text-primary font-medium">-->
|
||||
<!-- Enterprises-->
|
||||
<!-- </h3>-->
|
||||
<!-- <div class="web-inline-tag is-pink">Coming Soon</div>-->
|
||||
<!-- </header>-->
|
||||
<!-- <p class="mt-2">-->
|
||||
<!-- Large scale projects seeking greater performance, collaboration-->
|
||||
<!-- and security.-->
|
||||
<!-- </p>-->
|
||||
<!-- <a href="/contact-us" class="web-button is-secondary mt-8">-->
|
||||
<!-- <span>Contact us</span>-->
|
||||
<!-- </a>-->
|
||||
<!-- </article>-->
|
||||
<!-- </li>-->
|
||||
<!-- <li>-->
|
||||
<!-- <article-->
|
||||
<!-- class="web-card is-transparent has-border-gradient min-h-full"-->
|
||||
<!-- style="background:rgba(35, 35, 37, 0.90);"-->
|
||||
<!-- >-->
|
||||
<!-- <header class="flex gap-3">-->
|
||||
<!-- <h3-->
|
||||
<!-- id="open-source-teams"-->
|
||||
<!-- class="text-body text-primary font-medium"-->
|
||||
<!-- >-->
|
||||
<!-- Open-source teams-->
|
||||
<!-- </h3>-->
|
||||
<!-- </header>-->
|
||||
<!-- <p class="mt-2">-->
|
||||
<!-- We support OSS maintainers with a free Pro Plan. Read our-->
|
||||
<!-- announcement blog to find out more.-->
|
||||
<!-- </p>-->
|
||||
<!-- <a-->
|
||||
<!-- href="/docs/advanced/platform/oss"-->
|
||||
<!-- class="web-button is-secondary mt-8"-->
|
||||
<!-- >-->
|
||||
<!-- <span>Learn more</span>-->
|
||||
<!-- </a>-->
|
||||
<!-- </article>-->
|
||||
<!-- </li>-->
|
||||
<!-- </ul>-->
|
||||
<!-- <ul class="web-grid-1-1-opt-2 mt-20 gap-8">-->
|
||||
<!-- <li>-->
|
||||
<!-- <article-->
|
||||
<!-- class="web-card is-transparent has-border-gradient min-h-full"-->
|
||||
<!-- style="background:rgba(35, 35, 37, 0.90);"-->
|
||||
<!-- >-->
|
||||
<!-- <header class="flex gap-3">-->
|
||||
<!-- <h3 id="enterprises" class="text-body text-primary font-medium">-->
|
||||
<!-- Enterprises-->
|
||||
<!-- </h3>-->
|
||||
<!-- <div class="web-inline-tag is-pink">Coming Soon</div>-->
|
||||
<!-- </header>-->
|
||||
<!-- <p class="mt-2">-->
|
||||
<!-- Large scale projects seeking greater performance, collaboration-->
|
||||
<!-- and security.-->
|
||||
<!-- </p>-->
|
||||
<!-- <a href="/contact-us" class="web-button is-secondary mt-8">-->
|
||||
<!-- <span>Contact us</span>-->
|
||||
<!-- </a>-->
|
||||
<!-- </article>-->
|
||||
<!-- </li>-->
|
||||
<!-- <li>-->
|
||||
<!-- <article-->
|
||||
<!-- class="web-card is-transparent has-border-gradient min-h-full"-->
|
||||
<!-- style="background:rgba(35, 35, 37, 0.90);"-->
|
||||
<!-- >-->
|
||||
<!-- <header class="flex gap-3">-->
|
||||
<!-- <h3-->
|
||||
<!-- id="open-source-teams"-->
|
||||
<!-- class="text-body text-primary font-medium"-->
|
||||
<!-- >-->
|
||||
<!-- Open-source teams-->
|
||||
<!-- </h3>-->
|
||||
<!-- </header>-->
|
||||
<!-- <p class="mt-2">-->
|
||||
<!-- We support OSS maintainers with a free Pro Plan. Read our-->
|
||||
<!-- announcement blog to find out more.-->
|
||||
<!-- </p>-->
|
||||
<!-- <a-->
|
||||
<!-- href="/docs/advanced/platform/oss"-->
|
||||
<!-- class="web-button is-secondary mt-8"-->
|
||||
<!-- >-->
|
||||
<!-- <span>Learn more</span>-->
|
||||
<!-- </a>-->
|
||||
<!-- </article>-->
|
||||
<!-- </li>-->
|
||||
<!-- </ul>-->
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -203,14 +203,14 @@
|
||||
scale: 'Unlimited',
|
||||
enterprise: 'Unlimited'
|
||||
},
|
||||
{
|
||||
{
|
||||
title: 'Backups',
|
||||
free: '-',
|
||||
pro: 'Daily,',
|
||||
scale: 'Custom',
|
||||
enterprise: 'Custom'
|
||||
},
|
||||
{
|
||||
{
|
||||
title: 'Backups retention',
|
||||
free: '-',
|
||||
pro: '7 days retention,',
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
<div class="step" data-hideline={hideLine}>
|
||||
<div class="web-dot" />
|
||||
<h2 class="text-micro uppercase text-primary step-title">{title}</h2>
|
||||
<h2 class="text-micro text-primary step-title uppercase">{title}</h2>
|
||||
<div class="step-content mt-8">
|
||||
<slot />
|
||||
</div>
|
||||
|
||||
@@ -235,7 +235,7 @@
|
||||
/>
|
||||
|
||||
<foreignObject x={textPos[0]} y={textPos[1]} width="360" height="64">
|
||||
<span class="text-micro uppercase text-primary" data-active={$selected[i]}>
|
||||
<span class="text-micro text-primary uppercase" data-active={$selected[i]}>
|
||||
{device.value}
|
||||
</span>
|
||||
</foreignObject>
|
||||
@@ -320,7 +320,7 @@
|
||||
return next;
|
||||
}}
|
||||
/>
|
||||
<span class="text-sub-body font-medium text-primary">
|
||||
<span class="text-sub-body text-primary font-medium">
|
||||
{user.name}
|
||||
</span>
|
||||
<span class="text-caption">
|
||||
|
||||
@@ -255,7 +255,7 @@ messaging.create_email(
|
||||
<div>
|
||||
<div class="product">
|
||||
<img src="/images/icons/illustrated/dark/messaging.png" alt="" />
|
||||
<span class="text-micro uppercase text-primary">
|
||||
<span class="text-micro text-primary uppercase">
|
||||
Messaging<span class="web-u-color-text-accent">_</span>
|
||||
</span>
|
||||
<span class="web-hero-banner-button text-micro uppercase">BETA</span>
|
||||
@@ -652,7 +652,7 @@ messaging.create_email(
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
<div class="pt-[7.5rem] relative">
|
||||
<div class="relative pt-[7.5rem]">
|
||||
<div class="container">
|
||||
<PreFooter />
|
||||
<FooterNav />
|
||||
|
||||
@@ -662,7 +662,7 @@
|
||||
</div>
|
||||
|
||||
<div id="form" class="overflow-hidden pt-10">
|
||||
<div class="pt-[7.5rem] is-margin-replace-padding relative">
|
||||
<div class="is-margin-replace-padding relative pt-[7.5rem]">
|
||||
<div class="relative">
|
||||
<div class="web-big-padding-section-level-2">
|
||||
<div class="container relative">
|
||||
|
||||
@@ -21,7 +21,10 @@
|
||||
<!-- <time class="text-caption ml-auto">12 Jan, 2023</time> -->
|
||||
</div>
|
||||
|
||||
<p class="web-main-body-500 u-margin-block-start-4 u-break-word" use:highlight={highlightTerms}>
|
||||
<p
|
||||
class="web-main-body-500 u-margin-block-start-4 u-break-word"
|
||||
use:highlight={highlightTerms}
|
||||
>
|
||||
{sanitizeContent(thread.content)}
|
||||
</p>
|
||||
|
||||
|
||||
@@ -71,15 +71,15 @@
|
||||
<MessageCard {message}>
|
||||
{#if isFirst}
|
||||
<div class="web-inline-info web-u-margin-block-start-24">
|
||||
<div class="text-sub-body font-medium text-primary">TL;DR</div>
|
||||
<div class="text-sub-body text-primary font-medium">TL;DR</div>
|
||||
{data.tldr}
|
||||
</div>
|
||||
{/if}
|
||||
</MessageCard>
|
||||
{/each}
|
||||
<div class="web-card is-normal has-border-gradient">
|
||||
<span class="text-sub-body font-medium text-primary">Reply</span>
|
||||
<p class="text-sub-body font-medium mt-4">
|
||||
<span class="text-sub-body text-primary font-medium">Reply</span>
|
||||
<p class="text-sub-body mt-4 font-medium">
|
||||
Reply to this thread by joining our Discord
|
||||
</p>
|
||||
<a class="web-button mt-6" href={discordLink}>
|
||||
@@ -90,14 +90,14 @@
|
||||
</div>
|
||||
<div class="related">
|
||||
{#if data.related.length}
|
||||
<h2 class="text-micro uppercase text-primary">Recommended threads</h2>
|
||||
<h2 class="text-micro text-primary uppercase">Recommended threads</h2>
|
||||
{/if}
|
||||
<ul>
|
||||
{#each data.related as thread}
|
||||
<li>
|
||||
<a href="/threads/{thread.$id}" data-sveltekit-reload>
|
||||
<div class="flex items-center">
|
||||
<span class="text-sub-body font-medium text-primary">
|
||||
<span class="text-sub-body text-primary font-medium">
|
||||
{thread.title.length > 40
|
||||
? thread.title.slice(0, 40) + '...'
|
||||
: thread.title}
|
||||
|
||||
@@ -29,13 +29,13 @@
|
||||
<div class="author-img">
|
||||
<img src={message.author_avatar} alt="" class="h-full w-full rounded-[inherit]" />
|
||||
</div>
|
||||
<span class="text-sub-body font-medium text-primary">{message.author}</span>
|
||||
<span class="text-sub-body text-primary font-medium">{message.author}</span>
|
||||
</div>
|
||||
<span class="timestamp text-caption">
|
||||
{formatTimestamp(message.timestamp)}
|
||||
</span>
|
||||
</div>
|
||||
<div class="text-sub-body font-medium mt-4">
|
||||
<div class="text-sub-body mt-4 font-medium">
|
||||
<SvelteMarkdown
|
||||
source={message.message}
|
||||
renderers={{
|
||||
|
||||
@@ -21,9 +21,12 @@ type FilterThreadsArgs = {
|
||||
};
|
||||
|
||||
export function sanitizeContent(rawContent: string, maxLength: number = 200): string {
|
||||
const cleaned = rawContent.replace(/```(?:\w+)?\n([\s\S]*?)```|```([\s\S]*?)```/g, (_, withLang, withoutLang) => {
|
||||
return (withLang || withoutLang).trim();
|
||||
});
|
||||
const cleaned = rawContent.replace(
|
||||
/```(?:\w+)?\n([\s\S]*?)```|```([\s\S]*?)```/g,
|
||||
(_, withLang, withoutLang) => {
|
||||
return (withLang || withoutLang).trim();
|
||||
}
|
||||
);
|
||||
|
||||
return cleaned.length > maxLength ? cleaned.slice(0, maxLength) + '...' : cleaned;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user