diff --git a/app/backend/InputBackend.tsx b/app/backend/InputBackend.tsx deleted file mode 100644 index a00ceeb..0000000 --- a/app/backend/InputBackend.tsx +++ /dev/null @@ -1,86 +0,0 @@ -import React, { useState } from 'react'; -import InputFrontend from '../components/InputFrontend'; -import ConversationFrontend from '../components/ConversationFrontend'; -import { Mistral } from '@mistralai/mistralai'; - - - -const handleMicClick = () => { - console.log('Mic clicked!'); - // Do something when the mic button is clicked -}; - - -const handleResendClick = () => { - console.log('Resend button clicked'); - // Handle resend action -}; - -const handleEditClick = () => { - console.log('Edit button clicked'); - // Handle edit action -}; - -const handleCopyClick = () => { - console.log('Copy button clicked'); - // Handle copy action -}; - -const InputBackend: React.FC = () => { - async function prompt_mistral(model: string, prompt: string, system: string) { - const apiKey = "m3kZRjN8DRSIo88r8Iti9hmKGWIklrLY"; - - const client = new Mistral({ apiKey: apiKey }); - - var chatResponse = await client.chat.complete({ - model: model, - messages: [{ role: 'user', content: prompt }, { role: 'system', content: system, }], - }); - - if (chatResponse && chatResponse.choices && chatResponse.choices.length > 0) { - if (chatResponse.choices[0].message.content) { - addMessage('AI: ' + chatResponse.choices[0].message.content); - } - } else { - console.error('Error: Unexpected API response:', chatResponse); - } - } - - const handleSendClick = (message: string) => { - var system = "You are a helpful assistant. The following is the chat history." - for (let index = 0; index < messages.length; index++) { - system += messages[index] + " "; - }; - - addMessage('User: ' + message); - prompt_mistral("mistral-large-latest", message, system) - }; - - const [messages, setMessages] = useState([ - 'User: Hello!', - 'AI: Hi there!', - 'User: How are you?', - 'AI: I’m good, thank you!' - ]); - - const addMessage = (message: string) => { - setMessages((prevMessages) => [...prevMessages, message]); - }; - return ( -
- - -
- ); -}; - -export default InputBackend; diff --git a/app/backend/InputOutputHandler.tsx b/app/backend/InputOutputHandler.tsx index 86bb594..02a227b 100644 --- a/app/backend/InputOutputHandler.tsx +++ b/app/backend/InputOutputHandler.tsx @@ -3,34 +3,28 @@ import React, { useEffect, useRef, useState } from "react"; import ConversationFrontend from "../components/ConversationFrontend"; import InputFrontend from "../components/InputFrontend"; import axios from "axios"; +import { skip } from "node:test"; const InputOutputBackend: React.FC = () => { type Message = { role: string - content:string + content: string } const [accessToken, setAccessToken] = useState("") - const postWorkerRef = useRef(null) + const postWorkerRef = useRef(null) const getWorkerRef = useRef(null) - const [messages, setMessages] = useState([{role:"assistant", content:"Hello! How can I help you?"}]) + const [messages, setMessages] = useState([{ role: "assistant", content: "Hello! How can I help you?" }]) const [liveMessage, setLiveMessage] = useState("") + const [inputMessage, setInputMessage] = useState("") const [inputDisabled, setInputDisabled] = useState(false) + const [lastMessage, setLastMessage] = useState({ role: "user", content: "Not supposed to happen." }) console.log(messages); - + useEffect(() => { - console.log("getting access"); - axios.get("http://localhost:5000/interstellar/api/ai_create") - .then(response => { - setAccessToken(response.data.access_token) - console.log(response.data.access_token); - }) - .catch(error => { - console.log("error:", error.message); - - }) + getNewToken() postWorkerRef.current = new Worker(new URL("./threads/PostWorker.js", import.meta.url)) @@ -48,7 +42,7 @@ const InputOutputBackend: React.FC = () => { } } } - + return () => { if (postWorkerRef.current) { postWorkerRef.current.terminate() @@ -58,20 +52,33 @@ const InputOutputBackend: React.FC = () => { getWorkerRef.current.terminate() } } - },[]) + }, []) + + const getNewToken = () => { + console.log("getting access"); + axios.get("http://localhost:5000/interstellar_ai/api/ai_create") + .then(response => { + setAccessToken(response.data.access_token) + console.log(response.data.access_token); + }) + .catch(error => { + console.log("error:", error.message); + + }) + } const startGetWorker = () => { if (!getWorkerRef.current) { getWorkerRef.current = new Worker(new URL("./threads/GetWorker.js", import.meta.url)) - - getWorkerRef.current.postMessage({ action: "start", access_token:accessToken}) - - addMessage("assistant","") + + getWorkerRef.current.postMessage({ action: "start", access_token: accessToken }) + + addMessage("assistant", "") getWorkerRef.current.onmessage = (event) => { const data = event.data - + if (event.data == "error") { - setLiveMessage("error getting AI response: "+ data.error) + setLiveMessage("error getting AI response: " + data.error) } else { console.log("Received data:", data); editLastMessage(data.response) @@ -81,12 +88,12 @@ const InputOutputBackend: React.FC = () => { getWorkerRef.current.onerror = (error) => { console.error("Worker error:", error) } - } + } } const endGetWorker = () => { if (getWorkerRef.current) { - getWorkerRef.current.postMessage({action:"terminate"}) + getWorkerRef.current.postMessage({ action: "terminate" }) getWorkerRef.current.terminate() getWorkerRef.current = null console.log(messages); @@ -97,31 +104,32 @@ const InputOutputBackend: React.FC = () => { if (newContent == "") { newContent = "Generating answer..." } - setMessages((prevMessages) => { - const updatedMessages = prevMessages.slice(); // Create a shallow copy of the current messages - if (updatedMessages.length > 0) { - const lastMessage = updatedMessages[updatedMessages.length - 1]; - updatedMessages[updatedMessages.length - 1] = { - ...lastMessage, // Keep the existing role and other properties - content: newContent, // Update only the content - }; - } - return updatedMessages; // Return the updated array - }); -}; + setMessages((prevMessages) => { + const updatedMessages = prevMessages.slice(); // Create a shallow copy of the current messages + if (updatedMessages.length > 0) { + const lastMessage = updatedMessages[updatedMessages.length - 1]; + updatedMessages[updatedMessages.length - 1] = { + ...lastMessage, // Keep the existing role and other properties + content: newContent, // Update only the content + }; + } + return updatedMessages; // Return the updated array + }); + }; const addMessage = (role: string, content: string) => { - setMessages(previous => [...previous,{role,content}]) - } - const handleSendClick = (inputValue: string) => { + setMessages(previous => [...previous, { role, content }]) + } + const handleSendClick = (inputValue: string, override: boolean) => { if (inputValue != "") { - if (!inputDisabled) { + console.log(inputDisabled) + if (!inputDisabled || override) { setInputDisabled(true) if (postWorkerRef.current) { addMessage("user", inputValue) - console.log("input:",inputValue); - postWorkerRef.current.postMessage({messages:[...messages, { role: "user", content: inputValue }], ai_model:"phi3.5", access_token:accessToken}) + console.log("input:", inputValue); + postWorkerRef.current.postMessage({ messages: [...messages, { role: "user", content: inputValue }], ai_model: "phi3.5", access_token: accessToken }) startGetWorker() } } @@ -133,18 +141,33 @@ const InputOutputBackend: React.FC = () => { } const handleResendClick = () => { - // do stuff + var temporary_message = messages[messages.length - 2]['content'] + const updatedMessages = messages.slice(0, -2) + setMessages(updatedMessages) + endGetWorker() + getNewToken() + setInputDisabled(false) + handleSendClick(temporary_message, true) } const handleEditClick = () => { - // do stuff + setInputMessage(messages[messages.length - 2]['content']) + const updatedMessages = messages.slice(0, -2) + setMessages(updatedMessages) + endGetWorker() + getNewToken() + setInputDisabled(false) } - const handleCopyClick = () => { - // do stuff + const handleCopyClick = async () => { + try { + await navigator.clipboard.writeText(messages[messages.length - 1]['content']); + } catch (err) { + console.error('Failed to copy: ', err); + } } - return ( + return (
{ onCopyClick={handleCopyClick} />
- ) + ) } export default InputOutputBackend @@ -168,4 +191,3 @@ export default InputOutputBackend - \ No newline at end of file diff --git a/app/backend/database.ts b/app/backend/database.ts new file mode 100644 index 0000000..7b7437d --- /dev/null +++ b/app/backend/database.ts @@ -0,0 +1,16 @@ +import axios from "axios"; + +const sendToDatabase = (data: any) => { + axios.post("http://localhost:5000/interstellar_ai/db", data) + .then(response => { + const status = response.data.status + console.log(status); + postMessage({ status }) + console.log('message posted'); + + }) + .catch(error => { + console.log("Error calling Database:", error) + postMessage({ status: 500 }) + }) +} \ No newline at end of file diff --git a/app/backend/threads/GetWorker.js b/app/backend/threads/GetWorker.js index fcdcc2f..e035407 100644 --- a/app/backend/threads/GetWorker.js +++ b/app/backend/threads/GetWorker.js @@ -3,8 +3,8 @@ import axios from "axios"; let accesstoken onmessage = (event) => { const { action, access_token } = event.data - accesstoken=access_token - + accesstoken = access_token + if (action === "start") { fetchData() } else if (action === "terminate") { @@ -15,20 +15,20 @@ console.log('starting get loop'); const fetchData = () => { console.log(accesstoken); - - - const apiURL = "http://localhost:5000/interstellar/api/ai_get?access_token="+accesstoken - + + + const apiURL = "http://localhost:5000/interstellar_ai/api/ai_get?access_token=" + accesstoken + axios.get(apiURL) .then(response => { const data = response.data console.log(data); postMessage(data) - setTimeout(fetchData,100) + setTimeout(fetchData, 100) }) .catch(error => { console.log('Error fetching data:', error); - postMessage({error:"failed fetching data"}) - setTimeout(() => fetchData(),1000) - }) + postMessage({ error: "failed fetching data" }) + setTimeout(() => fetchData(), 1000) + }) } \ No newline at end of file diff --git a/app/backend/threads/PostWorker.js b/app/backend/threads/PostWorker.js index d6f6b04..1127d0d 100644 --- a/app/backend/threads/PostWorker.js +++ b/app/backend/threads/PostWorker.js @@ -7,23 +7,23 @@ onmessage = (e) => { const Message = { messages: messages, ai_model: "phi3.5", - model_type:"local", - access_token:access_token + model_type: "local", + access_token: access_token } console.log(Message); - - axios.post("http://localhost:5000/interstellar/api/ai_send",Message) + + axios.post("http://localhost:5000/interstellar_ai/api/ai_send", Message) .then(response => { const status = response.data.status console.log(status); postMessage({ status }) console.log('message posted'); - + }) .catch(error => { console.log("Error calling API:", error) - postMessage({status:500}) - }) + postMessage({ status: 500 }) + }) } \ No newline at end of file diff --git a/app/components/Credits.tsx b/app/components/Credits.tsx new file mode 100644 index 0000000..6af40d0 --- /dev/null +++ b/app/components/Credits.tsx @@ -0,0 +1,71 @@ +import React from 'react'; + +const Credits: React.FC = () => { + return ( +
+
+

Credits

+ +

Icons

+

+ This project utilizes the following icon resources: +

+ + Solar Icons + + + Dazzle UI + + +

Fonts

+

+ The fonts used in this project are provided by: +

+ + Poppins + + + Inconsolata, Merriweather, Noto Sans, Noto Serif, Playfair Display, Bangers, Caveat, Frederika the Great, Sofadi One, Zilla Slab Highlight + + + Roboto, Rock Salt + + + Ubuntu + +
+
+ ); +}; + +export default Credits; diff --git a/app/components/Header.tsx b/app/components/Header.tsx index 6316306..5b74d00 100644 --- a/app/components/Header.tsx +++ b/app/components/Header.tsx @@ -1,26 +1,25 @@ -// Header.tsx import React, { useState } from 'react'; import Login from './Login'; interface HeaderProps { - onViewChange: (view: 'AI' | 'FAQ' | 'Documentation') => void; + onViewChange: (view: 'AI' | 'FAQ' | 'Documentation' | 'Credits') => void; // Include 'Credits' showDivs: boolean; toggleDivs: () => void; showHistoryModelsToggle: boolean; - showToggle: boolean; // Add this prop + showToggle: boolean; } const Header: React.FC = ({ onViewChange, showDivs, toggleDivs, showHistoryModelsToggle, showToggle }) => { - const [menuOpen, setMenuOpen] = useState(false) - - const toggleMenu = () => { - setMenuOpen(!menuOpen) - } + const [menuOpen, setMenuOpen] = useState(false); - const buttonClicked = (page: "AI" | "Documentation" | "FAQ") => { - onViewChange(page) - toggleMenu() - } + const toggleMenu = () => { + setMenuOpen(!menuOpen); + }; + + const buttonClicked = (page: "AI" | "Documentation" | "FAQ" | "Credits") => { // Add 'Credits' to the options here + onViewChange(page); + toggleMenu(); + }; return ( <> @@ -30,17 +29,19 @@ const Header: React.FC = ({ onViewChange, showDivs, toggleDivs, sho - +
diff --git a/app/components/InputFrontend.tsx b/app/components/InputFrontend.tsx index f22ee57..e50e916 100644 --- a/app/components/InputFrontend.tsx +++ b/app/components/InputFrontend.tsx @@ -1,16 +1,19 @@ -import React, { useState, ForwardedRef } from 'react'; +import React, { useState, ForwardedRef, useEffect } from 'react'; interface InputProps { message: string; - onSendClick: (message: string) => void; + onSendClick: (message: string, override: boolean) => void; onMicClick: () => void; - inputDisabled:boolean + inputDisabled: boolean } const InputFrontend = React.forwardRef( ({ message, onSendClick, onMicClick, inputDisabled }, ref: ForwardedRef) => { const [inputValue, setInputValue] = useState(''); - + + useEffect(() => { + setInputValue(message); + }, [message]); const handleInputChange = (e: React.ChangeEvent) => { setInputValue(e.target.value); @@ -19,7 +22,7 @@ const InputFrontend = React.forwardRef( const handleKeyDown = (event: React.KeyboardEvent) => { if (!inputDisabled) { if (event.key === 'Enter') { - onSendClick(inputValue); // Call the function passed via props + onSendClick(inputValue, false); // Call the function passed via props setInputValue(''); // Optionally clear input after submission event.preventDefault(); // Prevent default action (e.g., form submission) } @@ -36,7 +39,7 @@ const InputFrontend = React.forwardRef( onChange={handleInputChange} onKeyDown={handleKeyDown} /> -
+ {/* New Account Name Input */} +
+ setAccountName(e.target.value)} + /> +
+ {/* New Account Password Input */}
{ + const [selectedModel, setSelectedModel] = useState('Offline Fast'); + + const modelOptions = [ + 'Offline Fast', + 'Offline Fast (FOSS)', + 'Offline Slow', + 'Offline Slow (FOSS)', + 'Online (La Plateforme)', + 'Online (FOSS) (La Plateforme)', + 'Online Cheap (OpenAI)', + 'Online Expensive (OpenAI)', + 'Online Cheap (Anthropic)', + 'Online Expensive (Anthropic)', + 'Online Cheap (Google)', + 'Online Expensive (Google)', + ]; + + const handleModelChange = (event: React.ChangeEvent) => { + setSelectedModel(event.target.value); + }; + + const isOfflineModel = (model: string) => { + return model.includes('Offline'); + }; + return (

Different AI models

-
-
- - - - - {/* Example Models */} - - - - - - - - - -
-
+
+ + +
+
+ + + + + + + + + +
); diff --git a/app/components/Settings.tsx b/app/components/Settings.tsx index ecc8a34..656bd53 100644 --- a/app/components/Settings.tsx +++ b/app/components/Settings.tsx @@ -1,45 +1,225 @@ -import React, { useState } from 'react'; +import React, { useState, useEffect } from 'react'; import { exportSettings, importSettings } from './settingUtils'; // Import utility functions const Settings: React.FC<{ closeSettings: () => void; accountName: string }> = ({ closeSettings, accountName }) => { - const [activeSection, setActiveSection] = useState('general'); - const [preferredLanguage, setPreferredLanguage] = useState('en'); - const [preferredCurrency, setPreferredCurrency] = useState('usd'); - const [dateFormat, setDateFormat] = useState('mm/dd/yyyy'); - const [timeFormat, setTimeFormat] = useState('12-hour'); - const [timeZone, setTimeZone] = useState('GMT'); - const [disableOnlineAI, setDisableOnlineAI] = useState(false); - const [disableChatHistory, setDisableChatHistory] = useState(false); - const [disableAIMemory, setDisableAIMemory] = useState(false); - const [openSourceMode, setOpenSourceMode] = useState(false); - const [newName, setNewName] = useState(''); - const [newEmail, setNewEmail] = useState(''); - const [newPassword, setNewPassword] = useState(''); - // Theme settings state - const [backgroundColor, setBackgroundColor] = useState(getComputedStyle(document.documentElement).getPropertyValue('--background-color').trim()); - const [textColor, setTextColor] = useState(getComputedStyle(document.documentElement).getPropertyValue('--text-color').trim()); - const [inputBackgroundColor, setInputBackgroundColor] = useState(getComputedStyle(document.documentElement).getPropertyValue('--input-background-color').trim()); - const [inputButtonColor, setInputButtonColor] = useState(getComputedStyle(document.documentElement).getPropertyValue('--input-button-color').trim()); - const [inputButtonHoverColor, setInputButtonHoverColor] = useState(getComputedStyle(document.documentElement).getPropertyValue('--input-button-hover-color').trim()); - const [userMessageBackgroundColor, setUserMessageBackgroundColor] = useState(getComputedStyle(document.documentElement).getPropertyValue('--user-message-background-color').trim()); - const [userMessageTextColor, setUserMessageTextColor] = useState(getComputedStyle(document.documentElement).getPropertyValue('--user-message-text-color').trim()); - const [aiMessageBackgroundColor, setAiMessageBackgroundColor] = useState(getComputedStyle(document.documentElement).getPropertyValue('--ai-message-background-color').trim()); - const [aiMessageTextColor, setAiMessageTextColor] = useState(getComputedStyle(document.documentElement).getPropertyValue('--ai-message-text-color').trim()); - const [buttonBackgroundColor, setButtonBackgroundColor] = useState(getComputedStyle(document.documentElement).getPropertyValue('--button-background-color').trim()); - const [buttonHoverBackgroundColor, setButtonHoverBackgroundColor] = useState(getComputedStyle(document.documentElement).getPropertyValue('--button-hover-background-color').trim()); - const [modelsBackgroundColor, setModelsBackgroundColor] = useState(getComputedStyle(document.documentElement).getPropertyValue('--models-background-color').trim()); - const [historyBackgroundColor, setHistoryBackgroundColor] = useState(getComputedStyle(document.documentElement).getPropertyValue('--history-background-color').trim()); - const [leftPanelBackgroundColor, setLeftPanelBackgroundColor] = useState(getComputedStyle(document.documentElement).getPropertyValue('--left-panel-background-color').trim()); - const [conversationBackgroundColor, setConversationBackgroundColor] = useState(getComputedStyle(document.documentElement).getPropertyValue('--conversation-background-color').trim()); - const [popUpTextColor, setPopUpTextColor] = useState(getComputedStyle(document.documentElement).getPropertyValue('--pop-up-text').trim()); - const [inputBorderColor, setInputBorderColor] = useState(getComputedStyle(document.documentElement).getPropertyValue('--input-border-color').trim()); - const [fontFamily, setFontFamily] = useState(getComputedStyle(document.documentElement).getPropertyValue('--font-family').trim()); - const [fontSize, setFontSize] = useState(getComputedStyle(document.documentElement).getPropertyValue('--font-size').trim()); + const getItemFromLocalStorage = (key: string) => { + const item = localStorage.getItem(key); + return item ? JSON.parse(item) : false; // Default to false if item is null + }; - // Theme selection - const [selectedTheme, setSelectedTheme] = useState('default'); + // Active section + const [activeSection, setActiveSection] = useState(() => localStorage.getItem('activeSection') || 'general'); + // Language setting + const [preferredLanguage, setPreferredLanguage] = useState(() => localStorage.getItem('preferredLanguage') || 'en'); + + // Currency setting + const [preferredCurrency, setPreferredCurrency] = useState(() => localStorage.getItem('preferredCurrency') || 'usd'); + + // Date and time format settings + const [dateFormat, setDateFormat] = useState(() => localStorage.getItem('dateFormat') || 'mm/dd/yyyy'); + const [timeFormat, setTimeFormat] = useState(() => localStorage.getItem('timeFormat') || '12-hour'); + const [timeZone, setTimeZone] = useState(() => localStorage.getItem('timeZone') || 'GMT'); + + // Online AI and chat history settings + // State declarations + const [disableOnlineAI, setDisableOnlineAI] = useState(() => getItemFromLocalStorage('disableOnlineAI')); + const [disableChatHistory, setDisableChatHistory] = useState(() => getItemFromLocalStorage('disableChatHistory')); + const [disableAIMemory, setDisableAIMemory] = useState(() => getItemFromLocalStorage('disableAIMemory')); + const [openSourceMode, setOpenSourceMode] = useState(() => getItemFromLocalStorage('openSourceMode')); + + // User credentials + const [newName, setNewName] = useState(() => localStorage.getItem('newName') || ''); + const [newEmail, setNewEmail] = useState(() => localStorage.getItem('newEmail') || ''); + const [newPassword, setNewPassword] = useState(() => localStorage.getItem('newPassword') || ''); + + // Measurement setting + const [preferredMeasurement, setPreferredMeasurement] = useState(() => localStorage.getItem('preferredMeasurement') || 'Metric'); + + // Theme settings + const [backgroundColor, setBackgroundColor] = useState(() => getComputedStyle(document.documentElement).getPropertyValue('--background-color').trim()); + const [textColor, setTextColor] = useState(() => getComputedStyle(document.documentElement).getPropertyValue('--text-color').trim()); + const [inputBackgroundColor, setInputBackgroundColor] = useState(() => getComputedStyle(document.documentElement).getPropertyValue('--input-background-color').trim()); + const [inputButtonColor, setInputButtonColor] = useState(() => getComputedStyle(document.documentElement).getPropertyValue('--input-button-color').trim()); + const [inputButtonHoverColor, setInputButtonHoverColor] = useState(() => getComputedStyle(document.documentElement).getPropertyValue('--input-button-hover-color').trim()); + const [userMessageBackgroundColor, setUserMessageBackgroundColor] = useState(() => getComputedStyle(document.documentElement).getPropertyValue('--user-message-background-color').trim()); + const [userMessageTextColor, setUserMessageTextColor] = useState(() => getComputedStyle(document.documentElement).getPropertyValue('--user-message-text-color').trim()); + const [aiMessageBackgroundColor, setAiMessageBackgroundColor] = useState(() => getComputedStyle(document.documentElement).getPropertyValue('--ai-message-background-color').trim()); + const [aiMessageTextColor, setAiMessageTextColor] = useState(() => getComputedStyle(document.documentElement).getPropertyValue('--ai-message-text-color').trim()); + const [buttonBackgroundColor, setButtonBackgroundColor] = useState(() => getComputedStyle(document.documentElement).getPropertyValue('--button-background-color').trim()); + const [buttonHoverBackgroundColor, setButtonHoverBackgroundColor] = useState(() => getComputedStyle(document.documentElement).getPropertyValue('--button-hover-background-color').trim()); + const [modelsBackgroundColor, setModelsBackgroundColor] = useState(() => getComputedStyle(document.documentElement).getPropertyValue('--models-background-color').trim()); + const [historyBackgroundColor, setHistoryBackgroundColor] = useState(() => getComputedStyle(document.documentElement).getPropertyValue('--history-background-color').trim()); + const [leftPanelBackgroundColor, setLeftPanelBackgroundColor] = useState(() => getComputedStyle(document.documentElement).getPropertyValue('--left-panel-background-color').trim()); + const [conversationBackgroundColor, setConversationBackgroundColor] = useState(() => getComputedStyle(document.documentElement).getPropertyValue('--conversation-background-color').trim()); + const [popUpTextColor, setPopUpTextColor] = useState(() => getComputedStyle(document.documentElement).getPropertyValue('--pop-up-text').trim()); + const [inputBorderColor, setInputBorderColor] = useState(() => getComputedStyle(document.documentElement).getPropertyValue('--input-border-color').trim()); + const [fontFamily, setFontFamily] = useState(() => getComputedStyle(document.documentElement).getPropertyValue('--font-family').trim()); + const [fontSize, setFontSize] = useState(() => getComputedStyle(document.documentElement).getPropertyValue('--font-size').trim()); + + // Theme selection + const [selectedTheme, setSelectedTheme] = useState(() => localStorage.getItem('selectedTheme') || 'default'); + + // API Keys + const [laPlateforme, setLaPlateforme] = useState(() => getComputedStyle(document.documentElement).getPropertyValue('--online-la-plateforme').trim()); + const [openAI, setOpenAI] = useState(() => getComputedStyle(document.documentElement).getPropertyValue('--online-cheap-openai').trim()); + const [anthropic, setAnthropic] = useState(() => getComputedStyle(document.documentElement).getPropertyValue('--online-cheap-anthropic').trim()); + const [google, setGoogle] = useState(() => getComputedStyle(document.documentElement).getPropertyValue('--online-cheap-google').trim()); + + // Effect hooks to update localStorage whenever any state changes + useEffect(() => { + localStorage.setItem('activeSection', activeSection); + }, [activeSection]); + + useEffect(() => { + localStorage.setItem('preferredLanguage', preferredLanguage); + }, [preferredLanguage]); + + useEffect(() => { + localStorage.setItem('preferredCurrency', preferredCurrency); + }, [preferredCurrency]); + + useEffect(() => { + localStorage.setItem('dateFormat', dateFormat); + }, [dateFormat]); + + useEffect(() => { + localStorage.setItem('timeFormat', timeFormat); + }, [timeFormat]); + + useEffect(() => { + localStorage.setItem('timeZone', timeZone); + }, [timeZone]); + + useEffect(() => { + localStorage.setItem('disableOnlineAI', JSON.stringify(disableOnlineAI)); + }, [disableOnlineAI]); + + useEffect(() => { + localStorage.setItem('disableChatHistory', JSON.stringify(disableChatHistory)); + }, [disableChatHistory]); + + useEffect(() => { + localStorage.setItem('disableAIMemory', JSON.stringify(disableAIMemory)); + }, [disableAIMemory]); + + useEffect(() => { + localStorage.setItem('openSourceMode', JSON.stringify(openSourceMode)); + }, [openSourceMode]); + + useEffect(() => { + localStorage.setItem('newName', newName); + }, [newName]); + + useEffect(() => { + localStorage.setItem('newEmail', newEmail); + }, [newEmail]); + + useEffect(() => { + localStorage.setItem('newPassword', newPassword); + }, [newPassword]); + + useEffect(() => { + localStorage.setItem('preferredMeasurement', preferredMeasurement); + }, [preferredMeasurement]); + + useEffect(() => { + localStorage.setItem('backgroundColor', backgroundColor); + }, [backgroundColor]); + + useEffect(() => { + localStorage.setItem('textColor', textColor); + }, [textColor]); + + useEffect(() => { + localStorage.setItem('inputBackgroundColor', inputBackgroundColor); + }, [inputBackgroundColor]); + + useEffect(() => { + localStorage.setItem('inputButtonColor', inputButtonColor); + }, [inputButtonColor]); + + useEffect(() => { + localStorage.setItem('inputButtonHoverColor', inputButtonHoverColor); + }, [inputButtonHoverColor]); + + useEffect(() => { + localStorage.setItem('userMessageBackgroundColor', userMessageBackgroundColor); + }, [userMessageBackgroundColor]); + + useEffect(() => { + localStorage.setItem('userMessageTextColor', userMessageTextColor); + }, [userMessageTextColor]); + + useEffect(() => { + localStorage.setItem('aiMessageBackgroundColor', aiMessageBackgroundColor); + }, [aiMessageBackgroundColor]); + + useEffect(() => { + localStorage.setItem('aiMessageTextColor', aiMessageTextColor); + }, [aiMessageTextColor]); + + useEffect(() => { + localStorage.setItem('buttonBackgroundColor', buttonBackgroundColor); + }, [buttonBackgroundColor]); + + useEffect(() => { + localStorage.setItem('buttonHoverBackgroundColor', buttonHoverBackgroundColor); + }, [buttonHoverBackgroundColor]); + + useEffect(() => { + localStorage.setItem('modelsBackgroundColor', modelsBackgroundColor); + }, [modelsBackgroundColor]); + + useEffect(() => { + localStorage.setItem('historyBackgroundColor', historyBackgroundColor); + }, [historyBackgroundColor]); + + useEffect(() => { + localStorage.setItem('leftPanelBackgroundColor', leftPanelBackgroundColor); + }, [leftPanelBackgroundColor]); + + useEffect(() => { + localStorage.setItem('conversationBackgroundColor', conversationBackgroundColor); + }, [conversationBackgroundColor]); + + useEffect(() => { + localStorage.setItem('popUpTextColor', popUpTextColor); + }, [popUpTextColor]); + + useEffect(() => { + localStorage.setItem('inputBorderColor', inputBorderColor); + }, [inputBorderColor]); + + useEffect(() => { + localStorage.setItem('fontFamily', fontFamily); + }, [fontFamily]); + + useEffect(() => { + localStorage.setItem('fontSize', fontSize); + }, [fontSize]); + + useEffect(() => { + localStorage.setItem('selectedTheme', selectedTheme); + }, [selectedTheme]); + + useEffect(() => { + localStorage.setItem('laPlateforme', laPlateforme); + }, [laPlateforme]); + + useEffect(() => { + localStorage.setItem('openAI', openAI); + }, [openAI]); + + useEffect(() => { + localStorage.setItem('anthropic', anthropic); + }, [anthropic]); + + useEffect(() => { + localStorage.setItem('google', google); + }, [google]); + // Apply imported settings to the CSS variables const applySettings = (settings: any) => { if (settings.backgroundColor) { @@ -147,85 +327,102 @@ const Settings: React.FC<{ closeSettings: () => void; accountName: string }> = ( case 'general': return (
-

General Settings

-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
+

General Settings

+ +
+ +
- ); + +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ + {/* New Preferred Measurement Option */} +
+ + +
+
+ ); case 'privacy': return ( @@ -636,10 +833,19 @@ const Settings: React.FC<{ closeSettings: () => void; accountName: string }> = ( }} > - - - - + + + + + + + + + + + + +
@@ -697,17 +903,55 @@ const Settings: React.FC<{ closeSettings: () => void; accountName: string }> = ( ); + case 'api': + return ( +
+
+ + setLaPlateforme(e.target.value)} + /> +
+
+ + setOpenAI(e.target.value)} + /> +
+
+ + setAnthropic(e.target.value)} + /> +
+
+ + setGoogle(e.target.value)} + /> +
+
+ ); + case 'im/export': return (

Import & Export

Export the settings

- +

Import the settings

- +
); @@ -748,6 +992,7 @@ const Settings: React.FC<{ closeSettings: () => void; accountName: string }> = ( fontSize, preferredLanguage, preferredCurrency, + preferredMeasurement, dateFormat, timeFormat, timeZone, @@ -755,7 +1000,14 @@ const Settings: React.FC<{ closeSettings: () => void; accountName: string }> = ( disableChatHistory, disableAIMemory, openSourceMode, - }; + + // API Keys + laPlateforme, + openAI, + anthropic, + google +}; + return (
@@ -768,6 +1020,7 @@ const Settings: React.FC<{ closeSettings: () => void; accountName: string }> = (
  • setActiveSection('theme')}>Theme
  • setActiveSection('foss')}>FOSS
  • setActiveSection('account')}>Account
  • +
  • setActiveSection('api')}>API Keys
  • setActiveSection('im/export')}>Import/Export
  • diff --git a/app/page.tsx b/app/page.tsx index f8dcbd3..387bb1a 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -6,11 +6,12 @@ import FAQ from './components/Faq'; // Ensure the import path is correct import Documentation from './components/Documentation'; // Ensure the import path is correct import History from './components/History'; import Models from './components/Models'; +import Credits from './components/Credits'; import './styles/master.css'; const LandingPage: React.FC = () => { const [showDivs, setShowDivs] = useState(true); - const [view, setView] = useState<'AI' | 'FAQ' | 'Documentation'>('AI'); + const [view, setView] = useState<'AI' | 'FAQ' | 'Documentation' | 'Credits'>('AI'); // Added 'Credits' here const conversationRef = useRef(null); useEffect(() => { @@ -42,7 +43,7 @@ const LandingPage: React.FC = () => { setShowDivs(prevState => !prevState); }; - const handleViewChange = (view: 'AI' | 'FAQ' | 'Documentation') => { + const handleViewChange = (view: 'AI' | 'FAQ' | 'Documentation' | 'Credits') => { // Added 'Credits' here as well setView(view); if (view !== 'AI') { setShowDivs(false); @@ -70,6 +71,7 @@ const LandingPage: React.FC = () => { {view === 'AI' && } {view === 'FAQ' && } {view === 'Documentation' && } + {view === 'Credits' && } {/* Now Credits will render properly */} ); diff --git a/app/styles/Settings.css b/app/styles/Settings.css index bf88759..a2224a4 100644 --- a/app/styles/Settings.css +++ b/app/styles/Settings.css @@ -147,3 +147,16 @@ display: block; font-weight: bold; } + +.export-button{ + background-color: var(--button-hover-background-color); + padding: 10px; + margin: 10px; + border-radius: 10px; +} + +.import-file{ + background-color: var(--button-hover-background-color); + padding: 10px; + margin: 10px; +} \ No newline at end of file diff --git a/app/styles/credit.css b/app/styles/credit.css new file mode 100644 index 0000000..fb28dc3 --- /dev/null +++ b/app/styles/credit.css @@ -0,0 +1,52 @@ +/* Styling for the credits container */ +.credits-container { + padding: 2rem; + } + + .credits-section { + max-width: 900px; + height: 80vh; + margin: 0 auto; + background: var(--doc-background-color); /* Use variable for background */ + padding: 2rem; + border-radius: 8px; + box-shadow: 0 0 20px rgba(0, 0, 0, 0.3); + overflow-y: scroll; + } + + .title { + font-size: 2rem; + color: var(--doc-title-color); /* Use variable for title color */ + margin-bottom: 1.5rem; + } + + .subtitle { + font-size: 1.5rem; + color: var(--doc-subtitle-color); /* Use variable for subtitle color */ + margin-top: 2rem; + margin-bottom: 1rem; + } + + .paragraph { + font-size: 1rem; + color: var(--doc-paragraph-color); /* Use variable for paragraph color */ + margin-bottom: 1.5rem; + line-height: 1.6; + } + + /* Styling for the credit buttons */ + .credit-btn { + display: inline-block; + padding: 10px 15px; + margin: 10px 5px; + background-color: var(--button-background-color); /* Button background */ + color: var(--button-text-color); /* Button text */ + text-decoration: none; + border-radius: 5px; + transition: background-color 0.3s ease; + } + + .credit-btn:hover { + background-color: var(--button-hover-background-color); /* Button hover */ + } + \ No newline at end of file diff --git a/app/styles/fonts.css b/app/styles/fonts.css new file mode 100644 index 0000000..33ef933 --- /dev/null +++ b/app/styles/fonts.css @@ -0,0 +1,69 @@ +@font-face { + font-family: 'Inconsolata'; + src: url('/fonts/serious/Inconsolata/Inconsolata-VariableFont_wdth,wght.ttf') format('truetype'); +} + +@font-face { + font-family: 'Merriweather'; + src: url('/fonts/serious/Merriweather/Merriweather-Regular.tff') format('truetype'); +} + +@font-face { + font-family: 'Noto Sans'; + src: url('/fonts/serious/Noto_Sans/NotoSans-VariableFont_wdth\,wght.ttf') format('truetype'); +} + +@font-face { + font-family: 'Noto Serif'; + src: url('/fonts/serious/Noto_Serif/NotoSerif-VariableFont_wdth\,wght.ttf') format('truetype'); +} + +@font-face { + font-family: 'Playfair Display'; + src: url('/fonts/serious/Playfair_Display/PlayfairDisplay-VariableFont_wght.ttf') format('truetype'); +} + +@font-face { + font-family: 'Poppins'; + src: url('/fonts/serious/Poppins/Poppins-Regular.ttf') format('truetype'); +} + +@font-face { + font-family: 'Roboto'; + src: url('/fonts/serious/Roboto/Roboto-Regular.ttf') format('truetype'); +} + +@font-face { + font-family: 'Ubuntu'; + src: url('/fonts/serious/Ubuntu/Ubuntu-Regular.ttf') format('truetype'); +} + +@font-face { + font-family: 'Bangers'; + src: url('/fonts/comic-sans-but-better/Bangers/Bangers-Regular.ttf') format('truetype'); +} + +@font-face { + font-family: 'Caveat'; + src: url('/fonts/comic-sans-but-better/Caveat/Caveat-VariableFont_wght.ttf') format('truetype'); +} + +@font-face { + font-family: 'Frederika the Great'; + src: url('/fonts/comic-sans-but-better/Fredericka_the_Great/FrederickatheGreat-Regular.ttf') format('truetype'); +} + +@font-face { + font-family: 'Rock Salt'; + src: url('/fonts/RockSalt.ttf') format('truetype'); +} + +@font-face { + font-family: 'Sofadi One'; + src: url('/fonts/comic-sans-but-better/Sofadi_One/SofadiOne-Regular.ttf') format('truetype'); +} + +@font-face { + font-family: 'Zilla Slab Highlight'; + src: url('/fonts/comic-sans-but-better/Zilla_Slab_Highlight/ZillaSlabHighlight-Regular.ttf') format('truetype'); +} diff --git a/app/styles/master.css b/app/styles/master.css index 73edf95..3bfc49c 100644 --- a/app/styles/master.css +++ b/app/styles/master.css @@ -14,4 +14,6 @@ @import './doc.css'; @import './Login.css'; @import './Settings.css'; +@import './fonts.css'; +@import './credit.css'; @import './responsive.css'; diff --git a/app/styles/models.css b/app/styles/models.css index c53d14b..2c2d91e 100644 --- a/app/styles/models.css +++ b/app/styles/models.css @@ -1,7 +1,7 @@ .model-background { grid-column: 1 / 2; grid-row: 2 / 5; - overflow-y: auto; + overflow-y: scroll; background-color: var(--models-background-color); /* Ensure this variable is defined */ border-radius: 2em; padding: 1em; @@ -11,24 +11,9 @@ } .models { - grid-column: 1 / 2; - grid-row: 2 / 5; - overflow-y: auto; - background-color: var(--models-background-color); /* Ensure this variable is defined */ - border-radius: 2em; - padding: 1em; - height: 100%; - box-sizing: border-box; - overflow: hidden; - overflow-y: scroll; -} - -.models form { - padding-right: 10px; - padding-left: 10px; display: flex; - align-items: center; - justify-content: center; + flex-direction: column; + height: 100%; } .models .titel { @@ -39,15 +24,21 @@ font-size: 0.7em; } +.model-dropdown { + display: flex; + justify-content: center; + margin-bottom: 1em; /* Space between dropdown and models */ +} + +.model-dropdown label { + margin-right: 0.5em; /* Space between label and dropdown */ +} + .grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5vh; - width: fit-content; -} - -.grid h3 { - font-size: large; + width: 100%; /* Ensure grid takes full width */ } .model-box { @@ -60,6 +51,7 @@ position: relative; height: 18vh; width: 18vh; + margin: auto; /* Center each model box in the grid cell */ } .overlay { @@ -73,11 +65,10 @@ display: flex; justify-content: center; align-items: center; - font-size: 300%; + font-size: x-large; transition: opacity 0.5s ease; pointer-events: none; opacity: 0; - font-size: xx-large; } .overlay img { @@ -94,6 +85,7 @@ opacity: 1; } +/* Model background styles */ .code-model { background-image: url(/img/code.jpg); background-repeat: no-repeat; @@ -102,7 +94,7 @@ .math-model { background-image: url(/img/math.jpg); - background-color: var(--background-color); /* Use variable for background color */ + background-color: var(--background-color); background-position: center; background-repeat: no-repeat; background-size: contain; @@ -110,7 +102,47 @@ .language-model { background-image: url(/img/language.jpg); - background-color: #72cce4; /* Use variable for background color */ + background-color: #72cce4; + background-repeat: no-repeat; + background-size: contain; + background-position: center; +} + +.character-model { + background-image: url(/img/character.jpg); + background-color: #72cce4; + background-repeat: no-repeat; + background-size: contain; + background-position: center; +} + +.financial-model { + background-image: url(/img/financial.jpg); + background-color: #72cce4; + background-repeat: no-repeat; + background-size: contain; + background-position: center; +} + +.weather-model { + background-image: url(/img/weather.jpg); + background-color: #72cce4; + background-repeat: no-repeat; + background-size: contain; + background-position: center; +} + +.time-planner-model { + background-image: url(/img/time.jpg); + background-color: #72cce4; + background-repeat: no-repeat; + background-size: contain; + background-position: center; +} + +.image-model { + background-image: url(/img/image.jpg); + background-color: #72cce4; background-repeat: no-repeat; background-size: contain; background-position: center; @@ -122,3 +154,33 @@ background-size: cover; background-position: center; } + +.model-dropdown { + display: flex; + flex-direction: column; /* Stack label and dropdown */ + align-items: center; /* Center the content */ + margin-bottom: 1em; /* Space between dropdown and models */ +} + +.model-dropdown label { + margin-bottom: 0.5em; /* Space between label and dropdown */ + font-size: large; /* Increase font size for visibility */ + color: var(--text-color); /* Use variable for text color */ +} + +#model-select { + padding: 0.5em; /* Padding for better touch targets */ + border-radius: 5px; /* Rounded corners */ + border: 1px solid var(--input-border-color); /* Border color */ + background-color: var(--input-background-color); /* Background color */ + color: var(--text-color); /* Text color */ + font-size: medium; /* Font size for dropdown */ + cursor: pointer; /* Cursor change on hover */ + transition: background-color 0.3s ease, border 0.3s ease; /* Smooth transition */ +} + +#model-select:hover { + background-color: var(--button-hover-background-color); /* Change background on hover */ + border-color: var(--button-background-color); /* Change border color on hover */ +} + diff --git a/main.js b/main.js new file mode 100644 index 0000000..f221306 --- /dev/null +++ b/main.js @@ -0,0 +1,28 @@ +const { app, BrowserWindow } = require('electron'); + +function createWindow() { + const win = new BrowserWindow({ + width: 800, + height: 600, + webPreferences: { + nodeIntegration: true, + }, + autoHideMenuBar: true, + }); + + win.loadURL('http://localhost:3000'); +} + +app.whenReady().then(createWindow); + +app.on('window-all-closed', () => { + if (process.platform !== 'darwin') { + app.quit(); + } +}); + +app.on('activate', () => { + if (BrowserWindow.getAllWindows().length === 0) { + createWindow(); + } +}); diff --git a/package-lock.json b/package-lock.json index 0ab9cfe..0fbf765 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,6 +10,7 @@ "dependencies": { "@mistralai/mistralai": "^1.0.4", "axios": "^1.7.7", + "electron": "^32.1.2", "fs": "^0.0.1-security", "next": "14.2.12", "ollama": "^0.5.9", @@ -41,6 +42,36 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@electron/get": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-2.0.3.tgz", + "integrity": "sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^11.8.5", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "global-agent": "^3.0.0" + } + }, + "node_modules/@electron/get/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", @@ -489,6 +520,18 @@ "dev": true, "license": "MIT" }, + "node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, "node_modules/@swc/counter": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", @@ -505,6 +548,36 @@ "tslib": "^2.4.0" } }, + "node_modules/@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "license": "MIT", + "dependencies": { + "defer-to-connect": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@types/cacheable-request": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", + "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", + "license": "MIT", + "dependencies": { + "@types/http-cache-semantics": "*", + "@types/keyv": "^3.1.4", + "@types/node": "*", + "@types/responselike": "^1.0.0" + } + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", + "license": "MIT" + }, "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", @@ -512,11 +585,19 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/keyv": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/node": { "version": "20.16.5", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.5.tgz", "integrity": "sha512-VwYCweNo3ERajwy0IUlqqcyZ8/A7Zwa9ZP3MnENWcB11AejO+tLy3pu850goUW2FC/IJMdZUfKpX/yxL1gymCA==", - "dev": true, "license": "MIT", "dependencies": { "undici-types": "~6.19.2" @@ -550,6 +631,25 @@ "@types/react": "*" } }, + "node_modules/@types/responselike": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", + "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "license": "MIT", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "8.6.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.6.0.tgz", @@ -1122,6 +1222,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "license": "MIT", + "optional": true + }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -1146,6 +1253,15 @@ "node": ">=8" } }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "license": "MIT", + "engines": { + "node": "*" + } + }, "node_modules/busboy": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", @@ -1157,6 +1273,33 @@ "node": ">=10.16.0" } }, + "node_modules/cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "license": "MIT", + "engines": { + "node": ">=10.6.0" + } + }, + "node_modules/cacheable-request": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", + "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", + "license": "MIT", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/call-bind": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", @@ -1278,6 +1421,18 @@ "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", "license": "MIT" }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -1427,7 +1582,6 @@ "version": "4.3.7", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "dev": true, "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -1441,6 +1595,33 @@ } } }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "license": "MIT", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/deep-equal": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", @@ -1481,11 +1662,20 @@ "dev": true, "license": "MIT" }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, "node_modules/define-data-property": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "es-define-property": "^1.0.0", @@ -1503,7 +1693,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "define-data-property": "^1.0.1", @@ -1526,6 +1716,13 @@ "node": ">=0.4.0" } }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "license": "MIT", + "optional": true + }, "node_modules/didyoumean": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", @@ -1560,6 +1757,24 @@ "dev": true, "license": "MIT" }, + "node_modules/electron": { + "version": "32.1.2", + "resolved": "https://registry.npmjs.org/electron/-/electron-32.1.2.tgz", + "integrity": "sha512-CXe6doFzhmh1U7daOvUzmF6Cj8hssdYWMeEPRnRO6rB9/bbwMlWctcQ7P8NJXhLQ88/vYUJQrJvlJPh8qM0BRQ==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@electron/get": "^2.0.0", + "@types/node": "^20.9.0", + "extract-zip": "^2.0.1" + }, + "bin": { + "electron": "cli.js" + }, + "engines": { + "node": ">= 12.20.55" + } + }, "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", @@ -1567,6 +1782,15 @@ "dev": true, "license": "MIT" }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, "node_modules/enhanced-resolve": { "version": "5.17.1", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", @@ -1581,6 +1805,15 @@ "node": ">=10.13.0" } }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/es-abstract": { "version": "1.23.3", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", @@ -1646,7 +1879,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "get-intrinsic": "^1.2.4" @@ -1659,7 +1892,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -1768,11 +2001,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "license": "MIT", + "optional": true + }, "node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=10" @@ -2229,6 +2469,26 @@ "node": ">=0.10.0" } }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "license": "BSD-2-Clause", + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -2290,6 +2550,15 @@ "reusify": "^1.0.4" } }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -2422,6 +2691,20 @@ "integrity": "sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w==", "license": "ISC" }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -2448,7 +2731,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, + "devOptional": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2487,7 +2770,7 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -2503,6 +2786,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/get-symbol-description": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", @@ -2596,6 +2894,24 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "engines": { + "node": ">=10.0" + } + }, "node_modules/globals": { "version": "13.24.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", @@ -2616,7 +2932,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "define-properties": "^1.2.1", @@ -2633,7 +2949,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.3" @@ -2642,6 +2958,31 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/got": { + "version": "11.8.6", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", + "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=10.19.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -2679,7 +3020,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "es-define-property": "^1.0.0" @@ -2692,7 +3033,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -2705,7 +3046,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -2734,7 +3075,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "function-bind": "^1.1.2" @@ -2743,6 +3084,25 @@ "node": ">= 0.4" } }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "license": "BSD-2-Clause" + }, + "node_modules/http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "license": "MIT", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", @@ -3319,7 +3679,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true, "license": "MIT" }, "node_modules/json-schema-traverse": { @@ -3336,6 +3695,13 @@ "dev": true, "license": "MIT" }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "license": "ISC", + "optional": true + }, "node_modules/json5": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", @@ -3349,6 +3715,15 @@ "json5": "lib/cli.js" } }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, "node_modules/jsx-ast-utils": { "version": "3.3.5", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", @@ -3369,7 +3744,6 @@ "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, "license": "MIT", "dependencies": { "json-buffer": "3.0.1" @@ -3461,6 +3835,15 @@ "loose-envify": "cli.js" } }, + "node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/lru-cache": { "version": "10.4.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", @@ -3468,6 +3851,19 @@ "dev": true, "license": "ISC" }, + "node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "license": "MIT", + "optional": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -3513,6 +3909,15 @@ "node": ">= 0.6" } }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -3550,7 +3955,6 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, "license": "MIT" }, "node_modules/mz": { @@ -3650,6 +4054,18 @@ "node": ">=0.10.0" } }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -3704,7 +4120,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -3809,7 +4225,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, "license": "ISC", "dependencies": { "wrappy": "1" @@ -3833,6 +4248,15 @@ "node": ">= 0.8.0" } }, + "node_modules/p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -3932,6 +4356,12 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "license": "MIT" + }, "node_modules/picocolors": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", @@ -4153,6 +4583,15 @@ "node": ">= 0.8.0" } }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", @@ -4171,6 +4610,16 @@ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", "license": "MIT" }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -4202,6 +4651,18 @@ ], "license": "MIT" }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/react": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", @@ -4348,6 +4809,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", + "license": "MIT" + }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -4368,6 +4835,18 @@ "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } }, + "node_modules/responselike": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "license": "MIT", + "dependencies": { + "lowercase-keys": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -4418,6 +4897,24 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "engines": { + "node": ">=8.0" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -4492,7 +4989,7 @@ "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, + "devOptional": true, "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -4501,6 +4998,42 @@ "node": ">=10" } }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "license": "MIT", + "optional": true + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "license": "MIT", + "optional": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/serialize-error/node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "license": "(MIT OR CC0-1.0)", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/set-function-length": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", @@ -4599,6 +5132,13 @@ "node": ">=0.10.0" } }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "license": "BSD-3-Clause", + "optional": true + }, "node_modules/stop-iteration-iterator": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", @@ -4887,6 +5427,18 @@ "node": ">=16 || 14 >=14.17" } }, + "node_modules/sumchecker": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "license": "Apache-2.0", + "dependencies": { + "debug": "^4.1.0" + }, + "engines": { + "node": ">= 8.0" + } + }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -5180,9 +5732,17 @@ "version": "6.19.8", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", - "dev": true, "license": "MIT" }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -5420,7 +5980,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true, "license": "ISC" }, "node_modules/yaml": { @@ -5436,6 +5995,16 @@ "node": ">= 14" } }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/package.json b/package.json index 973aa3b..9df3286 100644 --- a/package.json +++ b/package.json @@ -2,15 +2,18 @@ "name": "interstellar_ai", "version": "0.1.0", "private": true, + "main": "main.js", "scripts": { "dev": "next dev", "build": "next build", "start": "next start", - "lint": "next lint" + "lint": "next lint", + "electron": "npx electron . & next dev" }, "dependencies": { "@mistralai/mistralai": "^1.0.4", "axios": "^1.7.7", + "electron": "^32.1.2", "fs": "^0.0.1-security", "next": "14.2.12", "ollama": "^0.5.9", diff --git a/public/fonts/comic-sans-but-better/Bangers/Bangers-Regular.ttf b/public/fonts/comic-sans-but-better/Bangers/Bangers-Regular.ttf new file mode 100644 index 0000000..438c449 Binary files /dev/null and b/public/fonts/comic-sans-but-better/Bangers/Bangers-Regular.ttf differ diff --git a/public/fonts/comic-sans-but-better/Bangers/OFL.txt b/public/fonts/comic-sans-but-better/Bangers/OFL.txt new file mode 100644 index 0000000..1f5eb28 --- /dev/null +++ b/public/fonts/comic-sans-but-better/Bangers/OFL.txt @@ -0,0 +1,93 @@ +Copyright 2010 The Bangers Project Authors (https://github.com/googlefonts/bangers) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://openfontlicense.org + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/public/fonts/comic-sans-but-better/Caveat/Caveat-VariableFont_wght.ttf b/public/fonts/comic-sans-but-better/Caveat/Caveat-VariableFont_wght.ttf new file mode 100644 index 0000000..0ae4d99 Binary files /dev/null and b/public/fonts/comic-sans-but-better/Caveat/Caveat-VariableFont_wght.ttf differ diff --git a/public/fonts/comic-sans-but-better/Caveat/OFL.txt b/public/fonts/comic-sans-but-better/Caveat/OFL.txt new file mode 100644 index 0000000..a1bd351 --- /dev/null +++ b/public/fonts/comic-sans-but-better/Caveat/OFL.txt @@ -0,0 +1,93 @@ +Copyright 2014 The Caveat Project Authors (https://github.com/googlefonts/caveat) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://openfontlicense.org + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/public/fonts/comic-sans-but-better/Caveat/README.txt b/public/fonts/comic-sans-but-better/Caveat/README.txt new file mode 100644 index 0000000..34124c0 --- /dev/null +++ b/public/fonts/comic-sans-but-better/Caveat/README.txt @@ -0,0 +1,66 @@ +Caveat Variable Font +==================== + +This download contains Caveat as both a variable font and static fonts. + +Caveat is a variable font with this axis: + wght + +This means all the styles are contained in a single file: + Caveat-VariableFont_wght.ttf + +If your app fully supports variable fonts, you can now pick intermediate styles +that aren’t available as static fonts. Not all apps support variable fonts, and +in those cases you can use the static font files for Caveat: + static/Caveat-Regular.ttf + static/Caveat-Medium.ttf + static/Caveat-SemiBold.ttf + static/Caveat-Bold.ttf + +Get started +----------- + +1. Install the font files you want to use + +2. Use your app's font picker to view the font family and all the +available styles + +Learn more about variable fonts +------------------------------- + + https://developers.google.com/web/fundamentals/design-and-ux/typography/variable-fonts + https://variablefonts.typenetwork.com + https://medium.com/variable-fonts + +In desktop apps + + https://theblog.adobe.com/can-variable-fonts-illustrator-cc + https://helpx.adobe.com/nz/photoshop/using/fonts.html#variable_fonts + +Online + + https://developers.google.com/fonts/docs/getting_started + https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Fonts/Variable_Fonts_Guide + https://developer.microsoft.com/en-us/microsoft-edge/testdrive/demos/variable-fonts + +Installing fonts + + MacOS: https://support.apple.com/en-us/HT201749 + Linux: https://www.google.com/search?q=how+to+install+a+font+on+gnu%2Blinux + Windows: https://support.microsoft.com/en-us/help/314960/how-to-install-or-remove-a-font-in-windows + +Android Apps + + https://developers.google.com/fonts/docs/android + https://developer.android.com/guide/topics/ui/look-and-feel/downloadable-fonts + +License +------- +Please read the full license text (OFL.txt) to understand the permissions, +restrictions and requirements for usage, redistribution, and modification. + +You can use them in your products & projects – print or digital, +commercial or otherwise. + +This isn't legal advice, please consider consulting a lawyer and see the full +license for all details. diff --git a/public/fonts/comic-sans-but-better/Caveat/static/Caveat-Bold.ttf b/public/fonts/comic-sans-but-better/Caveat/static/Caveat-Bold.ttf new file mode 100644 index 0000000..64c12c7 Binary files /dev/null and b/public/fonts/comic-sans-but-better/Caveat/static/Caveat-Bold.ttf differ diff --git a/public/fonts/comic-sans-but-better/Caveat/static/Caveat-Medium.ttf b/public/fonts/comic-sans-but-better/Caveat/static/Caveat-Medium.ttf new file mode 100644 index 0000000..513854f Binary files /dev/null and b/public/fonts/comic-sans-but-better/Caveat/static/Caveat-Medium.ttf differ diff --git a/public/fonts/comic-sans-but-better/Caveat/static/Caveat-Regular.ttf b/public/fonts/comic-sans-but-better/Caveat/static/Caveat-Regular.ttf new file mode 100644 index 0000000..1febd9f Binary files /dev/null and b/public/fonts/comic-sans-but-better/Caveat/static/Caveat-Regular.ttf differ diff --git a/public/fonts/comic-sans-but-better/Caveat/static/Caveat-SemiBold.ttf b/public/fonts/comic-sans-but-better/Caveat/static/Caveat-SemiBold.ttf new file mode 100644 index 0000000..e5df6cf Binary files /dev/null and b/public/fonts/comic-sans-but-better/Caveat/static/Caveat-SemiBold.ttf differ diff --git a/public/fonts/comic-sans-but-better/Fredericka_the_Great/FrederickatheGreat-Regular.ttf b/public/fonts/comic-sans-but-better/Fredericka_the_Great/FrederickatheGreat-Regular.ttf new file mode 100644 index 0000000..c1a87dc Binary files /dev/null and b/public/fonts/comic-sans-but-better/Fredericka_the_Great/FrederickatheGreat-Regular.ttf differ diff --git a/public/fonts/comic-sans-but-better/Fredericka_the_Great/OFL.txt b/public/fonts/comic-sans-but-better/Fredericka_the_Great/OFL.txt new file mode 100644 index 0000000..572c38c --- /dev/null +++ b/public/fonts/comic-sans-but-better/Fredericka_the_Great/OFL.txt @@ -0,0 +1,94 @@ +Copyright (c) 2011, Tart Workshop (a DBA of Font Diner, Inc) (www.fontdiner.com), +with Reserved Font Name "Fredericka the Great". + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://openfontlicense.org + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/public/fonts/comic-sans-but-better/Noto_Color_Emoji/NotoColorEmoji-Regular.ttf b/public/fonts/comic-sans-but-better/Noto_Color_Emoji/NotoColorEmoji-Regular.ttf new file mode 100644 index 0000000..559002b Binary files /dev/null and b/public/fonts/comic-sans-but-better/Noto_Color_Emoji/NotoColorEmoji-Regular.ttf differ diff --git a/public/fonts/comic-sans-but-better/Noto_Color_Emoji/OFL.txt b/public/fonts/comic-sans-but-better/Noto_Color_Emoji/OFL.txt new file mode 100644 index 0000000..979c943 --- /dev/null +++ b/public/fonts/comic-sans-but-better/Noto_Color_Emoji/OFL.txt @@ -0,0 +1,93 @@ +Copyright 2021 Google Inc. All Rights Reserved. + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://openfontlicense.org + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/public/fonts/comic-sans-but-better/Noto_Emoji/NotoEmoji-VariableFont_wght.ttf b/public/fonts/comic-sans-but-better/Noto_Emoji/NotoEmoji-VariableFont_wght.ttf new file mode 100644 index 0000000..0731d6a Binary files /dev/null and b/public/fonts/comic-sans-but-better/Noto_Emoji/NotoEmoji-VariableFont_wght.ttf differ diff --git a/public/fonts/comic-sans-but-better/Noto_Emoji/OFL.txt b/public/fonts/comic-sans-but-better/Noto_Emoji/OFL.txt new file mode 100644 index 0000000..0f08295 --- /dev/null +++ b/public/fonts/comic-sans-but-better/Noto_Emoji/OFL.txt @@ -0,0 +1,93 @@ +Copyright 2013 Google LLC + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://openfontlicense.org + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/public/fonts/comic-sans-but-better/Noto_Emoji/README.txt b/public/fonts/comic-sans-but-better/Noto_Emoji/README.txt new file mode 100644 index 0000000..0190d84 --- /dev/null +++ b/public/fonts/comic-sans-but-better/Noto_Emoji/README.txt @@ -0,0 +1,67 @@ +Noto Emoji Variable Font +======================== + +This download contains Noto Emoji as both a variable font and static fonts. + +Noto Emoji is a variable font with this axis: + wght + +This means all the styles are contained in a single file: + NotoEmoji-VariableFont_wght.ttf + +If your app fully supports variable fonts, you can now pick intermediate styles +that aren’t available as static fonts. Not all apps support variable fonts, and +in those cases you can use the static font files for Noto Emoji: + static/NotoEmoji-Light.ttf + static/NotoEmoji-Regular.ttf + static/NotoEmoji-Medium.ttf + static/NotoEmoji-SemiBold.ttf + static/NotoEmoji-Bold.ttf + +Get started +----------- + +1. Install the font files you want to use + +2. Use your app's font picker to view the font family and all the +available styles + +Learn more about variable fonts +------------------------------- + + https://developers.google.com/web/fundamentals/design-and-ux/typography/variable-fonts + https://variablefonts.typenetwork.com + https://medium.com/variable-fonts + +In desktop apps + + https://theblog.adobe.com/can-variable-fonts-illustrator-cc + https://helpx.adobe.com/nz/photoshop/using/fonts.html#variable_fonts + +Online + + https://developers.google.com/fonts/docs/getting_started + https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Fonts/Variable_Fonts_Guide + https://developer.microsoft.com/en-us/microsoft-edge/testdrive/demos/variable-fonts + +Installing fonts + + MacOS: https://support.apple.com/en-us/HT201749 + Linux: https://www.google.com/search?q=how+to+install+a+font+on+gnu%2Blinux + Windows: https://support.microsoft.com/en-us/help/314960/how-to-install-or-remove-a-font-in-windows + +Android Apps + + https://developers.google.com/fonts/docs/android + https://developer.android.com/guide/topics/ui/look-and-feel/downloadable-fonts + +License +------- +Please read the full license text (OFL.txt) to understand the permissions, +restrictions and requirements for usage, redistribution, and modification. + +You can use them in your products & projects – print or digital, +commercial or otherwise. + +This isn't legal advice, please consider consulting a lawyer and see the full +license for all details. diff --git a/public/fonts/comic-sans-but-better/Noto_Emoji/static/NotoEmoji-Bold.ttf b/public/fonts/comic-sans-but-better/Noto_Emoji/static/NotoEmoji-Bold.ttf new file mode 100644 index 0000000..bd4224b Binary files /dev/null and b/public/fonts/comic-sans-but-better/Noto_Emoji/static/NotoEmoji-Bold.ttf differ diff --git a/public/fonts/comic-sans-but-better/Noto_Emoji/static/NotoEmoji-Light.ttf b/public/fonts/comic-sans-but-better/Noto_Emoji/static/NotoEmoji-Light.ttf new file mode 100644 index 0000000..c47b3e0 Binary files /dev/null and b/public/fonts/comic-sans-but-better/Noto_Emoji/static/NotoEmoji-Light.ttf differ diff --git a/public/fonts/comic-sans-but-better/Noto_Emoji/static/NotoEmoji-Medium.ttf b/public/fonts/comic-sans-but-better/Noto_Emoji/static/NotoEmoji-Medium.ttf new file mode 100644 index 0000000..7f2463b Binary files /dev/null and b/public/fonts/comic-sans-but-better/Noto_Emoji/static/NotoEmoji-Medium.ttf differ diff --git a/public/fonts/comic-sans-but-better/Noto_Emoji/static/NotoEmoji-Regular.ttf b/public/fonts/comic-sans-but-better/Noto_Emoji/static/NotoEmoji-Regular.ttf new file mode 100644 index 0000000..5c902c0 Binary files /dev/null and b/public/fonts/comic-sans-but-better/Noto_Emoji/static/NotoEmoji-Regular.ttf differ diff --git a/public/fonts/comic-sans-but-better/Noto_Emoji/static/NotoEmoji-SemiBold.ttf b/public/fonts/comic-sans-but-better/Noto_Emoji/static/NotoEmoji-SemiBold.ttf new file mode 100644 index 0000000..569e91a Binary files /dev/null and b/public/fonts/comic-sans-but-better/Noto_Emoji/static/NotoEmoji-SemiBold.ttf differ diff --git a/public/fonts/comic-sans-but-better/Rock_Salt/LICENSE.txt b/public/fonts/comic-sans-but-better/Rock_Salt/LICENSE.txt new file mode 100644 index 0000000..75b5248 --- /dev/null +++ b/public/fonts/comic-sans-but-better/Rock_Salt/LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/public/fonts/comic-sans-but-better/Rock_Salt/RockSalt-Regular.ttf b/public/fonts/comic-sans-but-better/Rock_Salt/RockSalt-Regular.ttf new file mode 100644 index 0000000..0f72fe6 Binary files /dev/null and b/public/fonts/comic-sans-but-better/Rock_Salt/RockSalt-Regular.ttf differ diff --git a/public/fonts/comic-sans-but-better/Sofadi_One/OFL.txt b/public/fonts/comic-sans-but-better/Sofadi_One/OFL.txt new file mode 100644 index 0000000..09ecf80 --- /dev/null +++ b/public/fonts/comic-sans-but-better/Sofadi_One/OFL.txt @@ -0,0 +1,93 @@ +Copyright (c) 2011 by Botjo Nikoltchev, with Reserved Font Name 'Sofadi' + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://openfontlicense.org + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/public/fonts/comic-sans-but-better/Sofadi_One/SofadiOne-Regular.ttf b/public/fonts/comic-sans-but-better/Sofadi_One/SofadiOne-Regular.ttf new file mode 100644 index 0000000..62b9ee9 Binary files /dev/null and b/public/fonts/comic-sans-but-better/Sofadi_One/SofadiOne-Regular.ttf differ diff --git a/public/fonts/comic-sans-but-better/Zilla_Slab_Highlight/OFL.txt b/public/fonts/comic-sans-but-better/Zilla_Slab_Highlight/OFL.txt new file mode 100644 index 0000000..1473ff9 --- /dev/null +++ b/public/fonts/comic-sans-but-better/Zilla_Slab_Highlight/OFL.txt @@ -0,0 +1,93 @@ +Copyright 2017, The Mozilla Foundation + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://openfontlicense.org + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/public/fonts/comic-sans-but-better/Zilla_Slab_Highlight/ZillaSlabHighlight-Bold.ttf b/public/fonts/comic-sans-but-better/Zilla_Slab_Highlight/ZillaSlabHighlight-Bold.ttf new file mode 100644 index 0000000..553288f Binary files /dev/null and b/public/fonts/comic-sans-but-better/Zilla_Slab_Highlight/ZillaSlabHighlight-Bold.ttf differ diff --git a/public/fonts/comic-sans-but-better/Zilla_Slab_Highlight/ZillaSlabHighlight-Regular.ttf b/public/fonts/comic-sans-but-better/Zilla_Slab_Highlight/ZillaSlabHighlight-Regular.ttf new file mode 100644 index 0000000..9d88eec Binary files /dev/null and b/public/fonts/comic-sans-but-better/Zilla_Slab_Highlight/ZillaSlabHighlight-Regular.ttf differ diff --git a/public/fonts/serious/Inconsolata/Inconsolata-VariableFont_wdth,wght.ttf b/public/fonts/serious/Inconsolata/Inconsolata-VariableFont_wdth,wght.ttf new file mode 100644 index 0000000..95ad718 Binary files /dev/null and b/public/fonts/serious/Inconsolata/Inconsolata-VariableFont_wdth,wght.ttf differ diff --git a/public/fonts/serious/Inconsolata/OFL.txt b/public/fonts/serious/Inconsolata/OFL.txt new file mode 100644 index 0000000..55533e1 --- /dev/null +++ b/public/fonts/serious/Inconsolata/OFL.txt @@ -0,0 +1,93 @@ +Copyright 2006 The Inconsolata Project Authors + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://openfontlicense.org + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/public/fonts/serious/Inconsolata/README.txt b/public/fonts/serious/Inconsolata/README.txt new file mode 100644 index 0000000..e7b3728 --- /dev/null +++ b/public/fonts/serious/Inconsolata/README.txt @@ -0,0 +1,135 @@ +Inconsolata Variable Font +========================= + +This download contains Inconsolata as both a variable font and static fonts. + +Inconsolata is a variable font with these axes: + wdth + wght + +This means all the styles are contained in a single file: + Inconsolata-VariableFont_wdth,wght.ttf + +If your app fully supports variable fonts, you can now pick intermediate styles +that aren’t available as static fonts. Not all apps support variable fonts, and +in those cases you can use the static font files for Inconsolata: + static/Inconsolata_UltraCondensed-ExtraLight.ttf + static/Inconsolata_UltraCondensed-Light.ttf + static/Inconsolata_UltraCondensed-Regular.ttf + static/Inconsolata_UltraCondensed-Medium.ttf + static/Inconsolata_UltraCondensed-SemiBold.ttf + static/Inconsolata_UltraCondensed-Bold.ttf + static/Inconsolata_UltraCondensed-ExtraBold.ttf + static/Inconsolata_UltraCondensed-Black.ttf + static/Inconsolata_ExtraCondensed-ExtraLight.ttf + static/Inconsolata_ExtraCondensed-Light.ttf + static/Inconsolata_ExtraCondensed-Regular.ttf + static/Inconsolata_ExtraCondensed-Medium.ttf + static/Inconsolata_ExtraCondensed-SemiBold.ttf + static/Inconsolata_ExtraCondensed-Bold.ttf + static/Inconsolata_ExtraCondensed-ExtraBold.ttf + static/Inconsolata_ExtraCondensed-Black.ttf + static/Inconsolata_Condensed-ExtraLight.ttf + static/Inconsolata_Condensed-Light.ttf + static/Inconsolata_Condensed-Regular.ttf + static/Inconsolata_Condensed-Medium.ttf + static/Inconsolata_Condensed-SemiBold.ttf + static/Inconsolata_Condensed-Bold.ttf + static/Inconsolata_Condensed-ExtraBold.ttf + static/Inconsolata_Condensed-Black.ttf + static/Inconsolata_SemiCondensed-ExtraLight.ttf + static/Inconsolata_SemiCondensed-Light.ttf + static/Inconsolata_SemiCondensed-Regular.ttf + static/Inconsolata_SemiCondensed-Medium.ttf + static/Inconsolata_SemiCondensed-SemiBold.ttf + static/Inconsolata_SemiCondensed-Bold.ttf + static/Inconsolata_SemiCondensed-ExtraBold.ttf + static/Inconsolata_SemiCondensed-Black.ttf + static/Inconsolata-ExtraLight.ttf + static/Inconsolata-Light.ttf + static/Inconsolata-Regular.ttf + static/Inconsolata-Medium.ttf + static/Inconsolata-SemiBold.ttf + static/Inconsolata-Bold.ttf + static/Inconsolata-ExtraBold.ttf + static/Inconsolata-Black.ttf + static/Inconsolata_SemiExpanded-ExtraLight.ttf + static/Inconsolata_SemiExpanded-Light.ttf + static/Inconsolata_SemiExpanded-Regular.ttf + static/Inconsolata_SemiExpanded-Medium.ttf + static/Inconsolata_SemiExpanded-SemiBold.ttf + static/Inconsolata_SemiExpanded-Bold.ttf + static/Inconsolata_SemiExpanded-ExtraBold.ttf + static/Inconsolata_SemiExpanded-Black.ttf + static/Inconsolata_Expanded-ExtraLight.ttf + static/Inconsolata_Expanded-Light.ttf + static/Inconsolata_Expanded-Regular.ttf + static/Inconsolata_Expanded-Medium.ttf + static/Inconsolata_Expanded-SemiBold.ttf + static/Inconsolata_Expanded-Bold.ttf + static/Inconsolata_Expanded-ExtraBold.ttf + static/Inconsolata_Expanded-Black.ttf + static/Inconsolata_ExtraExpanded-ExtraLight.ttf + static/Inconsolata_ExtraExpanded-Light.ttf + static/Inconsolata_ExtraExpanded-Regular.ttf + static/Inconsolata_ExtraExpanded-Medium.ttf + static/Inconsolata_ExtraExpanded-SemiBold.ttf + static/Inconsolata_ExtraExpanded-Bold.ttf + static/Inconsolata_ExtraExpanded-ExtraBold.ttf + static/Inconsolata_ExtraExpanded-Black.ttf + static/Inconsolata_UltraExpanded-ExtraLight.ttf + static/Inconsolata_UltraExpanded-Light.ttf + static/Inconsolata_UltraExpanded-Regular.ttf + static/Inconsolata_UltraExpanded-Medium.ttf + static/Inconsolata_UltraExpanded-SemiBold.ttf + static/Inconsolata_UltraExpanded-Bold.ttf + static/Inconsolata_UltraExpanded-ExtraBold.ttf + static/Inconsolata_UltraExpanded-Black.ttf + +Get started +----------- + +1. Install the font files you want to use + +2. Use your app's font picker to view the font family and all the +available styles + +Learn more about variable fonts +------------------------------- + + https://developers.google.com/web/fundamentals/design-and-ux/typography/variable-fonts + https://variablefonts.typenetwork.com + https://medium.com/variable-fonts + +In desktop apps + + https://theblog.adobe.com/can-variable-fonts-illustrator-cc + https://helpx.adobe.com/nz/photoshop/using/fonts.html#variable_fonts + +Online + + https://developers.google.com/fonts/docs/getting_started + https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Fonts/Variable_Fonts_Guide + https://developer.microsoft.com/en-us/microsoft-edge/testdrive/demos/variable-fonts + +Installing fonts + + MacOS: https://support.apple.com/en-us/HT201749 + Linux: https://www.google.com/search?q=how+to+install+a+font+on+gnu%2Blinux + Windows: https://support.microsoft.com/en-us/help/314960/how-to-install-or-remove-a-font-in-windows + +Android Apps + + https://developers.google.com/fonts/docs/android + https://developer.android.com/guide/topics/ui/look-and-feel/downloadable-fonts + +License +------- +Please read the full license text (OFL.txt) to understand the permissions, +restrictions and requirements for usage, redistribution, and modification. + +You can use them in your products & projects – print or digital, +commercial or otherwise. + +This isn't legal advice, please consider consulting a lawyer and see the full +license for all details. diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata-Black.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata-Black.ttf new file mode 100644 index 0000000..ab9c19b Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata-Black.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata-Bold.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata-Bold.ttf new file mode 100644 index 0000000..c83ecca Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata-Bold.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata-ExtraBold.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata-ExtraBold.ttf new file mode 100644 index 0000000..c1c1a2b Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata-ExtraBold.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata-ExtraLight.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata-ExtraLight.ttf new file mode 100644 index 0000000..37320d6 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata-ExtraLight.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata-Light.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata-Light.ttf new file mode 100644 index 0000000..36b47d6 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata-Light.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata-Medium.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata-Medium.ttf new file mode 100644 index 0000000..86ba05a Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata-Medium.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata-Regular.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata-Regular.ttf new file mode 100644 index 0000000..d124151 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata-Regular.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata-SemiBold.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata-SemiBold.ttf new file mode 100644 index 0000000..90e7dc5 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata-SemiBold.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_Condensed-Black.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_Condensed-Black.ttf new file mode 100644 index 0000000..64a8d75 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_Condensed-Black.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_Condensed-Bold.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_Condensed-Bold.ttf new file mode 100644 index 0000000..fb970ee Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_Condensed-Bold.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_Condensed-ExtraBold.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_Condensed-ExtraBold.ttf new file mode 100644 index 0000000..ab555b1 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_Condensed-ExtraBold.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_Condensed-ExtraLight.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_Condensed-ExtraLight.ttf new file mode 100644 index 0000000..eded44d Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_Condensed-ExtraLight.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_Condensed-Light.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_Condensed-Light.ttf new file mode 100644 index 0000000..e456116 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_Condensed-Light.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_Condensed-Medium.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_Condensed-Medium.ttf new file mode 100644 index 0000000..150c5ff Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_Condensed-Medium.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_Condensed-Regular.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_Condensed-Regular.ttf new file mode 100644 index 0000000..1384e4e Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_Condensed-Regular.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_Condensed-SemiBold.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_Condensed-SemiBold.ttf new file mode 100644 index 0000000..72ae534 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_Condensed-SemiBold.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_Expanded-Black.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_Expanded-Black.ttf new file mode 100644 index 0000000..722cf80 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_Expanded-Black.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_Expanded-Bold.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_Expanded-Bold.ttf new file mode 100644 index 0000000..6355433 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_Expanded-Bold.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_Expanded-ExtraBold.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_Expanded-ExtraBold.ttf new file mode 100644 index 0000000..fade580 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_Expanded-ExtraBold.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_Expanded-ExtraLight.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_Expanded-ExtraLight.ttf new file mode 100644 index 0000000..3906a4d Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_Expanded-ExtraLight.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_Expanded-Light.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_Expanded-Light.ttf new file mode 100644 index 0000000..2695e27 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_Expanded-Light.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_Expanded-Medium.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_Expanded-Medium.ttf new file mode 100644 index 0000000..0aa1949 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_Expanded-Medium.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_Expanded-Regular.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_Expanded-Regular.ttf new file mode 100644 index 0000000..3473123 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_Expanded-Regular.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_Expanded-SemiBold.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_Expanded-SemiBold.ttf new file mode 100644 index 0000000..1ad00cd Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_Expanded-SemiBold.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraCondensed-Black.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraCondensed-Black.ttf new file mode 100644 index 0000000..fac2e5d Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraCondensed-Black.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraCondensed-Bold.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraCondensed-Bold.ttf new file mode 100644 index 0000000..1ad2873 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraCondensed-Bold.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraCondensed-ExtraBold.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraCondensed-ExtraBold.ttf new file mode 100644 index 0000000..4a2d1c4 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraCondensed-ExtraBold.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraCondensed-ExtraLight.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraCondensed-ExtraLight.ttf new file mode 100644 index 0000000..0fa0142 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraCondensed-ExtraLight.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraCondensed-Light.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraCondensed-Light.ttf new file mode 100644 index 0000000..df42dc5 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraCondensed-Light.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraCondensed-Medium.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraCondensed-Medium.ttf new file mode 100644 index 0000000..e79c127 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraCondensed-Medium.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraCondensed-Regular.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraCondensed-Regular.ttf new file mode 100644 index 0000000..27de663 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraCondensed-Regular.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraCondensed-SemiBold.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraCondensed-SemiBold.ttf new file mode 100644 index 0000000..4fd6d6c Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraCondensed-SemiBold.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraExpanded-Black.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraExpanded-Black.ttf new file mode 100644 index 0000000..af80b1a Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraExpanded-Black.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraExpanded-Bold.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraExpanded-Bold.ttf new file mode 100644 index 0000000..36f58e8 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraExpanded-Bold.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraExpanded-ExtraBold.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraExpanded-ExtraBold.ttf new file mode 100644 index 0000000..7c72667 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraExpanded-ExtraBold.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraExpanded-ExtraLight.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraExpanded-ExtraLight.ttf new file mode 100644 index 0000000..eb57f53 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraExpanded-ExtraLight.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraExpanded-Light.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraExpanded-Light.ttf new file mode 100644 index 0000000..fe45a9d Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraExpanded-Light.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraExpanded-Medium.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraExpanded-Medium.ttf new file mode 100644 index 0000000..be733be Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraExpanded-Medium.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraExpanded-Regular.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraExpanded-Regular.ttf new file mode 100644 index 0000000..d5b6c77 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraExpanded-Regular.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraExpanded-SemiBold.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraExpanded-SemiBold.ttf new file mode 100644 index 0000000..915f4ef Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_ExtraExpanded-SemiBold.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_SemiCondensed-Black.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_SemiCondensed-Black.ttf new file mode 100644 index 0000000..4132ca5 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_SemiCondensed-Black.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_SemiCondensed-Bold.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_SemiCondensed-Bold.ttf new file mode 100644 index 0000000..a0d4881 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_SemiCondensed-Bold.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_SemiCondensed-ExtraBold.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_SemiCondensed-ExtraBold.ttf new file mode 100644 index 0000000..1d84427 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_SemiCondensed-ExtraBold.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_SemiCondensed-ExtraLight.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_SemiCondensed-ExtraLight.ttf new file mode 100644 index 0000000..a806219 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_SemiCondensed-ExtraLight.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_SemiCondensed-Light.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_SemiCondensed-Light.ttf new file mode 100644 index 0000000..2c7b765 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_SemiCondensed-Light.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_SemiCondensed-Medium.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_SemiCondensed-Medium.ttf new file mode 100644 index 0000000..22c949f Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_SemiCondensed-Medium.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_SemiCondensed-Regular.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_SemiCondensed-Regular.ttf new file mode 100644 index 0000000..5d454b8 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_SemiCondensed-Regular.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_SemiCondensed-SemiBold.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_SemiCondensed-SemiBold.ttf new file mode 100644 index 0000000..2fb7a96 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_SemiCondensed-SemiBold.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_SemiExpanded-Black.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_SemiExpanded-Black.ttf new file mode 100644 index 0000000..a02e7f6 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_SemiExpanded-Black.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_SemiExpanded-Bold.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_SemiExpanded-Bold.ttf new file mode 100644 index 0000000..d9f3186 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_SemiExpanded-Bold.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_SemiExpanded-ExtraBold.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_SemiExpanded-ExtraBold.ttf new file mode 100644 index 0000000..dcdc236 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_SemiExpanded-ExtraBold.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_SemiExpanded-ExtraLight.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_SemiExpanded-ExtraLight.ttf new file mode 100644 index 0000000..41b1dd6 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_SemiExpanded-ExtraLight.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_SemiExpanded-Light.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_SemiExpanded-Light.ttf new file mode 100644 index 0000000..c88d8bb Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_SemiExpanded-Light.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_SemiExpanded-Medium.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_SemiExpanded-Medium.ttf new file mode 100644 index 0000000..dd0d0e2 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_SemiExpanded-Medium.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_SemiExpanded-Regular.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_SemiExpanded-Regular.ttf new file mode 100644 index 0000000..5b2ada5 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_SemiExpanded-Regular.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_SemiExpanded-SemiBold.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_SemiExpanded-SemiBold.ttf new file mode 100644 index 0000000..6e6a60b Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_SemiExpanded-SemiBold.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_UltraCondensed-Black.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_UltraCondensed-Black.ttf new file mode 100644 index 0000000..a759991 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_UltraCondensed-Black.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_UltraCondensed-Bold.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_UltraCondensed-Bold.ttf new file mode 100644 index 0000000..3872e85 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_UltraCondensed-Bold.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_UltraCondensed-ExtraBold.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_UltraCondensed-ExtraBold.ttf new file mode 100644 index 0000000..98805f4 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_UltraCondensed-ExtraBold.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_UltraCondensed-ExtraLight.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_UltraCondensed-ExtraLight.ttf new file mode 100644 index 0000000..dddd2c9 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_UltraCondensed-ExtraLight.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_UltraCondensed-Light.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_UltraCondensed-Light.ttf new file mode 100644 index 0000000..93a1e6d Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_UltraCondensed-Light.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_UltraCondensed-Medium.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_UltraCondensed-Medium.ttf new file mode 100644 index 0000000..1f00def Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_UltraCondensed-Medium.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_UltraCondensed-Regular.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_UltraCondensed-Regular.ttf new file mode 100644 index 0000000..a4d9bb3 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_UltraCondensed-Regular.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_UltraCondensed-SemiBold.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_UltraCondensed-SemiBold.ttf new file mode 100644 index 0000000..1390ba8 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_UltraCondensed-SemiBold.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_UltraExpanded-Black.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_UltraExpanded-Black.ttf new file mode 100644 index 0000000..4044cdc Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_UltraExpanded-Black.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_UltraExpanded-Bold.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_UltraExpanded-Bold.ttf new file mode 100644 index 0000000..df92f9d Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_UltraExpanded-Bold.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_UltraExpanded-ExtraBold.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_UltraExpanded-ExtraBold.ttf new file mode 100644 index 0000000..22d0d60 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_UltraExpanded-ExtraBold.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_UltraExpanded-ExtraLight.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_UltraExpanded-ExtraLight.ttf new file mode 100644 index 0000000..388a167 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_UltraExpanded-ExtraLight.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_UltraExpanded-Light.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_UltraExpanded-Light.ttf new file mode 100644 index 0000000..4a95cc1 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_UltraExpanded-Light.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_UltraExpanded-Medium.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_UltraExpanded-Medium.ttf new file mode 100644 index 0000000..cba5137 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_UltraExpanded-Medium.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_UltraExpanded-Regular.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_UltraExpanded-Regular.ttf new file mode 100644 index 0000000..a261b9e Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_UltraExpanded-Regular.ttf differ diff --git a/public/fonts/serious/Inconsolata/static/Inconsolata_UltraExpanded-SemiBold.ttf b/public/fonts/serious/Inconsolata/static/Inconsolata_UltraExpanded-SemiBold.ttf new file mode 100644 index 0000000..c122aa5 Binary files /dev/null and b/public/fonts/serious/Inconsolata/static/Inconsolata_UltraExpanded-SemiBold.ttf differ diff --git a/public/fonts/serious/Merriweather/Merriweather-Black.ttf b/public/fonts/serious/Merriweather/Merriweather-Black.ttf new file mode 100644 index 0000000..50c3b33 Binary files /dev/null and b/public/fonts/serious/Merriweather/Merriweather-Black.ttf differ diff --git a/public/fonts/serious/Merriweather/Merriweather-BlackItalic.ttf b/public/fonts/serious/Merriweather/Merriweather-BlackItalic.ttf new file mode 100644 index 0000000..4879aba Binary files /dev/null and b/public/fonts/serious/Merriweather/Merriweather-BlackItalic.ttf differ diff --git a/public/fonts/serious/Merriweather/Merriweather-Bold.ttf b/public/fonts/serious/Merriweather/Merriweather-Bold.ttf new file mode 100644 index 0000000..3e10e02 Binary files /dev/null and b/public/fonts/serious/Merriweather/Merriweather-Bold.ttf differ diff --git a/public/fonts/serious/Merriweather/Merriweather-BoldItalic.ttf b/public/fonts/serious/Merriweather/Merriweather-BoldItalic.ttf new file mode 100644 index 0000000..5b9d0ec Binary files /dev/null and b/public/fonts/serious/Merriweather/Merriweather-BoldItalic.ttf differ diff --git a/public/fonts/serious/Merriweather/Merriweather-Italic.ttf b/public/fonts/serious/Merriweather/Merriweather-Italic.ttf new file mode 100644 index 0000000..8e9d03d Binary files /dev/null and b/public/fonts/serious/Merriweather/Merriweather-Italic.ttf differ diff --git a/public/fonts/serious/Merriweather/Merriweather-Light.ttf b/public/fonts/serious/Merriweather/Merriweather-Light.ttf new file mode 100644 index 0000000..034ef03 Binary files /dev/null and b/public/fonts/serious/Merriweather/Merriweather-Light.ttf differ diff --git a/public/fonts/serious/Merriweather/Merriweather-LightItalic.ttf b/public/fonts/serious/Merriweather/Merriweather-LightItalic.ttf new file mode 100644 index 0000000..4d19550 Binary files /dev/null and b/public/fonts/serious/Merriweather/Merriweather-LightItalic.ttf differ diff --git a/public/fonts/serious/Merriweather/Merriweather-Regular.ttf b/public/fonts/serious/Merriweather/Merriweather-Regular.ttf new file mode 100644 index 0000000..3fecc77 Binary files /dev/null and b/public/fonts/serious/Merriweather/Merriweather-Regular.ttf differ diff --git a/public/fonts/serious/Merriweather/OFL.txt b/public/fonts/serious/Merriweather/OFL.txt new file mode 100644 index 0000000..03dd415 --- /dev/null +++ b/public/fonts/serious/Merriweather/OFL.txt @@ -0,0 +1,93 @@ +Copyright 2016 The Merriweather Project Authors (https://github.com/EbenSorkin/Merriweather), with Reserved Font Name "Merriweather". + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://openfontlicense.org + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/public/fonts/serious/Noto_Sans/NotoSans-Italic-VariableFont_wdth,wght.ttf b/public/fonts/serious/Noto_Sans/NotoSans-Italic-VariableFont_wdth,wght.ttf new file mode 100644 index 0000000..4e962ee Binary files /dev/null and b/public/fonts/serious/Noto_Sans/NotoSans-Italic-VariableFont_wdth,wght.ttf differ diff --git a/public/fonts/serious/Noto_Sans/NotoSans-VariableFont_wdth,wght.ttf b/public/fonts/serious/Noto_Sans/NotoSans-VariableFont_wdth,wght.ttf new file mode 100644 index 0000000..f7d0d78 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/NotoSans-VariableFont_wdth,wght.ttf differ diff --git a/public/fonts/serious/Noto_Sans/OFL.txt b/public/fonts/serious/Noto_Sans/OFL.txt new file mode 100644 index 0000000..09f020b --- /dev/null +++ b/public/fonts/serious/Noto_Sans/OFL.txt @@ -0,0 +1,93 @@ +Copyright 2022 The Noto Project Authors (https://github.com/notofonts/latin-greek-cyrillic) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://openfontlicense.org + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/public/fonts/serious/Noto_Sans/README.txt b/public/fonts/serious/Noto_Sans/README.txt new file mode 100644 index 0000000..4958bee --- /dev/null +++ b/public/fonts/serious/Noto_Sans/README.txt @@ -0,0 +1,136 @@ +Noto Sans Variable Font +======================= + +This download contains Noto Sans as both variable fonts and static fonts. + +Noto Sans is a variable font with these axes: + wdth + wght + +This means all the styles are contained in these files: + NotoSans-VariableFont_wdth,wght.ttf + NotoSans-Italic-VariableFont_wdth,wght.ttf + +If your app fully supports variable fonts, you can now pick intermediate styles +that aren’t available as static fonts. Not all apps support variable fonts, and +in those cases you can use the static font files for Noto Sans: + static/NotoSans_ExtraCondensed-Thin.ttf + static/NotoSans_ExtraCondensed-ExtraLight.ttf + static/NotoSans_ExtraCondensed-Light.ttf + static/NotoSans_ExtraCondensed-Regular.ttf + static/NotoSans_ExtraCondensed-Medium.ttf + static/NotoSans_ExtraCondensed-SemiBold.ttf + static/NotoSans_ExtraCondensed-Bold.ttf + static/NotoSans_ExtraCondensed-ExtraBold.ttf + static/NotoSans_ExtraCondensed-Black.ttf + static/NotoSans_Condensed-Thin.ttf + static/NotoSans_Condensed-ExtraLight.ttf + static/NotoSans_Condensed-Light.ttf + static/NotoSans_Condensed-Regular.ttf + static/NotoSans_Condensed-Medium.ttf + static/NotoSans_Condensed-SemiBold.ttf + static/NotoSans_Condensed-Bold.ttf + static/NotoSans_Condensed-ExtraBold.ttf + static/NotoSans_Condensed-Black.ttf + static/NotoSans_SemiCondensed-Thin.ttf + static/NotoSans_SemiCondensed-ExtraLight.ttf + static/NotoSans_SemiCondensed-Light.ttf + static/NotoSans_SemiCondensed-Regular.ttf + static/NotoSans_SemiCondensed-Medium.ttf + static/NotoSans_SemiCondensed-SemiBold.ttf + static/NotoSans_SemiCondensed-Bold.ttf + static/NotoSans_SemiCondensed-ExtraBold.ttf + static/NotoSans_SemiCondensed-Black.ttf + static/NotoSans-Thin.ttf + static/NotoSans-ExtraLight.ttf + static/NotoSans-Light.ttf + static/NotoSans-Regular.ttf + static/NotoSans-Medium.ttf + static/NotoSans-SemiBold.ttf + static/NotoSans-Bold.ttf + static/NotoSans-ExtraBold.ttf + static/NotoSans-Black.ttf + static/NotoSans_ExtraCondensed-ThinItalic.ttf + static/NotoSans_ExtraCondensed-ExtraLightItalic.ttf + static/NotoSans_ExtraCondensed-LightItalic.ttf + static/NotoSans_ExtraCondensed-Italic.ttf + static/NotoSans_ExtraCondensed-MediumItalic.ttf + static/NotoSans_ExtraCondensed-SemiBoldItalic.ttf + static/NotoSans_ExtraCondensed-BoldItalic.ttf + static/NotoSans_ExtraCondensed-ExtraBoldItalic.ttf + static/NotoSans_ExtraCondensed-BlackItalic.ttf + static/NotoSans_Condensed-ThinItalic.ttf + static/NotoSans_Condensed-ExtraLightItalic.ttf + static/NotoSans_Condensed-LightItalic.ttf + static/NotoSans_Condensed-Italic.ttf + static/NotoSans_Condensed-MediumItalic.ttf + static/NotoSans_Condensed-SemiBoldItalic.ttf + static/NotoSans_Condensed-BoldItalic.ttf + static/NotoSans_Condensed-ExtraBoldItalic.ttf + static/NotoSans_Condensed-BlackItalic.ttf + static/NotoSans_SemiCondensed-ThinItalic.ttf + static/NotoSans_SemiCondensed-ExtraLightItalic.ttf + static/NotoSans_SemiCondensed-LightItalic.ttf + static/NotoSans_SemiCondensed-Italic.ttf + static/NotoSans_SemiCondensed-MediumItalic.ttf + static/NotoSans_SemiCondensed-SemiBoldItalic.ttf + static/NotoSans_SemiCondensed-BoldItalic.ttf + static/NotoSans_SemiCondensed-ExtraBoldItalic.ttf + static/NotoSans_SemiCondensed-BlackItalic.ttf + static/NotoSans-ThinItalic.ttf + static/NotoSans-ExtraLightItalic.ttf + static/NotoSans-LightItalic.ttf + static/NotoSans-Italic.ttf + static/NotoSans-MediumItalic.ttf + static/NotoSans-SemiBoldItalic.ttf + static/NotoSans-BoldItalic.ttf + static/NotoSans-ExtraBoldItalic.ttf + static/NotoSans-BlackItalic.ttf + +Get started +----------- + +1. Install the font files you want to use + +2. Use your app's font picker to view the font family and all the +available styles + +Learn more about variable fonts +------------------------------- + + https://developers.google.com/web/fundamentals/design-and-ux/typography/variable-fonts + https://variablefonts.typenetwork.com + https://medium.com/variable-fonts + +In desktop apps + + https://theblog.adobe.com/can-variable-fonts-illustrator-cc + https://helpx.adobe.com/nz/photoshop/using/fonts.html#variable_fonts + +Online + + https://developers.google.com/fonts/docs/getting_started + https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Fonts/Variable_Fonts_Guide + https://developer.microsoft.com/en-us/microsoft-edge/testdrive/demos/variable-fonts + +Installing fonts + + MacOS: https://support.apple.com/en-us/HT201749 + Linux: https://www.google.com/search?q=how+to+install+a+font+on+gnu%2Blinux + Windows: https://support.microsoft.com/en-us/help/314960/how-to-install-or-remove-a-font-in-windows + +Android Apps + + https://developers.google.com/fonts/docs/android + https://developer.android.com/guide/topics/ui/look-and-feel/downloadable-fonts + +License +------- +Please read the full license text (OFL.txt) to understand the permissions, +restrictions and requirements for usage, redistribution, and modification. + +You can use them in your products & projects – print or digital, +commercial or otherwise. + +This isn't legal advice, please consider consulting a lawyer and see the full +license for all details. diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans-Black.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans-Black.ttf new file mode 100644 index 0000000..e52bac2 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans-Black.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans-BlackItalic.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans-BlackItalic.ttf new file mode 100644 index 0000000..8a430ec Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans-BlackItalic.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans-Bold.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans-Bold.ttf new file mode 100644 index 0000000..d84248e Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans-Bold.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans-BoldItalic.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans-BoldItalic.ttf new file mode 100644 index 0000000..3a34c4c Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans-BoldItalic.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans-ExtraBold.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans-ExtraBold.ttf new file mode 100644 index 0000000..b416f0b Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans-ExtraBold.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans-ExtraBoldItalic.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans-ExtraBoldItalic.ttf new file mode 100644 index 0000000..181846f Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans-ExtraBoldItalic.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans-ExtraLight.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans-ExtraLight.ttf new file mode 100644 index 0000000..81f0958 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans-ExtraLight.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans-ExtraLightItalic.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans-ExtraLightItalic.ttf new file mode 100644 index 0000000..0d7c13a Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans-ExtraLightItalic.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans-Italic.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans-Italic.ttf new file mode 100644 index 0000000..c40c356 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans-Italic.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans-Light.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans-Light.ttf new file mode 100644 index 0000000..f7a67d7 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans-Light.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans-LightItalic.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans-LightItalic.ttf new file mode 100644 index 0000000..d51fb25 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans-LightItalic.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans-Medium.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans-Medium.ttf new file mode 100644 index 0000000..a799b74 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans-Medium.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans-MediumItalic.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans-MediumItalic.ttf new file mode 100644 index 0000000..2ccbc5b Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans-MediumItalic.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans-Regular.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans-Regular.ttf new file mode 100644 index 0000000..fa4cff5 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans-Regular.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans-SemiBold.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans-SemiBold.ttf new file mode 100644 index 0000000..d3ed423 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans-SemiBold.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans-SemiBoldItalic.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans-SemiBoldItalic.ttf new file mode 100644 index 0000000..c83e750 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans-SemiBoldItalic.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans-Thin.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans-Thin.ttf new file mode 100644 index 0000000..1459e79 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans-Thin.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans-ThinItalic.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans-ThinItalic.ttf new file mode 100644 index 0000000..14deac8 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans-ThinItalic.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-Black.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-Black.ttf new file mode 100644 index 0000000..0e1f611 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-Black.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-BlackItalic.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-BlackItalic.ttf new file mode 100644 index 0000000..99f7a21 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-BlackItalic.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-Bold.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-Bold.ttf new file mode 100644 index 0000000..71e7396 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-Bold.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-BoldItalic.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-BoldItalic.ttf new file mode 100644 index 0000000..e948404 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-BoldItalic.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-ExtraBold.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-ExtraBold.ttf new file mode 100644 index 0000000..38520d9 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-ExtraBold.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-ExtraBoldItalic.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-ExtraBoldItalic.ttf new file mode 100644 index 0000000..e4421af Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-ExtraBoldItalic.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-ExtraLight.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-ExtraLight.ttf new file mode 100644 index 0000000..f47e49e Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-ExtraLight.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-ExtraLightItalic.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-ExtraLightItalic.ttf new file mode 100644 index 0000000..f13c880 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-ExtraLightItalic.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-Italic.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-Italic.ttf new file mode 100644 index 0000000..8e5c0f7 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-Italic.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-Light.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-Light.ttf new file mode 100644 index 0000000..0b5c4f6 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-Light.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-LightItalic.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-LightItalic.ttf new file mode 100644 index 0000000..a88fe4d Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-LightItalic.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-Medium.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-Medium.ttf new file mode 100644 index 0000000..582b88a Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-Medium.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-MediumItalic.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-MediumItalic.ttf new file mode 100644 index 0000000..a882179 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-MediumItalic.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-Regular.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-Regular.ttf new file mode 100644 index 0000000..78cc2f5 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-Regular.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-SemiBold.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-SemiBold.ttf new file mode 100644 index 0000000..f724bf7 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-SemiBold.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-SemiBoldItalic.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-SemiBoldItalic.ttf new file mode 100644 index 0000000..c7b50d2 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-SemiBoldItalic.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-Thin.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-Thin.ttf new file mode 100644 index 0000000..fb47447 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-Thin.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-ThinItalic.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-ThinItalic.ttf new file mode 100644 index 0000000..0fcffa5 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_Condensed-ThinItalic.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-Black.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-Black.ttf new file mode 100644 index 0000000..32a8793 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-Black.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-BlackItalic.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-BlackItalic.ttf new file mode 100644 index 0000000..d3769cc Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-BlackItalic.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-Bold.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-Bold.ttf new file mode 100644 index 0000000..32d50e7 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-Bold.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-BoldItalic.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-BoldItalic.ttf new file mode 100644 index 0000000..92599d2 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-BoldItalic.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-ExtraBold.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-ExtraBold.ttf new file mode 100644 index 0000000..07e8a8c Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-ExtraBold.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-ExtraBoldItalic.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-ExtraBoldItalic.ttf new file mode 100644 index 0000000..b4fd5de Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-ExtraBoldItalic.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-ExtraLight.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-ExtraLight.ttf new file mode 100644 index 0000000..7bd15ad Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-ExtraLight.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-ExtraLightItalic.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-ExtraLightItalic.ttf new file mode 100644 index 0000000..8d7dac1 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-ExtraLightItalic.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-Italic.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-Italic.ttf new file mode 100644 index 0000000..e264b8b Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-Italic.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-Light.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-Light.ttf new file mode 100644 index 0000000..5e960da Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-Light.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-LightItalic.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-LightItalic.ttf new file mode 100644 index 0000000..ca4f813 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-LightItalic.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-Medium.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-Medium.ttf new file mode 100644 index 0000000..3be216e Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-Medium.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-MediumItalic.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-MediumItalic.ttf new file mode 100644 index 0000000..a022777 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-MediumItalic.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-Regular.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-Regular.ttf new file mode 100644 index 0000000..e805601 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-Regular.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-SemiBold.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-SemiBold.ttf new file mode 100644 index 0000000..930d29e Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-SemiBold.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-SemiBoldItalic.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-SemiBoldItalic.ttf new file mode 100644 index 0000000..1f9d8d4 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-SemiBoldItalic.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-Thin.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-Thin.ttf new file mode 100644 index 0000000..f31235b Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-Thin.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-ThinItalic.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-ThinItalic.ttf new file mode 100644 index 0000000..b79d614 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_ExtraCondensed-ThinItalic.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-Black.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-Black.ttf new file mode 100644 index 0000000..215e6b5 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-Black.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-BlackItalic.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-BlackItalic.ttf new file mode 100644 index 0000000..a741345 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-BlackItalic.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-Bold.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-Bold.ttf new file mode 100644 index 0000000..1cad850 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-Bold.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-BoldItalic.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-BoldItalic.ttf new file mode 100644 index 0000000..aa925bb Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-BoldItalic.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-ExtraBold.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-ExtraBold.ttf new file mode 100644 index 0000000..369bcb2 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-ExtraBold.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-ExtraBoldItalic.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-ExtraBoldItalic.ttf new file mode 100644 index 0000000..0f029d2 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-ExtraBoldItalic.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-ExtraLight.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-ExtraLight.ttf new file mode 100644 index 0000000..5ddd589 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-ExtraLight.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-ExtraLightItalic.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-ExtraLightItalic.ttf new file mode 100644 index 0000000..777c9a0 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-ExtraLightItalic.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-Italic.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-Italic.ttf new file mode 100644 index 0000000..705a144 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-Italic.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-Light.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-Light.ttf new file mode 100644 index 0000000..a276aa4 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-Light.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-LightItalic.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-LightItalic.ttf new file mode 100644 index 0000000..da4ffea Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-LightItalic.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-Medium.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-Medium.ttf new file mode 100644 index 0000000..13774a4 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-Medium.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-MediumItalic.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-MediumItalic.ttf new file mode 100644 index 0000000..8188ae3 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-MediumItalic.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-Regular.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-Regular.ttf new file mode 100644 index 0000000..a2d0fd4 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-Regular.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-SemiBold.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-SemiBold.ttf new file mode 100644 index 0000000..edb0018 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-SemiBold.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-SemiBoldItalic.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-SemiBoldItalic.ttf new file mode 100644 index 0000000..bf96c72 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-SemiBoldItalic.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-Thin.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-Thin.ttf new file mode 100644 index 0000000..1591087 Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-Thin.ttf differ diff --git a/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-ThinItalic.ttf b/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-ThinItalic.ttf new file mode 100644 index 0000000..1f2cfae Binary files /dev/null and b/public/fonts/serious/Noto_Sans/static/NotoSans_SemiCondensed-ThinItalic.ttf differ diff --git a/public/fonts/serious/Noto_Serif/NotoSerif-Italic-VariableFont_wdth,wght.ttf b/public/fonts/serious/Noto_Serif/NotoSerif-Italic-VariableFont_wdth,wght.ttf new file mode 100644 index 0000000..f4bd437 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/NotoSerif-Italic-VariableFont_wdth,wght.ttf differ diff --git a/public/fonts/serious/Noto_Serif/NotoSerif-VariableFont_wdth,wght.ttf b/public/fonts/serious/Noto_Serif/NotoSerif-VariableFont_wdth,wght.ttf new file mode 100644 index 0000000..debad16 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/NotoSerif-VariableFont_wdth,wght.ttf differ diff --git a/public/fonts/serious/Noto_Serif/OFL.txt b/public/fonts/serious/Noto_Serif/OFL.txt new file mode 100644 index 0000000..09f020b --- /dev/null +++ b/public/fonts/serious/Noto_Serif/OFL.txt @@ -0,0 +1,93 @@ +Copyright 2022 The Noto Project Authors (https://github.com/notofonts/latin-greek-cyrillic) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://openfontlicense.org + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/public/fonts/serious/Noto_Serif/README.txt b/public/fonts/serious/Noto_Serif/README.txt new file mode 100644 index 0000000..859477b --- /dev/null +++ b/public/fonts/serious/Noto_Serif/README.txt @@ -0,0 +1,136 @@ +Noto Serif Variable Font +======================== + +This download contains Noto Serif as both variable fonts and static fonts. + +Noto Serif is a variable font with these axes: + wdth + wght + +This means all the styles are contained in these files: + NotoSerif-VariableFont_wdth,wght.ttf + NotoSerif-Italic-VariableFont_wdth,wght.ttf + +If your app fully supports variable fonts, you can now pick intermediate styles +that aren’t available as static fonts. Not all apps support variable fonts, and +in those cases you can use the static font files for Noto Serif: + static/NotoSerif_ExtraCondensed-Thin.ttf + static/NotoSerif_ExtraCondensed-ExtraLight.ttf + static/NotoSerif_ExtraCondensed-Light.ttf + static/NotoSerif_ExtraCondensed-Regular.ttf + static/NotoSerif_ExtraCondensed-Medium.ttf + static/NotoSerif_ExtraCondensed-SemiBold.ttf + static/NotoSerif_ExtraCondensed-Bold.ttf + static/NotoSerif_ExtraCondensed-ExtraBold.ttf + static/NotoSerif_ExtraCondensed-Black.ttf + static/NotoSerif_Condensed-Thin.ttf + static/NotoSerif_Condensed-ExtraLight.ttf + static/NotoSerif_Condensed-Light.ttf + static/NotoSerif_Condensed-Regular.ttf + static/NotoSerif_Condensed-Medium.ttf + static/NotoSerif_Condensed-SemiBold.ttf + static/NotoSerif_Condensed-Bold.ttf + static/NotoSerif_Condensed-ExtraBold.ttf + static/NotoSerif_Condensed-Black.ttf + static/NotoSerif_SemiCondensed-Thin.ttf + static/NotoSerif_SemiCondensed-ExtraLight.ttf + static/NotoSerif_SemiCondensed-Light.ttf + static/NotoSerif_SemiCondensed-Regular.ttf + static/NotoSerif_SemiCondensed-Medium.ttf + static/NotoSerif_SemiCondensed-SemiBold.ttf + static/NotoSerif_SemiCondensed-Bold.ttf + static/NotoSerif_SemiCondensed-ExtraBold.ttf + static/NotoSerif_SemiCondensed-Black.ttf + static/NotoSerif-Thin.ttf + static/NotoSerif-ExtraLight.ttf + static/NotoSerif-Light.ttf + static/NotoSerif-Regular.ttf + static/NotoSerif-Medium.ttf + static/NotoSerif-SemiBold.ttf + static/NotoSerif-Bold.ttf + static/NotoSerif-ExtraBold.ttf + static/NotoSerif-Black.ttf + static/NotoSerif_ExtraCondensed-ThinItalic.ttf + static/NotoSerif_ExtraCondensed-ExtraLightItalic.ttf + static/NotoSerif_ExtraCondensed-LightItalic.ttf + static/NotoSerif_ExtraCondensed-Italic.ttf + static/NotoSerif_ExtraCondensed-MediumItalic.ttf + static/NotoSerif_ExtraCondensed-SemiBoldItalic.ttf + static/NotoSerif_ExtraCondensed-BoldItalic.ttf + static/NotoSerif_ExtraCondensed-ExtraBoldItalic.ttf + static/NotoSerif_ExtraCondensed-BlackItalic.ttf + static/NotoSerif_Condensed-ThinItalic.ttf + static/NotoSerif_Condensed-ExtraLightItalic.ttf + static/NotoSerif_Condensed-LightItalic.ttf + static/NotoSerif_Condensed-Italic.ttf + static/NotoSerif_Condensed-MediumItalic.ttf + static/NotoSerif_Condensed-SemiBoldItalic.ttf + static/NotoSerif_Condensed-BoldItalic.ttf + static/NotoSerif_Condensed-ExtraBoldItalic.ttf + static/NotoSerif_Condensed-BlackItalic.ttf + static/NotoSerif_SemiCondensed-ThinItalic.ttf + static/NotoSerif_SemiCondensed-ExtraLightItalic.ttf + static/NotoSerif_SemiCondensed-LightItalic.ttf + static/NotoSerif_SemiCondensed-Italic.ttf + static/NotoSerif_SemiCondensed-MediumItalic.ttf + static/NotoSerif_SemiCondensed-SemiBoldItalic.ttf + static/NotoSerif_SemiCondensed-BoldItalic.ttf + static/NotoSerif_SemiCondensed-ExtraBoldItalic.ttf + static/NotoSerif_SemiCondensed-BlackItalic.ttf + static/NotoSerif-ThinItalic.ttf + static/NotoSerif-ExtraLightItalic.ttf + static/NotoSerif-LightItalic.ttf + static/NotoSerif-Italic.ttf + static/NotoSerif-MediumItalic.ttf + static/NotoSerif-SemiBoldItalic.ttf + static/NotoSerif-BoldItalic.ttf + static/NotoSerif-ExtraBoldItalic.ttf + static/NotoSerif-BlackItalic.ttf + +Get started +----------- + +1. Install the font files you want to use + +2. Use your app's font picker to view the font family and all the +available styles + +Learn more about variable fonts +------------------------------- + + https://developers.google.com/web/fundamentals/design-and-ux/typography/variable-fonts + https://variablefonts.typenetwork.com + https://medium.com/variable-fonts + +In desktop apps + + https://theblog.adobe.com/can-variable-fonts-illustrator-cc + https://helpx.adobe.com/nz/photoshop/using/fonts.html#variable_fonts + +Online + + https://developers.google.com/fonts/docs/getting_started + https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Fonts/Variable_Fonts_Guide + https://developer.microsoft.com/en-us/microsoft-edge/testdrive/demos/variable-fonts + +Installing fonts + + MacOS: https://support.apple.com/en-us/HT201749 + Linux: https://www.google.com/search?q=how+to+install+a+font+on+gnu%2Blinux + Windows: https://support.microsoft.com/en-us/help/314960/how-to-install-or-remove-a-font-in-windows + +Android Apps + + https://developers.google.com/fonts/docs/android + https://developer.android.com/guide/topics/ui/look-and-feel/downloadable-fonts + +License +------- +Please read the full license text (OFL.txt) to understand the permissions, +restrictions and requirements for usage, redistribution, and modification. + +You can use them in your products & projects – print or digital, +commercial or otherwise. + +This isn't legal advice, please consider consulting a lawyer and see the full +license for all details. diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif-Black.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif-Black.ttf new file mode 100644 index 0000000..da35026 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif-Black.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif-BlackItalic.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif-BlackItalic.ttf new file mode 100644 index 0000000..8d602c8 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif-BlackItalic.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif-Bold.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif-Bold.ttf new file mode 100644 index 0000000..aa21d44 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif-Bold.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif-BoldItalic.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif-BoldItalic.ttf new file mode 100644 index 0000000..5a38d83 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif-BoldItalic.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif-ExtraBold.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif-ExtraBold.ttf new file mode 100644 index 0000000..16de921 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif-ExtraBold.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif-ExtraBoldItalic.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif-ExtraBoldItalic.ttf new file mode 100644 index 0000000..1c98907 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif-ExtraBoldItalic.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif-ExtraLight.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif-ExtraLight.ttf new file mode 100644 index 0000000..bf52f5a Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif-ExtraLight.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif-ExtraLightItalic.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif-ExtraLightItalic.ttf new file mode 100644 index 0000000..2951bd7 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif-ExtraLightItalic.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif-Italic.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif-Italic.ttf new file mode 100644 index 0000000..786ecc7 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif-Italic.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif-Light.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif-Light.ttf new file mode 100644 index 0000000..c5bd954 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif-Light.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif-LightItalic.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif-LightItalic.ttf new file mode 100644 index 0000000..62d9a15 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif-LightItalic.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif-Medium.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif-Medium.ttf new file mode 100644 index 0000000..7a17707 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif-Medium.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif-MediumItalic.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif-MediumItalic.ttf new file mode 100644 index 0000000..3aa6bf4 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif-MediumItalic.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif-Regular.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif-Regular.ttf new file mode 100644 index 0000000..dc30297 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif-Regular.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif-SemiBold.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif-SemiBold.ttf new file mode 100644 index 0000000..9ece80a Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif-SemiBold.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif-SemiBoldItalic.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif-SemiBoldItalic.ttf new file mode 100644 index 0000000..c0f69e2 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif-SemiBoldItalic.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif-Thin.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif-Thin.ttf new file mode 100644 index 0000000..8071195 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif-Thin.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif-ThinItalic.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif-ThinItalic.ttf new file mode 100644 index 0000000..16a61f0 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif-ThinItalic.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-Black.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-Black.ttf new file mode 100644 index 0000000..bb89c81 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-Black.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-BlackItalic.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-BlackItalic.ttf new file mode 100644 index 0000000..8ac7efc Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-BlackItalic.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-Bold.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-Bold.ttf new file mode 100644 index 0000000..11d5d62 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-Bold.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-BoldItalic.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-BoldItalic.ttf new file mode 100644 index 0000000..8fc9d36 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-BoldItalic.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-ExtraBold.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-ExtraBold.ttf new file mode 100644 index 0000000..8a10d59 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-ExtraBold.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-ExtraBoldItalic.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-ExtraBoldItalic.ttf new file mode 100644 index 0000000..9b47a7d Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-ExtraBoldItalic.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-ExtraLight.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-ExtraLight.ttf new file mode 100644 index 0000000..4e40e94 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-ExtraLight.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-ExtraLightItalic.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-ExtraLightItalic.ttf new file mode 100644 index 0000000..e939a4f Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-ExtraLightItalic.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-Italic.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-Italic.ttf new file mode 100644 index 0000000..8808c43 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-Italic.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-Light.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-Light.ttf new file mode 100644 index 0000000..c9d9b18 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-Light.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-LightItalic.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-LightItalic.ttf new file mode 100644 index 0000000..12c7106 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-LightItalic.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-Medium.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-Medium.ttf new file mode 100644 index 0000000..5e01bbb Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-Medium.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-MediumItalic.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-MediumItalic.ttf new file mode 100644 index 0000000..7e14e33 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-MediumItalic.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-Regular.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-Regular.ttf new file mode 100644 index 0000000..44d602d Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-Regular.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-SemiBold.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-SemiBold.ttf new file mode 100644 index 0000000..99c03c1 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-SemiBold.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-SemiBoldItalic.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-SemiBoldItalic.ttf new file mode 100644 index 0000000..54c2baf Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-SemiBoldItalic.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-Thin.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-Thin.ttf new file mode 100644 index 0000000..1155090 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-Thin.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-ThinItalic.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-ThinItalic.ttf new file mode 100644 index 0000000..4f2c689 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_Condensed-ThinItalic.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-Black.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-Black.ttf new file mode 100644 index 0000000..76b3d51 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-Black.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-BlackItalic.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-BlackItalic.ttf new file mode 100644 index 0000000..3e98cd2 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-BlackItalic.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-Bold.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-Bold.ttf new file mode 100644 index 0000000..ee14375 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-Bold.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-BoldItalic.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-BoldItalic.ttf new file mode 100644 index 0000000..f31fd71 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-BoldItalic.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-ExtraBold.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-ExtraBold.ttf new file mode 100644 index 0000000..7fe0c27 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-ExtraBold.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-ExtraBoldItalic.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-ExtraBoldItalic.ttf new file mode 100644 index 0000000..1085d4a Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-ExtraBoldItalic.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-ExtraLight.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-ExtraLight.ttf new file mode 100644 index 0000000..5ddaa03 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-ExtraLight.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-ExtraLightItalic.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-ExtraLightItalic.ttf new file mode 100644 index 0000000..2b77a4a Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-ExtraLightItalic.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-Italic.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-Italic.ttf new file mode 100644 index 0000000..e630712 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-Italic.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-Light.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-Light.ttf new file mode 100644 index 0000000..594e18d Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-Light.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-LightItalic.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-LightItalic.ttf new file mode 100644 index 0000000..5658cfe Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-LightItalic.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-Medium.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-Medium.ttf new file mode 100644 index 0000000..c9a1408 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-Medium.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-MediumItalic.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-MediumItalic.ttf new file mode 100644 index 0000000..2195fa2 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-MediumItalic.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-Regular.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-Regular.ttf new file mode 100644 index 0000000..3dcf2a7 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-Regular.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-SemiBold.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-SemiBold.ttf new file mode 100644 index 0000000..4788ba3 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-SemiBold.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-SemiBoldItalic.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-SemiBoldItalic.ttf new file mode 100644 index 0000000..2bbee14 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-SemiBoldItalic.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-Thin.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-Thin.ttf new file mode 100644 index 0000000..527c718 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-Thin.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-ThinItalic.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-ThinItalic.ttf new file mode 100644 index 0000000..198352d Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_ExtraCondensed-ThinItalic.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-Black.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-Black.ttf new file mode 100644 index 0000000..9a5e289 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-Black.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-BlackItalic.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-BlackItalic.ttf new file mode 100644 index 0000000..55270cd Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-BlackItalic.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-Bold.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-Bold.ttf new file mode 100644 index 0000000..234241f Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-Bold.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-BoldItalic.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-BoldItalic.ttf new file mode 100644 index 0000000..8be5e67 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-BoldItalic.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-ExtraBold.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-ExtraBold.ttf new file mode 100644 index 0000000..f418d1a Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-ExtraBold.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-ExtraBoldItalic.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-ExtraBoldItalic.ttf new file mode 100644 index 0000000..f82e93b Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-ExtraBoldItalic.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-ExtraLight.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-ExtraLight.ttf new file mode 100644 index 0000000..5d9dae7 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-ExtraLight.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-ExtraLightItalic.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-ExtraLightItalic.ttf new file mode 100644 index 0000000..8907f21 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-ExtraLightItalic.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-Italic.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-Italic.ttf new file mode 100644 index 0000000..0e9f9b0 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-Italic.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-Light.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-Light.ttf new file mode 100644 index 0000000..d92007a Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-Light.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-LightItalic.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-LightItalic.ttf new file mode 100644 index 0000000..33832c1 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-LightItalic.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-Medium.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-Medium.ttf new file mode 100644 index 0000000..7bbda66 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-Medium.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-MediumItalic.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-MediumItalic.ttf new file mode 100644 index 0000000..2d71fc1 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-MediumItalic.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-Regular.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-Regular.ttf new file mode 100644 index 0000000..5375346 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-Regular.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-SemiBold.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-SemiBold.ttf new file mode 100644 index 0000000..05f1896 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-SemiBold.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-SemiBoldItalic.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-SemiBoldItalic.ttf new file mode 100644 index 0000000..1de1c36 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-SemiBoldItalic.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-Thin.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-Thin.ttf new file mode 100644 index 0000000..3e9709a Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-Thin.ttf differ diff --git a/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-ThinItalic.ttf b/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-ThinItalic.ttf new file mode 100644 index 0000000..bb6e772 Binary files /dev/null and b/public/fonts/serious/Noto_Serif/static/NotoSerif_SemiCondensed-ThinItalic.ttf differ diff --git a/public/fonts/serious/Playfair_Display/OFL.txt b/public/fonts/serious/Playfair_Display/OFL.txt new file mode 100644 index 0000000..3f1f22a --- /dev/null +++ b/public/fonts/serious/Playfair_Display/OFL.txt @@ -0,0 +1,93 @@ +Copyright 2017 The Playfair Display Project Authors (https://github.com/clauseggers/Playfair-Display), with Reserved Font Name "Playfair Display" + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://openfontlicense.org + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/public/fonts/serious/Playfair_Display/PlayfairDisplay-Italic-VariableFont_wght.ttf b/public/fonts/serious/Playfair_Display/PlayfairDisplay-Italic-VariableFont_wght.ttf new file mode 100644 index 0000000..0d7c497 Binary files /dev/null and b/public/fonts/serious/Playfair_Display/PlayfairDisplay-Italic-VariableFont_wght.ttf differ diff --git a/public/fonts/serious/Playfair_Display/PlayfairDisplay-VariableFont_wght.ttf b/public/fonts/serious/Playfair_Display/PlayfairDisplay-VariableFont_wght.ttf new file mode 100644 index 0000000..eafb6ff Binary files /dev/null and b/public/fonts/serious/Playfair_Display/PlayfairDisplay-VariableFont_wght.ttf differ diff --git a/public/fonts/serious/Playfair_Display/README.txt b/public/fonts/serious/Playfair_Display/README.txt new file mode 100644 index 0000000..00fbc45 --- /dev/null +++ b/public/fonts/serious/Playfair_Display/README.txt @@ -0,0 +1,75 @@ +Playfair Display Variable Font +============================== + +This download contains Playfair Display as both variable fonts and static fonts. + +Playfair Display is a variable font with this axis: + wght + +This means all the styles are contained in these files: + PlayfairDisplay-VariableFont_wght.ttf + PlayfairDisplay-Italic-VariableFont_wght.ttf + +If your app fully supports variable fonts, you can now pick intermediate styles +that aren’t available as static fonts. Not all apps support variable fonts, and +in those cases you can use the static font files for Playfair Display: + static/PlayfairDisplay-Regular.ttf + static/PlayfairDisplay-Medium.ttf + static/PlayfairDisplay-SemiBold.ttf + static/PlayfairDisplay-Bold.ttf + static/PlayfairDisplay-ExtraBold.ttf + static/PlayfairDisplay-Black.ttf + static/PlayfairDisplay-Italic.ttf + static/PlayfairDisplay-MediumItalic.ttf + static/PlayfairDisplay-SemiBoldItalic.ttf + static/PlayfairDisplay-BoldItalic.ttf + static/PlayfairDisplay-ExtraBoldItalic.ttf + static/PlayfairDisplay-BlackItalic.ttf + +Get started +----------- + +1. Install the font files you want to use + +2. Use your app's font picker to view the font family and all the +available styles + +Learn more about variable fonts +------------------------------- + + https://developers.google.com/web/fundamentals/design-and-ux/typography/variable-fonts + https://variablefonts.typenetwork.com + https://medium.com/variable-fonts + +In desktop apps + + https://theblog.adobe.com/can-variable-fonts-illustrator-cc + https://helpx.adobe.com/nz/photoshop/using/fonts.html#variable_fonts + +Online + + https://developers.google.com/fonts/docs/getting_started + https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Fonts/Variable_Fonts_Guide + https://developer.microsoft.com/en-us/microsoft-edge/testdrive/demos/variable-fonts + +Installing fonts + + MacOS: https://support.apple.com/en-us/HT201749 + Linux: https://www.google.com/search?q=how+to+install+a+font+on+gnu%2Blinux + Windows: https://support.microsoft.com/en-us/help/314960/how-to-install-or-remove-a-font-in-windows + +Android Apps + + https://developers.google.com/fonts/docs/android + https://developer.android.com/guide/topics/ui/look-and-feel/downloadable-fonts + +License +------- +Please read the full license text (OFL.txt) to understand the permissions, +restrictions and requirements for usage, redistribution, and modification. + +You can use them in your products & projects – print or digital, +commercial or otherwise. + +This isn't legal advice, please consider consulting a lawyer and see the full +license for all details. diff --git a/public/fonts/serious/Playfair_Display/static/PlayfairDisplay-Black.ttf b/public/fonts/serious/Playfair_Display/static/PlayfairDisplay-Black.ttf new file mode 100644 index 0000000..204f5bf Binary files /dev/null and b/public/fonts/serious/Playfair_Display/static/PlayfairDisplay-Black.ttf differ diff --git a/public/fonts/serious/Playfair_Display/static/PlayfairDisplay-BlackItalic.ttf b/public/fonts/serious/Playfair_Display/static/PlayfairDisplay-BlackItalic.ttf new file mode 100644 index 0000000..5fdffad Binary files /dev/null and b/public/fonts/serious/Playfair_Display/static/PlayfairDisplay-BlackItalic.ttf differ diff --git a/public/fonts/serious/Playfair_Display/static/PlayfairDisplay-Bold.ttf b/public/fonts/serious/Playfair_Display/static/PlayfairDisplay-Bold.ttf new file mode 100644 index 0000000..029a1a6 Binary files /dev/null and b/public/fonts/serious/Playfair_Display/static/PlayfairDisplay-Bold.ttf differ diff --git a/public/fonts/serious/Playfair_Display/static/PlayfairDisplay-BoldItalic.ttf b/public/fonts/serious/Playfair_Display/static/PlayfairDisplay-BoldItalic.ttf new file mode 100644 index 0000000..921435f Binary files /dev/null and b/public/fonts/serious/Playfair_Display/static/PlayfairDisplay-BoldItalic.ttf differ diff --git a/public/fonts/serious/Playfair_Display/static/PlayfairDisplay-ExtraBold.ttf b/public/fonts/serious/Playfair_Display/static/PlayfairDisplay-ExtraBold.ttf new file mode 100644 index 0000000..1efccad Binary files /dev/null and b/public/fonts/serious/Playfair_Display/static/PlayfairDisplay-ExtraBold.ttf differ diff --git a/public/fonts/serious/Playfair_Display/static/PlayfairDisplay-ExtraBoldItalic.ttf b/public/fonts/serious/Playfair_Display/static/PlayfairDisplay-ExtraBoldItalic.ttf new file mode 100644 index 0000000..6a37707 Binary files /dev/null and b/public/fonts/serious/Playfair_Display/static/PlayfairDisplay-ExtraBoldItalic.ttf differ diff --git a/public/fonts/serious/Playfair_Display/static/PlayfairDisplay-Italic.ttf b/public/fonts/serious/Playfair_Display/static/PlayfairDisplay-Italic.ttf new file mode 100644 index 0000000..436dff0 Binary files /dev/null and b/public/fonts/serious/Playfair_Display/static/PlayfairDisplay-Italic.ttf differ diff --git a/public/fonts/serious/Playfair_Display/static/PlayfairDisplay-Medium.ttf b/public/fonts/serious/Playfair_Display/static/PlayfairDisplay-Medium.ttf new file mode 100644 index 0000000..f92eba4 Binary files /dev/null and b/public/fonts/serious/Playfair_Display/static/PlayfairDisplay-Medium.ttf differ diff --git a/public/fonts/serious/Playfair_Display/static/PlayfairDisplay-MediumItalic.ttf b/public/fonts/serious/Playfair_Display/static/PlayfairDisplay-MediumItalic.ttf new file mode 100644 index 0000000..8b8ae4d Binary files /dev/null and b/public/fonts/serious/Playfair_Display/static/PlayfairDisplay-MediumItalic.ttf differ diff --git a/public/fonts/serious/Playfair_Display/static/PlayfairDisplay-Regular.ttf b/public/fonts/serious/Playfair_Display/static/PlayfairDisplay-Regular.ttf new file mode 100644 index 0000000..503b7c4 Binary files /dev/null and b/public/fonts/serious/Playfair_Display/static/PlayfairDisplay-Regular.ttf differ diff --git a/public/fonts/serious/Playfair_Display/static/PlayfairDisplay-SemiBold.ttf b/public/fonts/serious/Playfair_Display/static/PlayfairDisplay-SemiBold.ttf new file mode 100644 index 0000000..1c2a57b Binary files /dev/null and b/public/fonts/serious/Playfair_Display/static/PlayfairDisplay-SemiBold.ttf differ diff --git a/public/fonts/serious/Playfair_Display/static/PlayfairDisplay-SemiBoldItalic.ttf b/public/fonts/serious/Playfair_Display/static/PlayfairDisplay-SemiBoldItalic.ttf new file mode 100644 index 0000000..cd47cca Binary files /dev/null and b/public/fonts/serious/Playfair_Display/static/PlayfairDisplay-SemiBoldItalic.ttf differ diff --git a/public/fonts/serious/Poppins/OFL.txt b/public/fonts/serious/Poppins/OFL.txt new file mode 100644 index 0000000..3e92931 --- /dev/null +++ b/public/fonts/serious/Poppins/OFL.txt @@ -0,0 +1,93 @@ +Copyright 2020 The Poppins Project Authors (https://github.com/itfoundry/Poppins) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://openfontlicense.org + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/public/fonts/serious/Poppins/Poppins-Black.ttf b/public/fonts/serious/Poppins/Poppins-Black.ttf new file mode 100644 index 0000000..71c0f99 Binary files /dev/null and b/public/fonts/serious/Poppins/Poppins-Black.ttf differ diff --git a/public/fonts/serious/Poppins/Poppins-BlackItalic.ttf b/public/fonts/serious/Poppins/Poppins-BlackItalic.ttf new file mode 100644 index 0000000..7aeb58b Binary files /dev/null and b/public/fonts/serious/Poppins/Poppins-BlackItalic.ttf differ diff --git a/public/fonts/serious/Poppins/Poppins-Bold.ttf b/public/fonts/serious/Poppins/Poppins-Bold.ttf new file mode 100644 index 0000000..00559ee Binary files /dev/null and b/public/fonts/serious/Poppins/Poppins-Bold.ttf differ diff --git a/public/fonts/serious/Poppins/Poppins-BoldItalic.ttf b/public/fonts/serious/Poppins/Poppins-BoldItalic.ttf new file mode 100644 index 0000000..e61e8e8 Binary files /dev/null and b/public/fonts/serious/Poppins/Poppins-BoldItalic.ttf differ diff --git a/public/fonts/serious/Poppins/Poppins-ExtraBold.ttf b/public/fonts/serious/Poppins/Poppins-ExtraBold.ttf new file mode 100644 index 0000000..df70936 Binary files /dev/null and b/public/fonts/serious/Poppins/Poppins-ExtraBold.ttf differ diff --git a/public/fonts/serious/Poppins/Poppins-ExtraBoldItalic.ttf b/public/fonts/serious/Poppins/Poppins-ExtraBoldItalic.ttf new file mode 100644 index 0000000..14d2b37 Binary files /dev/null and b/public/fonts/serious/Poppins/Poppins-ExtraBoldItalic.ttf differ diff --git a/public/fonts/serious/Poppins/Poppins-ExtraLight.ttf b/public/fonts/serious/Poppins/Poppins-ExtraLight.ttf new file mode 100644 index 0000000..e76ec69 Binary files /dev/null and b/public/fonts/serious/Poppins/Poppins-ExtraLight.ttf differ diff --git a/public/fonts/serious/Poppins/Poppins-ExtraLightItalic.ttf b/public/fonts/serious/Poppins/Poppins-ExtraLightItalic.ttf new file mode 100644 index 0000000..89513d9 Binary files /dev/null and b/public/fonts/serious/Poppins/Poppins-ExtraLightItalic.ttf differ diff --git a/public/fonts/serious/Poppins/Poppins-Italic.ttf b/public/fonts/serious/Poppins/Poppins-Italic.ttf new file mode 100644 index 0000000..12b7b3c Binary files /dev/null and b/public/fonts/serious/Poppins/Poppins-Italic.ttf differ diff --git a/public/fonts/serious/Poppins/Poppins-Light.ttf b/public/fonts/serious/Poppins/Poppins-Light.ttf new file mode 100644 index 0000000..bc36bcc Binary files /dev/null and b/public/fonts/serious/Poppins/Poppins-Light.ttf differ diff --git a/public/fonts/serious/Poppins/Poppins-LightItalic.ttf b/public/fonts/serious/Poppins/Poppins-LightItalic.ttf new file mode 100644 index 0000000..9e70be6 Binary files /dev/null and b/public/fonts/serious/Poppins/Poppins-LightItalic.ttf differ diff --git a/public/fonts/serious/Poppins/Poppins-Medium.ttf b/public/fonts/serious/Poppins/Poppins-Medium.ttf new file mode 100644 index 0000000..6bcdcc2 Binary files /dev/null and b/public/fonts/serious/Poppins/Poppins-Medium.ttf differ diff --git a/public/fonts/serious/Poppins/Poppins-MediumItalic.ttf b/public/fonts/serious/Poppins/Poppins-MediumItalic.ttf new file mode 100644 index 0000000..be67410 Binary files /dev/null and b/public/fonts/serious/Poppins/Poppins-MediumItalic.ttf differ diff --git a/public/fonts/serious/Poppins/Poppins-Regular.ttf b/public/fonts/serious/Poppins/Poppins-Regular.ttf new file mode 100644 index 0000000..9f0c71b Binary files /dev/null and b/public/fonts/serious/Poppins/Poppins-Regular.ttf differ diff --git a/public/fonts/serious/Poppins/Poppins-SemiBold.ttf b/public/fonts/serious/Poppins/Poppins-SemiBold.ttf new file mode 100644 index 0000000..74c726e Binary files /dev/null and b/public/fonts/serious/Poppins/Poppins-SemiBold.ttf differ diff --git a/public/fonts/serious/Poppins/Poppins-SemiBoldItalic.ttf b/public/fonts/serious/Poppins/Poppins-SemiBoldItalic.ttf new file mode 100644 index 0000000..3e6c942 Binary files /dev/null and b/public/fonts/serious/Poppins/Poppins-SemiBoldItalic.ttf differ diff --git a/public/fonts/serious/Poppins/Poppins-Thin.ttf b/public/fonts/serious/Poppins/Poppins-Thin.ttf new file mode 100644 index 0000000..03e7366 Binary files /dev/null and b/public/fonts/serious/Poppins/Poppins-Thin.ttf differ diff --git a/public/fonts/serious/Poppins/Poppins-ThinItalic.ttf b/public/fonts/serious/Poppins/Poppins-ThinItalic.ttf new file mode 100644 index 0000000..e26db5d Binary files /dev/null and b/public/fonts/serious/Poppins/Poppins-ThinItalic.ttf differ diff --git a/public/fonts/serious/Roboto/LICENSE.txt b/public/fonts/serious/Roboto/LICENSE.txt new file mode 100644 index 0000000..75b5248 --- /dev/null +++ b/public/fonts/serious/Roboto/LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/public/fonts/serious/Roboto/Roboto-Black.ttf b/public/fonts/serious/Roboto/Roboto-Black.ttf new file mode 100644 index 0000000..58fa175 Binary files /dev/null and b/public/fonts/serious/Roboto/Roboto-Black.ttf differ diff --git a/public/fonts/serious/Roboto/Roboto-BlackItalic.ttf b/public/fonts/serious/Roboto/Roboto-BlackItalic.ttf new file mode 100644 index 0000000..0a4dfd0 Binary files /dev/null and b/public/fonts/serious/Roboto/Roboto-BlackItalic.ttf differ diff --git a/public/fonts/serious/Roboto/Roboto-Bold.ttf b/public/fonts/serious/Roboto/Roboto-Bold.ttf new file mode 100644 index 0000000..e64db79 Binary files /dev/null and b/public/fonts/serious/Roboto/Roboto-Bold.ttf differ diff --git a/public/fonts/serious/Roboto/Roboto-BoldItalic.ttf b/public/fonts/serious/Roboto/Roboto-BoldItalic.ttf new file mode 100644 index 0000000..5e39ae9 Binary files /dev/null and b/public/fonts/serious/Roboto/Roboto-BoldItalic.ttf differ diff --git a/public/fonts/serious/Roboto/Roboto-Italic.ttf b/public/fonts/serious/Roboto/Roboto-Italic.ttf new file mode 100644 index 0000000..65498ee Binary files /dev/null and b/public/fonts/serious/Roboto/Roboto-Italic.ttf differ diff --git a/public/fonts/serious/Roboto/Roboto-Light.ttf b/public/fonts/serious/Roboto/Roboto-Light.ttf new file mode 100644 index 0000000..a7e0284 Binary files /dev/null and b/public/fonts/serious/Roboto/Roboto-Light.ttf differ diff --git a/public/fonts/serious/Roboto/Roboto-LightItalic.ttf b/public/fonts/serious/Roboto/Roboto-LightItalic.ttf new file mode 100644 index 0000000..867b76d Binary files /dev/null and b/public/fonts/serious/Roboto/Roboto-LightItalic.ttf differ diff --git a/public/fonts/serious/Roboto/Roboto-Medium.ttf b/public/fonts/serious/Roboto/Roboto-Medium.ttf new file mode 100644 index 0000000..0707e15 Binary files /dev/null and b/public/fonts/serious/Roboto/Roboto-Medium.ttf differ diff --git a/public/fonts/serious/Roboto/Roboto-MediumItalic.ttf b/public/fonts/serious/Roboto/Roboto-MediumItalic.ttf new file mode 100644 index 0000000..4e3bf0d Binary files /dev/null and b/public/fonts/serious/Roboto/Roboto-MediumItalic.ttf differ diff --git a/public/fonts/serious/Roboto/Roboto-Regular.ttf b/public/fonts/serious/Roboto/Roboto-Regular.ttf new file mode 100644 index 0000000..2d116d9 Binary files /dev/null and b/public/fonts/serious/Roboto/Roboto-Regular.ttf differ diff --git a/public/fonts/serious/Roboto/Roboto-Thin.ttf b/public/fonts/serious/Roboto/Roboto-Thin.ttf new file mode 100644 index 0000000..ab68508 Binary files /dev/null and b/public/fonts/serious/Roboto/Roboto-Thin.ttf differ diff --git a/public/fonts/serious/Roboto/Roboto-ThinItalic.ttf b/public/fonts/serious/Roboto/Roboto-ThinItalic.ttf new file mode 100644 index 0000000..b2c3933 Binary files /dev/null and b/public/fonts/serious/Roboto/Roboto-ThinItalic.ttf differ diff --git a/public/fonts/serious/Ubuntu/UFL.txt b/public/fonts/serious/Ubuntu/UFL.txt new file mode 100644 index 0000000..6e722c8 --- /dev/null +++ b/public/fonts/serious/Ubuntu/UFL.txt @@ -0,0 +1,96 @@ +------------------------------- +UBUNTU FONT LICENCE Version 1.0 +------------------------------- + +PREAMBLE +This licence allows the licensed fonts to be used, studied, modified and +redistributed freely. The fonts, including any derivative works, can be +bundled, embedded, and redistributed provided the terms of this licence +are met. The fonts and derivatives, however, cannot be released under +any other licence. The requirement for fonts to remain under this +licence does not require any document created using the fonts or their +derivatives to be published under this licence, as long as the primary +purpose of the document is not to be a vehicle for the distribution of +the fonts. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this licence and clearly marked as such. This may +include source files, build scripts and documentation. + +"Original Version" refers to the collection of Font Software components +as received under this licence. + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to +a new environment. + +"Copyright Holder(s)" refers to all individuals and companies who have a +copyright ownership of the Font Software. + +"Substantially Changed" refers to Modified Versions which can be easily +identified as dissimilar to the Font Software by users of the Font +Software comparing the Original Version with the Modified Version. + +To "Propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification and with or without charging +a redistribution fee), making available to the public, and in some +countries other activities as well. + +PERMISSION & CONDITIONS +This licence does not grant any rights under trademark law and all such +rights are reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of the Font Software, to propagate the Font Software, subject to +the below conditions: + +1) Each copy of the Font Software must contain the above copyright +notice and this licence. These can be included either as stand-alone +text files, human-readable headers or in the appropriate machine- +readable metadata fields within text or binary files as long as those +fields can be easily viewed by the user. + +2) The font name complies with the following: +(a) The Original Version must retain its name, unmodified. +(b) Modified Versions which are Substantially Changed must be renamed to +avoid use of the name of the Original Version or similar names entirely. +(c) Modified Versions which are not Substantially Changed must be +renamed to both (i) retain the name of the Original Version and (ii) add +additional naming elements to distinguish the Modified Version from the +Original Version. The name of such Modified Versions must be the name of +the Original Version, with "derivative X" where X represents the name of +the new work, appended to that name. + +3) The name(s) of the Copyright Holder(s) and any contributor to the +Font Software shall not be used to promote, endorse or advertise any +Modified Version, except (i) as required by this licence, (ii) to +acknowledge the contribution(s) of the Copyright Holder(s) or (iii) with +their explicit written permission. + +4) The Font Software, modified or unmodified, in part or in whole, must +be distributed entirely under this licence, and must not be distributed +under any other licence. The requirement for fonts to remain under this +licence does not affect any document created using the Font Software, +except any version of the Font Software extracted from a document +created using the Font Software may only be distributed under this +licence. + +TERMINATION +This licence becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF +COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER +DEALINGS IN THE FONT SOFTWARE. diff --git a/public/fonts/serious/Ubuntu/Ubuntu-Bold.ttf b/public/fonts/serious/Ubuntu/Ubuntu-Bold.ttf new file mode 100644 index 0000000..c2293d5 Binary files /dev/null and b/public/fonts/serious/Ubuntu/Ubuntu-Bold.ttf differ diff --git a/public/fonts/serious/Ubuntu/Ubuntu-BoldItalic.ttf b/public/fonts/serious/Ubuntu/Ubuntu-BoldItalic.ttf new file mode 100644 index 0000000..ce6e784 Binary files /dev/null and b/public/fonts/serious/Ubuntu/Ubuntu-BoldItalic.ttf differ diff --git a/public/fonts/serious/Ubuntu/Ubuntu-Italic.ttf b/public/fonts/serious/Ubuntu/Ubuntu-Italic.ttf new file mode 100644 index 0000000..a599244 Binary files /dev/null and b/public/fonts/serious/Ubuntu/Ubuntu-Italic.ttf differ diff --git a/public/fonts/serious/Ubuntu/Ubuntu-Light.ttf b/public/fonts/serious/Ubuntu/Ubuntu-Light.ttf new file mode 100644 index 0000000..b310d15 Binary files /dev/null and b/public/fonts/serious/Ubuntu/Ubuntu-Light.ttf differ diff --git a/public/fonts/serious/Ubuntu/Ubuntu-LightItalic.ttf b/public/fonts/serious/Ubuntu/Ubuntu-LightItalic.ttf new file mode 100644 index 0000000..ad0741b Binary files /dev/null and b/public/fonts/serious/Ubuntu/Ubuntu-LightItalic.ttf differ diff --git a/public/fonts/serious/Ubuntu/Ubuntu-Medium.ttf b/public/fonts/serious/Ubuntu/Ubuntu-Medium.ttf new file mode 100644 index 0000000..7340a40 Binary files /dev/null and b/public/fonts/serious/Ubuntu/Ubuntu-Medium.ttf differ diff --git a/public/fonts/serious/Ubuntu/Ubuntu-MediumItalic.ttf b/public/fonts/serious/Ubuntu/Ubuntu-MediumItalic.ttf new file mode 100644 index 0000000..36ac1ae Binary files /dev/null and b/public/fonts/serious/Ubuntu/Ubuntu-MediumItalic.ttf differ diff --git a/public/fonts/serious/Ubuntu/Ubuntu-Regular.ttf b/public/fonts/serious/Ubuntu/Ubuntu-Regular.ttf new file mode 100644 index 0000000..f98a2da Binary files /dev/null and b/public/fonts/serious/Ubuntu/Ubuntu-Regular.ttf differ diff --git a/public/img/character.jpg b/public/img/character.jpg new file mode 100644 index 0000000..b9363db Binary files /dev/null and b/public/img/character.jpg differ diff --git a/public/img/financial.jpg b/public/img/financial.jpg new file mode 100644 index 0000000..f6513d7 Binary files /dev/null and b/public/img/financial.jpg differ diff --git a/public/img/image.jpg b/public/img/image.jpg new file mode 100644 index 0000000..6cbc53d Binary files /dev/null and b/public/img/image.jpg differ diff --git a/public/img/time.jpg b/public/img/time.jpg new file mode 100644 index 0000000..6db57ad Binary files /dev/null and b/public/img/time.jpg differ diff --git a/public/img/weather.jpg b/public/img/weather.jpg new file mode 100644 index 0000000..c921471 Binary files /dev/null and b/public/img/weather.jpg differ diff --git a/py/api.py b/py/api.py index 508a9bd..01e99b1 100644 --- a/py/api.py +++ b/py/api.py @@ -4,27 +4,35 @@ import secrets import threading from ai import AI from db import DB +from weather import Weather +from voice import VoiceRecognition class API: def __init__(self): - self.crypt_size = 1 + self.crypt_size = 4096 self.app = Flask(__name__) self.ai_response = {} self.ai = AI() self.db = DB() + self.weather = Weather() + self.voice = VoiceRecognition() self.db.load_database() self.ai_response_lock = threading.Lock() CORS(self.app) def run(self): - @self.app.route('/interstellar/api/ai_create', methods=['GET']) + @self.app.route('/interstellar_ai/api/ai_create', methods=['GET']) def create_ai(): access_token = secrets.token_urlsafe(self.crypt_size) + + while access_token in self.ai_response: + access_token = secrets.token_urlsafe(self.crypt_size) + self.ai_response[access_token] = "" return jsonify({'status': 200, 'access_token': access_token}) - @self.app.route('/interstellar/api/ai_send', methods=['POST']) + @self.app.route('/interstellar_ai/api/ai_send', methods=['POST']) def send_ai(): data = request.get_json() messages = data.get('messages') @@ -63,27 +71,45 @@ class API: return jsonify({'status': 401, 'error': 'Invalid AI model type'}) - @self.app.route('/interstellar/api/ai_get', methods=['GET']) + @self.app.route('/interstellar_ai/api/ai_get', methods=['GET']) def get_ai(): data = request.args.get('access_token') if data not in self.ai_response: return jsonify({'status': 401, 'error': 'Invalid access token'}) return jsonify({'status': 200, 'response': self.ai_response[data]}) - @self.app.route('/interstellar/api/db', methods=['POST']) + @self.app.route('/interstellar_ai/db', methods=['POST']) def db_manipulate(): action = request.args.get('action') data = request.args.get('data') if action == "create_account": - self.db.add_user(data) + return jsonify({'status': 200, 'response': self.db.add_user(data)}) elif action == "change_password": - self.db.update_password(data) + return jsonify({'status': 200, 'response': self.db.update_password(data)}) elif action == "get_data": - self.db.get_data(data) + return jsonify({'status': 200, 'response': self.db.get_data(data)}) elif action == "change_data": - self.db.change_data(data) + return jsonify({'status': 200, 'response': self.db.change_data(data)}) elif action == "check_credentials": - self.db.check_credentials(data) + return jsonify({'status': 200, 'response': self.db.check_credentials(data)}) + + return jsonify({'status': 401, 'response': "Invalid action"}) + + @self.app.route('/interstellar_ai/api/voice_recognition', methods=['POST']) + def voice_recognition(): + recognition_type = request.args.get('type') + audio = request.args.get('audio_data') + option = request.args.get('option') + if recognition_type == "basic": + return jsonify({'status': 200, 'response': self.voice.basic_recognition(audio, option)}) + + return jsonify({'status': 401, 'response': "Invalid type"}) + + @self.app.route('/interstellar_ai/api/weather', methods=['POST']) + def get_weather(): + unit_type = request.args.get('unit_type') + city = request.args.get('city') + return jsonify({'status': 200, 'response': self.weather.getweather(unit_type, city)}) self.app.run(debug=True, host='0.0.0.0', port=5000) diff --git a/py/db.py b/py/db.py index 76470c9..3f66ac7 100644 --- a/py/db.py +++ b/py/db.py @@ -1,11 +1,21 @@ import hashlib import json +import os +import pycouchdb class DB: def __init__(self): self.database = {} + def ensure_username(self, data): + if hasattr(data, 'username'): + return data.get['username'] + elif hasattr(data, 'email'): + for index, entry in self.database: + if entry.get['email'] == data.get['email']: + return index + @staticmethod def hash_password(password): salt = "your_secret_salt" @@ -15,12 +25,26 @@ class DB: def add_user(self, data): username = data.get['username'] password = data.get['password'] + email = data.get['email'] hashed_password = self.hash_password(password) - user_data = {"hashed_password": hashed_password} - self.database[username] = user_data + user_data = {"hashed_password": hashed_password, "email": email, "data": None} + if username not in self.database: + self.database[username] = user_data + return True + return False + + def delete_user(self, data): + username = self.ensure_username(data) + data = data.get['data'] + if not self.check_credentials(data): + return False + + del self.database[username] + self.save_database() + return True def change_data(self, data): - username = data.get['username'] + username = self.ensure_username(data) data = data.get['data'] if not self.check_credentials(data): return False @@ -30,7 +54,7 @@ class DB: return True def update_password(self, data): - username = data.get['username'] + username = self.ensure_username(data) new_password = data.get['new_password'] if not self.check_credentials(data): return False @@ -41,7 +65,7 @@ class DB: return True def check_credentials(self, data): - username = data.get['username'] + username = self.ensure_username(data) password = data.get['password'] if username not in self.database: return False @@ -51,7 +75,7 @@ class DB: return stored_hashed_password == entered_hashed_password def get_data(self, data): - username = data.get['username'] + username = self.ensure_username(data) if not self.check_credentials(data): return None @@ -59,12 +83,28 @@ class DB: return send_back def save_database(self): - with open("database.json", 'w') as file: - json.dump(self.database, file) + if os.environ.get('PRODUCTION') == "YES": + server = pycouchdb.Server("http://admin:admin@localhost:5984/") + db = server.database("interstellar_ai") + db.save(self.database) + + else: + with open("database.json", 'w') as file: + json.dump(self.database, file) def load_database(self): - try: - with open("database.json", 'r') as file: - self.database = json.load(file) - except FileNotFoundError: - pass + if os.environ.get('PRODUCTION') == "YES": + server = pycouchdb.Server("http://admin:admin@localhost:5984/") + db = server.database("interstellar_ai") + if db: + self.database = db + else: + server.create("interstellar_ai") + db = server.database("interstellar_ai") + db.save(self.database) + else: + try: + with open("database.json", 'r') as file: + self.database = json.load(file) + except FileNotFoundError: + pass diff --git a/py/install.sh b/py/install.sh index 1fbdcba..65cc5d2 100644 --- a/py/install.sh +++ b/py/install.sh @@ -1,4 +1,3 @@ python -m venv venv source venv/bin/activate pip install -r requirements.txt -deactivate \ No newline at end of file diff --git a/py/requirements.txt b/py/requirements.txt index 6f01276..6cd3616 100644 --- a/py/requirements.txt +++ b/py/requirements.txt @@ -8,4 +8,6 @@ pyOpenSSL SpeechRecognition PocketSphinx google-cloud-speech -google-generativeai \ No newline at end of file +google-generativeai +python-weather +pycouchdb \ No newline at end of file diff --git a/py/voice.py b/py/voice.py index 98ddeba..7ead0a5 100644 --- a/py/voice.py +++ b/py/voice.py @@ -7,5 +7,7 @@ class VoiceRecognition: r = sr.Recognizer() if option == "online": return r.recognize_google_cloud(audio) - if option == "offline": + elif option == "offline": return r.recognize_sphinx(audio) + + return False diff --git a/py/weather.py b/py/weather.py new file mode 100644 index 0000000..bb390c5 --- /dev/null +++ b/py/weather.py @@ -0,0 +1,39 @@ +import python_weather + + +class Weather: + @staticmethod + async def getweather(unit_type, city): + + if unit_type == "imperial": + unit_type = python_weather.IMPERIAL + elif unit_type == "metric": + unit_type = python_weather.METRIC + + async with python_weather.Client(unit=unit_type) as client: + weather = await client.get(city) + + data = { + 'temperature': weather.temperature, + 'humidity': weather.humidity, + 'unit': weather.unit, + 'datetime': weather.datetime, + 'coordinates': weather.coordinates, + 'country': weather.country, + 'daily_forecasts': weather.daily_forecasts, + 'description': weather.description, + 'feels_like': weather.feels_like, + 'kind': weather.kind, + 'local_population': weather.local_population, + 'locale': weather.locale, + 'location': weather.location, + 'precipitation': weather.precipitation, + 'pressure': weather.pressure, + 'region': weather.region, + 'ultraviolet': weather.ultraviolet, + 'visibility': weather.visibility, + 'wind_direction': weather.wind_direction, + 'wind_speed': weather.wind_speed, + } + + return data