diff --git a/app/javascript/flavours/cybrespace/fonts/premillenium/MSSansSerif.ttf b/app/javascript/flavours/cybrespace/fonts/premillenium/MSSansSerif.ttf new file mode 100644 index 0000000..3afd76f Binary files /dev/null and b/app/javascript/flavours/cybrespace/fonts/premillenium/MSSansSerif.ttf differ diff --git a/app/javascript/flavours/cybrespace/images/alert_badge.png b/app/javascript/flavours/cybrespace/images/alert_badge.png new file mode 100644 index 0000000..681f6e6 Binary files /dev/null and b/app/javascript/flavours/cybrespace/images/alert_badge.png differ diff --git a/app/javascript/flavours/cybrespace/images/background-cybre-light.png b/app/javascript/flavours/cybrespace/images/background-cybre-light.png new file mode 100644 index 0000000..44d76c2 Binary files /dev/null and b/app/javascript/flavours/cybrespace/images/background-cybre-light.png differ diff --git a/app/javascript/flavours/cybrespace/images/background-cybre.png b/app/javascript/flavours/cybrespace/images/background-cybre.png new file mode 100644 index 0000000..151fd55 Binary files /dev/null and b/app/javascript/flavours/cybrespace/images/background-cybre.png differ diff --git a/app/javascript/flavours/cybrespace/images/clippy_frame.png b/app/javascript/flavours/cybrespace/images/clippy_frame.png new file mode 100644 index 0000000..7f2cd6a Binary files /dev/null and b/app/javascript/flavours/cybrespace/images/clippy_frame.png differ diff --git a/app/javascript/flavours/cybrespace/images/clippy_wave.gif b/app/javascript/flavours/cybrespace/images/clippy_wave.gif new file mode 100644 index 0000000..4d2e38a Binary files /dev/null and b/app/javascript/flavours/cybrespace/images/clippy_wave.gif differ diff --git a/app/javascript/flavours/cybrespace/images/cybre-preview.png b/app/javascript/flavours/cybrespace/images/cybre-preview.png new file mode 100644 index 0000000..810da51 Binary files /dev/null and b/app/javascript/flavours/cybrespace/images/cybre-preview.png differ diff --git a/app/javascript/flavours/cybrespace/images/elephant-fren.png b/app/javascript/flavours/cybrespace/images/elephant-fren.png new file mode 100644 index 0000000..3b64edf Binary files /dev/null and b/app/javascript/flavours/cybrespace/images/elephant-fren.png differ diff --git a/app/javascript/flavours/cybrespace/images/elephant_ui_disappointed.svg b/app/javascript/flavours/cybrespace/images/elephant_ui_disappointed.svg new file mode 100644 index 0000000..580c15a --- /dev/null +++ b/app/javascript/flavours/cybrespace/images/elephant_ui_disappointed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/javascript/flavours/cybrespace/images/elephant_ui_greeting.svg b/app/javascript/flavours/cybrespace/images/elephant_ui_greeting.svg new file mode 100644 index 0000000..f3eb4b1 --- /dev/null +++ b/app/javascript/flavours/cybrespace/images/elephant_ui_greeting.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/javascript/flavours/cybrespace/images/elephant_ui_plane.svg b/app/javascript/flavours/cybrespace/images/elephant_ui_plane.svg new file mode 100644 index 0000000..ca675c9 --- /dev/null +++ b/app/javascript/flavours/cybrespace/images/elephant_ui_plane.svg @@ -0,0 +1 @@ + diff --git a/app/javascript/flavours/cybrespace/images/elephant_ui_working.svg b/app/javascript/flavours/cybrespace/images/elephant_ui_working.svg new file mode 100644 index 0000000..8ba475d --- /dev/null +++ b/app/javascript/flavours/cybrespace/images/elephant_ui_working.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/javascript/flavours/cybrespace/images/floppy-1.svg b/app/javascript/flavours/cybrespace/images/floppy-1.svg new file mode 100644 index 0000000..08c1e4a --- /dev/null +++ b/app/javascript/flavours/cybrespace/images/floppy-1.svg @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/javascript/flavours/cybrespace/images/floppy-2.svg b/app/javascript/flavours/cybrespace/images/floppy-2.svg new file mode 100644 index 0000000..d57a72a --- /dev/null +++ b/app/javascript/flavours/cybrespace/images/floppy-2.svg @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/javascript/flavours/cybrespace/images/floppy-3.svg b/app/javascript/flavours/cybrespace/images/floppy-3.svg new file mode 100644 index 0000000..2fe8ef3 --- /dev/null +++ b/app/javascript/flavours/cybrespace/images/floppy-3.svg @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/javascript/flavours/cybrespace/images/header-cybre-alt.jpg b/app/javascript/flavours/cybrespace/images/header-cybre-alt.jpg new file mode 100644 index 0000000..4d2b6b3 Binary files /dev/null and b/app/javascript/flavours/cybrespace/images/header-cybre-alt.jpg differ diff --git a/app/javascript/flavours/cybrespace/images/header-cybre-colour.jpg b/app/javascript/flavours/cybrespace/images/header-cybre-colour.jpg new file mode 100644 index 0000000..2d1b5b4 Binary files /dev/null and b/app/javascript/flavours/cybrespace/images/header-cybre-colour.jpg differ diff --git a/app/javascript/flavours/cybrespace/images/header-cybre.jpeg b/app/javascript/flavours/cybrespace/images/header-cybre.jpeg new file mode 100644 index 0000000..e9d7b33 Binary files /dev/null and b/app/javascript/flavours/cybrespace/images/header-cybre.jpeg differ diff --git a/app/javascript/flavours/cybrespace/images/icon_about.png b/app/javascript/flavours/cybrespace/images/icon_about.png new file mode 100644 index 0000000..08b76dc Binary files /dev/null and b/app/javascript/flavours/cybrespace/images/icon_about.png differ diff --git a/app/javascript/flavours/cybrespace/images/icon_blocks.png b/app/javascript/flavours/cybrespace/images/icon_blocks.png new file mode 100644 index 0000000..8b14908 Binary files /dev/null and b/app/javascript/flavours/cybrespace/images/icon_blocks.png differ diff --git a/app/javascript/flavours/cybrespace/images/icon_bookmarks.png b/app/javascript/flavours/cybrespace/images/icon_bookmarks.png new file mode 100644 index 0000000..b0cff13 Binary files /dev/null and b/app/javascript/flavours/cybrespace/images/icon_bookmarks.png differ diff --git a/app/javascript/flavours/cybrespace/images/icon_cached.svg b/app/javascript/flavours/cybrespace/images/icon_cached.svg new file mode 100644 index 0000000..1087c43 --- /dev/null +++ b/app/javascript/flavours/cybrespace/images/icon_cached.svg @@ -0,0 +1,2 @@ + + diff --git a/app/javascript/flavours/cybrespace/images/icon_developers.png b/app/javascript/flavours/cybrespace/images/icon_developers.png new file mode 100644 index 0000000..c6d2e18 Binary files /dev/null and b/app/javascript/flavours/cybrespace/images/icon_developers.png differ diff --git a/app/javascript/flavours/cybrespace/images/icon_direct.png b/app/javascript/flavours/cybrespace/images/icon_direct.png new file mode 100644 index 0000000..71e898a Binary files /dev/null and b/app/javascript/flavours/cybrespace/images/icon_direct.png differ diff --git a/app/javascript/flavours/cybrespace/images/icon_docs.png b/app/javascript/flavours/cybrespace/images/icon_docs.png new file mode 100644 index 0000000..6af1c82 Binary files /dev/null and b/app/javascript/flavours/cybrespace/images/icon_docs.png differ diff --git a/app/javascript/flavours/cybrespace/images/icon_domain_blocks.png b/app/javascript/flavours/cybrespace/images/icon_domain_blocks.png new file mode 100644 index 0000000..ed37504 Binary files /dev/null and b/app/javascript/flavours/cybrespace/images/icon_domain_blocks.png differ diff --git a/app/javascript/flavours/cybrespace/images/icon_done.svg b/app/javascript/flavours/cybrespace/images/icon_done.svg new file mode 100644 index 0000000..446af14 --- /dev/null +++ b/app/javascript/flavours/cybrespace/images/icon_done.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/app/javascript/flavours/cybrespace/images/icon_email.svg b/app/javascript/flavours/cybrespace/images/icon_email.svg new file mode 100644 index 0000000..6d0ad9d --- /dev/null +++ b/app/javascript/flavours/cybrespace/images/icon_email.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/app/javascript/flavours/cybrespace/images/icon_file_download.svg b/app/javascript/flavours/cybrespace/images/icon_file_download.svg new file mode 100644 index 0000000..53e97e4 --- /dev/null +++ b/app/javascript/flavours/cybrespace/images/icon_file_download.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/app/javascript/flavours/cybrespace/images/icon_flag.svg b/app/javascript/flavours/cybrespace/images/icon_flag.svg new file mode 100644 index 0000000..3939c9d --- /dev/null +++ b/app/javascript/flavours/cybrespace/images/icon_flag.svg @@ -0,0 +1,4 @@ + + + + diff --git a/app/javascript/flavours/cybrespace/images/icon_follow_requests.png b/app/javascript/flavours/cybrespace/images/icon_follow_requests.png new file mode 100644 index 0000000..4123e2a Binary files /dev/null and b/app/javascript/flavours/cybrespace/images/icon_follow_requests.png differ diff --git a/app/javascript/flavours/cybrespace/images/icon_grade.svg b/app/javascript/flavours/cybrespace/images/icon_grade.svg new file mode 100644 index 0000000..f48b468 --- /dev/null +++ b/app/javascript/flavours/cybrespace/images/icon_grade.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/app/javascript/flavours/cybrespace/images/icon_home.png b/app/javascript/flavours/cybrespace/images/icon_home.png new file mode 100644 index 0000000..66ce779 Binary files /dev/null and b/app/javascript/flavours/cybrespace/images/icon_home.png differ diff --git a/app/javascript/flavours/cybrespace/images/icon_invite.png b/app/javascript/flavours/cybrespace/images/icon_invite.png new file mode 100644 index 0000000..21156ec Binary files /dev/null and b/app/javascript/flavours/cybrespace/images/icon_invite.png differ diff --git a/app/javascript/flavours/cybrespace/images/icon_keyboard_shortcuts.png b/app/javascript/flavours/cybrespace/images/icon_keyboard_shortcuts.png new file mode 100644 index 0000000..d66f393 Binary files /dev/null and b/app/javascript/flavours/cybrespace/images/icon_keyboard_shortcuts.png differ diff --git a/app/javascript/flavours/cybrespace/images/icon_likes.png b/app/javascript/flavours/cybrespace/images/icon_likes.png new file mode 100644 index 0000000..17d7a9c Binary files /dev/null and b/app/javascript/flavours/cybrespace/images/icon_likes.png differ diff --git a/app/javascript/flavours/cybrespace/images/icon_lists.png b/app/javascript/flavours/cybrespace/images/icon_lists.png new file mode 100644 index 0000000..3828946 Binary files /dev/null and b/app/javascript/flavours/cybrespace/images/icon_lists.png differ diff --git a/app/javascript/flavours/cybrespace/images/icon_local.png b/app/javascript/flavours/cybrespace/images/icon_local.png new file mode 100644 index 0000000..5f82df3 Binary files /dev/null and b/app/javascript/flavours/cybrespace/images/icon_local.png differ diff --git a/app/javascript/flavours/cybrespace/images/icon_lock_open.svg b/app/javascript/flavours/cybrespace/images/icon_lock_open.svg new file mode 100644 index 0000000..3288b46 --- /dev/null +++ b/app/javascript/flavours/cybrespace/images/icon_lock_open.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/app/javascript/flavours/cybrespace/images/icon_logout.png b/app/javascript/flavours/cybrespace/images/icon_logout.png new file mode 100644 index 0000000..7ff806f Binary files /dev/null and b/app/javascript/flavours/cybrespace/images/icon_logout.png differ diff --git a/app/javascript/flavours/cybrespace/images/icon_mobile_apps.png b/app/javascript/flavours/cybrespace/images/icon_mobile_apps.png new file mode 100644 index 0000000..a7cbd78 Binary files /dev/null and b/app/javascript/flavours/cybrespace/images/icon_mobile_apps.png differ diff --git a/app/javascript/flavours/cybrespace/images/icon_mutes.png b/app/javascript/flavours/cybrespace/images/icon_mutes.png new file mode 100644 index 0000000..c2225e9 Binary files /dev/null and b/app/javascript/flavours/cybrespace/images/icon_mutes.png differ diff --git a/app/javascript/flavours/cybrespace/images/icon_notifications.png b/app/javascript/flavours/cybrespace/images/icon_notifications.png new file mode 100644 index 0000000..0aaf5e6 Binary files /dev/null and b/app/javascript/flavours/cybrespace/images/icon_notifications.png differ diff --git a/app/javascript/flavours/cybrespace/images/icon_person_add.svg b/app/javascript/flavours/cybrespace/images/icon_person_add.svg new file mode 100644 index 0000000..068b8ae --- /dev/null +++ b/app/javascript/flavours/cybrespace/images/icon_person_add.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/app/javascript/flavours/cybrespace/images/icon_pin.png b/app/javascript/flavours/cybrespace/images/icon_pin.png new file mode 100644 index 0000000..2329d8c Binary files /dev/null and b/app/javascript/flavours/cybrespace/images/icon_pin.png differ diff --git a/app/javascript/flavours/cybrespace/images/icon_profile_directory.png b/app/javascript/flavours/cybrespace/images/icon_profile_directory.png new file mode 100644 index 0000000..05a9421 Binary files /dev/null and b/app/javascript/flavours/cybrespace/images/icon_profile_directory.png differ diff --git a/app/javascript/flavours/cybrespace/images/icon_public.png b/app/javascript/flavours/cybrespace/images/icon_public.png new file mode 100644 index 0000000..3c09460 Binary files /dev/null and b/app/javascript/flavours/cybrespace/images/icon_public.png differ diff --git a/app/javascript/flavours/cybrespace/images/icon_reply.svg b/app/javascript/flavours/cybrespace/images/icon_reply.svg new file mode 100644 index 0000000..cf6a09a --- /dev/null +++ b/app/javascript/flavours/cybrespace/images/icon_reply.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/app/javascript/flavours/cybrespace/images/icon_security.png b/app/javascript/flavours/cybrespace/images/icon_security.png new file mode 100644 index 0000000..ccdbfaf Binary files /dev/null and b/app/javascript/flavours/cybrespace/images/icon_security.png differ diff --git a/app/javascript/flavours/cybrespace/images/icon_settings.png b/app/javascript/flavours/cybrespace/images/icon_settings.png new file mode 100644 index 0000000..07f5c45 Binary files /dev/null and b/app/javascript/flavours/cybrespace/images/icon_settings.png differ diff --git a/app/javascript/flavours/cybrespace/images/icon_tos.png b/app/javascript/flavours/cybrespace/images/icon_tos.png new file mode 100644 index 0000000..d0dbb13 Binary files /dev/null and b/app/javascript/flavours/cybrespace/images/icon_tos.png differ diff --git a/app/javascript/flavours/cybrespace/images/logo-cybre-light.png b/app/javascript/flavours/cybrespace/images/logo-cybre-light.png new file mode 100644 index 0000000..91908f6 Binary files /dev/null and b/app/javascript/flavours/cybrespace/images/logo-cybre-light.png differ diff --git a/app/javascript/flavours/cybrespace/images/logo-cybre.png b/app/javascript/flavours/cybrespace/images/logo-cybre.png new file mode 100644 index 0000000..41dd8fd Binary files /dev/null and b/app/javascript/flavours/cybrespace/images/logo-cybre.png differ diff --git a/app/javascript/flavours/cybrespace/images/logo.svg b/app/javascript/flavours/cybrespace/images/logo.svg new file mode 100644 index 0000000..034a9c2 --- /dev/null +++ b/app/javascript/flavours/cybrespace/images/logo.svg @@ -0,0 +1 @@ + diff --git a/app/javascript/flavours/cybrespace/images/logo_alt.svg b/app/javascript/flavours/cybrespace/images/logo_alt.svg new file mode 100644 index 0000000..102d4c7 --- /dev/null +++ b/app/javascript/flavours/cybrespace/images/logo_alt.svg @@ -0,0 +1 @@ + diff --git a/app/javascript/flavours/cybrespace/images/logo_full.svg b/app/javascript/flavours/cybrespace/images/logo_full.svg new file mode 100644 index 0000000..03bcf93 --- /dev/null +++ b/app/javascript/flavours/cybrespace/images/logo_full.svg @@ -0,0 +1 @@ + diff --git a/app/javascript/flavours/cybrespace/images/logo_transparent.svg b/app/javascript/flavours/cybrespace/images/logo_transparent.svg new file mode 100644 index 0000000..a1e7b40 --- /dev/null +++ b/app/javascript/flavours/cybrespace/images/logo_transparent.svg @@ -0,0 +1 @@ + diff --git a/app/javascript/flavours/cybrespace/images/logo_transparent_black.svg b/app/javascript/flavours/cybrespace/images/logo_transparent_black.svg new file mode 100644 index 0000000..e44bcf5 --- /dev/null +++ b/app/javascript/flavours/cybrespace/images/logo_transparent_black.svg @@ -0,0 +1 @@ + diff --git a/app/javascript/flavours/cybrespace/images/logo_transparent_white.svg b/app/javascript/flavours/cybrespace/images/logo_transparent_white.svg new file mode 100644 index 0000000..f061ffe --- /dev/null +++ b/app/javascript/flavours/cybrespace/images/logo_transparent_white.svg @@ -0,0 +1 @@ + diff --git a/app/javascript/flavours/cybrespace/images/preview.jpg b/app/javascript/flavours/cybrespace/images/preview.jpg new file mode 100644 index 0000000..ec28567 Binary files /dev/null and b/app/javascript/flavours/cybrespace/images/preview.jpg differ diff --git a/app/javascript/flavours/cybrespace/images/reticle.png b/app/javascript/flavours/cybrespace/images/reticle.png new file mode 100644 index 0000000..41a5d1c Binary files /dev/null and b/app/javascript/flavours/cybrespace/images/reticle.png differ diff --git a/app/javascript/flavours/cybrespace/images/screen_federation.svg b/app/javascript/flavours/cybrespace/images/screen_federation.svg new file mode 100644 index 0000000..7019a73 --- /dev/null +++ b/app/javascript/flavours/cybrespace/images/screen_federation.svg @@ -0,0 +1 @@ + diff --git a/app/javascript/flavours/cybrespace/images/screen_hello.svg b/app/javascript/flavours/cybrespace/images/screen_hello.svg new file mode 100644 index 0000000..7bcdd0a --- /dev/null +++ b/app/javascript/flavours/cybrespace/images/screen_hello.svg @@ -0,0 +1 @@ + diff --git a/app/javascript/flavours/cybrespace/images/screen_interactions.svg b/app/javascript/flavours/cybrespace/images/screen_interactions.svg new file mode 100644 index 0000000..66a36f9 --- /dev/null +++ b/app/javascript/flavours/cybrespace/images/screen_interactions.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/javascript/flavours/cybrespace/images/start.png b/app/javascript/flavours/cybrespace/images/start.png new file mode 100644 index 0000000..7843455 Binary files /dev/null and b/app/javascript/flavours/cybrespace/images/start.png differ diff --git a/app/javascript/flavours/cybrespace/images/void.png b/app/javascript/flavours/cybrespace/images/void.png new file mode 100644 index 0000000..d730666 Binary files /dev/null and b/app/javascript/flavours/cybrespace/images/void.png differ diff --git a/app/javascript/flavours/cybrespace/locales/en.js b/app/javascript/flavours/cybrespace/locales/en.js new file mode 100644 index 0000000..477cb42 --- /dev/null +++ b/app/javascript/flavours/cybrespace/locales/en.js @@ -0,0 +1,145 @@ +import inherited from "mastodon/locales/en.json"; + +const messages = { + "account.block_domain": "Hide everything from {domain}", + "account.disclaimer_full": "THESE NUMBERS ARE THE STUFF WHAT YOUR SERVER KNOWS ABOUT AND THERE MIGHT BE MORE THAT IT DONT KNOW ABOUT.", + "account.domain_blocked": "Domain hidden", + "account.edit_profile": "edit ~/.profile", + "account.posts": "Pings", + "account.posts_with_replies": "Pings with replies", + "account.show_reblogs": "Show boosts from @{name}", + "account.unblock_domain": "Unhide {domain}", + "account.view_full_profile": "View full profile", + "column.blocks": "~/.blocked", + "column.bookmarks": "~/.bookmarks", + "column.domain_blocks": "~/.blocked_domains", + "column.community": "/timelines/local", + "column.direct": "~/.dms", + "column.favourites": "~/.florps", + "column.follow_requests": "~/.follow-requests", + "column.home": "/timelines/home", + "column.mutes": "~/.muted", + "column.notifications": "~/.notifications", + "column.pins": "~/.pinned", + "column.public": "/timelines/federated", + "column_back_button.label": "cd ..", + "column_header.hide_settings": "Hide settings", + "column_header.show_settings": "Show settings", + "column_subheading.navigation": "Navigation", + "column_subheading.settings": "Settings", + "column_header.profile": "~/.profile", + "compose.attach": "Attach...", + "compose.attach.doodle": "Draw something", + "compose.attach.upload": "Upload a file", + "compose_form.hashtag_warning": "This ping won't be listed under any hashtag as it is unlisted. Only public pings can be searched by hashtag.", + "compose_form.placeholder": "What is in your databanks?", + "compose_form.publish": "Ping", + "confirmations.delete.message": "Are you sure you want to delete this status?", + "confirmations.delete_list.confirm": "Delete", + "confirmations.delete_list.message": "Are you sure you want to permanently delete this list?", + "confirmations.domain_block.confirm": "Hide entire domain", + "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable.", + "doodle_button.label": "Add a drawing", + "embed.instructions": "Embed this status on your website by copying the code below.", + "empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.", + "getting_started.appsshort": "Apps", + "getting_started.faq": "FAQ", + "getting_started.open_source_notice": "Mastodon is open source software. You can contribute or report issues at {github}.", + "getting_started.onboarding": "~/tour.sh", + "getting_started.userguide": "User Guide", + "getting_started.security": "~/.config", + "getting_started.heading": "~/getting_started", + "home.column_settings.advanced": "Advanced", + "home.column_settings.filter_regex": "Filter out by regular expressions", + "home.column_settings.show_reblogs": "Show relays", + "home.settings": "Column settings", + "keyboard_shortcuts.column": "to focus a status in one of the columns", + "keyboard_shortcuts.boost": "Relay", + "keyboard_shortcuts.favourite": "Florp", + "keyboard_shortcuts.bookmark": "Bookmark", + "keyboard_shortcuts.toggle_collapse": "Collapse/uncollapse pings", + "keyboard_shortcuts.column": "Focus a ping in one of the columns", + "keyboard_shortcuts.secondary_toot": "Send ping using secondary privacy setting", + "keyboard_shortcuts.favourites": "to open ~/.florps", + "keyboard_shortcuts.down": "Move down in the list", + "keyboard_shortcuts.enter": "Open ping", + "keyboard_shortcuts.my_profile": "Open ~/.profile", + "keyboard_shortcuts.notifications": "Open ~/.notifications", + "keyboard_shortcuts.heading": "Keyboard Shortcuts", + "keyboard_shortcuts.toot": "Start a brand new ping", + "media_gallery.toggle_visible": "Toggle visibility", + "navigation_bar.blocks": "~/.blocks", + "navigation_bar.featured_users": "~/featured_users.txt", + "navigation_bar.domain_blocks": "~/.blocked_domains", + "navigation_bar.explore": "/usr/bin/explore", + "navigation_bar.bookmarks": "~/.bookmarks", + "navigation_bar.community_timeline": "/timelines/local", + "navigation_bar.direct": "~/.dms", + "navigation_bar.edit_profile": "edit ~/.profile", + "navigation_bar.favourites": "~/.florps", + "navigation_bar.follow_requests": "~/.follow-requests", + "navigation_bar.info": "/about/more", + "navigation_bar.keyboard_shortcuts": "~/.kbd/shortcuts.conf", + "navigation_bar.lists": "~/.lists", + "navigation_bar.logout": "Jack out", + "navigation_bar.mutes": "~/.muted", + "navigation_bar.pins": "~/.pinned", + "navigation_bar.preferences": "edit ~/.config", + "navigation_bar.app_settings": "edit ~/.app_config", + "navigation_bar.public_timeline": "/timelines/federated", + "navigation_bar.misc": "/etc", + "notification.favourite": "{name} florped your ping", + "notification.reblog": "{name} relayed your ping", + "notifications.column_settings.push_meta": "This device", + "notifications.column_settings.reblog": "Boosts:", + "onboarding.done": "Done", + "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.", + "onboarding.page_four.home": "The home timeline shows posts from people you follow.", + "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.", + "onboarding.page_one.federation": "Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.", + "onboarding.page_one.full_handle": "Your full handle", + "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.", + "onboarding.page_one.welcome": "Welcome to Mastodon!", + "onboarding.page_six.admin": "Your instance's admin is {admin}.", + "onboarding.page_six.almost_done": "Almost done...", + "onboarding.page_six.appetoot": "Hang ten on the cybrewaves!", + "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.", + "onboarding.page_six.github": "Mastodon is free open-source software. You can report bugs, request features, or contribute to the code on {github}.", + "onboarding.page_six.guidelines": "community guidelines", + "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!", + "onboarding.page_six.various_app": "mobile apps", + "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.", + "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.", + "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", + "onboarding.skip": "Skip", + "privacy.change": "Adjust status privacy", + "privacy.direct.long": "Post to mentioned users only", + "privacy.private.long": "Post to followers only", + "privacy.public.long": "Post to public timelines", + "privacy.unlisted.long": "Do not post to public timelines", + "report.hint": "The report will be sent to your instance moderators. You can provide an explanation of why you are reporting this account below:", + "search.placeholder": "Query...", + "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", + "search_popout.tips.status": "status", + "search_results.statuses": "Pings", + "standalone.public_title": "Peer into the data grid...", + "status.cannot_reblog": "This ping cannot be relayed", + "status.favourite": "Florp", + "status.open": "Expand this status", + "status.pinned": "Pinned ping", + "status.reblog": "Relay", + "status.reblogged_by": "{name} relayed", + "status.sensitive_toggle": "Click to view", + "tabs_bar.federated_timeline": "/timelines/federated", + "tabs_bar.home": "/timelines/home", + "tabs_bar.local_timeline": "/timelines/local", + "tabs_bar.notifications": "~/.notifications", + "upload_button.label": "Add media", + "upload_form.focus": "Crop", + "upload_form.undo": "Undo", + "video_player.toggle_sound": "Toggle sound", + "video_player.toggle_visible": "Toggle visibility", + "video_player.video_error": "Video could not be played" +}; + +export default Object.assign({}, inherited, messages); diff --git a/app/javascript/flavours/cybrespace/names.yml b/app/javascript/flavours/cybrespace/names.yml new file mode 100644 index 0000000..5549a38 --- /dev/null +++ b/app/javascript/flavours/cybrespace/names.yml @@ -0,0 +1,5 @@ +en: + flavours: + cybrespace: + description: A theme inspired by the cybre.space instance. + name: Cybre Edition diff --git a/app/javascript/flavours/cybrespace/pack/common.js b/app/javascript/flavours/cybrespace/pack/common.js new file mode 100644 index 0000000..6291b18 --- /dev/null +++ b/app/javascript/flavours/cybrespace/pack/common.js @@ -0,0 +1,2 @@ +import 'packs/public-path'; +import 'styles/application.scss'; diff --git a/app/javascript/flavours/cybrespace/pack/features/notification.js b/app/javascript/flavours/cybrespace/pack/features/notification.js new file mode 100644 index 0000000..c3debb1 --- /dev/null +++ b/app/javascript/flavours/cybrespace/pack/features/notification.js @@ -0,0 +1,430 @@ +import React from 'react'; +import ImmutablePropTypes from 'react-immutable-proptypes'; +import { injectIntl, FormattedMessage, defineMessages } from 'react-intl'; +import { HotKeys } from 'react-hotkeys'; +import PropTypes from 'prop-types'; +import ImmutablePureComponent from 'react-immutable-pure-component'; +import { me } from 'mastodon/initial_state'; +import StatusContainer from 'mastodon/containers/status_container'; +import AccountContainer from 'mastodon/containers/account_container'; +import Report from './report'; +import FollowRequestContainer from '../containers/follow_request_container'; +import Icon from 'mastodon/components/icon'; +import Permalink from 'mastodon/components/permalink'; +import classNames from 'classnames'; + +const messages = defineMessages({ + favourite: { id: 'notification.favourite', defaultMessage: '{name} favourited your status' }, + follow: { id: 'notification.follow', defaultMessage: '{name} followed you' }, + ownPoll: { id: 'notification.own_poll', defaultMessage: 'Your poll has ended' }, + poll: { id: 'notification.poll', defaultMessage: 'A poll you have voted in has ended' }, + reblog: { id: 'notification.reblog', defaultMessage: '{name} boosted your status' }, + status: { id: 'notification.status', defaultMessage: '{name} just posted' }, + update: { id: 'notification.update', defaultMessage: '{name} edited a post' }, + adminSignUp: { id: 'notification.admin.sign_up', defaultMessage: '{name} signed up' }, + adminReport: { id: 'notification.admin.report', defaultMessage: '{name} reported {target}' }, +}); + +const notificationForScreenReader = (intl, message, timestamp) => { + const output = [message]; + + output.push(intl.formatDate(timestamp, { hour: '2-digit', minute: '2-digit', month: 'short', day: 'numeric' })); + + return output.join(', '); +}; + +export default @injectIntl +class Notification extends ImmutablePureComponent { + + static contextTypes = { + router: PropTypes.object, + }; + + static propTypes = { + notification: ImmutablePropTypes.map.isRequired, + hidden: PropTypes.bool, + onMoveUp: PropTypes.func.isRequired, + onMoveDown: PropTypes.func.isRequired, + onMention: PropTypes.func.isRequired, + onFavourite: PropTypes.func.isRequired, + onReblog: PropTypes.func.isRequired, + onToggleHidden: PropTypes.func.isRequired, + status: ImmutablePropTypes.map, + intl: PropTypes.object.isRequired, + getScrollPosition: PropTypes.func, + updateScrollBottom: PropTypes.func, + cacheMediaWidth: PropTypes.func, + cachedMediaWidth: PropTypes.number, + unread: PropTypes.bool, + }; + + handleMoveUp = () => { + const { notification, onMoveUp } = this.props; + onMoveUp(notification.get('id')); + } + + handleMoveDown = () => { + const { notification, onMoveDown } = this.props; + onMoveDown(notification.get('id')); + } + + handleOpen = () => { + const { notification } = this.props; + + if (notification.get('status')) { + this.context.router.history.push(`/@${notification.getIn(['status', 'account', 'acct'])}/${notification.get('status')}`); + } else { + this.handleOpenProfile(); + } + } + + handleOpenProfile = () => { + const { notification } = this.props; + this.context.router.history.push(`/@${notification.getIn(['account', 'acct'])}`); + } + + handleMention = e => { + e.preventDefault(); + + const { notification, onMention } = this.props; + onMention(notification.get('account'), this.context.router.history); + } + + handleHotkeyFavourite = () => { + const { status } = this.props; + if (status) this.props.onFavourite(status); + } + + handleHotkeyBoost = e => { + const { status } = this.props; + if (status) this.props.onReblog(status, e); + } + + handleHotkeyToggleHidden = () => { + const { status } = this.props; + if (status) this.props.onToggleHidden(status); + } + + getHandlers () { + return { + reply: this.handleMention, + favourite: this.handleHotkeyFavourite, + boost: this.handleHotkeyBoost, + mention: this.handleMention, + open: this.handleOpen, + openProfile: this.handleOpenProfile, + moveUp: this.handleMoveUp, + moveDown: this.handleMoveDown, + toggleHidden: this.handleHotkeyToggleHidden, + }; + } + + renderFollow (notification, account, link) { + const { intl, unread } = this.props; + + return ( + +
+
+
+ +
+ + + + +
+ +
+
+ ); + } + + renderFollowRequest (notification, account, link) { + const { intl, unread } = this.props; + + return ( + +
+
+
+ +
+ + + + +
+ +
+
+ ); + } + + renderMention (notification) { + return ( +