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