mirror of
https://github.com/FrankerFaceZ/FrankerFaceZ.git
synced 2025-08-04 11:44:00 +00:00
tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-tw-
This commit is contained in:
parent
5a9a3d221b
commit
4b246ade44
50 changed files with 1564 additions and 2167 deletions
|
@ -1,3 +1,11 @@
|
||||||
|
<div class="list-header">4.0.0-beta1.4<span>@7ca245f1bf1509160a2c</span> <time datetime="2017-12-13">(2017-12-13)</time></div>
|
||||||
|
<ul class="chat-menu-content menu-side-padding">
|
||||||
|
<li>Fixed: Everything.</li>
|
||||||
|
<li> </li>
|
||||||
|
<li>Twitch renamed all their CSS classes to start with <code>tw-</code> requiring significant modifications to basically all of FFZ to insert <code>tw-</code> everywhere.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
<div class="list-header">4.0.0-beta1.4<span>@8e759e6ddfa7aa70cfea</span> <time datetime="2017-12-01">(2017-12-01)</time></div>
|
<div class="list-header">4.0.0-beta1.4<span>@8e759e6ddfa7aa70cfea</span> <time datetime="2017-12-01">(2017-12-01)</time></div>
|
||||||
<ul class="chat-menu-content menu-side-padding">
|
<ul class="chat-menu-content menu-side-padding">
|
||||||
<li>Fixed: Message highlighting in chat.</li>
|
<li>Fixed: Message highlighting in chat.</li>
|
||||||
|
|
|
@ -98,9 +98,11 @@ export default class Emotes extends Module {
|
||||||
|
|
||||||
getSetIDs(user_id, user_login, room_id, room_login) {
|
getSetIDs(user_id, user_login, room_id, room_login) {
|
||||||
const room = this.parent.getRoom(room_id, room_login, true),
|
const room = this.parent.getRoom(room_id, room_login, true),
|
||||||
|
room_user = room && room.getUser(user_id, user_login, true),
|
||||||
user = this.parent.getUser(user_id, user_login, true);
|
user = this.parent.getUser(user_id, user_login, true);
|
||||||
|
|
||||||
return (user ? user.emote_sets._cache : []).concat(
|
return (user ? user.emote_sets._cache : []).concat(
|
||||||
|
room_user ? room_user.emote_set._cache : [],
|
||||||
room ? room.emote_sets._cache : [],
|
room ? room.emote_sets._cache : [],
|
||||||
this.default_sets._cache
|
this.default_sets._cache
|
||||||
);
|
);
|
||||||
|
@ -111,6 +113,37 @@ export default class Emotes extends Module {
|
||||||
.map(set_id => this.emote_sets[set_id]);
|
.map(set_id => this.emote_sets[set_id]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getRoomSetIDs(user_id, user_login, room_id, room_login) {
|
||||||
|
const room = this.parent.getRoom(room_id, room_login, true),
|
||||||
|
room_user = room && room.getUser(user_id, user_login, true);
|
||||||
|
|
||||||
|
if ( ! room )
|
||||||
|
return [];
|
||||||
|
|
||||||
|
if ( ! room_user )
|
||||||
|
return room.emote_sets._cache;
|
||||||
|
|
||||||
|
return room_user.emote_sets._cache.concat(room.emote_sets._cache);
|
||||||
|
}
|
||||||
|
|
||||||
|
getRoomSets(user_id, user_login, room_id, room_login) {
|
||||||
|
return this.getRoomSetIDs(user_id, user_login, room_id, room_login)
|
||||||
|
.map(set_id => this.emote_sets[set_id]);
|
||||||
|
}
|
||||||
|
|
||||||
|
getGlobalSetIDs(user_id, user_login) {
|
||||||
|
const user = this.parent.getUser(user_id, user_login, true);
|
||||||
|
if ( ! user )
|
||||||
|
return this.default_sets._cache;
|
||||||
|
|
||||||
|
return user.emote_sets._cache.concat(this.default_sets._cache);
|
||||||
|
}
|
||||||
|
|
||||||
|
getGlobalSets(user_id, user_login) {
|
||||||
|
return this.getGlobalSetIDs(user_id, user_login)
|
||||||
|
.map(set_id => this.emote_sets[set_id]);
|
||||||
|
}
|
||||||
|
|
||||||
getEmotes(user_id, user_login, room_id, room_login) {
|
getEmotes(user_id, user_login, room_id, room_login) {
|
||||||
const emotes = {};
|
const emotes = {};
|
||||||
for(const emote_set of this.getSets(user_id, user_login, room_id, room_login))
|
for(const emote_set of this.getSets(user_id, user_login, room_id, room_login))
|
||||||
|
|
|
@ -11,7 +11,23 @@ const EMOTE_CLASS = 'chat-line__message--emote',
|
||||||
LINK_REGEX = /([^\w@#%\-+=:~])?((?:(https?:\/\/)?(?:[\w@#%\-+=:~]+\.)+[a-z]{2,6}(?:\/[\w.\/@#%&()\-+=:?~]*)?))([^\w.\/@#%&()\-+=:?~]|\s|$)/g,
|
LINK_REGEX = /([^\w@#%\-+=:~])?((?:(https?:\/\/)?(?:[\w@#%\-+=:~]+\.)+[a-z]{2,6}(?:\/[\w.\/@#%&()\-+=:?~]*)?))([^\w.\/@#%&()\-+=:?~]|\s|$)/g,
|
||||||
MENTION_REGEX = /([^\w@#%\-+=:~])?(@([^\u0000-\u007F]+|\w+)+)([^\w.\/@#%&()\-+=:?~]|\s|$)/g,
|
MENTION_REGEX = /([^\w@#%\-+=:~])?(@([^\u0000-\u007F]+|\w+)+)([^\w.\/@#%&()\-+=:?~]|\s|$)/g,
|
||||||
|
|
||||||
TWITCH_BASE = '//static-cdn.jtvnw.net/emoticons/v1/';
|
TWITCH_BASE = '//static-cdn.jtvnw.net/emoticons/v1/',
|
||||||
|
REPLACEMENT_BASE = '//cdn.frankerfacez.com/script/replacements/',
|
||||||
|
REPLACEMENTS = {
|
||||||
|
15: '15-JKanStyle.png',
|
||||||
|
16: '16-OptimizePrime.png',
|
||||||
|
17: '17-StoneLightning.png',
|
||||||
|
18: '18-TheRinger.png',
|
||||||
|
//19: '19-PazPazowitz.png',
|
||||||
|
//20: '20-EagleEye.png',
|
||||||
|
//21: '21-CougarHunt.png',
|
||||||
|
22: '22-RedCoat.png',
|
||||||
|
26: '26-JonCarnage.png',
|
||||||
|
//27: '27-PicoMause.png',
|
||||||
|
30: '30-BCWarrior.png',
|
||||||
|
33: '33-DansGame.png',
|
||||||
|
36: '36-PJSalt.png'
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
|
@ -57,7 +73,7 @@ export const Links = {
|
||||||
sanitize(this.i18n.t(
|
sanitize(this.i18n.t(
|
||||||
'tooltip.link-destination',
|
'tooltip.link-destination',
|
||||||
'Destination: %{url}',
|
'Destination: %{url}',
|
||||||
{url: data.urls[data.urls.length-1]}
|
{url: data.urls[data.urls.length-1][1]}
|
||||||
));
|
));
|
||||||
|
|
||||||
if ( data.unsafe ) {
|
if ( data.unsafe ) {
|
||||||
|
@ -697,12 +713,24 @@ export const TwitchEmotes = {
|
||||||
text: text.slice(idx - t_start, e_start - t_start).join('')
|
text: text.slice(idx - t_start, e_start - t_start).join('')
|
||||||
});
|
});
|
||||||
|
|
||||||
|
let src, srcSet;
|
||||||
|
|
||||||
|
const replacement = REPLACEMENTS[e_id];
|
||||||
|
if ( replacement ) {
|
||||||
|
src = `${REPLACEMENT_BASE}${replacement}`;
|
||||||
|
srcSet = '';
|
||||||
|
|
||||||
|
} else {
|
||||||
|
src = `${TWITCH_BASE}${e_id}/1.0`;
|
||||||
|
srcSet = `${TWITCH_BASE}${e_id}/1.0 1x, ${TWITCH_BASE}${e_id}/2.0 2x`;
|
||||||
|
}
|
||||||
|
|
||||||
out.push({
|
out.push({
|
||||||
type: 'emote',
|
type: 'emote',
|
||||||
id: e_id,
|
id: e_id,
|
||||||
provider: 'twitch',
|
provider: 'twitch',
|
||||||
src: `${TWITCH_BASE}${e_id}/1.0`,
|
src,
|
||||||
srcSet: `${TWITCH_BASE}${e_id}/1.0 1x, ${TWITCH_BASE}${e_id}/2.0 2x`,
|
srcSet,
|
||||||
text: text.slice(e_start - t_start, e_end - t_start).join(''),
|
text: text.slice(e_start - t_start, e_end - t_start).join(''),
|
||||||
modifiers: []
|
modifiers: []
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<template lang="html">
|
<template lang="html">
|
||||||
<div class="ffz--changelog border-t pd-t-1">
|
<div class="ffz--changelog tw-border-t tw-pd-t-1">
|
||||||
<div class="align-center">
|
<div class="tw-align-center">
|
||||||
<h2>{{ t('home.changelog', 'Changelog') }}</h2>
|
<h2>{{ t('home.changelog', 'Changelog') }}</h2>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
<template lang="html">
|
<template lang="html">
|
||||||
<div class="ffz--home border-t pd-t-1">
|
<div class="ffz--home tw-border-t tw-pd-t-1">
|
||||||
<h2>Feedback</h2>
|
<h2>Feedback</h2>
|
||||||
|
|
||||||
<div class="mg-y-1 c-background-accent c-text-overlay pd-1">
|
<div class="tw-mg-y-1 tw-c-background-accent tw-c-text-overlay tw-pd-1">
|
||||||
<h3 class="ffz-i-attention">
|
<h3 class="ffz-i-attention">
|
||||||
Please keep in mind that FrankerFaceZ v4 is under heavy development.
|
Please keep in mind that FrankerFaceZ v4 is under heavy development.
|
||||||
</h3>
|
</h3>
|
||||||
|
|
|
@ -3,25 +3,25 @@
|
||||||
<div ref="list" class="ffz--rule-list">
|
<div ref="list" class="ffz--rule-list">
|
||||||
<section v-for="(rule, idx) in rules">
|
<section v-for="(rule, idx) in rules">
|
||||||
<div
|
<div
|
||||||
class="ffz--rule elevation-1 c-background border mg-b-05 pd-y-05 pd-r-1 flex flex--nowrap align-items-start"
|
class="ffz--rule tw-elevation-1 tw-c-background tw-border tw-mg-b-05 tw-pd-y-05 tw-pd-r-1 tw-flex tw-flex-nowrap tw-align-items-start"
|
||||||
tabindex="0"
|
tabindex="0"
|
||||||
>
|
>
|
||||||
<div class="flex flex-shrink-0 align-items-center handle pd-x-05 pd-y-1">
|
<div class="tw-flex tw-flex-shrink-0 tw-align-items-center tw-handle tw-pd-x-05 tw-pd-y-1">
|
||||||
<span class="ffz-i-ellipsis-vert" />
|
<span class="ffz-i-ellipsis-vert" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex-shrink-0 pd-y-05">
|
<div class="tw-flex-shrink-0 tw-pd-y-05">
|
||||||
Channel
|
Channel
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mg-x-1 flex flex-grow-1">
|
<div class="tw-mg-x-1 tw-flex tw-flex-grow-1">
|
||||||
<div class="flex-shrink-0 mg-r-1">
|
<div class="tw-flex-shrink-0 tw-mg-r-1">
|
||||||
<select class="tw-select">
|
<select class="tw-select">
|
||||||
<option>is one of</option>
|
<option>is one of</option>
|
||||||
<option>is not one of</option>
|
<option>is not one of</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex-grow-1">
|
<div class="tw-flex-grow-1">
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
class="tw-input"
|
class="tw-input"
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex flex-shrink-0 align-items-center">
|
<div class="tw-flex tw-flex-shrink-0 tw-align-items-center">
|
||||||
<button class="tw-button tw-button--text" @click="del(idx)">
|
<button class="tw-button tw-button--text" @click="del(idx)">
|
||||||
<span class="tw-button__text ffz-i-trash">
|
<span class="tw-button__text ffz-i-trash">
|
||||||
{{ t('setting.filters.delete', 'Delete') }}
|
{{ t('setting.filters.delete', 'Delete') }}
|
||||||
|
@ -42,7 +42,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<button
|
<button
|
||||||
class="tw-button tw-button--hollow mg-y-1 full-width"
|
class="tw-button tw-button--hollow tw-mg-y-1 tw-full-width"
|
||||||
@click="newRule"
|
@click="newRule"
|
||||||
>
|
>
|
||||||
<span class="tw-button__text ffz-i-plus">
|
<span class="tw-button__text ffz-i-plus">
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
<template lang="html">
|
<template lang="html">
|
||||||
<div class="ffz--home flex flex--nowrap">
|
<div class="ffz--home tw-flex tw-flex-nowrap">
|
||||||
<div class="flex-grow-1">
|
<div class="tw-flex-grow-1">
|
||||||
<div class="align-center">
|
<div class="tw-align-center">
|
||||||
<h1 class="ffz-i-zreknarf ffz-i-pd-1">FrankerFaceZ</h1>
|
<h1 class="ffz-i-zreknarf ffz-i-pd-1">FrankerFaceZ</h1>
|
||||||
<span class="c-text-alt">
|
<span class="tw-c-text-alt">
|
||||||
{{ t('home.tag-line', 'The Twitch Enhancement Suite') }}
|
{{ t('home.tag-line', 'The Twitch Enhancement Suite') }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<section class="pd-t-1 border-t mg-t-1">
|
<section class="tw-pd-t-1 tw-border-t tw-mg-t-1">
|
||||||
<h2>Welcome to the v4.0 Beta</h2>
|
<h2>Welcome to the v4.0 Beta</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
@ -26,7 +26,7 @@
|
||||||
now, here are some of the bigger issues:
|
now, here are some of the bigger issues:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<ul class="mg-b-2">
|
<ul class="tw-mg-b-2">
|
||||||
<li>Settings from the old version are not being imported.</li>
|
<li>Settings from the old version are not being imported.</li>
|
||||||
<li>Settings cannot be searched.</li>
|
<li>Settings cannot be searched.</li>
|
||||||
<li>FFZ badges do not display.</li>
|
<li>FFZ badges do not display.</li>
|
||||||
|
@ -35,7 +35,7 @@
|
||||||
|
|
||||||
<p>And the biggest features still under development:</p>
|
<p>And the biggest features still under development:</p>
|
||||||
|
|
||||||
<ul class="mg-b-2">
|
<ul class="tw-mg-b-2">
|
||||||
<li>Dark Theme (Pls No Purple)</li>
|
<li>Dark Theme (Pls No Purple)</li>
|
||||||
<li>Badge Customization</li>
|
<li>Badge Customization</li>
|
||||||
<li>Emoji Rendering</li>
|
<li>Emoji Rendering</li>
|
||||||
|
@ -66,7 +66,7 @@
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="mg-l-1 flex-shrink-0 tweet-column">
|
<div class="tw-mg-l-1 tw-flex-shrink-0 tweet-column">
|
||||||
<a class="twitter-timeline" data-width="300" data-theme="dark" href="https://twitter.com/FrankerFaceZ?ref_src=twsrc%5Etfw">
|
<a class="twitter-timeline" data-width="300" data-theme="dark" href="https://twitter.com/FrankerFaceZ?ref_src=twsrc%5Etfw">
|
||||||
Tweets by FrankerFaceZ
|
Tweets by FrankerFaceZ
|
||||||
</a>
|
</a>
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
<template lang="html">
|
<template lang="html">
|
||||||
<div class="ffz-main-menu elevation-3 c-background-alt border flex flex--nowrap flex-column" :class="{ maximized }">
|
<div class="ffz-main-menu tw-elevation-3 tw-c-background-alt tw-border tw-flex tw-flex-nowrap tw-flex-column" :class="{ maximized }">
|
||||||
<header class="c-background full-width align-items-center flex flex-nowrap" @dblclick="resize">
|
<header class="tw-c-background tw-full-width tw-align-items-center tw-flex tw-flex-nowrap" @dblclick="resize">
|
||||||
<h3 class="ffz-i-zreknarf ffz-i-pd-1">FrankerFaceZ</h3>
|
<h3 class="ffz-i-zreknarf ffz-i-pd-1">FrankerFaceZ</h3>
|
||||||
<div class="flex-grow-1 pd-x-2">
|
<div class="tw-flex-grow-1 tw-pd-x-2">
|
||||||
<!--div class="tw-search-input">
|
<!--div class="tw-search-input">
|
||||||
<label for="ffz-main-menu.search" class="hide-accessible">{{ t('main-menu.search', 'Search Settings') }}</label>
|
<label for="ffz-main-menu.search" class="hide-accessible">{{ t('main-menu.search', 'Search Settings') }}</label>
|
||||||
<div class="relative">
|
<div class="relative">
|
||||||
|
@ -15,27 +15,27 @@
|
||||||
</div>
|
</div>
|
||||||
</div-->
|
</div-->
|
||||||
</div>
|
</div>
|
||||||
<button class="tw-button-icon mg-x-05" @click="resize">
|
<button class="tw-button-icon tw-mg-x-05" @click="resize">
|
||||||
<span class="tw-button-icon__icon">
|
<span class="tw-button-icon__icon">
|
||||||
<figure :class="{'ffz-i-window-maximize': !maximized, 'ffz-i-window-restore': maximized}" />
|
<figure :class="{'ffz-i-window-maximize': !maximized, 'ffz-i-window-restore': maximized}" />
|
||||||
</span>
|
</span>
|
||||||
</button>
|
</button>
|
||||||
<button class="tw-button-icon mg-x-05" @click="close">
|
<button class="tw-button-icon tw-mg-x-05" @click="close">
|
||||||
<span class="tw-button-icon__icon">
|
<span class="tw-button-icon__icon">
|
||||||
<figure class="ffz-i-window-close" />
|
<figure class="ffz-i-window-close" />
|
||||||
</span>
|
</span>
|
||||||
</button>
|
</button>
|
||||||
</header>
|
</header>
|
||||||
<section class="border-t full-height full-width flex flex-nowrap overflow-hidden">
|
<section class="tw-border-t tw-full-height tw-full-width tw-flex tw-flex-nowrap tw-overflow-hidden">
|
||||||
<nav class="ffz-vertical-nav c-background-alt-2 border-r full-height flex flex-column flex-shrink-0 flex-nowrap">
|
<nav class="ffz-vertical-nav tw-c-background-alt-2 tw-border-r tw-full-height tw-flex tw-flex-column tw-flex-shrink-0 tw-flex-nowrap">
|
||||||
<header class="border-b pd-1">
|
<header class="tw-border-b tw-pd-1">
|
||||||
<profile-selector
|
<profile-selector
|
||||||
:context="context"
|
:context="context"
|
||||||
@navigate="navigate"
|
@navigate="navigate"
|
||||||
/>
|
/>
|
||||||
</header>
|
</header>
|
||||||
<div class="full-width full-height overflow-hidden flex flex-nowrap relative">
|
<div class="tw-full-width tw-full-height tw-overflow-hidden tw-flex tw-flex-nowrap tw-relative">
|
||||||
<div class="ffz-vertical-nav__items full-width flex-grow-1 scrollable-area" data-simplebar>
|
<div class="ffz-vertical-nav__items tw-full-width tw-flex-grow-1 scrollable-area" data-simplebar>
|
||||||
<div class="simplebar-scroll-content">
|
<div class="simplebar-scroll-content">
|
||||||
<div class="simplebar-content">
|
<div class="simplebar-content">
|
||||||
<menu-tree
|
<menu-tree
|
||||||
|
@ -48,16 +48,16 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<footer class="c-text-alt border-t pd-1">
|
<footer class="tw-c-text-alt tw-border-t tw-pd-1">
|
||||||
<div>
|
<div>
|
||||||
{{ t('main-menu.version', 'Version %{version}', {version: version.toString()}) }}
|
{{ t('main-menu.version', 'Version %{version}', {version: version.toString()}) }}
|
||||||
</div>
|
</div>
|
||||||
<div class="c-text-alt-2">
|
<div class="tw-c-text-alt-2">
|
||||||
{{version.build}}
|
{{version.build}}
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
</nav>
|
</nav>
|
||||||
<main class="flex-grow-1 scrollable-area" data-simplebar>
|
<main class="tw-flex-grow-1 scrollable-area" data-simplebar>
|
||||||
<div class="simplebar-scroll-content">
|
<div class="simplebar-scroll-content">
|
||||||
<div class="simplebar-content">
|
<div class="simplebar-content">
|
||||||
<menu-page
|
<menu-page
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
<section
|
<section
|
||||||
v-if="item.description"
|
v-if="item.description"
|
||||||
v-html="t(item.desc_i18n_key, item.description, item)"
|
v-html="t(item.desc_i18n_key, item.description, item)"
|
||||||
class="pd-b-1"
|
class="tw-pd-b-1"
|
||||||
/>
|
/>
|
||||||
<component
|
<component
|
||||||
v-for="i in item.contents"
|
v-for="i in item.contents"
|
||||||
|
@ -26,7 +26,7 @@ export default {
|
||||||
classes() {
|
classes() {
|
||||||
return [
|
return [
|
||||||
'ffz--menu-container',
|
'ffz--menu-container',
|
||||||
this.item.full_box ? 'border' : 'border-t'
|
this.item.full_box ? 'tw-border' : 'tw-border-t'
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
<template lang="html">
|
<template lang="html">
|
||||||
<div class="ffz--menu-page">
|
<div class="ffz--menu-page">
|
||||||
<header class="mg-b-1">
|
<header class="tw-mg-b-1">
|
||||||
<template v-for="i in breadcrumbs">
|
<template v-for="i in breadcrumbs">
|
||||||
<a v-if="i !== item" href="#" @click="$emit('change-item', i, false)">{{ t(i.i18n_key, i.title, i) }}</a>
|
<a v-if="i !== item" href="#" @click="$emit('change-item', i, false)">{{ t(i.i18n_key, i.title, i) }}</a>
|
||||||
<strong v-if="i === item">{{ t(i.i18n_key, i.title, i) }}</strong>
|
<strong v-if="i === item">{{ t(i.i18n_key, i.title, i) }}</strong>
|
||||||
<template v-if="i !== item">» </template>
|
<template v-if="i !== item">» </template>
|
||||||
</template>
|
</template>
|
||||||
</header>
|
</header>
|
||||||
<section v-if="! context.currentProfile.live && item.profile_warning !== false" class="border-t pd-t-1 pd-b-2">
|
<section v-if="! context.currentProfile.live && item.profile_warning !== false" class="tw-border-t tw-pd-t-1 tw-pd-b-2">
|
||||||
<div class="c-background-accent c-text-overlay pd-1">
|
<div class="tw-c-background-accent tw-c-text-overlay tw-pd-1">
|
||||||
<h3 class="ffz-i-attention">
|
<h3 class="ffz-i-attention">
|
||||||
{{ t('setting.profiles.inactive', "This profile isn't active.") }}
|
{{ t('setting.profiles.inactive', "This profile isn't active.") }}
|
||||||
</h3>
|
</h3>
|
||||||
|
@ -22,13 +22,13 @@
|
||||||
</section>
|
</section>
|
||||||
<section
|
<section
|
||||||
v-if="item.description"
|
v-if="item.description"
|
||||||
class="border-t pd-y-1"
|
class="tw-border-t tw-pd-y-1"
|
||||||
v-html="t(item.desc_i18n_key || item.i18n_key + '.description', item.description, item)"
|
v-html="t(item.desc_i18n_key || item.i18n_key + '.description', item.description, item)"
|
||||||
/>
|
/>
|
||||||
</section>
|
</section>
|
||||||
<template v-if="! item.contents">
|
<template v-if="! item.contents">
|
||||||
<ul class="border-t pd-y-1">
|
<ul class="tw-border-t tw-pd-y-1">
|
||||||
<li class="pd-x-1" v-for="i in item.items">
|
<li class="tw-pd-x-1" v-for="i in item.items">
|
||||||
<a href="#" @click="$emit('change-item', i, false)">
|
<a href="#" @click="$emit('change-item', i, false)">
|
||||||
{{ t(i.i18n_key, i.title, i) }}
|
{{ t(i.i18n_key, i.title, i) }}
|
||||||
</a>
|
</a>
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
role="presentation"
|
role="presentation"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
class="flex__item flex flex--nowrap align-items-center pd-y-05 pd-r-05"
|
class="tw-flex__item tw-flex tw-flex-nowrap tw-align-items-center tw-pd-y-05 tw-pd-r-05"
|
||||||
|
|
||||||
role="treeitem"
|
role="treeitem"
|
||||||
:aria-expanded="item.expanded"
|
:aria-expanded="item.expanded"
|
||||||
|
@ -32,7 +32,7 @@
|
||||||
item.expanded ? 'ffz-i-down-dir' : 'ffz-i-right-dir'
|
item.expanded ? 'ffz-i-down-dir' : 'ffz-i-right-dir'
|
||||||
]"
|
]"
|
||||||
/>
|
/>
|
||||||
<span class="flex-grow-1">
|
<span class="tw-flex-grow-1">
|
||||||
{{ t(item.i18n_key, item.title, item) }}
|
{{ t(item.i18n_key, item.title, item) }}
|
||||||
</span>
|
</span>
|
||||||
<span v-if="item.pill" class="pill">
|
<span v-if="item.pill" class="pill">
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<template lang="html">
|
<template lang="html">
|
||||||
<div class="ffz--profile-editor">
|
<div class="ffz--profile-editor">
|
||||||
<div class="flex align-items-center border-t pd-1">
|
<div class="tw-flex tw-align-items-center tw-border-t tw-pd-1">
|
||||||
<div class="flex-grow-1"></div>
|
<div class="tw-flex-grow-1"></div>
|
||||||
<button
|
<button
|
||||||
class="tw-button tw-button--text"
|
class="tw-button tw-button--text"
|
||||||
@click="save"
|
@click="save"
|
||||||
|
@ -11,7 +11,7 @@
|
||||||
</span>
|
</span>
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button
|
||||||
class="mg-l-1 tw-button tw-button--text"
|
class="tw-mg-l-1 tw-button tw-button--text"
|
||||||
:disabled="item.profile && context.profiles.length < 2"
|
:disabled="item.profile && context.profiles.length < 2"
|
||||||
@click="del"
|
@click="del"
|
||||||
>
|
>
|
||||||
|
@ -19,19 +19,19 @@
|
||||||
{{ t('setting.profiles.delete', 'Delete') }}
|
{{ t('setting.profiles.delete', 'Delete') }}
|
||||||
</span>
|
</span>
|
||||||
</button>
|
</button>
|
||||||
<!--button class="mg-l-1 tw-button tw-button--text">
|
<!--button class="tw-mg-l-1 tw-button tw-button--text">
|
||||||
<span class="tw-button__text ffz-i-download">
|
<span class="tw-button__text ffz-i-download">
|
||||||
{{ t('setting.profiles.export', 'Export') }}
|
{{ t('setting.profiles.export', 'Export') }}
|
||||||
</span>
|
</span>
|
||||||
</button-->
|
</button-->
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="ffz--menu-container border-t">
|
<div class="ffz--menu-container tw-border-t">
|
||||||
<header>
|
<header>
|
||||||
{{ t('settings.data_management.profiles.edit.general', 'General') }}
|
{{ t('settings.data_management.profiles.edit.general', 'General') }}
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<div class="ffz--widget flex flex--nowrap">
|
<div class="ffz--widget tw-flex tw-flex-nowrap">
|
||||||
<label for="ffz:editor:name">
|
<label for="ffz:editor:name">
|
||||||
{{ t('settings.data_management.profiles.edit.name', 'Name') }}
|
{{ t('settings.data_management.profiles.edit.name', 'Name') }}
|
||||||
</label>
|
</label>
|
||||||
|
@ -44,7 +44,7 @@
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="ffz--widget flex flex--nowrap">
|
<div class="ffz--widget tw-flex tw-flex-nowrap">
|
||||||
<label for="ffz:editor:description">
|
<label for="ffz:editor:description">
|
||||||
{{ t('settings.data_management.profiles.edit.desc', 'Description') }}
|
{{ t('settings.data_management.profiles.edit.desc', 'Description') }}
|
||||||
</label>
|
</label>
|
||||||
|
@ -58,11 +58,11 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="ffz--menu-container border-t">
|
<div class="ffz--menu-container tw-border-t">
|
||||||
<header>
|
<header>
|
||||||
{{ t('settings.data_management.profiles.edit.rules', 'Rules') }}
|
{{ t('settings.data_management.profiles.edit.rules', 'Rules') }}
|
||||||
</header>
|
</header>
|
||||||
<section class="pd-b-1">
|
<section class="tw-pd-b-1">
|
||||||
{{ t(
|
{{ t(
|
||||||
'settings.data_management.profiles.edit.rules.description',
|
'settings.data_management.profiles.edit.rules.description',
|
||||||
'Rules allows you to define a series of conditions under which this profile will be active.'
|
'Rules allows you to define a series of conditions under which this profile will be active.'
|
||||||
|
|
|
@ -1,22 +1,22 @@
|
||||||
<template lang="html">
|
<template lang="html">
|
||||||
<div class="ffz--widget ffz--profile-manager border-t pd-y-1">
|
<div class="ffz--widget ffz--profile-manager tw-border-t tw-pd-y-1">
|
||||||
<div class="c-background-accent c-text-overlay pd-1 mg-b-1">
|
<div class="tw-c-background-accent tw-c-text-overlay tw-pd-1 tw-mg-b-1">
|
||||||
<h3 class="ffz-i-attention">
|
<h3 class="ffz-i-attention">
|
||||||
This feature is not yet finished.
|
This feature is not yet finished.
|
||||||
</h3>
|
</h3>
|
||||||
|
|
||||||
Creating and editing profiles is disabled until the rule editor is finished.
|
Creating and editing profiles is disabled until the rule editor is finished.
|
||||||
</div>
|
</div>
|
||||||
<div class="flex align-items-center pd-b-05">
|
<div class="tw-flex tw-align-items-center tw-pd-b-05">
|
||||||
<div class="flex-grow-1">
|
<div class="tw-flex-grow-1">
|
||||||
{{ t('setting.profiles.drag', 'Drag profiles to change their priority.') }}
|
{{ t('setting.profiles.drag', 'Drag profiles to change their priority.') }}
|
||||||
</div>
|
</div>
|
||||||
<button class="mg-l-1 tw-button tw-button--text" disabled @notclick="edit()">
|
<button class="tw-mg-l-1 tw-button tw-button--text" disabled @notclick="edit()">
|
||||||
<span class="tw-button__text ffz-i-plus">
|
<span class="tw-button__text ffz-i-plus">
|
||||||
{{ t('setting.profiles.new', 'New Profile') }}
|
{{ t('setting.profiles.new', 'New Profile') }}
|
||||||
</span>
|
</span>
|
||||||
</button>
|
</button>
|
||||||
<!--button class="mg-l-1 tw-button tw-button--text">
|
<!--button class="tw-mg-l-1 tw-button tw-button--text">
|
||||||
<span class="tw-button__text ffz-i-upload">
|
<span class="tw-button__text ffz-i-upload">
|
||||||
{{ t('setting.profiles.import', 'Import…') }}
|
{{ t('setting.profiles.import', 'Import…') }}
|
||||||
</span>
|
</span>
|
||||||
|
@ -30,22 +30,22 @@
|
||||||
:data-profile="p.id"
|
:data-profile="p.id"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
class="ffz--profile elevation-1 c-background border pd-y-05 pd-r-1 mg-y-05 flex flex--nowrap"
|
class="ffz--profile tw-elevation-1 tw-c-background tw-border tw-pd-y-05 tw-pd-r-1 tw-mg-y-05 tw-flex tw-flex-nowrap"
|
||||||
:class="{live: p.live}"
|
:class="{live: p.live}"
|
||||||
tabindex="0"
|
tabindex="0"
|
||||||
>
|
>
|
||||||
<div class="flex flex-shrink-0 align-items-center handle pd-x-05 pd-t-1 pd-b-05">
|
<div class="tw-flex tw-flex-shrink-0 tw-align-items-center tw-handle tw-pd-x-05 tw-pd-t-1 tw-pd-b-05">
|
||||||
<span class="ffz-i-ellipsis-vert" />
|
<span class="ffz-i-ellipsis-vert" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex-grow-1">
|
<div class="tw-flex-grow-1">
|
||||||
<h4>{{ t(p.i18n_key, p.title, p) }}</h4>
|
<h4>{{ t(p.i18n_key, p.title, p) }}</h4>
|
||||||
<div v-if="p.description" class="description">
|
<div v-if="p.description" class="description">
|
||||||
{{ t(p.desc_i18n_key, p.description, p) }}
|
{{ t(p.desc_i18n_key, p.description, p) }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex flex-shrink-0 align-items-center">
|
<div class="tw-flex tw-flex-shrink-0 tw-align-items-center">
|
||||||
<button class="tw-button tw-button--text" disabled @notclick="edit(p)">
|
<button class="tw-button tw-button--text" disabled @notclick="edit(p)">
|
||||||
<span class="tw-button__text ffz-i-cog">
|
<span class="tw-button__text ffz-i-cog">
|
||||||
{{ t('setting.profiles.configure', 'Configure') }}
|
{{ t('setting.profiles.configure', 'Configure') }}
|
||||||
|
@ -53,7 +53,7 @@
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex flex-shrink-0 align-items-center border-l mg-l-1 pd-l-1">
|
<div class="tw-flex tw-flex-shrink-0 tw-align-items-center tw-border-l tw-mg-l-1 tw-pd-l-1">
|
||||||
<div v-if="p.live" class="ffz--profile__icon ffz-i-ok tw-tooltip-wrapper">
|
<div v-if="p.live" class="ffz--profile__icon ffz-i-ok tw-tooltip-wrapper">
|
||||||
<div class="tw-tooltip tw-tooltip--down tw-tooltip--align-right">
|
<div class="tw-tooltip tw-tooltip--down tw-tooltip--align-right">
|
||||||
{{ t('setting.profiles.active', 'This profile is active.') }}
|
{{ t('setting.profiles.active', 'This profile is active.') }}
|
||||||
|
|
|
@ -15,20 +15,20 @@
|
||||||
>
|
>
|
||||||
{{ t(context.currentProfile.i18n_key, context.currentProfile.title, context.currentProfile) }}
|
{{ t(context.currentProfile.i18n_key, context.currentProfile.title, context.currentProfile) }}
|
||||||
</div>
|
</div>
|
||||||
<div v-if="opened" v-on-clickaway="hide" class="tw-balloon block tw-balloon--lg tw-balloon--down tw-balloon--left">
|
<div v-if="opened" v-on-clickaway="hide" class="tw-balloon tw-block tw-balloon--lg tw-balloon--down tw-balloon--left">
|
||||||
<div
|
<div
|
||||||
class="ffz--profile-list elevation-2 c-background-alt"
|
class="ffz--profile-list tw-elevation-2 tw-c-background-alt"
|
||||||
@keyup.escape="focusHide"
|
@keyup.escape="focusHide"
|
||||||
@focusin="focus"
|
@focusin="focus"
|
||||||
@focusout="blur"
|
@focusout="blur"
|
||||||
>
|
>
|
||||||
<div class="scrollable-area border-b" data-simplebar>
|
<div class="scrollable-area tw-border-b" data-simplebar>
|
||||||
<div class="simplebar-scroll-content">
|
<div class="simplebar-scroll-content">
|
||||||
<div class="simplebar-content" ref="popup">
|
<div class="simplebar-content" ref="popup">
|
||||||
<div
|
<div
|
||||||
v-for="(p, idx) in context.profiles"
|
v-for="(p, idx) in context.profiles"
|
||||||
tabindex="0"
|
tabindex="0"
|
||||||
class="ffz--profile-row relative border-b pd-y-05 pd-r-3 pd-l-1"
|
class="ffz--profile-row tw-relative tw-border-b tw-pd-y-05 tw-pd-r-3 tw-pd-l-1"
|
||||||
:class="{
|
:class="{
|
||||||
live: p.live,
|
live: p.live,
|
||||||
current: p === context.currentProfile
|
current: p === context.currentProfile
|
||||||
|
@ -48,7 +48,7 @@
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
v-if="p.live"
|
v-if="p.live"
|
||||||
class="tw-tooltip-wrapper ffz--profile-row__icon ffz-i-ok absolute"
|
class="tw-tooltip-wrapper ffz--profile-row__icon ffz-i-ok tw-absolute"
|
||||||
>
|
>
|
||||||
<div class="tw-tooltip tw-tooltip--down tw-tooltip--align-right">
|
<div class="tw-tooltip tw-tooltip--down tw-tooltip--align-right">
|
||||||
{{ t('setting.profiles.active', 'This profile is active.') }}
|
{{ t('setting.profiles.active', 'This profile is active.') }}
|
||||||
|
@ -64,7 +64,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="pd-y-05 pd-x-05 align-right">
|
<div class="tw-pd-y-05 tw-pd-x-05 tw-align-right">
|
||||||
<button class="tw-button tw-button--text" @click="openConfigure">
|
<button class="tw-button tw-button--text" @click="openConfigure">
|
||||||
<span class="tw-button__text ffz-i-cog">
|
<span class="tw-button__text ffz-i-cog">
|
||||||
{{ t('setting.profiles.configure', 'Configure') }}
|
{{ t('setting.profiles.configure', 'Configure') }}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<template lang="html">
|
<template lang="html">
|
||||||
<div class="ffz--widget ffz--checkbox" :class="{inherits: isInherited, default: isDefault}">
|
<div class="ffz--widget ffz--checkbox" :class="{inherits: isInherited, default: isDefault}">
|
||||||
<div class="flex align-items-center">
|
<div class="tw-flex tw-align-items-center">
|
||||||
<input
|
<input
|
||||||
type="checkbox"
|
type="checkbox"
|
||||||
class="tw-checkbox__input"
|
class="tw-checkbox__input"
|
||||||
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
<button
|
<button
|
||||||
v-if="source && source !== profile"
|
v-if="source && source !== profile"
|
||||||
class="mg-l-05 tw-button tw-button--text"
|
class="tw-mg-l-05 tw-button tw-button--text"
|
||||||
@click="context.currentProfile = source"
|
@click="context.currentProfile = source"
|
||||||
>
|
>
|
||||||
<span class="tw-button__text ffz-i-right-dir">
|
<span class="tw-button__text ffz-i-right-dir">
|
||||||
|
@ -24,7 +24,7 @@
|
||||||
</span>
|
</span>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<button v-if="has_value" class="mg-l-05 tw-button tw-button--text tw-tooltip-wrapper" @click="clear">
|
<button v-if="has_value" class="tw-mg-l-05 tw-button tw-button--text tw-tooltip-wrapper" @click="clear">
|
||||||
<span class="tw-button__text ffz-i-cancel"></span>
|
<span class="tw-button__text ffz-i-cancel"></span>
|
||||||
<div class="tw-tooltip tw-tooltip--down tw-tooltip--align-right">
|
<div class="tw-tooltip tw-tooltip--down tw-tooltip--align-right">
|
||||||
{{ t('setting.reset', 'Reset to Default') }}
|
{{ t('setting.reset', 'Reset to Default') }}
|
||||||
|
@ -33,7 +33,7 @@
|
||||||
</div>
|
</div>
|
||||||
<section
|
<section
|
||||||
v-if="item.description"
|
v-if="item.description"
|
||||||
class="c-text-alt-2"
|
class="tw-c-text-alt-2"
|
||||||
style="padding-left:2.2rem"
|
style="padding-left:2.2rem"
|
||||||
v-html="t(item.desc_i18n_key || item.i18n_key + '.description', item.description, item)"
|
v-html="t(item.desc_i18n_key || item.i18n_key + '.description', item.description, item)"
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
:for="item.full_key"
|
:for="item.full_key"
|
||||||
v-html="t(item.i18n_key, item.title, item)"
|
v-html="t(item.i18n_key, item.title, item)"
|
||||||
/>
|
/>
|
||||||
<div class="relative">
|
<div class="tw-relative">
|
||||||
<div class="tw-input__icon-group tw-input__icon-group--right">
|
<div class="tw-input__icon-group tw-input__icon-group--right">
|
||||||
<div class="tw-input__icon">
|
<div class="tw-input__icon">
|
||||||
<figure class="ffz-i-keyboard" />
|
<figure class="ffz-i-keyboard" />
|
||||||
|
@ -12,7 +12,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
type="text"
|
type="text"
|
||||||
class="mg-05 tw-input tw-input--icon-right"
|
class="tw-mg-05 tw-input tw-input--icon-right"
|
||||||
ref="display"
|
ref="display"
|
||||||
:id="item.full_key"
|
:id="item.full_key"
|
||||||
tabindex="0"
|
tabindex="0"
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
<template lang="html">
|
<template lang="html">
|
||||||
<div class="atw-input">
|
<div class="tw-input">
|
||||||
<header>
|
<header>
|
||||||
{{ t(item.i18n_key, item.title, item) }}
|
{{ t(item.i18n_key, item.title, item) }}
|
||||||
</header>
|
</header>
|
||||||
<section
|
<section
|
||||||
v-if="item.description"
|
v-if="item.description"
|
||||||
class="c-text-alt-2"
|
class="tw-c-text-alt-2"
|
||||||
v-html="t(item.desc_i18n_key || item.i18n_key + '.description', item.description, item)"
|
v-html="t(item.desc_i18n_key || item.i18n_key + '.description', item.description, item)"
|
||||||
/>
|
/>
|
||||||
<div v-for="(i, idx) in data" class="mg-l-1">
|
<div v-for="(i, idx) in data" class="tw-mg-l-1">
|
||||||
<input type="radio" :name="item.full_key" :id="item.full_key + idx" :value="i.value" class="tw-radio__input">
|
<input type="radio" :name="item.full_key" :id="item.full_key + idx" :value="i.value" class="tw-radio__input">
|
||||||
<label :for="item.full_key + idx" class="pd-y-05 tw-radio__label">{{ t(i.i18n_key, i.title, i) }}</label>
|
<label :for="item.full_key + idx" class="tw-pd-y-05 tw-radio__label">{{ t(i.i18n_key, i.title, i) }}</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
<template lang="html">
|
<template lang="html">
|
||||||
<div class="ffz--widget ffz--select-box" :class="{inherits: isInherited, default: isDefault}">
|
<div class="ffz--widget ffz--select-box" :class="{inherits: isInherited, default: isDefault}">
|
||||||
<div class="flex align-items-center">
|
<div class="tw-flex tw-align-items-center">
|
||||||
<label :for="item.full_key">
|
<label :for="item.full_key">
|
||||||
{{ t(item.i18n_key, item.title, item) }}
|
{{ t(item.i18n_key, item.title, item) }}
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
<select
|
<select
|
||||||
class="mg-05 tw-select display-inline width-auto"
|
class="tw-mg-05 tw-select tw-display-inline tw-width-auto"
|
||||||
ref="control"
|
ref="control"
|
||||||
:id="item.full_key"
|
:id="item.full_key"
|
||||||
@change="onChange"
|
@change="onChange"
|
||||||
|
@ -18,7 +18,7 @@
|
||||||
|
|
||||||
<button
|
<button
|
||||||
v-if="source && source !== profile"
|
v-if="source && source !== profile"
|
||||||
class="mg-l-05 tw-button tw-button--text"
|
class="tw-mg-l-05 tw-button tw-button--text"
|
||||||
@click="context.currentProfile = source"
|
@click="context.currentProfile = source"
|
||||||
>
|
>
|
||||||
<span class="tw-button__text ffz-i-right-dir">
|
<span class="tw-button__text ffz-i-right-dir">
|
||||||
|
@ -26,7 +26,7 @@
|
||||||
</span>
|
</span>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<button v-if="has_value" class="mg-l-05 tw-button tw-button--text tw-tooltip-wrapper" @click="clear">
|
<button v-if="has_value" class="tw-mg-l-05 tw-button tw-button--text tw-tooltip-wrapper" @click="clear">
|
||||||
<span class="tw-button__text ffz-i-cancel"></span>
|
<span class="tw-button__text ffz-i-cancel"></span>
|
||||||
<div class="tw-tooltip tw-tooltip--down tw-tooltip--align-right">
|
<div class="tw-tooltip tw-tooltip--down tw-tooltip--align-right">
|
||||||
{{ t('setting.reset', 'Reset to Default') }}
|
{{ t('setting.reset', 'Reset to Default') }}
|
||||||
|
@ -36,7 +36,7 @@
|
||||||
|
|
||||||
<section
|
<section
|
||||||
v-if="item.description"
|
v-if="item.description"
|
||||||
class="c-text-alt-2"
|
class="tw-c-text-alt-2"
|
||||||
v-html="t(item.desc_i18n_key || item.i18n_key + '.description', item.description, item)"
|
v-html="t(item.desc_i18n_key || item.i18n_key + '.description', item.description, item)"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
<template lang="html">
|
<template lang="html">
|
||||||
<div class="ffz--widget ffz--text-box" :class="{inherits: isInherited, default: isDefault}">
|
<div class="ffz--widget ffz--text-box" :class="{inherits: isInherited, default: isDefault}">
|
||||||
<div class="flex align-items-center">
|
<div class="tw-flex tw-align-items-center">
|
||||||
<label :for="item.full_key">
|
<label :for="item.full_key">
|
||||||
{{ t(item.i18n_key, item.title, item) }}
|
{{ t(item.i18n_key, item.title, item) }}
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
<input
|
<input
|
||||||
class="mg-05 tw-input display-inline width-auto"
|
class="tw-mg-05 tw-input tw-display-inline tw-width-auto"
|
||||||
ref="control"
|
ref="control"
|
||||||
:id="item.full_key"
|
:id="item.full_key"
|
||||||
@change="onChange"
|
@change="onChange"
|
||||||
|
@ -15,7 +15,7 @@
|
||||||
|
|
||||||
<button
|
<button
|
||||||
v-if="source && source !== profile"
|
v-if="source && source !== profile"
|
||||||
class="mg-l-05 tw-button tw-button--text"
|
class="tw-mg-l-05 tw-button tw-button--text"
|
||||||
@click="context.currentProfile = source"
|
@click="context.currentProfile = source"
|
||||||
>
|
>
|
||||||
<span class="tw-button__text ffz-i-right-dir">
|
<span class="tw-button__text ffz-i-right-dir">
|
||||||
|
@ -23,7 +23,7 @@
|
||||||
</span>
|
</span>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<button v-if="has_value" class="mg-l-05 tw-button tw-button--text tw-tooltip-wrapper" @click="clear">
|
<button v-if="has_value" class="tw-mg-l-05 tw-button tw-button--text tw-tooltip-wrapper" @click="clear">
|
||||||
<span class="tw-button__text ffz-i-cancel"></span>
|
<span class="tw-button__text ffz-i-cancel"></span>
|
||||||
<div class="tw-tooltip tw-tooltip--down tw-tooltip--align-right">
|
<div class="tw-tooltip tw-tooltip--down tw-tooltip--align-right">
|
||||||
{{ t('setting.reset', 'Reset to Default') }}
|
{{ t('setting.reset', 'Reset to Default') }}
|
||||||
|
@ -33,7 +33,7 @@
|
||||||
|
|
||||||
<section
|
<section
|
||||||
v-if="item.description"
|
v-if="item.description"
|
||||||
class="c-text-alt-2"
|
class="tw-c-text-alt-2"
|
||||||
v-html="t(item.desc_i18n_key || item.i18n_key + '.description', item.description, item)"
|
v-html="t(item.desc_i18n_key || item.i18n_key + '.description', item.description, item)"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -114,7 +114,7 @@ export default class MainMenu extends Module {
|
||||||
|
|
||||||
const maximized = this._maximized,
|
const maximized = this._maximized,
|
||||||
visible = this._visible = !this._visible,
|
visible = this._visible = !this._visible,
|
||||||
main = document.querySelector(maximized ? '.twilight-main' : '.twilight-root > .full-height');
|
main = document.querySelector(maximized ? '.twilight-main' : '.twilight-root > .tw-full-height');
|
||||||
|
|
||||||
if ( ! visible ) {
|
if ( ! visible ) {
|
||||||
if ( maximized )
|
if ( maximized )
|
||||||
|
@ -143,7 +143,7 @@ export default class MainMenu extends Module {
|
||||||
return;
|
return;
|
||||||
|
|
||||||
const maximized = this._maximized = !this._maximized,
|
const maximized = this._maximized = !this._maximized,
|
||||||
main = document.querySelector(maximized ? '.twilight-main' : '.twilight-root > .full-height'),
|
main = document.querySelector(maximized ? '.twilight-main' : '.twilight-root > .tw-full-height'),
|
||||||
old_main = this._menu.parentElement;
|
old_main = this._menu.parentElement;
|
||||||
|
|
||||||
if ( maximized )
|
if ( maximized )
|
||||||
|
|
|
@ -303,7 +303,7 @@ export default class Metadata extends Module {
|
||||||
stat = e('span', 'ffz-stat-text tw-button__text')
|
stat = e('span', 'ffz-stat-text tw-button__text')
|
||||||
]),
|
]),
|
||||||
popup = e('button', `tw-button ${cls} ffz-stat-arrow`,
|
popup = e('button', `tw-button ${cls} ffz-stat-arrow`,
|
||||||
e('span', 'tw-button__icon pd-x-0',
|
e('span', 'tw-button__icon tw-pd-x-0',
|
||||||
e('figure', 'ffz-i-down-dir')
|
e('figure', 'ffz-i-down-dir')
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@ -355,7 +355,7 @@ export default class Metadata extends Module {
|
||||||
|
|
||||||
tooltipClass: 'ffz-metadata-balloon tw-balloon block',
|
tooltipClass: 'ffz-metadata-balloon tw-balloon block',
|
||||||
arrowClass: 'tw-balloon__tail',
|
arrowClass: 'tw-balloon__tail',
|
||||||
innerClass: 'pd-1',
|
innerClass: 'tw-pd-1',
|
||||||
|
|
||||||
popper: {
|
popper: {
|
||||||
placement: 'top-end'
|
placement: 'top-end'
|
||||||
|
|
|
@ -88,7 +88,7 @@ export default class ChannelBar extends Module {
|
||||||
|
|
||||||
updateMetadata(inst, keys) {
|
updateMetadata(inst, keys) {
|
||||||
const container = this.fine.getHostNode(inst),
|
const container = this.fine.getHostNode(inst),
|
||||||
metabar = container && container.querySelector && container.querySelector('.channel-info-bar__action-container > .flex');
|
metabar = container && container.querySelector && container.querySelector('.channel-info-bar__action-container > .tw-flex');
|
||||||
|
|
||||||
if ( ! inst._ffz_mounted || ! metabar )
|
if ( ! inst._ffz_mounted || ! metabar )
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -123,25 +123,25 @@ export default class Scroller extends Module {
|
||||||
if ( ! node )
|
if ( ! node )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
node.classList.add('full-height');
|
node.classList.add('tw-full-height');
|
||||||
|
|
||||||
el = this._ffz_freeze_indicator = e('div', {
|
el = this._ffz_freeze_indicator = e('div', {
|
||||||
className: 'ffz--freeze-indicator chat-list__more-messages-placeholder relative mg-x-2'
|
className: 'ffz--freeze-indicator chat-list__more-messages-placeholder tw-relative tw-mg-x-2'
|
||||||
}, e('div', {
|
}, e('div', {
|
||||||
className: 'chat-list__more-messages bottom-0 full-width align-items-center flex justify-content-center absolute pd-05'
|
className: 'chat-list__more-messages tw-bottom-0 tw-full-width tw-align-items-center tw-flex tw-justify-content-center tw-absolute tw-pd-05'
|
||||||
}));
|
}));
|
||||||
|
|
||||||
this.ffzUpdateText();
|
this.ffzUpdateText();
|
||||||
node.appendChild(el);
|
node.appendChild(el);
|
||||||
|
|
||||||
} else
|
} else
|
||||||
el.classList.remove('hide');
|
el.classList.remove('tw-hide');
|
||||||
}
|
}
|
||||||
|
|
||||||
cls.prototype.ffzHideFrozen = function() {
|
cls.prototype.ffzHideFrozen = function() {
|
||||||
this._ffz_freeze_visible = false;
|
this._ffz_freeze_visible = false;
|
||||||
if ( this._ffz_freeze_indicator )
|
if ( this._ffz_freeze_indicator )
|
||||||
this._ffz_freeze_indicator.classList.add('hide');
|
this._ffz_freeze_indicator.classList.add('tw-hide');
|
||||||
}
|
}
|
||||||
|
|
||||||
cls.prototype.ffzFreeze = function() {
|
cls.prototype.ffzFreeze = function() {
|
||||||
|
|
|
@ -39,7 +39,7 @@ export default class SettingsMenu extends Module {
|
||||||
cls.prototype.renderUniversalOptions = function() {
|
cls.prototype.renderUniversalOptions = function() {
|
||||||
const val = old_universal.call(this);
|
const val = old_universal.call(this);
|
||||||
val.props.children.push(e('div', {
|
val.props.children.push(e('div', {
|
||||||
className: 'mg-t-1'
|
className: 'tw-mg-t-1'
|
||||||
}, e('button', {
|
}, e('button', {
|
||||||
onClick: () => t.click(this)
|
onClick: () => t.click(this)
|
||||||
}, t.i18n.t('site.menu_button', 'FrankerFaceZ Control Center'))
|
}, t.i18n.t('site.menu_button', 'FrankerFaceZ Control Center'))
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
border-top: 1px solid #aaa;
|
border-top: 1px solid #aaa;
|
||||||
border-bottom-color: rgba(255,255,255,0.5);
|
border-bottom-color: rgba(255,255,255,0.5);
|
||||||
|
|
||||||
.theme--dark & {
|
.tw-theme--dark & {
|
||||||
border-top-color: #000;
|
border-top-color: #000;
|
||||||
border-bottom-color: rgba(255,255,255,0.1);
|
border-bottom-color: rgba(255,255,255,0.1);
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,7 @@
|
||||||
.thread-message__warning {
|
.thread-message__warning {
|
||||||
padding-top: 0 !important;
|
padding-top: 0 !important;
|
||||||
|
|
||||||
& > .pd-y-05 {
|
& > .tw-pd-y-05 {
|
||||||
padding-top: calc(.5rem - 1px) !important;
|
padding-top: calc(.5rem - 1px) !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -12,7 +12,7 @@
|
||||||
border-top: 1px solid rgba(255,255,255,0.5);
|
border-top: 1px solid rgba(255,255,255,0.5);
|
||||||
border-bottom-color: #aaa;
|
border-bottom-color: #aaa;
|
||||||
|
|
||||||
.theme--dark & {
|
.tw-theme--dark & {
|
||||||
border-top-color: rgba(255,255,255,0.1);
|
border-top-color: rgba(255,255,255,0.1);
|
||||||
border-bottom-color: #000;
|
border-bottom-color: #000;
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,7 @@
|
||||||
.thread-message__warning {
|
.thread-message__warning {
|
||||||
padding-top: 0 !important;
|
padding-top: 0 !important;
|
||||||
|
|
||||||
& > .pd-y-05 {
|
& > .tw-pd-y-05 {
|
||||||
padding-top: calc(.5rem - 1px) !important;
|
padding-top: calc(.5rem - 1px) !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -11,7 +11,7 @@
|
||||||
|
|
||||||
border-top: 1px solid #dad8de;
|
border-top: 1px solid #dad8de;
|
||||||
|
|
||||||
.theme--dark & {
|
.tw-theme--dark & {
|
||||||
border-top-color: #2c2541;
|
border-top-color: #2c2541;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@
|
||||||
.thread-message__warning {
|
.thread-message__warning {
|
||||||
padding-top: 0 !important;
|
padding-top: 0 !important;
|
||||||
|
|
||||||
& > .pd-y-05 {
|
& > .tw-pd-y-05 {
|
||||||
padding-top: calc(.5rem - 1px) !important;
|
padding-top: calc(.5rem - 1px) !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -11,7 +11,7 @@
|
||||||
|
|
||||||
border-bottom: 1px solid #dad8de;
|
border-bottom: 1px solid #dad8de;
|
||||||
|
|
||||||
.theme--dark & {
|
.tw-theme--dark & {
|
||||||
border-bottom-color: #2c2541;
|
border-bottom-color: #2c2541;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@
|
||||||
.thread-message__warning {
|
.thread-message__warning {
|
||||||
padding-bottom: 0 !important;
|
padding-bottom: 0 !important;
|
||||||
|
|
||||||
& > .pd-y-05 {
|
& > .tw-pd-y-05 {
|
||||||
padding-bottom: calc(.5rem - 1px) !important;
|
padding-bottom: calc(.5rem - 1px) !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -3,7 +3,7 @@
|
||||||
&.ffz-mentioned:nth-child(2n+0) {
|
&.ffz-mentioned:nth-child(2n+0) {
|
||||||
background-color: rgba(255,127,127,.4) !important;
|
background-color: rgba(255,127,127,.4) !important;
|
||||||
|
|
||||||
.theme--dark & {
|
.tw-theme--dark & {
|
||||||
background-color: rgba(255,0,0,.3) !important;
|
background-color: rgba(255,0,0,.3) !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
&.ffz-mentioned {
|
&.ffz-mentioned {
|
||||||
background-color: rgba(255,127,127,.2) !important;
|
background-color: rgba(255,127,127,.2) !important;
|
||||||
|
|
||||||
.theme--dark & {
|
.tw-theme--dark & {
|
||||||
background-color: rgba(255,0,0,.2) !important;
|
background-color: rgba(255,0,0,.2) !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
color: #fff;
|
color: #fff;
|
||||||
background: rgba(0,0,0,0.5);
|
background: rgba(0,0,0,0.5);
|
||||||
|
|
||||||
.theme--dark & {
|
.tw-theme--dark & {
|
||||||
color: #000;
|
color: #000;
|
||||||
background-color: rgba(255,255,255,0.5);
|
background-color: rgba(255,255,255,0.5);
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
&:nth-child(2n+0) {
|
&:nth-child(2n+0) {
|
||||||
background-color: rgba(0,0,0,0.1) !important;
|
background-color: rgba(0,0,0,0.1) !important;
|
||||||
|
|
||||||
.theme--dark & {
|
.tw-theme--dark & {
|
||||||
background-color: rgba(255,255,255,0.05) !important;
|
background-color: rgba(255,255,255,0.05) !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.chat-input button[data-a-target="bits-button"],
|
.chat-input button[data-a-target="bits-button"],
|
||||||
.channel-header__right > .mg-l-1 > div > div > button:not([data-a-target]) {
|
.channel-header__right > .tw-mg-l-1 > div > div > button:not([data-a-target]) {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
|
@ -7,8 +7,17 @@
|
||||||
top: -4rem !important;
|
top: -4rem !important;
|
||||||
transition: top ease-in-out 75ms, bottom ease-in-out 75ms;
|
transition: top ease-in-out 75ms, bottom ease-in-out 75ms;
|
||||||
|
|
||||||
|
.tw-svg__asset--logotwitch {
|
||||||
|
visibility: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:focus-within,
|
||||||
&:hover {
|
&:hover {
|
||||||
top: 0 !important;
|
top: 0 !important;
|
||||||
|
|
||||||
|
.tw-svg__asset--logotwitch {
|
||||||
|
visibility: visible;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
border-right: none !important;
|
border-right: none !important;
|
||||||
border-left: 1px solid #dad8de;
|
border-left: 1px solid #dad8de;
|
||||||
|
|
||||||
.theme--dark & {
|
.tw-theme--dark & {
|
||||||
border-left-color: #2c2541;
|
border-left-color: #2c2541;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,7 @@
|
||||||
border-left: none !important;
|
border-left: none !important;
|
||||||
border-right: 1px solid #dad8de;
|
border-right: 1px solid #dad8de;
|
||||||
|
|
||||||
.theme--dark & {
|
.tw-theme--dark & {
|
||||||
border-right-color: #2c2541;
|
border-right-color: #2c2541;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -318,7 +318,7 @@ export default class Following extends SiteModule {
|
||||||
}
|
}
|
||||||
|
|
||||||
this.hostMenu = e('div', 'ffz-host-menu tw-balloon tw-block',
|
this.hostMenu = e('div', 'ffz-host-menu tw-balloon tw-block',
|
||||||
e('div', 'tw-selectable-filter__balloon tw-pd-y-05',
|
e('div', 'tw-border tw-elevation-1 tw-border-radius-small tw-c-background',
|
||||||
e('div', {
|
e('div', {
|
||||||
className: 'scrollable-area',
|
className: 'scrollable-area',
|
||||||
'data-simplebar': true,
|
'data-simplebar': true,
|
||||||
|
@ -328,7 +328,8 @@ export default class Following extends SiteModule {
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
document.body.appendChild(this.hostMenu);
|
document.body.querySelector('.twilight-root').appendChild(this.hostMenu);
|
||||||
|
//document.body.appendChild(this.hostMenu);
|
||||||
|
|
||||||
this.hostMenuPopper = new Popper(document.body, this.hostMenu, {
|
this.hostMenuPopper = new Popper(document.body, this.hostMenu, {
|
||||||
placement: 'bottom-start',
|
placement: 'bottom-start',
|
||||||
|
|
|
@ -47,7 +47,7 @@ export default class MenuButton extends SiteModule {
|
||||||
|
|
||||||
|
|
||||||
this._el = e('div',
|
this._el = e('div',
|
||||||
'ffz-top-nav align-self-center flex-grow-0 flex-shrink-0 flex-nowrap pd-r-1 pd-l-05',
|
'ffz-top-nav tw-align-self-center tw-flex-grow-0 tw-flex-shrink-0 tw-flex-nowrap tw-pd-r-1 tw-pd-l-05',
|
||||||
this._btn = e('button',
|
this._btn = e('button',
|
||||||
{
|
{
|
||||||
className: 'tw-button-icon tw-button-icon--overlay tw-button-icon--large',
|
className: 'tw-button-icon tw-button-icon--overlay tw-button-icon--large',
|
||||||
|
|
|
@ -73,7 +73,7 @@ export default class ThemeEngine extends Module {
|
||||||
|
|
||||||
updateSetting(enable) {
|
updateSetting(enable) {
|
||||||
this.toggleStyle(enable);
|
this.toggleStyle(enable);
|
||||||
document.body.classList.toggle('theme--ffz', enable);
|
document.body.classList.toggle('tw-theme--ffz', enable);
|
||||||
}
|
}
|
||||||
|
|
||||||
onEnable() {
|
onEnable() {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
.channel-info-bar__action-container {
|
.channel-info-bar__action-container {
|
||||||
& > .flex {
|
& > .tw-flex {
|
||||||
& > * {
|
& > * {
|
||||||
margin-left: 0 !important;
|
margin-left: 0 !important;
|
||||||
margin-right: 1rem !important;
|
margin-right: 1rem !important;
|
||||||
|
@ -15,7 +15,7 @@
|
||||||
margin-left: -.8rem !important;
|
margin-left: -.8rem !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.c-text-live {
|
.tw-c-text-live {
|
||||||
order: 1;
|
order: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -24,12 +24,12 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
& > .flex:last-child > :last-child {
|
& > .tw-flex:last-child > :last-child {
|
||||||
margin-right: 0 !important
|
margin-right: 0 !important
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.theme--ffz, .theme--ffz.theme--dark, .theme--dark, body {
|
.tw-theme--ffz, .tw-theme--ffz.tw-theme--dark, .tw-theme--dark, body {
|
||||||
.ffz-stat > .tw-button,
|
.ffz-stat > .tw-button,
|
||||||
.ffz-stat.tw-button {
|
.ffz-stat.tw-button {
|
||||||
color: inherit;
|
color: inherit;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.theme--dark .live-channel-card__boxart {
|
.tw-theme--dark .live-channel-card__boxart {
|
||||||
border-right: none;
|
border-right: none;
|
||||||
border-bottom: none;
|
border-bottom: none;
|
||||||
}
|
}
|
|
@ -25,7 +25,7 @@
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
|
||||||
&, .theme--dark & {
|
&, .tw-theme--dark & {
|
||||||
border: none !important;
|
border: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
font-size: 1.2rem;
|
font-size: 1.2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.pd-r-1 + & {
|
.tw-pd-r-1 + & {
|
||||||
margin-left: -.5rem;
|
margin-left: -.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -6,7 +6,7 @@
|
||||||
@keyup.alt.page-down.stop="focusNextTab"
|
@keyup.alt.page-down.stop="focusNextTab"
|
||||||
>
|
>
|
||||||
<header
|
<header
|
||||||
class="flex"
|
class="tw-flex"
|
||||||
tabindex="0"
|
tabindex="0"
|
||||||
role="tablist"
|
role="tablist"
|
||||||
@keyup.home="firstTab"
|
@keyup.home="firstTab"
|
||||||
|
@ -24,7 +24,7 @@
|
||||||
:id="'tab-for-' + i.full_key"
|
:id="'tab-for-' + i.full_key"
|
||||||
:aria-selected="selected === idx"
|
:aria-selected="selected === idx"
|
||||||
:aria-controls="'tab-panel-' + i.full_key"
|
:aria-controls="'tab-panel-' + i.full_key"
|
||||||
class="tab pd-y-05 pd-x-1"
|
class="tab tw-pd-y-05 tw-pd-x-1"
|
||||||
:class="[selected === idx ? 'active' : '']"
|
:class="[selected === idx ? 'active' : '']"
|
||||||
@click="selected = idx"
|
@click="selected = idx"
|
||||||
>
|
>
|
||||||
|
@ -32,14 +32,14 @@
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
<section
|
<section
|
||||||
class="border"
|
class="tw-border"
|
||||||
:id="'tab-panel-' + tab.full_key"
|
:id="'tab-panel-' + tab.full_key"
|
||||||
:aria-labelledby="'tab-for-' + tab.full_key"
|
:aria-labelledby="'tab-for-' + tab.full_key"
|
||||||
role="tabpanel"
|
role="tabpanel"
|
||||||
aria-hidden="false"
|
aria-hidden="false"
|
||||||
aria-expanded="true"
|
aria-expanded="true"
|
||||||
>
|
>
|
||||||
<section v-if="tab.description" class="pd-b-1">
|
<section v-if="tab.description" class="tw-pd-b-1">
|
||||||
{{ t(tab.desc_i18n_key, tab.description, tab) }}
|
{{ t(tab.desc_i18n_key, tab.description, tab) }}
|
||||||
</section>
|
</section>
|
||||||
<component
|
<component
|
||||||
|
|
|
@ -10,11 +10,11 @@ body {
|
||||||
top: -3px;
|
top: -3px;
|
||||||
box-shadow: -1px -1px 0 #dad8de;
|
box-shadow: -1px -1px 0 #dad8de;
|
||||||
|
|
||||||
.theme--dark & {
|
.tw-theme--dark & {
|
||||||
box-shadow: -1px -1px 0 #2c2541;
|
box-shadow: -1px -1px 0 #2c2541;
|
||||||
}
|
}
|
||||||
|
|
||||||
.theme--ffz & {
|
.tw-theme--ffz & {
|
||||||
box-shadow: -1px -1px 0 var(--ffz-color-20);
|
box-shadow: -1px -1px 0 var(--ffz-color-20);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -23,11 +23,11 @@ body {
|
||||||
bottom: -3px;
|
bottom: -3px;
|
||||||
box-shadow: 1px 1px 0 #dad8de;
|
box-shadow: 1px 1px 0 #dad8de;
|
||||||
|
|
||||||
.theme--dark & {
|
.tw-theme--dark & {
|
||||||
box-shadow: 1px 1px 0 #2c2541;
|
box-shadow: 1px 1px 0 #2c2541;
|
||||||
}
|
}
|
||||||
|
|
||||||
.theme--ffz & {
|
.tw-theme--ffz & {
|
||||||
box-shadow: 1px 1px 0 var(--ffz-color-20);
|
box-shadow: 1px 1px 0 var(--ffz-color-20);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -36,11 +36,11 @@ body {
|
||||||
right: -3px;
|
right: -3px;
|
||||||
box-shadow: -1px 1px 0 #dad8de;
|
box-shadow: -1px 1px 0 #dad8de;
|
||||||
|
|
||||||
.theme--dark & {
|
.tw-theme--dark & {
|
||||||
box-shadow: -1px 1px 0 #2c2541;
|
box-shadow: -1px 1px 0 #2c2541;
|
||||||
}
|
}
|
||||||
|
|
||||||
.theme--ffz & {
|
.tw-theme--ffz & {
|
||||||
box-shadow: -1px 1px 0 var(--ffz-color-20);
|
box-shadow: -1px 1px 0 var(--ffz-color-20);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -49,11 +49,11 @@ body {
|
||||||
left: -3px;
|
left: -3px;
|
||||||
box-shadow: 1px -1px 0 #dad8de;
|
box-shadow: 1px -1px 0 #dad8de;
|
||||||
|
|
||||||
.theme--dark & {
|
.tw-theme--dark & {
|
||||||
box-shadow: 1px -1px 0 #2c2541;
|
box-shadow: 1px -1px 0 #2c2541;
|
||||||
}
|
}
|
||||||
|
|
||||||
.theme--ffz & {
|
.tw-theme--ffz & {
|
||||||
box-shadow: 1px -1px 0 var(--ffz-color-20);
|
box-shadow: 1px -1px 0 var(--ffz-color-20);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -123,7 +123,7 @@ body {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.theme--dark & {
|
.tw-theme--dark & {
|
||||||
background: #fff;
|
background: #fff;
|
||||||
color: #0e0c13;
|
color: #0e0c13;
|
||||||
|
|
||||||
|
|
|
@ -7,8 +7,8 @@
|
||||||
@import "./widgets/profile-selector.scss";
|
@import "./widgets/profile-selector.scss";
|
||||||
|
|
||||||
|
|
||||||
.display-inline { display: inline !important }
|
.tw-display-inline { display: inline !important }
|
||||||
.width-auto { width: auto !important }
|
.tw-width-auto { width: auto !important }
|
||||||
|
|
||||||
.ffz--widget {
|
.ffz--widget {
|
||||||
|
|
||||||
|
@ -131,7 +131,7 @@
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
font-variant: small-caps;
|
font-variant: small-caps;
|
||||||
|
|
||||||
.theme--dark & {
|
.tw-theme--dark & {
|
||||||
border-bottom-color: #2c2541;
|
border-bottom-color: #2c2541;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -152,7 +152,7 @@
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
background-color: rgba(0,0,0,0.1);
|
background-color: rgba(0,0,0,0.1);
|
||||||
|
|
||||||
.theme--dark & {
|
.tw-theme--dark & {
|
||||||
background-color: rgba(255,255,255,0.05);
|
background-color: rgba(255,255,255,0.05);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
background-color: $bg-light;
|
background-color: $bg-light;
|
||||||
|
|
||||||
.theme--dark & {
|
.tw-theme--dark & {
|
||||||
background-color: $bg-dark;
|
background-color: $bg-dark;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
|
|
||||||
.active > div,
|
.active > div,
|
||||||
.active > div:hover,
|
.active > div:hover,
|
||||||
.theme--dark & .active > div:hover {
|
.tw-theme--dark & .active > div:hover {
|
||||||
background-color: #6441a4;
|
background-color: #6441a4;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,7 @@
|
||||||
|
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
|
|
||||||
.theme--dark & {
|
.tw-theme--dark & {
|
||||||
background-color: #201c2b;
|
background-color: #201c2b;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
.tw-balloon {
|
.tw-balloon {
|
||||||
|
position: absolute;
|
||||||
margin-top: 0 !important
|
margin-top: 0 !important
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,7 +23,7 @@
|
||||||
opacity: .5;
|
opacity: .5;
|
||||||
font-variant: italic;
|
font-variant: italic;
|
||||||
|
|
||||||
.theme--dark & {
|
.tw-theme--dark & {
|
||||||
opacity: .25;
|
opacity: .25;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -36,7 +37,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
&:last-child {
|
&:last-child {
|
||||||
&, .theme--dark & {
|
&, .tw-theme--dark & {
|
||||||
border-bottom: none !important
|
border-bottom: none !important
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -51,7 +52,7 @@
|
||||||
&:hover {
|
&:hover {
|
||||||
background: rgba(100, 65, 164, .05);
|
background: rgba(100, 65, 164, .05);
|
||||||
|
|
||||||
.theme-dark & {
|
.tw-theme-dark & {
|
||||||
background: rgba(100, 65, 164, .2);
|
background: rgba(100, 65, 164, .2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
|
|
||||||
border-color: $border-light;
|
border-color: $border-light;
|
||||||
|
|
||||||
.theme--dark & {
|
.tw-theme--dark & {
|
||||||
border-color: $border-dark;
|
border-color: $border-dark;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue