-
+
{{ $tr('offlineIndicatorText') }}
@@ -23,11 +23,11 @@
:style="`margin-top: ${offset}px;`"
v-bind="$attrs"
>
-
+
{{ offlineText || $tr('offlineText') }}
-
+
{{ offlineText || $tr('offlineText') }}
diff --git a/contentcuration/contentcuration/frontend/shared/views/ToggleText.vue b/contentcuration/contentcuration/frontend/shared/views/ToggleText.vue
index aef5a6cbb3..d75d888145 100644
--- a/contentcuration/contentcuration/frontend/shared/views/ToggleText.vue
+++ b/contentcuration/contentcuration/frontend/shared/views/ToggleText.vue
@@ -10,7 +10,8 @@
{{ togglerText }}
-
@@ -109,8 +110,8 @@
text-decoration: underline;
}
- .v-icon {
- vertical-align: bottom;
+ .icon {
+ vertical-align: middle;
}
}
diff --git a/contentcuration/contentcuration/frontend/shared/views/VisibilityDropdown.vue b/contentcuration/contentcuration/frontend/shared/views/VisibilityDropdown.vue
index 5486c444f9..6b157c3e00 100644
--- a/contentcuration/contentcuration/frontend/shared/views/VisibilityDropdown.vue
+++ b/contentcuration/contentcuration/frontend/shared/views/VisibilityDropdown.vue
@@ -24,7 +24,7 @@
{{ item.text }}
-
+
@@ -33,11 +33,11 @@
-
+
{{ item.text }}
-
+
{{ item.text }}
@@ -126,10 +126,9 @@
diff --git a/contentcuration/contentcuration/frontend/shared/views/files/FileStorage.vue b/contentcuration/contentcuration/frontend/shared/views/files/FileStorage.vue
index 61e1e8c37e..cf3e22ed31 100644
--- a/contentcuration/contentcuration/frontend/shared/views/files/FileStorage.vue
+++ b/contentcuration/contentcuration/frontend/shared/views/files/FileStorage.vue
@@ -23,7 +23,7 @@
-
+
{{ $tr('storageLow') }}
{{ $tr('storageLowWithSize', {
@@ -104,7 +104,7 @@
diff --git a/contentcuration/contentcuration/frontend/shared/views/icons/IndicatorIcon.vue b/contentcuration/contentcuration/frontend/shared/views/icons/IndicatorIcon.vue
deleted file mode 100644
index 6897e160d4..0000000000
--- a/contentcuration/contentcuration/frontend/shared/views/icons/IndicatorIcon.vue
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/contentcuration/contentcuration/frontend/shared/views/icons/LightBulbIcon.vue b/contentcuration/contentcuration/frontend/shared/views/icons/LightBulbIcon.vue
deleted file mode 100644
index 167a150882..0000000000
--- a/contentcuration/contentcuration/frontend/shared/views/icons/LightBulbIcon.vue
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
-
-
diff --git a/contentcuration/contentcuration/frontend/shared/views/icons/ViewOnlyIcon.vue b/contentcuration/contentcuration/frontend/shared/views/icons/ViewOnlyIcon.vue
deleted file mode 100644
index 3bf9a6f65c..0000000000
--- a/contentcuration/contentcuration/frontend/shared/views/icons/ViewOnlyIcon.vue
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-
diff --git a/contentcuration/contentcuration/frontend/shared/vuetify/icons.js b/contentcuration/contentcuration/frontend/shared/vuetify/icons.js
deleted file mode 100644
index 612d37b394..0000000000
--- a/contentcuration/contentcuration/frontend/shared/vuetify/icons.js
+++ /dev/null
@@ -1,91 +0,0 @@
-import Vue from 'vue';
-import vuetifyIcons from 'vuetify/lib/components/Vuetify/mixins/icons';
-import camelCase from 'lodash/camelCase';
-import CollapseAllIcon from '../views/icons/CollapseAllIcon';
-import IndicatorIcon from '../views/icons/IndicatorIcon';
-import LightBulbIcon from '../views/icons/LightBulbIcon';
-import ViewOnlyIcon from '../views/icons/ViewOnlyIcon';
-import VIconWrapper from 'shared/views/VIconWrapper';
-import { ContentKindsNames } from 'shared/leUtils/ContentKinds';
-
-Vue.component(VIconWrapper.name, VIconWrapper);
-
-const EMPTY = '_empty';
-export const CONTENT_KIND_ICONS = {
- [ContentKindsNames.TOPIC]: 'folder',
- [ContentKindsNames.TOPIC + EMPTY]: 'folder_open',
- [ContentKindsNames.VIDEO]: 'ondemand_video',
- [ContentKindsNames.AUDIO]: 'music_note',
- [ContentKindsNames.SLIDESHOW]: 'image',
- [ContentKindsNames.EXERCISE]: 'assignment',
- [ContentKindsNames.DOCUMENT]: 'class',
- [ContentKindsNames.HTML5]: 'widgets',
- [ContentKindsNames.ZIM]: 'widgets',
-};
-
-export function getContentKindIcon(kind, isEmpty = false) {
- const icon = (isEmpty ? [kind + EMPTY] : []).concat([kind]).find(k => k in CONTENT_KIND_ICONS);
- return icon ? CONTENT_KIND_ICONS[icon] : 'error_outline';
-}
-
-export function getLearningActivityIcon(activity) {
- if (activity.toLowerCase() === 'explore') {
- return 'interactShaded';
- } else if (activity === 'multiple') {
- return 'allActivities';
- } else {
- return `${camelCase(activity) + 'Solid'}`;
- }
-}
-
-// Can use $vuetify.icons.iconName in tags
-const customIcons = {
- collapse_all: {
- component: CollapseAllIcon,
- props: {
- iconName: 'collapse_all',
- },
- },
- light_bulb: {
- component: LightBulbIcon,
- props: {
- iconsName: 'light_bulb',
- },
- },
- view_only: {
- component: ViewOnlyIcon,
- props: {
- iconName: 'view_only',
- },
- },
- indicator: {
- component: IndicatorIcon,
- props: {
- iconName: 'indicator',
- },
- },
-};
-
-export default function icons(additional = {}) {
- // Grab icon name mapping from Vuetify. `md` is default icon font set
- const iconMap = vuetifyIcons('md', additional);
-
- // Update icons to use our custom `Icon` component which adds a layer between implementation
- // within Vuetify and our code, and the underlying `VIcon` component
- const vuetifyUpdatedIcons = Object.entries(iconMap)
- .map(([name, mdName]) => {
- return {
- [name]: {
- component: VIconWrapper.name,
- props: {
- iconName: mdName,
- },
- },
- };
- })
- .reduce((icons, icon) => Object.assign(icons, icon), {});
- return {
- ...vuetifyUpdatedIcons,
- ...customIcons,
- };
-}
diff --git a/contentcuration/contentcuration/frontend/shared/vuetify/index.js b/contentcuration/contentcuration/frontend/shared/vuetify/index.js
index be9fdf5cae..0fe2617482 100644
--- a/contentcuration/contentcuration/frontend/shared/vuetify/index.js
+++ b/contentcuration/contentcuration/frontend/shared/vuetify/index.js
@@ -1,4 +1,3 @@
-import icons from './icons';
import theme from './theme';
-export { icons, theme };
+export { theme };
diff --git a/jest_config/setup.js b/jest_config/setup.js
index 0a570c57d7..6c066e4da8 100644
--- a/jest_config/setup.js
+++ b/jest_config/setup.js
@@ -22,7 +22,6 @@ window.CountQueuingStrategy = global.CountQueuingStrategy = CountQueuingStrategy
import AnalyticsPlugin from 'shared/analytics/plugin';
import { setupSchema } from 'shared/data';
import * as resources from 'shared/data/resources';
-import icons from 'shared/vuetify/icons';
import ActionLink from 'shared/views/ActionLink';
import { i18nSetup } from 'shared/i18n';
import { resetJestGlobal } from 'shared/utils/testing'
@@ -47,9 +46,7 @@ window.storageBaseUrl = '/content/storage/';
Vue.use(VueRouter);
Vue.use(Vuex);
-Vue.use(Vuetify, {
- icons: icons(),
-});
+Vue.use(Vuetify);
// Register kolibri-design-system plugin
Vue.use(KThemePlugin);
diff --git a/package.json b/package.json
index 3ad6502867..47befa5764 100644
--- a/package.json
+++ b/package.json
@@ -73,7 +73,7 @@
"jspdf": "https://github.com/parallax/jsPDF.git#b7a1d8239c596292ce86dafa77f05987bcfa2e6e",
"jszip": "^3.10.1",
"kolibri-constants": "^0.2.0",
- "kolibri-design-system": "^4.2.0",
+ "kolibri-design-system": "https://github.com/MisRob/kolibri-design-system#b0fc5a3b8b1ab09c1357450daf3117c7813ab6ae",
"lodash": "^4.17.21",
"material-icons": "0.3.1",
"mutex-js": "^1.1.5",
diff --git a/yarn.lock b/yarn.lock
index bf51f4402a..9dfca4c770 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -4647,7 +4647,7 @@ collection-visit@^1.0.0:
map-visit "^1.0.0"
object-visit "^1.0.0"
-color-convert@^1.9.0:
+color-convert@^1.9.0, color-convert@^1.9.3:
version "1.9.3"
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
@@ -4666,16 +4666,32 @@ color-name@1.1.3:
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
-color-name@~1.1.4:
+color-name@^1.0.0, color-name@~1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+color-string@^1.6.0:
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4"
+ integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==
+ dependencies:
+ color-name "^1.0.0"
+ simple-swizzle "^0.2.2"
+
color-support@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2"
integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==
+color@3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164"
+ integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==
+ dependencies:
+ color-convert "^1.9.3"
+ color-string "^1.6.0"
+
colord@^2.9.1, colord@^2.9.2:
version "2.9.2"
resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.2.tgz#25e2bacbbaa65991422c07ea209e2089428effb1"
@@ -7751,6 +7767,11 @@ is-arrayish@^0.2.1:
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==
+is-arrayish@^0.3.1:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03"
+ integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
+
is-bigint@^1.0.1:
version "1.0.4"
resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3"
@@ -9374,14 +9395,14 @@ kolibri-constants@^0.2.0:
resolved "https://registry.yarnpkg.com/kolibri-constants/-/kolibri-constants-0.2.5.tgz#2b9df4c477119d0ade2d66bf8aef8a4172f0418f"
integrity sha512-ZoFZ83xgteZhFZtYjiOmITcZeSF+X42i12TOo87zmcdA78jj0dZbPYB+ttO855UxoKY8h4HHeDVZIUkE5TGa5g==
-kolibri-design-system@^4.2.0:
- version "4.3.1"
- resolved "https://registry.yarnpkg.com/kolibri-design-system/-/kolibri-design-system-4.3.1.tgz#09bb207e7507fc3c27f119054151485ffde67dd5"
- integrity sha512-umMrqXorU3UzXQZ1ZAmUjYWB02phXcX0qmWwS+FAOPbOjUEjmB6pZ/lN5TjjeE3onZfasf+pjwb3xJx3F4Nn/A==
+"kolibri-design-system@https://github.com/MisRob/kolibri-design-system#b0fc5a3b8b1ab09c1357450daf3117c7813ab6ae":
+ version "5.0.0-rc3"
+ resolved "https://github.com/MisRob/kolibri-design-system#b0fc5a3b8b1ab09c1357450daf3117c7813ab6ae"
dependencies:
"@vue/composition-api" "1.7.2"
aphrodite "https://github.com/learningequality/aphrodite/"
autosize "3.0.21"
+ color "3.2.1"
css-element-queries "1.2.0"
date-fns "1.30.1"
frame-throttle "3.0.0"
@@ -9391,6 +9412,7 @@ kolibri-design-system@^4.2.0:
purecss "2.2.0"
tippy.js "4.2.1"
vue-intl "3.1.0"
+ vue2-teleport "1.1.4"
xstate "4.38.3"
kolibri-tools@0.16.0-dev.3:
@@ -12318,6 +12340,13 @@ signal-exit@^4.0.1:
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.0.1.tgz#96a61033896120ec9335d96851d902cc98f0ba2a"
integrity sha512-uUWsN4aOxJAS8KOuf3QMyFtgm1pkb6I+KRZbRF/ghdf5T7sM+B1lLLzPDxswUjkmHyxQAVzEgG35E3NzDM9GVw==
+simple-swizzle@^0.2.2:
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
+ integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==
+ dependencies:
+ is-arrayish "^0.3.1"
+
sisteransi@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
@@ -13997,6 +14026,11 @@ vue-template-es2015-compiler@^1.6.0, vue-template-es2015-compiler@^1.9.0:
resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825"
integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==
+vue2-teleport@1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/vue2-teleport/-/vue2-teleport-1.1.4.tgz#30c84b1005bf9c208b1c05f4b6147300c54ee846"
+ integrity sha512-mGTszyQP6k3sSSk7MBq+PZdVojHYLwg5772hl3UVpu5uaLBqWIZ5eNP6/TjkDrf1XUTTxybvpXC6inpjwO+i/Q==
+
vue@^2.6.12:
version "2.6.14"
resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.14.tgz#e51aa5250250d569a3fbad3a8a5a687d6036e235"