WIP - write type for manifest
This commit is contained in:
parent
be66969c9a
commit
d0375141f8
1 changed files with 65 additions and 0 deletions
65
src/platform/types/theme.ts
Normal file
65
src/platform/types/theme.ts
Normal file
|
@ -0,0 +1,65 @@
|
|||
/*
|
||||
Copyright 2021 The Matrix.org Foundation C.I.C.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
export type ThemeManifest = {
|
||||
// Version number of theme; must be incremented on each change!
|
||||
version: number;
|
||||
// A user-facing string that is the name for this theme-collection.
|
||||
name: string;
|
||||
/**
|
||||
* This is produced during the build process and includes data
|
||||
* that is needed to load themes at runtime.
|
||||
*/
|
||||
source?: {
|
||||
/**
|
||||
* This is mapping from theme-id to location of css file relative to build-output root.
|
||||
* eg: {"element-light": "assets/theme-element-light.10f9bb22.css", ...}
|
||||
*
|
||||
* Here theme-id is 'theme-variant' where 'theme' is the key used to specify the manifest
|
||||
* location for this theme-collection in vite.config.js (where the themeBuilder plugin is
|
||||
* initialized) and 'variant' is the key used to specify the variant details in the values
|
||||
* section below.
|
||||
*/
|
||||
"built-asset": Record<string, string>;
|
||||
// Location of css file that will be used for themes derived from this theme.
|
||||
"runtime-asset": string;
|
||||
// Array of derived-variables
|
||||
"derived-variables": Array<string>;
|
||||
};
|
||||
values: {
|
||||
/**
|
||||
* Mapping from variant key to details pertaining to this theme-variant.
|
||||
* This variant key is used for forming theme-id as mentioned above.
|
||||
*/
|
||||
variants: Record<string, Variant>;
|
||||
};
|
||||
};
|
||||
|
||||
type Variant = {
|
||||
base: boolean;
|
||||
/**
|
||||
* If true, this variant is used a default dark/light variant and will be the selected theme
|
||||
* when "Match system theme" is selected for this theme collection in settings.
|
||||
*/
|
||||
default: boolean;
|
||||
// A user-facing string that is the name for this variant.
|
||||
name: string;
|
||||
/**
|
||||
* Mapping from css variable to its value.
|
||||
* eg: {"background-color-primary": "#21262b", ...}
|
||||
* */
|
||||
variables: Record<string, string>;
|
||||
}
|
Reference in a new issue