@inriver/inri 1.14.0 → 1.16.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.
- package/.changeset/README.md +8 -0
- package/.changeset/config.json +11 -0
- package/.eslintrc.js +5 -5
- package/azure/pipelines/single-build-release.yml +20 -0
- package/azure/pipelines/templates/deployFramework.yml +30 -0
- package/azure/pipelines/templates/publishFramwork.yml +39 -0
- package/componentProperties.d.ts +8 -8
- package/configs/base-eslint-config.js +36 -36
- package/configs/base-tailwind-config.js +149 -149
- package/i18n.ts +11 -11
- package/index.ts +29 -29
- package/package.json +7 -2
- package/src/components/CAutoBreadcrumbs.vue +72 -72
- package/src/components/CBtn.vue +98 -98
- package/src/components/CColorPicker.vue +55 -55
- package/src/components/CContextMenu.vue +29 -29
- package/src/components/CDatePicker.vue +51 -51
- package/src/components/CDeleteTileBtn.vue +52 -52
- package/src/components/CDialog.vue +253 -253
- package/src/components/CDialogCloseBtn.vue +9 -9
- package/src/components/CDirtyCheck.vue +68 -68
- package/src/components/CDrawer.vue +44 -44
- package/src/components/CDrawerButton.vue +91 -91
- package/src/components/CExpansionItem.vue +57 -57
- package/src/components/CExpansionItemWithCheckbox.vue +41 -41
- package/src/components/CFileDropzone.vue +114 -114
- package/src/components/CGrid.vue +101 -101
- package/src/components/CHeader.vue +10 -10
- package/src/components/CHeaderLinks.vue +61 -61
- package/src/components/CHeaderMenuLink.vue +51 -51
- package/src/components/CHeaderSearch.vue +142 -142
- package/src/components/CIconBtn.vue +70 -70
- package/src/components/CMenuItem.vue +66 -66
- package/src/components/CPageContainer.vue +11 -11
- package/src/components/CPageError.vue +24 -24
- package/src/components/CPageSpinner.vue +18 -18
- package/src/components/CSearch.vue +45 -45
- package/src/components/CSection.vue +29 -29
- package/src/components/CSectionTitle.vue +8 -8
- package/src/components/CSelect.vue +208 -208
- package/src/components/CSlideEffect.vue +62 -62
- package/src/components/CSpinner.vue +107 -107
- package/src/components/CTableActions.vue +16 -16
- package/src/components/CTileBtn.vue +178 -178
- package/src/components/CTimePicker.vue +42 -42
- package/src/components/CToggleGridView.vue +26 -26
- package/src/components/CToggleSidebarBtn.vue +19 -19
- package/src/components/CTooltip.vue +44 -44
- package/src/components/CTreeNode.vue +39 -39
- package/src/components/cards/CBannerCard.vue +103 -103
- package/src/components/cards/CSmallCard.vue +149 -149
- package/src/components/internal-components/ConfirmDialog.vue +78 -78
- package/src/composables/useDialog.ts +46 -46
- package/src/composables/useDirtyCheck.ts +25 -25
- package/src/composables/useDoubleClickListener.ts +28 -28
- package/src/composables/useSelectable.ts +62 -62
- package/src/composables/useTruncateChips.ts +46 -46
- package/src/i18n/de/index.ts +17 -17
- package/src/i18n/en/index.ts +84 -84
- package/src/i18n/es/index.ts +7 -7
- package/src/i18n/fr/index.ts +7 -7
- package/src/init/initInriFramework.ts +37 -37
- package/src/init/useInriApp.ts +55 -55
- package/src/layouts/CLayoutBlank.vue +7 -7
- package/src/layouts/CLayoutWithBackButton.vue +50 -50
- package/src/layouts/CLayoutWithSidebars.vue +46 -46
- package/src/layouts/layout-fragments/CPageAutoBreadcrumbs.vue +6 -6
- package/src/layouts/layout-fragments/CPageBackButton.vue +18 -18
- package/src/layouts/layout-fragments/CPageBlank.vue +20 -20
- package/src/layouts/layout-fragments/CPageFlexCol.vue +5 -5
- package/src/layouts/layout-fragments/CPageLeftSidebar.vue +5 -5
- package/src/layouts/layout-fragments/CPageMainContent.vue +5 -5
- package/src/layouts/layout-fragments/CPageOuterWrapper.vue +5 -5
- package/src/layouts/layout-fragments/CPageRightSidebar.vue +5 -5
- package/src/layouts/layout-fragments/CPageTitle.vue +34 -34
- package/src/plugins/dialog.ts +45 -45
- package/src/plugins/errors/ErrorFactories.ts +59 -59
- package/src/plugins/errors/Errors.ts +156 -156
- package/src/plugins/errors/Exception.ts +6 -6
- package/src/plugins/errors/globalErrorHandler.ts +21 -21
- package/src/plugins/errors/handleError.ts +34 -34
- package/src/plugins/errors/logger.ts +16 -16
- package/src/plugins/errors/vueErrorHandler.ts +26 -26
- package/src/plugins/globalAppConfig.ts +25 -25
- package/src/plugins/i18n.ts +46 -46
- package/src/plugins/inriIcons.ts +58 -58
- package/src/plugins/inriverQuasarComponentConfigurations.ts +67 -67
- package/src/plugins/library.ts +119 -119
- package/src/plugins/notify.ts +153 -153
- package/src/plugins/quasar-user-options.ts +19 -19
- package/src/plugins/validationRules.ts +292 -292
- package/src/shims-vue.d.ts +6 -6
- package/src/stores/inriStore.ts +54 -54
- package/src/stores/interfaceLanguageStore.ts +27 -27
- package/src/styles/_css-variables.scss +101 -101
- package/src/styles/_reset.scss +67 -67
- package/src/styles/_transitions.scss +9 -9
- package/src/styles/_utils.scss +15 -15
- package/src/styles/components/_breadcrumbs.scss +3 -3
- package/src/styles/components/_checkboxes.scss +17 -17
- package/src/styles/components/_chips.scss +17 -17
- package/src/styles/components/_forms.scss +203 -203
- package/src/styles/components/_menu.scss +12 -12
- package/src/styles/components/_notifications.scss +24 -24
- package/src/styles/components/_q-editor.scss +14 -14
- package/src/styles/components/_radio-buttons.scss +17 -17
- package/src/styles/components/_tables.scss +92 -92
- package/src/styles/components/_tooltips.scss +5 -5
- package/src/styles/components/_tree.scss +86 -86
- package/src/styles/components/_truncated-chips.scss +39 -39
- package/src/styles/main.scss +45 -45
- package/src/styles/quasar.variables.scss +50 -50
- package/src/styles/tailwind/index.css +2 -2
- package/src/typings.d.ts +70 -70
- package/src/utils/colorUtils.ts +73 -73
- package/src/utils/errorUtils.ts +37 -37
- package/src/utils/fileUtils.ts +57 -57
- package/src/utils/helpers.ts +6 -6
- package/src/utils/routeUtils.ts +23 -23
- package/tsconfig.json +34 -34
package/src/stores/inriStore.ts
CHANGED
|
@@ -1,54 +1,54 @@
|
|
|
1
|
-
import { computed, reactive } from 'vue'
|
|
2
|
-
|
|
3
|
-
interface State {
|
|
4
|
-
dirtyComponents: any[],
|
|
5
|
-
leftDrawerIsOpen: boolean,
|
|
6
|
-
rightDrawerIsOpen: boolean,
|
|
7
|
-
showSidebar: boolean,
|
|
8
|
-
showPageSpinner: boolean,
|
|
9
|
-
isGridView: boolean
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
const state = reactive<State>({
|
|
13
|
-
dirtyComponents: [],
|
|
14
|
-
leftDrawerIsOpen: false,
|
|
15
|
-
rightDrawerIsOpen: false,
|
|
16
|
-
showSidebar: true,
|
|
17
|
-
showPageSpinner: false,
|
|
18
|
-
isGridView: true,
|
|
19
|
-
})
|
|
20
|
-
|
|
21
|
-
const isAnyDirty = computed(() => {
|
|
22
|
-
return !!state.dirtyComponents.length
|
|
23
|
-
})
|
|
24
|
-
|
|
25
|
-
function toggleLeftDrawer () {
|
|
26
|
-
state.leftDrawerIsOpen = !state.leftDrawerIsOpen
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
function toggleRightDrawer () {
|
|
30
|
-
state.rightDrawerIsOpen = !state.rightDrawerIsOpen
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
function toggleSidebar () {
|
|
34
|
-
state.showSidebar = !state.showSidebar
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
function toggleDirtyComponent (item: any, add: boolean | undefined) {
|
|
38
|
-
if (add && !state.dirtyComponents.find(i => i === item)) {
|
|
39
|
-
state.dirtyComponents.push(item)
|
|
40
|
-
} else {
|
|
41
|
-
state.dirtyComponents = state.dirtyComponents.filter(i => i !== item)
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
export const useInriStore = () => {
|
|
46
|
-
return {
|
|
47
|
-
state,
|
|
48
|
-
isAnyDirty,
|
|
49
|
-
toggleLeftDrawer,
|
|
50
|
-
toggleRightDrawer,
|
|
51
|
-
toggleSidebar,
|
|
52
|
-
toggleDirtyComponent,
|
|
53
|
-
}
|
|
54
|
-
}
|
|
1
|
+
import { computed, reactive } from 'vue'
|
|
2
|
+
|
|
3
|
+
interface State {
|
|
4
|
+
dirtyComponents: any[],
|
|
5
|
+
leftDrawerIsOpen: boolean,
|
|
6
|
+
rightDrawerIsOpen: boolean,
|
|
7
|
+
showSidebar: boolean,
|
|
8
|
+
showPageSpinner: boolean,
|
|
9
|
+
isGridView: boolean
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
const state = reactive<State>({
|
|
13
|
+
dirtyComponents: [],
|
|
14
|
+
leftDrawerIsOpen: false,
|
|
15
|
+
rightDrawerIsOpen: false,
|
|
16
|
+
showSidebar: true,
|
|
17
|
+
showPageSpinner: false,
|
|
18
|
+
isGridView: true,
|
|
19
|
+
})
|
|
20
|
+
|
|
21
|
+
const isAnyDirty = computed(() => {
|
|
22
|
+
return !!state.dirtyComponents.length
|
|
23
|
+
})
|
|
24
|
+
|
|
25
|
+
function toggleLeftDrawer () {
|
|
26
|
+
state.leftDrawerIsOpen = !state.leftDrawerIsOpen
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function toggleRightDrawer () {
|
|
30
|
+
state.rightDrawerIsOpen = !state.rightDrawerIsOpen
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function toggleSidebar () {
|
|
34
|
+
state.showSidebar = !state.showSidebar
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function toggleDirtyComponent (item: any, add: boolean | undefined) {
|
|
38
|
+
if (add && !state.dirtyComponents.find(i => i === item)) {
|
|
39
|
+
state.dirtyComponents.push(item)
|
|
40
|
+
} else {
|
|
41
|
+
state.dirtyComponents = state.dirtyComponents.filter(i => i !== item)
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export const useInriStore = () => {
|
|
46
|
+
return {
|
|
47
|
+
state,
|
|
48
|
+
isAnyDirty,
|
|
49
|
+
toggleLeftDrawer,
|
|
50
|
+
toggleRightDrawer,
|
|
51
|
+
toggleSidebar,
|
|
52
|
+
toggleDirtyComponent,
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
import { defineStore } from 'pinia'
|
|
2
|
-
import { Quasar } from 'quasar'
|
|
3
|
-
import { loadi18nLanguageAsync } from '../plugins/i18n'
|
|
4
|
-
|
|
5
|
-
export const useInterfaceLanguageStore = defineStore({
|
|
6
|
-
id: 'interfaceLanguage',
|
|
7
|
-
state: () => ({}),
|
|
8
|
-
actions: {
|
|
9
|
-
async loadQuasarLanguageAsync (lang: string) {
|
|
10
|
-
// IMPORTANT: Quasar uses "en-US" instead of "en"
|
|
11
|
-
const qLangCode = lang === 'en' ? 'en-US' : lang
|
|
12
|
-
|
|
13
|
-
const qLang = await import(
|
|
14
|
-
/* webpackInclude: /(de|en-US|fr|es)\.js$/ */
|
|
15
|
-
'quasar/lang/' + qLangCode
|
|
16
|
-
)
|
|
17
|
-
Quasar.lang.set(qLang.default)
|
|
18
|
-
},
|
|
19
|
-
async setLanguage (lang : string) {
|
|
20
|
-
await loadi18nLanguageAsync(lang)
|
|
21
|
-
await this.loadQuasarLanguageAsync(lang)
|
|
22
|
-
},
|
|
23
|
-
async init (lang: string) {
|
|
24
|
-
await this.setLanguage(lang)
|
|
25
|
-
},
|
|
26
|
-
},
|
|
27
|
-
})
|
|
1
|
+
import { defineStore } from 'pinia'
|
|
2
|
+
import { Quasar } from 'quasar'
|
|
3
|
+
import { loadi18nLanguageAsync } from '../plugins/i18n'
|
|
4
|
+
|
|
5
|
+
export const useInterfaceLanguageStore = defineStore({
|
|
6
|
+
id: 'interfaceLanguage',
|
|
7
|
+
state: () => ({}),
|
|
8
|
+
actions: {
|
|
9
|
+
async loadQuasarLanguageAsync (lang: string) {
|
|
10
|
+
// IMPORTANT: Quasar uses "en-US" instead of "en"
|
|
11
|
+
const qLangCode = lang === 'en' ? 'en-US' : lang
|
|
12
|
+
|
|
13
|
+
const qLang = await import(
|
|
14
|
+
/* webpackInclude: /(de|en-US|fr|es)\.js$/ */
|
|
15
|
+
'quasar/lang/' + qLangCode
|
|
16
|
+
)
|
|
17
|
+
Quasar.lang.set(qLang.default)
|
|
18
|
+
},
|
|
19
|
+
async setLanguage (lang : string) {
|
|
20
|
+
await loadi18nLanguageAsync(lang)
|
|
21
|
+
await this.loadQuasarLanguageAsync(lang)
|
|
22
|
+
},
|
|
23
|
+
async init (lang: string) {
|
|
24
|
+
await this.setLanguage(lang)
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
})
|
|
@@ -1,101 +1,101 @@
|
|
|
1
|
-
:root {
|
|
2
|
-
/* stylelint-disable-next-line */
|
|
3
|
-
--font-family: 'Wallop', 'Roboto', '-apple-system', 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
|
4
|
-
|
|
5
|
-
// Color palette
|
|
6
|
-
--color-grey: #ccc;
|
|
7
|
-
--color-grey-light: #ddd;
|
|
8
|
-
--color-grey-lighter: #eaeaea;
|
|
9
|
-
--color-grey-10: #f3f3f3;
|
|
10
|
-
--color-grey-dark: #888;
|
|
11
|
-
--color-grey-darker: #444;
|
|
12
|
-
--color-grey-darkest: #2d2d2c;
|
|
13
|
-
--color-blue: #4799fc;
|
|
14
|
-
--color-blue-light: #91c2fd;
|
|
15
|
-
--color-purple: #ad66f2;
|
|
16
|
-
--color-purple-light: #cea3f7;
|
|
17
|
-
--color-red: #ff3838;
|
|
18
|
-
--color-red-light: #ff8888;
|
|
19
|
-
--color-orange: #ff7a20;
|
|
20
|
-
--color-orange-light: #ffa874;
|
|
21
|
-
--color-yellow: #ffbf2e;
|
|
22
|
-
--color-yellow-light: #ffd982;
|
|
23
|
-
--color-green: #00b06e;
|
|
24
|
-
--color-green-light: #66d0a8;
|
|
25
|
-
--color-green-light-30: rgba(102,208,168,0.3);
|
|
26
|
-
--color-green-10: #e5f7f0;
|
|
27
|
-
|
|
28
|
-
// Surface is a special color defined in Material Design but not part of Quasar. We still want to use it though.
|
|
29
|
-
// This is any plain surface, like a card or dialog background.
|
|
30
|
-
--surface-color: #fff;
|
|
31
|
-
--on-surface-color: var(--color-grey-darkest);
|
|
32
|
-
--surface-effect-color: var(--color-grey-lighter);
|
|
33
|
-
--surface-border-color: var(--color-grey);
|
|
34
|
-
|
|
35
|
-
// ** Primary, secondary and accent colors **
|
|
36
|
-
// Quasar base colors, like primary, are defined in quasar.variables.scss but can be overwritten like this: "--q-primary: orange !important;"
|
|
37
|
-
|
|
38
|
-
// primary = black
|
|
39
|
-
--on-primary-color: #fff;
|
|
40
|
-
--on-primary-alt-color: #fff; // This alt color is used in some scenarios, like for the context menu on banner cards.
|
|
41
|
-
--primary-effect-color: var(--color-grey-darker);
|
|
42
|
-
|
|
43
|
-
// secondary = grey-lighter
|
|
44
|
-
--on-secondary-color: var(--color-grey-darkest);
|
|
45
|
-
--on-secondary-alt-color: var(--color-grey-darkest);
|
|
46
|
-
--secondary-effect-color: var(--color-grey-light);
|
|
47
|
-
|
|
48
|
-
// accent = green
|
|
49
|
-
--on-accent-color: var(--color-grey-darkest);
|
|
50
|
-
--on-accent-alt-color: #fff;
|
|
51
|
-
--accent-effect-color: var(--color-green-light);
|
|
52
|
-
|
|
53
|
-
// Color aliases
|
|
54
|
-
--color-text: var(--color-grey-darkest);
|
|
55
|
-
--color-border: var(--color-grey-light);
|
|
56
|
-
--color-border-dark: var(--color-grey);
|
|
57
|
-
|
|
58
|
-
// Form elements
|
|
59
|
-
--input-bg-color: var(--surface-color);
|
|
60
|
-
--checkbox-border-color: var(--color-grey);
|
|
61
|
-
--radio-border-color: var(--color-grey);
|
|
62
|
-
|
|
63
|
-
// Table
|
|
64
|
-
--table-header-bg-color: var(--surface-color);
|
|
65
|
-
--table-image-size-width: 45px;
|
|
66
|
-
--table-image-size-height: 35px;
|
|
67
|
-
|
|
68
|
-
// Tree
|
|
69
|
-
--tree-icon-color: var(--color-grey-dark);
|
|
70
|
-
--tree-text-color: var(--color-text);
|
|
71
|
-
|
|
72
|
-
// Small card
|
|
73
|
-
--small-card-image-size: 86px;
|
|
74
|
-
|
|
75
|
-
// Tooltip
|
|
76
|
-
--tooltip-bg-color: #fff;
|
|
77
|
-
--tooltip-text-color: var(--color-grey-darkest);
|
|
78
|
-
--tooltip-border-color: var(--color-grey);
|
|
79
|
-
|
|
80
|
-
// Generic item states (lists/tables/trees etc.)
|
|
81
|
-
--item-selected-bg-color: var(--color-green-10);
|
|
82
|
-
--item-hover-bg-color: var(--color-grey-10);
|
|
83
|
-
|
|
84
|
-
// Dialog
|
|
85
|
-
--dialog-shadow: 0 2px 27px rgba(0, 0, 0, 0.25);
|
|
86
|
-
--dialog-backdrop-color: rgba(0, 0, 0, 0.25);
|
|
87
|
-
|
|
88
|
-
// Chips
|
|
89
|
-
--chip-bg-color: var(--color-grey-lighter);
|
|
90
|
-
--chip-text-color: var(--color-grey-darkest);
|
|
91
|
-
|
|
92
|
-
// Misc
|
|
93
|
-
--breadcrumbs-separator-color: var(--color-grey);
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
// Themes for different sections of the application
|
|
97
|
-
[theme='route-demo-theme'] {
|
|
98
|
-
--q-primary: var(--color-green);
|
|
99
|
-
--q-secondary: var(--color-green-light);
|
|
100
|
-
--q-accent: var(--color-green-light);
|
|
101
|
-
}
|
|
1
|
+
:root {
|
|
2
|
+
/* stylelint-disable-next-line */
|
|
3
|
+
--font-family: 'Wallop', 'Roboto', '-apple-system', 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
|
4
|
+
|
|
5
|
+
// Color palette
|
|
6
|
+
--color-grey: #ccc;
|
|
7
|
+
--color-grey-light: #ddd;
|
|
8
|
+
--color-grey-lighter: #eaeaea;
|
|
9
|
+
--color-grey-10: #f3f3f3;
|
|
10
|
+
--color-grey-dark: #888;
|
|
11
|
+
--color-grey-darker: #444;
|
|
12
|
+
--color-grey-darkest: #2d2d2c;
|
|
13
|
+
--color-blue: #4799fc;
|
|
14
|
+
--color-blue-light: #91c2fd;
|
|
15
|
+
--color-purple: #ad66f2;
|
|
16
|
+
--color-purple-light: #cea3f7;
|
|
17
|
+
--color-red: #ff3838;
|
|
18
|
+
--color-red-light: #ff8888;
|
|
19
|
+
--color-orange: #ff7a20;
|
|
20
|
+
--color-orange-light: #ffa874;
|
|
21
|
+
--color-yellow: #ffbf2e;
|
|
22
|
+
--color-yellow-light: #ffd982;
|
|
23
|
+
--color-green: #00b06e;
|
|
24
|
+
--color-green-light: #66d0a8;
|
|
25
|
+
--color-green-light-30: rgba(102,208,168,0.3);
|
|
26
|
+
--color-green-10: #e5f7f0;
|
|
27
|
+
|
|
28
|
+
// Surface is a special color defined in Material Design but not part of Quasar. We still want to use it though.
|
|
29
|
+
// This is any plain surface, like a card or dialog background.
|
|
30
|
+
--surface-color: #fff;
|
|
31
|
+
--on-surface-color: var(--color-grey-darkest);
|
|
32
|
+
--surface-effect-color: var(--color-grey-lighter);
|
|
33
|
+
--surface-border-color: var(--color-grey);
|
|
34
|
+
|
|
35
|
+
// ** Primary, secondary and accent colors **
|
|
36
|
+
// Quasar base colors, like primary, are defined in quasar.variables.scss but can be overwritten like this: "--q-primary: orange !important;"
|
|
37
|
+
|
|
38
|
+
// primary = black
|
|
39
|
+
--on-primary-color: #fff;
|
|
40
|
+
--on-primary-alt-color: #fff; // This alt color is used in some scenarios, like for the context menu on banner cards.
|
|
41
|
+
--primary-effect-color: var(--color-grey-darker);
|
|
42
|
+
|
|
43
|
+
// secondary = grey-lighter
|
|
44
|
+
--on-secondary-color: var(--color-grey-darkest);
|
|
45
|
+
--on-secondary-alt-color: var(--color-grey-darkest);
|
|
46
|
+
--secondary-effect-color: var(--color-grey-light);
|
|
47
|
+
|
|
48
|
+
// accent = green
|
|
49
|
+
--on-accent-color: var(--color-grey-darkest);
|
|
50
|
+
--on-accent-alt-color: #fff;
|
|
51
|
+
--accent-effect-color: var(--color-green-light);
|
|
52
|
+
|
|
53
|
+
// Color aliases
|
|
54
|
+
--color-text: var(--color-grey-darkest);
|
|
55
|
+
--color-border: var(--color-grey-light);
|
|
56
|
+
--color-border-dark: var(--color-grey);
|
|
57
|
+
|
|
58
|
+
// Form elements
|
|
59
|
+
--input-bg-color: var(--surface-color);
|
|
60
|
+
--checkbox-border-color: var(--color-grey);
|
|
61
|
+
--radio-border-color: var(--color-grey);
|
|
62
|
+
|
|
63
|
+
// Table
|
|
64
|
+
--table-header-bg-color: var(--surface-color);
|
|
65
|
+
--table-image-size-width: 45px;
|
|
66
|
+
--table-image-size-height: 35px;
|
|
67
|
+
|
|
68
|
+
// Tree
|
|
69
|
+
--tree-icon-color: var(--color-grey-dark);
|
|
70
|
+
--tree-text-color: var(--color-text);
|
|
71
|
+
|
|
72
|
+
// Small card
|
|
73
|
+
--small-card-image-size: 86px;
|
|
74
|
+
|
|
75
|
+
// Tooltip
|
|
76
|
+
--tooltip-bg-color: #fff;
|
|
77
|
+
--tooltip-text-color: var(--color-grey-darkest);
|
|
78
|
+
--tooltip-border-color: var(--color-grey);
|
|
79
|
+
|
|
80
|
+
// Generic item states (lists/tables/trees etc.)
|
|
81
|
+
--item-selected-bg-color: var(--color-green-10);
|
|
82
|
+
--item-hover-bg-color: var(--color-grey-10);
|
|
83
|
+
|
|
84
|
+
// Dialog
|
|
85
|
+
--dialog-shadow: 0 2px 27px rgba(0, 0, 0, 0.25);
|
|
86
|
+
--dialog-backdrop-color: rgba(0, 0, 0, 0.25);
|
|
87
|
+
|
|
88
|
+
// Chips
|
|
89
|
+
--chip-bg-color: var(--color-grey-lighter);
|
|
90
|
+
--chip-text-color: var(--color-grey-darkest);
|
|
91
|
+
|
|
92
|
+
// Misc
|
|
93
|
+
--breadcrumbs-separator-color: var(--color-grey);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// Themes for different sections of the application
|
|
97
|
+
[theme='route-demo-theme'] {
|
|
98
|
+
--q-primary: var(--color-green);
|
|
99
|
+
--q-secondary: var(--color-green-light);
|
|
100
|
+
--q-accent: var(--color-green-light);
|
|
101
|
+
}
|
package/src/styles/_reset.scss
CHANGED
|
@@ -1,67 +1,67 @@
|
|
|
1
|
-
body {
|
|
2
|
-
color: var(--color-text);
|
|
3
|
-
font-variant-ligatures: none;
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
// Reset browser heading margin
|
|
7
|
-
h1,
|
|
8
|
-
h2,
|
|
9
|
-
h3,
|
|
10
|
-
h4,
|
|
11
|
-
h5,
|
|
12
|
-
h6 {
|
|
13
|
-
margin: 0;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
code {
|
|
17
|
-
background: var(--color-grey-darkest);
|
|
18
|
-
color: white;
|
|
19
|
-
border-radius: 4px;
|
|
20
|
-
padding: 0 4px;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
pre {
|
|
24
|
-
margin: 0;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
// Copied from Preflight/Windi reset
|
|
28
|
-
*,
|
|
29
|
-
::before,
|
|
30
|
-
::after {
|
|
31
|
-
border-width: 0;
|
|
32
|
-
border-style: solid;
|
|
33
|
-
border-color: var(--color-border);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
[placeholder]::placeholder {
|
|
37
|
-
color: var(--color-grey);
|
|
38
|
-
opacity: 1; /* Firefox */
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
// Custom scrollbar in Firefox
|
|
42
|
-
* {
|
|
43
|
-
scrollbar-width: thin;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
// Custom scrollbar in Chrome/Webkit
|
|
47
|
-
::-webkit-scrollbar-thumb {
|
|
48
|
-
border-radius: 4px;
|
|
49
|
-
background-color: var(--color-grey);
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
::-webkit-scrollbar {
|
|
53
|
-
width: 8px;
|
|
54
|
-
height: 8px;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
a {
|
|
58
|
-
text-decoration: none;
|
|
59
|
-
color: var(--on-surface-color);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
ol,
|
|
63
|
-
ul {
|
|
64
|
-
list-style: none;
|
|
65
|
-
margin: 0;
|
|
66
|
-
padding: 0;
|
|
67
|
-
}
|
|
1
|
+
body {
|
|
2
|
+
color: var(--color-text);
|
|
3
|
+
font-variant-ligatures: none;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
// Reset browser heading margin
|
|
7
|
+
h1,
|
|
8
|
+
h2,
|
|
9
|
+
h3,
|
|
10
|
+
h4,
|
|
11
|
+
h5,
|
|
12
|
+
h6 {
|
|
13
|
+
margin: 0;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
code {
|
|
17
|
+
background: var(--color-grey-darkest);
|
|
18
|
+
color: white;
|
|
19
|
+
border-radius: 4px;
|
|
20
|
+
padding: 0 4px;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
pre {
|
|
24
|
+
margin: 0;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// Copied from Preflight/Windi reset
|
|
28
|
+
*,
|
|
29
|
+
::before,
|
|
30
|
+
::after {
|
|
31
|
+
border-width: 0;
|
|
32
|
+
border-style: solid;
|
|
33
|
+
border-color: var(--color-border);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
[placeholder]::placeholder {
|
|
37
|
+
color: var(--color-grey);
|
|
38
|
+
opacity: 1; /* Firefox */
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// Custom scrollbar in Firefox
|
|
42
|
+
* {
|
|
43
|
+
scrollbar-width: thin;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// Custom scrollbar in Chrome/Webkit
|
|
47
|
+
::-webkit-scrollbar-thumb {
|
|
48
|
+
border-radius: 4px;
|
|
49
|
+
background-color: var(--color-grey);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
::-webkit-scrollbar {
|
|
53
|
+
width: 8px;
|
|
54
|
+
height: 8px;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
a {
|
|
58
|
+
text-decoration: none;
|
|
59
|
+
color: var(--on-surface-color);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
ol,
|
|
63
|
+
ul {
|
|
64
|
+
list-style: none;
|
|
65
|
+
margin: 0;
|
|
66
|
+
padding: 0;
|
|
67
|
+
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
.fade-enter-active,
|
|
2
|
-
.fade-leave-active {
|
|
3
|
-
transition: opacity 0.3s;
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
.fade-enter-from,
|
|
7
|
-
.fade-leave-to {
|
|
8
|
-
opacity: 0;
|
|
9
|
-
}
|
|
1
|
+
.fade-enter-active,
|
|
2
|
+
.fade-leave-active {
|
|
3
|
+
transition: opacity 0.3s;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.fade-enter-from,
|
|
7
|
+
.fade-leave-to {
|
|
8
|
+
opacity: 0;
|
|
9
|
+
}
|
package/src/styles/_utils.scss
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
// There is a plugin in windi for this, but for some reason it breaks code completion
|
|
2
|
-
.line-clamp-2 {
|
|
3
|
-
overflow: hidden;
|
|
4
|
-
display: -webkit-box;
|
|
5
|
-
-webkit-box-orient: vertical;
|
|
6
|
-
-webkit-line-clamp: 2;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
.overflow-y-overlay {
|
|
10
|
-
// Fallback to auto in Firefox
|
|
11
|
-
overflow-y: auto;
|
|
12
|
-
|
|
13
|
-
// Overlay in Chrome
|
|
14
|
-
overflow-y: overlay;
|
|
15
|
-
}
|
|
1
|
+
// There is a plugin in windi for this, but for some reason it breaks code completion
|
|
2
|
+
.line-clamp-2 {
|
|
3
|
+
overflow: hidden;
|
|
4
|
+
display: -webkit-box;
|
|
5
|
+
-webkit-box-orient: vertical;
|
|
6
|
+
-webkit-line-clamp: 2;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.overflow-y-overlay {
|
|
10
|
+
// Fallback to auto in Firefox
|
|
11
|
+
overflow-y: auto;
|
|
12
|
+
|
|
13
|
+
// Overlay in Chrome
|
|
14
|
+
overflow-y: overlay;
|
|
15
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
.q-breadcrumbs__separator {
|
|
2
|
-
color: var(--breadcrumbs-separator-color);
|
|
3
|
-
}
|
|
1
|
+
.q-breadcrumbs__separator {
|
|
2
|
+
color: var(--breadcrumbs-separator-color);
|
|
3
|
+
}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
.c-checkbox {
|
|
2
|
-
&.q-checkbox[aria-label] {
|
|
3
|
-
max-width: max-content;
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
&.q-checkbox.disabled {
|
|
7
|
-
opacity: 0.4 !important;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
.q-checkbox__inner--falsy .q-checkbox__bg {
|
|
11
|
-
border: 2px solid var(--checkbox-border-color);
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
.q-checkbox__label {
|
|
15
|
-
padding: 4px 10px;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
1
|
+
.c-checkbox {
|
|
2
|
+
&.q-checkbox[aria-label] {
|
|
3
|
+
max-width: max-content;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
&.q-checkbox.disabled {
|
|
7
|
+
opacity: 0.4 !important;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.q-checkbox__inner--falsy .q-checkbox__bg {
|
|
11
|
+
border: 2px solid var(--checkbox-border-color);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.q-checkbox__label {
|
|
15
|
+
padding: 4px 10px;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
.q-chip {
|
|
2
|
-
background: var(--chip-bg-color);
|
|
3
|
-
color: var(--chip-text-color);
|
|
4
|
-
height: 26px;
|
|
5
|
-
|
|
6
|
-
.q-chip__icon--remove {
|
|
7
|
-
margin-left: 8px;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
.q-chip__icon {
|
|
11
|
-
opacity: 0.25;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
.q-chip--dense {
|
|
16
|
-
padding: 0 8px;
|
|
17
|
-
}
|
|
1
|
+
.q-chip {
|
|
2
|
+
background: var(--chip-bg-color);
|
|
3
|
+
color: var(--chip-text-color);
|
|
4
|
+
height: 26px;
|
|
5
|
+
|
|
6
|
+
.q-chip__icon--remove {
|
|
7
|
+
margin-left: 8px;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.q-chip__icon {
|
|
11
|
+
opacity: 0.25;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.q-chip--dense {
|
|
16
|
+
padding: 0 8px;
|
|
17
|
+
}
|