diff --git a/frontend/resources/locales.json b/frontend/resources/locales.json index e37b2f668..085835c08 100644 --- a/frontend/resources/locales.json +++ b/frontend/resources/locales.json @@ -294,7 +294,7 @@ } }, "dashboard.grid.add-shared" : { - "used-in" : [ "src/app/main/ui/workspace/header.cljs:210", "src/app/main/ui/dashboard/grid.cljs:165" ], + "used-in" : [ "src/app/main/ui/workspace/header.cljs:210", "src/app/main/ui/dashboard/grid.cljs:167" ], "translations" : { "en" : "Add as Shared Library", "fr" : "", @@ -303,7 +303,7 @@ } }, "dashboard.grid.add-shared-accept" : { - "used-in" : [ "src/app/main/ui/workspace/header.cljs:104", "src/app/main/ui/dashboard/grid.cljs:94" ], + "used-in" : [ "src/app/main/ui/workspace/header.cljs:104", "src/app/main/ui/dashboard/grid.cljs:95" ], "translations" : { "en" : "Add as Shared Library", "fr" : "", @@ -312,7 +312,7 @@ } }, "dashboard.grid.add-shared-hint" : { - "used-in" : [ "src/app/main/ui/workspace/header.cljs:103", "src/app/main/ui/dashboard/grid.cljs:93" ], + "used-in" : [ "src/app/main/ui/workspace/header.cljs:103", "src/app/main/ui/dashboard/grid.cljs:94" ], "translations" : { "en" : "Once added as Shared Library, the assets of this file library will be available to be used among the rest of your files.", "fr" : "", @@ -321,7 +321,7 @@ } }, "dashboard.grid.add-shared-message" : { - "used-in" : [ "src/app/main/ui/workspace/header.cljs:102", "src/app/main/ui/dashboard/grid.cljs:92" ], + "used-in" : [ "src/app/main/ui/workspace/header.cljs:102", "src/app/main/ui/dashboard/grid.cljs:93" ], "translations" : { "en" : "Add “%s” as Shared Library", "fr" : "", @@ -330,7 +330,7 @@ } }, "dashboard.grid.delete" : { - "used-in" : [ "src/app/main/ui/dashboard/project.cljs:61", "src/app/main/ui/dashboard/grid.cljs:162" ], + "used-in" : [ "src/app/main/ui/dashboard/files.cljs:87", "src/app/main/ui/dashboard/grid.cljs:164" ], "translations" : { "en" : "Delete", "fr" : "Supprimer", @@ -339,7 +339,7 @@ } }, "dashboard.grid.empty-files" : { - "used-in" : [ "src/app/main/ui/dashboard/grid.cljs:189" ], + "used-in" : [ "src/app/main/ui/dashboard/grid.cljs:174" ], "translations" : { "en" : "You still have no files here", "fr" : "Vous n'avez encore aucun fichier ici", @@ -348,7 +348,7 @@ } }, "dashboard.grid.remove-shared" : { - "used-in" : [ "src/app/main/ui/workspace/header.cljs:208", "src/app/main/ui/dashboard/grid.cljs:164" ], + "used-in" : [ "src/app/main/ui/workspace/header.cljs:208", "src/app/main/ui/dashboard/grid.cljs:166" ], "translations" : { "en" : "Remove as Shared Library", "fr" : "", @@ -357,7 +357,7 @@ } }, "dashboard.grid.remove-shared-accept" : { - "used-in" : [ "src/app/main/ui/workspace/header.cljs:113", "src/app/main/ui/dashboard/grid.cljs:113" ], + "used-in" : [ "src/app/main/ui/workspace/header.cljs:113", "src/app/main/ui/dashboard/grid.cljs:114" ], "translations" : { "en" : "Remove as Shared Library", "fr" : "", @@ -366,7 +366,7 @@ } }, "dashboard.grid.remove-shared-hint" : { - "used-in" : [ "src/app/main/ui/workspace/header.cljs:112", "src/app/main/ui/dashboard/grid.cljs:112" ], + "used-in" : [ "src/app/main/ui/workspace/header.cljs:112", "src/app/main/ui/dashboard/grid.cljs:113" ], "translations" : { "en" : "Once removed as Shared Library, the File Library of this file will stop being available to be used among the rest of your files.", "fr" : "", @@ -375,7 +375,7 @@ } }, "dashboard.grid.remove-shared-message" : { - "used-in" : [ "src/app/main/ui/workspace/header.cljs:111", "src/app/main/ui/dashboard/grid.cljs:111" ], + "used-in" : [ "src/app/main/ui/workspace/header.cljs:111", "src/app/main/ui/dashboard/grid.cljs:112" ], "translations" : { "en" : "Remove “%s” as Shared Library", "fr" : "", @@ -384,7 +384,7 @@ } }, "dashboard.grid.rename" : { - "used-in" : [ "src/app/main/ui/dashboard/project.cljs:60", "src/app/main/ui/dashboard/grid.cljs:161" ], + "used-in" : [ "src/app/main/ui/dashboard/files.cljs:86", "src/app/main/ui/dashboard/grid.cljs:163" ], "translations" : { "en" : "Rename", "fr" : "Renommer", @@ -393,7 +393,7 @@ } }, "dashboard.header.draft" : { - "used-in" : [ "src/app/main/ui/dashboard/project.cljs:54" ], + "used-in" : [ "src/app/main/ui/dashboard/files.cljs:80" ], "translations" : { "en" : "Draft", "fr" : "Brouillon", @@ -402,7 +402,7 @@ } }, "dashboard.header.libraries" : { - "used-in" : [ "src/app/main/ui/dashboard/libraries.cljs:40" ], + "used-in" : [ "src/app/main/ui/dashboard/libraries.cljs:39" ], "translations" : { "en" : "Shared Libraries", "fr" : "", @@ -410,17 +410,8 @@ "es" : "Bibliotecas Compartidas" } }, - "dashboard.sidebar.projects" : { - "translations" : { - "en" : "Projects", - "fr" : "Projetes", - "ru" : "Проекты", - "es" : "Proyectos" - } - }, - "dashboard.header.new-project" : { - "used-in" : [ "src/app/main/ui/dashboard/recent_files.cljs:46" ], + "used-in" : [ "src/app/main/ui/dashboard/projects.cljs:36" ], "translations" : { "en" : "+ New project", "fr" : "+ Nouveau projet", @@ -429,7 +420,7 @@ } }, "dashboard.header.profile-menu.logout" : { - "used-in" : [ "src/app/main/ui/dashboard/profile.cljs:57" ], + "used-in" : [ "src/app/main/ui/dashboard/sidebar.cljs:376" ], "translations" : { "en" : "Exit", "fr" : "Quitter", @@ -438,7 +429,7 @@ } }, "dashboard.header.profile-menu.password" : { - "used-in" : [ "src/app/main/ui/dashboard/profile.cljs:54" ], + "used-in" : [ "src/app/main/ui/dashboard/sidebar.cljs:372" ], "translations" : { "en" : "Password", "fr" : "Mot de passe", @@ -447,7 +438,7 @@ } }, "dashboard.header.profile-menu.profile" : { - "used-in" : [ "src/app/main/ui/dashboard/profile.cljs:51" ], + "used-in" : [ "src/app/main/ui/dashboard/sidebar.cljs:368" ], "translations" : { "en" : "Profile", "fr" : "Profil", @@ -456,7 +447,7 @@ } }, "dashboard.header.project" : { - "used-in" : [ "src/app/main/ui/dashboard/project.cljs:56" ], + "used-in" : [ "src/app/main/ui/dashboard/files.cljs:82" ], "translations" : { "en" : "Project %s", "fr" : "Projet %s", @@ -545,8 +536,17 @@ }, "unused" : true }, + "dashboard.new-file" : { + "used-in" : [ "src/app/main/ui/dashboard/projects.cljs:110", "src/app/main/ui/dashboard/files.cljs:101" ], + "translations" : { + "en" : "+ New File", + "fr" : "+ Nouveau fichier", + "ru" : "+ Новый файл", + "es" : "+ Nuevo Archivo" + } + }, "dashboard.search.no-matches-for" : { - "used-in" : [ "src/app/main/ui/dashboard/search.cljs:47" ], + "used-in" : [ "src/app/main/ui/dashboard/search.cljs:50" ], "translations" : { "en" : "No matches found for “%s“", "fr" : "Aucune correspondance pour “%s“", @@ -555,7 +555,7 @@ } }, "dashboard.search.searching-for" : { - "used-in" : [ "src/app/main/ui/dashboard/search.cljs:43" ], + "used-in" : [ "src/app/main/ui/dashboard/search.cljs:45" ], "translations" : { "en" : "Searching for “%s“...", "fr" : "Recherche de “%s“...", @@ -564,7 +564,7 @@ } }, "dashboard.search.type-something" : { - "used-in" : [ "src/app/main/ui/dashboard/search.cljs:39" ], + "used-in" : [ "src/app/main/ui/dashboard/search.cljs:40" ], "translations" : { "en" : "Type to search results", "fr" : "Écrivez pour rechercher", @@ -573,7 +573,7 @@ } }, "dashboard.sidebar.drafts" : { - "used-in" : [ "src/app/main/ui/dashboard/sidebar.cljs:127" ], + "used-in" : [ "src/app/main/ui/dashboard/sidebar.cljs:319" ], "translations" : { "en" : "Drafts", "fr" : "Brouillons", @@ -582,7 +582,7 @@ } }, "dashboard.sidebar.libraries" : { - "used-in" : [ "src/app/main/ui/dashboard/sidebar.cljs:133" ], + "used-in" : [ "src/app/main/ui/dashboard/sidebar.cljs:325" ], "translations" : { "en" : "Shared Libraries", "fr" : "", @@ -590,14 +590,23 @@ "es" : "Bibliotecas Compartidas" } }, + "dashboard.sidebar.projects" : { + "used-in" : [ "src/app/main/ui/dashboard/sidebar.cljs:314" ], + "translations" : { + "en" : "Projects", + "fr" : "Projetes", + "ru" : "Проекты", + "es" : "Proyectos" + } + }, "dashboard.sidebar.recent" : { - "used-in" : [ "src/app/main/ui/dashboard/sidebar.cljs:120" ], "translations" : { "en" : "Recent", "fr" : "Récent", "ru" : "Недавние", "es" : "Reciente" - } + }, + "unused" : true }, "ds.accept" : { "translations" : { @@ -689,17 +698,8 @@ }, "unused" : true }, - "dashboard.new-file" : { - "used-in" : [ "src/app/main/ui/dashboard/grid.cljs:179", "src/app/main/ui/dashboard/grid.cljs:191" ], - "translations" : { - "en" : "+ New File", - "fr" : "+ Nouveau fichier", - "ru" : "+ Новый файл", - "es" : "+ Nuevo Archivo" - } - }, "ds.search.placeholder" : { - "used-in" : [ "src/app/main/ui/dashboard/sidebar.cljs:186" ], + "used-in" : [ "src/app/main/ui/dashboard/sidebar.cljs:151" ], "translations" : { "en" : "Search...", "fr" : "Rechercher...", @@ -717,7 +717,7 @@ "unused" : true }, "ds.updated-at" : { - "used-in" : [ "src/app/main/ui/dashboard/grid.cljs:57" ], + "used-in" : [ "src/app/main/ui/dashboard/grid.cljs:58" ], "translations" : { "en" : "Updated: %s", "fr" : "Mis à jour: %s", @@ -888,7 +888,7 @@ "unused" : true }, "media.loading" : { - "used-in" : [ "src/app/main/data/media.cljs:43", "src/app/main/data/workspace/persistence.cljs:395" ], + "used-in" : [ "src/app/main/data/media.cljs:43", "src/app/main/data/workspace/persistence.cljs:394" ], "translations" : { "en" : "Loading image...", "fr" : "Chargement de l'image...", @@ -1059,7 +1059,7 @@ } }, "settings.multiple" : { - "used-in" : [ "src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:138", "src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:147", "src/app/main/ui/workspace/sidebar/options/text.cljs:124", "src/app/main/ui/workspace/sidebar/options/text.cljs:219", "src/app/main/ui/workspace/sidebar/options/text.cljs:232", "src/app/main/ui/workspace/sidebar/options/stroke.cljs:156" ], + "used-in" : [ "src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:138", "src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:147", "src/app/main/ui/workspace/sidebar/options/typography.cljs:98", "src/app/main/ui/workspace/sidebar/options/typography.cljs:148", "src/app/main/ui/workspace/sidebar/options/typography.cljs:161", "src/app/main/ui/workspace/sidebar/options/stroke.cljs:156" ], "translations" : { "en" : "Mixed", "fr" : null, @@ -1446,7 +1446,7 @@ } }, "workspace.assets.assets" : { - "used-in" : [ "src/app/main/ui/workspace/sidebar/assets.cljs:477" ], + "used-in" : [ "src/app/main/ui/workspace/sidebar/assets.cljs:613" ], "translations" : { "en" : "Assets", "fr" : "", @@ -1455,7 +1455,7 @@ } }, "workspace.assets.box-filter-all" : { - "used-in" : [ "src/app/main/ui/workspace/sidebar/assets.cljs:497" ], + "used-in" : [ "src/app/main/ui/workspace/sidebar/assets.cljs:633" ], "translations" : { "en" : "All assets", "fr" : "", @@ -1464,25 +1464,25 @@ } }, "workspace.assets.box-filter-colors" : { - "used-in" : [ "src/app/main/ui/workspace/sidebar/assets.cljs:499" ], "translations" : { "en" : "Colors", "fr" : "", "ru" : "", "es" : "Colores" - } + }, + "unused" : true }, "workspace.assets.box-filter-graphics" : { - "used-in" : [ "src/app/main/ui/workspace/sidebar/assets.cljs:498" ], "translations" : { "en" : "Graphics", "fr" : "", "ru" : "", "es" : "Gráficos" - } + }, + "unused" : true }, "workspace.assets.colors" : { - "used-in" : [ "src/app/main/ui/workspace/sidebar/assets.cljs:316" ], + "used-in" : [ "src/app/main/ui/workspace/sidebar/assets.cljs:320", "src/app/main/ui/workspace/sidebar/assets.cljs:636" ], "translations" : { "en" : "Colors", "fr" : "", @@ -1491,7 +1491,7 @@ } }, "workspace.assets.components" : { - "used-in" : [ "src/app/main/ui/workspace/sidebar/assets.cljs:79" ], + "used-in" : [ "src/app/main/ui/workspace/sidebar/assets.cljs:82", "src/app/main/ui/workspace/sidebar/assets.cljs:634" ], "translations" : { "en" : "Components", "fr" : "", @@ -1500,7 +1500,7 @@ } }, "workspace.assets.delete" : { - "used-in" : [ "src/app/main/ui/workspace/sidebar/assets.cljs:98", "src/app/main/ui/workspace/sidebar/assets.cljs:186", "src/app/main/ui/workspace/sidebar/assets.cljs:292" ], + "used-in" : [ "src/app/main/ui/workspace/sidebar/assets.cljs:102", "src/app/main/ui/workspace/sidebar/assets.cljs:190", "src/app/main/ui/workspace/sidebar/assets.cljs:296", "src/app/main/ui/workspace/sidebar/assets.cljs:419" ], "translations" : { "en" : "Delete", "fr" : "", @@ -1509,7 +1509,7 @@ } }, "workspace.assets.edit" : { - "used-in" : [ "src/app/main/ui/workspace/sidebar/assets.cljs:291" ], + "used-in" : [ "src/app/main/ui/workspace/sidebar/assets.cljs:295", "src/app/main/ui/workspace/sidebar/assets.cljs:418" ], "translations" : { "en" : "Edit", "fr" : "", @@ -1518,7 +1518,7 @@ } }, "workspace.assets.file-library" : { - "used-in" : [ "src/app/main/ui/workspace/sidebar/assets.cljs:397" ], + "used-in" : [ "src/app/main/ui/workspace/sidebar/assets.cljs:517" ], "translations" : { "en" : "File library", "fr" : "", @@ -1527,7 +1527,7 @@ } }, "workspace.assets.graphics" : { - "used-in" : [ "src/app/main/ui/workspace/sidebar/assets.cljs:159" ], + "used-in" : [ "src/app/main/ui/workspace/sidebar/assets.cljs:163", "src/app/main/ui/workspace/sidebar/assets.cljs:635" ], "translations" : { "en" : "Graphics", "fr" : "", @@ -1536,7 +1536,7 @@ } }, "workspace.assets.libraries" : { - "used-in" : [ "src/app/main/ui/workspace/sidebar/assets.cljs:480" ], + "used-in" : [ "src/app/main/ui/workspace/sidebar/assets.cljs:616" ], "translations" : { "en" : "Libraries", "fr" : "", @@ -1545,7 +1545,7 @@ } }, "workspace.assets.not-found" : { - "used-in" : [ "src/app/main/ui/workspace/sidebar/assets.cljs:441" ], + "used-in" : [ "src/app/main/ui/workspace/sidebar/assets.cljs:577" ], "translations" : { "en" : "No assets found", "fr" : "", @@ -1554,7 +1554,7 @@ } }, "workspace.assets.rename" : { - "used-in" : [ "src/app/main/ui/workspace/sidebar/assets.cljs:290" ], + "used-in" : [ "src/app/main/ui/workspace/sidebar/assets.cljs:294", "src/app/main/ui/workspace/sidebar/assets.cljs:417" ], "translations" : { "en" : "Rename", "fr" : "", @@ -1563,7 +1563,7 @@ } }, "workspace.assets.search" : { - "used-in" : [ "src/app/main/ui/workspace/sidebar/assets.cljs:484" ], + "used-in" : [ "src/app/main/ui/workspace/sidebar/assets.cljs:620" ], "translations" : { "en" : "Search assets", "fr" : "", @@ -1572,7 +1572,7 @@ } }, "workspace.assets.shared" : { - "used-in" : [ "src/app/main/ui/workspace/sidebar/assets.cljs:399" ], + "used-in" : [ "src/app/main/ui/workspace/sidebar/assets.cljs:519" ], "translations" : { "en" : "SHARED", "fr" : "", @@ -1580,6 +1580,12 @@ "es" : "COMPARTIDA" } }, + "workspace.assets.typography" : { + "used-in" : [ "src/app/main/ui/workspace/sidebar/assets.cljs:406", "src/app/main/ui/workspace/sidebar/assets.cljs:637" ], + "translations" : { + "en" : "Typographies" + } + }, "workspace.header.menu.disable-dynamic-alignment" : { "used-in" : [ "src/app/main/ui/workspace/header.cljs:202" ], "translations" : { @@ -1740,7 +1746,7 @@ } }, "workspace.libraries.add" : { - "used-in" : [ "src/app/main/ui/workspace/libraries.cljs:111" ], + "used-in" : [ "src/app/main/ui/workspace/libraries.cljs:115" ], "translations" : { "en" : "Add", "fr" : "", @@ -1749,7 +1755,7 @@ } }, "workspace.libraries.colors" : { - "used-in" : [ "src/app/main/ui/workspace/libraries.cljs:42" ], + "used-in" : [ "src/app/main/ui/workspace/libraries.cljs:43" ], "translations" : { "en" : "%s colors", "fr" : "", @@ -1758,19 +1764,19 @@ } }, "workspace.libraries.colors.big-thumbnails" : { - "used-in" : [ "src/app/main/ui/workspace/colorpalette.cljs:172" ], + "used-in" : [ "src/app/main/ui/workspace/colorpalette.cljs:171" ], "translations" : { "en" : "Big thumbnails" } }, "workspace.libraries.colors.file-library" : { - "used-in" : [ "src/app/main/ui/workspace/colorpicker.cljs:338", "src/app/main/ui/workspace/colorpalette.cljs:150" ], + "used-in" : [ "src/app/main/ui/workspace/colorpicker.cljs:338", "src/app/main/ui/workspace/colorpalette.cljs:149" ], "translations" : { "en" : "File library" } }, "workspace.libraries.colors.recent-colors" : { - "used-in" : [ "src/app/main/ui/workspace/colorpicker.cljs:337", "src/app/main/ui/workspace/colorpalette.cljs:160" ], + "used-in" : [ "src/app/main/ui/workspace/colorpicker.cljs:337", "src/app/main/ui/workspace/colorpalette.cljs:159" ], "translations" : { "en" : "Recent colors" } @@ -1782,13 +1788,13 @@ } }, "workspace.libraries.colors.small-thumbnails" : { - "used-in" : [ "src/app/main/ui/workspace/colorpalette.cljs:177" ], + "used-in" : [ "src/app/main/ui/workspace/colorpalette.cljs:176" ], "translations" : { "en" : "Small thumbnails" } }, "workspace.libraries.components" : { - "used-in" : [ "src/app/main/ui/workspace/libraries.cljs:36" ], + "used-in" : [ "src/app/main/ui/workspace/libraries.cljs:37" ], "translations" : { "en" : "%s components", "fr" : "", @@ -1797,7 +1803,7 @@ } }, "workspace.libraries.file-library" : { - "used-in" : [ "src/app/main/ui/workspace/libraries.cljs:80" ], + "used-in" : [ "src/app/main/ui/workspace/libraries.cljs:84" ], "translations" : { "en" : "File library", "fr" : "", @@ -1806,7 +1812,7 @@ } }, "workspace.libraries.graphics" : { - "used-in" : [ "src/app/main/ui/workspace/libraries.cljs:39" ], + "used-in" : [ "src/app/main/ui/workspace/libraries.cljs:40" ], "translations" : { "en" : "%s graphics", "fr" : "", @@ -1815,7 +1821,7 @@ } }, "workspace.libraries.in-this-file" : { - "used-in" : [ "src/app/main/ui/workspace/libraries.cljs:77" ], + "used-in" : [ "src/app/main/ui/workspace/libraries.cljs:81" ], "translations" : { "en" : "LIBRARIES IN THIS FILE", "fr" : "", @@ -1824,7 +1830,7 @@ } }, "workspace.libraries.libraries" : { - "used-in" : [ "src/app/main/ui/workspace/libraries.cljs:171" ], + "used-in" : [ "src/app/main/ui/workspace/libraries.cljs:175" ], "translations" : { "en" : "LIBRARIES", "fr" : "", @@ -1833,7 +1839,7 @@ } }, "workspace.libraries.library" : { - "used-in" : [ "src/app/main/ui/workspace/libraries.cljs:131" ], + "used-in" : [ "src/app/main/ui/workspace/libraries.cljs:135" ], "translations" : { "en" : "LIBRARY", "fr" : "", @@ -1842,7 +1848,7 @@ } }, "workspace.libraries.no-libraries-need-sync" : { - "used-in" : [ "src/app/main/ui/workspace/libraries.cljs:129" ], + "used-in" : [ "src/app/main/ui/workspace/libraries.cljs:133" ], "translations" : { "en" : "There are no Shared Libraries that need update", "fr" : "", @@ -1851,7 +1857,7 @@ } }, "workspace.libraries.no-matches-for" : { - "used-in" : [ "src/app/main/ui/workspace/libraries.cljs:117" ], + "used-in" : [ "src/app/main/ui/workspace/libraries.cljs:121" ], "translations" : { "en" : "No matches found for “%s“", "fr" : "Aucune correspondance pour “%s“", @@ -1860,7 +1866,7 @@ } }, "workspace.libraries.no-shared-libraries-available" : { - "used-in" : [ "src/app/main/ui/workspace/libraries.cljs:116" ], + "used-in" : [ "src/app/main/ui/workspace/libraries.cljs:120" ], "translations" : { "en" : "There are no Shared Libraries available", "fr" : "", @@ -1869,7 +1875,7 @@ } }, "workspace.libraries.remove" : { - "used-in" : [ "src/app/main/ui/workspace/libraries.cljs:87" ], + "used-in" : [ "src/app/main/ui/workspace/libraries.cljs:91" ], "translations" : { "en" : "Remove", "fr" : "", @@ -1878,7 +1884,7 @@ } }, "workspace.libraries.search-shared-libraries" : { - "used-in" : [ "src/app/main/ui/workspace/libraries.cljs:94" ], + "used-in" : [ "src/app/main/ui/workspace/libraries.cljs:98" ], "translations" : { "en" : "Search shared libraries", "fr" : "", @@ -1887,7 +1893,7 @@ } }, "workspace.libraries.shared-libraries" : { - "used-in" : [ "src/app/main/ui/workspace/libraries.cljs:91" ], + "used-in" : [ "src/app/main/ui/workspace/libraries.cljs:95" ], "translations" : { "en" : "SHARED LIBRARIES", "fr" : "", @@ -1895,8 +1901,26 @@ "es" : "BIBLIOTECAS COMPARTIDAS" } }, + "workspace.libraries.text.multiple-typography" : { + "used-in" : [ "src/app/main/ui/workspace/sidebar/options/text.cljs:264" ], + "translations" : { + "en" : "Multiple typographies" + } + }, + "workspace.libraries.text.multiple-typography-tooltip" : { + "used-in" : [ "src/app/main/ui/workspace/sidebar/options/text.cljs:266" ], + "translations" : { + "en" : "Unlink all typographies" + } + }, + "workspace.libraries.typography" : { + "used-in" : [ "src/app/main/ui/workspace/libraries.cljs:46" ], + "translations" : { + "en" : "%s typographies" + } + }, "workspace.libraries.update" : { - "used-in" : [ "src/app/main/ui/workspace/libraries.cljs:138" ], + "used-in" : [ "src/app/main/ui/workspace/libraries.cljs:142" ], "translations" : { "en" : "Update", "fr" : "", @@ -1905,7 +1929,7 @@ } }, "workspace.libraries.updates" : { - "used-in" : [ "src/app/main/ui/workspace/libraries.cljs:175" ], + "used-in" : [ "src/app/main/ui/workspace/libraries.cljs:179" ], "translations" : { "en" : "UPDATES", "fr" : "", @@ -2445,7 +2469,7 @@ } }, "workspace.options.text-options.align-bottom" : { - "used-in" : [ "src/app/main/ui/workspace/sidebar/options/text.cljs:270" ], + "used-in" : [ "src/app/main/ui/workspace/sidebar/options/text.cljs:118" ], "translations" : { "en" : "Align bottom", "fr" : "Aligner en bas", @@ -2454,7 +2478,7 @@ } }, "workspace.options.text-options.align-center" : { - "used-in" : [ "src/app/main/ui/workspace/sidebar/options/text.cljs:175" ], + "used-in" : [ "src/app/main/ui/workspace/sidebar/options/text.cljs:71" ], "translations" : { "en" : "Align center", "fr" : "Aligner au centre", @@ -2463,7 +2487,7 @@ } }, "workspace.options.text-options.align-justify" : { - "used-in" : [ "src/app/main/ui/workspace/sidebar/options/text.cljs:185" ], + "used-in" : [ "src/app/main/ui/workspace/sidebar/options/text.cljs:81" ], "translations" : { "en" : "Justify", "fr" : "Justifier", @@ -2472,7 +2496,7 @@ } }, "workspace.options.text-options.align-left" : { - "used-in" : [ "src/app/main/ui/workspace/sidebar/options/text.cljs:170" ], + "used-in" : [ "src/app/main/ui/workspace/sidebar/options/text.cljs:66" ], "translations" : { "en" : "Align left", "fr" : "Aligner à gauche", @@ -2481,7 +2505,7 @@ } }, "workspace.options.text-options.align-middle" : { - "used-in" : [ "src/app/main/ui/workspace/sidebar/options/text.cljs:265" ], + "used-in" : [ "src/app/main/ui/workspace/sidebar/options/text.cljs:113" ], "translations" : { "en" : "Align middle", "fr" : "Aligner au milieu", @@ -2490,7 +2514,7 @@ } }, "workspace.options.text-options.align-right" : { - "used-in" : [ "src/app/main/ui/workspace/sidebar/options/text.cljs:180" ], + "used-in" : [ "src/app/main/ui/workspace/sidebar/options/text.cljs:76" ], "translations" : { "en" : "Align right", "fr" : "Aligner à droite", @@ -2499,7 +2523,7 @@ } }, "workspace.options.text-options.align-top" : { - "used-in" : [ "src/app/main/ui/workspace/sidebar/options/text.cljs:260" ], + "used-in" : [ "src/app/main/ui/workspace/sidebar/options/text.cljs:108" ], "translations" : { "en" : "Align top", "fr" : "Aligner en haut", @@ -2508,7 +2532,7 @@ } }, "workspace.options.text-options.decoration" : { - "used-in" : [ "src/app/main/ui/workspace/sidebar/options/text.cljs:306" ], + "used-in" : [ "src/app/main/ui/workspace/sidebar/options/text.cljs:150" ], "translations" : { "en" : "Decoration", "fr" : "Décoration", @@ -2517,25 +2541,25 @@ } }, "workspace.options.text-options.grow-auto-height" : { - "used-in" : [ "src/app/main/ui/workspace/sidebar/options/text.cljs:287" ], + "used-in" : [ "src/app/main/ui/workspace/sidebar/options/text.cljs:135" ], "translations" : { "en" : "Auto height" } }, "workspace.options.text-options.grow-auto-width" : { - "used-in" : [ "src/app/main/ui/workspace/sidebar/options/text.cljs:282" ], + "used-in" : [ "src/app/main/ui/workspace/sidebar/options/text.cljs:130" ], "translations" : { "en" : "Auto width" } }, "workspace.options.text-options.grow-fixed" : { - "used-in" : [ "src/app/main/ui/workspace/sidebar/options/text.cljs:277" ], + "used-in" : [ "src/app/main/ui/workspace/sidebar/options/text.cljs:125" ], "translations" : { "en" : "Fixed" } }, "workspace.options.text-options.letter-spacing" : { - "used-in" : [ "src/app/main/ui/workspace/sidebar/options/text.cljs:224" ], + "used-in" : [ "src/app/main/ui/workspace/sidebar/options/typography.cljs:153" ], "translations" : { "en" : "Letter Spacing", "fr" : "Espacement de caractères", @@ -2544,7 +2568,7 @@ } }, "workspace.options.text-options.line-height" : { - "used-in" : [ "src/app/main/ui/workspace/sidebar/options/text.cljs:211" ], + "used-in" : [ "src/app/main/ui/workspace/sidebar/options/typography.cljs:140" ], "translations" : { "en" : "Line height", "fr" : "Hauteur de ligne", @@ -2553,7 +2577,7 @@ } }, "workspace.options.text-options.lowercase" : { - "used-in" : [ "src/app/main/ui/workspace/sidebar/options/text.cljs:353" ], + "used-in" : [ "src/app/main/ui/workspace/sidebar/options/typography.cljs:187" ], "translations" : { "en" : "Lowercase", "fr" : "Minuscule", @@ -2562,7 +2586,7 @@ } }, "workspace.options.text-options.none" : { - "used-in" : [ "src/app/main/ui/workspace/sidebar/options/text.cljs:309", "src/app/main/ui/workspace/sidebar/options/text.cljs:343" ], + "used-in" : [ "src/app/main/ui/workspace/sidebar/options/typography.cljs:177", "src/app/main/ui/workspace/sidebar/options/text.cljs:153" ], "translations" : { "en" : "None", "fr" : "Aucune", @@ -2571,7 +2595,7 @@ } }, "workspace.options.text-options.strikethrough" : { - "used-in" : [ "src/app/main/ui/workspace/sidebar/options/text.cljs:321" ], + "used-in" : [ "src/app/main/ui/workspace/sidebar/options/text.cljs:165" ], "translations" : { "en" : "Strikethrough", "fr" : "Barré", @@ -2580,7 +2604,7 @@ } }, "workspace.options.text-options.text-case" : { - "used-in" : [ "src/app/main/ui/workspace/sidebar/options/text.cljs:340" ], + "used-in" : [ "src/app/main/ui/workspace/sidebar/options/typography.cljs:174" ], "translations" : { "en" : "Case", "fr" : "Casse", @@ -2589,7 +2613,7 @@ } }, "workspace.options.text-options.title" : { - "used-in" : [ "src/app/main/ui/workspace/sidebar/options/text.cljs:379" ], + "used-in" : [ "src/app/main/ui/workspace/sidebar/options/text.cljs:189" ], "translations" : { "en" : "Text", "fr" : "Texte", @@ -2598,7 +2622,7 @@ } }, "workspace.options.text-options.title-group" : { - "used-in" : [ "src/app/main/ui/workspace/sidebar/options/text.cljs:378" ], + "used-in" : [ "src/app/main/ui/workspace/sidebar/options/text.cljs:188" ], "translations" : { "en" : "Group text", "ru" : "Текст группы", @@ -2606,7 +2630,7 @@ } }, "workspace.options.text-options.title-selection" : { - "used-in" : [ "src/app/main/ui/workspace/sidebar/options/text.cljs:377" ], + "used-in" : [ "src/app/main/ui/workspace/sidebar/options/text.cljs:187" ], "translations" : { "en" : "Selection text", "ru" : "Выбранный текст", @@ -2614,7 +2638,7 @@ } }, "workspace.options.text-options.titlecase" : { - "used-in" : [ "src/app/main/ui/workspace/sidebar/options/text.cljs:358" ], + "used-in" : [ "src/app/main/ui/workspace/sidebar/options/typography.cljs:192" ], "translations" : { "en" : "Titlecase", "fr" : "Titre", @@ -2623,7 +2647,7 @@ } }, "workspace.options.text-options.underline" : { - "used-in" : [ "src/app/main/ui/workspace/sidebar/options/text.cljs:315" ], + "used-in" : [ "src/app/main/ui/workspace/sidebar/options/text.cljs:159" ], "translations" : { "en" : "Underline", "fr" : "Souligner", @@ -2632,7 +2656,7 @@ } }, "workspace.options.text-options.uppercase" : { - "used-in" : [ "src/app/main/ui/workspace/sidebar/options/text.cljs:348" ], + "used-in" : [ "src/app/main/ui/workspace/sidebar/options/typography.cljs:182" ], "translations" : { "en" : "Uppercase", "fr" : "Majuscule", @@ -2767,7 +2791,7 @@ } }, "workspace.updates.dismiss" : { - "used-in" : [ "src/app/main/data/workspace/libraries.cljs:488" ], + "used-in" : [ "src/app/main/data/workspace/libraries.cljs:519" ], "translations" : { "en" : "Dismiss", "fr" : "", @@ -2776,7 +2800,7 @@ } }, "workspace.updates.there-are-updates" : { - "used-in" : [ "src/app/main/data/workspace/libraries.cljs:484" ], + "used-in" : [ "src/app/main/data/workspace/libraries.cljs:515" ], "translations" : { "en" : "There are updates in shared libraries", "fr" : "", @@ -2785,7 +2809,7 @@ } }, "workspace.updates.update" : { - "used-in" : [ "src/app/main/data/workspace/libraries.cljs:486" ], + "used-in" : [ "src/app/main/data/workspace/libraries.cljs:517" ], "translations" : { "en" : "Update", "fr" : "", @@ -2803,6 +2827,12 @@ } }, - "workspace.assets.typography": "Typographies", - "workspace.libraries.typography": "%s typographies" + "workspace.assets.typography.sample": "Ag", + "workspace.assets.typography.font-id": "Font", + "workspace.assets.typography.font-size": "Size", + "workspace.assets.typography.font-variant-id": "Variant", + "workspace.assets.typography.line-height": "Line Height", + "workspace.assets.typography.letter-spacing": "Letter Spacing", + "workspace.assets.typography.text-transform": "Text Transform", + "workspace.assets.typography.go-to-edit": "Go to style library file to edit" } diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index 0856407fe..e809a4c0b 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -73,10 +73,9 @@ (s/def ::layout-flags (s/coll-of ::layout-flag)) (def default-layout - #{;; :sitemap - ;; :sitemap-pages - ;; :layers - :assets + #{:sitemap + :sitemap-pages + :layers :element-options :rules :display-grid diff --git a/frontend/src/app/main/data/workspace/libraries.cljs b/frontend/src/app/main/data/workspace/libraries.cljs index 1a7328591..03aafbc22 100644 --- a/frontend/src/app/main/data/workspace/libraries.cljs +++ b/frontend/src/app/main/data/workspace/libraries.cljs @@ -520,19 +520,6 @@ :callback do-dismiss}] :sync-dialog)))))) - -(def default-typography - {:name "Source Sans Pro Regular" - :font-id "sourcesanspro" - :font-family "sourcesanspro" - :font-variant-id "regular" - :font-size "14" - :font-weight "400" - :font-style "normal" - :line-height "1.2" - :letter-spacing "0" - :text-transform "none"}) - (defn add-typography [typography] (let [typography (update typography :id #(or % (uuid/next)))] diff --git a/frontend/src/app/main/data/workspace/texts.cljs b/frontend/src/app/main/data/workspace/texts.cljs index 46da13c61..34616e94c 100644 --- a/frontend/src/app/main/data/workspace/texts.cljs +++ b/frontend/src/app/main/data/workspace/texts.cljs @@ -19,7 +19,8 @@ [app.common.geom.shapes :as geom] [app.main.data.workspace.common :as dwc] [app.main.fonts :as fonts] - [app.util.object :as obj])) + [app.util.object :as obj] + [app.util.text :as ut])) (defn create-editor [] @@ -117,26 +118,12 @@ (->> (tree-seq map? :children node) (filter match?))) -(defonce default-text-attrs - {:name "Source Sans Pro Regular" - :font-id "sourcesanspro" - :font-family "sourcesanspro" - :font-variant-id "regular" - :font-size "14" - :font-weight "400" - :font-style "normal" - :line-height "1.2" - :letter-spacing "0" - :text-transform "none" - :text-align "left" - :text-decoration "none"}) - (defn- shape-current-values [shape pred attrs] (let [root (:content shape) nodes (->> (nodes-seq pred root) (map #(if (is-text-node? %) - (merge default-text-attrs %) + (merge ut/default-text-attrs %) %)))] (geom/get-attrs-multi nodes attrs))) diff --git a/frontend/src/app/main/fonts.cljs b/frontend/src/app/main/fonts.cljs index afec1c0fa..a20d94d6e 100644 --- a/frontend/src/app/main/fonts.cljs +++ b/frontend/src/app/main/fonts.cljs @@ -21,8 +21,6 @@ [clojure.set :as set] [app.util.object :as obj])) -(defonce default-font "sourcesanspro") - (def google-fonts (preload-gfonts "fonts/gfonts.2020.04.23.json")) diff --git a/frontend/src/app/main/ui/shapes/text.cljs b/frontend/src/app/main/ui/shapes/text.cljs index de1a87f4f..3a67ed4ae 100644 --- a/frontend/src/app/main/ui/shapes/text.cljs +++ b/frontend/src/app/main/ui/shapes/text.cljs @@ -16,7 +16,8 @@ [app.common.data :as d] [app.common.geom.shapes :as geom] [app.common.geom.matrix :as gmt] - [app.util.object :as obj])) + [app.util.object :as obj] + [app.util.text :as ut])) ;; --- Text Editor Rendering @@ -54,7 +55,7 @@ text-transform (obj/get data "text-transform") line-height (obj/get data "line-height") - font-id (obj/get data "font-id" fonts/default-font) + font-id (obj/get data "font-id" (:font-id ut/default-text-attrs)) font-variant-id (obj/get data "font-variant-id") font-family (obj/get data "font-family") @@ -149,7 +150,7 @@ (fn [] (when (and embed-resources? (= type "root")) (let [font-to-embed (get-all-fonts node) - font-to-embed (if (empty? font-to-embed) #{{:font-id fonts/default-font}} font-to-embed) + font-to-embed (if (empty? font-to-embed) #{ut/default-text-attrs} font-to-embed) embeded (map embed-font font-to-embed)] (-> (p/all embeded) (p/then (fn [result] (reset! embeded-fonts (str/join "\n" result))))))))) diff --git a/frontend/src/app/main/ui/workspace/shapes/text.cljs b/frontend/src/app/main/ui/workspace/shapes/text.cljs index 1388fac07..9e2fd6b68 100644 --- a/frontend/src/app/main/ui/workspace/shapes/text.cljs +++ b/frontend/src/app/main/ui/workspace/shapes/text.cljs @@ -28,6 +28,7 @@ [app.main.fonts :as fonts] [app.util.color :as color] [app.util.dom :as dom] + [app.util.text :as ut] [app.common.geom.shapes :as geom] [app.util.object :as obj] [app.util.timers :as timers] @@ -135,7 +136,7 @@ text-transform (obj/get data "text-transform") line-height (obj/get data "line-height") - font-id (obj/get data "font-id" fonts/default-font) + font-id (obj/get data "font-id" (:font-id ut/default-text-attrs)) font-variant-id (obj/get data "font-variant-id") font-family (obj/get data "font-family") @@ -296,9 +297,9 @@ self (mf/ref-val self-ref) target (dom/get-target event) selecting? (mf/ref-val selecting-ref)] - (when-not (or (.contains sidebar target) - (.contains assets target) - (.contains self target) + (when-not (or (and sidebar (.contains sidebar target)) + (and assets (.contains assets target)) + (and self (.contains self target)) (and cpicker (.contains cpicker target))) (if selecting? (mf/set-ref-val! selecting-ref false) diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets.cljs b/frontend/src/app/main/ui/workspace/sidebar/assets.cljs index 06ac0034a..eeb4b1331 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/assets.cljs @@ -38,6 +38,7 @@ [app.util.i18n :as i18n :refer [tr t]] [app.util.router :as rt] [app.util.timers :as timers] + [app.util.text :as ut] [cuerdas.core :as str] [okulary.core :as l] [rumext.alpha :as mf])) @@ -330,7 +331,7 @@ :locale locale}])])])) (mf/defc typography-box - [{:keys [file-id local? typographies locale open? on-open on-close] :as props}] + [{:keys [file file-id local? typographies locale open? on-open on-close] :as props}] (let [state (mf/use-state {:detail-open? false :menu-open? false @@ -344,7 +345,7 @@ (mf/use-callback (mf/deps file-id) (fn [value opacity] - (st/emit! (dwl/add-typography dwl/default-typography)))) + (st/emit! (dwl/add-typography ut/default-typography)))) handle-change (mf/use-callback @@ -402,7 +403,7 @@ [:div.asset-group [:div.group-title {:class (when (not open?) "closed")} - [:span {:on-click #(if open? (on-close) (on-open))} i/arrow-slide "Typography" #_(t locale "workspace.assets.typography")] + [:span {:on-click #(if open? (on-close) (on-open))} i/arrow-slide (t locale "workspace.assets.typography")] [:span.num-assets (str "\u00A0(") (count typographies) ")"] ;; Unicode 00A0 is non-breaking space (when local? [:div.group-button {:on-click add-typography} i/plus])] @@ -422,6 +423,7 @@ [:& typography-entry {:key (:id typography) :typography typography + :file file :read-only? (not local?) :on-context-menu #(on-context-menu (:id typography) %) :on-change #(handle-change typography %) @@ -563,7 +565,8 @@ :on-close #(swap! toggles disj :colors)}]) (when show-typography? - [:& typography-box {:file-id (:id file) + [:& typography-box {:file file + :file-id (:id file) :local? local? :locale locale :typographies typographies diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/text.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/text.cljs index 08a211efe..4718358ef 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/text.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/text.cljs @@ -28,6 +28,7 @@ [app.util.dom :as dom] [app.main.fonts :as fonts] [app.util.i18n :as i18n :refer [tr t]] + [app.util.text :as ut] ["slate" :refer [Transforms]])) (def text-typography-attrs [:typography-ref-id :typography-ref-file]) @@ -223,7 +224,7 @@ (d/concat text-font-attrs text-spacing-attrs text-transform-attrs))) - typography (merge dwl/default-typography setted-values) + typography (merge ut/default-typography setted-values) typography (generate-typography-name typography)] (let [id (uuid/next)] (st/emit! (dwl/add-typography (assoc typography :id id))) @@ -255,14 +256,16 @@ (cond typography [:& typography-entry {:typography typography + :read-only? (some? (:typography-ref-file values)) + :file (get shared-libs (:typography-ref-file values)) :on-deattach handle-deattach-typography :on-change handle-change-typography}] (= (:typography-ref-id values) :multiple) [:div.multiple-typography - [:div.multiple-typography-text "Multiple typographies"] + [:div.multiple-typography-text (t locale "workspace.libraries.text.multiple-typography")] [:div.multiple-typography-button {:on-click handle-deattach-typography - :title "Unlink all typographies"} i/unchain]] + :title (t locale "workspace.libraries.text.multiple-typography-tooltip")} i/unchain]] :else [:> typography-options opts]) diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/typography.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/typography.cljs index 9f93b8e05..08f83a2c9 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/typography.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/typography.cljs @@ -20,8 +20,10 @@ [app.main.ui.workspace.sidebar.options.common :refer [advanced-options]] [app.main.fonts :as fonts] [app.util.dom :as dom] + [app.util.text :as ut] [app.util.timers :as ts] - [app.util.i18n :as i18n :refer [t]])) + [app.util.i18n :as i18n :refer [t]] + [app.util.router :as rt])) (defn- attr->string [value] (if (= value :multiple) @@ -49,9 +51,9 @@ font-size font-variant-id]} values - font-id (or font-id "sourcesanspro") - font-size (or font-size "14") - font-variant-id (or font-variant-id "regular") + font-id (or font-id (:font-id ut/default-text-attrs)) + font-size (or font-size (:font-size ut/default-text-attrs)) + font-variant-id (or font-variant-id (:font-variant-id ut/default-text-attrs)) fonts (mf/deref fonts/fontsdb) font (get fonts font-id) @@ -209,11 +211,21 @@ (mf/defc typography-entry - [{:keys [typography read-only? on-select on-change on-deattach on-context-menu editting? focus-name?]}] - (let [open? (mf/use-state editting?) + [{:keys [typography read-only? on-select on-change on-deattach on-context-menu editting? focus-name? file]}] + (let [locale (mf/deref i18n/locale) + open? (mf/use-state editting?) selected (mf/deref refs/selected-shapes) hover-deattach (mf/use-state false) - name-input-ref (mf/use-ref nil)] + name-input-ref (mf/use-ref nil) + + #_(rt/resolve router :workspace + {:project-id (:project-id file) + :file-id (:id file)} + {:page-id (get-in file [:data :pages 0])}) + handle-go-to-edit + (fn [] (st/emit! (rt/nav :workspace {:project-id (:project-id file) + :file-id (:id file)} + {:page-id (get-in file [:data :pages 0])})))] (mf/use-effect (mf/deps editting?) @@ -240,7 +252,7 @@ {:style {:font-family (:font-family typography) :font-weight (:font-weight typography) :font-style (:font-style typography)}} - "Ag"] + (t locale "workspace.assets.typography.sample")] [:div.typography-name (:name typography)]] [:div.element-set-actions (when on-deattach @@ -262,27 +274,32 @@ [:spang (:name typography)]] [:div.row-flex - [:span.label "Font"] + [:span.label (t locale "workspace.assets.typography.font-id")] [:span (:font-id typography)]] [:div.row-flex - [:span.label "Size"] + [:span.label (t locale "workspace.assets.typography.font-variant-id")] + [:span (:font-variant-id typography)]] + + [:div.row-flex + [:span.label (t locale "workspace.assets.typography.font-size")] [:span (:font-size typography)]] [:div.row-flex - [:span.label "Line Height"] + [:span.label (t locale "workspace.assets.typography.line-height")] [:span (:line-height typography)]] [:div.row-flex - [:span.label "Letter spacing"] + [:span.label (t locale "workspace.assets.typography.letter-spacing")] [:span (:letter-spacing typography)]] [:div.row-flex - [:span.label "Text transform"] + [:span.label (t locale "workspace.assets.typography.text-transform")] [:span (:text-transform typography)]] [:div.go-to-lib-button - "Go to style library file to edit"]] + {:on-click handle-go-to-edit} + (t locale "workspace.assets.typography.go-to-edit")]] [:* [:div.element-set-content diff --git a/frontend/src/app/util/text.cljs b/frontend/src/app/util/text.cljs index 0e6c4e2bb..4adea0fb3 100644 --- a/frontend/src/app/util/text.cljs +++ b/frontend/src/app/util/text.cljs @@ -1,5 +1,34 @@ (ns app.util.text) +(defonce default-text-attrs + {:font-id "sourcesanspro" + :font-family "sourcesanspro" + :font-variant-id "regular" + :font-size "14" + :font-weight "400" + :font-style "normal" + :line-height "1.2" + :letter-spacing "0" + :text-transform "none" + :text-align "left" + :text-decoration "none"}) + +(def typography-fields + [:font-id + :font-family + :font-variant-id + :font-size + :font-weight + :font-style + :line-height + :letter-spacing + :text-transform]) + +(def default-typography + (merge + {:name "Source Sans Pro Regular"} + (select-keys default-text-attrs typography-fields))) + (defn some-node [predicate node] (or (predicate node)