serverless-ircd 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (247) hide show
  1. package/.github/workflows/ci.yml +6 -1
  2. package/.gitmodules +3 -0
  3. package/CHANGELOG.md +214 -0
  4. package/README.md +110 -23
  5. package/apps/aws-stack/package.json +1 -1
  6. package/apps/cf-tcp-container/package.json +1 -1
  7. package/apps/cf-worker/package.json +1 -1
  8. package/apps/cf-worker/src/origin-allowlist.ts +99 -0
  9. package/apps/cf-worker/src/worker.ts +89 -9
  10. package/apps/cf-worker/tests/fixtures/web-dist/app/index.html +18 -0
  11. package/apps/cf-worker/tests/fixtures/web-dist/index.html +18 -0
  12. package/apps/cf-worker/tests/origin-allowlist.test.ts +101 -0
  13. package/apps/cf-worker/tests/smoke.test.ts +28 -2
  14. package/apps/cf-worker/tests/ws-origin.test.ts +89 -0
  15. package/apps/cf-worker/wrangler.test.toml +23 -0
  16. package/apps/cf-worker/wrangler.toml +54 -0
  17. package/apps/local-cli/package.json +1 -1
  18. package/apps/web/landing/index.html +217 -0
  19. package/apps/web/package.json +28 -0
  20. package/apps/web/scripts/build.mjs +125 -0
  21. package/apps/web/src/build-env.ts +43 -0
  22. package/apps/web/src/config-schema.ts +138 -0
  23. package/apps/web/static/config.json +28 -0
  24. package/apps/web/static/config.prod.json +28 -0
  25. package/apps/web/static/config.staging.json +28 -0
  26. package/apps/web/tests/build-env.test.ts +63 -0
  27. package/apps/web/tests/build-smoke.test.ts +103 -0
  28. package/apps/web/tests/config-schema.test.ts +432 -0
  29. package/apps/web/tests/workspace.test.ts +12 -0
  30. package/apps/web/tsconfig.json +10 -0
  31. package/apps/web/upstream/.browserslistrc +3 -0
  32. package/apps/web/upstream/.editorconfig +9 -0
  33. package/apps/web/upstream/.eslintignore +3 -0
  34. package/apps/web/upstream/.eslintrc.js +90 -0
  35. package/apps/web/upstream/.github/FUNDING.yml +12 -0
  36. package/apps/web/upstream/.github/ISSUE_TEMPLATE/bug_report.md +38 -0
  37. package/apps/web/upstream/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  38. package/apps/web/upstream/.github/workflows/push.yml +26 -0
  39. package/apps/web/upstream/.github/workflows/release.yml +33 -0
  40. package/apps/web/upstream/.github/workflows/release_manual.yml +55 -0
  41. package/apps/web/upstream/.prettierrc.js +9 -0
  42. package/apps/web/upstream/.stylelintignore +5 -0
  43. package/apps/web/upstream/.stylelintrc.js +21 -0
  44. package/apps/web/upstream/LICENSE +201 -0
  45. package/apps/web/upstream/README.md +76 -0
  46. package/apps/web/upstream/babel.config.js +25 -0
  47. package/apps/web/upstream/crowdin.yml +3 -0
  48. package/apps/web/upstream/index.html +35 -0
  49. package/apps/web/upstream/jest.config.js +7 -0
  50. package/apps/web/upstream/jsdoc.json +22 -0
  51. package/apps/web/upstream/package.json +80 -0
  52. package/apps/web/upstream/scripts/pre-commit +43 -0
  53. package/apps/web/upstream/src/components/App.vue +516 -0
  54. package/apps/web/upstream/src/components/AppSettings.vue +587 -0
  55. package/apps/web/upstream/src/components/AutoComplete.vue +284 -0
  56. package/apps/web/upstream/src/components/Avatar.vue +105 -0
  57. package/apps/web/upstream/src/components/AwayStatusIndicator.vue +77 -0
  58. package/apps/web/upstream/src/components/BufferKey.vue +121 -0
  59. package/apps/web/upstream/src/components/BufferSettings.vue +97 -0
  60. package/apps/web/upstream/src/components/Captcha.vue +85 -0
  61. package/apps/web/upstream/src/components/ChannelBanlist.vue +96 -0
  62. package/apps/web/upstream/src/components/ChannelInfo.vue +159 -0
  63. package/apps/web/upstream/src/components/ChannelInvitelist.vue +276 -0
  64. package/apps/web/upstream/src/components/ChannelList.vue +345 -0
  65. package/apps/web/upstream/src/components/Container.vue +401 -0
  66. package/apps/web/upstream/src/components/ContainerHeader.vue +522 -0
  67. package/apps/web/upstream/src/components/ControlInput.vue +1016 -0
  68. package/apps/web/upstream/src/components/LoadingAnimation.vue +104 -0
  69. package/apps/web/upstream/src/components/MediaViewer.vue +199 -0
  70. package/apps/web/upstream/src/components/MessageInfo.vue +192 -0
  71. package/apps/web/upstream/src/components/MessageList.vue +1028 -0
  72. package/apps/web/upstream/src/components/MessageListAvatar.vue +20 -0
  73. package/apps/web/upstream/src/components/MessageListMessageCompact.vue +361 -0
  74. package/apps/web/upstream/src/components/MessageListMessageInline.vue +257 -0
  75. package/apps/web/upstream/src/components/MessageListMessageModern.vue +430 -0
  76. package/apps/web/upstream/src/components/NetworkSettings.vue +528 -0
  77. package/apps/web/upstream/src/components/Nicklist.vue +309 -0
  78. package/apps/web/upstream/src/components/NicklistUser.vue +181 -0
  79. package/apps/web/upstream/src/components/NotConnected.vue +271 -0
  80. package/apps/web/upstream/src/components/SelfUser.vue +283 -0
  81. package/apps/web/upstream/src/components/ServerSelector.vue +162 -0
  82. package/apps/web/upstream/src/components/ServerView.vue +126 -0
  83. package/apps/web/upstream/src/components/SettingsAdvanced.vue +232 -0
  84. package/apps/web/upstream/src/components/SettingsAliases.vue +121 -0
  85. package/apps/web/upstream/src/components/Sidebar.vue +429 -0
  86. package/apps/web/upstream/src/components/SidebarAboutBuffer.vue +288 -0
  87. package/apps/web/upstream/src/components/SidebarState.vue +145 -0
  88. package/apps/web/upstream/src/components/StartupError.vue +35 -0
  89. package/apps/web/upstream/src/components/StateBrowser.vue +420 -0
  90. package/apps/web/upstream/src/components/StateBrowserBuffer.vue +124 -0
  91. package/apps/web/upstream/src/components/StateBrowserNetwork.vue +823 -0
  92. package/apps/web/upstream/src/components/StateBrowserUsermenu.vue +162 -0
  93. package/apps/web/upstream/src/components/TypingStatusIndicator.vue +34 -0
  94. package/apps/web/upstream/src/components/TypingUsersList.vue +56 -0
  95. package/apps/web/upstream/src/components/UrlEmbed.vue +149 -0
  96. package/apps/web/upstream/src/components/UserBox.vue +728 -0
  97. package/apps/web/upstream/src/components/inputtools/Emoji.vue +67 -0
  98. package/apps/web/upstream/src/components/inputtools/TextStyle.vue +142 -0
  99. package/apps/web/upstream/src/components/startups/CommonLayout.vue +208 -0
  100. package/apps/web/upstream/src/components/startups/CustomServer.vue +495 -0
  101. package/apps/web/upstream/src/components/startups/KiwiBnc.vue +361 -0
  102. package/apps/web/upstream/src/components/startups/Personal.vue +317 -0
  103. package/apps/web/upstream/src/components/startups/Welcome.vue +544 -0
  104. package/apps/web/upstream/src/components/startups/ZncLogin.vue +229 -0
  105. package/apps/web/upstream/src/components/utils/InputConfirm.vue +68 -0
  106. package/apps/web/upstream/src/components/utils/InputPrompt.vue +118 -0
  107. package/apps/web/upstream/src/components/utils/InputText.vue +172 -0
  108. package/apps/web/upstream/src/components/utils/IrcInput.vue +579 -0
  109. package/apps/web/upstream/src/components/utils/PluginWrapper.vue +26 -0
  110. package/apps/web/upstream/src/components/utils/TabbedView.vue +149 -0
  111. package/apps/web/upstream/src/components/utils/TransitionExpand.vue +97 -0
  112. package/apps/web/upstream/src/helpers/Colours.js +128 -0
  113. package/apps/web/upstream/src/helpers/IrcdDiffs.js +26 -0
  114. package/apps/web/upstream/src/helpers/Md5.js +193 -0
  115. package/apps/web/upstream/src/helpers/Misc.js +401 -0
  116. package/apps/web/upstream/src/helpers/TextFormatting.js +237 -0
  117. package/apps/web/upstream/src/libs/AliasRewriter.js +157 -0
  118. package/apps/web/upstream/src/libs/AudioManager.js +60 -0
  119. package/apps/web/upstream/src/libs/BouncerMiddleware.js +247 -0
  120. package/apps/web/upstream/src/libs/BouncerProvider.js +551 -0
  121. package/apps/web/upstream/src/libs/ChathistoryMiddleware.js +153 -0
  122. package/apps/web/upstream/src/libs/ConfigLoader.js +94 -0
  123. package/apps/web/upstream/src/libs/EmojiProvider.js +46 -0
  124. package/apps/web/upstream/src/libs/GlobalApi.js +346 -0
  125. package/apps/web/upstream/src/libs/IPC.js +51 -0
  126. package/apps/web/upstream/src/libs/InputHandler.js +921 -0
  127. package/apps/web/upstream/src/libs/IrcClient.js +1506 -0
  128. package/apps/web/upstream/src/libs/Logger.js +71 -0
  129. package/apps/web/upstream/src/libs/Message.js +169 -0
  130. package/apps/web/upstream/src/libs/MessageFormatter.js +364 -0
  131. package/apps/web/upstream/src/libs/MessageParser.js +249 -0
  132. package/apps/web/upstream/src/libs/Notifications.js +78 -0
  133. package/apps/web/upstream/src/libs/ServerConnection.js +270 -0
  134. package/apps/web/upstream/src/libs/ServerSession.js +102 -0
  135. package/apps/web/upstream/src/libs/SoundBleep.js +20 -0
  136. package/apps/web/upstream/src/libs/StatePersistence.js +90 -0
  137. package/apps/web/upstream/src/libs/ThemeManager.js +128 -0
  138. package/apps/web/upstream/src/libs/TypingMiddleware.js +105 -0
  139. package/apps/web/upstream/src/libs/WindowTitle.js +63 -0
  140. package/apps/web/upstream/src/libs/batchedAdd.js +74 -0
  141. package/apps/web/upstream/src/libs/bufferTools.js +177 -0
  142. package/apps/web/upstream/src/libs/polyfill/Element.closest.js +18 -0
  143. package/apps/web/upstream/src/libs/renderers/Html.js +113 -0
  144. package/apps/web/upstream/src/libs/settingTools.js +31 -0
  145. package/apps/web/upstream/src/libs/state/BufferState.js +703 -0
  146. package/apps/web/upstream/src/libs/state/NetworkState.js +158 -0
  147. package/apps/web/upstream/src/libs/state/UserState.js +89 -0
  148. package/apps/web/upstream/src/libs/state/common.js +26 -0
  149. package/apps/web/upstream/src/libs/state.js +961 -0
  150. package/apps/web/upstream/src/libs/storage/Local.js +51 -0
  151. package/apps/web/upstream/src/main.js +566 -0
  152. package/apps/web/upstream/src/res/autocompleteCommands.js +31 -0
  153. package/apps/web/upstream/src/res/configTemplates.js +373 -0
  154. package/apps/web/upstream/src/res/globalStyle.css +277 -0
  155. package/apps/web/upstream/src/res/kiwiLoadingLogo.png +0 -0
  156. package/apps/web/upstream/src/res/locales/app.af-ZA.po +1145 -0
  157. package/apps/web/upstream/src/res/locales/app.ar-SA.po +1145 -0
  158. package/apps/web/upstream/src/res/locales/app.bg-BG.po +1145 -0
  159. package/apps/web/upstream/src/res/locales/app.bs-BA.po +1145 -0
  160. package/apps/web/upstream/src/res/locales/app.ca-ES.po +1145 -0
  161. package/apps/web/upstream/src/res/locales/app.cs-CZ.po +1145 -0
  162. package/apps/web/upstream/src/res/locales/app.da-DK.po +1145 -0
  163. package/apps/web/upstream/src/res/locales/app.de-DE.po +1145 -0
  164. package/apps/web/upstream/src/res/locales/app.dev.po +1246 -0
  165. package/apps/web/upstream/src/res/locales/app.el-GR.po +1145 -0
  166. package/apps/web/upstream/src/res/locales/app.en-US.po +1145 -0
  167. package/apps/web/upstream/src/res/locales/app.es-419.po +1145 -0
  168. package/apps/web/upstream/src/res/locales/app.es-AR.po +1145 -0
  169. package/apps/web/upstream/src/res/locales/app.es-EM.po +536 -0
  170. package/apps/web/upstream/src/res/locales/app.es-ES.po +1145 -0
  171. package/apps/web/upstream/src/res/locales/app.es-US.po +1145 -0
  172. package/apps/web/upstream/src/res/locales/app.eu-ES.po +1145 -0
  173. package/apps/web/upstream/src/res/locales/app.fi-FI.po +1145 -0
  174. package/apps/web/upstream/src/res/locales/app.fr-FR.po +1145 -0
  175. package/apps/web/upstream/src/res/locales/app.gl-ES.po +1145 -0
  176. package/apps/web/upstream/src/res/locales/app.he-IL.po +1145 -0
  177. package/apps/web/upstream/src/res/locales/app.hi-IN.po +1145 -0
  178. package/apps/web/upstream/src/res/locales/app.hu-HU.po +1145 -0
  179. package/apps/web/upstream/src/res/locales/app.id-ID.po +1145 -0
  180. package/apps/web/upstream/src/res/locales/app.it-IT.po +1145 -0
  181. package/apps/web/upstream/src/res/locales/app.ja-JP.po +1145 -0
  182. package/apps/web/upstream/src/res/locales/app.ko-KR.po +1145 -0
  183. package/apps/web/upstream/src/res/locales/app.nl-NL.po +1145 -0
  184. package/apps/web/upstream/src/res/locales/app.no-NO.po +1145 -0
  185. package/apps/web/upstream/src/res/locales/app.pl-PL.po +1145 -0
  186. package/apps/web/upstream/src/res/locales/app.pt-BR.po +1145 -0
  187. package/apps/web/upstream/src/res/locales/app.pt-PT.po +1145 -0
  188. package/apps/web/upstream/src/res/locales/app.ro-RO.po +1145 -0
  189. package/apps/web/upstream/src/res/locales/app.ru-RU.po +1145 -0
  190. package/apps/web/upstream/src/res/locales/app.sl-SI.po +1145 -0
  191. package/apps/web/upstream/src/res/locales/app.sq-AL.po +1145 -0
  192. package/apps/web/upstream/src/res/locales/app.sr-SP.po +1145 -0
  193. package/apps/web/upstream/src/res/locales/app.sv-SE.po +1145 -0
  194. package/apps/web/upstream/src/res/locales/app.tr-TR.po +1145 -0
  195. package/apps/web/upstream/src/res/locales/app.uk-UA.po +1145 -0
  196. package/apps/web/upstream/src/res/locales/app.vi-VN.po +1145 -0
  197. package/apps/web/upstream/src/res/locales/app.zh-CN.po +1145 -0
  198. package/apps/web/upstream/src/res/locales/app.zh-TW.po +1145 -0
  199. package/apps/web/upstream/src/res/localesList.json +27 -0
  200. package/apps/web/upstream/src/res/logo.png +0 -0
  201. package/apps/web/upstream/src/thirdparty/about.html +43 -0
  202. package/apps/web/upstream/src/thirdparty/index.js +5 -0
  203. package/apps/web/upstream/src/thirdparty/kiwiirccom.vue +185 -0
  204. package/apps/web/upstream/static/config.json +28 -0
  205. package/apps/web/upstream/static/emoticons/smile.png +0 -0
  206. package/apps/web/upstream/static/favicon.png +0 -0
  207. package/apps/web/upstream/static/highlight.mp3 +0 -0
  208. package/apps/web/upstream/static/highlight.ogg +0 -0
  209. package/apps/web/upstream/static/locales/.gitignore +2 -0
  210. package/apps/web/upstream/static/plugins/customise.html.example +10 -0
  211. package/apps/web/upstream/static/themes/coffee/theme.css +145 -0
  212. package/apps/web/upstream/static/themes/common/base.css +1064 -0
  213. package/apps/web/upstream/static/themes/dark/theme.css +196 -0
  214. package/apps/web/upstream/static/themes/default/theme.css +92 -0
  215. package/apps/web/upstream/static/themes/elite/theme.css +248 -0
  216. package/apps/web/upstream/static/themes/grayfox/theme.css +143 -0
  217. package/apps/web/upstream/static/themes/nightswatch/theme.css +367 -0
  218. package/apps/web/upstream/static/themes/osprey/theme.css +115 -0
  219. package/apps/web/upstream/static/themes/radioactive/theme.css +1211 -0
  220. package/apps/web/upstream/static/themes/sky/theme.css +107 -0
  221. package/apps/web/upstream/tests/unit/BatchAdd.spec.js +174 -0
  222. package/apps/web/upstream/tests/unit/MessageParser.spec.js +125 -0
  223. package/apps/web/upstream/tests/unit/Misc.spec.js +24 -0
  224. package/apps/web/upstream/tests/unit/NetworkState.spec.js +58 -0
  225. package/apps/web/upstream/tests/unit/StartupError.spec.js +20 -0
  226. package/apps/web/upstream/vue.config.js +150 -0
  227. package/apps/web/upstream/yarn.lock +9767 -0
  228. package/apps/web/vitest.config.ts +13 -0
  229. package/biome.json +1 -0
  230. package/docs/Home.md +1 -0
  231. package/docs/WebClientGuide.md +535 -0
  232. package/package.json +2 -2
  233. package/packages/aws-adapter/package.json +1 -1
  234. package/packages/cf-adapter/package.json +1 -1
  235. package/packages/cf-adapter/tests/cf-harness.ts +12 -1
  236. package/packages/in-memory-runtime/package.json +1 -1
  237. package/packages/irc-core/package.json +1 -1
  238. package/packages/irc-core/reports/mutation/mutation.html +342 -0
  239. package/packages/irc-core/tests/batch.test.ts +15 -0
  240. package/packages/irc-core/tests/numerics.test.ts +13 -0
  241. package/packages/irc-core/tests/parser.test.ts +109 -0
  242. package/packages/irc-server/package.json +1 -1
  243. package/packages/irc-test-support/package.json +1 -1
  244. package/packages/irc-test-support/src/scenarios.ts +24 -2
  245. package/tools/ci-hardening/package.json +1 -1
  246. package/tools/load-test/package.json +1 -1
  247. package/tools/tcp-ws-forwarder/package.json +1 -1
@@ -0,0 +1,27 @@
1
+ [
2
+ ["af-za", "Afrikaans (Afrikaans)"],
3
+ ["sq-al", "Shqip (Albanian)"],
4
+ ["ar-sa", "العربية (Arabic)"],
5
+ ["eu-es", "Euskara (Basque)"],
6
+ ["bs-ba", "Bosanski (Bosnian)"],
7
+ ["bg-bg", "Български (Bulgarian)"],
8
+ ["ca-es", "Català (Catalan)"],
9
+ ["zh-cn", "中文 (Chinese Simplified)"],
10
+ ["nl-nl", "Nederlands (Dutch)"],
11
+ ["en-us", "English (English)"],
12
+ ["fr-fr", "Français (French)"],
13
+ ["gl-es", "Galego (Galician)"],
14
+ ["de-de", "Deutsch (German)"],
15
+ ["el-gr", "Ελληνικά (Greek)"],
16
+ ["he-il", "עברית (Hebrew)"],
17
+ ["id-id", "Bahasa Indonesia (Indonesian)"],
18
+ ["it-it", "Italiano (Italian)"],
19
+ ["pl-pl", "Polski (Polish)"],
20
+ ["pt-pt", "Português (Portuguese)"],
21
+ ["pt-br", "Português do Brasil (Portuguese, Brazilian)"],
22
+ ["ru-ru", "Русский (Russian)"],
23
+ ["es-es", "Español (Spanish)"],
24
+ ["es-ar", "Español argentino (Spanish, Argentina)"],
25
+ ["es-us", "Español mexicano (Spanish, Mexican)"],
26
+ ["uk-ua", "Українська (Ukrainian)"]
27
+ ]
@@ -0,0 +1,43 @@
1
+ <h3>Linking to your network /channel</h3>
2
+
3
+ <p>Some quick examples on how you can link directly to your network or channels. Even better, embed them into an iframe directly on your website.</p>
4
+ <ul>
5
+ <li><a target="_blank" href="https://kiwiirc.com/nextclient/irc.server.com/#channel">https://kiwiirc.com/nextclient/irc.server.com/#channel</a></li>
6
+ <li><a target="_blank" href="https://kiwiirc.com/nextclient/irc.server.com/#channel,#channel2">https://kiwiirc.com/nextclient/irc.server.com/#channel,#channel2</a></li>
7
+ <li><a target="_blank" href="https://kiwiirc.com/nextclient/#irc://irc.server.com/#channel,#channel2">https://kiwiirc.com/nextclient/#irc://irc.server.com/#channel,#channel2</a></li>
8
+ </ul>
9
+
10
+ <p>As a bonus, you can link to multiple IRC networks at the same time:</p>
11
+ <ul>
12
+ <li><a target="_blank" href="https://kiwiirc.com/nextclient/#irc://irc.server.com/#channel;irc://irc.exmaple.net/#channel">https://kiwiirc.com/nextclient/#irc://irc.server.com/#channel;irc://irc.exmaple.net/#channel</a></li>
13
+ </ul>
14
+
15
+ <p>Or maybe you host a ZNC server and want to link to it:</p>
16
+ <ul>
17
+ <li><a target="_blank" href="https://kiwiirc.com/nextclient/#irc://irc.server.com/#channel?type=znc&nick=username">https://kiwiirc.com/nextclient/#irc://irc.server.com/#channel?type=znc&nick=username</a></li>
18
+ </ul>
19
+
20
+ <hr style="margin: 4em 0;" />
21
+
22
+ <h3>What's new in Kiwi Next?</h3>
23
+
24
+ <h4>Networks and settings remembered</h4>
25
+ <p>All your settings and networks will be remembered for when you come back. You won't need to be re-entering your favourite networks every time you open Kiwi anymore.</p>
26
+
27
+ <h4>Mobile and tablet support</h4>
28
+ <p>Now that over 50% of internet usage is now on mobile, Kiwi has complete mobile support with new layouts and messages. Everything is accessible with just your fingers.</p>
29
+
30
+ <h4>Embedded images and videos</h4>
31
+ <p>Opening photos and videos within Kiwi now gets pinned at the bottom of the screen. This lets you switch channels, keep talking without it going off-screen, and have that permenant youtube video playing while you're talking.</p>
32
+
33
+ <h4>ZNC integration</h4>
34
+ <p>When connecting to a ZNC server, Kiwi will now automatically detect it and look for any other networks in your ZNC account. If any are found then they are shown in a list - just one click away from connecting to it.</p>
35
+
36
+ <h4>Aliases editor</h4>
37
+ <p>A full alias editor to create command aliases to handle users in your channel, administrate your network or project, or even join multiple commands into a single helpful command. Created by a simple text editor that lets you copy/paste/share your aliases wherever you please.</p>
38
+
39
+ <h4>Raw IRC power</h4>
40
+ <p>If you're a power IRC user or like to get indepth, Kiwi now uses the raw IRC protocol directly in the browser. Look at the raw IRC messages going back and forth, send raw commands, or use it's scripting to test out new protocol ideas and experiments.</p>
41
+
42
+ <h4>The most IRCv3 compliant open source web IRC client</h4>
43
+ <p>IRC is being pushed forward by the <a href="http://ircv3.net" target="_blank">IRCv3 working group</a> which brings us new features that any IRC client can be using. Not only taking part, but Kiwi is one of the most IRCv3 complete web clients that exists.</p>
@@ -0,0 +1,5 @@
1
+ // Import all your custom additions here
2
+
3
+ // import './myStartupScreen';
4
+
5
+ import './kiwiirccom';
@@ -0,0 +1,185 @@
1
+ <template>
2
+ <div class="kiwi-personal">
3
+ <h1>{{ $t('personal_client') }}</h1>
4
+
5
+ <p>{{ $t('personal_addjoin') }}</p>
6
+ <p>{{ $t('personal_return') }}</p>
7
+
8
+ <button
9
+ type="button"
10
+ class="u-button u-button-primary"
11
+ @click="addNetwork"
12
+ >
13
+ {{ $t('personal_add') }}
14
+ </button> <br>
15
+
16
+ <a
17
+ v-if="networks.length>0"
18
+ class="u-link kiwi-personal-existing-networks"
19
+ @click.stop="toggleStateBrowser"
20
+ >
21
+ {{ $t('personal_saved') }}
22
+ </a>
23
+
24
+ <div
25
+ :class="{'kiwi-aboutnew-content--open': about_open}"
26
+ class="kiwi-aboutnew-content"
27
+ v-html="aboutContent"
28
+ />
29
+ <div class="kiwi-aboutnew">
30
+ <div class="kiwi-aboutnew-sep" />
31
+ <a
32
+ class="u-link"
33
+ @click="about_open=!about_open"
34
+ >
35
+ Link to your network / channel
36
+ </a>
37
+
38
+ <div class="kiwi-aboutnew-help">
39
+ <a @click="about_open=!about_open">
40
+ <i class="fa fa-question-circle" aria-hidden="true" />
41
+ </a>
42
+ </div>
43
+ </div>
44
+ </div>
45
+ </template>
46
+
47
+ <script>
48
+ 'kiwi public';
49
+
50
+ import * as TextFormatting from '@/helpers/TextFormatting';
51
+ import getState from '@/libs/state';
52
+ import aboutContent from './about.html';
53
+
54
+ let firstRun = true;
55
+
56
+ const ctor = {
57
+ data: function data() {
58
+ return {
59
+ about_open: false,
60
+ };
61
+ },
62
+ computed: {
63
+ networks() {
64
+ return this.$state.networks;
65
+ },
66
+ aboutContent() {
67
+ return aboutContent;
68
+ },
69
+ },
70
+ methods: {
71
+ addNetwork() {
72
+ let nick = 'Guest' + Math.floor(Math.random() * 100);
73
+ let network = this.$state.addNetwork(TextFormatting.t('new_network'), nick, {});
74
+ network.showServerBuffer('settings');
75
+ },
76
+ toggleStateBrowser() {
77
+ this.$state.$emit('statebrowser.show');
78
+ },
79
+ async init() {
80
+ this.$state.persistence.watchStateForChanges();
81
+ this.$emit('start', {
82
+ fallbackComponent: this.constructor,
83
+ });
84
+ },
85
+ },
86
+ created: async function created() {
87
+ if (firstRun) {
88
+ this.init();
89
+ firstRun = false;
90
+ }
91
+ },
92
+ };
93
+
94
+ export default ctor;
95
+ getState().getStartups().kiwiirccom = ctor;
96
+ </script>
97
+
98
+ <style>
99
+
100
+ .kiwi-aboutnew {
101
+ position: absolute;
102
+ bottom: 0;
103
+ height: 53px;
104
+ left: 0;
105
+ right: 0;
106
+ padding: 0 10px 10px 10px;
107
+ box-sizing: border-box;
108
+ }
109
+
110
+ .kiwi-aboutnew-sep {
111
+ margin-bottom: 10px;
112
+ border-top: 1px solid #ddd;
113
+ }
114
+
115
+ .kiwi-aboutnew-help {
116
+ font-size: 1.9em;
117
+ float: right;
118
+ cursor: pointer;
119
+ }
120
+
121
+ .kiwi-aboutnew-content {
122
+ display: none;
123
+ position: absolute;
124
+ top: 4px;
125
+ left: 0;
126
+ bottom: 53px;
127
+ width: 100%;
128
+ background: #fff;
129
+ text-align: left;
130
+ line-height: 1.6em;
131
+ padding: 2em;
132
+ box-sizing: border-box;
133
+ overflow: auto;
134
+ }
135
+
136
+ .kiwi-aboutnew-content--open {
137
+ display: block;
138
+ }
139
+
140
+ @media screen and (min-width: 700px) {
141
+ .kiwi-aboutnew-content {
142
+ padding: 2em 3em;
143
+ }
144
+ }
145
+
146
+ .kiwi-personal {
147
+ box-sizing: border-box;
148
+ height: 100%;
149
+ overflow-y: auto;
150
+ text-align: center;
151
+ padding-top: 1em;
152
+ font-size: 1.2em;
153
+ display: flex;
154
+ align-items: center;
155
+ justify-content: center;
156
+ flex-direction: column;
157
+ }
158
+
159
+ .kiwi-personal h1 {
160
+ margin: 0 0 20px 0;
161
+ }
162
+
163
+ .kiwi-personal p {
164
+ margin: 0 0 10px 0;
165
+ }
166
+
167
+ .kiwi-personal button {
168
+ margin: 10px auto 0 auto;
169
+ padding: 0 40px;
170
+ font-size: 1em;
171
+ line-height: 40px;
172
+ }
173
+
174
+ /* Only show the toggle state browser link if on a small screen */
175
+ .kiwi-personal-existing-networks {
176
+ display: none;
177
+ }
178
+
179
+ @media screen and (max-width: 500px) {
180
+ .kiwi-personal-existing-networks {
181
+ display: inherit;
182
+ }
183
+ }
184
+
185
+ </style>
@@ -0,0 +1,28 @@
1
+ {
2
+ "windowTitle": "Kiwi IRC - The web IRC client",
3
+ "startupScreen": "welcome",
4
+ "kiwiServer": "https://localdev.clients.kiwiirc.com/webirc/kiwiirc/",
5
+ "restricted": false,
6
+ "theme": "Default",
7
+ "themes": [
8
+ { "name": "Default", "url": "static/themes/default" },
9
+ { "name": "Dark", "url": "static/themes/dark" },
10
+ { "name": "Coffee", "url": "static/themes/coffee" },
11
+ { "name": "GrayFox", "url": "static/themes/grayfox" },
12
+ { "name": "Nightswatch", "url": "static/themes/nightswatch" },
13
+ { "name": "Osprey", "url": "static/themes/osprey" },
14
+ { "name": "Radioactive", "url": "static/themes/radioactive" },
15
+ { "name": "Sky", "url": "static/themes/sky" },
16
+ { "name": "Elite", "url": "static/themes/elite" }
17
+ ],
18
+ "startupOptions" : {
19
+ "channel": "#kiwiirc-default",
20
+ "nick": "kiwi-n?"
21
+ },
22
+ "embedly": {
23
+ "key": ""
24
+ },
25
+ "plugins": [
26
+ { "name": "customise", "url": "static/plugins/customise.html" }
27
+ ]
28
+ }
@@ -0,0 +1,2 @@
1
+ *
2
+ !.gitignore
@@ -0,0 +1,10 @@
1
+ <style>
2
+ /* Custom theme changes can be added here */
3
+ </style>
4
+
5
+ <script>
6
+ kiwi.plugin('customise', function(kiwi, log) {
7
+ // Add your customisations here
8
+ // Some small examples can be found at https://github.com/kiwiirc/kiwiirc/wiki/Plugin-Examples
9
+ });
10
+ </script>
@@ -0,0 +1,145 @@
1
+ @import '../common/base.css';
2
+
3
+ :root {
4
+ /* Primary Variables */
5
+ --brand-primary: #8e715b;
6
+ --brand-primary-hover: #bea28c;
7
+ --brand-midtone: #f1f1f1;
8
+ --brand-darktone: #969696;
9
+ --brand-default-bg: #fff;
10
+ --brand-default-fg: #22231f;
11
+
12
+ /* Warning colors */
13
+ --brand-notice: #f6c358;
14
+ --brand-warning: #fcb46e;
15
+ --brand-error: #bf5155;
16
+
17
+ /* Connection Indicator top */
18
+ --comp-workspace-before-bg: var(--brand-primary);
19
+ --comp-bg-kiwi-workspace--disconnected-after-bg: var(--brand-error);
20
+
21
+ /* Container Header */
22
+ --comp-header-bg: var(--brand-default-bg);
23
+ --comp-header-name-fg: var(--brand-default-fg);
24
+ --comp-header-option-active-fg: var(--brand-default-bg);
25
+ --comp-header-option-active-bg: var(--brand-primary);
26
+
27
+ /* StateBrowser */
28
+ --comp-statebrowser-fg: #fff;
29
+ --comp-statebrowser-bg: #8e715c;
30
+ --comp-statebrowser-bg-networkname: #7b6351;
31
+ --comp-statebrowser-channel-active-bg: #ffffff0d;
32
+ --comp-statebrowser-channel-active-fg: #fff;
33
+ --comp-usermenu-open-bg: #826958;
34
+ --comp-statebrowser-network-border: #bda28e;
35
+
36
+
37
+ /* Sidebars ( Right Side ) */
38
+ --comp-sidebar-bg: #fff;
39
+ --comp-sidebar-fg: #22231f;
40
+ --comp-aboutbuffer-bg: rgba(0, 0, 0, 0.03);
41
+ --comp-aboutbuffer-header-bg: #826958;
42
+
43
+ /* Misc */
44
+ --brand-link-normal: var(--brand-primary);
45
+ --brand-link--hover: var(--brand-primary-hover);
46
+ --brand-shadow: rgba(0, 0, 0, 0.1);
47
+ --comp-border: #b2b2b2;
48
+ }
49
+
50
+ .kiwi-appsettings-close,
51
+ .kiwi-appsettings-block h3,
52
+ .kiwi-networksettings .kiwi-title,
53
+ .u-form input[type='checkbox']:after, .u-form input[type='radio']:after {
54
+ background-color: #8e715c;
55
+ }
56
+
57
+ .kiwi-networksettings .kiwi-title {
58
+ border-top-color: #cab09b;
59
+ }
60
+
61
+ .kiwi-statebrowser-network.kiwi-statebrowser-network--active .kiwi-statebrowser-network-header {
62
+ border-left: 3px solid #cab09b;
63
+ }
64
+
65
+ .u-tabbed-view-tabs .u-tabbed-view-tab:hover,
66
+ .u-tabbed-view-tabs .u-tabbed-view-tab.u-tabbed-view-tab--active {
67
+ border-bottom-color: #8e715c;
68
+ }
69
+
70
+ .kiwi-statebrowser-newnetwork a:hover {
71
+ background: #a28772;
72
+ }
73
+
74
+ .kiwi-network-name-options {
75
+ background-color: var(--comp-statebrowser-bg);
76
+ }
77
+
78
+ .kiwi-statebrowser-channel-leave {
79
+ background: transparent;
80
+ }
81
+
82
+ .kiwi-statebrowser-channelfilter a,
83
+ .kiwi-statebrowser-channelfilter a:hover {
84
+ color: #fff;
85
+ }
86
+
87
+ .kiwi-awaystatusindicator {
88
+ background: #78b17f;
89
+ }
90
+ .kiwi-awaystatusindicator.kiwi-awaystatusindicator--away {
91
+ background: var(--brand-error);
92
+ }
93
+
94
+ .kiwi-statebrowser-usermenu-avatar:hover .kiwi-avatar-inner,
95
+ .kiwi-statebrowser-usermenu--open .kiwi-avatar-inner {
96
+ background-color: #967c68 !important;
97
+ }
98
+
99
+ .kiwi-startup-common-section-info {
100
+ border-left-color: var(--brand-primary);
101
+ }
102
+
103
+ .kiwi-statebrowser-network-status a {
104
+ color: #fff;
105
+ }
106
+
107
+ .kiwi-statebrowser-channel-label {
108
+ background: #967f70;
109
+ }
110
+
111
+
112
+ /* IRC Text Colours */
113
+ .irc-fg-colour-white { color: #fff; }
114
+ .irc-fg-colour-black { color: #000; }
115
+ .irc-fg-colour-blue { color: #00f; }
116
+ .irc-fg-colour-green { color: #009300; }
117
+ .irc-fg-colour-light-red { color: #ff5959; }
118
+ .irc-fg-colour-brown { color: #743a00; }
119
+ .irc-fg-colour-purple { color: #a500ff; }
120
+ .irc-fg-colour-orange { color: #ff8c00; }
121
+ .irc-fg-colour-yellow { color: #ff0; }
122
+ .irc-fg-colour-light-green { color: #6fff6f; }
123
+ .irc-fg-colour-cyan { color: #0cc; }
124
+ .irc-fg-colour-light-cyan { color: #6dffff; }
125
+ .irc-fg-colour-light-blue { color: #59b4ff; }
126
+ .irc-fg-colour-pink { color: #f0f; }
127
+ .irc-fg-colour-grey { color: #a6a6a6; }
128
+ .irc-fg-colour-light-grey { color: #e2e2e2; }
129
+
130
+ .irc-bg-colour-white { background-color: #fff; }
131
+ .irc-bg-colour-black { background-color: #000; }
132
+ .irc-bg-colour-blue { background-color: #00f; }
133
+ .irc-bg-colour-green { background-color: #009300; }
134
+ .irc-bg-colour-light-red { background-color: #ff5959; }
135
+ .irc-bg-colour-brown { background-color: #743a00; }
136
+ .irc-bg-colour-purple { background-color: #a500ff; }
137
+ .irc-bg-colour-orange { background-color: #ff8c00; }
138
+ .irc-bg-colour-yellow { background-color: #ff0; }
139
+ .irc-bg-colour-light-green { background-color: #6fff6f; }
140
+ .irc-bg-colour-cyan { background-color: #0cc; }
141
+ .irc-bg-colour-light-cyan { background-color: #6dffff; }
142
+ .irc-bg-colour-light-blue { background-color: #59b4ff; }
143
+ .irc-bg-colour-pink { background-color: #f0f; }
144
+ .irc-bg-colour-grey { background-color: #a6a6a6; }
145
+ .irc-bg-colour-light-grey { background-color: #e2e2e2; }